home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-05-09 | 54.7 KB | 1,130 lines |
- MR/2 - A QWK Compatible Mail Reader for OS/2. 05/02/93
-
- Copyright (c) 1992, Knight Writer Software Company.
- All rights reserved.
-
- ===================================================================
- N O T I C E
- ===================================================================
- This IS a shareware package, and does require a registration fee if
- you choose to continue using it after 30 days. The registration
- fee is currently $20 US. Eventually, the product MAY have a
- "begging" screen with a key-file that will register the software
- and suppress it. The more interest I get, the more likely I am to
- continue with improvements.
- ------------------------------------------------------------------
-
- CONTACTING THE AUTHOR
- =====================
-
- You can contact me in a number of ways. Unfortunately, I can't
- provide a phone number at this time.
-
- US Mail: Nick Knight
- 1823 David Ave.
- Parma, Ohio 44134
-
- Fido netmail: 1:157/2 to "Nick Knight"
-
- Internet: User "Nick Knight", (nick.knight@pcohio.com)
-
- Fido Echomail: Find the Fidonet OS2PRODSUPPORT conference. I'm there.
-
- Echomail messages to me in more general conferences are
- discouraged, as keeping them "on topic" and
- interesting to the masses would be difficult. I do
- read OS2, OS2PROG, C_PLUSPLUS and DR DEBUG daily,
- though. OFFLINE echo also (deals with mail readers),
- this might be THE place to ask public questions, eh?
-
- I recently have acquired access to a host of other
- networks with OS/2 conferences. These include RIME,
- SmartNet, Uninet, Intelec, Nanonet, Racenet and some
- others I can't remember.
-
-
- Direct BBS: Leave a message on the Nerd's Nook BBS (1:157/2) at (216)
- 356-1772, 356-1872 or 356-1431. I check in here
- multiple times a day. I will also keep the most recent
- copy of MR/2 posted here. Other boards (non-local)
- will get updates at my convenience.
-
- Nerd's does support file requests (157/2 or 157/3)
-
- Compuserve: I check in here only when I have to. Try mail to my
- user ID - 76066,1240, although this isn't the best
- approach.
-
-
- Changes included in v1.49x
- --------------------------
-
- o Read.me is now shifted around so that most recent changes (from now
- on, at least) list at the top.
-
- o Welcome and Goodbye screen now list on the Bulletins select menu.
- You can view these, unobstructed and at length, any time you choose.
-
- o Minor change to the parsing of the @Fidonet@ variable. Removed any
- @fidonet suffix that exists in the origin line.
-
- o Ooops. When using the internal editor, and editing mr2.ini, the
- read clock string would pop onto every edit screen. The clock display
- is now suspended/resumed correctly.
-
- o Clock would still pop up if you would request HELP while inside the
- editor, then CANCEL to clear the help screen. Fixed.
-
-
- KNOWN BUGS AND STUFF
- ====================
-
- Mouse support is missing from some of the "inform user" screen.
-
- The TEMPORARY directory MUST remain a subdirectory of the MR2 home dir.
-
- You can't use "\" or "&" as part of any search text (since MR/2 uses them
- as delimiters).
-
- You can't cancel a search until the first "hit" is displayed. This is
- particularly irritating when soundex searching, since soundexing is
- noticably slower.
-
- If you set "SkipReadMessages" to true, you cannot gain access to a
- conferences where all messages have previously been read.
-
- If you don't like my internal editor. You'll have to find your
- own or use E or EPM. QEdit for OS/2 works nice as an inexpensive,
- character-mode editor/ Also, there's an OS/2 editor TE-something
- that I heard was OK.
-
- You can't send ADD/DROP conference messages yet. This seems easy
- enough, so I should be able to add it in soon.
-
- Other frills that have not yet been addressed: Bulk marking, carbon
- copies, twit filter, function key assigning. There are probably others.
- Feel free to bombard me with requests.
-
- No long file name support. Since QWK is a DOS thing, the only place I can
- see using it is for packet names (if the user renames it). Any ideas?
-
-
- Changes included in v1.01
- -------------------------
-
- o By request, 43 and 50 line mode are now supported via a new .ini entry.
- You can supply a VideoMode=xx parameter in MR2.INI, where xx can be 25,
- 43 or 50. Any other numbers will be ignored. All Selection lists and
- displays are adjusted to match the screen dimensions. For those with
- vision better than mine ... :)
-
- o Clicking the mouse on the Subject area while viewing a message still
- simulated hitting the 'T' key. This key no longer moves forward by
- thread, it steals taglines. Now, clicking on Subject is translated
- properly to an 'H'.
-
- o When filling a field in a "form" (e.g., the Subject field of the
- Message Header Edit form), overtype-mode would sometimes echo characters
- that weren't there. This happened after some characters were deleted;
- the "ghost" characters appeared at the end of the string. This is fixed.
-
- o The automatic splitting of long replies is now controlled via a
- MR2.INI parameter SplitLongReplies (set to Yes or No). If set to
- yes, MR/2 will split replies up so that no more than 100 lines are
- in each message. If set to no, then no splitting is performed and
- one large message is create. The default is to split message.
-
- o Previously, long replies were always split. The "cut-off" point was
- 95 message lines, and a "<cont'd>" line was appended with a blank line.
- I've seen some message processors cut the first part by one lines,
- making the second message consist of 1 or 2 meaningless lines. I've
- changed the "split at" number to 92 lines.
-
- o And another MR2.INI parameter has been added: AllUpperCase controls
- how the Subject, From and To lines are treated after editing a message's
- header information. Previously, all fields were converted to upper case.
- Now, if AllUpperCase=No, the case is left as entered. (By request...)
-
- o The message header editing form now allows you to "up arrow" into the
- From field and modify it. NOTE: many BBS's will reject messages
- whose FROM line do not match the user's logon name.
-
-
- Changes included in v1.02
- -------------------------
-
- o Bug fix: User reported a problem with conference numbers showing
- incorrectly. Turns out that some packets have a single byte
- conference field in the header, and the other byte used by newer mail
- doors was set to a space (hex 20). This caused conference numbers to
- be report as 8192 more than their actual value.
-
-
- Changes included in v1.03
- -------------------------
-
- o Fixes to tagline logic. If tagline file was non-existant, MR/2 would
- crash. If file was empty, added tags would not show up until you
- exited and reentered.
-
- o Selection list problems fixed. Highlighting of the line above displayed
- list on occasion. Selection bar will no longer move into unfilled
- areas. Scrolling up and down through list no longer displays end-of-list
- "ghost" entries.
-
- o Added some tests for over-length taglines. Previously, a tagline
- longer than 120 character would lock the session.
-
- o Forms display routine would show an over-length tagline w/o truncating
- it. Display of tagline extended to column 80, then would wrap to the
- next line. This has been corrected.
-
- o Actually added in 1.01 is the ability, from the packet selection screen,
- to toggle video modes. The "V" key will toggle from displayed lines
- from 25 to 43, from 43 to 50, and then from 50 back to 25.
-
- o MR/2 would lock up when saving a reply (or a new message). This
- happened only with BBS doors that would pad the user name (in control.dat)
- with spaces. The lockup occured after pressing F10 to accept the
- message header information. This shouldn't happen any more :)
-
- o NOTE - NOTE - NOTE: The problem with packets proclaiming "no mail to
- read" seems to be related to missing .NDX files in the packet. The
- QMAIL door in particular lets you suppress these files, and some
- mail readers (SLMR/OLX) don't use them, anyway. MR/2 requires these
- file, at least today. I WILL provide an index building function in the
- very next release, figure by 5/22 worst-case.
-
- o OK, so I added the routine to create NDX files if they aren't there.
- (See above) Testing on this was minimal, so please report any problems.
- Packets without .NDX files should no longer report "no mail found".
-
-
- Changes included in v1.04
- -------------------------
-
- o You may now create a supplemental "INI" file for any/all BBS's that
- you get mail from. MR/2 still loads its options from MR2.INI, but you
- may now change some of these options automatically by BBS, when a packet
- is opened. Once the packet is unpacked and the BBS "ID" is extracted,
- MR/2 checks its "base" directory (where MR2.INI resides) for a file
- named after the BBS, with a ".INI" suffix. For example, after
- unpacking a QWK packet from PC-OHIO, MR/2 will load options from a file
- named "PC-OHIO.INI", if one exists. Obviously, some options will have
- no effect (e.g., PacketPath has already been used and is no longer
- pertainent, as is WorkPath), but things like tagline files and quoting
- styles can be changed on a BBS basis.
-
- If a "BBS" .INI file is accessed, MR/2 will reload the global MR2.INI
- file when the current packet is closed.
-
- o New INI parameter "TagStyle" has been added. You may specify either
- FIDONET (the default) or PCBOARD. If Fidonet is specified, taglines
- will use "*" characters to delimit MR/2's signiture. If PCBOARD
- style is requested, the "block" character used by SLMR/OLX will be
- substituted.
-
- o Read-ahead by thread (the "H" key) has been enhanced to recognize
- subjects prefixed with "RE:" or "RE: " as matching. Messages will
- also match if the subject matches the original *less* the "RE:".
-
- o Install now includes Register.Doc for easier user registration.
-
-
- - That's it for this revision. I *almost* added a large section of code
- for twits and canned searches, but this is going to take some time to
- code and even more time to test and debug. I'll make that available in
- a week or two, along with fixes for any other reported bugs.
-
- BTW - a PM version is in a very primitive form, anyone interested in
- giving me some useful feedback? First, should it be MR/2 PM or MR/PM?
-
-
- Changes included in v1.1
- -------------------------
-
- o The Reference number field was not being set and maintained properly.
- If you replied to a message, that message's reference number would
- get copied into the replies Ref#. Then if you would re-edit the reply
- later, the Ref# would be set to the conference number. I've now
- staightened this mess out and it seems to work properly.
-
- o Added a new MR2.INI parameter "WrapLinesAtColumn" that defaults to 80.
- This should ease the problems with users that depend on the system "E"
- editor and its "word wrapping" function. MR/2 will let no line extend
- beyond the value supplied here, and will insert a CR/LF between words
- to keep text in bounds.
-
- o You may now set the MR2.INI variable "VideoMode" any of the values
- 25, 28, 34, 40, 43, 50 or 60 to represent the number of lines to
- display. Also, the V toggle while on the packet select screen has
- been enhanced to toggle through all of these values.
-
- o MR/2 now accepts one or more file names identifying .QWK packet as
- command line parameters. For example, typing:
-
- MR2 E:\DL\NERDNOOK.QWK
-
- will invoke MR/2 and automatically select the named packet for reading.
- More than one packet may be specified, MR/2 simply opens the "next"
- packet when the previous packet is closed.
-
- When all packets on the command line have been read, MR/2 returns to
- the packet selection screen and waits for a new selection. If you wish
- to have MR/2 exit after all specified files have been processed, set the
- INI variable "ExitAtEndOfParameters" to YES.
-
- This also allows for an "association" to be set up using WPS settings.
- If a new ICON is created to invoke MR/2 and "*.qwk" is set as an
- association, then clicking on a QWK packet inside the file manager is
- all that's necessary to read a packet.
-
- o Cosmetic: "Pick a Conferences" when writing a "new" message now
- reads correctly.
-
- o Cosmetic: when using video lines other than 25, the search status
- message would update always on line 25. This now moves with the
- number of lines displayed.
-
- o When editing the message header, F4 may be used to select from a list
- of available conferences. This is useful when moving a message from
- its source conference into another. By request.
-
- o The master conference list now displays in alphabetical order by name.
- Previously, conferences listed in the order they occured in the BBS's
- configuration file.
-
- o NOW, there's a new INI parameter, "SortMasterConferences" which
- defaults to NO (old-style non sorted list). Specifying YES will
- sort the master conference list alphabetically.
-
- o The "Z" key, used when viewing a message, now allows you to "Zip" to
- the next "unread" message in a conference.
-
- o Threaded reading has been greatly enhanced. First, a new INI
- option must be set - "MessageOrder=Subject" (the default is "None").
- This enables all sorts of new goodies :) Basically, setting this to YES
- will sort the messages by thread before reading begins. Care was taken
- to "clump" all "RE:" type messages in with their original non-RE'd
- subjects.
-
- o If MessageOrder has been set to "Subject", some new keys are available.
- While viewing messages, the TAB key will skip ahead to the next thread.
- The BACKSPACE key will skip backwards to the previous thread. Even
- better, pressing "Q" will invoke the Quick Thread Summary screen. This
- list all threads in the conference, in alphabetical order, along with
- the count of previously read messages vs. total message in the thread.
- All threads that have been read completely are marked with an "*".
- This is a full feature "selection" screen, so you can page around,
- pick and peck at only the subjects that interest you.
-
- o I added another option - I'm not very happy with it, but you may find it
- somewhat useful. The INI parameter "ThreadChangeTone" accepts two
- numeric parameters (e.g., "ThreadChangeTone=20000,10"). These parameters
- are passed to the OS/2 kernel procedure DosBeep() and represent the
- frequency and duration of the tone to make when you "page" into a "new"
- thread. The values 20000,10 make a quick "clicking" like sound that
- isn't *too* anoying. I'm open to ideas on this one ... :)
-
- o Default tagline file is now MISC2.TAG in an attempt to minimize
- anti-Windows discussions in OS/2 related conferences. OS2.TAG is still
- in the distribution zip, you'll just have to set it yourself, if you
- want it.
-
- o Minor bug: List Selection processing would exit a list if HOME was
- pressed on the "first" page of records. Now, user stays in the
- selection list and the cursor moves to the first entry.
-
- o When Sorting by Subject, the 'H' and the 'B' keys used the old way
- (searching forwards/backwards by subject) aren't that useful. I've
- changed their behaviour slightly in this case. The 'H' key will move
- forward a message, and if the "thread" changes, will display the
- Quick Thread Summary screen. The 'B' key will move backwards one
- message pull up the summary screen if you move into a "new" thread.
- NOTE that the selecting a thread from the summary screen moves you to
- the *first* record in the thread, even if the 'B' key was previously
- used. There currently is no way to jump to the last message in a
- thread. Is this capability desirable?
-
- o The default for the setting of ExtendedAttributes is now YES. If you
- do not use the E editor, some minor speed increases may be achieved
- simply by setting this to NO. Note that this is only an issue with
- users creating their INI file for the first time (existing INI's are
- not affected by this change).
-
-
- Didn't get to twits and canned searches yet - Sorry! I think the threading
- stuff will satisfy more of you, anyway :)
-
-
- Changes included in v1.2x
- -------------------------
-
- o Thread sorting/grouping would sometimes misplace a message because the
- last character was chopped. I've modified thread matching to check
- 24 characters instead of 25. I can't see where this could be a problem.
-
- o Disabled many keys (Q, I, Tab, Backspace) while searching all conferences.
- These weren't functional under searching-all conditions, and caused
- strange things to happen when invoked.
-
- o Pre-defined searches have been added. I did this for myself, but I'm
- sure many will see the benefit. Basically, you can build your own
- conferences by defining search criteria. All messages found to match
- will he included in the defined conference. The "MakeConference"
- parameter is added in the MR2.INI file, or can be added into the BBS
- specific INI file. See the included file "Search.Ini" for an example.
- You can have criteria listed in the MR2.INI *and* the BBS ini, and
- they will be combined correctly.
-
- The following set of lines:
-
- MakeConference = MR/2
- String = MR/2
-
- will result in MR/2 searching (in the background, multithreaded) all
- message for the string "MR/2" and creating a custom "MR/2" conference
- that will appear in the Conferences w/Mail menu. Once the defined
- custom conferences have been built, and you return to select a
- conference, these new conferences will be listed.
-
- The number of search result conferences is "unlimitted" - at least in
- a practical sense. Memory is the issue, and valid file names. I use
- prefixes of A00 thru A99, up to Z99. That's 2600 possible conferences.
- If someone needs more, please let me know :)
-
- A single pass is made through the message base - for each message, all
- combinations of search criteria are evaluated and the message is
- recorded in any/all of the conferences it's found to belong to. MR/2
- will "beep" (low sounding tone) when it's done searching. I'll INI-ize
- this sound later.
-
- As another example:
-
- MakeConference = DR DEBUG/C/C++ & OS/2
- Conferences=93,99,111
- String = OS/2
-
- defines a conference that will display with a rather verbose name,
- and will contain all message from conferences 93, 99 and 111 in which
- "OS/2" was found. A conference number of "*", or a missing conference
- line will cause ALL conferences to be searched.
-
- This feature is particularly handy for me. I'm a diehard CTOS fan, and
- I code a commercial bar coding software package. If these topics ever
- appear anywhere, I'd like to know. Since they rarely appear, I
- rarely bother to search for them. With a pre-defined search, these
- words are always checked for, and I'll never(*) miss an occurence due
- to laziness. I can simply add the lines:
-
- MakeConference = Miscellaneous
- Conferences=*
- String = Barcode\Bar Code\CTOS
-
- o Other INI parameters have been added to compliment the new
- MakeConference option. The parameter "ShowEmpties" controls whether
- empty custom conferences are to be displayed with message counts of
- "(0)". If NO is specified, empty conferences do not appear at all
- in the conference list. "DisplayStatus" will show the message
- search/hit counter on the bottom of the screen if set to YES.
- "SeparaterBar" will place a line between the normal and custom
- conferences if set to YES.
-
- o Fixed a bug in the logic that used to split long messages. I messed
- this up when I put in word wrapping - it wouldn't really split messages,
- it simply put all lines in the first message and created an empty
- "cont'd" message.
-
- o In testing the message splitting, I discovered that replies over 32K
- in size weren't even registering. This equates roughly to 800 lines of
- message text. The reply builder now accomodates messages up to
- 64K in length. This is roughly 1600 lines of text, or 15-16 messages
- "cont'd" from the first.
-
- o AND still while testing the message splitting logic, I found an even
- bigger problem with replies. If the reply file ever reached a total
- size greater than 32K, replies would be ignored. This had to do with
- using an integer to hold the file size, and having it overflow. It now
- uses a long value and will function correctly. I'm suprised no one
- caught this - or maybe they did and didn't report it.
-
- o Conferences for which MR/2 was left to build NDX files for could not
- be searched due to a problem with the way the searching functions
- used the internal NDX files. This became apparent when I tried to
- search through the new custom conferences. This has all been corrected.
-
- o Removed the annoying beeps when selecting from a list and you hit the
- uparrow or downarrow too many times.
-
- o Converted all thread code to use _beginthread/_endthread. Previously,
- I was using DosCreateThread and mixing in some C runtime library
- calls. While this seemed to work OK, I figured I'd play it safe and
- convert, especially considering the strange trouble some folks are
- having (although I'd like to blame the E editor :).
-
- o Modified tons of code to support 4 digit numbers for index file. Most
- BBS's carry under 1000 conferences, but some (Channel 1 in particular)
- boast over 1000 and have NDX files like "1654.NDX". All old code was
- geared to fixed 3-digit numbers.
-
- A benefit (?) of this is that custom "made" conferences now are numbered
- A0000-Z9999, which gives us more breathing room (as if 2600 custom
- conferences weren't enough :) Now you (theoretically) have up to 26000.
-
- EditHeader now functions just a little differently when specifying a
- conference number.
-
- o On Custom-made conferences, by default the search string is found in
- all conference messages and aligned as if a search was performed. If
- you wish to suppress this action, set the INI file parameter
- "PositionOnMatchLine" to NO.
-
- o When "Replies exist, keep?" is denied, the .rep file is now actually
- renamed to a .old file. I've had happy fingers too often and lost
- reply(s). This is not optional and is automatic - I'll add an INI
- parameter to control it later.
-
- o Split out all pre-1.0 data from this file into oldread.me. I'll
- reorganize the whole thing later - probably with version 2.0.
-
- o Mouse cursor would not hide properly when placed past line 25 (in
- non-standard video modes). Cursor would cause streaking and generally
- misbehave. This has been fixed.
-
-
- Changes included in v1.3
- ------------------------
-
- o Scroll bars are now integrated into DLSelect (the selection list
- routines). You can use the mouse to scroll through lists. I've also
- made clicking on the divider line directly above the first entry to mean
- "page up". Clicking on the bottom line of any selection list box
- means "page down".
-
- The scrolling routines need some work - mostly cosmetic. One annoying
- problem is the lack of a mouse repeat when holding the LMB down. I'm
- not sure why I don't get this - I'll have to fiddle with ZTC's low
- level event handling functions again :(. (In other words, holding the
- mouse down on the up or down arrows only registers once per click -
- if you hold it for half and hour but only "click" once, the display
- moves only one line.)
-
- o I've used ZTC's event "timer" to get a mouse repeat. Works pretty well.
- Now to test it against time :)
-
- o Selection lists now allow for "jumping" to a letter prefix. For example,
- while viewing the Master Conference list, pressing "O" will jump to
- the NEXT conference that starts with an "O". Immediately pressing "S"
- will jump to the next conference that starts with "OS". Pressing
- any non-printable key (e.g., up arrow) will reset the prefix string to
- nothing. Prefix search starts at the current cursor position and works
- forward only.
-
- o The thread sort, which I thought to be "static", turned out to be pretty
- votatile. This was pretty obvious, I just didn't connect with what was
- happenning. I've fixed it so that identical subjects are sub-sorted by
- message number. This ought to keep everything in "order" within each
- thread.
-
- o Line wrapping for replies has been fixed to "trim" leading spaces from
- next line. Previously, if a line wrapped so as to end with more than
- one space before the next line's word, these extra spaces would be
- left in front of the line. This has been corrected.
-
- o Clock: And another ZTC bug wiped out. Zortech's strftime function
- messed up the %I parameter for hours in 01->12 format. The display
- would progress from 11:59 to 01:00 at midnight. Wrong! I've
- corrected this and all clock displays seem to now work correctly.
-
- o If using PCBoard style taglines, I now use three dashes instead of
- underlines for the tearline. If Fido mode, underlines are used.
- We'll see if this makes everybody happy.
-
- o I've included two icons with the distribution zip: mr2.ico and
- email.ico. MR2.ico is a Nick Knight original and I'm not very proud
- of it :(. Maybe I'll play with it some more and purty it up. EMAIL
- is a modified ICON I scarfed and looks IMO nicer. Maybe I'll add
- some more possibilities ...
-
- o If all replies from an "existing" reply file were killed the
- original reply file was not deleted. MR/2 counted zero replies, so
- it figured there was nothing to do, and any old file remained
- untouched. Now, I rename the old .rep file to a .old file.
-
- o The 'V' key, while viewing a message, has always been there to change
- video modes while reading any message. I never documented this because
- of various bugs. Well, someone discovered it and reported the bugs,
- which I now believe to be fixed. 'V' will now toggle through the
- video modes (number of lines) while viewing any message.
-
- o To remain fairly keystroke compatible w/SLMR, I've made Ctrl-PgUp and
- Ctrl-PgDn translate to Tab and Backspace, respectively. This is during
- message reading only; these keys perform next-thread, previous thread
- functions.
-
- o Fixed a bug with the resetting of the original video mode upon exit.
- Also, added the ability to specify ANY video line mode in the INI file.
- This line count gets added to the video toggle round robin loop.
- If you specify a video mode of 52, MR/2 loads this way (no error
- checking is done - you'll stay in 25 line mode if 52 is invalid).
- If you keep pressing ALT-V on packet select, you'll cycle through 25,
- then 28, through 60 line mode. After 60 line mode, you'll toggle back
- to 52, then 25 again. Get it?
-
- o Also, I "fixed" it so that if no VideoMode is specified in the INI file,
- MR/2 defaults to whatever the current Video Mode is.
-
- o Default Word Wrap column for replies is now 80 (was 78). I'm testing
- this to see if quote-wrapping problems diminish while message-wrapping
- problems remain in check. If you specify a value in your INI file,
- this change is irrelevant.
-
- o OldRead.Me (pre-1.0 history log) has been renamed to mr2.hst. I'll
- shuffle off older entries from read.me into this file as they become
- kinda old.
-
- o Fixed some bugs with the "To" field getting confused when EditReply
- Header was set only to AFTER.
-
- o Reformatted the Quick Thread Summary screen so that all subjects line
- up, even if the read/message counst go to 2 digits. This was also
- necessary so that typing letter keys properly jump to the correct
- spot.
-
- o 3 New INI parameters. BeepOnPersonals defaults to Yes and controls the
- beep that is made when personal messages are displayed. GoToLastRead
- defaults to No. If set to Yes, the "do you wish to return to your last
- reading position" is suppressed and MR/2 just goes there automatically.
- BackupOldReps defaults to true and controls the renaming of .rep files
- to .old files instead of deleting them.
-
- o Another new parameter, by request. You may optionally specify an
- alternate editor command for use when creating NEW messages. The
- INI token NewMessageEditor may be set just as the Editor parameter is,
- and this command will be used whenever writing a new message. This
- allows for differing startup macros. The "new" editor is used for
- ALL non-reply editing (including MR2.INI, News, Files, Bulletins,
- Save files, etc). If a "new message" editor is not specified, the
- default Editor command is used for everything.
-
- o Modified the message formatter to tack on [M][][] to the end of the
- "===" divider bar. These are new mouse click areas. The arrows cause
- scrolling down and up. Clicking on the M invokes the new "mouse menu".
-
- NOTE: I was also going to assign the mouse menu to the middle mouse
- button, if available, however, my middle mouse button doesn't seem to
- function even after tweaking the MouSetEventMask parameters. Hmmm...
-
- o The new mouse menu can be displayed and used for keystroke simulation
- while viewing a message. Click in the new [M] box, and the mouse
- menu is displayed offering 16 options. Click on any of these options
- to invoke that function or use the right mouse button to cancel.
-
- The older mouse hot areas are still functional. For instance,
- clicking on the message SUBJECT area simulates pressing "H" and
- clicking on the CONF: area simulates an I.
-
- o I've also implemented double-clicking on selection lists. This is
- currently a must-do; the old method of single clicking simply
- highlights the entry. You must double click to select it. I may let
- you pick which method to use (single or double-clicking) via INI param.
-
- o If a packet is already open and you answer NO to the "use this one"
- prompt, MR/2 now deletes MESSAGES.DAT. Previously, the work directory
- files remained undeleted until a packet was selected. This caused
- the "use this one" prompt to come up after any other function. For
- instance, each time the video mode was toggled, you'd have to answer
- this prompt again. Not any more!
-
- o I've changed the status line on the bottom of the packet select menu
- and added a "mouse menu" on the right hand side. Single click on a
- packet name and then click on "[D]" to delete this packet.
-
- o If you used "X" to fast-exit MR/2 and a BBS "local" INI file was in
- use, I still reloaded MR2.INI. This step is now skipped resulting
- in slightly faster exit speeds.
-
- o New INI parameters: MouseMode=Single sets the mouse "click" mode to
- Single or Double. The NEW default is double clicking. For those of
- you who liked it the old way, set the mode to SINGLE.
-
- Also, MouseClickSpeed can be set to the maximum number of milliseconds
- allowable between mouse clicks to still be considered a double-click.
- The default is still being figured out - it'll be somewhere between
- 40 and 500. OK, it's 500 :)
-
- AND ... MouseScrollSpeed sets the delay for scrolling when you park the
- mouse with the left button down on a scrollbar arrow. The default is
- set to 1. If this is too fast for you, change it to a higher value.
-
- o Made the same "out of bounds clicks are just ignored" change to the
- menu routines. Clicking out-of-bounds on the main menu canceled still.
-
- o Had to fix a timer to simulate mouse clicks for scrolling the message
- viewer when parked on the mouse scroll arrows.
-
- o I've added a new canned-search parameter, "CHECK". This enables you to
- check for text in any combination of From, To, Subject and Message.
- Message may be further sub-divided into Body and Origin. I consider
- the "origin" section to be anything after and including the first
- "tear" line. For Example:
-
- MakeConference = MR/2 - Tagline
- Check = Origin
- String = MR/2
-
- will check only the message section, and only below the first "---" or
- "___" found in the message. Further:
-
- MakeConference = MR/2 - No Taglines
- Check = Subject,Body
- String = MR/2
-
- will check message up to the first tearline, and will also check subject.
- No sense in this case checking From and To, although I could have added
- this. You can find all message from Jim Gilliland this way and build
- a conference of them.
-
- NOTE: The message viewer will align the display on the first hit
- in the message. It will NOT ignore the body if the search was defined
- as ORIGIN only.
-
- Leaving the CHECK string out will result in ALL areas being checked.
-
- This code was partially implemented before, I just had to add the INI
- parameters and the origin splitting.
-
- This will be the base code for my twit filters - a little tweaking
- and you'll be able to twit any message combination for which you can
- build a custom conference.
-
- o Optimized the message section searching a little. It *was*
- converting the message to upper case for each search criteria
- record, even though the first check had already converted it. Now
- it only converts the message on the first check, and only if the
- message body is to be checked.
-
- o You can now forward the message you are reading to another user
- and/or conference. Simply press "W" (SLMR-compatible key) and the
- Message Header Edit screen will appear. Fill out the To field and
- change anything else as needed. Accepting this form will create
- a forwarded copy of this message in the reply conference.
-
- NOTE: MR/2's tagline does not appear in these messages UNLESS you
- modify it later. Making revisions toa forwarded message will cause
- MR/2 to place/replace its tagline on the message.
-
- o When modifying a reply, MR/2 now extracts and reuses the original
- tagline. Previously, a new tagline would be automatically picked to
- replace the original.
-
- o Modified the packet open logic to use an insert sort when creating the
- list of Master Conferences. Sorting after-the-fact was very slow.
- PC-Ohio packets (w/600 conferences) load much faster now.
-
- o I tried setting the background conference builder to IDLE priority and
- it would not work properly with PMInfo loaded. Changed it back to
- regular priority with a -30 delta.
-
- o I've implemented some basic "ANSI animation" code in the message viewer.
- Press "A" while viewing any message with ANSI escape sequences and
- see if it works. Scrolling of the screen is hokey - I'll work on it
- some more. Some screens look OK, though :)
-
- o Ooops - big bug. If Control.Dat was > 32k MR/2 would fail to read the
- master conference list, and no mail could be read. This limit is
- now 64k, and I can easily just remove any limit with the next release.
- The sample packet I was presented with had 2500 conferences available
- and Control.dat was around 40K.
-
- o A "Working" message now displays while a packet is being opened by MR/2.
- There was a substantial pause on packets with 600 conferences, and a
- couple of seconds pause on the 2500 conference packet above. It appears
- that there's trouble (as all is quiet), and then the main menu pops up!
-
- o Trimmed the end of replies a little. It was possible to get an extra
- blank block (128 spaces) at the end of the message.
-
-
- Changes included in v1.31
- -------------------------
-
- o Modified the packet select clock display to show centered on the screen.
- It was centered for short month names, but September (it *is* the longest
- name) made it look lopsided.
-
- o ANSI animation is much improved ... I've still got some work to do.
- Some of these ANSI messages are incredible! Toggle MR/2 into 34 line
- or greater mode to read stubborn messages.
-
- o OK, I've enabled "ANSI detect" for News, Bulletins and New Files.
- Actually, if I would have enabled it, this would have worked well in
- version 1.3. Unfortunately, I only tested it with message reading, and
- it didn't make any sense for these - if a message had ANSI codes, it
- was a good bet it wanted full control of the screen, which I didn't
- want to give unless requested by the user (the "A" key). Now I find,
- after sampling several BBS's (Wildcat's were suggested, then I find that
- PCBoards with Graphics menus enabled sends ANSI codes also :), that
- the non-message ANSI stuff tends to be much more behaved. Anyway, test
- it out, let me know of any problems.
-
- o For ANSI animations, had to enable the "blinking" attribute. I then
- set it back off for regular operations.
-
-
- Changes included in v1.32
- -------------------------
-
- o Blinking attribute still didn't work in the message/file viewer. News
- files with blinking text showed reverse video in some starnge color.
-
- o Custom conference search was still started on message entry w/o any
- existing packets (ALT-E from the packet select screen). There are
- no message to search in this mode, but the thread was started and the
- beep would occur almost instantly. This has been fixed.
-
- o Modified the "ShowEmpties" default flag from YES to NO. Set it to
- YES in your INI file if you want empty custom conferences to show.
-
- o KeepMessageMarks would sometimes get corrupted and set to NO. This
- was caused by an error in the INI.CPP code that "dropped" into the
- "K" parameter processing after doing the "H" processing (missing
- break statement). For some reason, the corruption was more sensitive
- to opening a packet using WPS "associations" that direct MR/2 selection.
-
- o But then, there was still a problem with using WPS associations to
- open a packet. Problem also occured whenever simply passing a file
- name on the command line. MR/2 tried to save Bookmark EA's, but used
- an invalid file name. This is now working correctly.
-
- o Added NEWMR2.ICO to the distribution zip. This is an MR/2 icon
- submitted by Dennis Powell. He claims it's better looking than mine,
- and I guess I'll have to agree :).
-
- o The ANSI file viewers would clear the screen to the user-defined message
- color before showing the file/screen. This resulted in the "wrong"
- background color. I now clear the screen to black before showing text
- using ANSI escape sequences.
-
- o Also, MR/2 left all ANSI display routines with the default screen colors
- set to whatever the ANSI display last set. I now set normal white on
- black upon exiting these functions.
-
- o I made some changes to try to speed up the scrolling of selection lists.
- The mods where to the video display routines, but seemed to do nothing.
- I don't really see any slowness, unless I stand on the downarrow key.
- These may be more a case of slow keyboard repeat. I'll see if I can
- modify this somehow.
-
- o When you change the FROM user when editing the reply header, the new
- "from" name is remembered and becomes the default for as long as that
- packet is open. Once the packet is closed, the user name defaults
- back to the one found in the control.dat file of each QWK file.
-
- o I removed survey.txt from the distribution zip. I think I know what
- the majority of folks want, and the zip file needs to be pruned a little.
- Also removed Misc1.Tag, leaving Misc2.Tag and OS2.Tag. These may get
- trimmed or disappear altogether at some time ...
-
- o Also removed MR2.DOC from Welcome.qwk, the default, "I'm lost" new-user
- packet. I've replaced it with a small note about seeing mr2.doc as
- a separate file. This file was actually packed twice, now only once.
-
- That's it for now ... I'll work on adding some actual enhancements as soon
- as I get MR/PM out and somewhat stable ... that'll probably take a week,
- or two, or three. Look for MRPM_095.*
-
-
- Changes included in v1.33
- -------------------------
-
- o Forwarding messages had a problem with taglines. The forwarded preface
- was placed in the edit-header tagline field and could get corrupted.
- Forwarded messages get no tagline; this field now displays blank and
- any entry here is ignored.
-
- o On some messages, lines would be highlighted as quotes that were
- obviously not. This was from ghost characters from previous lines and
- has been fixed.
-
- o Fixed a problem with the MR2.ID recognition routine. Basically, if
- any of my checksums calculated to a CR or a EOF (0x1A), the file would
- not be recognized as valid. This has been fixed.
-
- o If a zero length reply file was for some reason saved, then reedited,
- MR/2 would throw a second tagline on the file. Fixed. I wonder if I
- can reasonably detect the cases where the reply has been saved w/o
- any user-added modifications and warn??
-
- o In the INI file, MouseMode now supports the keyword "Off" in addition
- to SingleClick and DoubleClick. All "Off" does is tells MR/2 to hide
- the mouse cursor (the mouse is still active, just hidden). ... by
- registered user request.
-
- o New INI parameter SuppressVersionInTagline defaults to NO. If
- you're a registered user, you may set this to YES and the version
- number(s) will be suppressed when MR/2 generates a tagline. This
- allows more room for your tagline message, particularly when used in
- conjunction with "SerialInTag" set to NO.
-
-
- Changes included in v1.34
- -------------------------
-
- o The custom conference search "check" keyword ORIGIN has been modified
- to recognize a lines starting as " * " as the "origin". Also sees the
- line as the start of the origin area if the "*" is instead an "X" or a
- ASCII block char (0xFE).
-
- o The 1.33 tagline modifications to suppress the VERSION string worked OK,
- but the new code messed up the non-suppressed version string for
- registered users. This has been fixed.
-
- o Added PMColors to the INI file processor. This adds nothing to MR/2
- classic - this is for the PM version :(.
-
- o Removed the file Read.Me from the Welcome.Qwk default packet. This
- was just a duplication of the file read.me that's distributed
- separately. Duplicating the file just made distribution zip's larger
- and made extra work for me when packing up new versions. Now, all
- that's in the .qwk packet is instructions to read the read.me file.
-
-
- Changes included in v1.35
- -------------------------
-
- o Another control.dat problem was found pertaining to a specific BBS
- (or BBS software/mail door?). A registered user sent me a packet where
- control.dat had the user name padded to about 40 characters max. This
- overwrote some internal variables (specifically, the BBSID) and the
- system tried to create replies in a file named " .msg". This
- is not legal and MR/2 would puke. Since this has now caused trouble
- twice, I've rewritten the routine to handle virtually any length of
- user name.
-
-
- Changes included in v1.36
- -------------------------
-
- o Beeping on personal messages did not always work. The comparing of
- names was case sensitive, and worked only if the message name and the
- user name in control.dat matched EXACTLY. This has been corrected.
-
- o Modified the tagline "random" seeding in an attempt to make things more
- "random". Someone reported that the same taglines were coming up even
- when set to RANDOM. I could not recreate this, but an examination of my
- code revealed that there were only 60 possible seeding combinations.
- (I used time(NULL)%60). I've changed this to offer a broader range of
- starting seeds.
-
- o Tagline style now defaults to PC-Board. This is 3 dashed as a tearline
- and hi-end ASCII block characters as MR/2's signiture delimiters. I
- also added the keyword "TagStyle" to MR2INI.ORG. It's been there for
- a while, but I missed it when documenting and setting up this starter
- INI file.
-
- o Fixed a thread-name formatting problem in the quick thread summary
- logic (originally fixed in MR/2 PM). The very last thread name would
- sometimes be blank or some initial characters missing due to a previous
- "RE:" being detected. This has been fixed.
-
- o Modified the conference "sort" (when Alpha-sorted master conference
- names are requested <the default>). Previously, conference names
- where inserted into the final linked list used by the QWK class in
- insertion-sorted order. In other words, I'd plow through the linked
- list and find the right spot for a conference name and plop it
- there. This was extremely slow for large lists. Now, names are
- recorded (sorted) in a BTREE structure, then transfered into
- linked-list format. The increase in speed (using PC-Ohio's 1000+ and
- Channel 1's 2200+ conference lists as tests) is dramatic. I'm
- happy, I hope you are too.
-
-
- Changes included in v1.37
- -------------------------
-
- o The selection box logic had some problems when working in modes
- with a large number of display lines (e.g., 60 line mode). Pressing
- enter on the 32nd listed entry or beyond was treated by MR/2 as being
- a letter-character command and the "ENTER" would be ignored. This has
- been fixed.
-
- o Added a new member of zEq, the event class. The event function
- rehidemouse() can be used after a video mode change. If the mouse
- flag says it should be hidden, MouRemovePtr() is called with the
- current screen size. If the mouse flag says the mouse is *not*
- hidden, nothing is done.
-
- o The changing of video modes (number of display lines) caused the mouse
- cursor to sometimes become visible when it shouldn't. This has been
- corrected. Also, if MouseMode was set to OFF and you replied to any
- message, the mouse would appear upon return from the editor (the mouse
- flag was reset to "show" upon return). This has been fixed.
-
- o In an early and primitive attempt to support long file names, I've
- switched to the linker distributed with the MS v1.2 toolkit. It seems
- blink (Zortech's linker) doesn't like the LONGNAMES keyword in the
- .def file. Hopefully, nothing strange will happen :)
-
-
- Changes included in v1.38
- -------------------------
-
- o If EditHeader was set to AFTER only and an existing reply was modified,
- "your" name would appear in the TO field as well as the FROM field.
- This was the result of a 9/2/92 patch for AFTER mode, but the patch
- should not effect editing of replies. Fixed.
-
- o While working in Header Editing "AFTER" mode I also discovered that
- the subject of a "Write new" message was often filled in with the
- last read message's subject. Subjects are now blanked out when
- writing a "new" message.
-
- o Write new: conference numbers > 1000 would only show last 3 digits.
- Display now is widened by one and 4 digit conference numbers displayed.
-
- o Conference select when editing the message header has been expanded
- in width by one character to match Write new conference select.
-
- o My testing of BBS's with 4 digit conference support failed to find one
- possibility. It was reported that, at least once, some QWK door produced
- 4-digit index files for conference numbers < 1000. For instance,
- conference 1 would be indexed by 0001.ndx. "Normal" doors seem to use
- 3 digits *until* the conference number grows to 1000 or more. MR/2 now
- supports and auto-detects both types.
-
- o Enhanced the tagline stealer to recognize taglines made by the BlueWave
- mail reader. Added recognition for Speed Reader's method, also.
-
- o A packet was provided to me that had strange, extremelly long conference
- names; actually conference names followed by comment-like descriptions.
- These long names were causing strange screen-wrapping problems. I've
- now got a 60-char maximum box width set for conference names. Names
- longer that this will be truncated ... they won't look pretty, but they'll
- look better than what I just saw :)
-
- o My new/faster btree sorting method would toss out duplicate
- conference names. This wouldn't normally be a problem, but OS/2
- Shareware's QWK door truncates all Usenet news feed names to
- "Comp.Os.Os2.". Versions using the old sort method (or new ones with
- Alpha sorting OFF) would show multiple conferences all with the same
- name. New version show the conference only once, if at all.
- Collisions (duplicate names) are now handles as unique records and
- added - so all conferences show up. They're still named the same.
- I've netmailed OS/2 Shareware with a description of the problem.
-
- o Conference name boxes on "Write new" and header-editing selection now
- adjust their width to accomodate long conference names. (Kind of a
- continuation of the fix above).
-
- o I've been making alot of minor changes and improvements and haven't
- been too careful about remembering them. Let's see, I found a minor
- bug with adding replies. Every time you replied, a 30 byte chunk of
- memory was allocated for the conference listing, and any older conference
- record was never freed. You'd have to make quite a few replies before
- this would create a problem - but it's fixed anyway. The "Read" indicator
- on the message index and quick thread summary has been changed from
- "*" to "√". I think it looks nicer.
-
- o Tagline stealer can now steal wider taglines - 76 chars in length max.
-
- o Added some code to detect "&" symbol in BBS name. This was causing
- the OS/2 CMD.EXE to do strange things when passed to PKZip and PKUnzip.
- MR/2 now wraps all BBSID-based names that contain a "&" in quotes.
-
-
- Changes included in v1.39x - BETA
- ---------------------------------
-
- Folks: I'm calling the next few versions "beta-level" releases. Most of
- my releases are anyway <g>, but the next couple of cuts are going to have
- many new functions and lots of rewritten sections. Most of these are
- scheduled for version 2.0, but I'm thinking that I'll release them in
- steps instead of holding back (i.e., 1.4, 1.5 ... 2.0). Stick with v1.38
- if your craving for adventure is low :)
-
- o INTERNAL: Renamed RemoveKilledReplies() to RemoveKilledMessages(). This
- function will be used to later pack message "folders" and the new name
- better reflects its more generic purpose.
-
- o INTERNAL: Added folderfh to QWK class and modified all message access
- routines to check the freadingfolder flag.
-
- o INTERNAL: new routine fix_path() in INI.cpp. ReplyPath and PacketPath
- now pass through this call, as well as FolderPath.
-
- o INTERNAL: Massively modified Inbasket/Folder logic - I didn't like
- the way it was working.
-
- o Packing of replies has been reworked. Previously, all replies were
- copied to a temporary file, with killed replies being filtered out.
- Then, the reply file was deleted and the temporary file renamed to
- the reply file name. Now the reply file is packed "in place". This
- is faster, does not require a temporary file AND has been made generic
- to allow for future use with folders.
-
- o Mouse is now semi-function on "form" type entry screens. Functional
- as far as clicking on any informational "keystroke" bar will simulate
- that keypress. For example, when saving a message, clicking on "pick
- from list" will simulate an F2 keypress. This was probably more coding
- than it was worth, but it works :) Tagline stealing, save file select
- and reply header editing were effected.
-
- o Added an " ENTER = ESCAPE " key bar to save file name entry to aid in
- mouse use.
-
- o New TagStyle value has been added. If the INI file contains the line
- "TagStyle=TwoLine", then a tagline in the form of:
-
- .. your funny tagline here
- -- MR/2 v1.38 NR
-
- will be produced. Originally, I called this the "BlueWave" style, but
- something didn't sit well with me, so I changed it to "TwoLine" :).
-
- o You can now "Defer" any message to a QWK save area independant of the
- current packet for later processing. This will create an "InBasket"
- conference which will contain all messages for the current BBS that
- have been deferred and never manually deleted. This allows for you
- to reply to the message later, when time permits, without having to
- keep the entire packet around, trying to remember why, and which
- message it was. Press "D" or "/" while viewing the message you
- want to defer.
-
- *** THIS IS BETA-LEVEL CODE - USE WITH CARE ***
-
- ALSO: Inbasket code is subject to change ... read the next version's
- read.me file to make sure inbasket messages saved with this version
- will work with the new. You may have to "clean up" old inbasket
- message with the old (this) version MR/2.
-
- o Added FolderPath as an INI param. This is where folder directories
- will be created. The default is "..\", so that subdirectories off of
- the MR/2 "home" directory will be created.
-
- o ALT-E can now be used to enter NEW messages for any known BBS even
- when the "no packets found" dialog box is displayed. I thought I'd
- done this before, but it wasn't working. Now it does :)
-
- o Forced REPLYLOG variable to NO - this wasn't finished and I'd
- inadvertently documented it in the default INI file. It did very
- strange things. I'll try to finish this off soon so it works the
- way it's supposed to. Sorry?
-
- o The internal editor is now functional. Simply set the Editor
- specification in your INI file to "INTERNAL". The editor is fairly
- simple; press HELP (F1) for a summary of available keys.
-
- NOTE: This is also beta-level code. Expect bugs, but the basic
- editor works OK. Single window, no import/export text functions, yet.
- ALSO!!! Set your word-wrap margins in MR2.INI to *76 or greater* for
- the best results. Smaller numbers work fine, except previous "quoted"
- sections get mangled (at least you can now see this *while editing*
- the message, though :).
-
- The editor is wide open for ideas. I *still* don't want to spend alot
- of time writing editor code, but if an idea makes sense, I'll think
- about it. TELL ME ABOUT YOUR PROBLEMS AND OFFER SUGGESTIONS, PLEASE.
-
-
-