home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
bbs_opus
/
msgcopy1.arj
/
MSGCOPY.DOC
< prev
next >
Wrap
Text File
|
1991-07-21
|
7KB
|
162 lines
MSGCOPY v1.0
By Frank Cox
FidoNet 1:140/53
This program is truly public domain. You can give it away, you can
sell it, you can hack it, you can do whatever your little heart desires.
Also, this program is not guaranteed to do anything other than take up
space on your disk. I have tested it here and it works for me but that
doesn't necessarily mean that it will work for you. Use it at your own
risk.
SO WHAT DOES IT DO?
-------------------
MSGCOPY copies any unreceived messages that are to a user on the board
into the destination area and marks them as received in the origin area so
that the message won't be moved twice. It will add a "* NOTE: Reply to
this message is area #." where # is the area the message originated from to
the top of the body of the message text.
Why do you want to do this? The users of my system like it because
they don't necessarily have to call in every single day and they won't miss
messages addressed to them that come through even the most active echo
areas. I have a read-only message area on my system called "Echomail
Replies to Local Users". MSGCOPY slams all unreceived echomail addressed
to local users into this area. I have O_RENUM (the message
renumber/deleter program by Steve Antonoff) set to delete messages in this
area that are either received or older than 45 days. In this manner, even
if a user goes away for a few weeks vacation or whatever, all of the
echomail addressed to him is still waiting on his return.
An additional benefit is that your mail waiting announcement program
doesn't have to read through all of the echo message areas when you use
MSGCOPY - just your local message areas and the reply area.
MSGCOPY will optionally read a text file containing names of users
whose messages you do not want to copy. For example, other sysops will
likely receive their echo mail on their own system - if they call your
system, the don't want to have to re-read the same messages again. MSGCOPY
will ignore messages addressed to users whose names are specified in the
text file.
HOW DO YOU USE IT?
------------------
This is the command line you use with MSGCOPY:
MSGCOPY [-uUSER.DAT] [-sSYSMSG.DAT] [-eEXCLUDE.LST] [target] [area] [area]
Explanation:
[-uUSER.DAT] is the path and name of the USER.DAT file
example -uC:\OPUS\MISC\USER.DAT
[-sSYSMSG.DAT] is the path and name of the SYSMSG.DAT file
example -sC:\OPUS\SYSMSG.DAT
[-eEXCLUDE.LST] is a list of names to exclude from the search
example -eC:\OPUS\MISC\EXCLUDE.LST
[target] is the number of the reply holding area
[area] is a list of the areas to be scanned
If -s or -u options are not specified, the current directory is
scanned for USER.DAT and/or SYSMSG.DAT. If no exclusion list is specified
with the -e option, all names in the USER.DAT file will be included in the
search.
You can specify as many [area]'s as you can fit onto the command line.
The Exclude.Lst file is a text file containing names of users whose
echo mail you do not want to copy into the target message area. It might
look like this:
Jules Verne
Jonathan Swift
Edgar Poe
Charles Dickens
Thomas Hardy
Walter Scott
If this exclusion list was specified, then MSGCOPY would ignore echo
mail messages addressed to any of these gentlemen.
It should also be noted that MSGCOPY is designed to work with echo
mail messages, not local messages. Due to the method used to read the
messages, if you use it to copy messages from a local message area, the
"* NOTE: Reply to this message in area #" line will be inserted in the
wrong place, one character too far into the body of the message.
EXAMPLES:
---------
MSGCOPY -EC:\Opusstuf\Exclude.Lst 2 4 5 6 7 8 10 25
This command line will read an exclusion list in the C:\Opusstuf
directory, read USER.DAT and SYSMSG.DAT in the current directory, put
messages into area 2, and read through messages in areas 4, 5, 6, 7, 8, 10
and 25.
MSGCOPY -SE:\Stuff\Sysmsg.Dat -uE:\Stuff\User.Dat 2 4 5 6 7 8 10 25
This command line would read USER.DAT and SYSMSG.DAT in the E:\Stuff
directory, would not use an exclusion list, put messages into area 2, and
read through messages in areas 4, 5, 6, 7, 8, 10 and 25.
Errorlevels returned:
0 - No fatal errors encountered
1 - USER.DAT file not found
2 - SYSMSG.DAT file not found
3 - Target Message area not found
Note that the error handling in this program is not exhaustive for two
reasons - the additional code would slow the program down a bit, and I was
too lazy to write the additional code anyway. In other words, if you run
out of disk space, specify a file that does exist but is in an unexpected
format (such as specifying a USER.DAT file that is really a SYSMSG.DAT
file), or similar stuff, you may still get a return errorlevel of 0.
However, in these kinds of situations, you should receive an error message
of some sort on the screen.
ACKNOWLEDGMENTS
---------------
MSGCOPY is an implementation of an idea for Opus 1.03 originally by
Derrick Cedars which was developed further for both Opus 1.03 and Opus 1.10
by Simon Giles. Actually, after seeing the initial program written by
Derrick, I sort of bugged Simon until he wrote a version that worked
better. However, alas, Simon is no longer in the nodelist. This made it
too difficult for me to bug him for yet another update of his program when
Opus 1.70 was released. So I had to dust off the compiler and write a new
version myself.
This implementation of MSGCOPY was written completely from scratch.
Simon's implementation was written in another language which I don't know
too much about. So I just started again.
I would like to thank Bob Swift (1:140/24) for deciphering the
structure of the Opus 1.70 SYSMSG.DAT file. I would never have succeeded
in getting this program to work the way it does without him!
Thanks also to Roger Franz (1:100/380) for testing a version of this
program prior to the release of Opus 1.70.
COMMENTS, SUGGESTIONS, BUGS??
-----------------------------
Comments or questions can be directed to the author via netmail at the
above noted FidoNet address, or the old-fashioned way (pen on paper). My
postal address is
Frank Cox
P. O. Box 2694
Kindersley, Saskatchewan
Canada S0L 1S0
Enjoy!