home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / m / mr2_141.zip / READ.ME < prev    next >
Text File  |  1993-03-21  |  62KB  |  1,273 lines

  1. MR/2 - A QWK Compatible Mail Reader for OS/2.  03/22/93
  2.  
  3. Copyright (c) 1992, Knight Writer Software Company.
  4. All rights reserved.
  5.  
  6. ===================================================================
  7.                           N O T I C E
  8. ===================================================================
  9. This IS a shareware package, and does require a registration fee if
  10. you choose to continue using it after 30 days.   The registration
  11. fee is currently $20 US.  Eventually, the product MAY have a
  12. "begging" screen with a key-file that will register the software
  13. and suppress it.  The more interest I get, the more likely I am to
  14. continue with improvements.
  15. ------------------------------------------------------------------
  16.  
  17. NOTES:
  18.  
  19. RE: Complaints about crashing with the E editor.
  20.  
  21. I can't for the life of me figure this out.  I've been personally using E
  22. for replies for 2-3 weeks now, and it works just fine.  I don't like it, but
  23. it works OK.  My suggestion:  get TINY ED for OS/2 or TE.  I'm working on
  24. my own editor, either built-in or external, but it isn't hi-pri right now.
  25.  
  26.  
  27. RE: Failures when trying to return to previous reading position.
  28.  
  29. This is pretty simple code, but there is a big problem.  If you happen to
  30. be downloading while you're reading, and your comm program renames packets
  31. automatically, MR/2 may be setting the bookmark EA's on the wrong file.
  32. For example, if I'm reading NerdNook.qwk and at the same time I start to
  33. dowload a new packet from them using ZModem, the packet I'm actually reading
  34. gets renamed to "whatever" and I've still got a packet NerdNook.Qwk, it just
  35. isn't the right one.  When I close the packet, MR/2 writes the bookmark file
  36. to the new, incorrect packet's EA's.  If the "last position" happends to
  37. be past the end of file or out of the new conference's bounds, an error
  38. will be reported.
  39.  
  40. I'm open for suggestions here; I could check the date/size of the original
  41. file vs. the "new" file and warn if they don't match - or try to find the
  42. original.  The warning is easy, trying to find the original file doesn't
  43. sound that interesting to me :)
  44.  
  45.  
  46. KNOWN BUGS AND STUFF
  47. ====================
  48.  
  49. Mouse support is missing from some of the "inform user" screen.
  50.  
  51. The TEMPORARY directory MUST remain a subdirectory of the MR2 home dir.
  52.  
  53. You can't use "\" or "&" as part of any search text (since MR/2 uses them
  54. as delimiters).
  55.  
  56. You can't cancel a search until the first "hit" is displayed.  This is
  57. particularly irritating when soundex searching, since soundexing is
  58. noticably slower.
  59.  
  60. If you set "SkipReadMessages" to true, you cannot gain access to a
  61. conferences where all messages have previously been read.
  62.  
  63. If you don't like my internal editor.  You'll have to find your
  64. own or use E or EPM.  QEdit for OS/2 works nice as an inexpensive,
  65. character-mode editor/  Also, there's an OS/2 editor TE-something
  66. that I heard was OK.
  67.  
  68. You can't send ADD/DROP conference messages yet.  This seems easy
  69. enough,  so I should be able to add it in soon.
  70.  
  71. Other frills that have not yet been addressed:  Bulk marking, carbon
  72. copies, twit filter, function key assigning. There are probably others.
  73. Feel free to bombard me with requests.
  74.  
  75. No long file name support.  Since QWK is a DOS thing, the only place I can
  76. see using it is for packet names (if the user renames it).  Any ideas?
  77.  
  78.  
  79. Changes included in v1.01
  80. -------------------------
  81.  
  82. o   By request, 43 and 50 line mode are now supported via a new .ini entry.
  83.     You can supply a VideoMode=xx parameter in MR2.INI, where xx can be 25,
  84.     43 or 50. Any other numbers will be ignored.  All Selection lists and
  85.     displays are adjusted to match the screen dimensions.  For those with
  86.     vision better than mine ... :)
  87.  
  88. o   Clicking the mouse on the Subject area while viewing a message still
  89.     simulated hitting the 'T' key.  This key no longer moves forward by
  90.     thread, it steals taglines.  Now, clicking on Subject is translated
  91.     properly to an 'H'.
  92.  
  93. o   When filling a field in a "form" (e.g., the Subject field of the
  94.     Message Header Edit form), overtype-mode would sometimes echo characters
  95.     that weren't there.  This happened after some characters were deleted;
  96.     the "ghost" characters appeared at the end of the string.  This is fixed.
  97.  
  98. o   The automatic splitting of long replies is now controlled via a
  99.     MR2.INI parameter SplitLongReplies (set to Yes or No).  If set to
  100.     yes, MR/2 will split replies up so that no more than 100 lines are
  101.     in each message.  If set to no, then no splitting is performed and
  102.     one large message is create.  The default is to split message.
  103.  
  104. o   Previously, long replies were always split.  The "cut-off" point was
  105.     95 message lines, and a "<cont'd>" line was appended with a blank line.
  106.     I've seen some message processors cut the first part by one lines,
  107.     making the second message consist of 1 or 2 meaningless lines.  I've
  108.     changed the "split at" number to 92 lines.
  109.  
  110. o   And another MR2.INI parameter has been added:  AllUpperCase controls
  111.     how the Subject, From and To lines are treated after editing a message's
  112.     header information.  Previously, all fields were converted to upper case.
  113.     Now, if AllUpperCase=No, the case is left as entered.  (By request...)
  114.  
  115. o   The message header editing form now allows you to "up arrow" into the
  116.     From field and modify it.  NOTE:  many BBS's will reject messages
  117.     whose FROM line do not match the user's logon name.
  118.  
  119.  
  120. Changes included in v1.02
  121. -------------------------
  122.  
  123. o   Bug fix:  User reported a problem with conference numbers showing
  124.     incorrectly.  Turns out that some packets have a single byte
  125.     conference field in the header, and the other byte used by newer mail
  126.     doors was set to a space (hex 20).  This caused conference numbers to
  127.     be report as 8192 more than their actual value.
  128.  
  129.  
  130. Changes included in v1.03
  131. -------------------------
  132.  
  133. o   Fixes to tagline logic.  If tagline file was non-existant, MR/2 would
  134.     crash.  If file was empty, added tags would not show up until you
  135.     exited and reentered.
  136.  
  137. o   Selection list problems fixed.  Highlighting of the line above displayed
  138.     list on occasion.  Selection bar will no longer move into unfilled
  139.     areas.  Scrolling up and down through list no longer displays end-of-list
  140.     "ghost" entries.
  141.  
  142. o   Added some tests for over-length taglines.  Previously, a tagline
  143.     longer than 120 character would lock the session.
  144.  
  145. o   Forms display routine would show an over-length tagline w/o truncating
  146.     it.  Display of tagline extended to column 80, then would wrap to the
  147.     next line.  This has been corrected.
  148.  
  149. o   Actually added in 1.01 is the ability, from the packet selection screen,
  150.     to toggle video modes.  The "V" key will toggle from displayed lines
  151.     from 25 to 43, from 43 to 50, and then from 50 back to 25.
  152.  
  153. o   MR/2 would lock up when saving a reply (or a new message).  This
  154.     happened only with BBS doors that would pad the user name (in control.dat)
  155.     with spaces.  The lockup occured after pressing F10 to accept the
  156.     message header information.  This shouldn't happen any more :)
  157.  
  158. o   NOTE - NOTE - NOTE:  The problem with packets proclaiming "no mail to
  159.     read" seems to be related to missing .NDX files in the packet.  The
  160.     QMAIL door in particular lets you suppress these files, and some
  161.     mail readers (SLMR/OLX) don't use them, anyway.  MR/2 requires these
  162.     file, at least today.  I WILL provide an index building function in the
  163.     very next release, figure by 5/22 worst-case.
  164.  
  165. o   OK, so I added the routine to create NDX files if they aren't there.
  166.     (See above) Testing on this was minimal, so please report any problems.
  167.     Packets without .NDX files should no longer report "no mail found".
  168.  
  169.  
  170. Changes included in v1.04
  171. -------------------------
  172.  
  173. o   You may now create a supplemental "INI" file for any/all BBS's that
  174.     you get mail from.  MR/2 still loads its options from MR2.INI, but you
  175.     may now change some of these options automatically by BBS, when a packet
  176.     is opened.  Once the packet is unpacked and the BBS "ID" is extracted,
  177.     MR/2 checks its "base" directory (where MR2.INI resides) for a file
  178.     named after the BBS, with a ".INI" suffix.  For example, after
  179.     unpacking a QWK packet from PC-OHIO, MR/2 will load options from a file
  180.     named "PC-OHIO.INI", if one exists.  Obviously, some options will have
  181.     no effect (e.g., PacketPath has already been used and is no longer
  182.     pertainent, as is WorkPath), but things like tagline files and quoting
  183.     styles can be changed on a BBS basis.
  184.  
  185.     If a "BBS" .INI file is accessed, MR/2 will reload the global MR2.INI
  186.     file when the current packet is closed.
  187.  
  188. o   New INI parameter "TagStyle" has been added.  You may specify either
  189.     FIDONET (the default) or PCBOARD.  If Fidonet is specified, taglines
  190.     will use "*" characters to delimit MR/2's signiture.  If PCBOARD
  191.     style is requested, the "block" character used by SLMR/OLX will be
  192.     substituted.
  193.  
  194. o   Read-ahead by thread (the "H" key) has been enhanced to recognize
  195.     subjects prefixed with "RE:" or "RE: " as matching.  Messages will
  196.     also match if the subject matches the original *less* the "RE:".
  197.  
  198. o   Install now includes Register.Doc for easier user registration.
  199.  
  200.  
  201. -   That's it for this revision.  I *almost* added a large section of code
  202.     for twits and canned searches, but this is going to take some time to
  203.     code and even more time to test and debug.  I'll make that available in
  204.     a week or two, along with fixes for any other reported bugs.
  205.  
  206.     BTW - a PM version is in a very primitive form, anyone interested in
  207.     giving me some useful feedback?  First, should it be MR/2 PM or MR/PM?
  208.  
  209.  
  210. Changes included in v1.1
  211. -------------------------
  212.  
  213. o   The Reference number field was not being set and maintained properly.
  214.     If you replied to a message, that message's reference number would
  215.     get copied into the replies Ref#.  Then if you would re-edit the reply
  216.     later, the Ref# would be set to the conference number.  I've now
  217.     staightened this mess out and it seems to work properly.
  218.  
  219. o   Added a new MR2.INI parameter "WrapLinesAtColumn" that defaults to 80.
  220.     This should ease the problems with users that depend on the system "E"
  221.     editor and its "word wrapping" function.  MR/2 will let no line extend
  222.     beyond the value supplied here, and will insert a CR/LF between words
  223.     to keep text in bounds.
  224.  
  225. o   You may now set the MR2.INI variable "VideoMode" any of the values
  226.     25, 28, 34, 40, 43, 50 or 60 to represent the number of lines to
  227.     display.  Also, the V toggle while on the packet select screen has
  228.     been enhanced to toggle through all of these values.
  229.  
  230. o   MR/2 now accepts one or more file names identifying .QWK packet as
  231.     command line parameters.  For example, typing:
  232.  
  233.         MR2 E:\DL\NERDNOOK.QWK
  234.  
  235.     will invoke MR/2 and automatically select the named packet for reading.
  236.     More than one packet may be specified, MR/2 simply opens the "next"
  237.     packet when the previous packet is closed.
  238.  
  239.     When all packets on the command line have been read, MR/2 returns to
  240.     the packet selection screen and waits for a new selection.  If you wish
  241.     to have MR/2 exit after all specified files have been processed, set the
  242.     INI variable "ExitAtEndOfParameters" to YES.
  243.  
  244.     This also allows for an "association" to be set up using WPS settings.
  245.     If a new ICON is created to invoke MR/2 and "*.qwk" is set as an
  246.     association, then clicking on a QWK packet inside the file manager is
  247.     all that's necessary to read a packet.
  248.  
  249. o   Cosmetic:  "Pick a Conferences" when writing a "new" message now
  250.     reads correctly.
  251.  
  252. o   Cosmetic:  when using video lines other than 25, the search status
  253.     message would update always on line 25.  This now moves with the
  254.     number of lines displayed.
  255.  
  256. o   When editing the message header, F4 may be used to select from a list
  257.     of available conferences.  This is useful when moving a message from
  258.     its source conference into another.  By request.
  259.  
  260. o   The master conference list now displays in alphabetical order by name.
  261.     Previously, conferences listed in the order they occured in the BBS's
  262.     configuration file.
  263.  
  264. o   NOW, there's a new INI parameter, "SortMasterConferences" which
  265.     defaults to NO (old-style non sorted list).  Specifying YES will
  266.     sort the master conference list alphabetically.
  267.  
  268. o   The "Z" key, used when viewing a message, now allows you to "Zip" to
  269.     the next "unread" message in a conference.
  270.  
  271. o   Threaded reading has been greatly enhanced.  First, a new INI
  272.     option must be set - "MessageOrder=Subject" (the default is "None").
  273.     This enables all sorts of new goodies :)  Basically, setting this to YES
  274.     will sort the messages by thread before reading begins.  Care was taken
  275.     to "clump" all "RE:" type messages in with their original non-RE'd
  276.     subjects.
  277.  
  278. o   If MessageOrder has been set to "Subject", some new keys are available.
  279.     While viewing messages, the TAB key will skip ahead to the next thread.
  280.     The BACKSPACE key will skip backwards to the previous thread.  Even
  281.     better, pressing "Q" will invoke the Quick Thread Summary screen.  This
  282.     list all threads in the conference, in alphabetical order, along with
  283.     the count of previously read messages vs. total message in the thread.
  284.     All threads that have been read completely are marked with an "*".
  285.     This is a full feature "selection" screen, so you can page around,
  286.     pick and peck at only the subjects that interest you.
  287.  
  288. o   I added another option - I'm not very happy with it, but you may find it
  289.     somewhat useful.  The INI parameter "ThreadChangeTone" accepts two
  290.     numeric parameters (e.g., "ThreadChangeTone=20000,10").  These parameters
  291.     are passed to the OS/2 kernel procedure DosBeep() and represent the
  292.     frequency and duration of the tone to make when you "page" into a "new"
  293.     thread.  The values 20000,10 make a quick "clicking" like sound that
  294.     isn't *too* anoying.  I'm open to ideas on this one ... :)
  295.  
  296. o   Default tagline file is now MISC2.TAG in an attempt to minimize
  297.     anti-Windows discussions in OS/2 related conferences.  OS2.TAG is still
  298.     in the distribution zip, you'll just have to set it yourself, if you
  299.     want it.
  300.  
  301. o   Minor bug: List Selection processing would exit a list if HOME was
  302.     pressed on the "first" page of records.  Now, user stays in the
  303.     selection list and the cursor moves to the first entry.
  304.  
  305. o   When Sorting by Subject, the 'H' and the 'B' keys used the old way
  306.     (searching forwards/backwards by subject) aren't that useful.  I've
  307.     changed their behaviour slightly in this case.  The 'H' key will move
  308.     forward a message, and if the "thread" changes, will display the
  309.     Quick Thread Summary screen.  The 'B' key will move backwards one
  310.     message pull up the summary screen if you move into a "new" thread.
  311.     NOTE that the selecting a thread from the summary screen moves you to
  312.     the *first* record in the thread, even if the 'B' key was previously
  313.     used.  There currently is no way to jump to the last message in a
  314.     thread.  Is this capability desirable?
  315.  
  316. o   The default for the setting of ExtendedAttributes is now YES.  If you
  317.     do not use the E editor, some minor speed increases may be achieved
  318.     simply by setting this to NO.  Note that this is only an issue with
  319.     users creating their INI file for the first time (existing INI's are
  320.     not affected by this change).
  321.  
  322.  
  323. Didn't get to twits and canned searches yet - Sorry!  I think the threading
  324. stuff will satisfy more of you, anyway :)
  325.  
  326.  
  327. Changes included in v1.2x
  328. -------------------------
  329.  
  330. o   Thread sorting/grouping would sometimes misplace a message because the
  331.     last character was chopped.  I've modified thread matching to check
  332.     24 characters instead of 25.  I can't see where this could be a problem.
  333.  
  334. o   Disabled many keys (Q, I, Tab, Backspace) while searching all conferences.
  335.     These weren't functional under searching-all conditions, and caused
  336.     strange things to happen when invoked.
  337.  
  338. o   Pre-defined searches have been added.  I did this for myself, but I'm
  339.     sure many will see the benefit.  Basically, you can build your own
  340.     conferences by defining search criteria.  All messages found to match
  341.     will he included in the defined conference.  The "MakeConference"
  342.     parameter is added in the MR2.INI file, or can be added into the BBS
  343.     specific INI file.  See the included file "Search.Ini" for an example.
  344.     You can have criteria listed in the MR2.INI *and* the BBS ini, and
  345.     they will be combined correctly.
  346.  
  347.     The following set of lines:
  348.  
  349.         MakeConference = MR/2
  350.         String = MR/2
  351.  
  352.     will result in MR/2 searching (in the background, multithreaded) all
  353.     message for the string "MR/2" and creating a custom "MR/2" conference
  354.     that will appear in the Conferences w/Mail menu.  Once the defined
  355.     custom conferences have been built, and you return to select a
  356.     conference, these new conferences will be listed.
  357.  
  358.     The number of search result conferences is "unlimitted" - at least in
  359.     a practical sense.  Memory is the issue, and valid file names.  I use
  360.     prefixes of A00 thru A99, up to Z99.  That's 2600 possible conferences.
  361.     If someone needs more, please let me know :)
  362.  
  363.     A single pass is made through the message base - for each message, all
  364.     combinations of search criteria are evaluated and the message is
  365.     recorded in any/all of the conferences it's found to belong to.  MR/2
  366.     will "beep" (low sounding tone) when it's done searching.  I'll INI-ize
  367.     this sound later.
  368.  
  369.     As another example:
  370.  
  371.         MakeConference = DR DEBUG/C/C++ & OS/2
  372.         Conferences=93,99,111
  373.         String = OS/2
  374.  
  375.     defines a conference that will display with a rather verbose name,
  376.     and will contain all message from conferences 93, 99 and 111 in which
  377.     "OS/2" was found.  A conference number of "*", or a missing conference
  378.     line will cause ALL conferences to be searched.
  379.  
  380.     This feature is particularly handy for me.  I'm a diehard CTOS fan, and
  381.     I code a commercial bar coding software package.  If these topics ever
  382.     appear anywhere, I'd like to know.  Since they rarely appear, I
  383.     rarely bother to search for them.  With a pre-defined search, these
  384.     words are always checked for, and I'll never(*) miss an occurence due
  385.     to laziness.  I can simply add the lines:
  386.  
  387.         MakeConference = Miscellaneous
  388.         Conferences=*
  389.         String = Barcode\Bar Code\CTOS
  390.  
  391. o   Other INI parameters have been added to compliment the new
  392.     MakeConference option. The parameter "ShowEmpties" controls whether
  393.     empty custom conferences are to be displayed with message counts of
  394.     "(0)".  If NO is specified, empty conferences do not appear at all
  395.     in the conference list.  "DisplayStatus" will show the message
  396.     search/hit counter on the bottom of the screen if set to YES.
  397.     "SeparaterBar" will place a line between the normal and custom
  398.     conferences if set to YES.
  399.  
  400. o   Fixed a bug in the logic that used to split long messages.  I messed
  401.     this up when I put in word wrapping - it wouldn't really split messages,
  402.     it simply put all lines in the first message and created an empty
  403.     "cont'd" message.
  404.  
  405. o   In testing the message splitting, I discovered that replies over 32K
  406.     in size weren't even registering.  This equates roughly to 800 lines of
  407.     message text.  The reply builder now accomodates messages up to
  408.     64K in length.  This is roughly 1600 lines of text, or 15-16 messages
  409.     "cont'd" from the first.
  410.  
  411. o   AND still while testing the message splitting logic, I found an even
  412.     bigger problem with replies.  If the reply file ever reached a total
  413.     size greater than 32K, replies would be ignored.  This had to do with
  414.     using an integer to hold the file size, and having it overflow.  It now
  415.     uses a long value and will function correctly.  I'm suprised no one
  416.     caught this - or maybe they did and didn't report it.
  417.  
  418. o   Conferences for which MR/2 was left to build NDX files for could not
  419.     be searched due to a problem with the way the searching functions
  420.     used the internal NDX files.  This became apparent when I tried to
  421.     search through the new custom conferences.  This has all been corrected.
  422.  
  423. o   Removed the annoying beeps when selecting from a list and you hit the
  424.     uparrow or downarrow too many times.
  425.  
  426. o   Converted all thread code to use _beginthread/_endthread.  Previously,
  427.     I was using DosCreateThread and mixing in some C runtime library
  428.     calls.  While this seemed to work OK, I figured I'd play it safe and
  429.     convert, especially considering the strange trouble some folks are
  430.     having (although I'd like to blame the E editor :).
  431.  
  432. o   Modified tons of code to support 4 digit numbers for index file.  Most
  433.     BBS's carry under 1000 conferences, but some (Channel 1 in particular)
  434.     boast over 1000 and have NDX files like "1654.NDX".  All old code was
  435.     geared to fixed 3-digit numbers.
  436.  
  437.     A benefit (?) of this is that custom "made" conferences now are numbered
  438.     A0000-Z9999, which gives us more breathing room (as if 2600 custom
  439.     conferences weren't enough :)  Now you (theoretically) have up to 26000.
  440.  
  441.     EditHeader now functions just a little differently when specifying a
  442.     conference number.
  443.  
  444. o   On Custom-made conferences, by default the search string is found in
  445.     all conference messages and aligned as if a search was performed.  If
  446.     you wish to suppress this action, set the INI file parameter
  447.     "PositionOnMatchLine" to NO.
  448.  
  449. o   When "Replies exist, keep?" is denied, the .rep file is now actually
  450.     renamed to a .old file.  I've had happy fingers too often and lost
  451.     reply(s).  This is not optional and is automatic - I'll add an INI
  452.     parameter to control it later.
  453.  
  454. o   Split out all pre-1.0 data from this file into oldread.me.  I'll
  455.     reorganize the whole thing later - probably with version 2.0.
  456.  
  457. o   Mouse cursor would not hide properly when placed past line 25 (in
  458.     non-standard video modes).  Cursor would cause streaking and generally
  459.     misbehave.  This has been fixed.
  460.  
  461.  
  462. Changes included in v1.3
  463. ------------------------
  464.  
  465. o   Scroll bars are now integrated into DLSelect (the selection list
  466.     routines).  You can use the mouse to scroll through lists.  I've also
  467.     made clicking on the divider line directly above the first entry to mean
  468.     "page up".  Clicking on the bottom line of any selection list box
  469.     means "page down".
  470.  
  471.     The scrolling routines need some work - mostly cosmetic.  One annoying
  472.     problem is the lack of a mouse repeat when holding the LMB down.  I'm
  473.     not sure why I don't get this - I'll have to fiddle with ZTC's low
  474.     level event handling functions again :(.  (In other words, holding the
  475.     mouse down on the up or down arrows only registers once per click -
  476.     if you hold it for half and hour but only "click" once, the display
  477.     moves only one line.)
  478.  
  479. o   I've used ZTC's event "timer" to get a mouse repeat.  Works pretty well.
  480.     Now to test it against time :)
  481.  
  482. o   Selection lists now allow for "jumping" to a letter prefix.  For example,
  483.     while viewing the Master Conference list, pressing "O" will jump to
  484.     the NEXT conference that starts with an "O".  Immediately pressing "S"
  485.     will jump to the next conference that starts with "OS".  Pressing
  486.     any non-printable key (e.g., up arrow) will reset the prefix string to
  487.     nothing.  Prefix search starts at the current cursor position and works
  488.     forward only.
  489.  
  490. o   The thread sort, which I thought to be "static", turned out to be pretty
  491.     votatile.  This was pretty obvious, I just didn't connect with what was
  492.     happenning.  I've fixed it so that identical subjects are sub-sorted by
  493.     message number.  This ought to keep everything in "order" within each
  494.     thread.
  495.  
  496. o   Line wrapping for replies has been fixed to "trim" leading spaces from
  497.     next line.  Previously, if a line wrapped so as to end with more than
  498.     one space before the next line's word, these extra spaces would be
  499.     left in front of the line.  This has been corrected.
  500.  
  501. o   Clock: And another ZTC bug wiped out.  Zortech's strftime function
  502.     messed up the %I parameter for hours in 01->12 format.  The display
  503.     would progress from 11:59 to 01:00 at midnight.  Wrong!  I've
  504.     corrected this and all clock displays seem to now work correctly.
  505.  
  506. o   If using PCBoard style taglines, I now use three dashes instead of
  507.     underlines for the tearline.  If Fido mode, underlines are used.
  508.     We'll see if this makes everybody happy.
  509.  
  510. o   I've included two icons with the distribution zip: mr2.ico and
  511.     email.ico.  MR2.ico is a Nick Knight original and I'm not very proud
  512.     of it :(.  Maybe I'll play with it some more and purty it up.  EMAIL
  513.     is a modified ICON I scarfed and looks IMO nicer.  Maybe I'll add
  514.     some more possibilities ...
  515.  
  516. o   If all replies from an "existing" reply file were killed the
  517.     original reply file was not deleted.  MR/2 counted zero replies, so
  518.     it figured there was nothing to do, and any old file remained
  519.     untouched.  Now, I rename the old .rep file to a .old file.
  520.  
  521. o   The 'V' key, while viewing a message, has always been there to change
  522.     video modes while reading any message.  I never documented this because
  523.     of various bugs.  Well, someone discovered it and reported the bugs,
  524.     which I now believe to be fixed.  'V' will now toggle through the
  525.     video modes (number of lines) while viewing any message.
  526.  
  527. o   To remain fairly keystroke compatible w/SLMR, I've made Ctrl-PgUp and
  528.     Ctrl-PgDn translate to Tab and Backspace, respectively.  This is during
  529.     message reading only; these keys perform next-thread, previous thread
  530.     functions.
  531.  
  532. o   Fixed a bug with the resetting of the original video mode upon exit.
  533.     Also, added the ability to specify ANY video line mode in the INI file.
  534.     This line count gets added to the video toggle round robin loop.
  535.     If you specify a video mode of 52, MR/2 loads this way (no error
  536.     checking is done - you'll stay in 25 line mode if 52 is invalid).
  537.     If you keep pressing ALT-V on packet select, you'll cycle through 25,
  538.     then 28, through 60 line mode.  After 60 line mode, you'll toggle back
  539.     to 52, then 25 again.  Get it?
  540.  
  541. o   Also, I "fixed" it so that if no VideoMode is specified in the INI file,
  542.     MR/2 defaults to whatever the current Video Mode is.
  543.  
  544. o   Default Word Wrap column for replies is now 80 (was 78).  I'm testing
  545.     this to see if quote-wrapping problems diminish while message-wrapping
  546.     problems remain in check.  If you specify a value in your INI file,
  547.     this change is irrelevant.
  548.  
  549. o   OldRead.Me (pre-1.0 history log) has been renamed to mr2.hst.  I'll
  550.     shuffle off older entries from read.me into this file as they become
  551.     kinda old.
  552.  
  553. o   Fixed some bugs with the "To" field getting confused when EditReply
  554.     Header was set only to AFTER.
  555.  
  556. o   Reformatted the Quick Thread Summary screen so that all subjects line
  557.     up, even if the read/message counst go to 2 digits.  This was also
  558.     necessary so that typing letter keys properly jump to the correct
  559.     spot.
  560.  
  561. o   3 New INI parameters.  BeepOnPersonals defaults to Yes and controls the
  562.     beep that is made when personal messages are displayed.  GoToLastRead
  563.     defaults to No.  If set to Yes, the "do you wish to return to your last
  564.     reading position" is suppressed and MR/2 just goes there automatically.
  565.     BackupOldReps defaults to true and controls the renaming of .rep files
  566.     to .old files instead of deleting them.
  567.  
  568. o   Another new parameter, by request.  You may optionally specify an
  569.     alternate editor command for use when creating NEW messages.  The
  570.     INI token NewMessageEditor may be set just as the Editor parameter is,
  571.     and this command will be used whenever writing a new message.  This
  572.     allows for differing startup macros.  The "new" editor is used for
  573.     ALL non-reply editing (including MR2.INI, News, Files, Bulletins,
  574.     Save files, etc).  If a "new message" editor is not specified, the
  575.     default Editor command is used for everything.
  576.  
  577. o   Modified the message formatter to tack on [M][][] to the end of the
  578.     "===" divider bar.  These are new mouse click areas.  The arrows cause
  579.     scrolling down and up.  Clicking on the M invokes the new "mouse menu".
  580.  
  581.     NOTE:  I was also going to assign the mouse menu to the middle mouse
  582.     button, if available, however, my middle mouse button doesn't seem to
  583.     function even after tweaking the MouSetEventMask parameters. Hmmm...
  584.  
  585. o   The new mouse menu can be displayed and used for keystroke simulation
  586.     while viewing a message.  Click in the new [M] box, and the mouse
  587.     menu is displayed offering 16 options.  Click on any of these options
  588.     to invoke that function or use the right mouse button to cancel.
  589.  
  590.     The older mouse hot areas are still functional.  For instance,
  591.     clicking on the message SUBJECT area simulates pressing "H" and
  592.     clicking on the CONF: area simulates an I.
  593.  
  594. o   I've also implemented double-clicking on selection lists.  This is
  595.     currently a must-do; the old method of single clicking simply
  596.     highlights the entry.  You must double click to select it.  I may let
  597.     you pick which method to use (single or double-clicking) via INI param.
  598.  
  599. o   If a packet is already open and you answer NO to the "use this one"
  600.     prompt, MR/2 now deletes MESSAGES.DAT.  Previously, the work directory
  601.     files remained undeleted until a packet was selected.  This caused
  602.     the "use this one" prompt to come up after any other function.  For
  603.     instance, each time the video mode was toggled, you'd have to answer
  604.     this prompt again.  Not any more!
  605.  
  606. o   I've changed the status line on the bottom of the packet select menu
  607.     and added a "mouse menu" on the right hand side.  Single click on a
  608.     packet name and then click on "[D]" to delete this packet.
  609.  
  610. o   If you used "X" to fast-exit MR/2 and a BBS "local" INI file was in
  611.     use, I still reloaded MR2.INI.  This step is now skipped resulting
  612.     in slightly faster exit speeds.
  613.  
  614. o   New INI parameters:  MouseMode=Single sets the mouse "click" mode to
  615.     Single or Double.  The NEW default is double clicking.  For those of
  616.     you who liked it the old way, set the mode to SINGLE.
  617.  
  618.     Also, MouseClickSpeed can be set to the maximum number of milliseconds
  619.     allowable between mouse clicks to still be considered a double-click.
  620.     The default is still being figured out - it'll be somewhere between
  621.     40 and 500.   OK, it's 500 :)
  622.  
  623.     AND ... MouseScrollSpeed sets the delay for scrolling when you park the
  624.     mouse with the left button down on a scrollbar arrow.  The default is
  625.     set to 1.  If this is too fast for you, change it to a higher value.
  626.  
  627. o   Made the same "out of bounds clicks are just ignored" change to the
  628.     menu routines.  Clicking out-of-bounds on the main menu canceled still.
  629.  
  630. o   Had to fix a timer to simulate mouse clicks for scrolling the message
  631.     viewer when parked on the mouse scroll arrows.
  632.  
  633. o   I've added a new canned-search parameter, "CHECK".  This enables you to
  634.     check for text in any combination of From, To, Subject and Message.
  635.     Message may be further sub-divided into Body and Origin.  I consider
  636.     the "origin" section to be anything after and including the first
  637.     "tear" line.  For Example:
  638.  
  639.     MakeConference = MR/2 - Tagline
  640.     Check = Origin
  641.     String = MR/2
  642.  
  643.     will check only the message section, and only below the first "---" or
  644.     "___" found in the message.  Further:
  645.     
  646.     MakeConference = MR/2 - No Taglines
  647.     Check = Subject,Body
  648.     String = MR/2
  649.  
  650.     will check message up to the first tearline, and will also check subject.
  651.     No sense in this case checking From and To, although I could have added
  652.     this.  You can find all message from Jim Gilliland this way and build
  653.     a conference of them.
  654.  
  655.     NOTE:  The message viewer will align the display on the first hit
  656.     in the message.  It will NOT ignore the body if the search was defined
  657.     as ORIGIN only.
  658.  
  659.     Leaving the CHECK string out will result in ALL areas being checked.
  660.  
  661.     This code was partially implemented before, I just had to add the INI
  662.     parameters and the origin splitting.
  663.  
  664.     This will be the base code for my twit filters - a little tweaking
  665.     and you'll be able to twit any message combination for which you can
  666.     build a custom conference.
  667.  
  668. o   Optimized the message section searching a little.  It *was*
  669.     converting the message to upper case for each search criteria
  670.     record, even though the first check had already converted it.  Now
  671.     it only converts the message on the first check, and only if the
  672.     message body is to be checked.
  673.  
  674. o   You can now forward the message you are reading to another user
  675.     and/or conference.  Simply press "W" (SLMR-compatible key) and the
  676.     Message Header Edit screen will appear.  Fill out the To field and
  677.     change anything else as needed.  Accepting this form will create
  678.     a forwarded copy of this message in the reply conference.
  679.  
  680.     NOTE:  MR/2's tagline does not appear in these messages UNLESS you
  681.     modify it later.  Making revisions toa forwarded message will cause
  682.     MR/2 to place/replace its tagline on the message.
  683.  
  684. o   When modifying a reply, MR/2 now extracts and reuses the original
  685.     tagline.  Previously, a new tagline would be automatically picked to
  686.     replace the original.
  687.  
  688. o   Modified the packet open logic to use an insert sort when creating the
  689.     list of Master Conferences.  Sorting after-the-fact was very slow.
  690.     PC-Ohio packets (w/600 conferences) load much faster now.
  691.  
  692. o   I tried setting the background conference builder to IDLE priority and
  693.     it would not work properly with PMInfo loaded.  Changed it back to
  694.     regular priority with a -30 delta.
  695.  
  696. o   I've implemented some basic "ANSI animation" code in the message viewer.
  697.     Press "A" while viewing any message with ANSI escape sequences and
  698.     see if it works.  Scrolling of the screen is hokey - I'll work on it
  699.     some more.  Some screens look OK, though :)
  700.  
  701. o   Ooops - big bug.  If Control.Dat was > 32k MR/2 would fail to read the
  702.     master conference list, and no mail could be read.  This limit is
  703.     now 64k, and I can easily just remove any limit with the next release.
  704.     The sample packet I was presented with had 2500 conferences available
  705.     and Control.dat was around 40K.
  706.  
  707. o   A "Working" message now displays while a packet is being opened by MR/2.
  708.     There was a substantial pause on packets with 600 conferences, and a
  709.     couple of seconds pause on the 2500 conference packet above.  It appears
  710.     that there's trouble (as all is quiet), and then the main menu pops up!
  711.  
  712. o   Trimmed the end of replies a little.  It was possible to get an extra
  713.     blank block (128 spaces) at the end of the message.
  714.  
  715.  
  716. Changes included in v1.31
  717. -------------------------
  718.  
  719. o   Modified the packet select clock display to show centered on the screen.
  720.     It was centered for short month names, but September (it *is* the longest
  721.     name) made it look lopsided.
  722.  
  723. o   ANSI animation is much improved ... I've still got some work to do.
  724.     Some of these ANSI messages are incredible!  Toggle MR/2 into 34 line
  725.     or greater mode to read stubborn messages.
  726.  
  727. o   OK, I've enabled "ANSI detect" for News, Bulletins and New Files.
  728.     Actually, if I would have enabled it, this would have worked well in
  729.     version 1.3.  Unfortunately, I only tested it with message reading, and
  730.     it didn't make any sense for these - if a message had ANSI codes, it
  731.     was a good bet it wanted full control of the screen, which I didn't
  732.     want to give unless requested by the user (the "A" key).  Now I find,
  733.     after sampling several BBS's (Wildcat's were suggested, then I find that
  734.     PCBoards with Graphics menus enabled sends ANSI codes also :), that
  735.     the non-message ANSI stuff tends to be much more behaved.  Anyway, test
  736.     it out, let me know of any problems.
  737.  
  738. o   For ANSI animations, had to enable the "blinking" attribute.  I then
  739.     set it back off for regular operations.
  740.  
  741.  
  742. Changes included in v1.32
  743. -------------------------
  744.  
  745. o   Blinking attribute still didn't work in the message/file viewer.  News
  746.     files with blinking text showed reverse video in some starnge color.
  747.  
  748. o   Custom conference search was still started on message entry w/o any
  749.     existing packets (ALT-E from the packet select screen).  There are
  750.     no message to search in this mode, but the thread was started and the
  751.     beep would occur almost instantly.  This has been fixed.
  752.  
  753. o   Modified the "ShowEmpties" default flag from YES to NO.  Set it to
  754.     YES in your INI file if you want empty custom conferences to show.
  755.  
  756. o   KeepMessageMarks would sometimes get corrupted and set to NO.  This
  757.     was caused by an error in the INI.CPP code that "dropped" into the
  758.     "K" parameter processing after doing the "H" processing (missing
  759.     break statement).  For some reason, the corruption was more sensitive
  760.     to opening a packet using WPS "associations" that direct MR/2 selection.
  761.  
  762. o   But then, there was still a problem with using WPS associations to
  763.     open a packet.  Problem also occured whenever simply passing a file
  764.     name on the command line.  MR/2 tried to save Bookmark EA's, but used
  765.     an invalid file name.  This is now working correctly.
  766.  
  767. o   Added NEWMR2.ICO to the distribution zip.  This is an MR/2 icon
  768.     submitted by Dennis Powell.  He claims it's better looking than mine,
  769.     and I guess I'll have to agree :).
  770.  
  771. o   The ANSI file viewers would clear the screen to the user-defined message
  772.     color before showing the file/screen.  This resulted in the "wrong"
  773.     background color.  I now clear the screen to black before showing text
  774.     using ANSI escape sequences.
  775.  
  776. o   Also, MR/2 left all ANSI display routines with the default screen colors
  777.     set to whatever the ANSI display last set.  I now set normal white on
  778.     black upon exiting these functions.
  779.  
  780. o   I made some changes to try to speed up the scrolling of selection lists.
  781.     The mods where to the video display routines, but seemed to do nothing.
  782.     I don't really see any slowness, unless I stand on the downarrow key.
  783.     These may be more a case of slow keyboard repeat.  I'll see if I can
  784.     modify this somehow.
  785.  
  786. o   When you change the FROM user when editing the reply header, the new
  787.     "from" name is remembered and becomes the default for as long as that
  788.     packet is open.  Once the packet is closed, the user name defaults
  789.     back to the one found in the control.dat file of each QWK file.
  790.  
  791. o   I removed survey.txt from the distribution zip.  I think I know what
  792.     the majority of folks want, and the zip file needs to be pruned a little.
  793.     Also removed Misc1.Tag, leaving Misc2.Tag and OS2.Tag.  These may get
  794.     trimmed or disappear altogether at some time ...
  795.  
  796. o   Also removed MR2.DOC from Welcome.qwk, the default, "I'm lost" new-user
  797.     packet.  I've replaced it with a small note about seeing mr2.doc as
  798.     a separate file.  This file was actually packed twice, now only once.
  799.  
  800. That's it for now ... I'll work on adding some actual enhancements as soon
  801. as I get MR/PM out and somewhat stable ... that'll probably take a week,
  802. or two, or three.  Look for MRPM_095.*
  803.  
  804.  
  805. Changes included in v1.33
  806. -------------------------
  807.  
  808. o   Forwarding messages had a problem with taglines.  The forwarded preface
  809.     was placed in the edit-header tagline field and could get corrupted.
  810.     Forwarded messages get no tagline; this field now displays blank and
  811.     any entry here is ignored.
  812.  
  813. o   On some messages, lines would be highlighted as quotes that were
  814.     obviously not.  This was from ghost characters from previous lines and
  815.     has been fixed.
  816.  
  817. o   Fixed a problem with the MR2.ID recognition routine.  Basically, if
  818.     any of my checksums calculated to a CR or a EOF (0x1A), the file would
  819.     not be recognized as valid.  This has been fixed.
  820.  
  821. o   If a zero length reply file was for some reason saved, then reedited,
  822.     MR/2 would throw a second tagline on the file.  Fixed.  I wonder if I
  823.     can reasonably detect the cases where the reply has been saved w/o
  824.     any user-added modifications and warn??
  825.  
  826. o   In the INI file, MouseMode now supports the keyword "Off" in addition
  827.     to SingleClick and DoubleClick.  All "Off" does is tells MR/2 to hide
  828.     the mouse cursor (the mouse is still active, just hidden).  ... by
  829.     registered user request.
  830.  
  831. o   New INI parameter SuppressVersionInTagline defaults to NO.  If
  832.     you're a registered user, you may set this to YES and the version
  833.     number(s) will be suppressed when MR/2 generates a tagline.  This
  834.     allows more room for your tagline message, particularly when used in
  835.     conjunction with "SerialInTag" set to NO.
  836.  
  837.  
  838. Changes included in v1.34
  839. -------------------------
  840.  
  841. o   The custom conference search "check" keyword ORIGIN has been modified
  842.     to recognize a lines starting as " * " as the "origin".  Also sees the
  843.     line as the start of the origin area if the "*" is instead an "X" or a
  844.     ASCII block char (0xFE).
  845.  
  846. o   The 1.33 tagline modifications to suppress the VERSION string worked OK,
  847.     but the new code messed up the non-suppressed version string for
  848.     registered users.  This has been fixed.
  849.  
  850. o   Added PMColors to the INI file processor.  This adds nothing to MR/2
  851.     classic - this is for the PM version :(.
  852.  
  853. o   Removed the file Read.Me from the Welcome.Qwk default packet.  This
  854.     was just a duplication of the file read.me that's distributed
  855.     separately.  Duplicating the file just made distribution zip's larger
  856.     and made extra work for me when packing up new versions.  Now, all
  857.     that's in the .qwk packet is instructions to read the read.me file.
  858.  
  859.  
  860. Changes included in v1.35
  861. -------------------------
  862.  
  863. o   Another control.dat problem was found pertaining to a specific BBS
  864.     (or BBS software/mail door?).  A registered user sent me a packet where
  865.     control.dat had the user name padded to about 40 characters max.  This
  866.     overwrote some internal variables (specifically, the BBSID) and the
  867.     system tried to create replies in a file named "       .msg".  This
  868.     is not legal and MR/2 would puke.  Since this has now caused trouble
  869.     twice, I've rewritten the routine to handle virtually any length of
  870.     user name.
  871.  
  872.  
  873. Changes included in v1.36
  874. -------------------------
  875.  
  876. o   Beeping on personal messages did not always work.  The comparing of
  877.     names was case sensitive, and worked only if the message name and the
  878.     user name in control.dat matched EXACTLY.  This has been corrected.
  879.  
  880. o    Modified the tagline "random" seeding in an attempt to make things more
  881.     "random".  Someone reported that the same taglines were coming up even
  882.     when set to RANDOM.  I could not recreate this, but an examination of my
  883.     code revealed that there were only 60 possible seeding combinations.
  884.     (I used time(NULL)%60).  I've changed this to offer a broader range of
  885.     starting seeds.
  886.  
  887. o   Tagline style now defaults to PC-Board.  This is 3 dashed as a tearline
  888.     and hi-end ASCII block characters as MR/2's signiture delimiters.  I
  889.     also added the keyword "TagStyle" to MR2INI.ORG.  It's been there for
  890.     a while, but I missed it when documenting and setting up this starter
  891.     INI file.
  892.  
  893. o   Fixed a thread-name formatting problem in the quick thread summary
  894.     logic (originally fixed in MR/2 PM).  The very last thread name would
  895.     sometimes be blank or some initial characters missing due to a previous
  896.     "RE:" being detected.  This has been fixed.
  897.  
  898. o   Modified the conference "sort" (when Alpha-sorted master conference
  899.     names are requested <the default>).  Previously, conference names
  900.     where inserted into the final linked list used by the QWK class in
  901.     insertion-sorted order.  In other words, I'd plow through the linked
  902.     list and find the right spot for a conference name and plop it
  903.     there. This was extremely slow for large lists.  Now, names are
  904.     recorded (sorted) in a BTREE structure, then transfered into
  905.     linked-list format. The increase in speed (using PC-Ohio's 1000+ and
  906.     Channel 1's 2200+ conference lists as tests) is dramatic.  I'm
  907.     happy, I hope you are too.
  908.  
  909.  
  910. Changes included in v1.37
  911. -------------------------
  912.  
  913. o   The selection box logic had some problems when working in modes
  914.     with a large number of display lines (e.g., 60 line mode).  Pressing
  915.     enter on the 32nd listed entry or beyond was treated by MR/2 as being
  916.     a letter-character command and the "ENTER" would be ignored.  This has
  917.     been fixed.
  918.  
  919. o   Added a new member of zEq, the event class.   The event function
  920.     rehidemouse() can be used after a video mode change.  If the mouse
  921.     flag says it should be hidden, MouRemovePtr() is called with the
  922.     current screen size.  If the mouse flag says the mouse is *not*
  923.     hidden, nothing is done.
  924.  
  925. o   The changing of video modes (number of display lines) caused the mouse
  926.     cursor to sometimes become visible when it shouldn't.  This has been
  927.     corrected.  Also, if MouseMode was set to OFF and you replied to any
  928.     message, the mouse would appear upon return from the editor (the mouse
  929.     flag was reset to "show" upon return).  This has been fixed.
  930.  
  931. o   In an early and primitive attempt to support long file names, I've
  932.     switched to the linker distributed with the MS v1.2 toolkit.  It seems
  933.     blink (Zortech's linker) doesn't like the LONGNAMES keyword in the
  934.     .def file.  Hopefully, nothing strange will happen :)
  935.  
  936.  
  937. Changes included in v1.38
  938. -------------------------
  939.  
  940. o   If EditHeader was set to AFTER only and an existing reply was modified,
  941.     "your" name would appear in the TO field as well as the FROM field.
  942.     This was the result of a 9/2/92 patch for AFTER mode, but the patch
  943.     should not effect editing of replies.  Fixed.
  944.  
  945. o   While working in Header Editing "AFTER" mode I also discovered that
  946.     the subject of a "Write new" message was often filled in with the
  947.     last read  message's subject.  Subjects are now blanked out when
  948.     writing a "new"  message.
  949.  
  950. o   Write new: conference numbers > 1000 would only show last 3 digits.
  951.     Display now is widened by one and 4 digit conference numbers displayed.
  952.  
  953. o   Conference select when editing the message header has been expanded
  954.     in width by one character to match Write new conference select.
  955.  
  956. o   My testing of BBS's with 4 digit conference support failed to find one
  957.     possibility.  It was reported that, at least once, some QWK door produced
  958.     4-digit index files for conference numbers < 1000.  For instance,
  959.     conference 1 would be indexed by 0001.ndx.  "Normal" doors seem to use
  960.     3 digits *until* the conference number grows to 1000 or more.  MR/2 now
  961.     supports and auto-detects both types.
  962.  
  963. o   Enhanced the tagline stealer to recognize taglines made by the BlueWave
  964.     mail reader.  Added recognition for Speed Reader's method, also.
  965.  
  966. o   A packet was provided to me that had strange, extremelly long conference
  967.     names; actually conference names followed by comment-like descriptions.
  968.     These long names were causing strange screen-wrapping problems.  I've
  969.     now got a 60-char maximum box width set for conference names.  Names
  970.     longer that this will be truncated ... they won't look pretty, but they'll
  971.     look better than what I just saw :)
  972.  
  973. o   My new/faster btree sorting method would toss out duplicate
  974.     conference names.  This wouldn't normally be a problem, but OS/2
  975.     Shareware's QWK door truncates all Usenet news feed names to
  976.     "Comp.Os.Os2.". Versions using the old sort method (or new ones with
  977.     Alpha sorting OFF) would show multiple conferences all with the same
  978.     name.  New version show the conference only once, if at all.
  979.     Collisions (duplicate names) are now handles as unique records and
  980.     added - so all conferences show up. They're still named the same.
  981.     I've netmailed OS/2 Shareware with a description of the problem.
  982.  
  983. o   Conference name boxes on "Write new" and header-editing selection now
  984.     adjust their width to accomodate long conference names.  (Kind of a
  985.     continuation of the fix above).
  986.  
  987. o   I've been making alot of minor changes and improvements and haven't
  988.     been too careful about remembering them.  Let's see, I found a minor
  989.     bug with adding replies.  Every time you replied, a 30 byte chunk of
  990.     memory was allocated for the conference listing, and any older conference
  991.     record was never freed.  You'd have to make quite a few replies before
  992.     this would create a problem - but it's fixed anyway.  The "Read" indicator
  993.     on the message index and quick thread summary has been changed from
  994.     "*" to "√".  I think it looks nicer.
  995.  
  996. o   Tagline stealer can now steal wider taglines - 76 chars in length max.
  997.  
  998. o   Added some code to detect "&" symbol in BBS name.  This was causing
  999.     the OS/2 CMD.EXE to do strange things when passed to PKZip and PKUnzip.
  1000.     MR/2 now wraps all BBSID-based names that contain a "&" in quotes.
  1001.  
  1002.  
  1003. Changes included in v1.39x - BETA
  1004. ---------------------------------
  1005.  
  1006. Folks:  I'm calling the next few versions "beta-level" releases.  Most of
  1007. my releases are anyway <g>, but the next couple of cuts are going to have
  1008. many new functions and lots of rewritten sections.  Most of these are
  1009. scheduled for version 2.0, but I'm thinking that I'll release them in
  1010. steps instead of holding back (i.e., 1.4, 1.5 ... 2.0).  Stick with v1.38
  1011. if your craving for adventure is low :)
  1012.  
  1013. o   INTERNAL: Renamed RemoveKilledReplies() to RemoveKilledMessages().  This
  1014.     function will be used to later pack message "folders" and the new name
  1015.     better reflects its more generic purpose.
  1016.  
  1017. o   INTERNAL: Added folderfh to QWK class and modified all message access
  1018.     routines to check the freadingfolder flag.
  1019.  
  1020. o   INTERNAL: new routine fix_path() in INI.cpp.  ReplyPath and PacketPath
  1021.     now pass through this call, as well as FolderPath.
  1022.  
  1023. o   INTERNAL: Massively modified Inbasket/Folder logic - I didn't like
  1024.     the way it was working.
  1025.  
  1026. o   Packing of replies has been reworked.  Previously, all replies were
  1027.     copied to a temporary file, with killed replies being filtered out.
  1028.     Then, the reply file was deleted and the temporary file renamed to
  1029.     the reply file name.  Now the reply file is packed "in place".  This
  1030.     is faster, does not require a temporary file AND has been made generic
  1031.     to allow for future use with folders.
  1032.  
  1033. o   Mouse is now semi-function on "form" type entry screens.  Functional
  1034.     as far as clicking on any informational "keystroke" bar will simulate
  1035.     that keypress.  For example, when saving a message, clicking on "pick
  1036.     from list" will simulate an F2 keypress.  This was probably more coding
  1037.     than it was worth, but it works :)  Tagline stealing, save file select
  1038.     and reply header editing were effected.
  1039.  
  1040. o   Added an " ENTER = ESCAPE " key bar to save file name entry to aid in
  1041.     mouse use.
  1042.  
  1043. o   New TagStyle value has been added.  If the INI file contains the line
  1044.     "TagStyle=TwoLine", then a tagline in the form of:
  1045.  
  1046.     .. your funny tagline here
  1047.     -- MR/2 v1.38 NR
  1048.  
  1049.     will be produced.  Originally, I called this the "BlueWave" style, but
  1050.     something didn't sit well with me, so I changed it to "TwoLine" :).
  1051.  
  1052. o   You can now "Defer" any message to a QWK save area independant of the
  1053.     current packet for later processing.  This will create an "InBasket"
  1054.     conference which will contain all messages for the current BBS that
  1055.     have been deferred and never manually deleted.  This allows for you
  1056.     to reply to the message later, when time permits, without having to
  1057.     keep the entire packet around, trying to remember why, and which
  1058.     message it was.   Press "D" or "/" while viewing the message you
  1059.     want to defer.
  1060.  
  1061.       *** THIS IS BETA-LEVEL CODE - USE WITH CARE  ***
  1062.  
  1063.     ALSO: Inbasket code is subject to change ... read the next version's
  1064.     read.me file to make sure inbasket messages saved with this version
  1065.     will work with the new.  You may have to "clean up" old inbasket
  1066.     message with the old (this) version MR/2.
  1067.  
  1068. o   Added FolderPath as an INI param.  This is where folder directories
  1069.     will be created.  The default is "..\", so that subdirectories off of
  1070.     the MR/2 "home" directory will be created.
  1071.  
  1072. o   ALT-E can now be used to enter NEW messages for any known BBS even
  1073.     when the "no packets found" dialog box is displayed.  I thought I'd
  1074.     done this before, but it wasn't working.  Now it does :)
  1075.  
  1076. o   Forced REPLYLOG variable to NO - this wasn't finished and I'd
  1077.     inadvertently documented it in the default INI file.  It did very
  1078.     strange things.  I'll try to finish this off soon so it works the
  1079.     way it's supposed to.  Sorry?
  1080.  
  1081. o   The internal editor is now functional.  Simply set the Editor
  1082.     specification in your INI file to "INTERNAL".  The editor is fairly
  1083.     simple; press HELP (F1) for a summary of available keys.
  1084.  
  1085.     NOTE:  This is also beta-level code.  Expect bugs, but the basic
  1086.     editor works OK.  Single window, no import/export text functions, yet.
  1087.     ALSO!!! Set your word-wrap margins in MR2.INI to *76 or greater* for
  1088.     the best results.  Smaller numbers work fine, except previous "quoted"
  1089.     sections get mangled (at least you can now see this *while editing*
  1090.     the message, though :).
  1091.  
  1092.     The editor is wide open for ideas.  I *still* don't want to spend alot
  1093.     of time writing editor code, but if an idea makes sense, I'll think
  1094.     about it.  TELL ME ABOUT YOUR PROBLEMS AND OFFER SUGGESTIONS, PLEASE.
  1095.  
  1096.  
  1097. Changes included in v1.40x
  1098. --------------------------
  1099.  
  1100. Not much feedback on the internal editor yet.  I used it for a while but
  1101. switched back to QEdit.  I need file import/export capabilities myself; I'll
  1102. be adding that to the internal editor soon.
  1103.  
  1104. o   Save file wildcarding logic fix.  First, if you entered a spec like
  1105.     "c:\tmp\*" and pressed ENTER, MR/2 would save the message to that file
  1106.     name, which is illegal.  No error would be reported.  Now, when ENTER
  1107.     is pressed and a wildcard is in the file name specified, MR/2 converts
  1108.     the ENTER into an F2 keypress and shows a file pick list.
  1109.  
  1110. o   If "C:\tmp\*" was provided as the save file pick list, and a file was
  1111.     selected from the list, the file name returned would be grunged.  The
  1112.     file name field would be filled with some mutation of the subject line
  1113.     from the message display.  This was due to the missing ".", which I
  1114.     assumed would always be there.  This has been corrected.
  1115.  
  1116. o   New INI parameter:  "TemplateFile".  This is another one of those
  1117.     features that is merely a starting place and has lots of future
  1118.     expansion possibilities.  Place a file name here that defines a
  1119.     template for all message replies.  The reply will created using this
  1120.     file as a guide BEFORE you edit it.  This allows for any necessary
  1121.     cleanup.  The "template" file I used for testing looked like this
  1122.     (note that the variables used will be documented below):
  1123.  
  1124.     -------------------------------------------------------------------
  1125.     Subject: @Subject@
  1126.     In a message dated @DATE@, @FROM@ said to @TO@:
  1127.  
  1128.  
  1129.     $BODY
  1130.  
  1131.  
  1132.     Nick Knight
  1133.  
  1134.     From @from@ reading @CONFNAME@ (@CONFNUM@) on @BBSID@, to @TO@
  1135.     Subject: @Subject@
  1136.  
  1137.     FidoNet:    1:157/2
  1138.     Internet:   nick.knight@pcohio.com
  1139.     Compuserve: 76066,1240
  1140.  
  1141.     To First:   @tofirst@
  1142.     To Last:    @tolast@
  1143.     YYMMDD:     @yymmdd@
  1144.     Date:       @date@
  1145.     From First: @fromfirst@
  1146.     From Last:  @FromLast@
  1147.     Msg Date:   @msgdate@
  1148.     Msg Time:   @msgtime@
  1149.     Day:        @Day@
  1150.     Julian:     @Julian@
  1151.     Time:       @Time@
  1152.     Time 24:    @Time24@
  1153.     AM/PM:      @AmPm@
  1154.  
  1155.     Upper:      @Upper@@Subject@ @upper@@day@
  1156.     Lower:      @lOWER@@Subject@ @lower@@day@
  1157.     Mixed:      @mix@@From@ -> @mix@@to@
  1158.     -------------------------------------------------------------------
  1159.  
  1160.     The quoted version of the original message is inserted at the $BODY
  1161.     marker, which is required.  NOTE that this is not an appropriate
  1162.     template file for use within internationally echoed conferences.
  1163.     It's offered here merely as an example.
  1164.  
  1165.     The section before the $BODY line allows for an "attribution"
  1166.     line or section.  The area below the $BODY marker works as a
  1167.     signoff or signature section.
  1168.  
  1169.     AGAIN, this feature is under development and may be changed in the
  1170.     next couple of versions.  My idea is to add more blocks to this file.
  1171.     For example, a definition for saved message headers, forwarded
  1172.     header definition, etc.,.  I've got plenty of ideas.
  1173.  
  1174.     The reply file generated by my test template file looked like:
  1175.     -----------------------------------------------------------------
  1176.  
  1177.     Subject: NEW ZOO
  1178.     In a message dated 03/06/93, DAN HANSON said to ALL:
  1179.  
  1180.     DH>I saw this in Time Magazine.  The New York Bronx Zoo has been
  1181.     DH>renamed to the International Wildlife Conservation Park.  In
  1182.  
  1183.     <My reply would be inserted here.>
  1184.  
  1185.     Nick Knight
  1186.  
  1187.     From DAN HANSON reading Main Board (0) on PC-OHIO, to ALL
  1188.     Subject: NEW ZOO
  1189.  
  1190.     FidoNet:    1:157/2
  1191.     Internet:   nick.knight@pcohio.com
  1192.     Compuserve: 76066,1240
  1193.  
  1194.     To First:   ALL
  1195.     To Last:    ALL
  1196.     YYMMDD:     930306
  1197.     Date:       03/06/93
  1198.     From First: DAN
  1199.     From Last:  HANSON
  1200.     Msg Date:   03-06-93
  1201.     Msg Time:   14:21
  1202.     Day:        Saturday
  1203.     Julian:     065
  1204.     Time:       03:08
  1205.     Time 24:    15:08
  1206.     AM/PM:      PM
  1207.  
  1208.     Upper:      NEW ZOO SATURDAY
  1209.     Lower:      new zoo saturday
  1210.     Mixed:      Dan Hanson -> All
  1211.     -----------------------------------------------------------------
  1212.  
  1213. o   Variables are available for use in the template file.  They are
  1214.     currently only used by the reply file generator.  I'll add the
  1215.     capability to other areas as I think of them.
  1216.  
  1217.     The following variables have been provided:
  1218.  
  1219.         BBSID                           TIME
  1220.         CONFNAME                        TIME24
  1221.         CONFNUM                         TO
  1222.         DATE                            TOFIRST
  1223.         DAY                             TOLAST
  1224.         FROM                            YYMMDD
  1225.         FROMFIRST                       UPPER
  1226.         FROMLAST                        LOWER
  1227.         MSGDATE                         MIX
  1228.         MSGTIME                         AMPM
  1229.         SUBJECT                         JULIAN
  1230.  
  1231.  
  1232.     The literals UPPER, LOWER and MIX are not actual variables, but
  1233.     modifiers.  They will convert the case of the NEXT variable
  1234.     replacement to either all upper, all lower or mixed case, respectively.
  1235.     Mixed case basically lower cases all letters except the first letter
  1236.     of each word.  See the example above for more detail.
  1237.  
  1238. o   GREATER CHICAGO Online BBS is now offering a service called the
  1239.     "OS/2 Shareware Author Support Program".  They are willing to handle
  1240.     Visa/Mastercard charges for shareware authors.  Starting immediately,
  1241.     MR/2 may be registered by "charging" it!  You can register online by
  1242.     calling Greater Chicago Online BBS at (708) 895-4042.  Alternatively,
  1243.     you can provide your charge card information to me directly on the
  1244.     MR/2 registration form provided (register.doc).  There is a $2.00
  1245.     handling fee associated with all charged registrations, making the
  1246.     total charged registration cost $22.00 US for domestic orders.
  1247.  
  1248.     Shareware authors may get more information on the OS/2 Shareware
  1249.     Author Support Program by calling the GREATER CHICAGO Online BBS at
  1250.     the number above (leave a note to the sysop) or by Compuserve mail
  1251.     at 70404,3277.  Fidonet netmail can be sent to Bill Cook at 1:115/895.
  1252.  
  1253.  
  1254. Changes included in v1.41x
  1255. --------------------------
  1256.  
  1257. o   Template file processor would lockup if the named template file did
  1258.     not exist.  Same ZTC bug where fopen() doesn't return NULL on error.
  1259.     Fixed with a call to my file_size() function.
  1260.  
  1261. o   Taglines now are filtered for variables (e.g., @FROM@).
  1262.  
  1263. o   Took template file checking one step further - if file name is
  1264.     empty, processing doesn't even start.
  1265.  
  1266. o   Distribution packets now contain a FILE_ID.DIZ file to help automate
  1267.     BBS description entry.
  1268.  
  1269. o   The initial MR2.INI file now specifies that the INTERNAL editor now
  1270.     be used as the default.  The initial INI editing is still performed
  1271.     inside the E editor.
  1272.  
  1273.