home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / vrac_os2 / mr2_208.zip / READ.ME < prev    next >
Text File  |  1994-09-04  |  48KB  |  964 lines

  1. MR/2 - A QWK Compatible Mail Reader for OS/2.  09/04/94
  2.  
  3. Copyright (c) 1994, 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 $25 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. **************************************************************************
  62.  
  63.                Nerd's does support file requests (157/2 or 157/3)
  64.  
  65. Compuserve:    I check only once a week or thereabouts.  Try mail to my
  66.                user ID  - 76066,1240, although internet mail has proven
  67.                to be a faster approach.
  68.  
  69.  
  70. Changes included in v2.08
  71. -------------------------
  72.  
  73. o   By request, and it made sense, the conference name is displayed
  74.     at the top of the message index screen.  I simply show the
  75.     "packet id" string that is optionally shown on the message viewing
  76.     screen.
  77.  
  78. o   I noticed that the reply header editing screen still was using that
  79.     aweful light red color (on top of white) for the current field.  I
  80.     changed this to normal red, and I think it's much easier to read.
  81.  
  82. o   Also by request, when MR/2 clears the screen to pack replies, a
  83.     simple message is posted informing you of this.  On some system,
  84.     the delay was significant, and with the screen totally blank,
  85.     confusion resulted.  The message is simple and modest; I depend on
  86.     the archiver to write to stdout, and pretty-stuff wouldn't scroll
  87.     off the screen nicely.
  88.  
  89. o   MR/2 would sometimes "lock up" when moving backwards through message
  90.     by thread (using Ctrl-PageUp or backspace).  This has been fixed.
  91.  
  92. o   Importing text into the internal editor (Alt-R) would often result
  93.     in the cursor being shifted to the right one character from where
  94.     keypresses would insert characters.  This has been fixed.
  95.  
  96.  
  97. Changes included in v2.07
  98. -------------------------
  99.  
  100. o   Minor changes - mostly in the interface and communications between
  101.     my external PM editor, ME/2.
  102.  
  103.  
  104. Changes included in v2.06
  105. -------------------------
  106.  
  107. o   Rime-routed messages that were long enough to be split missed the
  108.     auto-routing line placement logic on secondary parts.  I was looking
  109.     for too exact a match on "RIME".  Also, I keyed on "Postlink" within
  110.     the original message to tell if it was routed.  Editing the header on
  111.     pass two, the original message was no longer available.
  112.     Anyway, fixed :)
  113.  
  114. o   Added support for ME/2, a PM-based editor I've been playing with.
  115.     ME/2 is an MDI-based editor with toolbar, statusbar, multiple
  116.     file windows, speller, thesaurus, simple printing ... tons of
  117.     features.  I'm putting it out at the same time as this (ME2_099.zip).
  118.     If you use ME/2 as your editor, it is preloaded by MR/2 on startup.
  119.     MR/2 can control it using IPC tricks, so response is better than
  120.     you'd get with any normal PM editor.  Session switching back and
  121.     forth is handled automatically.  See the me2.doc file included with
  122.     the ME/2 distribution zip.
  123.  
  124. o   INI parameter added - "SourceFile".  If specified, a source message
  125.     that is being replied to will be quoted to this file, and the actual
  126.     reply file will contain no quoted text, just an empty template
  127.     read-to-complete.  This is used by ME/2 as an option, and may be
  128.     useful for other setups.
  129.  
  130.  
  131. Changes included in v2.05
  132. -------------------------
  133.  
  134. o   Resolution of the source Internet address enhanced slightly.  I moved
  135.     the check for PC-Boards @From: specifier before some of the others, as
  136.     if this line is there, it's much more reliable than searching for the
  137.     tokens like "From: ".  Some of my recent replies detected invalid
  138.     Internet addresses.  This should help. (After a couple of replies,
  139.     it does! :).
  140.  
  141. o   Setting extended attributes on packets stored on a LAN Server network
  142.     drive would actually modify the datestamp.  I added code to query the
  143.     original date/time and then reset this *after* the EA's were applied.
  144.     Seems to behave properly now.
  145.  
  146. o   I screwed up and overwrote a large, completely unread packet tonight.
  147.     I was bummed.  But wait!  I now save the PTR file and can reset my
  148.     pointers!!  Only ... MR/2's saving mechanism seems to have been broken
  149.     and I uploaded a 3 month old file.  Needless to say, I got more messages
  150.     than I needed!  What a mess ... I had to reset all my pointers by hand
  151.     and I know I missed some mail.  I then fixed the date compare of PTR
  152.     files.  They should overwrite the existing one now, if newer, and do
  153.     it correctly.  For whoever it was that reported this and that I
  154.     ignored ... you got your revenge!
  155.  
  156. o   MR/2 would crash when you pressed escape from the "NO PACKETS FOUND"
  157.     message.  Had something to do with the aggressive optimizations.  I've
  158.     "unoptimized" a bit until I can figure this out.
  159.  
  160. o   I made a slight goof when I fixed the recursive variable replacement
  161.     in the last release.  I made it so any *real text* with an "@" in it
  162.     would get removed, whether it had a "\" proceeding it or not.  You see,
  163.     the "\" would *not* be there the second pass, so the "@" was unprotected.
  164.     If there was a string between two @'s, this would be removed too, as
  165.     it was assumed it was an invalid variable name.  I now leave unresolved
  166.     variables in the text as-is.  This bug effected mostly fidonet
  167.     and internet addresses.  Fixed.
  168.  
  169.  
  170. Changes included in v2.04
  171. -------------------------
  172. NOTE:  This version includes alot of optimization from compiler switches
  173. and from some rearranging of localized code.  I used it personally for
  174. several weeks, and the only "problems" I saw were minor video (cosmetic)
  175. issues ... like a "black hole" for a second or two when one of the "use
  176. existing?" prompts comes down.  I'll track this, but you may see it until
  177. the next version.  The fixes in this release are beneficial, and the
  178. video problems just minor and cosmetic.
  179.  
  180. I've also traced some recent slow downs to the folder subsystem; packing
  181. log files and building indices in particular.  I do this way too often, and
  182. it takes too long.  I will spend some time on these shortly, attempting to
  183. hit the disk far less than happens currently.
  184.  
  185. o   New INI variable "ALIAS" allows you to set a user name for yourself
  186.     other than the one found in the BBS Control.dat file.  This alias
  187.     name will be placed in the FROM field of all your replies.  Best used
  188.     in a "local", BBS-specific INI file when accessing multiple BBS's.
  189.     For Example:  Alias=Billy-Bob will override the settings in Control.dat
  190.     (say for this example the BBS name was "William B Gooden").  Replies
  191.     would come from Billy-Bob.
  192.  
  193. o   Turns out that the @variable logic was not as recursive as I had
  194.     advertised.  For example, inserting a "phrase file" line that
  195.     contained yet another variable to replace did not work.  It does now :)
  196.  
  197. o   Fixed a crash when modifying replies (changing, killing ...).  If the
  198.     subject happenned to end in column 25 with a number BUT not be a
  199.     "split reply", MR/2 would crash looking for the "/" in "x/n".  For
  200.     example "OS/2 <...> 2.11" would cause this crash to occur.
  201.  
  202. o   Reply log would not always be accessible without an existing packet.
  203.     If you had no messages in your inbasket or replies for a specific
  204.     BBS, ALT-E (No packet entry) would not allow access to the reply log.
  205.     Fixed.
  206.  
  207. o   Some major under-the-hood work.  I played around with some compiler
  208.     switches that have always been there, but have remained undiscovered
  209.     until now. <read: it sometimes pays to read the manual, even if
  210.     it's 3 years late :>.  I've compiled MR/2's code, including the
  211.     speller, thesaurus and editor, with 286-or-better code generation
  212.     turned on.  The 386 code generator caused problems, and I still have
  213.     some v1.3/286 users.  One day I'll go full 32-bit, but not yet :)
  214.     Also, I turned on some aggressive optimizations.  I also recompiled
  215.     the ZTC tools with these switches.  I tried the C runtime library,
  216.     but it showed some bad signs, so I switched back.
  217.  
  218.     All this does is provides a little more snap, and a 12k reduction
  219.     in EXE size.  Nothing revolutionary, but every bit helps.
  220.  
  221.  
  222. Changes included in v2.03
  223. -------------------------
  224.  
  225. o   ADD/DROP still had a problem whenever the DOOR and CONTROLNAME
  226.     specifiers did not match (in dorr.id).  Fixed.  Cammail-Gold door
  227.     configuration now works.
  228.  
  229. o   Reply logging would work wonderfully ... until you started replying
  230.     to subsequent packets into the same REP file.  In other words, if
  231.     you had a week's worth of packets (as I ended up having), and rifled
  232.     through ALL of them without uploading replies, only the replies from
  233.     the first packet would be logged.  I fixed another bug after that
  234.     having to do with source messages, but this wasn't relevant until
  235.     the other bug was tackled.
  236.  
  237. o   Killing replies with multiple parts:  fixed the bug that killed the
  238.     WRONG messages.  Big bug (sorry), but it works now.
  239.  
  240. o   Fixed some problems and made some enhancements to the Fidonet node
  241.     detection logic (replacing @FIDONET@ with the source message's
  242.     fidonet address).  Three digit zones are now supported where two
  243.     digits was the previous max (800:676/23).  There was a problem with
  244.     "@" symbols as part of the Origin line text - fixed.  I also now
  245.     attempt to extract the Fidonet address from a source message format
  246.     that I had never seen before.  This format came from a source on
  247.     the NITELOG BBS, one which is home to many MR/2 users.  I now
  248.     look for and use the "Reply:" line when found in a source netmail
  249.     message.
  250.  
  251. o   When using U to UNMARK a message (to unkill a reply, for example),
  252.     the INDEX markings would not be removed.  Fixed.
  253.  
  254. o   Reports of sporadic crashing:  some users have emailed me with
  255.     crash-reports and supplied debugging addresses.  Often these
  256.     point me right to a problem.  I have a couple of addresses that
  257.     are in general routines, and the information supplied is not
  258.     helping.  I haven't forgotten you!  I'm looking for these and
  259.     trying to come up with another way to find these.  I am also
  260.     changing the way I archive older version so as not to "lose"
  261.     the chance of making sense out of info from these older version.
  262.  
  263.  
  264. Changes included in v2.02
  265. -------------------------
  266.  
  267. o   Modified the after-packet-selection processing so that a local
  268.     INI might be loaded *before* the unzipper is called.  I've always
  269.     held that MR/2 can't know the true BBS name until the packet is
  270.     unzipped and the control.dat file is parsed.  What happens now is,
  271.     as soon as a packet is selected, a "base name" is derived from
  272.     the packet name.  For example, "e:\dl\pc-ohio.qwk;12" would be
  273.     whittled down to "pc-ohio".  If an INI file is found with this
  274.     base name, it is instantly loaded.  Again, this is *before* the
  275.     packet is opened, so that BBS-specific unzippers can be identified.
  276.     If an INI cannot be found matching this derived name, then MR/2
  277.     tries again, the old-fashioned normal way, after the packet has been
  278.     opened.  If one is found on the first try, no secondary loading is
  279.     performed.  This *should* work in most cases, particularly when
  280.     OS/2 comm packages are used.
  281.  
  282.     NOTE that this is *still* too late to identify a different "working"
  283.     directory.  MR/2 has already changed the default path by this time.
  284.  
  285. o   Mouse hot spots on message viewing screen changed a little.  I made
  286.     clicking on the word "Subject:" equal to pressing the "Q" key and
  287.     anywhere after the ":" and up to the "Conf:" word is still the same
  288.     as pressing "H".  This adds easier access to the Q key.  Previously,
  289.     the entire area was mapped to the "H" key.
  290.  
  291.     While I was at it, I added three more hotspots.  The only correlation
  292.     between word and feature is that the word starts with the same letter
  293.     as the feature.  That's how I picked the area :).  Click on the "Ref#"
  294.     area to "R" Reply.  Click on the "Date" area to "D" defer.  Click on
  295.     the "Status" area to "S" Save.
  296.  
  297. o   That pesky lockup that occured when marking and deleting a block
  298.     up to and including the EOF marker has been squashed.  I could easily
  299.     recreate it here, now it seems to be handled.  I simply make sure that
  300.     the end mark can't be placed on or after the EOF triangle.
  301.  
  302. o   Bug:  With PositionOnMatch set to NO, the key-word highlight would
  303.     also be suppressed for virtual conferences.  Now the keywords hilite
  304.     regardless of the setting of this switch.
  305.  
  306. o   By request ... remapped the numeric keyboard "5" key, when not in
  307.     numeric mode (arrows are active) to be equivelent to the ESCAPE key.
  308.     As was pointed on, one can now do most message selection and
  309.     reading/movement functions from just the numeric pad.
  310.  
  311.  
  312. Changes included in v2.01
  313. -------------------------
  314.  
  315. o   Trying to open the WELCOME.QWK packet in the home MR/2 directory
  316.     caused a trap and terminated the program.  This was caused because of
  317.     an error in the code that checks for the "\" character in the packet
  318.     file name.  If one wasn't there, it would crash.  Fixed.
  319.  
  320. o   If a bad "working directory" was set in an icon, MR/2's background
  321.     searching virtual conference builder would crash.  I've fixed this,
  322.     although some questions remain.
  323.  
  324.  
  325. Changes included in v1.99cx thru v2.00
  326. --------------------------------------
  327. Well, this is the long awaited v2.0 release!  As usual, I wish I
  328. would have had *just another week*, but I'm already 10 weeks late
  329. from my original Jan 1 target.  I'm sure there will be some quick
  330. updates as this hits the streets and some more bugs shake out.
  331. I've got to at least get to v2.03 soon, so as that Steve fellow that
  332. still uses v1.03 in Fido's OS/2 conferences will finally upgrade :)
  333.  
  334. Lots of exciting things still to come.  I just added CLONING as an
  335. experiment, and there's lots of potential here.  Multiple sessions
  336. for different BBS's has been working ok; also has more potential.
  337. I'm personally in desperate need of a more complete folder setup.
  338. This means some type of database capability - entirely optional and
  339. user defined.  I will be collecting ideas, requests and suggestions
  340. for subsequent versions.  If I didn't get to something you want or
  341. need, feel free :)  I *do* have every piece of correspondence ever
  342. sent to me, and I will pass through this yet again.
  343.  
  344. o   More work on the manual - 91 printed pages.  Updated several
  345.     sections and the corresponding table of contents entries.  No
  346.     index yet, but I plan on keeping this more up-to-date than it's
  347.     been in the past.  I also plan a more nicely formatted version
  348.     for those that want more than just ASCII text.
  349.  
  350. o   Modified MR2INI.ORG extensively.  This is the default INI file
  351.     that is copied to MR2.INI the first time you bring up MR/2.
  352.     Mostly a rearrange; I divided the file into sections:
  353.     Basic setup, Reply/Quoting, Intermediate, Advanced and Misc.
  354.     Some explanation at the front of the file, with notes to
  355.     reference SEARCH.INI and EXAMPLE.TF where appropriate.
  356.     Much cleaner.  I hope this helps new users get going more
  357.     smoothly.
  358.  
  359. o   Added more examples to SEARCH.INI, focusing on some of the
  360.     newer and more power virtual conference features.
  361.  
  362. o   Added mr2icons.zip to the distribution zip (7k).  Several misc.
  363.     MR/2 and MR/2 PM icons provided compliments of long-time
  364.     registered user John Bales.  Thanks John!
  365.  
  366. o   Fixed a bug where, when killing certain replies, MR/2 would
  367.     seem to hang, but then come back.  There was an uninitialized
  368.     counter under certain circumstances.  This caused a loop to
  369.     "do nothing" for some random amount of time until the counter
  370.     ticked down.  In the debugger session where I discovered this,
  371.     the counter was set to 27,000+.  It took about 2 minutes to
  372.     come back.  Fixed.
  373.  
  374. o   Spaces within an address-book "tag" field would keep the address
  375.     from being selectable from the pick-list.  Fixed.
  376.  
  377. o   WPS Associations referencing .REP files would fail, as would
  378.     referencing a .REP file on the command line (same thing).
  379.     This works now.
  380.  
  381. o   Fixed a problem where the reply packet would often be rezipped
  382.     even though no changes were made to it.  This happened when
  383.     using no-packet entry and when selecting a .REP file directly
  384.     from the packet selection screen.
  385.  
  386. o   Fidonet addresses that had two digit ZONES (e.g., 40:383/1) were
  387.     not working properly.  The zone was seen as only the last digit.
  388.     Fixed for two digit zones - sorry, I didn't even know they
  389.     existed :)
  390.  
  391. o   Address book:  when selecting an address specified as private,
  392.     either through the pick-list of by direct "!tag" identifier,
  393.     the private flag would often remain public.  Fixed.
  394.  
  395.  
  396. Changes included in v1.99bx
  397. ---------------------------
  398.  
  399. o   When using the /I or /W command line parameters (to open a
  400.     second MR/2 session, for example), MR/2 would exit when the first
  401.     packet was exited.  Now it correctly returns to the packet select
  402.     screen.
  403.  
  404. o   A user noticed that the highlighted item on the message index screen
  405.     was a little difficult to read.  In checking, I found that I used
  406.     "light red" for foreground.  Normal "red" is now used and the text
  407.     appears slighlty sharper and easier to read.  This effects most
  408.     Blue selection boxes and confirmation prompts.
  409.  
  410. o   I *really* didn't want to do this so close to a scheduled major
  411.     release.  In fact, I don't know if I'll even try to finish this for
  412.     v2.0, as to get it just right may take some time and experimentation.
  413.     Cloning a session.  It works, but there are tons of "how should this
  414.     be handled questions".  Read the next two entries.
  415.  
  416. o   New command line switch - /Clone or just /C.  This *assumes* that
  417.     a packet is already open in your default (or overridden with /w)
  418.     working directory.  This mode simply "uses existing packet",
  419.     sets "go to last read position" and opens MR/2.  When the packet
  420.     menu is exited, you exit the program without cleanup.  This is for
  421.     use with an already running MR/2, so as to allow reading of the
  422.     same open packet in another session.
  423.  
  424. o   Added some preliminary function keys to the MR/2 message viewer.
  425.     CTRL-F1 "clones" a windowed session.  CTRL-F3 clones full screen.
  426.     This opens a second copy of MR/2, using the existing packet.  This
  427.     allows for multiple windows or session reading independently.
  428.     The cloned window will not cleanup files, will not have bookmarks
  429.     recorded (they are currently lost when session is closed).
  430.  
  431.     I just cloned three additional sessions from one "main" session.
  432.     That's 4 windows into the same packet.  This is *too* neat.
  433.  
  434.     This will take more thinking, but it's already been useful to me,
  435.     so I'll let this out for others to experiement with.  Some problems
  436.     for me to resolve (and that means others should feel free to
  437.     influence me :).
  438.  
  439.     Is it too restrictive to only let replies be generated from the
  440.     "master" session?  Hmmm.  I've having some brainstorms here.  I'm
  441.     going to sleep on this one.
  442.  
  443.     NOTE:  I've already thought this out to a level that's way too
  444.     complicated to finish for v2.0.  I will complete this code after
  445.     v2.0 is released, and I will take suggestions in the meantime.
  446.     So, while this feature will be left for those who wish to
  447.     explore it, it will remain undocumented and "unsupported" for
  448.     v2.0.  I just don't want to rush to fix bugs in this right now.
  449.  
  450.     ALSO NOTE:  Each cloned window is a child of the session doing
  451.     the cloning.  If you close the parent, the clildren disappear,
  452.     too.  There are so many possibilties here, and so may possible
  453.     problems :).
  454.  
  455. o   Fixed a minor problem with selection lists where, when paging down
  456.     at the end of the list, the cursor would sometimes move up or down
  457.     the list, but not land on the last entry.
  458.  
  459. o   Mouse cursor would sometimes leave a "black hole" on blue prompt
  460.     boxes.  In fact, mouse cursor was not visible for these boxes unless
  461.     first moved.
  462.  
  463. o   Read.me file:  removed pre v1.95 material.  I will make all complete
  464.     modification logs available on Nerd's Nook sometime after v2.0 is
  465.     released.
  466.  
  467.  
  468. Changes included in v1.99Ax
  469. ---------------------------
  470.  
  471. o   Phantom "killed" status would sometimes show up in the corner of
  472.     the messge viewer when reading inbasket/logged messages.  The
  473.     messages was often active, and the status report in error.  I've
  474.     fixed this.
  475.  
  476. o   More manual work.  Checked for spelling mistakes and generated a
  477.     preliminary table of contents.
  478.  
  479. o   Thesaurus - cleaned up all the fancy features.  They didn't always
  480.     work as advertised :(
  481.  
  482. o   Fixed a bug where, upon reentering an "existing", previously opened
  483.     packet, the local INI file was not loaded before parts of the packet
  484.     where reloaded.  This caused things like conferences that were
  485.     declared as hidden to be displayed.  They would be hidden when the
  486.     packet was open the first time, but ALT-X, go back in and they'd
  487.     be listed.
  488.  
  489. o   Added S-Save and P-Print to Bulletins, Files and News viewers.
  490.     Careful, as ANSI codes *are not* stripped before saving/printing.
  491.     Help screen also updated.
  492.  
  493. o   I scrunched the message header form one more time, getting 3 more
  494.     characters for taglines.  That makes a max tag of 69 chars.  When
  495.     I get more energy I'll expand this again.  I figure I can get 3-4
  496.     more, but I'd have to rework the whole form.  Not something I care
  497.     to do at this time.
  498.  
  499. o   Ouch!  Big problem with ADD/DROP logic; whether using the default
  500.     door name or a INI-declared name.  Both Subject and To fields
  501.     in the message header received C-type (zero terminated) strings
  502.     instead of QWK formatted, fill-with-spaces strings.  I'm sure this
  503.     confused many a mail door and was probably the reason I received
  504.     so many "not working" complaints.  Heck, it confused my message
  505.     index screen!  Sorry :(.  Thanks you to Marc Bourassa for getting
  506.     me enough info to find this!
  507.  
  508.  
  509.  
  510. Changes included in v1.99x
  511. --------------------------
  512.  
  513. o   More manual work, of course.  I'm up to 81 pages and still more
  514.     to do.
  515.  
  516. o   Help screen touch-ups to reflect new keys added in the last
  517.     release or two.
  518.  
  519. o   Added new reply-time replacable template variables:  TargetTo,
  520.     TargetToFirst and TargetToLast.  These are the same as the "TO"
  521.     series, except that TO is replaced by the original messages TO
  522.     and is useful mostly for attribution lines.  It was brought to my
  523.     attention that accessing the target user's name was not available.
  524.     It is now!  Still thinking about Subject and others along those
  525.     lines ...
  526.  
  527. o   Removed MR2.HST from the distribution zip list.  I read it over
  528.     and every feature it describes is now documented.
  529.  
  530. o   Added Hotkeys back to the Edit Message Header screen.  F4 used to
  531.     bring up the tagline picklist, and for awhile F6 brought up the
  532.     Address pick list.  I removed these keys and received some
  533.     complaints.  I've added alternate ways to get to the picklists on
  534.     this screen:  ALT-T to select taglines, ALT-C for conferences and
  535.     ALT-A for addresses (these work from *any* field).
  536.  
  537. o   Added some options for accessing external utilities differently.
  538.     This was partially in an attempt to solve some rare problems with
  539.     either 4os2 or booting from the D:\ drive, or both.  These may
  540.     offer a performance boots in other cases.  Since I just spelled
  541.     this all out in a messages, I'll use that:
  542.  
  543.     For all of MR/2 classic's external utility access, I used the
  544.     system(command) call.  This is a C function that says "load the
  545.     command processor and give it this command".  This is all dependent
  546.     on the comspec being set correctly, and on ZTC's runtime code (which
  547.     did look ok, BTW). Still, BW/2 mentioned being able to run an editor
  548.     and/or pkzip directly, w/o loading CMD.EXE.  I thought for a second,
  549.     and remembered that MR/2 PM does exactly this.
  550.  
  551.     So, I scarfed the Run() function out of my MR/2 PM code and made it
  552.     optionally accessible.  Now, mind you, this gets a little silly and
  553.     is subject to one final change :).  I still call external EXE's the
  554.     same old way ... UNLESS you prefix it with a code or two.
  555.  
  556.     For example:
  557.  
  558.     Editor=q                loads q.exe the same old way.
  559.  
  560.     Editor=!c:\qe3\q.exe    loads a windowed Q.exe on the desktop,
  561.                             running q.exe directly (no cmd.exe
  562.                             involved).  File must be fully qualified
  563.                             with full path specifications.
  564.  
  565.     Editor=!!c:\qe3\q.exe   loads a full screen session w/o loading
  566.                             cmd.exe - q.exe loads directly.
  567.                             Fully qualify the file name.
  568.  
  569.     Editor=!$c:\qe3\dos\q.exe
  570.  
  571.                             loads a DOS windowed session, loading Q.exe
  572.                             directly.  CMD.exe is not accessed, but
  573.                             command.com is.  May still cause D:\ booting
  574.                             problems, but it's an option.
  575.  
  576.     Editor=!$!c:\qe3\dos\q.exe
  577.  
  578.                             Loads the DOS Qedit into a Full screen DOS
  579.                             session w/o accessing cmd.exe.
  580.  
  581.     NOTE that these work with the zipper/unzipper, too, as well as
  582.     PreEdit, PostEdit, F2-F10, etc.,.  Anytime an external util is
  583.     called, I check for these prefixes for special processing.    I
  584.     should have done this a long time ago :)
  585.  
  586.     Since CMD.exe is removed from the loop with these commands, the
  587.     programs should load more quickly.  In fact, they seem to, but it's
  588.     very hard to measure.
  589.  
  590. o   Problem with BackDropMaxLines.  If this maximum line count was
  591.     GREATER than the actual lines in the file, MR/2 would end up
  592.     searching/displaying *past* the end of the buffer.  This caused
  593.     garbage to the screen at best, crashing in most cases.  The GCO
  594.     ANSI Goodbye screen was only 20 lines long, and with the max lines
  595.     set at 24, horrible things would happen.  Fixed.
  596.  
  597.  
  598. Changes included in v1.98x
  599. --------------------------
  600.  
  601. o   Manual work.  It's growing fast.  Enclosed is a new "preliminary"
  602.     MR2.DOC file.  The old manual was 22 pages, this one is 70 or so
  603.     and there's still plenty to add.  Some sections are incomplete.
  604.     No, I haven't checked for spelling errors.  I'm open for comments,
  605.     but don't dig too deeply, please.
  606.  
  607. o   PurgeAfterDays and PurgeAfterCount now actually function.  Here's
  608.     how it works:  When you close a packet, MR/2 has always "packed"
  609.     your InBasket, if any.  This process simply involved passing through
  610.     the InBasket and removing "killed" message by writing over them with
  611.     active ones.  When the ReplyLog was added, the same process was
  612.     performed.  Since the reply log grows with each reply, I added code
  613.     to control the number of messages kept, by maximum age or by maximum
  614.     count, or by both.
  615.  
  616.     If PurgeAfterDays is not specified (or set to zero), no age
  617.     check is performed on replylog messages.  Otherwise ...
  618.  
  619.     The Reply log is first packed the old way with a slight additional
  620.     check.  If a message is found to be active and older that the
  621.     cut-off date (older that PurgeAfterDays old), then the message is
  622.     marked as killed.  The normal removal process follows after this
  623.     check.  If a message is killed and it has a "source" or "original"
  624.     message after it (these have special MR/2-internal markings), this
  625.     is also killed.  Once this pass has been completed, all manually
  626.     killed and "old" message have been removed, along with any "source"
  627.     messages recorded with them.  A count of active messages is returned
  628.     to the packing process.
  629.  
  630.     If PuregAfterCount is not specified, or set to zero, no maximum
  631.     message checking is performed.  Otherwise ...
  632.  
  633.     Now, MR/2 compares the active message count to the specified maximum
  634.     (PurgeAfterCount).  If found to be greater, then the number of
  635.     messages to delete is calculated.  A new pass is made through the
  636.     folder, and the oldest messages are marked and deleted until the
  637.     number of messages to delete has been reached.  Again, if a message
  638.     is removed, so is its source/original message, if one exists.
  639.  
  640.     I will add a way to mark a reply as "permanent".  This will keep
  641.     the packing routines from removing it.  A permanent message will
  642.     not be deleted until you manually kill it.  As an additional
  643.     feature, I want to add an "unkill" key.  I've killed a couple of
  644.     replylog messages that I didn't want to, and saving them was a
  645.     real pain.  And I even know how!  I wouldn't expect anyone else to
  646.     be able to figure this out.
  647.  
  648. o   Double confirmation prompt on exiting the editor w/out saving. I
  649.     lost my last long-winded reply to this gotcha.  If you would press
  650.     ESCAPE too many times, too fast, while in the internal editor, you
  651.     would often end up losing any/all changes.  This was because ESCAPE
  652.     is seen as a request to exit the editor, and the "would you like to
  653.     save" question, when ESCAPE is pressed, says "No". Two escapes and
  654.     you've lost any changes.  I've done this more than once by accident.
  655.     It angered me; I apologize for causing anyone else this frustration.
  656.     Now, if you escape out of the editor and changes have been made, it
  657.     asks you if you wish to save them.  If you press ESCAPE, it askes if
  658.     you're sure, and ESCAPE says "no, I'm not sure" and saves your work.
  659.     You must press YES or press ENTER to abort changes.
  660.  
  661. o   Cutting from a DOS windowed session and pasting to MR/2, using
  662.     ALT-* fails.  Previous versions would actually crash, leaving the
  663.     clipboard open and locking up any program that tried to access it
  664.     afterwards.  I'm still trying to find out why this fails, but in
  665.     the meantime, I removed the crashing, and the subsequent lockups.
  666.  
  667. o   Packing the folders (Inbasket, ReplyLog).  A informative popup
  668.     window now is displayed while this process performs it's work.
  669.  
  670. o   Added a "Make Permanent" key for use within the Reply Log.
  671.     Pressing "!" will mark the Reply Log message as a "keeper" and
  672.     the Folder packing routine will no automatically delete this
  673.     message, nomatter how old it is or how many messages over the
  674.     maximum exist.
  675.  
  676. o   Added an "UnKill" keystroke.  Pressing "U" will remove the "Killed"
  677.     marking from any message.
  678.  
  679. o   New INI parameter - BackdropMaxLines.  This controls the maximum
  680.     number of lines from the WELCOME and GOODBYE screens will be flashed
  681.     to the screen.  Some BBS's have ANSI Welcome screens that are
  682.     multiple pages long.  MR/2 would proceed to flash these messages
  683.     completely at various times.  Set BackdropMaxLines to 25, for
  684.     example, to flash only the first screen.  Setting this parameter to
  685.     zero will suppress the Welcome screen altogether.  The default is
  686.     set to -1, which will flash any and all lines of the file to the
  687.     screen.
  688.  
  689. o   I think I fixed the problem with crashing when trying to finish
  690.     out of MR/2 *before* the background searching was finished.  This
  691.     would not happen if all virtual conferences had been created but,
  692.     if you would open a packet by mistake and try to quickly get out
  693.     of it, crash!  This was because I was deleting all the work files
  694.     before the background process was told to stop ... and it was
  695.     trying to read messages.dat.
  696.  
  697. o   New INI parameters: F2 through F10.  Used to attach command-line
  698.     actions to function keys.
  699.  
  700.  
  701. Changes included in v1.97x
  702. --------------------------
  703.  
  704. o   I forgot to list the INI options SavePointerFiles, PurgeAfterDays
  705.     and PurgeAfterCount in the MR2INI.ORG file.  These are now listed.
  706.  
  707.     More INI's, as I try to clean up some smaller user problems and
  708.     requests:
  709.  
  710. o   "DoorName" may now be used to identify the target BBS door "user
  711.     name" to which to address ADD/DROP messages.  This not only aids
  712.     in the case where a BBS door provides no DOOR.ID file, but also
  713.     when trying to perform ADD/DROP functions from no-packet entry or
  714.     reply packet maintenance.  For example, DoorName=RoseMail will
  715.     address all ADD/DROP messages TO: RoseMail.
  716.  
  717. o   "CursorSize" may now be specified for the normal internal editor
  718.     cursor.  Many users complained that, in certain video modes
  719.     (large number of lines/screen), and under some setups, the cursor
  720.     could not be seen.  By default, MR/2's normal editor cursor is
  721.     1 scanline high (maybe two?).  When lines/screen is 34 or more,
  722.     MR/2 changes the cursor to 6 or 7 scanlines.  This was reported to
  723.     still not be visable sometimes.  So, You may now specify the number
  724.     of scanlines for a normal cursor - from 1 to 13.  MR/2's "overtype"
  725.     cursor is 13 (14?) scanlines tall and is not configurable at this time.
  726.     Example:  CursorSize = 10
  727.  
  728. o   I did manage to finalize the thesaurus data file.  The "officially
  729.     released" thesaurus wordbase will consist of 9242 "key" words
  730.     with a total of 70,101 synonyms.  The technique I'm using makes it
  731.     easy to find synonyms, even if the word is not found to be a key.
  732.  
  733. o   There was a problem with using a MessageOrder of anything BUT
  734.     subject.  A variable remained uninitialized in all cases except
  735.     by subject, and this caused crashing as soon as a conference was
  736.     selected and the message index sort was started.  Fixed.
  737.  
  738. o   Selection lists had a bug that wouldn't allow you to select the
  739.     LAST entry (if the "page" was full).  Clicking on the bottom
  740.     line of the box did nothing (it's supposed to page down), and
  741.     clicking on the slot for the last entry on the page paged-down.
  742.     Fixed.
  743.  
  744. o   INI file now includes a default virtual conference.  This will
  745.     help new users "discover" this key feature much quicker.
  746.  
  747. o   Manual has actually been worked on!  No, it's not in here.
  748.     It's not in *that* great a shape yet, but it's progressing :)
  749.  
  750.  
  751. Changes included in v1.96x
  752. --------------------------
  753. Still lots left to do, I'll try to get a summary list together
  754. and post it next time.  I'm getting close, tho.  Bug reports seem
  755. to be light, which makes me happy.  I wanted to hit Feb 1st, but
  756. I'm not sure now.  If I can get a couple of good days in I can call
  757. it soup.  It will be *very* soon, the manual being the last major
  758. "feature" to address.
  759.  
  760. o   New and Improved help screens.  Added definitions for dozens of
  761.     previously-unlisted keystrokes and functions.  HELPS include 20
  762.     or so completely *new* screens, too, covering many of the newer
  763.     enhancements.
  764.  
  765.     NOTE that mr2.hlp is a simple editor file with [TAG] markers to tell
  766.     me where a help section starts.  The section ends at the next tag
  767.     marker.  If you don't like my HELP text, you *can* create your own
  768.     text (modify my descriptions).  A section must fit on the screen,
  769.     tho, with a char/line or two reserved as border.  Hey, if you end up
  770.     with something you think is better, send it to me and if I agree,
  771.     I'll use it :)
  772.  
  773.     I start on the manual next - actually already have, but now I have
  774.     to be serious!
  775.  
  776. o   Updated MR2INI.ORG with a section that describes the newest
  777.     INI variables.
  778.  
  779. o   Tab expansion in the message viewer.  I default this to 4
  780.     characters, but allow you to toggle this value via ALT-TAB.
  781.     Sequence is 4,8,0,2 where "0" means show the tab character and
  782.     don't expand.
  783.  
  784. o   I discovered that searching while in the INBASKET or the REPLYLOG
  785.     didn't work.  Searching within an INBASKET has never worked.
  786.     Fixed this (modified QWK.Getfh()).
  787.  
  788. o   By request (several), the spacebar may now be used as an alternate
  789.     to ENTER for selecting a conference w/mail to read.  This was a
  790.     tough call, as the ' ' is a valid typing character, and I can see
  791.     some folks trying to do a conference name prefix jump to the "main
  792.     board" conference by typing "Main ".  Where this would previously
  793.     work, and it still *might*, the spacebar press will cause the
  794.     highlighted conference to now be selected.  Open for comments, I
  795.     think this will be OK, tho.
  796.  
  797. o   It was pointed out to me that many keyboards don't have an F11 key,
  798.     and that's what I chose as the "mark" key on selection list.  (At
  799.     this time, "marking" within a list only has a purpose on the packet
  800.     selection screen, for merging QWK packets.)  After some thinking and
  801.     experimentation, I made the "*" key a synonym for F11 on pick lists.
  802.     It was suggested to use + and - to mark, unmark, but the minus or
  803.     dash often comes up as part of conference and packet names.  So,
  804.     "jump to prefix" would be affected.  The "*" key will toggle the
  805.     mark on and off.  This key is easily selected w/o shifting by using
  806.     the one on the numeric keypad (eeek!  Assuming you have one :).
  807.  
  808. o   UNQWK.CMD bug - my first user "fix" to this routine!  Thank you
  809.     Wolfgang von Thuelen for pointing this out.  In the check for long
  810.     file names, I ignored the case where file names were exactly 12
  811.     characters long BUT were still non-FAT names (e.g., "mwcst.qwk;11").
  812.     The first 'if' statement was changed from "if flongnames < 0" to "if
  813.     flongnames <= 0".
  814.  
  815. o   More thesaurus work - mostly minor cosmetics.  I've almost got
  816.     what I want, although I know the ALT-S and ALT-L are buugy now.
  817.     I'm letting it out with these bugs, as it's still functional and
  818.     I doubt many are using this feature (yet?).  Keys you may press
  819.     with descriptions are placed above editor window.
  820.  
  821.  
  822. Changes included in v1.95x
  823. --------------------------
  824. I'm calling this v1.95x, as I consider myself "close" to what I wanted
  825. in a v2.0 release.  I do have a few features to add; although not many.
  826. Believe me, I've got plenty of ideas for v2.01 and beyond.  Existing
  827. users know that this has never been a static product :).  I've created
  828. quite a few monsters here ... huge new features that are going to take
  829. some "shaking out" to get them working perfectly.
  830.  
  831. o   Clipboard:  When doing an "append" (ALT-GREY-= or ALT-GREYENTER)
  832.     to an empty clipboard, MR/2 would crash.  The first text copied to
  833.     the clipboard had to be done with the ALT-+ command, then appending
  834.     would work.  Fixed.  You can now append to an empty clipboard.
  835.  
  836. o   Reply log messages can now be "Copied" and/or "Replied to".  The
  837.     message is then copied into the reply conference as to be "sent
  838.     again".
  839.  
  840. o   INI parsing problem prevented FolderPath from being recognized.
  841.     (Discovered when relinking and testing MR/2 PM).
  842.  
  843. o   Mouse could not be used to select the very first entry in a selection
  844.     list.  This was broken recently - now fixed.
  845.  
  846. o   Template Sections labeled as "New" using routing lines:  I had
  847.     previously noted in this document AND personally corresponded
  848.     electronically with a few of you about this.  Specifically, *before*
  849.     this version, the $Body line was needed *before* the routing line,
  850.     as for "new" messages, only the "signature" sections was placed in
  851.     the reply file.  THIS HAS ALL BEEN CHANGED.  The 'New' Sections now
  852.     work the way you would expect; the entire section is placed in the
  853.     reply file, and the $Body (while still necessary) should be placed
  854.     where you would normally start your reply.  In other words, these
  855.     sections should be setup the way you would expect from using the
  856.     "normal" sections as an example.
  857.  
  858. o   Packet selection screen:  You may now MARK two or more packets on
  859.     this screen and actually MERGE them together as one QWK packet.
  860.     Use F11 to mark the packets to combine, then ALT-M (Merge) to
  861.     merge them together.  This process calls upon my new and improved
  862.     MQWK.CMD REXX command file to do most of the work.  This makes the
  863.     process configurable/extendable, as long as you want to tinker with
  864.     REXX source code.
  865.  
  866.     Multiple/automatic archiver detection is not supported at this time;
  867.     the archiver name is hard-coded in the script to be "pkunzip -n"
  868.     and the zipper is 'pkzip'.  Modify these in MQWK.CMD if necessary.
  869.  
  870.     When you press ALT-M, and if 2 or more packets are marked, MR/2 will
  871.     prompt for a target packet name.  If a name is supplied, all marked
  872.     QWK packets will be merged into one with this name.  If no name is
  873.     supplied, MR/2 simply combines the packets in the TMP$$ work
  874.     directory, where they can be read as a combined packet.  NOTE,
  875.     however, that bookmarks will be lost, as there will be no "target"
  876.     packet to record them to.  I suggest always allowing MR/2 to
  877.     repack the combined QWK packet.
  878.  
  879.     FURTHER NOTE:  I've now modified the script so that there is very
  880.     little reason *not* to repack the combined messages into a new QWK
  881.     file.  If a name is supplied as a target, MR/2 combines all marked
  882.     packets and jumps right into "read" mode.  AT THE SAME TIME, I spawn
  883.     another session, in the background, to archive the combined packet.
  884.     This becomes invisible to you and should not impede your normal
  885.     reading operations.  If the combined packet does not show up on the
  886.     packet selection screen, you may reference MQWK.LOG for possible
  887.     error messages.  All output from the archiving process is redirected
  888.     to this file.
  889.  
  890.     Index files (*.ndx) are discarded by the merge process ... MR/2 will
  891.     create index files when it opens the combined packet.
  892.  
  893.     I've tested this procedure with QMail and CamMail doors.  I expect
  894.     that other doors may created cases that call for a little adjusting.
  895.     Keep me posted.  ALSO, no error checking is performed to assure that
  896.     all the packets you are merging together are of the same BBS.  THIS
  897.     IS IMPORTANT, as merging dissimilar packets WILL NOT WORK CORRECTLY.
  898.  
  899.     ALSO NOTE that this takes alot of free disk space.  A set of QWK
  900.     packets totaling 2MB might require 4-5 MB additional free disk space
  901.     to function.
  902.  
  903. o   INTERNAL: Messages.dat is now opened in READ-ONLY mode.  This allows
  904.     the file to be accessed in a background task for archiving.
  905.  
  906. o   INTERNAL: Modifications to zDList, zDLSelect and zDirSelect (linked
  907.     list and selection from list(s) routines) to further support "marking"
  908.     of members and retrieval of "marked" status in various forms.
  909.  
  910. o   I received a packet via CIS email from the Channel1 BBS.  This
  911.     board has been a great logic-breaker for me ... they ought to quit
  912.     growing! Anyway, their control.dat files finally made it over 64k,
  913.     which has always been an MR/2 limitation (due to an initial design
  914.     flaw on my part).  This is now fixed so that there is *no* maximum
  915.     control.dat file size limitation.  I now handle/parse this file one
  916.     line at a time w/o loading it all into memory up front.  Channel1
  917.     packets once again work!
  918.  
  919. o   HideConferences can now be specified multiple times within a set
  920.     of INI files.  The hidden conferences list is now cumulative where
  921.     before only the last HideConference line was effective.
  922.  
  923. o   I expanded the packet selection screen even more and added columns
  924.     for Per (Personal) and Rep (Replied-to) message counts.  I know that
  925.     I'm constantly trying to remember which packet had all the personals
  926.     to me in it, so this helps me out.  The reply count may also help
  927.     tell you something about a particular packet.
  928.  
  929. o   Modified ZTC's library routine system().  Command line was deemed
  930.     invalid when > 128 characters.  OS/2 allows much more; I changed
  931.     the max to 256.  This will allow more QWK packets to be merged
  932.     together (it broke today at 4 fully qualified packet names).
  933.  
  934. o   Changes to the way the built-in thesaurus functions.  I've still
  935.     got some fancy things to do, but it's getting closer.  Invoking
  936.     the thesaurus for a word that was not a "key" in the word base
  937.     previously did nothing; it just ignored you.  Now, MR/2 posts a
  938.     message and jumps into a sequential "match" search.  When you
  939.     request a further search of the database using ALT-S, a similar
  940.     message is posted.  Both messages mention that you can now press
  941.     ESCAPE to hault the search.  Also, when a search completes with
  942.     out finding any new words, MR/2 keeps the previous word list on
  943.     the screen.  Before, you would be placed out of the thesaurus.
  944.  
  945.  
  946. KNOWN BUGS AND STUFF
  947. ====================
  948.  
  949. The TEMPORARY directory MUST remain a subdirectory of the MR2 home dir.
  950.  
  951. You can't use "\" or "&" as part of any search text (since MR/2 uses them
  952. as delimiters).
  953.  
  954. You can't cancel a search until the first "hit" is displayed.  This is
  955. particularly irritating when soundex searching, since soundexing is
  956. noticably slower.
  957.  
  958. If you set "SkipReadMessages" to true, you cannot gain access to a
  959. conferences where all messages have previously been read.
  960.  
  961. Other frills that have not yet been addressed:  Bulk marking, twit filter.
  962. There are probably others. Feel free to bombard me with requests.
  963.  
  964.