home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR24 / MR2_152.ZIP / READ.ME < prev    next >
Text File  |  1993-07-11  |  51KB  |  1,090 lines

  1. MR/2 - A QWK Compatible Mail Reader for OS/2.  07/11/93
  2.  
  3. Copyright (c) 1992, Knight Writer Software Company.
  4. All rights reserved.
  5.  
  6. ===================================================================
  7.                           N O T I C E
  8. ===================================================================
  9. This IS a shareware package, and does require a registration fee if
  10. you choose to continue using it after 30 days.   The registration
  11. fee is currently $20 US.  Eventually, the product MAY have a
  12. "begging" screen with a key-file that will register the software
  13. and suppress it.  The more interest I get, the more likely I am to
  14. continue with improvements.
  15. ------------------------------------------------------------------
  16.  
  17. CONTACTING THE AUTHOR
  18. =====================
  19.  
  20. You  can contact me in a number  of ways.  Unfortunately, I can't
  21. provide a phone number at this time.
  22.  
  23. US Mail:       Nick Knight
  24.                1823 David Ave.
  25.                Parma, Ohio 44134
  26.  
  27. Fido netmail:  1:157/2 to "Nick Knight"
  28.  
  29. Internet:      User "Nick Knight", (nick.knight@pcohio.com)
  30.  
  31. Fido Echomail: Find the Fidonet OS2PRODSUPPORT conference.  I'm there.
  32.  
  33.                Echomail messages to  me in more general conferences are
  34.                discouraged, as keeping them "on  topic" and
  35.                interesting to the masses would be difficult.  I do
  36.                read OS2, OS2PROG, C_PLUSPLUS and DR DEBUG daily,
  37.                though.  OFFLINE echo also (deals with mail readers),
  38.                this might be THE place to ask public questions, eh?
  39.  
  40.                I recently have acquired access to a host of other
  41.                networks with OS/2 conferences.  These include RIME,
  42.                SmartNet, Uninet, Intelec, Nanonet, Racenet and some
  43.                others I can't remember.
  44.  
  45.                I also do poll the Fidnet OS2PRODSUPPORT echo.
  46.  
  47. Direct BBS:    Leave a message on the Nerd's Nook BBS (1:157/2) at (216)
  48.                356-1772, 356-1872 or 356-1431.  I check in here
  49.                multiple times a day.  I will also keep the most recent
  50.                copy of MR/2 posted here.  Other boards (non-local)
  51.                will get updates at my convenience.
  52.  
  53. **************************************************************************
  54. **************************************************************************
  55. **             NOTE:  Nerd's now supports an MR/2 conference            **
  56. **             and file area.  Conference #208 is dedicated to          **
  57. **             MR/2 support and files.  File area #45 contains          **
  58. **             MR/2-related files.  Any file uploaded into              **
  59. **             conference 208 will be placed in file area 45.           **
  60. **                                                                      **
  61. **             If you JOIN 208 before downloading files from area       **
  62. **             #45, your download is "free" as far as time and byte     **
  63. **             counts are concerned.                                    **
  64. **************************************************************************
  65. **************************************************************************
  66.  
  67.                Nerd's does support file requests (157/2 or 157/3)
  68.  
  69. Compuserve:    I check in here only when I have to.  Try mail to my
  70.                user ID  - 76066,1240, although this isn't the best
  71.                approach.
  72.  
  73.  
  74. Changes included in v1.52
  75. -------------------------
  76.  
  77. o   New variables for use with templates to allow random and user-selected
  78.     phrase insertion.  First, there must exist a text file containing a
  79.     list of possible phrases, one per line.  Then, the template file
  80.     must contain one of the following (assuming "phrases.phr" is the file
  81.     name and it resides in the MR/2 home directory.  Remember, when
  82.     replying, you're pathed into the TMP$$ sun directory):
  83.  
  84.         @SELECT:..\phrases.phr@
  85.         @RANDOM:..\phrases.phr@
  86.  
  87.     Select will build a list of te file's contents and display the
  88.     phrases in a selection box for you to pick from.  If you ESCAPE
  89.     from the selection w/o picking an entry, MR/2 will randomly select
  90.     one for you.  If you choose the RANDOM option, no user prompting is
  91.     performed;  MR/2 randomly selects one of the phrases to include.
  92.  
  93.     You may have multiple phrases per template line; as many as you want
  94.     in any given section.  They're processed one at a time.  Phrases may
  95.     even contain other @ variables, however, these variables are not
  96.     replaced with data until AFTER the phrase is selected.  Hmmm, I'll
  97.     have to test this, but there should be no reason a random phrase
  98.     couldn't reference another select/random phrase clause.  Ah, I'm
  99.     thinking too hard :)
  100.  
  101.     When you're selecting a phrase manually, the template line in
  102.     progress is displayed on the bottom "status" line of the screen.
  103.  
  104.     OK, how about an example?  Here's what I tested with in my template
  105.     file:
  106.  
  107.     ==================================================
  108.     On @MSGDATE@, @FROM@ @SELECT:..\SAID.PHR@ to @TO@:
  109.  
  110.     $BODY
  111.  
  112.     To which, @SELECT:..\TOD.PHR@, I reply:
  113.  
  114.     Nick
  115.     ====================================================
  116.  
  117.     The contents of the file "SAID.PHR" I used for testing was:
  118.  
  119.         said
  120.         spewed
  121.         bellowed
  122.         expounded
  123.         proclaimed
  124.         jabbered
  125.         mumbled
  126.  
  127.     and "TOD.PHR" contained:
  128.  
  129.         on this brisk morning
  130.         in the heat of the night
  131.         in a babbling frenzy
  132.         without a hint of intelligence
  133.  
  134.     all just jibberish to test with.  It works very nicely, tho.
  135.     The sysops will love me now!  BTW, I used a .PHR suffix to stand
  136.     for "phrases".  Phrases should be of a reasonable length (none
  137.     longer than 200 chars, for select, only 76 are usable).
  138.  
  139.     Please, let me know if you can think of any "colorful" extensions
  140.     to this idea! :)
  141.  
  142. o   ADD/DROP conference would not work if a DOOR.ID file was not present in
  143.     the packet.  I now default to QMAIL format in these cases, and create
  144.     QMAIL-style add/drop messages.
  145.  
  146. o   When you would modify a reply and change the header data, the index
  147.     list would not reflect these changes.  The "I"/Insert index list will
  148.     now accurately match reply header data.
  149.  
  150. o   Ooops.  "InBasket" Folder was not being packed.  In other words,
  151.     messages that were deferred, then later killed/deleted would still
  152.     be physically contained in the InBasket.Dat file.  They were marked
  153.     as inactive, so they couldn't be read.  Code to pack this file
  154.     has been reinstituted.
  155.  
  156. o   Double oops :)  FolderPath was never sufficiently documented as a
  157.     valid MR2.INI parameter.  It was metioned in the read.me file, but
  158.     was never entered into the MR2INI.ORG file.  It's there now, and ...
  159.  
  160. o   It never really worked, anyway.  It "kinda" worked, as it did
  161.     everything correctly except allow you to actually read deferred message
  162.     from anywhere except off of the MR2 home directory.
  163.  
  164. o   I just spent 3 days tracking and fixing a bug ... one that ends up I
  165.     put in just 5 days ago :).  In tracking this down, I did discover some
  166.     potential problems and even a memory leak with the Quick Thread
  167.     Selection screen logic.  These problems may have been the cause of some
  168.     of the rare/random reports of crashing I've received.  Well, at least
  169.     the memory leak is gone! (it was relatively minor)
  170.  
  171. o   In case you're just tuning in, MR/2, while an OS/2 app, still
  172.     "polls" the keyboard for input.  This is to ease mouse support. It's
  173.     technically possible to use semaphores and other OS/2 resources to
  174.     support both devices (kbd and mouse) w/o polling, and most OS/2-ers
  175.     will tell you this is the route to take.  Still, I could think of no
  176.     clean way of removing polling, short of spending a couple of weeks
  177.     and adding tons of code.  When I asked for suggestions in various
  178.     OS/2 programming conferences, it got fairly quiet. Zortech's default
  179.     libraries originally used a very tight polling loop.  MR/2 uses a
  180.     much friendlier loop, using calls to DOSSleep between every poll.
  181.  
  182.     I've increased the default sleep time from .30 seconds to .50
  183.     seconds.  Using PM SysInfo, my CPU showed 19% usage w/o MR/2 loaded.
  184.     At 30 ms delay, the meter showed 23%.  At 50 ms, it reads 21%.  I
  185.     investigated this in response to a reported problem where MR/2
  186.     allegedly hogged the CPU from a comm program (OS/2 hosted - HA5?).
  187.     I've never seen this myself ... MR/2 has never caused my system to
  188.     seem slow or impeeded my TE/2 use.  I'm in MR/2 more than anyone :),
  189.     and by default I'm using TE/2 probably more than the average user.
  190.  
  191.     Anyway, .50 seconds is the new default.  I'll probably make this
  192.     configurable for those that see a difference :).  I'm also planning
  193.     on playing with the background search thread priority now that OS/2
  194.     2.1 is out.  I'll see if the old IDLE thread bug still exists.
  195.  
  196. o   Modified the origin line find logic.  Original code, for some stupid
  197.     reason, started at the beginning of a message and search forward.  I
  198.     now start at the end and work backwards.  This will help prevent
  199.     erroneous detection of the origin when user-entered dashed lines are
  200.     entered as section separaters.
  201.  
  202.     In addition, I revamped the whole routine.  It seems to do a much
  203.     better job of finding the start of the origin section.
  204.  
  205. o   There was a problem on some systems with the personal conference not
  206.     showing in the selection list.  This was when working on an HPFS
  207.     drive, and the personal.ndx file was unpacked with a lower case file
  208.     name.  When MR/2 scanned conferences, it always matched on capital
  209.     letters for the personal index.  This was never a problem BEFORE
  210.     long name support, as the names always came back capitalized.  Now,
  211.     they come back as they are on disk.  I've fixed this problem and
  212.     scanned for other possibilities.  I think that was it ... time will
  213.     tell!   NOTE: The report I received that finally solved this one
  214.     specifically mentioned a 32-bit UNZIP.EXE.  He mentioned that all
  215.     worked OK with the -U switch added to the command line.  Just FYI.
  216.  
  217. o   Message Header Edit screen now allows you to enter conference numbers
  218.     that are not present within the control.dat master conference list.
  219.     Maximus QWK doors and PC Board's built-in QWK feature do not supply
  220.     complete conference lists.  Some QWK doors also make this optional to
  221.     reduce packet size.  Previously, you could not post into a conference
  222.     that was not defined in the contorl.dat file.  Now, you may manually
  223.     enter ANY number.  If MR/2 cannot find it in the master list, it will
  224.     beep and clearly identify the conference number as a possible problem
  225.     with the tag: "** WARNING: Unknown Conference **".  It's the user's
  226.     resposibility to make sure a message is posted to the correct
  227.     conference number.  Maybe I'll add a user-definable master list later.
  228.  
  229.  
  230. Changes included in v1.51
  231. -------------------------
  232.  
  233. o   RIME routed messages are now recognized as having a "header area" at
  234.     the top of the message.  If the message is "split" due to length,
  235.     the header area should be automically pasted into the top
  236.     of each part.
  237.  
  238. o   FILE_ID.DIZ files were crossed between classic and PM.  Fixed.
  239.  
  240. o   After a brief "vacation" <NOT!>, work is once again progressing :)
  241.  
  242. o   OK, I linked in HPFS longname support and modified some code to
  243.     retrieve and handle long file names.  The packet select screen
  244.     now shows TE/2-renamed files like "pc-ohio.qwk;1".  This will need
  245.     some testing and polish, but it works.  FileSpec in MR2.INI should
  246.     be changed to "*.q*" in order to see these files.
  247.  
  248. o   Ooops.  I couldn't find a PKUnzip that would work with long names.
  249.     Even the older OS/2 version puked.  This'll definitely be a problem
  250.     with other DOS based archivers.  So, I added a little diddy to
  251.     unqwk.cmd that, if a long name is detected, will copy the selected
  252.     file into the tmp$$ directory as MR2$TMP.QWK and unpack this.  It
  253.     then deletes the "temporary" QWK packet.  Works great with even
  254.     the DOS PKUnzip now!
  255.  
  256.     If you want to use TE/2 on a HPFS system and unpack the "BBS.QWK;1"
  257.     type names with a DOS or PK* product, you *must* set your unzipper
  258.     to unqwk.cmd.
  259.  
  260. o   Selecting an alternate conference using F4 from the Message Header
  261.     Edit screen was broken.  This has been fixed.
  262.  
  263. o   Packet path would get reset after every packet.  That meant that if
  264.     you used ALT-P to change to a different directory and opened a packet,
  265.     you'd lose that path when that packet was exited.  Packet path and
  266.     Video mode now are kept across packets
  267.  
  268. o   An MR/2 INI file other than MR2.INI may be specified via command line
  269.     parameter.  Use "MR2 /IMR2_ALT.INI" to use a file named MR2_ALT.INI as
  270.     the global MR/2 INI file.  I'm hoping that this helps in allowing
  271.     multiple instances of MR/2 to be open on the desktop.  Needs more
  272.     testing and experimentation ...  Opening two different MR/2 seesion
  273.     still crashes.
  274.  
  275.  
  276. Changes included in v1.50
  277. -------------------------
  278.  
  279. o   Read.me is now shifted around so that most recent changes (from now
  280.     on, at least) list at the top.  The old mr2.hst file that used to
  281.     house the list of modifications up to v1.00 (beta changes) is gone.
  282.     Mr2.hst now contains a list of changes from v1.00 up to v1.40.
  283.     This read.me file contains changes made in v1.40 and beyond.
  284.  
  285. o   Welcome and Goodbye screen now list on the Bulletins select menu.
  286.     You can view these, unobstructed and at length, any time you choose.
  287.  
  288. o   Minor change to the parsing of the @Fidonet@ variable.  Removed any
  289.     @fidonet suffix that exists in the origin line.
  290.  
  291. o   Ooops.  When using the internal editor, and editing mr2.ini, the
  292.     read clock string would pop onto every edit screen.  The clock display
  293.     is now suspended/resumed correctly.
  294.  
  295. o   Clock would still pop up if you would request HELP while inside the
  296.     editor, then CANCEL to clear the help screen.  Fixed.
  297.  
  298. o   ALT-W now "works" when inside the internal editor.  It will write the
  299.     entire file currently being edited, to another file named by you.
  300.     This does not change the original file's name.  It will overwrite any
  301.     existing file ... I guess there's an enhancement idea right there :)
  302.  
  303.     NOTE: The internal editor works similarly to the E and EPM editors
  304.     as far as CR/LF's go.  If you type in a long reply letting the
  305.     editor do the wrapping, there are not necessarily CR/LF's at the end
  306.     of every line.  These occur only where they previously occur, or
  307.     when you force a "hard return" by pressing ENTER.  MR/2's reply
  308.     saving logic places hard returns into the replies.  This means that
  309.     files that are created by using ALT-W *may* appear to be one long
  310.     line (or at least one long line per user-typed paragraph) when
  311.     viewed with another editor, printed, or typed to the screen.  If you
  312.     want to ALT-W write a reply with correct CR/LF placement, save the
  313.     reply AND THEN go into the reply conference and re-edit it.  Once it
  314.     has been saved, CR/LF's will be placed properly.  Let's see if this
  315.     causes a problem for anyone.
  316.  
  317.  
  318. Changes included in v1.48x
  319. --------------------------
  320.  
  321. o   Add/Drop - you can add or drop a conference via "door" command now.
  322.     Simply highlight a conference on the Conferences w/mail or the Write
  323.     New selection list.  Press ALT-A to add, ALT-D to drop, and confirm
  324.     the action.  Adding/Dropping a non-BBS conference (MR/2 created, for
  325.     example) does nothing.
  326.  
  327. o   Internal Editor:  cursor would not be visible in with screen displays
  328.     of 40 lines or more.  I was drawing the cursor, just too thin!  Now,
  329.     the cursor setting routine queries # lines and adjusts.
  330.  
  331. o   Modified the "no packets exist" screen to report the option of
  332.     pressing ALT-E to enter message to a known BBS even though no packets
  333.     exist.  Formatted the text on this screen a little better.
  334.  
  335. o   Added code to trim off nulls at end of any message.  Was trimming spaces,
  336.     but Internet messages sometimes had nulls.  Messes up the reply file
  337.     editing.  Also, if any embedded nulls are found, these *aren't* written
  338.     to the reply file OR save file.
  339.  
  340. o   Processing for IDATE improved a little.  I saw some DATE: lines that
  341.     started with weekday names like "Sun, ".
  342.  
  343. o   New INI parameter - ReplyStripTagline defaulting to YES.  Set it to NO
  344.     if you want to use SmartQuoting (which strips the original messages
  345.     tagline) but still want the tag quoted.
  346.  
  347. o   QuoteStyle now has an optional parameter, which is ON by default.
  348.     If you specify TagStyle=PCBoard,Autosense, you're saying that quote
  349.     style can use hi-end ASCII chars, but if it's a Fidonet reply,
  350.     change to Fidonet mode.  I'm not sure if I should include Internet
  351.     messages as Fido-typed tags ... I probably should.  I'll research.
  352.     Without the "Autosense" keyword, tag style will adhere strictly to
  353.     what's been specified.
  354.  
  355. o   NOTE: starting with the next release, this file will begin to list the
  356.     latest changes at the TOP of the file, with older revisions towards
  357.     the bottom.
  358.  
  359.  
  360. Changes included in v1.47x
  361. --------------------------
  362.  
  363. o   Added new Template file sections: SaveHeader and PrintHeader.  Lets
  364.     you define the header for messages when printed or saved.  If these
  365.     sections don't exist, the old default header is used.
  366.  
  367. o   Added more variables to aid in the support of the new header sections:
  368.     MsgRefNbr, MsgNumber, MsgStatus.  In addition, added some more variables
  369.     to aid in formatting sections.  @COL:45@ sets the next column to 45.
  370.     @RCOL:72@ says to right justify the next variable referenced at col 72.
  371.     @Center:40@ says to center the next variable referenced over column 40.
  372.     The @RCOL@ and @CENTER@ variables can be used w/o column specs to
  373.     right justify at "wrap column" or center the entire line between wrap
  374.     column and 1.
  375.  
  376.     Negative @COL@ specs may be supplied.  This will delete the specified
  377.     number of characters before the variable.  For example, @ITIME@@COL:-4@
  378.     would change 07:54:30 GMT to just 07:54:30.  Messes up, tho, if MSGDATE
  379.     ends up getting substituted for IDATE (no IDATE is found).
  380.  
  381.     See example.tf, at the end.  There's a section `unused` with some
  382.     doc/examples.
  383.  
  384. o   The template file now supports comment lines.  Simply start the line
  385.     (very first columns) with ";;" and the line is ignored.
  386.  
  387. o   Save message - if your "default" file in the INI has a "*" or a"?"
  388.     in the name, MR/2 shows the file selection list immediately upon
  389.     hitting the "S" to save.
  390.  
  391. o   MR/2 now will highlight all occurences of a search string within a
  392.     "hit" message.  This includes custom conferences, and soundex hits.
  393.     Soundex highlights may appear longer or shorter than the actual hit.
  394.     Since the length of these matches is variable, a "best-guess" is made.
  395.     Header area hits are highlighted also.  A multiple part search string
  396.     will cause ALL strings that have matched to be highlighted.  Color
  397.     defaults to yellow background, black letters, but ...
  398.  
  399. o   I added yet another 2-byte color combination to the end of my "archaic"
  400.     (as it's been referred to :) color specification.  Modify your INI
  401.     color line (example given):
  402.  
  403.         Colors=1E171E??
  404.  
  405.     replace the ?? with the two-digit color code for the HIGHLIGHT color to
  406.     use when displaying search result "hits".  The default, black on yellow,
  407.     would be specified as E0.
  408.  
  409.     If you don't like new the highlighted text, just define the highlight
  410.     color to be the same as normal text.  This will still show differently
  411.     in the header and quoted text sections ... let me know.
  412.  
  413. o   INTERNAL:  had to modify csoundex to return hit pointer.
  414.     check_for_string() now returns a point to a hit, and sets a global
  415.     length variable, __cfs_match_lgth.  ViewBuffer now has code to search
  416.     for match string(s) and hilite any/all found.
  417.     INI.cpp:  added another parse for new color possibility.
  418.  
  419. o   While viewing any message, you can press "~" to rewrap it.  This is
  420.     useful only in USENET (Internet) conferences where sometimes a message
  421.     gets posted without linefeeds.  MR/2 would display it on a single line,
  422.     but only give you access to the first 160 characters.  This rewrapping
  423.     is quite temporary (if you "go back" later to view the same message,
  424.     you'll have to rewrap it again), and totally manual; performed by user
  425.     keypress only.  I may INI-ize an automated/detection scheme later.
  426.  
  427. o   GetMessageLine:  added a new parameter, maxline_length.  This defaults
  428.     to 32000, but may be overridden.  Problem was with long usenet message
  429.     (no linefeeds), stacked string variable were getting overflowed.  This
  430.     becase apparent when searching for varibale values ... may exist in
  431.     other places.
  432.  
  433. o   Specified maxline_length on all calls to GetMessageLine() found in
  434.     MR2.cpp and MR2Util.cpp.
  435.  
  436. o   Added a bunch of code to better detect message display lines that are
  437.     "quotes" from previous messages.  This is not configurable at this time.
  438.     If I did too much, yell and I'll make this optional.  With all the
  439.     messages I looked at, quoting highlights were right 99% of the time.
  440.  
  441. o   New QuoteBody option - Paragraph.  If you specify something like:
  442.  
  443.         QuoteBody="%i│▌",Paragraph
  444.  
  445.     then you'll get a quotes like:
  446.  
  447.         MN│▌Yes-  DOS 6 upgrade is... (lines chopped for brevity)
  448.           │▌number of files that...
  449.  
  450.         MN│▌And then after your DOS...
  451.           │▌the manual of files you...
  452.           │▌release the whole thing...
  453.  
  454.        you can do the same thing with "%i>", and secondary lines
  455.        get just " >".  Use the "|" (shifted backslash) and Fidonet
  456.        sysops may not yell at you :)  (it's not hi-end ASCII).
  457.  
  458.     Bummer!  I just saw someone (a registered MR/2 user using a DOS
  459.     package, hmmmph!) quote with a technique that this doesn't yet
  460.     handle :(.  Just a minor nit, maybe I'll add something later to do
  461.     this (YOU CAN'T DO THIS WITH MR/2):
  462.  
  463.         MN┤Yes-  DOS 6 upgrade is... (lines chopped for brevity)
  464.           │number of files that...
  465.  
  466. o   Prewrapping still screws up.  I'll look at this tomorrow. :(
  467.     HA!  I had a problem where I saw too many lines as being "quoted".
  468.     Fixed this and text is flowing much nicer.  Time will tell.
  469.  
  470. o   Editor:  Hi-end ASCII (>127) is now available via the ALT-nnn (numeric
  471.     keypad entry).  Hi end characters that used to display with different
  472.     attributes now display correctly (normal text color).
  473.  
  474. o   Forms: ALT-nnn combinations can now be used to enter characters into
  475.     forms.  The Header Editing form will now accept these characters.
  476.     Still a problem ... display rountines aren't showing them ...
  477.     OK, fixed displays.  It was a trimming problem, hi-end ASCII getting
  478.     trimmed off the end as, when seen as signed chars, they're actually
  479.     LESS THAN a ' ' and would get trimmed.
  480.  
  481. o   Oops, old quote detect now also uses new "extended" quoted line
  482.     detection logic.
  483.  
  484.  
  485. Changes included in v1.46x
  486. --------------------------
  487. Beta bug fixes...
  488.  
  489. o   Trying to declare SmartWrapping or SmartQuoting in the INI file
  490.     resulted in a crash.  I messed up by referencing an uninitialized
  491.     pointer.  Sorry ... fixed now.
  492.  
  493. o   Modified the logic to pick out the quoting initials to better parse
  494.     Internet "from" fields.  Still needs some other strange-character
  495.     detection added (nick.knight@pc-ohio should reduce to nk>).
  496.  
  497. o   Fixed a bug where internet from fields that were filled to 25 characters
  498.     resulted in your own last initial being inserted as the senders second
  499.     initial (Michael.Hagerty@nitelog.com to Nick Knight, reply would
  500.     be quoted MK>)  This *was* fixed in v1.45 but not documented.
  501.  
  502. o   So my wrapping logic needs a little work :)  I added some things.
  503.     First SmartWrapping and SmartQuoting have three levels: No, Yes and
  504.     Full.  Full is aggressive, rewrapping all non-quoted text to the
  505.     defined wrap column (This is the old "YES").  If set to Yes (the
  506.     "new" option), wrapping occurs ONLY after a line feed has been
  507.     inserted by MR/2 (an overlength line was detected). The defaults are
  508.     "YES" ... we'll see if this works any better.  Limited testing, but
  509.     you *can* now shut these off w/o crashing!
  510.  
  511. o   Also, add an "~" to the end of any line (before the linefeed) and
  512.     MR/2 will strip out the "~" and keep the return that follows intact.
  513.     This is for stubborn wrapping problems.  Just in case :)
  514.  
  515.  
  516. Changes included in v1.45x
  517. --------------------------
  518. Another limitted release beta ...
  519.  
  520. o   INTERNAL: get_origin into mr2util.cpp from qwksrch.cpp.  Previously
  521.     it was considered part of the searching logic but now has more
  522.     applications.
  523.  
  524. o   If the quoting initials ended up longer than 9 characters (FROM name
  525.     had no spaces), the string was not properly terminated.  This resulted
  526.     in garbage in the initials and in one reported case, a crash.  This
  527.     would occur most often in internet conferences.
  528.  
  529. o   New module: Wrap.cpp - WrapMessageText() called from MakeReply()
  530.     and SaveReply().
  531.  
  532. o   New function in mr2util.cpp: fQuoteLine().  This used to be a simple
  533.     macro used in a single place.  It was needed in another chunk of
  534.     code so I made it a function.  This also allows for extensions, as
  535.     all MR/2 currently recognizes is a '>' in any of columns 1 through
  536.     5.  If one's there, I call it a quote line.
  537.  
  538. o   New INI variable:  SmartQuoting, defaulting to "YES" but may be
  539.     manually set to NO via INI settings.  SmartQuoting will "prewrap"
  540.     the reply file that MR/2 generates, compensating for the user
  541.     initial prefix string.  In other words, when you first see the
  542.     reply, the original sender's text will be rewrapped and quoted so
  543.     as to fit inside the WrapLinesAtColumn defined in MR2.INI.
  544.  
  545.     NOTE: that existing quoted lines ARE NOT REWRAPPED.
  546.  
  547.     ALSO NOTE: SmartQuoting will *not* quote past the first tearline.
  548.     If this creates an incovenience, please let me know.
  549.  
  550. o   New INI variable:  SmartWrapping, defaulting to "YES" but may be
  551.     manually set to NO via INI settings.  SmartWrapping will change
  552.     the logic used by MR/2 when the edited reply file is saved.
  553.     If set to NO, the old wrapping method is used.  When left on,
  554.     MR/2 will format your NEW text with some intellegence.  There is
  555.     logic to differentiate between a "hard" and "soft" return, and
  556.     soft returns will be removed if necessary.
  557.  
  558.     The old technique would simply insert hard returns to make the line
  559.     fit within the declared wrap column.  The remaining section of the
  560.     original line would often be short (one or two words) and look out
  561.     of place, stranded on a line by itself.  The new technique attempts
  562.     to rewrap the text as a whole and eliminate some of the older
  563.     method's ugly results.
  564.  
  565.     NOTE: Quoted lines ARE NOT REWRAPPED, these are always considered
  566.     to be prefixed and terminated by hard returns.
  567.  
  568. o   New template sections are definable:  NewInternet and NewNetmail
  569.     for creating new messages in these private-mail conferences.
  570.  
  571. o   The NewMessage template section was never actually used ... the
  572.     "default" direct section was always being used for new messages.
  573.     Fixed.
  574.  
  575. o   When editing a message header and the conference is the Internet or
  576.     Netmail defined conference, the "private" flag is set to YES.
  577.  
  578. o   INTERNAL:  SetSection() moved into mr2util.cpp.
  579.  
  580. o   INTERNAL:  AppendFile() - replaced fpreamble with multivalued
  581.     "subsection" parameter.
  582.  
  583. o   New template section: `RIME` can be defined for use when replying
  584.     to a message in private mode.  If a reply is private, and the
  585.     source message is determined to be from a RIME source (Postlink
  586.     origin is last line of message), then this section is used in
  587.     generating the reply.  This allows for private, routed mail.
  588.     Not sure what to do about "new" private, routed messages.
  589.  
  590. o   New variables:  @RimeIDCode@ and @RimeSiteNo@ for use in the RIME
  591.     section for "routing" private messages.  Will result in blanks unless
  592.     replying to a message with a Postlink origin line.
  593.  
  594. o   New Variables:
  595.  
  596.         @RimeIDCode@ and @RimeSiteNo@, defined above.
  597.  
  598.         @Version@ for the MR/2 version.
  599.  
  600.         @SerialNumber@ is replaced by the registered serial number
  601.                 (empty if not registered).
  602.  
  603.         @UserName@ is replaced by your user names as found in the QWK
  604.                 control.dat structure.
  605.  
  606.         @IDate@ is replaced with the Internet "Date:" spec, or the
  607.                 the same results as @MDATE@ if a date string is not
  608.                 found.
  609.  
  610. o   New template section: `Forward`.  If this section is declared, it is
  611.     used as the template "prefix" for forwarded messages.  NOTE:  $Body is
  612.     not required, this section is inserted as a whole.  If not declared,
  613.     the old MR/2 default forward prefix is used.
  614.  
  615. o   See EXAMPLE.TF for examples of all new section capabilities.  My name
  616.     and email addresses are plastered all through here.  You'll want to,
  617.     of course, change these to your own :)
  618.  
  619. o   ** DO NOT USE THE ALT-W feature inside the internal editor. **
  620.     ALT-R seems to work ok (Read or "insert" file).
  621.  
  622.  
  623. Changes included in v1.44x
  624. --------------------------
  625.  
  626. o   When replying into the Internet mail conference, the @INTERNET@
  627.     variable will better represent a true Internet address.  If the
  628.     Reply-To: line isn't present, MR/2 then looks for a "From:" line and
  629.     attempts to parse out an address.  If no From: line is detected,
  630.     MR/2 now looks to the last line of the message.  If the sender has
  631.     included his address inside of parenthesis, then this is used as the
  632.     INTERNET value.
  633.  
  634. o   Added ALT-R and ALT-W support to the internal editor.  ALT-R prompts
  635.     for a file name, then reads that file into the current cursor
  636.     position.  ALT-W prompts for a file name and writes the entire edit
  637.     buffer to that file (overwritting).  I'm not happy this code ... and
  638.     it doesn't seem to work that well.  I also noticed that the editor
  639.     doesn't save files in full text mode (no CR's).
  640.  
  641. o   Modified msg2rep.cmd so that if archiver.id file isn't found, it
  642.     defaults to pkzip (configurable).  If using no packet entry, no
  643.     unarchiver was called, so no archiver.id is created.  We need to
  644.     be able to specify a packet as a default.
  645.  
  646. o   If a local INI specified a value for Internet and/or Netmail, it
  647.     was not cleared when the packet was exitted.  If the next packet
  648.     opened did not reset these values (or did not have a local INI), then
  649.     some erroneous detection of network mail would result.  Fixed.
  650.  
  651. o   The internal editor now saves and ALT-W writes files in TEXT mode.
  652.     I had to do cr/lf translations myself :(.  Writing is OK now, although
  653.     I'm still hoping to recognize and write only a block, if something is
  654.     highlighted/marked.  Reading/importing a text file also works OK, but
  655.     since I'm tricking the editor by inserting the file into the internal
  656.     editor keyboard buffer, it runs more slowly than it should.  Plenty of
  657.     room for improvement here :)
  658.  
  659.     THIS IS BUGGY AND MAY GET YANKED !!!!
  660.  
  661. o   I modified the "origin" line finding logic to recognize more common
  662.     reader/network tearline styles.  For instance, MR/2's own TwoLine
  663.     style tagline is now recognized as the beginning of the origin section
  664.     (and end of the BODY section).
  665.  
  666. o   INTERNAL:  QwkSrch.cpp - modified fopen() call to open custom conference
  667.     NDX file.  It now prepends the BaseDir and WorkPath.  MR2PM, under some
  668.     interesting circumstances,  would write these files to the wrong
  669.     directory.  MR/2 classic probably could have, too.
  670.  
  671. o   Qwksrch.cpp - James Schmidt found a couple of problems.
  672.     If you set the CHECK= parameter for a custom conference to TO, FROM
  673.     and/or SUBJECT, and the source message used mixed case text, a match
  674.     would never be found.  Fixed.  Also, if a message had no detectable
  675.     origin line, for some strange reason I called the whole message part
  676.     of the origin/tagline area (and it had no "body" section).  This is now
  677.     reversed - a message with no tearline is all "body" and has no origin
  678.     section.
  679.  
  680.  
  681. Changes included in v1.43x
  682. --------------------------
  683.  
  684. FOLKS:  Same as before ... 1.42 was kept *very* internal.  This version
  685. is still beta stuff.
  686.  
  687. o   Started coding of a REXX script to handle detection of the archiver
  688.     used to pack the mail packet.  A code is returned that will be used to
  689.     branch to the correct command for unpacking.  To me, this is the ideal
  690.     solution, as it is forever extensible.  I've got a scheme for a packer
  691.     script (for replies) that will match the unpacker used.  I'm new to
  692.     REXX coding (this was the perfect excuse to get my feet wet :), so
  693.     if anyone wants to make improvements and/or enhancements, I'll welcome
  694.     them.  (file is named Unqwk.cmd)
  695.  
  696. o   Create msg2rep.cmd - a REXX script for packing replies into a .rep
  697.     file based on the method used to unpack the original packet.  The source
  698.     packet *must* have been unpacked with unqwk.cmd (or, at least, the file
  699.     "archiver.id" must exist and identify the correct packer to use).  This
  700.     script opens up "archiver.id" and extracts the id number.  Based on that
  701.     number, a branch is made to the correct packet command.
  702.  
  703.     NOTE:  You may have to modify these files a tad IF your archivers
  704.     are not in your "PATH" environment variable.
  705.  
  706.     NOTE:  These command are useful if you use multiple packet sources
  707.     (BBS's) that use different compression techniques.  If you can get
  708.     by with a single zipper/unzipper command, the "old" way is OK, and
  709.     in fact, still more efficient.  These new files simply provide
  710.     additional flexibility for those that frequent a variety of BBS's and
  711.     need this functionality.
  712.  
  713.     INSTALLATION:  Modify your MR2.INI file to declare:
  714.  
  715.         Zipper=..\msg2rep
  716.         Unzipper=..\unqwk
  717.  
  718.     the default .cmd files depend on all archivers being in your "path".
  719.     If not, you may modify the path = '' statement at the top of each
  720.     file to reflect the correct path, or modify each zipper command
  721.     separately to reflect each's valid path.
  722.  
  723. o   INTERNAL: packet_exists() now returns TRUE+1 if a .msg file is found
  724.     in the work directory.
  725.  
  726. o   INTERNAL: packet_exists() and remove_packet_exists now use the file
  727.     name "control.dat" when checking (and removing) packet exist status.
  728.     If you left a no-packet entry session with ALT-X, then tried to go back
  729.     in later, MR/2 would not see the existing work (since no messages.dat
  730.     file ever existed).  Control.dat will always exist if a "packet" is
  731.     open.
  732.  
  733. o   The prompt "Work area has an open packet" has been enhanced.  You may
  734.     still see this prompt.  However, if the work directory is found to
  735.     contain replies, the prompt will read "Open packet with REPLIES found".
  736.  
  737. o   If an error occurs when unpacking the packet, you will now remain
  738.     inside MR/2 to select a new packet, or whatever.
  739.  
  740. o   IF an error occurs while packing replies, the work directory is *not*
  741.     purged.  Previously, any error while spawning the packer still let the
  742.     files be deleted.  What happens now is, after the command error is
  743.     reported, you're prompted that an open packet with replies exists.  The
  744.     correct course of action is to go back in the packet (continue working
  745.     with the open packet) fast exit with ALT-X and correct the zipper
  746.     problem.
  747.  
  748. o   Cleaned up and tested UNQWK.CMD and MSG2REP.CMD.  Made sure error codes
  749.     were properly returned to MR/2.  Seems to work well with the new error
  750.     handling described above.
  751.  
  752. o   Added new variable @ISUBJECT@ that resolves to the Internet message
  753.     subject line (often different than the QWK "subject" field).
  754.     I hope there's a limit to the size of these things ... I only
  755.     accomodate "realistic" lengths.  We'll see.
  756.  
  757. o   Ooops.  New template section logic didn't accomodate new messages
  758.     created w/o replying.  The template file can now define a section for
  759.     `NewMessage`.
  760.  
  761. o   There was a problem with clearing of search results if there was no
  762.     local INI when a packet was closed.  Previously, hit counters for custom
  763.     conferences would not represent the correct counts (counts would not
  764.     be cleared for the next packet).  Now, all data is cleared (MR2.INI is
  765.     always reloaded after a packet is closed).
  766.  
  767. o   The INI parameter SplitLongMessages has been enhanced.  YES/NO still
  768.     function in the old way; YES will cause messages to be split at 92
  769.     lines (90 lines of message, 2 lines for the <cont..d> footer).  You
  770.     can now, however, place a number here as an option.  This sets
  771.     splitting to YES, but modifies the line count cutoff to be the specified
  772.     value (instead of 92).  This value *must* be greater than or equal
  773.     to 10 (I've been told of a BBS system that requires no more than 16
  774.     lines <really!>, so I figure 10 will be a "safe" minimum).  I would
  775.     suggest using a reasonable number if you need to change the default
  776.     at all.
  777.  
  778.  
  779. Changes included in v1.42x
  780. --------------------------
  781.  
  782. FOLKS!!!:  This is truely a beta ... please save your old working
  783. MR/2 version before trying this release.  I changed alot of code, and while
  784. eveything appears to be OK so far ... well, we all know better than to
  785. get too relaxed, eh? :)
  786.  
  787.  
  788. o   New INI parameters V0 through V9 allow you to set user-defined text
  789.     strings as template variables.  Uses of the strings @V0@ through @V9@
  790.     in the tenplate file will be replced with the corresponding defined
  791.     text string.
  792.  
  793.     These variables can contain any other variables, including other "V"
  794.     variables.  This allows for a template to be defined with an
  795.     attribution line of @V0@, for example, and this line can be changed
  796.     for each BBS by defining different values to V0 in the BBSs local
  797.     INI file.  The variable replacement is recursive, so any number of
  798.     replacemnet levels is possible.  It's also possible to confuse the
  799.     system by circularly defining variables.  My rule:  keep it where
  800.     it's understandable.
  801.  
  802.     For example, if you add a line to MR2.INI that says "V0=1:157/200"
  803.     and your template file starts "...writing from Fidonet address @V0@",
  804.     the fidonet node address will be placed in the reply.
  805.  
  806. o   New INI parameters "INTERNET" and "NETMAIL".  Use these variables to
  807.     declare which conferences, if any, handle Internet mail and Fidonet
  808.     netmail, respectively.  For example, PC-Ohio has Internet mail in
  809.     conference 5 and Fidonet netmail in conference 6.  My PC-OHIO.INI
  810.     file has:
  811.  
  812.     Internet=5
  813.     Netmail=6
  814.  
  815.     Nerd' Nook has Netmail in conference in 139 and no Internet capabilities.
  816.     My NerdNook.INI file has the lines:
  817.  
  818.     Internet=-1
  819.     Netmail=139
  820.  
  821.     The "-1" tells MR/2 that there is no Internet support, and makes sure
  822.     that the Internet section template is not referenced.
  823.  
  824. o   New variables @INTERNET@ and @FIDONET@.  The INTERNET variable will
  825.     be replaced with the "Reply-to:" address found in Internet mail.  The
  826.     target address will be stripped of extra verbage and should represent
  827.     a correct and "ready-to-go" internet address.  The FIDONET variable
  828.     will be replaced with the full Fidonet address found in the origin
  829.     line of the current message.  If either one of these variable can
  830.     not be resolved, then an empty string is substituted.
  831.  
  832.     These variables are meant to be used for personal mail addressing
  833.     using template "sections".  See next blurb.
  834.  
  835. o   Sections in the template file `Internet` and `Netmail`.  You may now
  836.     allocate "sections" within the template file.  Sections are denoted
  837.     and named by a string between "accent" characters (`).  The first
  838.     template file section has no name and will be refered to as the
  839.     "default" section.  A section ends at the next section name string,
  840.     or at the end of the file.
  841.  
  842.     When replying to messages targetted for a conference declared to
  843.     be the INTERNET or NETMAIL conferences, MR/2 will switch template
  844.     sections to the corresponding section.  If ever a section is not found
  845.     (by name matching), the default section is used.
  846.  
  847.     This allows for Fidonet netmail and Internet mail to have templates
  848.     that correctly set up destination addressing.  See the file Example.tf
  849.     for examples of sections.
  850.  
  851. o   Mods to reply creation ... removed the beginning CR/LF when creating
  852.     the reply file.  Made changes to the way the template file handled
  853.     CR/LF spacing.  Template file's allignment matches reply files
  854.     better now (line spacing/blank lines).
  855.  
  856. o   When replying and the FROM user name is an Internet made-up name with
  857.     periods imbedded, MR/2 nulls-out the quoting initials.  The quoted text
  858.     is simply marked with whatever symbol is defined in the INI, usually
  859.     a ">" (no initials preceed the ">").
  860.  
  861. o   Oh boy.  I modified the Save Reply logic of my QWK class.  This is
  862.     dangerous, simply because it changes the way replies are saved.  I'll
  863.     test it thoroughly before letting it out.  *Please* report any problems
  864.     to me quickly.
  865.  
  866.     The change comes when splitting messages (it may effect more, my hope
  867.     is that it doesn't :).  IF you're in sending Internet mail or Netmail,
  868.     the message "header" will be copied to each split section.  In most
  869.     cases, this will be the correct function.  There may be cases where
  870.     it isn't.  Yell at me and I'll make it configurable.  In other words,
  871.     netmail or internet mail that's split will be addressed properly for
  872.     all "parts" if addressing is done on the first line(s) of the message.
  873.  
  874. o   When replying into the Fidonet netmail conference, the source message
  875.     is first checked to see if the first line starts "From:".  If so, and
  876.     what follows appears to be a Fidonet node designation (it has a ":" and
  877.     a "/"), then this is used as the value of the FIDONET variable.
  878.     If not found, the origin line is found.  In netmail messages (the ones
  879.     I receive at least), there is no origin line, just a "From:" identifier
  880.     on the very first line of the message.
  881.  
  882.  
  883. Changes included in v1.41x
  884. --------------------------
  885.  
  886. o   Template file processor would lockup if the named template file did
  887.     not exist.  Same ZTC bug where fopen() doesn't return NULL on error.
  888.     Fixed with a call to my file_size() function.
  889.  
  890. o   Taglines now are filtered for variables (e.g., @FROM@).
  891.  
  892. o   Took template file checking one step further - if file name is
  893.     empty, processing doesn't even start.
  894.  
  895. o   Distribution packets now contain a FILE_ID.DIZ file to help automate
  896.     BBS description entry.
  897.  
  898. o   The initial MR2.INI file now specifies that the INTERNAL editor now
  899.     be used as the default.  The initial INI editing is still performed
  900.     inside the E editor.
  901.  
  902.  
  903. Changes included in v1.40x
  904. --------------------------
  905.  
  906. Not much feedback on the internal editor yet.  I used it for a while but
  907. switched back to QEdit.  I need file import/export capabilities myself; I'll
  908. be adding that to the internal editor soon.
  909.  
  910. o   Save file wildcarding logic fix.  First, if you entered a spec like
  911.     "c:\tmp\*" and pressed ENTER, MR/2 would save the message to that file
  912.     name, which is illegal.  No error would be reported.  Now, when ENTER
  913.     is pressed and a wildcard is in the file name specified, MR/2 converts
  914.     the ENTER into an F2 keypress and shows a file pick list.
  915.  
  916. o   If "C:\tmp\*" was provided as the save file pick list, and a file was
  917.     selected from the list, the file name returned would be grunged.  The
  918.     file name field would be filled with some mutation of the subject line
  919.     from the message display.  This was due to the missing ".", which I
  920.     assumed would always be there.  This has been corrected.
  921.  
  922. o   New INI parameter:  "TemplateFile".  This is another one of those
  923.     features that is merely a starting place and has lots of future
  924.     expansion possibilities.  Place a file name here that defines a
  925.     template for all message replies.  The reply will created using this
  926.     file as a guide BEFORE you edit it.  This allows for any necessary
  927.     cleanup.  The "template" file I used for testing looked like this
  928.     (note that the variables used will be documented below):
  929.  
  930.     -------------------------------------------------------------------
  931.     Subject: @Subject@
  932.     In a message dated @DATE@, @FROM@ said to @TO@:
  933.  
  934.  
  935.     $BODY
  936.  
  937.  
  938.     Nick Knight
  939.  
  940.     From @from@ reading @CONFNAME@ (@CONFNUM@) on @BBSID@, to @TO@
  941.     Subject: @Subject@
  942.  
  943.     FidoNet:    1:157/2
  944.     Internet:   nick.knight@pcohio.com
  945.     Compuserve: 76066,1240
  946.  
  947.     To First:   @tofirst@
  948.     To Last:    @tolast@
  949.     YYMMDD:     @yymmdd@
  950.     Date:       @date@
  951.     From First: @fromfirst@
  952.     From Last:  @FromLast@
  953.     Msg Date:   @msgdate@
  954.     Msg Time:   @msgtime@
  955.     Day:        @Day@
  956.     Julian:     @Julian@
  957.     Time:       @Time@
  958.     Time 24:    @Time24@
  959.     AM/PM:      @AmPm@
  960.  
  961.     Upper:      @Upper@@Subject@ @upper@@day@
  962.     Lower:      @lOWER@@Subject@ @lower@@day@
  963.     Mixed:      @mix@@From@ -> @mix@@to@
  964.     -------------------------------------------------------------------
  965.  
  966.     The quoted version of the original message is inserted at the $BODY
  967.     marker, which is required.  NOTE that this is not an appropriate
  968.     template file for use within internationally echoed conferences.
  969.     It's offered here merely as an example.
  970.  
  971.     The section before the $BODY line allows for an "attribution"
  972.     line or section.  The area below the $BODY marker works as a
  973.     signoff or signature section.
  974.  
  975.     AGAIN, this feature is under development and may be changed in the
  976.     next couple of versions.  My idea is to add more blocks to this file.
  977.     For example, a definition for saved message headers, forwarded
  978.     header definition, etc.,.  I've got plenty of ideas.
  979.  
  980.     The reply file generated by my test template file looked like:
  981.     -----------------------------------------------------------------
  982.  
  983.     Subject: NEW ZOO
  984.     In a message dated 03/06/93, DAN HANSON said to ALL:
  985.  
  986.     DH>I saw this in Time Magazine.  The New York Bronx Zoo has been
  987.     DH>renamed to the International Wildlife Conservation Park.  In
  988.  
  989.     <My reply would be inserted here.>
  990.  
  991.     Nick Knight
  992.  
  993.     From DAN HANSON reading Main Board (0) on PC-OHIO, to ALL
  994.     Subject: NEW ZOO
  995.  
  996.     FidoNet:    1:157/2
  997.     Internet:   nick.knight@pcohio.com
  998.     Compuserve: 76066,1240
  999.  
  1000.     To First:   ALL
  1001.     To Last:    ALL
  1002.     YYMMDD:     930306
  1003.     Date:       03/06/93
  1004.     From First: DAN
  1005.     From Last:  HANSON
  1006.     Msg Date:   03-06-93
  1007.     Msg Time:   14:21
  1008.     Day:        Saturday
  1009.     Julian:     065
  1010.     Time:       03:08
  1011.     Time 24:    15:08
  1012.     AM/PM:      PM
  1013.  
  1014.     Upper:      NEW ZOO SATURDAY
  1015.     Lower:      new zoo saturday
  1016.     Mixed:      Dan Hanson -> All
  1017.     -----------------------------------------------------------------
  1018.  
  1019. o   Variables are available for use in the template file.  They are
  1020.     currently only used by the reply file generator.  I'll add the
  1021.     capability to other areas as I think of them.
  1022.  
  1023.     The following variables have been provided:
  1024.  
  1025.         BBSID                           TIME
  1026.         CONFNAME                        TIME24
  1027.         CONFNUM                         TO
  1028.         DATE                            TOFIRST
  1029.         DAY                             TOLAST
  1030.         FROM                            YYMMDD
  1031.         FROMFIRST                       UPPER
  1032.         FROMLAST                        LOWER
  1033.         MSGDATE                         MIX
  1034.         MSGTIME                         AMPM
  1035.         SUBJECT                         JULIAN
  1036.  
  1037.  
  1038.     The literals UPPER, LOWER and MIX are not actual variables, but
  1039.     modifiers.  They will convert the case of the NEXT variable
  1040.     replacement to either all upper, all lower or mixed case, respectively.
  1041.     Mixed case basically lower cases all letters except the first letter
  1042.     of each word.  See the example above for more detail.
  1043.  
  1044. o   GREATER CHICAGO Online BBS is now offering a service called the
  1045.     "OS/2 Shareware Author Support Program".  They are willing to handle
  1046.     Visa/Mastercard charges for shareware authors.  Starting immediately,
  1047.     MR/2 may be registered by "charging" it!  You can register online by
  1048.     calling Greater Chicago Online BBS at (708) 895-4042.  Alternatively,
  1049.     you can provide your charge card information to me directly on the
  1050.     MR/2 registration form provided (register.doc).  There is a $2.00
  1051.     handling fee associated with all charged registrations, making the
  1052.     total charged registration cost $22.00 US for domestic orders.
  1053.  
  1054.     Shareware authors may get more information on the OS/2 Shareware
  1055.     Author Support Program by calling the GREATER CHICAGO Online BBS at
  1056.     the number above (leave a note to the sysop) or by Compuserve mail
  1057.     at 70404,3277.  Fidonet netmail can be sent to Bill Cook at 1:115/895.
  1058.  
  1059.  
  1060. KNOWN BUGS AND STUFF
  1061. ====================
  1062.  
  1063. Mouse support is missing from some of the "inform user" screen.
  1064.  
  1065. The TEMPORARY directory MUST remain a subdirectory of the MR2 home dir.
  1066.  
  1067. You can't use "\" or "&" as part of any search text (since MR/2 uses them
  1068. as delimiters).
  1069.  
  1070. You can't cancel a search until the first "hit" is displayed.  This is
  1071. particularly irritating when soundex searching, since soundexing is
  1072. noticably slower.
  1073.  
  1074. If you set "SkipReadMessages" to true, you cannot gain access to a
  1075. conferences where all messages have previously been read.
  1076.  
  1077. Other frills that have not yet been addressed:  Bulk marking, carbon
  1078. copies, twit filter, function key assigning. There are probably others.
  1079. Feel free to bombard me with requests.
  1080.  
  1081. No long file name support.  Since QWK is a DOS thing, the only place I can
  1082. see using it is for packet names (if the user renames it).  Any ideas?
  1083.  
  1084.  
  1085. ************************************************************************
  1086. NOTE:  READ.ME format has changed!  Go to the BEGINNING of the file for
  1087. the most recent changes!!!
  1088. ************************************************************************
  1089.  
  1090.