Contents of the CHANGES.DOC file
The "Semi-Intuitive" Mail Processor
(C) 1990, 1991 Fabiano Fabris
1.10/b - 10-02-91
Due to a stupid logic error, SCAN would not export any mail if
the file ECHOMAIL.BBS was missing.
Made a small cosmetic change in the Check Bad Message Board
function. The number of messages moved was not correct, and the
video output was messy.
There was a pack routing problem in PACK. For example, if your
primary is 27:1339/103, and you had mail for 27:1339/103.1,
giving a command such as
IMAIL PACK 27:All via 27:27/1
would pack mail for the point via 27:27/1 (the same was true for
default pack routing). This has been changed so that mail for
your own points will not be pack routed unless you explicitly
specify that it should be with a command like
IMAIL PACK 27:1339/103.All via 27:27/1
Fixed the problem with TOSS hanging on messages which contained
"wierd" dates, such as "03 Jan 120 91:15". Now it will try to
"force" such dates into legal format.
IMAIL was checking for free disk space > 50K only if a maximum
packet size had been defined. The logic has now been "moved" so
that it will check always, and if less is available, compress the
mail before going on.
In a previous beta, I had eliminated the space between "AREA:"
and the actual area name for SCAN... but forgot to do the same in
TOSS. This has been fixed.
IMAIL TOSS now exits with a code of 2 when it has imported echo
mail. This might create some problems for those who used the exit
code 1 if net mail was processed, but several requests have
indicated that the indication of imported echo mail would be more
The problem with TOSS deleting ARCmail files when it could not
correctly process them has finally been fixed.
In fixing the bug in the Global Change function regarding the
fact that the number of items changed was not zeroed, I
reintroduced a problem: the changes made were not recognized, and
exiting the Manager with F10 did not save them.
Modified INDEX, PACK and RECOVER so that, if a message is flagged
as Received, the corresponding entry in the file MSGTOIDX.BBS
will be given as "* Received *", instead of the name of the user
it was addressed to. This apparently caused a problem with RA.
Due to a very small bug, SORT was placing messages entered in
January =after= those entered in February; it was sorting only on
the year and day, ignoring the month.
Fixed a minor cosmetic bug in NOTIFY: it was not adding the PID
to the messages it generated.
1.09/b - 27-01-91
Ran the program throught PC-lint, and fixed a few bugs. Among
these a few incorrect references to the registration key, which
may have caused the forward link request function to hang.
AreaLink was not writing the name of the area in the net mail
message if it was already linked or not authorized. It was also
putting the PID kludge in funny places.
I discovered that the ECHOMAIL.BBS file was often older than the
MSGHDR.BBS file, if you read a lot of messages after having
entered the last one. Thus SCAN would think that ECHOMAIL.BBS was
invalid. The date/time check has therefore been removed.
ARCmail can now be marked as DIRECT or not, according to the
information given in IMSETUP -> Node Manager (see below). By
default, ARCmail is not flagged as DIRECT.
AreaLink will no longer try to rescan passthrough areas.
The Check Bad Message Board function will now not move messages
to the correct area if they violated security.
The Import Areas.Bbs function would choke of you overwrote an
existing board; this was because I was not correctly updating the
linked list in memory.
In the Global menu of the Area Manager, the "records changed"
counter was not being zeroed between operations; instead, it was
being summed the the total of the last changes made.
A new item has been added to the Node Manager. It is now possible
to indicate whether ARCmail to a system should be flagged as
DIRECT or not.
When entering the Sysop Name, it was not possible to enter a '-'
character, which is present in many names. Thus, checking of the
characters has been almost eliminated.
The Area Manager will now not allow a user to insert an area
which has the same name or board number as another, already
defined, area. The same is true when editing an existing area
The echo mail statistics information will no longer be lost when
you enter the Areas Manager. This was a problem I had intended to
fix before releasing 1.00, but it somehow slipped my mind.
Ran the program through PC-lint, and fixed a few minor bugs.
Added a switch to the STAT command: /K will keep the echo mail
statistics rather than zeroing them as usual. This will allow you
to keeping a running total of mail traffic.
KILL and SORT will now delete the ECHOMAIL.BBS and NETMAIL.BBS
files, if found, so SCAN will not try to use them.
INDEX was not correctly updating the MSGIDX.BBS and MSGTOIDX.BBS
files with regard to deleted messages. Now the correct
information will be stored.
PACK would not renumber the net mail messages as instructed if
there was nothing to pack.
LINK was not ignoring deleted messages when regenerating message
links. This has been fixed.
IMPORT was not always closing net mail messages, thus it would
quickly abort with an error when all available file handles were
1.04/b - 19-01-91
Included full support for NETMAIL.BBS and ECHOMAIL.BBS in the
SCAN function. However, should either of these files be invalid,
SCAN will resort to the previous method of the internal counter.
IMAIL was setting the XX1 bit (bit 10) of the message header when
generating ARCmail file attaches. This bit is used occasionally
(D'Bridge, I think) to indicate DIRect status.
ARCmail file attach messages are no longer marked as direct, thus
they can be routed if desired.
AreaLink would not report when a request was made with an invalid
password; it would simply say that the request was not
authorized. It will now say that the password was incorrect.
The handling of new echo areas has been slightly changed. In
previous versions, the file IMAIL.NE would be updated for each
message found in an unrecognized area. Now, TOSS will only update
the file if the new area is not already listed in IMAIL.NE. Thus
each new area will only be reported once.
If an echo message already had an origin line, IMAIL SCAN would
add an extra CR/LF before writing the SEEN-BYs.
Added a few "confirmation requests" when pressing Esc to abort a
change. This was done mainly in the Area Manager and the Node
If you pressed PgUp or PgDn while editing an item in either
Manager, one of the fields would be cleared. This has been fixed.
The routine to check for free disk space was always checking the
current drive, rather than the one on which the message base was
Added another switch to PACK: /C will force PACK to check for
cross-liked messages. Since this degrades performance
significantly, I decided to make it optional. So if this switch
is not given, no check will be made. (Note that IMTHINGS KILL /U
/P will =not= call PACK with the /C switch.)
1.03/b - 13-01-91
Fixed an incorrect bug fix 🙂 In 1.01/b, I changed the naming
convention used the the extension of ARCmail files; it has been
restored to the method used in 1.00.
Introduced file buffering in TOSS, and partially in SCAN. In
TOSS, the pakcet being processed will be buffered, as will the
packets created. In both functions, the MSGTXT.BBS and MSGHDR.BBS
files are also buffered.
Modified the way PACK scans the messages and looks to see if the
message is to be pack routed. Before it was parsing the list of
nodes, and then looking for messages which matched; now it does
it the other way round: for each message, it checks to see if it
should be pack routed.
SCAN was not stripping the Local bit from the messages it was
exporting. The same was true of a few other bits as well.
The Check Bad Message Board function was moving messages to board
0, if the echo area had not been properly set up.
AreaLink was processing requests from unauthorized nodes multiple
times, until the "offending" message was deleted. These messages
will now be correctly marked as Rcvd.
Forward Link Requests: a few bugs cropped up here. For example,
the addresses in the INTL line were in reverse order. Also, when
sending a request to AREAFIX, the program was adding the "+"
anyway, and not appending a tear line to the message.
Made a few minor cosmetic changes regarding screen output during
TOSS and SCAN.
Added a few command line parameters to the program. These are:
/M Force 'mono' color set
/C Force 'color' color set
/D Force direct screen writes
/S Force CGA snow elimination
/? Help screen
Fixed a bug similar to the one in the Pack Routing menu (fixed in
version 1.02/b); this time, it was in the General Configuration
-> System Addresses menu.
The Import Areas function was not correctly keeping the areas
sorted if you imported an echo with an existing board number.
Thus IMAIL would then not find the new area when TOSSing.
Added a new command called SORT. This will sort the message base
in date order by renumbering the MSGHDR.BBS file. Note that SORT
destroys all message links, so both INDEX and LINK are run once
SORT has terminated.
Changed LINK so that it generates the links dynamically when
updating the message headers, rather than in memory. This should
reduce the memory requirements somewhat.
Added a new switch to the KILL command: /O, when used with /P,
will call PACK in overwrite mode. Note that if /P is not
specified, /O will have no effect.
Modified the way KILL marks deleted messages, so that they will
recognized as such by FM. Until now, KILL was only setting the
Deleted bit in the MSGHDR.BBS file; now it also modifies the
MSGIDX.BBS and MSGTOIDX.BBS files.
The same changes were made to the EXPORT function; messages
exported from the net mail board are now properly marked as
PACK will now also check for messages which are cross-linked by
message number or by starting record. If any are found, they will
PACK now also exits without rewriting the entire message base if
there are no messages to remove (deleted or cross-linked).
NOTIFY was not setting the Local bit in the messages it created;
so FroDo would not send them.
Added file buffering on MSGHDR.BBS on a few of the more I/O
intensive functions, such as SORT, INDEX and others.
1.02/b - 07-01-91
Removed the list of Product names (other mail processors) from
IMAIL. They were used only by TOSS in Verbose mode. To
compensate, IMAIL now logs the Product Code after the name of the
PKT being processed. (IMAIL's Product Code is 004B)
Fixed a problem in which IMAIL would hang on "wierd" SEEN-BY
lines. In particular, most of the entries were null (ie 0/0), and
the filled up available memory. TOSS now ignores such entries.
Made TOSS a lot smarter with regard to the handling of error
conditions. Now, instead of aborting, it will report the error,
rename the "guilty" packet file, and go on to the next one. At
the same time, TOSS now logs "weird" things, such as missing
Origin, SEEN-BY and PATH lines.
If ARCmail 0.6 Compatibility was set on, ARCmail generated for a
point would be called 00000000.??? - this clearly isn't
acceptable, so in such cases, the Compatibility flag will be
ignored. There is just no other way to do it.
Added a few items to the Global Edit menu of the Area Manager. It
is now possible to globally change the Security, the # days and
the # messages.
By popular request, the size of the # Msgs field has been
expanded; the variable is now a word, so up to 65000+ may be
In the Pack Routing menu, it was impossible to delete a via node
unless an address of 0:0/0.0 was specified. This has been fixed:
Ctrl-U will now behave as it should.
Fixed a bug in the Global -> Add Node function. The address
specified would be added even if already present in an export
Removed the exploding window at the start of the program. Also
changed the "sign-on" so that it indicates if the program is
registered or not.
If more than one message arrived in a new echo area, IMSETUP
would add the area more than once, thus creating several records
for just one echo.
Added another switch to IMTHINGS KILL. The /P switch will allow
you to call IMTHINGS PACK automatically after having run KILL, if
any messages were marked as deleted. This will work with the /U
switch, or with any of the others.
Fixed a bug in KILL which caused it to mark as deleted ALL
messages in a board of the # Msgs value was specified in IMSETUP.
At the same time, eliminated the problem which caused the
computer to loose time.
Fixed a problem in the IMPORT function: it was importing net mail
addressed to a point of the system it was being used on. Made it
1.01/b - 04-01-91
In 1.00, net mail messages SCANned out of the Qbbs message base
were never pack routed. This has been changed. Now SCAN will
correctly route this type of net mail, following the indications
given in IMSETUP (Pack Routing).
Becuase of this, a command line switch was added to SCAN. If you
specify /N, default pack routing will be ignored (as with IMAIL
Removed all the IMAIL "product" kludges, wherever they were
generated: net mail messages created by IMAIL, or scanned out
from the message base.
SCAN was inserting a space between the AREA: and the tag itself.
I heard that some mail processors barfed on this.
Fixed a nasty bug in the creation of the packet header. IMAIL was
not correctly adding the Capability Word Validation Copy to the
header; yet it was checking for its presence. The result of this
was that echo mail from point to the boss node was being duped
back to the point, since the boss did not recognize the extended
info in the packet header.
SCAN was not marking as deleted net mail messages which were
flagged as kill/sent.
When IMAIL created outgoing ARCmail files, it would not generate
files with the extension .??0 - it would always start with .??1.
This has been fixed.
The names of generated ARCmail files are now logged after the
destination system address.
The FDRESCAN.NOW and FMRESCAN.NOW files are now created only if
the FD environment variable is set.
When exporting echo mail, SCAN would check for the presence of a
tear and origin line; if they were found, it would not add one of
its own. However, it was possible for SEEN-BYs and PATH lines to
be present after the origin (a copied message, maybe?). So SCAN
will now look for these kludes, and if found, void them, as well
as the origin, and then add its own tear and origin lines.
The Area Manager now allows the number of days and number of
messages to be edited. This information is used by IMTHINGS KILL,
if specified with the /U option. If both fields are left at 0, no
messages will be killed.
In unregistered versions of IMSETUP, the program did not show
unavailable items; now they are displayed, but are not
selectable, nor can they be edited.
The Import Areas.Bbs function is now available to unregistered
users; but none of the other functions are.
IMSETUP -> General Config -> Subdirectories would not accept
SUBSTed drives. This has been fixed.
Implemented the EXPORT function. This will export net mail from
the Qbbs net mail board to the net mail directory as MSG files.
It will do this only for messages to other systems, marked as
Local and Outgoing Net.
Also implemented the corresponding IMPORT function. This will
scan the net mail directory, and import any messages addressed to
your system into the Qbbs net mail board. The original MSG file
will be deleted. Note that File Request and Update Request
messages will =not= be imported, but File Attach message will, so
it is best to always run IMAIL TOSS before running IMPORT.
Added a new switch to KILL. /U will make KILL use the values
given in the Area Manager to determine how many messages to
delete. Any other switches given with /U will be ignored.