Category : OS/2 Files
Archive   : MRP_099B.ZIP
Filename : MR2READ.ME

Output of file : MR2READ.ME contained in archive : MRP_099B.ZIP
MR/2 - A QWK Compatible Mail Reader for OS/2. 03/06/93

Copyright (c) 1992, Knight Writer Software Company.
All rights reserved.

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.

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 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 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 ). 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 , 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.


ALSO: Inbasket code is subject to change ... read the next version's 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

Changes included in v1.40x

Not much feedback on the internal editor yet. I used it for a while but
switched back to QEdit. I need file import/export capabilities myself; I'll
be adding that to the internal editor soon.

o Save file wildcarding logic fix. First, if you entered a spec like
"c:\tmp\*" and pressed ENTER, MR/2 would save the message to that file
name, which is illegal. No error would be reported. Now, when ENTER
is pressed and a wildcard is in the file name specified, MR/2 converts
the ENTER into an F2 keypress and shows a file pick list.

o If "C:\tmp\*" was provided as the save file pick list, and a file was
selected from the list, the file name returned would be grunged. The
file name field would be filled with some mutation of the subject line
from the message display. This was due to the missing ".", which I
assumed would always be there. This has been corrected.

o New INI parameter: "TemplateFile". This is another one of those
features that is merely a starting place and has lots of future
expansion possibilities. Place a file name here that defines a
template for all message replies. The reply will created using this
file as a guide BEFORE you edit it. This allows for any necessary
cleanup. The "template" file I used for testing looked like this
(note that the variables used will be documented below):

Subject: @Subject@
In a message dated @DATE@, @FROM@ said to @TO@:


Nick Knight

From @from@ reading @CONFNAME@ (@CONFNUM@) on @BBSID@, to @TO@
Subject: @Subject@

FidoNet: 1:157/2
Internet: [email protected]
Compuserve: 76066,1240

To First: @tofirst@
To Last: @tolast@
YYMMDD: @yymmdd@
Date: @date@
From First: @fromfirst@
From Last: @FromLast@
Msg Date: @msgdate@
Msg Time: @msgtime@
Day: @Day@
Julian: @Julian@
Time: @Time@
Time 24: @Time24@
AM/PM: @AmPm@

Upper: @Upper@@Subject@ @upper@@day@
Lower: @lOWER@@Subject@ @lower@@day@
Mixed: @mix@@From@ -> @mix@@to@

The quoted version of the original message is inserted at the $BODY
marker, which is required. NOTE that this is not an appropriate
template file for use within internationally echoed conferences.
It's offered here merely as an example.

The section before the $BODY line allows for an "attribution"
line or section. The area below the $BODY marker works as a
signoff or signature section.

AGAIN, this feature is under development and may be changed in the
next couple of versions. My idea is to add more blocks to this file.
For example, a definition for saved message headers, forwarded
header definition, etc.,. I've got plenty of ideas.

The reply file generated by my test template file looked like:

Subject: NEW ZOO
In a message dated 03/06/93, DAN HANSON said to ALL:

DH>I saw this in Time Magazine. The New York Bronx Zoo has been
DH>renamed to the International Wildlife Conservation Park. In

Nick Knight

From DAN HANSON reading Main Board (0) on PC-OHIO, to ALL
Subject: NEW ZOO

FidoNet: 1:157/2
Internet: [email protected]
Compuserve: 76066,1240

To First: ALL
To Last: ALL
YYMMDD: 930306
Date: 03/06/93
From First: DAN
From Last: HANSON
Msg Date: 03-06-93
Msg Time: 14:21
Day: Saturday
Julian: 065
Time: 03:08
Time 24: 15:08

Lower: new zoo saturday
Mixed: Dan Hanson -> All

o Variables are available for use in the template file. They are
currently only used by the reply file generator. I'll add the
capability to other areas as I think of them.

The following variables have been provided:


The literals UPPER, LOWER and MIX are not actual variables, but
modifiers. They will convert the case of the NEXT variable
replacement to either all upper, all lower or mixed case, respectively.
Mixed case basically lower cases all letters except the first letter
of each word. See the example above for more detail.

o GREATER CHICAGO Online BBS is now offering a service called the
"OS/2 Shareware Author Support Program". They are willing to handle
Visa/Mastercard charges for shareware authors. Starting immediately,
MR/2 may be registered by "charging" it! You can register online by
calling Greater Chicago Online BBS at (708) 895-4042. Alternatively,
you can provide your charge card information to me directly on the
MR/2 registration form provided (register.doc). There is a $2.00
handling fee associated with all charged registrations, making the
total charged registration cost $22.00 US for domestic orders.

Shareware authors may get more information on the OS/2 Shareware
Author Support Program by calling the GREATER CHICAGO Online BBS at
the number above (leave a note to the sysop) or by Compuserve mail
at 70404,3277. Fidonet netmail can be sent to Bill Cook at 1:115/895.

  3 Responses to “Category : OS/2 Files
Archive   : MRP_099B.ZIP
Filename : MR2READ.ME

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! ๐Ÿ˜€ I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: