home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR24 / MRP_099E.ZIP / READ.ME < prev    next >
Text File  |  1993-10-10  |  70KB  |  1,464 lines

  1. MR/2 PM - A QWK Compatible Mail Reader for OS/2 PM.  10/10/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.  This will increase to $25 when the final
  12. release is officialy distributed.  Register now and avoid the price
  13. increase!  Register MR/2 PM also registers you for MR/2 character
  14. mode, and visa versa.
  15.  
  16. Existing MR/2 registered users are automatically registered users
  17. of MR/2 PM.  The same MR2.ID file can be used by both versions.
  18. ------------------------------------------------------------------
  19.  
  20.  
  21. CONTACTING THE AUTHOR
  22. =====================
  23.  
  24. You  can contact me in a number  of ways.  Unfortunately, I can't
  25. provide a phone number at this time.
  26.  
  27. US Mail:       Nick Knight
  28.                1823 David Ave.
  29.                Parma, Ohio 44134
  30.  
  31. Fido netmail:  1:157/2 to "Nick Knight"
  32.  
  33. Internet:      User "Nick Knight", (nick.knight@pcohio.com)
  34.  
  35. Fido Echomail: Echomail messages to  me are discouraged,  as
  36.                keeping  them "on  topic" and  interesting to
  37.                the  masses would  be difficult.   I  do read
  38.                OS2,  OS2PROG,  C_PLUSPLUS and DR DEBUG daily,
  39.                though.   OFFLINE  echo also  (deals with mail
  40.                readers), this might be THE place to ask public
  41.                questions, eh?
  42.  
  43.                I recently have acquired access to a host of other
  44.                networks with OS/2 conferences.  These include RIME,
  45.                SmartNet, Uninet and some others I can't remember.
  46.  
  47.                I also do poll the Fidnet OS2PRODSUPPORT echo.
  48.  
  49. Direct BBS:    Leave a message on the Nerd's Nook BBS
  50.                (1:157/2) at (216)  356-1772, 356-1872  or
  51.                356-1431.   I check in here multiple times a
  52.                day.  I will also keep the most recent copy
  53.                of MR/2 posted here.    Other boards
  54.                (non-local) will get updates at my  convenience.
  55.  
  56. **************************************************************************
  57. **************************************************************************
  58. **             NOTE:  Nerd's now supports an MR/2 conference            **
  59. **             and file area.  Conference #208 is dedicated to          **
  60. **             MR/2 support and files.  File area #45 contains          **
  61. **             MR/2-related files.  Any file uploaded into              **
  62. **             conference 208 will be placed in file area 45.           **
  63. **************************************************************************
  64. **************************************************************************
  65.  
  66.                Nerd's does support file requests (157/2 or 157/3)
  67.  
  68.                Optionally, I call into PC-OHIO regularly.
  69.  
  70. Compuserve:    I check in  here only  when I have  to.   Try
  71.                mail to  my  user ID  - 76066,1240,  although
  72.                this isn't the best approach.
  73.  
  74.  
  75.  
  76. MR2.INI - your MR/2 PM parameter file
  77. -------------------------------------
  78.  
  79. This is where you tell MR/2 PM all it needs to know about your system
  80. and the way you'd like it to work.  If you don't have an MR2.INI file
  81. from MR/2 classic (character mode), or you've never modified one for
  82. MR/2 PM before,  MR/2 will attempt to place you into the E editor
  83. with a starter INI loaded.  Make any necessary changes and save the file.
  84.  
  85. NOTE:  Problems ... you'll have to edit MR2.INI, then exit out of MR/2 PM
  86. and reenter for any changes to take effect.  My "reload INI" code needs
  87. some looking at.
  88.  
  89. ** If it can't or doesn't load the editor to create the initial MR2.INI
  90. file, it's best that you do this by hand, from the command line:
  91.  
  92.     copy mr2ini.org mr2.ini
  93.     e mr2.ini
  94.  
  95. ***************************************************************************
  96. NOTE:  You may use an existing MR2.INI file, if you have one.  The only
  97. change that's really required is that your editor and zipper/unzipper
  98. file names be fully qualified.  Use a complete path and add the appropriate
  99. file extension (e,g, "d:\os2util\pkunzip.exe").  These changes *will* work
  100. with MR/2 classic, also.
  101. ****************************************************************************
  102.  
  103. Oh yea, I have the thing logging some messages to mr2pm.log.  This file
  104. may aid me in solving problems that occur in testing.  It *will not* be
  105. part of the final distribution reader.
  106.  
  107.  
  108. KNOWN BUGS AND STUFF
  109. ====================
  110.  
  111. THIS IS BETA, PRE-RELEASE SOFTWARE.  THE BUG LIST IS QUITE EXTENSIVE
  112. AND ALL KNOWN PROBLEMS ARE BEING ADDRESSED.  USE THIS PRODUCT AT YOUR
  113. OWN RISK - THE AUTHOR ASSUMES NO LIABILITY FOR LOST OR DAMAGED DATA.
  114.  
  115. I've got a big hit-list, and I'm anxious to start hitting.  I'd like to
  116. get as much feedback as possible while I'm in this process, though.
  117.  
  118. Feel free to report bugs or offer suggestions.  MR/2 PM is based on my
  119. seemingly solid QWK routines from MR/2 "classic", but the user
  120. interface is all new.
  121.  
  122.  
  123. Changes included in v0.99e
  124. --------------------------
  125.  
  126. o   Added the MINIMIZE button back to the message viewing screen.
  127.     I'm not sure why it got yanked; by accident I think.  Someone
  128.     complained, so I'm putting it back.  Maximizing messes up message
  129.     viewer.  Yuck!  This isn't really usable yet ... well, maybe.  If
  130.     you resize the message box even 1 dot vertically things repaint OK.
  131.  
  132. o   Problems with No Packet Entry crashing on first message resolved.
  133.     Part of the processing thought you were replying and attempted
  134.     to search the original for an origin line.  FIxed.  Also, template
  135.     always was set to the "default" template.  Now should default to
  136.     `NewMessage` section.
  137.  
  138. o   Jumping to previous reading position is now functional.  If
  139.     GoToLastRead is set to YES, MR/2 PM will jump to the message
  140.     that was last on the screen the previous time the current packet was
  141.     open (if the message can be found w/o error).  If not set to YES, you
  142.     will be prompted for the correct action to take,
  143.  
  144. o   Tagline selection dialog: this is now sizable.  All pre-size code
  145.     and real-time sizing code has been applied.
  146.  
  147. o   Message Index selection dialog: this is now sizable.  All pre-size
  148.     code and real-time sizing code has been applied.
  149.  
  150. o   Quick Thread Summary dialog: code added to pre-set the size before
  151.     display.  This removed the annoying and time-consuming "flash" when
  152.     "Q" is pressed, or the "Subject Index" button is clicked.
  153.  
  154. o   Bug when using associations to launch MR/2 PM and open a QWK packet.
  155.     If replies existed, the dialog to warn/prompt-to-keep existing
  156.     replies would fail and return a default of "NO".  In other words,
  157.     MR/2 PM would see the replies but wouldn't tell you about them, or
  158.     ask you what to do.  It just deleted (er, renamed) them.  Fixed.
  159.  
  160.  
  161. Changes included in v0.99d
  162. --------------------------
  163.  
  164. NOTES: This is the first release in quite awhile.  Summer ended up
  165. being busy, where I expected it to be quiet and coding-productive.
  166. Anyway, I'm posting this with some extensive internal changes.  PLEASE,
  167. if you're using an existing version, save your old EXE just in case you
  168. don't like something I've done.  THEN, tell me about what you don't like.
  169.  
  170. I left some dialog box resizing logic unfinished (still).  While this
  171. code for this is working "ok", I still just don't like it.  I *may* end
  172. up doing something similar to BMR (the Netware utility I co-authored),
  173. where multiple dialog boxes are available, and the whole screen repaints
  174. when a new dialog box interface is selected.  For MR/2, I'd simply let
  175. you resize, but remove, then repaint, the entire dialog to the new
  176. size.  This would be one-time-ugly (the initial resize flash) but then
  177. would work cleanly after that.  The resizing on-the-fly causes some
  178. pretty ugly screens sometimes.  This new idea causes some interesting
  179. coding problems - since I have to close the dialog box and reopen it,
  180. I have to save context-sensitive things like message read/search position,
  181. etc.,.  My problems, not yours :)
  182.  
  183. Originally, I was thinking of coding a big font/color control screen.
  184. I think I like drag-n-drop of fonts and colors instead.  I have to
  185. come up with a scheme for saving/restoring this information, but it
  186. looks relatively simple (I *hate* those two words, they never seem to
  187. be true :)
  188.  
  189. Changes:
  190.  
  191. o   Actually, these were in 0.99c:  Index Message box had trouble
  192.     remembering its last position (and size).  Fixed.  Now to make it
  193.     actually resizable :)  Also, from fixes made in MR/2 classic v1.53,
  194.     some "ghost" files often remained inside tmp$$ after a packet was
  195.     closed.  Fixed.
  196.  
  197. o   Message box display work - painting of "next" message should be
  198.     much faster.  (NOTE: comparing it to 0.99c it *is* much faster :).
  199.     I still want to totally do away with the use of a listbox for the
  200.     message text.  My chance will come ...
  201.  
  202. o   Background color of the message viewing window is now set as the
  203.     "default" when the window is painted.  All this does is prevents
  204.     the listbox color flash between messages.  It also removes the
  205.     yellow color band that sometimes appeared at the bottom of short
  206.     messages.
  207.  
  208. o   Internal Editor:  F10 key now saves and exits, just as MR/2 classic's
  209.     editor does.  I got really used to hitting F10-F10 to finish a reply
  210.     in text mode.  Now I can do the same in PM.
  211.  
  212. o   Removed another message reading screen "flash" - the one right after
  213.     a conference is selected.  This speeds things up another "tad", too.
  214.  
  215.  
  216. Inherited from MR/2 classic:
  217. ----------------------------
  218.  
  219. o   Inbasket packing often left killed replies visable and available across
  220.     packets.  Fixed - killed messages will once again disappear the next
  221.     time the packet (and related inbasket) is closed.
  222.  
  223. o   I added a new function on the message reading screen triggered by
  224.     pressing the C key.  This is the "Copy" function.  It simply places
  225.     a copy of the current message in the reply conference, changes the
  226.     FROM user to your name and places the EDIT HEADER screen up.  Right
  227.     now you can copy any message to someone else and make it "from you";
  228.     not just your own replies.  This may change.  Copy loops for multiple
  229.     copies until your ESCAPE from the "next" message header edit.
  230.     I also plan to add a manner to copy to predefined distribution lists.
  231.  
  232. o   Forwarding messages:  If a `Forward` template section and accessed
  233.     message header information, this information would be copied from the
  234.     header AFTER the header editing process.  That meant that if you
  235.     changed the conference or subject, the changed data would be used.
  236.     This has been corrected to show correct original data.
  237.  
  238. o   When creating some types of new message where MR/2 defaulted the TO
  239.     user to blank, the cursor would be one character over.  This was a
  240.     bug in the internal EditHdr trim function.  Fixed.
  241.  
  242. o   Messages.Dat and mr2bm.bin would never get deleted from the tmp$$
  243.     directory when a packet was closed.  Just a minor flaw, but this did
  244.     waste some disk space when MR/2 was not in use.  Fixed.
  245.  
  246. o   When MR/2 builds it's own NDX files, it now opens the target index in
  247.     APPEND mode.  No biggy, except in playing around qith QWK merge logic,
  248.     I found that my QWK engine assumes all conference's message are
  249.     together.  This may or may not be true for most mail doors, but I
  250.     should be able to handle non-contiguous conference messages with out
  251.     breaking anything.
  252.  
  253. o   ALT-N to enter new messages w/o an existing packet failed to read and
  254.     configure based on the selected BBS's "local" INI.  The local INI is
  255.     now added to MR/2's configuration parameters when one for the selected
  256.     BBS is found.
  257.  
  258. o   New INI parameter "RemoveReplyBookmarks".  This is NO by default, but
  259.     may be set to YES if it is found that MR/2's bookmarks are interfering
  260.     with a networks routing or origin lines.  There was a problem on
  261.     ILink where someone's origin lines were not appended about 50% of the
  262.     time.  It was blamed on my use of the last byte of the message header
  263.     as a bookmark flag.  Setting this INI option to YES will cause MR/2
  264.     to replace any bookmak character at this position with a space (0x20).
  265.     You lose any bookmark information stored in this byte with this option,
  266.     but the bookmark flags saved with replies is minimal anyway.
  267.  
  268. o   Reply splitting:  instead of "(Cont'd)" being attached to the subject
  269.     of a split message, MR/2 now numbers each part and gives a total count.
  270.     The counters are placed at the far right of the subject space, so
  271.     subjects like "MR/2                  1/2".  This preserves as much of
  272.     the original subject as possible.  This also will assist in MR/2's
  273.     sorting of multiple part messages (when sorting by thread).
  274.  
  275. o   When a single piece of a split message is later modified, the last
  276.     line of that part would often be removed before entering the editor.
  277.     This has been corrected, although more changes to come might
  278.     render this fix useless ...
  279.  
  280. o   Added the capability to split messages at a user defined point.
  281.     Used SLMR's ".pg" marker technique.  Start a line with ".pg" and
  282.     MR/2 will force a split at this position.
  283.  
  284. o   Made Fast Exit from the message viewer *really* fast!  Instead of
  285.     filtering back through all those nasty C++ destructers, I simply call
  286.     DOSExit after some simple cleanup.  Seems to work nicely even on
  287.     packets with a large number of conferences (~3000).  I'll spend some
  288.     watching for bugs ... I think I can multithread my freeing of many
  289.     internal structures and linked lists too.  (This is what takes MR/2
  290.     so long when closing a large packet w/lotsa conferences - all the
  291.     freeing of memory.  ZTC doesn't handle this very quickly ... I'll
  292.     try to help them some :).
  293.  
  294.     PM VERSION NOTE: changes were quite different, but I achieved the
  295.     same effect by exiting MR/2 PM w/o deallocating packet memory (fast
  296.     exit only).  Works fine on my systems and *is* much faster.
  297.  
  298. o   If you specified a static, hard-coded tagline, then hit F2 to "pick"
  299.     a new tagline, MR/2 would crash.  Now it puts up a nicer "empty list"
  300.     message, although it still doesn't let you pick a new one :).
  301.  
  302.  
  303. Changes included in v0.99c
  304. --------------------------
  305.  
  306. o   The Reply Header edit form, when selecting an alternate conference.
  307.     The listbox could only hold a fixed number of conference (1500?).
  308.     If there were more, you couldn't see them.  Instead of *really* trying
  309.     to solve the problem :), I added a "match" field on this form.  This
  310.     field accepts wildcard characters, like *os2* or pr*.  It does ranges
  311.     too, I'll have to doc these ... something like [A-L]* lists A
  312.     through L ... Unix-style wildcard matching!
  313.  
  314.     Entering just a single character, say "P", works the same as entering
  315.     "P*".  I may make all non-wildcard specs "prefix" matches like this.
  316.  
  317. o   Half tones on completely read threads.  This should probably be optional.
  318.  
  319. o   Save to file:  All sorts of keyboard wierdness.  Keys being processed
  320.     by the message window underneath.  Fixed.
  321.  
  322. o   Message Dialog.  There was still a screen flash - pre-sizing the
  323.     dialog box needed some tweaking, and I had to supress the second
  324.     painting of the screen when initializing.
  325.  
  326. o   ALT-A, ALT-D now functional when a conference name is highlighted.  This
  327.     works from the Conferences w/Message selection screen, as well as on
  328.     the Conference selection screen attached to the Reply Header Editing
  329.     screen.  Easiest way to ADD conferences is to "Write new", then ALT-C
  330.     for the conference list.  Highlight and ALT-A to your hearts content.
  331.  
  332. o   Lots of playing around with parent/owner windows to remove strange
  333.     occurences and to aid in new CenterSubWindow() call.
  334.  
  335. o   I've got code in place to insure that certain message dialogs remain
  336.     centered inside the "main" window.
  337.  
  338. o   INTERNAL:  Main dialog proc became too large for ZTC to handle!  I
  339.     split out the whole WM_CHAR processing section into a separate
  340.     routine.
  341.  
  342. o   I think I've finally trapped all the strange keystroke processing
  343.     that resulted from having dialog boxes pop up on top of the message
  344.     dialog box.  This should end the strangeness with Save, Find, Steal
  345.     Tag, etc.,.
  346.  
  347. o   More mouse pointer to "wait" pointers when needed.
  348.  
  349. o   Deferring a message now updates the message status with a 'D'.
  350.     Previously, message was deferred but the display was not updated.
  351.     Same thing with (P)rinting a message ... dialog now updates with a
  352.     "S" status ("Saved" - MR/2 classic has always reported printed messages
  353.     as being saved ...).
  354.  
  355. o   ALT-F is now available from the conference selection dialog to
  356.     search ALL conferences for text.  Just like MR/2 classic.
  357.  
  358. o   There was a problem after closing any packet where MR/2 PM would
  359.     lose track of the correct QWK Packet Path.  This occured (I think)
  360.     only if your Packet Path and MR/2 PM home directory where on the
  361.     same disk drive.  When you close a packet, you are now correctly
  362.     returned to your previous packet directory.
  363.  
  364. o   I added a tiny button on the message viewer screen.  I'm not sure
  365.     where this will end up and/or what it will be labeled, but right now
  366.     it's the "option" button.  The only option at this time is to
  367.     toggle between MONO and PS fonts for message viewing.  The font
  368.     mode switch is persistant across all future sessions until changed
  369.     again.  This button will probable bring up a much more comprehensive
  370.     set of options later :)
  371.  
  372. o   Open Packet reworked.  Changes to the way focus is initialized, order
  373.     of the entry fields / listbox to be more natural.  Bug where selecting
  374.     certain directory names switched drives.
  375.  
  376. o   Save Message:  ditto.  Also, save path changes are remembered and
  377.     used across all packets read in that session (reset when you exit out
  378.     and reenter).
  379.  
  380. o   Internal Editor:  The state of the font (Mono or PS) and the Word Wrap
  381.     setting are now saved and restored between sessions.
  382.  
  383.     Fixes inherited recently from MR/2 classic:
  384.     -------------------------------------------
  385.  
  386. o   ADD/DROP conference would not work if a DOOR.ID file was not present in
  387.     the packet.  I now default to QMAIL format in these cases, and create
  388.     QMAIL-style add/drop messages.
  389.  
  390. o   When you would modify a reply and change the header data, the index
  391.     list would not reflect these changes.  The "I"/Insert index list will
  392.     now accurately match reply header data.
  393.  
  394. o   Ooops.  "InBasket" Folder was not being packed.  In other words,
  395.     messages that were deferred, then later killed/deleted would still
  396.     be physically contained in the InBasket.Dat file.  They were marked
  397.     as inactive, so they couldn't be read.  Code to pack this file
  398.     has been reinstituted.
  399.  
  400. o   Double oops :)  FolderPath was never sufficiently documented as a
  401.     valid MR2.INI parameter.  It was metioned in the read.me file, but
  402.     was never entered into the MR2INI.ORG file.  It's there now, and ...
  403.  
  404. o   It never really worked, anyway.  It "kinda" worked, as it did
  405.     everything correctly except allow you to actually read deferred message
  406.     from anywhere except off of the MR2 home directory.
  407.  
  408. o   Modified the origin line find logic.  Original code, for some stupid
  409.     reason, started at the beginning of a message and search forward.  I
  410.     now start at the end and work backwards.  This will help prevent
  411.     erroneous detection of the origin when user-entered dashed lines are
  412.     entered as section separaters.
  413.  
  414.     In addition, I revamped the whole routine.  It seems to do a much
  415.     better job of finding the start of the origin section.
  416.  
  417. o   There was a problem on some systems with the personal conference not
  418.     showing in the selection list.  This was when working on an HPFS
  419.     drive, and the personal.ndx file was unpacked with a lower case file
  420.     name.  When MR/2 scanned conferences, it always matched on capital
  421.     letters for the personal index.  This was never a problem BEFORE
  422.     long name support, as the names always came back capitalized.  Now,
  423.     they come back as they are on disk.  I've fixed this problem and
  424.     scanned for other possibilities.  I think that was it ... time will
  425.     tell!   NOTE: The report I received that finally solved this one
  426.     specifically mentioned a 32-bit UNZIP.EXE.  He mentioned that all
  427.     worked OK with the -U switch added to the command line.  Just FYI.
  428.  
  429. o   Message Header Edit screen now allows you to enter conference numbers
  430.     that are not present within the control.dat master conference list.
  431.     Maximus QWK doors and PC Board's built-in QWK feature do not supply
  432.     complete conference lists.  Some QWK doors also make this optional to
  433.     reduce packet size.  Previously, you could not post into a conference
  434.     that was not defined in the contorl.dat file.  Now, you may manually
  435.     enter ANY number.  If MR/2 cannot find it in the master list, it will
  436.     beep and clearly identify the conference number as a possible problem
  437.     with the tag: "** WARNING: Unknown Conference **".  It's the user's
  438.     resposibility to make sure a message is posted to the correct
  439.     conference number.  Maybe I'll add a user-definable master list later.
  440.  
  441.  
  442.  
  443. Changes included in v0.99b
  444. --------------------------
  445.  
  446. o   MR2PM.INI, the file that holds window position data now contains a
  447.     version number embedded within.  Any old file found (w/o a version
  448.     level recorded) will be erased.  This is necessary due to the
  449.     massive changes made to the way positions are recorded.  Otherwise,
  450.     windows end up painting off the screen.  You'll have to position
  451.     windows to desired spots once more.
  452.  
  453. o   Internal editor is now available and functional.  Set the
  454.     Editor=INTERNAL. The "Set Color" option does nothing yet.  Also,
  455.     "Set font" merely toggles between mono and ps fonts.  There's no
  456.     provision for changing the file name or importing/exporting text.
  457.     All this will come with time ...
  458.  
  459. o   Sizable windows are started.  Size and position of several windows are
  460.     saved and recalled.  In particular, the message viewing screen and
  461.     conference selection screen are sizeable.  There's some tricky code
  462.     behind these screens to minimize flashing and contorting; let me know
  463.     if you see anything strange.
  464.  
  465. o   No Qwk (entry of message w/o a packet) is now functional.
  466.  
  467. o   I added a command line parameter "/defaultpos" or just "/d" to suppress
  468.     the mr2pm.ini file access.  This mode uses default window sizes and
  469.     positions.  ... until I get all the kinks out, this is a safeguard.
  470.  
  471. o   Welcome screen now displays in mono font.  Looks OK, unless ANSI
  472.     codes are present :(
  473.  
  474. o   Merged most of MR/2 v1.51 features into this EXE.  The list of
  475.     pertainent features follows (in latest-first order):
  476.  
  477. ==============================================================================
  478. o   RIME routed messages are now recognized as having a "header area" at
  479.     the top of the message.  If the message is "split" due to length,
  480.     the header area should be automically pasted into the top
  481.     of each part.
  482.  
  483. o   FILE_ID.DIZ files were crossed between classic and PM.  Fixed.
  484.  
  485. o   OK, I linked in HPFS longname support and modified some code to
  486.     retrieve and handle long file names.  The packet select screen
  487.     now shows TE/2-renamed files like "pc-ohio.qwk;1".  This will need
  488.     some testing and polish, but it works.  FileSpec in MR2.INI should
  489.     be changed to "*.q*" in order to see these files.
  490.  
  491. o   Ooops.  I couldn't find a PKUnzip that would work with long names.
  492.     Even the older OS/2 version puked.  This'll definitely be a problem
  493.     with other DOS based archivers.  So, I added a little diddy to
  494.     unqwk.cmd that, if a long name is detected, will copy the selected
  495.     file into the tmp$$ directory as MR2$TMP.QWK and unpack this.  It
  496.     then deletes the "temporary" QWK packet.  Works great with even
  497.     the DOS PKUnzip now!
  498.  
  499.     If you want to use TE/2 on a HPFS system and unpack the "BBS.QWK;1"
  500.     type names with a DOS or PK* product, you *must* set your unzipper
  501.     to unqwk.cmd.
  502.  
  503. o   An MR/2 INI file other than MR2.INI may be specified via command line
  504.     parameter.  Use "MR2 /IMR2_ALT.INI" to use a file named MR2_ALT.INI as
  505.     the global MR/2 INI file.  I'm hoping that this helps in allowing
  506.     multiple instances of MR/2 to be open on the desktop.  Needs more
  507.     testing and experimentation ...  Opening two different MR/2 seesion
  508.     still crashes.
  509.  
  510. o   Welcome and Goodbye screen now list on the Bulletins select menu.
  511.     You can view these, unobstructed and at length, any time you choose.
  512.  
  513. o   Minor change to the parsing of the @Fidonet@ variable.  Removed any
  514.     @fidonet suffix that exists in the origin line.
  515.  
  516. o   Added code to trim off nulls at end of any message.  Was trimming spaces,
  517.     but Internet messages sometimes had nulls.  Messes up the reply file
  518.     editing.  Also, if any embedded nulls are found, these *aren't* written
  519.     to the reply file OR save file.
  520.  
  521. o   Processing for IDATE improved a little.  I saw some DATE: lines that
  522.     started with weekday names like "Sun, ".
  523.  
  524. o   New INI parameter - ReplyStripTagline defaulting to YES.  Set it to NO
  525.     if you want to use SmartQuoting (which strips the original messages
  526.     tagline) but still want the tag quoted.
  527.  
  528. o   QuoteStyle now has an optional parameter, which is ON by default.
  529.     If you specify TagStyle=PCBoard,Autosense, you're saying that quote
  530.     style can use hi-end ASCII chars, but if it's a Fidonet reply,
  531.     change to Fidonet mode.  I'm not sure if I should include Internet
  532.     messages as Fido-typed tags ... I probably should.  I'll research.
  533.     Without the "Autosense" keyword, tag style will adhere strictly to
  534.     what's been specified.
  535.  
  536. o   Added new Template file sections: SaveHeader and PrintHeader.  Lets
  537.     you define the header for messages when printed or saved.  If these
  538.     sections don't exist, the old default header is used.
  539.  
  540. o   Added more variables to aid in the support of the new header sections:
  541.     MsgRefNbr, MsgNumber, MsgStatus.  In addition, added some more variables
  542.     to aid in formatting sections.  @COL:45@ sets the next column to 45.
  543.     @RCOL:72@ says to right justify the next variable referenced at col 72.
  544.     @Center:40@ says to center the next variable referenced over column 40.
  545.     The @RCOL@ and @CENTER@ variables can be used w/o column specs to
  546.     right justify at "wrap column" or center the entire line between wrap
  547.     column and 1.
  548.  
  549.     Negative @COL@ specs may be supplied.  This will delete the specified
  550.     number of characters before the variable.  For example, @ITIME@@COL:-4@
  551.     would change 07:54:30 GMT to just 07:54:30.  Messes up, tho, if MSGDATE
  552.     ends up getting substituted for IDATE (no IDATE is found).
  553.  
  554.     See example.tf, at the end.  There's a section `unused` with some
  555.     doc/examples.
  556.  
  557. o   The template file now supports comment lines.  Simply start the line
  558.     (very first columns) with ";;" and the line is ignored.
  559.  
  560. o   While viewing any message, you can press "~" to rewrap it.  This is
  561.     useful only in USENET (Internet) conferences where sometimes a message
  562.     gets posted without linefeeds.  MR/2 would display it on a single line,
  563.     but only give you access to the first 160 characters.  This rewrapping
  564.     is quite temporary (if you "go back" later to view the same message,
  565.     you'll have to rewrap it again), and totally manual; performed by user
  566.     keypress only.  I may INI-ize an automated/detection scheme later.
  567.  
  568. o   Added a bunch of code to better detect message display lines that are
  569.     "quotes" from previous messages.  This is not configurable at this time.
  570.     If I did too much, yell and I'll make this optional.  With all the
  571.     messages I looked at, quoting highlights were right 99% of the time.
  572.  
  573. o   New QuoteBody option - Paragraph.  If you specify something like:
  574.  
  575.         QuoteBody="%i│▌",Paragraph
  576.  
  577.     then you'll get a quotes like:
  578.  
  579.         MN│▌Yes-  DOS 6 upgrade is... (lines chopped for brevity)
  580.           │▌number of files that...
  581.  
  582.         MN│▌And then after your DOS...
  583.           │▌the manual of files you...
  584.           │▌release the whole thing...
  585.  
  586.        you can do the same thing with "%i>", and secondary lines
  587.        get just " >".  Use the "|" (shifted backslash) and Fidonet
  588.        sysops may not yell at you :)  (it's not hi-end ASCII).
  589.  
  590.     Bummer!  I just saw someone (a registered MR/2 user using a DOS
  591.     package, hmmmph!) quote with a technique that this doesn't yet
  592.     handle :(.  Just a minor nit, maybe I'll add something later to do
  593.     this (YOU CAN'T DO THIS WITH MR/2):
  594.  
  595.         MN┤Yes-  DOS 6 upgrade is... (lines chopped for brevity)
  596.           │number of files that...
  597.  
  598.  
  599. o   Modified the logic to pick out the quoting initials to better parse
  600.     Internet "from" fields.  Still needs some other strange-character
  601.     detection added (nick.knight@pc-ohio should reduce to nk>).
  602.  
  603. o   Fixed a bug where internet from fields that were filled to 25 characters
  604.     resulted in your own last initial being inserted as the senders second
  605.     initial (Michael.Hagerty@nitelog.com to Nick Knight, reply would
  606.     be quoted MK>)  This *was* fixed in v1.45 but not documented.
  607.  
  608. o   I added some things. First SmartWrapping and SmartQuoting have three
  609.     levels: No, Yes and Full.  Full is aggressive, rewrapping all
  610.     non-quoted text to the defined wrap column (This is the old "YES").
  611.     If set to Yes (the "new" option), wrapping occurs ONLY after a line
  612.     feed has been inserted by MR/2 (an overlength line was detected).
  613.     The defaults are "YES" ... we'll see if this works any better.
  614.     Limited testing, but you *can* now shut these off w/o crashing!
  615.  
  616. o   Also, add an "~" to the end of any line (before the linefeed) and
  617.     MR/2 will strip out the "~" and keep the return that follows intact.
  618.     This is for stubborn wrapping problems.  Just in case :)
  619.  
  620. o   If the quoting initials ended up longer than 9 characters (FROM name
  621.     had no spaces), the string was not properly terminated.  This resulted
  622.     in garbage in the initials and in one reported case, a crash.  This
  623.     would occur most often in internet conferences.
  624.  
  625. o   New template sections are definable:  NewInternet and NewNetmail
  626.     for creating new messages in these private-mail conferences.
  627.  
  628. o   When editing a message header and the conference is the Internet or
  629.     Netmail defined conference, the "private" flag is set to YES.
  630.  
  631. o   New template section: `RIME` can be defined for use when replying
  632.     to a message in private mode.  If a reply is private, and the
  633.     source message is determined to be from a RIME source (Postlink
  634.     origin is last line of message), then this section is used in
  635.     generating the reply.  This allows for private, routed mail.
  636.     Not sure what to do about "new" private, routed messages.
  637.  
  638. o   New variables:  @RimeIDCode@ and @RimeSiteNo@ for use in the RIME
  639.     section for "routing" private messages.  Will result in blanks unless
  640.     replying to a message with a Postlink origin line.
  641.  
  642. o   New Variables:
  643.  
  644.         @RimeIDCode@ and @RimeSiteNo@, defined above.
  645.  
  646.         @Version@ for the MR/2 version.
  647.  
  648.         @SerialNumber@ is replaced by the registered serial number
  649.                 (empty if not registered).
  650.  
  651.         @UserName@ is replaced by your user names as found in the QWK
  652.                 control.dat structure.
  653.  
  654.         @IDate@ is replaced with the Internet "Date:" spec, or the
  655.                 the same results as @MDATE@ if a date string is not
  656.                 found.
  657.  
  658. o   New template section: `Forward`.  If this section is declared, it is
  659.     used as the template "prefix" for forwarded messages.  NOTE:  $Body is
  660.     not required, this section is inserted as a whole.  If not declared,
  661.     the old MR/2 default forward prefix is used.
  662.  
  663. o   See EXAMPLE.TF for examples of all new section capabilities.  My name
  664.     and email addresses are plastered all through here.  You'll want to,
  665.     of course, change these to your own :)
  666.  
  667. o   When replying into the Internet mail conference, the @INTERNET@
  668.     variable will better represent a true Internet address.  If the
  669.     Reply-To: line isn't present, MR/2 then looks for a "From:" line and
  670.     attempts to parse out an address.  If no From: line is detected,
  671.     MR/2 now looks to the last line of the message.  If the sender has
  672.     included his address inside of parenthesis, then this is used as the
  673.     INTERNET value.
  674.  
  675. o   Modified msg2rep.cmd so that if archiver.id file isn't found, it
  676.     defaults to pkzip (configurable).  If using no packet entry, no
  677.     unarchiver was called, so no archiver.id is created.  We need to
  678.     be able to specify a packet as a default.
  679.  
  680. o   If a local INI specified a value for Internet and/or Netmail, it
  681.     was not cleared when the packet was exitted.  If the next packet
  682.     opened did not reset these values (or did not have a local INI), then
  683.     some erroneous detection of network mail would result.  Fixed.
  684.  
  685. o   I modified the "origin" line finding logic to recognize more common
  686.     reader/network tearline styles.  For instance, MR/2's own TwoLine
  687.     style tagline is now recognized as the beginning of the origin section
  688.     (and end of the BODY section).
  689.  
  690. o   Started coding of a REXX script to handle detection of the archiver
  691.     used to pack the mail packet.  A code is returned that will be used to
  692.     branch to the correct command for unpacking.  To me, this is the ideal
  693.     solution, as it is forever extensible.  I've got a scheme for a packer
  694.     script (for replies) that will match the unpacker used.  I'm new to
  695.     REXX coding (this was the perfect excuse to get my feet wet :), so
  696.     if anyone wants to make improvements and/or enhancements, I'll welcome
  697.     them.  (file is named Unqwk.cmd)
  698.  
  699. o   Create msg2rep.cmd - a REXX script for packing replies into a .rep
  700.     file based on the method used to unpack the original packet.  The source
  701.     packet *must* have been unpacked with unqwk.cmd (or, at least, the file
  702.     "archiver.id" must exist and identify the correct packer to use).  This
  703.     script opens up "archiver.id" and extracts the id number.  Based on that
  704.     number, a branch is made to the correct packet command.
  705.  
  706.     NOTE:  You may have to modify these files a tad IF your archivers
  707.     are not in your "PATH" environment variable.
  708.  
  709.     NOTE:  These command are useful if you use multiple packet sources
  710.     (BBS's) that use different compression techniques.  If you can get
  711.     by with a single zipper/unzipper command, the "old" way is OK, and
  712.     in fact, still more efficient.  These new files simply provide
  713.     additional flexibility for those that frequent a variety of BBS's and
  714.     need this functionality.
  715.  
  716.     INSTALLATION:  Modify your MR2.INI file to declare:
  717.  
  718.         Zipper=..\msg2rep
  719.         Unzipper=..\unqwk
  720.  
  721.     the default .cmd files depend on all archivers being in your "path".
  722.     If not, you may modify the path = '' statement at the top of each
  723.     file to reflect the correct path, or modify each zipper command
  724.     separately to reflect each's valid path.
  725.  
  726. o   The prompt "Work area has an open packet" has been enhanced.  You may
  727.     still see this prompt.  However, if the work directory is found to
  728.     contain replies, the prompt will read "Open packet with REPLIES found".
  729.  
  730. o   If an error occurs when unpacking the packet, you will now remain
  731.     inside MR/2 to select a new packet, or whatever.
  732.  
  733. o   IF an error occurs while packing replies, the work directory is *not*
  734.     purged.  Previously, any error while spawning the packer still let the
  735.     files be deleted.  What happens now is, after the command error is
  736.     reported, you're prompted that an open packet with replies exists.  The
  737.     correct course of action is to go back in the packet (continue working
  738.     with the open packet) fast exit with ALT-X and correct the zipper
  739.     problem.
  740.  
  741. o   Cleaned up and tested UNQWK.CMD and MSG2REP.CMD.  Made sure error codes
  742.     were properly returned to MR/2.  Seems to work well with the new error
  743.     handling described above.
  744.  
  745. o   Added new variable @ISUBJECT@ that resolves to the Internet message
  746.     subject line (often different than the QWK "subject" field).
  747.     I hope there's a limit to the size of these things ... I only
  748.     accomodate "realistic" lengths.  We'll see.
  749.  
  750. o   Ooops.  New template section logic didn't accomodate new messages
  751.     created w/o replying.  The template file can now define a section for
  752.     `NewMessage`.
  753.  
  754. o   The INI parameter SplitLongMessages has been enhanced.  YES/NO still
  755.     function in the old way; YES will cause messages to be split at 92
  756.     lines (90 lines of message, 2 lines for the <cont..d> footer).  You
  757.     can now, however, place a number here as an option.  This sets
  758.     splitting to YES, but modifies the line count cutoff to be the specified
  759.     value (instead of 92).  This value *must* be greater than or equal
  760.     to 10 (I've been told of a BBS system that requires no more than 16
  761.     lines <really!>, so I figure 10 will be a "safe" minimum).  I would
  762.     suggest using a reasonable number if you need to change the default
  763.     at all.
  764.  
  765. o   New INI parameters V0 through V9 allow you to set user-defined text
  766.     strings as template variables.  Uses of the strings @V0@ through @V9@
  767.     in the tenplate file will be replced with the corresponding defined
  768.     text string.
  769.  
  770.     These variables can contain any other variables, including other "V"
  771.     variables.  This allows for a template to be defined with an
  772.     attribution line of @V0@, for example, and this line can be changed
  773.     for each BBS by defining different values to V0 in the BBSs local
  774.     INI file.  The variable replacement is recursive, so any number of
  775.     replacemnet levels is possible.  It's also possible to confuse the
  776.     system by circularly defining variables.  My rule:  keep it where
  777.     it's understandable.
  778.  
  779.     For example, if you add a line to MR2.INI that says "V0=1:157/200"
  780.     and your template file starts "...writing from Fidonet address @V0@",
  781.     the fidonet node address will be placed in the reply.
  782.  
  783. o   New INI parameters "INTERNET" and "NETMAIL".  Use these variables to
  784.     declare which conferences, if any, handle Internet mail and Fidonet
  785.     netmail, respectively.  For example, PC-Ohio has Internet mail in
  786.     conference 5 and Fidonet netmail in conference 6.  My PC-OHIO.INI
  787.     file has:
  788.  
  789.     Internet=5
  790.     Netmail=6
  791.  
  792.     Nerd' Nook has Netmail in conference in 139 and no Internet capabilities.
  793.     My NerdNook.INI file has the lines:
  794.  
  795.     Internet=-1
  796.     Netmail=139
  797.  
  798.     The "-1" tells MR/2 that there is no Internet support, and makes sure
  799.     that the Internet section template is not referenced.
  800.  
  801. o   New variables @INTERNET@ and @FIDONET@.  The INTERNET variable will
  802.     be replaced with the "Reply-to:" address found in Internet mail.  The
  803.     target address will be stripped of extra verbage and should represent
  804.     a correct and "ready-to-go" internet address.  The FIDONET variable
  805.     will be replaced with the full Fidonet address found in the origin
  806.     line of the current message.  If either one of these variable can
  807.     not be resolved, then an empty string is substituted.
  808.  
  809.     These variables are meant to be used for personal mail addressing
  810.     using template "sections".  See next blurb.
  811.  
  812. o   Sections in the template file `Internet` and `Netmail`.  You may now
  813.     allocate "sections" within the template file.  Sections are denoted
  814.     and named by a string between "accent" characters (`).  The first
  815.     template file section has no name and will be refered to as the
  816.     "default" section.  A section ends at the next section name string,
  817.     or at the end of the file.
  818.  
  819.     When replying to messages targetted for a conference declared to
  820.     be the INTERNET or NETMAIL conferences, MR/2 will switch template
  821.     sections to the corresponding section.  If ever a section is not found
  822.     (by name matching), the default section is used.
  823.  
  824.     This allows for Fidonet netmail and Internet mail to have templates
  825.     that correctly set up destination addressing.  See the file Example.tf
  826.     for examples of sections.
  827.  
  828. o   Mods to reply creation ... removed the beginning CR/LF when creating
  829.     the reply file.  Made changes to the way the template file handled
  830.     CR/LF spacing.  Template file's allignment matches reply files
  831.     better now (line spacing/blank lines).
  832.  
  833. o   When replying and the FROM user name is an Internet made-up name with
  834.     periods imbedded, MR/2 nulls-out the quoting initials.  The quoted text
  835.     is simply marked with whatever symbol is defined in the INI, usually
  836.     a ">" (no initials preceed the ">").
  837.  
  838. o   Oh boy.  I modified the Save Reply logic of my QWK class.  This is
  839.     dangerous, simply because it changes the way replies are saved.  I'll
  840.     test it thoroughly before letting it out.  *Please* report any problems
  841.     to me quickly.
  842.  
  843.     The change comes when splitting messages (it may effect more, my hope
  844.     is that it doesn't :).  IF you're in sending Internet mail or Netmail,
  845.     the message "header" will be copied to each split section.  In most
  846.     cases, this will be the correct function.  There may be cases where
  847.     it isn't.  Yell at me and I'll make it configurable.  In other words,
  848.     netmail or internet mail that's split will be addressed properly for
  849.     all "parts" if addressing is done on the first line(s) of the message.
  850.  
  851. o   When replying into the Fidonet netmail conference, the source message
  852.     is first checked to see if the first line starts "From:".  If so, and
  853.     what follows appears to be a Fidonet node designation (it has a ":" and
  854.     a "/"), then this is used as the value of the FIDONET variable.
  855.     If not found, the origin line is found.  In netmail messages (the ones
  856.     I receive at least), there is no origin line, just a "From:" identifier
  857.     on the very first line of the message.
  858.  
  859. o   Taglines now are filtered for variables (e.g., @FROM@).
  860.  
  861. o   Took template file checking one step further - if file name is
  862.     empty, processing doesn't even start.
  863.  
  864. o   The initial MR2.INI file now specifies that the INTERNAL editor now
  865.     be used as the default.  The initial INI editing is still performed
  866.     inside the E editor.
  867.  
  868. o   New INI parameter:  "TemplateFile".  This is another one of those
  869.     features that is merely a starting place and has lots of future
  870.     expansion possibilities.  Place a file name here that defines a
  871.     template for all message replies.  The reply will created using this
  872.     file as a guide BEFORE you edit it.  This allows for any necessary
  873.     cleanup.  The "template" file I used for testing looked like this
  874.     (note that the variables used will be documented below):
  875.  
  876.     -------------------------------------------------------------------
  877.     Subject: @Subject@
  878.     In a message dated @DATE@, @FROM@ said to @TO@:
  879.  
  880.  
  881.     $BODY
  882.  
  883.  
  884.     Nick Knight
  885.  
  886.     From @from@ reading @CONFNAME@ (@CONFNUM@) on @BBSID@, to @TO@
  887.     Subject: @Subject@
  888.  
  889.     FidoNet:    1:157/2
  890.     Internet:   nick.knight@pcohio.com
  891.     Compuserve: 76066,1240
  892.  
  893.     To First:   @tofirst@
  894.     To Last:    @tolast@
  895.     YYMMDD:     @yymmdd@
  896.     Date:       @date@
  897.     From First: @fromfirst@
  898.     From Last:  @FromLast@
  899.     Msg Date:   @msgdate@
  900.     Msg Time:   @msgtime@
  901.     Day:        @Day@
  902.     Julian:     @Julian@
  903.     Time:       @Time@
  904.     Time 24:    @Time24@
  905.     AM/PM:      @AmPm@
  906.  
  907.     Upper:      @Upper@@Subject@ @upper@@day@
  908.     Lower:      @lOWER@@Subject@ @lower@@day@
  909.     Mixed:      @mix@@From@ -> @mix@@to@
  910.     -------------------------------------------------------------------
  911.  
  912.     The quoted version of the original message is inserted at the $BODY
  913.     marker, which is required.  NOTE that this is not an appropriate
  914.     template file for use within internationally echoed conferences.
  915.     It's offered here merely as an example.
  916.  
  917.     The section before the $BODY line allows for an "attribution"
  918.     line or section.  The area below the $BODY marker works as a
  919.     signoff or signature section.
  920.  
  921.     AGAIN, this feature is under development and may be changed in the
  922.     next couple of versions.  My idea is to add more blocks to this file.
  923.     For example, a definition for saved message headers, forwarded
  924.     header definition, etc.,.  I've got plenty of ideas.
  925.  
  926.     The reply file generated by my test template file looked like:
  927.     -----------------------------------------------------------------
  928.  
  929.     Subject: NEW ZOO
  930.     In a message dated 03/06/93, DAN HANSON said to ALL:
  931.  
  932.     DH>I saw this in Time Magazine.  The New York Bronx Zoo has been
  933.     DH>renamed to the International Wildlife Conservation Park.  In
  934.  
  935.     <My reply would be inserted here.>
  936.  
  937.     Nick Knight
  938.  
  939.     From DAN HANSON reading Main Board (0) on PC-OHIO, to ALL
  940.     Subject: NEW ZOO
  941.  
  942.     FidoNet:    1:157/2
  943.     Internet:   nick.knight@pcohio.com
  944.     Compuserve: 76066,1240
  945.  
  946.     To First:   ALL
  947.     To Last:    ALL
  948.     YYMMDD:     930306
  949.     Date:       03/06/93
  950.     From First: DAN
  951.     From Last:  HANSON
  952.     Msg Date:   03-06-93
  953.     Msg Time:   14:21
  954.     Day:        Saturday
  955.     Julian:     065
  956.     Time:       03:08
  957.     Time 24:    15:08
  958.     AM/PM:      PM
  959.  
  960.     Upper:      NEW ZOO SATURDAY
  961.     Lower:      new zoo saturday
  962.     Mixed:      Dan Hanson -> All
  963.     -----------------------------------------------------------------
  964.  
  965. o   Variables are available for use in the template file.  They are
  966.     currently only used by the reply file generator.  I'll add the
  967.     capability to other areas as I think of them.
  968.  
  969.     The following variables have been provided:
  970.  
  971.         BBSID                           TIME
  972.         CONFNAME                        TIME24
  973.         CONFNUM                         TO
  974.         DATE                            TOFIRST
  975.         DAY                             TOLAST
  976.         FROM                            YYMMDD
  977.         FROMFIRST                       UPPER
  978.         FROMLAST                        LOWER
  979.         MSGDATE                         MIX
  980.         MSGTIME                         AMPM
  981.         SUBJECT                         JULIAN
  982.  
  983.  
  984.     The literals UPPER, LOWER and MIX are not actual variables, but
  985.     modifiers.  They will convert the case of the NEXT variable
  986.     replacement to either all upper, all lower or mixed case, respectively.
  987.     Mixed case basically lower cases all letters except the first letter
  988.     of each word.  See the example above for more detail.
  989.  
  990. o   GREATER CHICAGO Online BBS is now offering a service called the
  991.     "OS/2 Shareware Author Support Program".  They are willing to handle
  992.     Visa/Mastercard charges for shareware authors.  Starting immediately,
  993.     MR/2 may be registered by "charging" it!  You can register online by
  994.     calling Greater Chicago Online BBS at (708) 895-4042.  Alternatively,
  995.     you can provide your charge card information to me directly on the
  996.     MR/2 registration form provided (register.doc).  There is a $2.00
  997.     handling fee associated with all charged registrations, making the
  998.     total charged registration cost $22.00 US for domestic orders.
  999.  
  1000.     Shareware authors may get more information on the OS/2 Shareware
  1001.     Author Support Program by calling the GREATER CHICAGO Online BBS at
  1002.     the number above (leave a note to the sysop) or by Compuserve mail
  1003.     at 70404,3277.  Fidonet netmail can be sent to Bill Cook at 1:115/895.
  1004.  
  1005. ==============================================================================
  1006.  
  1007. Changes included in v0.99a
  1008. --------------------------
  1009.  
  1010. o   Attempting to show the BBS's Welcome screen in the message listbox
  1011.     behind conference select picklist.  It isn't pretty (I need a
  1012.     monospaced font) and you can't see much of it.  Maybe I'll try
  1013.     something else.
  1014.  
  1015. o   After deferring a message, the message status was not updated with a
  1016.     "D", even though the message WAS deferred.  Fixed.
  1017.  
  1018. o   New routine "clear_resulttable()" is called if there is no local INI
  1019.     and a packet is closed.  Previously, hit counters for custom
  1020.     conferences would not respresent the correct counts (counts would
  1021.     not be cleared for the next packet).
  1022.  
  1023. o   Index display showed message number with some trailing garbage
  1024.     sometimes. This is fixed.
  1025.  
  1026. o   No QWK Entry code started.
  1027.  
  1028. o   Open by association started (specifying a packet as a command-line
  1029.     parameter).
  1030.  
  1031. o   The spacebar now really does work as in MR/2 classic ... it works
  1032.     like the page-down key until the end of a message is displayed, then
  1033.     like the NEXT key.
  1034.  
  1035. o   When editing the message header, the F10 key now works as it does
  1036.     in MR/2 classic.  That is, it works as the "accept" key.  I'll leave
  1037.     the F11 key also as an "accept" key for those that got used to it.
  1038.  
  1039. o   Write New:  The selected conference would be erased on the "after"
  1040.     header edit.  It would be reset to "000".  Fixed.
  1041.  
  1042. o   The E editor was demonstrating some very unusual behaviour.  When
  1043.     replying, parts of the message would be hidden and unavailable for
  1044.     editing.  Yet, they *were* there!  There would be no vertical scroll
  1045.     bars displayed, and the horizontal was only in one (the wrong)
  1046.     direction.  This ended up having something to do with the program
  1047.     control value I was setting.  EPM seemed to work OK, as did text mode
  1048.     edit sessions, but E just croaked.  This *seems* to be fixed.
  1049.  
  1050. o   Also, the $ and ! specifiers for DOS and FullScreen sessions added
  1051.     earlier can now be combined in the form $! for both packers and
  1052.     your editor.  IE, you can force a DOS session to full-screen.
  1053.  
  1054. o   Tagline stealer had a problem with certain characters (while editing
  1055.     the tagline-to-save) invoked message functions (Reply, for example).
  1056.     This has been fixed ... I need to review all my dialog boxes for the
  1057.     same types of problems.
  1058.  
  1059. o   Sizable message reading screen.  It has some painting problems when
  1060.     the screen is resized, but once the size is remembered it works
  1061.     pretty well.  You can also size the Conference selection dialog.
  1062.     MR/2 PM now remembers the size of these screens in addition to the
  1063.     position.
  1064.  
  1065. o   The possibility of the message listbox getting the focus has been
  1066.     eliminated (I think? :).  When this happened, keys would cease to
  1067.     function as they would normally (X would not exit, F would not
  1068.     find).
  1069.  
  1070. Changes included in v0.99
  1071. -------------------------
  1072.  
  1073. o   For your archivers:  if you wish (or have to :) use a DOS version
  1074.     of PKUnzip, for example, MR/2 PM will now work correctly.
  1075.  
  1076.     This bug was causing lockups (blank screen, no keyboard, manual
  1077.     boot time) on OS/2 2.0 GA and simply failing on the old 2.1 beta.
  1078.     No idea what it did to versions in-between.
  1079.  
  1080.     Now, when a DOS archiver is called upon, MR/2 PM opens a DOS window
  1081.     (in the "background", even) and runs the DOS utility there.
  1082.  
  1083.     Editors may also be DOS-based.
  1084.  
  1085. o   I changed the way that the zip/zipper work.  Basically, whether
  1086.     using DOS or OS/2 executables, a new session (windowed usually)
  1087.     is created.  I'll have to see if I like this better, and get
  1088.     outside opinions (anybody?).  Also, the editor is called with
  1089.     the same logic.  This should help with those cases where the
  1090.     reply editor would end up "in the background".  That shouldn't
  1091.     happen at all now, as MR/2 PM is suspended UNTIL the editor is
  1092.     terminated.  Uh oh, can't have this!
  1093.  
  1094. o   Tagline selection list now has buttons for OK and CANCEL.
  1095.  
  1096. o   Lockups due to missing or unnamed template file (lockup when
  1097.     requesting the editor for a reply) are now fixed.  Same problems
  1098.     as with MR/2 classic.
  1099.  
  1100. o   Read markers are back on the message index list, and the read
  1101.     count is now back on the thread selection list.  Sorry!
  1102.  
  1103. o   Write button is now enabled and can be used to write "new" messages.
  1104.     I'm getting some random crashing ... more work is needed.
  1105.  
  1106. o   New buttons on Conference selection list:  News, Files and Bulletins.
  1107.     Bulletins is still non-functional.  Soon.  Buttons call your editor
  1108.     accessing the specified file.  No checking for non-existent files.
  1109.  
  1110. o   Mods to keep secondary dialog box positions as "relative" to the
  1111.     open/message windows.  That means that if you place the conference
  1112.     select window somewhere, then move the message reading screen, the
  1113.     conference select box will move to stay in the same "relative"
  1114.     position.
  1115.  
  1116. o   Cleaned up some of the "extra" little informative dialogs that would
  1117.     end up appearing as independent windows.
  1118.  
  1119. o   The zipper/unzipper EXE is now queried, and if found to be a DOS app,
  1120.     a DOS session is started.  No strange "$" specifiers needed :)
  1121.     The window is now opened foreground, though.
  1122.  
  1123. o   The editor call is now handled differently.  You editor should now
  1124.     end up with the correct focus, even if windowed.
  1125.  
  1126. o   The conference listbox is now automatically updated if/when the
  1127.     background "custom conference" thread completes.
  1128.  
  1129. o   Edit header now sets the focus to the SUBJECT field.
  1130.  
  1131. o   Cleaned up some of the button resetting to "default" values
  1132.     after some other button is pressed.  More to come ...
  1133.  
  1134. o   Removed the makeshift "paging" buttons I had placed on the message
  1135.     reading dialog.  Turns out PM already accomodates paging by clicking
  1136.     inside the scrollbar track, above or below the slider.  I just
  1137.     recently learned that!
  1138.  
  1139. o   The MR/2 PM version is now part of the packet select dialog title.
  1140.  
  1141. o   The distribution zip now contains a FILE_ID.DIZ description file.
  1142.  
  1143. o   Bulletin button on the conference select list is now functional.  It
  1144.     brings up a selection list of available bulletins.  Selecting one will
  1145.     load your editor with the appropriate bulletin.  Only minimal error
  1146.     checking is performed.
  1147.  
  1148.  
  1149. Changes included in v0.98
  1150. -------------------------
  1151.  
  1152. NOTE: Version 0.97 never really made it into distribution.
  1153.  
  1154. o   Relinked with many of MR/2's latest features being added automatically.
  1155.     Others needed some minor code adjustments.  Deferred messages are
  1156.     functional, as is the new "template" feature.  I'll include MR2READ.ME
  1157.     for anyone that wants to get a feel for what else *might* be new.
  1158.     Also, the "TwoLine" TagStyle is now available.
  1159.  
  1160. o   I played around with saving window positions.  It works OK, but isn't
  1161.     quite right, particularly with regards to secondary dialog boxes.  Work
  1162.     will continue.  MR/2 PM now creates and maintains an "MR2PM.INI" file
  1163.     in the software's base directory.
  1164.  
  1165.  
  1166. Changes included in v0.97
  1167. -------------------------
  1168.  
  1169. o   Buttons on the Message Index dialog box are now functional.
  1170.  
  1171. o   Removed some unnecessary screen repaints that would occur when a
  1172.     function (e.g., Pick Thread) was canceled and the same message was
  1173.     left on the screen.
  1174.  
  1175. o   If CTRL-PAGEDN was used to page forward by thread, pressing the NEXT
  1176.     button would redisplay the same message immediately afterwards (only
  1177.     once).
  1178.  
  1179. o   Focus for reading messages now starts on the NEXT button.
  1180.  
  1181. o   The SPACEBAR now functions as it does in MR/2 classic (page down,
  1182.     next message if at end of current message).  NOT YET !!!!  BROKEN
  1183.  
  1184. o   Origin recognition enhancements inherited from MR/2 classic.  Custom
  1185.     Conference now recognize the "origin" section of a message better
  1186.     whe using the "check = origin" option.
  1187.  
  1188. o   After "reList"-ing packets, the focus is set on the OPEN button.
  1189.  
  1190. o   Thread summary listbox - sometimes the last entry would be malformed
  1191.     (characters missing from the front of the thread text).  Fixed.
  1192.  
  1193. o   You can now (again) double click on a packet name to open it, save file
  1194.     to save to it.
  1195.  
  1196. o   Pressing the Tagline button while editing a reply header would crash
  1197.     MR/2 PM.  This now works correctly.
  1198.  
  1199. o   Color is supported in the message viewer listbox.  I wouldn't call
  1200.     it pretty, but it's there.  A new MR2.INI entry has been added just
  1201.     for specifying PM viewer colors.  PMColor=1,2,3 ... where 1 is the
  1202.     color for quoted text, 2 the color for normal text and 3 is the
  1203.     background color.  The defaults are half-tone, black and default
  1204.     entry field color (half-tone yellow, sorta).  You may specify one,
  1205.     two or all three and let whatever's left default.  See the MR2INI.ORG
  1206.     file for colors possible.
  1207.  
  1208. o   Many improvements inherited from MR/2 classic.  The speed of conference
  1209.     name sorting has been dramatically improved.  Some obscure control.dat
  1210.     file problems cleared up.  Personal message beeping problem fixed.
  1211.     Minor tagline problems fixed (?).
  1212.  
  1213. o   Packet selection dialog sometimes had the file date/time clipped.
  1214.     This has been corrected.
  1215.  
  1216.  
  1217. Changes included in v0.96
  1218. -------------------------
  1219.  
  1220. o   Personal messages now beep if configured to do so.
  1221.  
  1222. o   The "find" text is cleared when a new conference is selected.  Old way,
  1223.     the text locator would still be in effect when a new conference was
  1224.     entered.
  1225.  
  1226. o   Packet path was previously lost when a packet was exited, resulting in
  1227.     an empty packet selection list.  This has been fixed.
  1228.  
  1229. o   If the FROM user is changed when replying, this change is remembered for
  1230.     all subsequent replies, until a new packet is selected.
  1231.  
  1232. o   Message viewer keyboard interface enhanced.  Up/Down arrows now scroll
  1233.     message by line; Page Up/Down by page.  Home jumps to beginning,
  1234.     End to end.  Insert key calls up INDEX (still trying to stay SLMR
  1235.     keystroke compat for some reason :)  Paging improved somewhat.
  1236.  
  1237. o   Added a more direct way to get message lines from the QWK engine.  The
  1238.     previous method involved querying the message line by number, walking
  1239.     through increasing number requests.  Each call resulted in the entire
  1240.     message being traversed until the line was found.  Now, the new call
  1241.     oStart = GetNextMessageLine(char *target, int oStart) speeds this up.
  1242.     Filling the message list box is now faster.
  1243.  
  1244. o   Columnized listboxes now display selected item in a more "correct"
  1245.     color.
  1246.  
  1247. o   Bookmark flags were not getting set and/or being read.  This has
  1248.     been corrected.
  1249.  
  1250. o   Message window now displays the bookmark flags in a minimal fashion.
  1251.     If a message has been read, a "√" is displayed next to the reference
  1252.     number.  After this, an "R" appears if the message was replied to,
  1253.     an "S" if it was saved, and a "K" if it's a reply that's been killed.
  1254.  
  1255. o   Taglines are now selectable via the "taglines" button.  Hot key of
  1256.     F2 not yet implemented.
  1257.  
  1258. o   Save Header button on reply message header now functions.
  1259.  
  1260. o   If using an existing packet, flags to save replies and bookmark flags
  1261.     were not being defaulted to TRUE.  This caused problems - now fixed.
  1262.  
  1263. o   When modifying or killing a reply, the message header and message text
  1264.     are now updated on screen when the action is complete.
  1265.  
  1266. o   When spawning to the editor, the path was *not* inherited from MR/2 PM.
  1267.     You would usually end up with a default path of C:\.  This cause
  1268.     problems with reply files named "reply.msg" (not fully qualified) to
  1269.     appear to be missing.  You now start editing while pathed into the
  1270.     tmp$$ working directory.
  1271.  
  1272. o   Enabled the "T" key when viewing a message.  This now steals the current
  1273.     message's tagline.  As with MR/2 classic, the arrow keys let you scroll
  1274.     through the message lines.  Pushbuttons are also provided for this
  1275.     purpose.
  1276.  
  1277. o   Save-to-file has also been enabled.  Press "S" while viewing a message.
  1278.     A file dialog screen comes up for save-file selection.  There are some
  1279.     inconsistencies here that I hope to clean up quickly ... but it does
  1280.     work.
  1281.  
  1282. o   Enabled the F2, F3, F9 and F10 keys on the Reply Header Edit screen
  1283.     to function as in MR/2 classic;  Pick tag, Toggle to, Save Header Only,
  1284.     Accept, respectively.  F10 won't register for some reason (it's a PM
  1285.     special "menu" key - I'll have to read up :), so I've assigned F11 as
  1286.     the "Accept" hot key (in addition to F10, which I hope to get working).
  1287.  
  1288. o   The "Save Header" botton when editing the message header is enabled
  1289.     only when editing an existing reply.  This allows you to modify
  1290.     the destination data w/o editing the message content.  This makes no
  1291.     sense unless the message already exists.
  1292.  
  1293. o   The "R" replied mark wasn't showing up immediately after a message was
  1294.     replied to.  Fixed.
  1295.  
  1296. o   The Page Up/Down "buttons" on the message viewer no longer obtain the
  1297.     focus when clicked on.
  1298.  
  1299. o   Private/Public buttons now work correctly while editing a reply's header.
  1300.     Conference name is now static text - no user editing can be performed.
  1301.  
  1302. o   Expanded the conferences w/mail listbox width a tad.
  1303.  
  1304. o   Most pushbuttons now have associated hotkeys that are underlined.  I
  1305.     may have went a little overboard, but I dunno.
  1306.  
  1307. o   When modifying a reply, old tagline is extracted and becomes the
  1308.     default tagline for the "new", updated reply.  This was previously
  1309.     broken.
  1310.  
  1311. o   There was some crazyness happening with WM_CHAR messages (keyboard
  1312.     characters) that I've kludged around.  For example, with a message
  1313.     displayed and a secondary dialog box up (pick thread, reply header,
  1314.     etc.,.) and a pushbutton highlighted, pressing the "X" key would
  1315.     prompt you to exit.  The "S" key would bring up the save dialog.
  1316.     Even stranger things would happen.  I'm not sure what I'm doing
  1317.     wrong when nesting dialogs, but I put a simple filter in that
  1318.     disables keystrokes to the message window when another dialog box
  1319.     is on top.
  1320.  
  1321. o   Double clicking on the system menu button, or ALT-F4'ing from either
  1322.     of the programs main screens now exits cleanly.  It used to trap.
  1323.  
  1324. o   MR/2 classic uses TAB/BACKSPACE while viewing a message to move
  1325.     forward/backwards an entire thread.  Since TAB is used by the PM
  1326.     dialog routines, this key is logically unavailable.  I've attached
  1327.     the same functionality to the CTRL-PAGEDN (fwd) and CTRL_PAGEUP (back)
  1328.     keys.  These work the same way in MR/2 classic - they're a carry-over
  1329.     from SLMR-compatibility days.
  1330.  
  1331. o   Often MR/2 PM would leave a file or conference unselected by default.
  1332.     When this occurred and ENTER was pressed, the program would process
  1333.     it as if ESCAPE was hit, either closing the packet, or exiting the
  1334.     program.  I've now taken steps to always have something selected by
  1335.     default when the dialog box is initially displayed.
  1336.  
  1337. o   Thread summary - message count is now columnized.
  1338.  
  1339. o   Custom conferences now align the line containing matching text on
  1340.     the second line of the message listbox.  Also, the alignment process,
  1341.     which is shared with the "Find" search function, now parses compound
  1342.     search strings and matches any one string.  (Previously, the PM
  1343.     listbox message LM_SEARCHSTRING was used - this was for straight
  1344.     word-for-word matches only).
  1345.  
  1346. o   The "Find" dialog box now displays any currently active search string.
  1347.  
  1348. o   The "L" key (find LAST search hit) did not function properly.  Fixed.
  1349.  
  1350. o   Played around with WinMessageBox to post the "Replies Exist" message.
  1351.     This is what I'll use for most confirmations, since I'm supposed to :)
  1352.  
  1353. o   Played with changing the color of text/quoted text in the message
  1354.     viewer.  It worked, but I'm not very happy with it.  I'm leaving it
  1355.     at this time to do quoted test in "halftone".  I'll make this optional,
  1356.     or allow a wider selection of color options.
  1357.  
  1358. o   The "hit" status (Hit nn/nnn) is now displayed on the message viewing
  1359.     screen if the message is part of the current search results.
  1360.  
  1361. o   Logging of messages (my "remote" debugging trail) is now off by default,
  1362.     but can be invoked by supplying a command-line parameter (anything).
  1363.  
  1364. o   The "Config" button now functions to edit the MR2.INI file.  I place
  1365.     a dialog box up that requires an "OK" when editing is complete.  This
  1366.     will be removed when I get to reading the editor's exit queue.
  1367.  
  1368. o   If no MR2.INI file exists, an initial one is made and you're placed in
  1369.     the E editor to make any necessary revisions.
  1370.  
  1371. o   If you answer NO to "use the existing open packet?", the packet is
  1372.     actually deleted.  Before, this prompt could come up several times.
  1373.  
  1374. o   While building the message header index (short pause on a fast machine,
  1375.     more significant on a slower machine), a "waiting" dialog is displayed.
  1376.     I need to find that snippet about setting the hour-glass mouse pointer.
  1377.     No, actually, I need to add some secondary threads to this stuff ...
  1378.     maybe this weekend.
  1379.  
  1380. o   Most all of the message viewer letter command found in MR/2 classic
  1381.     are now functional in MR/2 PM.  The exception seems to be the "B"
  1382.     command, read backwards w/in thread.  I'll fix this one soon :)
  1383.     The "Z" key now works (zip to first non-read in conference).
  1384.  
  1385. o   The "B" key (read backwards w/in thread, go to thread summary at
  1386.     beginning of thread) now functions correctly.  Note that selecting a
  1387.     thread from the thread summary places you at the FIRST message in a
  1388.     thread, not the last.
  1389.  
  1390. o   There's a new button on the Conference Select dialog box labeled
  1391.     "Write".  This is for composing new messages w/o a message to
  1392.     reply to.  I just have to put some code behind it now :)
  1393.  
  1394. o   The No QWK button is now operational on the packet select screen.
  1395.     If you depress this button, the "Pick BBS" dialog pops up and allows
  1396.     you to select a BBS.  From then on you're in "write new" mode.
  1397.  
  1398. o   The reply header edit dialog now has a "Conferences" button for
  1399.     selecting a different response conference.  The MR/2 classic hotkey
  1400.     F4 also maps to conference selection.  Also, the conference number
  1401.     may be plugged in by hand.  MR/2 now validates the number supplied and
  1402.     displays the conference name, or "Unknown" if a bad conference number
  1403.     is specified.
  1404.  
  1405. o   The Message Index dialog box now has horizontal scrollbar.  There's
  1406.     nothing to scroll yet, but the scrollbar's there :)
  1407.  
  1408. o   I changed the way messages are displayed when unpacking a packet and
  1409.     checking for existing replies.  This still isn't right, but it's better
  1410.     than it was.  I still need to multithread and pipe the PKZip/unzip stuff.
  1411.     That'll be first thing on the list for the next beta.
  1412.  
  1413. o   The Config button now properly resets the packet path, if it is changed
  1414.     in the INI file.  Previously, the path would not be changed.
  1415.  
  1416. o   OK, so my message index listing has a horizontal scrollbar, and I've
  1417.     got stuff to scroll.  Hmmm, I must have to actually do the scrolling,
  1418.     too.  I thought all this stuff was magic?  I guess not.
  1419.  
  1420. o   OK, Cancel buttons added to message index dialog.
  1421.  
  1422.  
  1423. Version 0.95 - Original ALPHA release 10/12/92
  1424. Version 0.96 - Second release - BETA  10/25/92
  1425. ----------------------------------------------
  1426.  
  1427. No ANSI code support exists.
  1428.  
  1429. Message display is relatively slow, particularly on long messages.
  1430.  
  1431. No online HELP exists at this time.
  1432.  
  1433. Just for fun, here's my "to do" list in its current form.  Note that these
  1434. notes aren't intended to make sense to you ... don't worry, they do to me :)
  1435. Listing these may help identify problems I'm already aware of.  There seems
  1436. to be alot, but the thing works fairly well.
  1437.  
  1438. To Do's (Bugs/Fixes):
  1439. =====================
  1440. o   Long conference lists
  1441. o   Highlight search hits - define a color.
  1442. o   Alt-R & Alt-W inside editor
  1443. o   Reorder Message read buttons?
  1444. o   Expand message index, horizontal scroll bars.
  1445. o   Hit counter for searching (checking ... )
  1446.  
  1447. o   Online help
  1448. o   Manual
  1449.  
  1450. o   Keep focus out of message box - reset focus to NEXT?
  1451. o   Edit button on Save dialog doesn't work
  1452. o   No-file error checking for bulletins.
  1453. o   Config button: editor opens in the background.  Wait box is off.
  1454.  
  1455. To Do's (Long term enhancements):
  1456. =================================
  1457. o   Toolbar(s) instead of pushbuttons.
  1458. o   Get rid of listbox for message viewer and write to window myself,
  1459.     paging, scroll bars much faster.
  1460. o   Make 32 bit and use v2.0 controls (eg, settings in a notebook).
  1461. o   Font control - colors?  Moveable/sizeable windows?
  1462.  
  1463.  
  1464.