home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
msq310.zip
/
MSGED.DOC
< prev
next >
Wrap
Text File
|
1995-06-24
|
89KB
|
1,983 lines
Msgedsq v3.10
A Public Domain *.MSG & Squish Compatible Message Editor
Authored mainly by Jim Nutt, John Dennis and Paul Edwards
At time of release, being maintained by Paul Edwards, 3:711/934@fidonet
┌─────────────────────────────────────┐
│▒▒ Instructions and Disclaimer ▒▒│
└─────────────────────────────────────┘
Obviously there is no warranty on this program and the authors
assume no liability for anything it may do.
To run the DOS version of this program you need somwhere
around 300k of RAM. You will also need MS or PC-DOS 3.3
and above for all the file sharing to work. You most definitely
need to run share.exe if you plan to run it in a multitasking
environment.
For use under OS/2 2.0 and later, the above does not apply.
C o n t e n t s
──────────────────────────────────────────────────────────────────
Heading Section
──────────────────────────────────────────────────────────────────
Notes Concerning Copyright ................................... A
Introduction ................................................. B
Document Conventions .................................... B1
Memory Considerations ................................... B2
Share Support ........................................... B3
Configuration Options ........................................ C
Installation ............................................ C1
Command Line ............................................ C2
Configuration File ...................................... C3
Name .................................................... C4
Address <address> ....................................... C5
Alias <alias,name,<[address]|[UUCP]>,subject[,]]> ....... C6
Help Files .............................................. C7
Outfile <filename> ...................................... C8
Include <filename> ...................................... C9
Lastread <filename> ..................................... C10
Echotoss <filename> ..................................... C11
Primary and Secondary Userlist .......................... C12
Swappath <path to swapfile> ............................. C13
Curstart <start scanline> ............................... C14
Curend <end scanline> ................................... C15
Nodepath <path to nodelists> ............................ C16
Nodelist <domain name> <base name> <sysop file name> .... C17
AreaFile <s[quish]|a[area]> [[path][filename]] .......... C18
Useroffset <offset into sql file> ....................... C19
QQuotes ................................................. C20
SqlLast ................................................. C21
Video <type> ............................................ C22
Colors <type> <foreground>[+]/<background>[+] ........... C23
Monochrome Monitors ..................................... C24
Attribution <attribution line> .......................... C25
Editor <external editor> ................................ C26
Template <template file> ................................ C27
Group <"search string"> <name index> <template index> ... C28
Reply Functions Config ....................................... D
AlterFunc <function> <action(s)> ........................ D1
Switches ................................................ D2
Quote <quote string> .................................... D3
Margins ................................................. D4
Area Definitions ........................................ D5
Mail ................................... i
Echo .................................. ii
Uucp ................................. iii
News .................................. iv
Origin <origin line> ................................... D6
Uucp <address> .......................................... D7
Domain <address> ........................................ D8
Gate <gate type> ........................................ D9
Editkey and Readkey ..................................... D10
Function ................................................ D11
Using Msgedsq ................................................ E
Screen Format ........................................... E1
Basic Usage (Or: a small primer) ............................. F
Quotes & Text Formatting ................................ F1
Network Addressing (And Gates) ............................... G
Network Gating ..................................... G1
Zone Gating ........................................ G2
Domain Gating ...................................... G3
Host Routing ....................................... G4
Carbon Copies ................................................ H
Cross Posting ................................................ I
Internet and Msgedsq ......................................... J
Msgedsq and Points ........................................... K
Default Reader Key Definitions ............................... L
Edit Mode Key Definitions .................................... M
Redefining the Keyboard ...................................... N
Function Key Macros ..................................... N1
Caveats ................................................. N2
Contacting the Author ........................................ O
Hints/Panic Questions Etc .................................... P
Hints ................................................... P1
ReadKey Commands .................................... Appendix A
EditKey Commands .................................... Appendix B
Template Tokens ..................................... Appendix C
Origin Line philosophy .............................. Appendix D
Credits ............................................. Appendix E
Miscellaneous Notes ................................. Appendix F
┌─────────────────────────────────────┐
A. │▒▒ Notes Concerning Copyright ▒▒│
└─────────────────────────────────────┘
This program is released to the public domain. There are absolutely
no distribution restrictions, and you may legally use this product
as the basis for a commercial editor if you wish to do so.
┌────────────────────────┐
B. │▒▒ Introduction ▒▒│
└────────────────────────┘
Msgedsq is a message editor for Fidonet (and compatible) network(s).
It is derived from Msged, a program written by Jim Nutt, and was
subsequently modified by John Dennis to create Msgedsq. After a
number of years John Dennis released all his work to the public
domain and discontinued support for it.
Paul Edwards has picked up the ball at this stage, with support from
others. Feel free to pick up either this code or John's final version
(MSQ22SRC.LZH) and create another development stream, or integrate it
in with this version, as you please.
The features of Msgedsq (briefly) are:
- Small & fast.
- Supports the popular Fido (*.msg) and Squish Msg formats.
- Message sizes limited only by memory.
- Number of messages per area limited only by memory, at
least for OS/2 (tested with 100800 messages). The DOS
version has a limit of a little over 5000 messages per
echo. Do not attempt to use more than this.
- Support for UUCP and NEWS RFC-822 gated messages.
- Handles Zone Gating, Host Routing and Domain Gating automatically.
- Has configurable reply/quote functions, as well as configurable
information strings.
- Supports sharing conventions for all msgbase types.
- OS/2 32-bit version (exactly the same).
- Completely redefinable keyboard.
- Supports multiple usernames.
- Has aliases for quick header entry.
- Multi-network support across the board (echomail, netmail...).
- Version 7 Nodelist support.
+ More...
B1. Document Conventions
Some conventions will be observed in this document; keypress
instructions will look like this: <alt><s>, which instructs you
to hold down the key labelled Alt and press the letter S. Fido
refers to the *.msg msgbase type and Squish refers to the Squish
msgbase type. <address> refers to an address, up to 5D. "..."
(ellipsis) means you can have as many of that option as you like.
B2. Memory Considerations
Msgedsq needs about 180k to run, but it will use all available
memory when reading/editing messages. Therefore, if you are
planning to read/write very large messages, you should have a
corresponding amount of free RAM. I suggest about 220k; you'll
never run out of memory in Fidonet areas, but if you are reading
64k messages, add another 70k to that figure. The amount of
available free memory is shown to the right hand side of the
area name, when you are viewing a message. Of course, none of
this stuff applies to OS/2.
B3. Share Support
Full sharing of both Fido and Squish msgbases are supported for
DOS 3.3 and above. Naturally, Share.exe must be loaded to make
this effective and this is STRONGLY recommended when running
under a multi-tasker (of any description). Sooner or later nasty
things will happen to your msgbases if you don't. What the
heck - share only takes up 7k or thereabouts... DOS v5 users
should note that share seems to work best when installed from
config.sys.
┌──────────────────────────────────┐
C. │▒▒ Configuration Options ▒▒│
└──────────────────────────────────┘
C1. Installation
Installing Msgedsq shouldn't be too hard; simply use the provided
config file and edit it to your heart's content. The squish.cfg file
that comes with the SquishMail processor can be used for area
definitions, as well as the areas.bbs file (used by practically
everything on earth). Hopefully when everything is configured you'll
simply type "msged" at the DOS command line or "msgedp" at the OS/2
command line.
C2. Command Line
Msgedsq takes two parameters on the command line: the first is
the name of the config file, and the second is the areas.bbs or
squish.cfg file. You cannot have the second without the first;
see the later section on the "areafile" config line. If you wish
to have different people using the same program, it's easiest to
path msged.exe with the config file in the current directory
(msged loads it from the current dir by default). This would be
easier than editing the executable file.
┌ Command Line Syntax ─────────────────┐
│ msged [<config file> [areafile]] │
└──────────────────────────────────────┘
msged returns with an errorlevel that is calculated as follows:
It starts off with 0, and then:
If you have entered new netmail, 1 is added to the errorlevel.
If you have entered new echomail, 2 is added to the errorlevel.
If you have entered new uucp mail, 4 is added to the errorlevel.
If you have entered new news mail, 8 is added to the errorlevel.
If you have entered new local mail, 16 is added to the errorlevel.
So if you get an errorlevel of 18, it means that you have
entered new local mail, and also new echomail.
C3. Configuration File
The config file is processed from top to bottom; the placement of
verbs in the provided file generally have a purpose. The moral is:
don't move things round unless you know what you're doing :-)
C4. Name <username> ...
───────────────────
This is fairly obvious; put your full name here. The first name
specified will be the default name. You can define more if you
like (ten maximum), and you can change to these during execution:
the <ctrl><u> function brings up a pick list for you to choose.
C5. Address <address> ...
────────────────────────────────────────────
Your network address(es), up to 5D. You can define as many as
you like & can choose between them during execution (<ctrl><w>).
C6. Alias <alias,name,<[address]|[UUCP]>,subject[,]]> ...
───────────────────────────────────────────────────────────
Aliases are used to simplify the entry of names, addresses and
subjects, rather like macros useable in Carbon Copies and normal
msg header entry. This way, you simply type in the alias, press
enter, and the rest is filled in for you. Internet addressing is
supported as well (see config file for example).
C7. Help Files
──────────
These are names of external files containing help (or whatever
you put in them), that will be called to the screen when pressing
<alt><h>. Some example files are provided. "rhelp" will be read
when in reader mode (Ie: not editing a message). "ehelp" will be
read when editing a message. If the text in the file is greater
than your page length, it will page down at every keypress, the
<q> key will cause it to quit and return to the reader/editor.
C8. Outfile <filename>
──────────────────
Msgedsq handles exports in a variety of ways when you press
<alt><w>. You can send the text to any character device,
including files, printers and comports; you just specify the name
(However, beware of critical errors: they will mess up the screen
format). You can overwrite or append to an existing file, with
or without added carriage returns, with message header or
headless unformatted text, an attribution line header and each
line quoted or straight from the message. All this is done from
the reader, exports from within the editor are always straight
text (and must have been cut from the message using the cut key).
Outfile is the default filename for export (you can change this
when you press <alt><w> during execution).
Putting a "+" in front of the filename will cause the text to be
appended to the file. Otherwise the file will be overwritten.
Putting a "?" in front of the filename indicates you want to be
asked whether to append or not, and how to write out the file.
Some menus will appear and you choose the action you want.
If you append a ",t" to the end of the filename, the message will
be exported in plain ASCII form with the message header. Carriage
returns and linefeeds will be added to the end of each line. If
you append a ",q" to the end of the filename, the text will be
exported in quote format. This means that an attribution line
will be added to the beginning of the message and each line will
be preceded by the quote string.
C9. Include <filename>
──────────────────
This will include the filename and parse it as a configuration
file. The statement can be placed anywhere within the msged.cfg
config file.
C10. Lastread <filename>
───────────────────
Msgedsq creates a file to keep track of the last read message in
Fido (Only! Squish areas have their own lastread file name which
is not alterable), areas. This lets you specify the name of that
file. Often handy if you have two sysops and don't want to stuff
up each others' lastreads.
C11. Echotoss <filename>
───────────────────
This file is appended to every time you exit from Msgedsq; it
contains a list of the *echomail* areas you entered messages in;
one per line. Echomail processors use this information to speed
up the scanning out of echomail.
C12. Primary and Secondary Userlist
──────────────────────────────
This is the name of the userlist(s) used for looking up the
addresses of names you enter in the message header. This file is
normally created by your nodelist compiler, but it can be created
by anything. Each line must be EXACTLY THE SAME LENGTH and
sorted. The names should be left justified, with the addresses
beginning after column 40. Both are optional, with the first one
being checked first, then the second one will checked if the name
is not found in the first list.
C13. Swappath <path to swapfile>
───────────────────────────
Put the path to your swapfile here - only for DOS users but it
should definetely be used. If you don't use it, you must return
to the msgedsq directory to return to the editor.
C14. Curstart <start scanline>
─────────────────────────
This is the start scanline of your cursor. Usually 6 on EGA/VGA
displays, but can start at 0 and end at 14. I suggest using a
value of 11 here if you are using a monochrome monitor.
C15. Curend <end scanline>
─────────────────────
This is the end scanline of your cursor. Usually has a value of
7 on EGA/VGA display types, but value can go to 14. I suggest
using a value of 12 here if you are using a monochrome monitor.
C16. Nodepath <path to nodelists>
────────────────────────────
Put the path to the version 7 nodelists here. If you have more
than one, they should all be in the same directory.
C17. Nodelist <domain name> <base name> <sysop file name> ...
────────────────────────────────────────────────────────
Any version 7 nodelists are entered here. The domain name is the
name of the domain (used only when picking which nodelist to use
for lookup), the base name is the name minus the extension (ie.
nodex), and the sysop file name is the name of the sysop lookup
file. Msgedsq will only use one file for lookup, and by default
this is the first nodelist in the config file. You really only
have to bother with more than one if the zones in one domain
interfere with the zones in the other(s) - otherwise you simply
put all the domains in one nodelist.
C18. AreaFile <s[quish]|a[area]> [[path][filename]]
──────────────────────────────────────────────
You can tell Msgedsq to look for area information (Echomail and
Netmail) in other files besides the configuration file. Because
the config file is parsed from top to bottom, the positioning if
this line determines where the areas (defined in these files),
will appear in the pick list. If you specify a name, it will use
it or search for the default names (AFTER it has processed the
rest of the file). The default file names are: squish.cfg or
areas.bbs, depending on what type you chose. Please note that
you can only read one type of file. See "Area Definitions"
section for more hints on usage.
Msgedsq will obtain all area addressing information from the
squish.cfg and areas.bbs file ("-p<node>" in both files), and
will assume this address when you enter the areas. Passthru
areas will NOT be read into the picklist - they are ignored.
If you wish to use the command line, you mustn't specify a
filename on this line, because it will use this name over the
command line (this is ok, because it will also search for the
default names if one has not been specified). You can get round
this by using other config files or not specifying a name.
Whichever you prefer.
C19. Useroffset <offset into sql file>
─────────────────────────────────
This applies only to squish areas, and tells Msgedsq what record
(not byte! each record is 4 bytes), to use in the squish lastread
files. Please remember this is zero based, ie: the first record
is zero (and this is usually the sysop record on most systems).
C20. QQuotes
───────
As default, this is commented out, giving an operation much the
same as Maximus v2.0, that is: when quoting, quotes will not have
the quote prefix added to the line (text will, tho). With this
enabled, Msgedsq will attempt to find the first ">" and place
another ">" behind it on lines already quoted.
┌ Example ─────────────┐
│ " CV>> what?" │
└──────────────────────┘
C21. SqlLast
───────
Msgedsq operates the same Maximus with this line *commented out*.
It will save the message you are currently reading, so when you
return to that area, you will go to that message. With this line
*uncommented*, the highest numbered message read will be saved,
so you can miss messages when re-entering an area if you had
<crtl><rght arrow>'ed before, but had not read as far when you
went back to the downlink and continued reading.
C22. Video <type>
────────────
You can use either bios or direct screen writes to control your
screen. Bios is naturally very slow, so use direct if at all
possible (which it will be, unless you have a non-standard PC, or
a weird card). At startup it will obtain the screen dimensions
from the bios, and will use those dimensions. Therefore you can
use whatever weird dimensions you like (100x60, 80x43 etc). The
OS/2 version ignores these settings, but still gets the current
mode of the screen.
C23. Colors <type> <foreground>[+]/<background>[+]
─────────────────────────────────────────────
The first word after "color" is the name of the color used in
certain specifications. The first word after that is the
foreground colour, and the background colour is separated by a
"/" character. If a "+" trails the colour then it is a high
intensity version of that colour.
Normal
This colour is used for text that you, or others have
typed. This will account for most of the text that you,
or others have typed.
Information
This colour displays information generated by Msgedsq,
usually information of some sort.
Warnings
This colour alerts you to potentially destructive
commands. It's also used for informational messages.
Quotes
This colour denotes quoted text. Msgedsq decides if
line is a quote by looking for a ">" character in the
first 6 characters. Please note that lines considered
as quotes are treated differently when wrapping lines
greater that the screen length or quote/right margin.
Blocks
This colour designates an anchor block, used when
editing messages, for cutting out text.
Highlighted Text
This colours is for items/lines that are highlighted.
(Ie: menus etc).
The available Colours are:
bla[ck], blu[e], gre[een], whi[te], red, cya[n], yel[low] and
mag[enta]
C24. Monochrome Monitors
───────────────────
You'll have to play with this to get what you want. Remember
that monochrome monitors only have 4 colours (incl. reverse and
intense). Try this for starters:
┌───────────────────┐
│ Normal whi /bla │
│ Warn bla /whi │
│ Quote whi /bla │
│ Block bla /whi │
│ Info whi /bla │
│ Hilite Bla /whi │
└───────────────────┘
C25. Attribution <attribution line>
──────────────────────────────
An attribution line is a line containing information about the
message being quoted (the header details). This line is inserted
at the beginning of the quoted message. You can insert your own
text in this line and control the placement of information (or
lack of it) in the line via tokens. Tokens represent the point
where the information is inserted - they are preceded by the '%'
[percent sign]; the escape sequence signalling the existence of a
token. Please refer to Appendix C: at the end of this manual
for a list of all available tokens.
C26. Editor <external editor>
────────────────────────
This command allows you to specify an external editor to use
when writing messages. Your editor must accept a filename
as the first and only parameter. You may need to specify the
full path to your editor.
C27. Template <template file>
────────────────────────
This command allows you to specify a sign-off signature,
plus anything else you want, by means of a template file.
See the example template.msq file for an example of how
to do this, and also the documentation.
C28. Group <"search string"> <name index> <template index>
─────────────────────────────────────────────────────
This command allows you to define groups of areas. E.g.
you may want to have a "signoff" that says "Team OS/2"
whenever you enter a message in an OS/2 echo. You could
achieve this by going:
Group "OS2" 0 1
Where the name index, 0, is your normal name (from the
list of names you specified earlier), and the template
index, 1, is the second template file you have specified
(with the template keyword). Presumably your second template
will have a signature in it with "Team OS/2" in it.
┌──────────────────────────────────┐
D. │▒▒ Reply Functions Config ▒▒│
└──────────────────────────────────┘
With this version of msgedsq, you can now change the strings
inserted into messages by some of the reply functions (this is
separate to the attribution line discussed above). These lines
of text are actually attribution lines and use the same tokens.
Each line corresponds to an action (of a function / procedure) in
the operation of msgedsq, so they're only inserted when you
invoke that function (please note that the actions by functions
can also be altered - see next config section). The lines
available are:
Forwardline <attribution line>
Inserted when forwarding messages. This is not really a
reply function, but it's nice to be able to alter the
string. Note that this string also applies to
redirecting as well.
Redirline <attribution line>
Inserted when redirecting messages. Not a reply
function either, but you can specify the inserted
attribution line here.
Followup <attribution line>
Inserted when doing a followup or reply/comment.
(Message is addressed to the TO: name).
ReplyArea <attribution line>
Inserted when replying to a message in another area.
ReplyExtra <attribution line>
Inserted when any function has the "Extra" attribute to
it. This is user definable for whatever reasons/text
you want.
D1. AlterFunc <function> <action(s)>
────────────────────────────────
You can change the actions of any of the 4 reply functions (tho
they're already set to the normal actions by default). Please
note that this binds to that function regardless of what the key
assignment is. The functions that can be used are:
<alt><q> or "ReplyQuote"
<alt><n> or "ReplyOtherArea"
<alt><u> or "ReplyFollow"
<alt><y> or "ReplyExtra"
The other functions <alt><e> and <alt><r> are not definable. The
config verb is "AlterFunc", followed by the function name (above,
in quotes), and then the actions you wish it to do. The actions
available are:
Q - quote msg and insert normal attribution line
A - ask for area & insert "ReplyArea" attribution
F - followup & insert "Followup" attribution (address to TO:)
E - insert "ReplyExtra" attribution
Note that with the attribution lines a blank line is allways
inserted between each one inserted.
D2. Switches
────────
Most of these items are available/switchable in the <alt><s>
function in the reader. They are switches that alter the
operation of msgedsq. Items marked with a <*> are not to be
fooled with unless you know what you're doing (Ie: at your own
risk; weird things may happen). To turn a switch OFF you must
put "switch <switch name> off" in the configuration file.
Similarly, go "switch <switch name> on" to switch an option
on. In the absence of either command, a default will be
used.
Msgids
Msgids are used to uniquely identify a message coming
from your system. Unfortunately no two message editors
use the same MSGID-generating algorithm, so you cannot
guarantee that you conform to the MSGID spec unless you
have only ever used the one message editor for a
particular address in a 3-year period. Most people just
ignore this problem and use them anyway. I don't.
Seen-Bys
With this uncommented, Msgedsq will not display seen-by
and other textual information when reading or editing
messages. It will specifically discard this information
when reading the message from disk. Other textual
information includes tearline and origin line. Both of
these lines are inserted by software and not part of the
user's message. The only useful information they contain
(ie the origin address in echomail) is extracted and
normally displayed at the top of the screen next to the
user's name.
Confirm
This will cause a confirmation message to be displayed
with certain operations (like aborting message entry,
deleting messages and so-on). With this line uncommented,
Msgedsq will NOT ask you any questions when doing ANYTHING
(except when editing an already-sent message).
Showaddr
When operating in a multi-network environment, it is
often handy to know what address you are currently
using. With this line commented an address will appear
on the right-hand side of the line displaying the
current area.
Savecc
In normal CC (Carbon Copy) operation, a duplicate of
the original message is saved for re-editing sending
(along with the normal messages that are sent out).
You can stop this by uncommenting this line.
Rawcc
This is only useful if the above variable is ON (as it
is by default). If this is ON, then the raw cc: msg is
saved, otherwise the first formatted cc: will NOT be
marked kill/sent and will therefore remain.
Opusdate <*>
This will stop the date_written and date_arrived fields
being written to. This only applies to Fido areas.
Softcr <*>
This doesn't actually do anything at the moment, but if
you uncomment it, messages with passages of wrapped
text will lose spaces at the end of lines.
Tearline
This option causes tearlines (and origin lines) to be
appended to the end of echomail areas.
Hardquote
When switched on, this option causes the column formatting
to be preserved when quoting, ie it doesn't reformat
quotes.
D3. Quote <quote string>
────────────────────
This should be a sequence of characters that you would like to
the place at the beginning of each quoted line of text. There are
some tokens that are replaced with initials:
& - Replaced with all initials in quoted name.
_ - Signifies a space.
^ - Signifies first initial.
* - Signifies second initial.
Please be minimal in what you use - no point in wasting
bandwidth. See section on quoting for more info.
D4. Margins
───────
These margins are used when editing and reading messages. If you
change the screen size while in a DOS shell, be aware that only
the new length of the screen will be used. The margins will stay
the same.
Right <right margin>
The right margin will be used for normal text (anything
non-quoted), when reading and editing messages. It's
probably best to use a value close to the width of your
chosen video mode.
Quoteright <margin to quote to>
This margin is used when quoting messages. ALL text in
the quoted message will be wrapped to this margin. Use
a value about 3/4 of the right margin, so other editors
can quote your message without disturbing your quotes.
Tabsize <tabsize>
This is ONLY for use when you press the <tab> key; the
tab will be expanded into the number of spaces you
specify here. Tab characters in other messages are not
expanded.
D5. Area Definitions
────────────────
Even though you can use a squish config file or an areas.bbs file
for area definition, you will undoubtedly wish to define other
areas not in those files. Duplicate areas are detected only when
the path is the same, and if this is the case, the flags of the
later will be added to the former. The syntax is:
<basetype> <msgtype> [flags] <desc> <path> [tag] [addr]
┌─ For Example ─────────────────────────────────────────────────┐
│ squish echo "Region 55 Chat" d:\r55_chat r55_chat 3:690/626 │
│ fido mail pk "Netmail" d:\net │
└───────────────────────────────────────────────────────────────┘
The <basetype> can be either "fido" or "squish", depending
on what msgbase type it is. If it is squish, then "path"
must be the full base name (The path + name minus the
extension). The "msgtype" can be one of the following:
i. Mail
Used for netmail areas. Addresses will be
displayed for both origin and destination, and
asked for in message header entry. The userlist
file(s) will be also used to look up addresses.
You can also use this for uucp mail, as this is
where it is usually sent from (you can use a
separate type for this, but it's often easier this
way). Note that the crosspost function will not
work to this areas of this type. A tag is not
necessary.
ii. Echo
Can be used for echomail and news groups.
Crossposting can be done between such areas. Tags
ARE necessary, and if not defined, can cause weird
results.
iii. Uucp
These are much the same as netmail areas, except
the normal method of displaying the address and
name has changed. You will see the internet
address and then the name it's addressed to in
brackets. Such areas rely on the text "From: "
and "To: " being placed in the message somewhere.
All messages are addressed to the uucp gate you
specified, you then scan these msgs out as a
netmail area (using your favourite mail
processor). Tearlines are not appended.
iv. News
Similar to UUCP ares except that the messages are
not addressed to the uucp-gate. Usually you treat
this kind of area as and echomail area with your
mail processor. The advantage being you get a msg
header style better suited to internet/news msgs.
Tearlines are not appended.
[flags] is optional and defines the bits to be set
automatically when creating a message in that area. You can
turn these bits off and others on when you edit the msg
header, if you so wish. There can be NO SPACES between each
flag-type. The bits you can set are:
┌ Flags ────────────┐
│ p - priv │
│ h - hold │
│ c - crash │
│ k - kill/sent │
│ d - direct │
└───────────────────┘
<desc> is the description of the area, enclosed by quotes,
so you can have embedded spaces. The description will
appear when you use the <alt><a> function (default), with
the pick list that appears.
The location of the msgbase is defined by <path>, which is a
full path, including drives. If the area is of squish type,
the path must include the base name of the area, for
example:
┌─ Path Example ────────────────────────────────────────────┐
│ d:\msg\c_echo ; squish area, resides in \msg dir │
│ d:\msg\c_echo ; fido area, resides in \msg\c_echo dir │
└───────────────────────────────────────────────────────────┘
[tag] is necessary for echomail areas; it is used in quite a
few functions, including the creation of the echomail
tosslog. The tag of an area will be the name of the area,
as used by your favourite echomail processor. THERE can be
NO TAGS in netmail/uucp/news/local areas!
[addr] is the 5D address to use for this area; this address
will be used for origin lines, ^aMSGIDs and anything that
requires an address. It does not have to be one of your
aka's, although it is probably wise to do so (so you can
change the area back, if you decide to change the address of
the area). The address is only used in echomail and netmail
areas; if the area is echomail, the address must follow the
tag, if netmail, there must be NO tag!.
D6. Origin <origin line>
─────────────────────
Your origin line is a line of text appended to the end of
echomail messages, that identifies your system. Remember that
the address and the " * Origin:" text have to fit on the same
line, so keep it short and sweet. The entire origin line should
NOT add up to more than 80 characters. It is possible to use
different origin lines for different squish areas if you set
up a file called <area>.SQO in the same place as your
messagebase. If you omit the origin line altogether, it will
default to using your name instead.
D7. Uucp <address>
──────────────
A uucp gate is where uucp (email) messages are sent, to be gated
into the Internet. This is the 4D address of the gate. It
should be in the same domain as you (you can try otherwise, but
no guarantees). See section on Internet usage.
D8. Domain <address>
────────────────
A domain gate is similar to a uucp gate, except the gate is with
a network using a fidonet technology network. (They usually use
the same software). Messages sent with the destination domain
equal to the domain on one of these domain gates will be sent to
corresponding address, with a ^aDOMAIN kludge inserted into the
message. See section on netmail usage. You MUST specify the
domain.
D9. Gate <gate type>
────────────────
This is the bit that confuses many people (including me :-).
There are a number of ways to gate messages: domains are as above
but gating zones is a different kettle of fish. When fidonet
wasn't so big, zone information was hard to get, and mail to a
different zone had to be achieved by zone gating. The mail is
addressed to the zone gate, and a ^aINTL kludge is inserted
(which specifies the address you want to send the message and
your address). The zone gate system would then send the mail to
the other zone, and readdress it to the original address.
Msgedsq handles all this automatically for you so you don't have
to worry about it; you just enable it.
D10. Editkey and Readkey
───────────────────
These are discussed in the section about redefining the keyboard.
D11. Function
────────
This will also be discussed in the same section as above.
┌───────────────────────┐
E. │▒▒ Using Msgedsq ▒▒ │
└───────────────────────┘
Msgedsq (and msged) operate in their own peculiar way, a way
rather different to other editors (as you may have noticed). The
keyword here is `speed' - msgedsq is meant be small, fast, highly
configurable and quick to operate.
The editor operates in two modes: Reader and Editor. The reader
is operative when you're browsing through your msgbase(s), editor
when editing messages -- both have a different set of functions
and key assignments. But first up, please note: when you fire up
Msgedsq, the first screen to appear is informational, showing
your current setup. It will remain until a key is pressed -- you
should pay attention and ensure it is correct.
E1. Screen Format
The display is kept as simple as possible -- all information
needed is in the top six lines. For example:
┌────────────────────────────────────────────────────────────┐
1│ 001/003 Wed Apr 22 1992 22:33 │
2│ From: John Dennis of 3:690/613.6@fidonet │
3│ To: Count Zero of 99:999:999.9@cyberspace │
4│ Subj: Ok, I want a Job! │
5│ Attr: privileged │
6│ netmail ______________________________________ 3:690/613.6 │
│ Sorry, this is a case of no-can-do; you don't have enough │
│ experience for the job. Don't call me, I'll call you :-) │
└────────────────────────────────────────────────────────────┘
-Shortened to fit-
Going down from the top, explaining each line:
1 # of current message, total # msgs, date & any msg links
2 Origin of the message & address
3 Destination & address
4 Subject
5 Any message attributes
6 Separator for header & text. Also has current area & address
Any links to other messages will appear after the date & time
with filled-in arrows pointing in their direction. Please note
that you can turn off the display of the current address - it's
only really necessary when you're running a multiple-network
setup.
┌──────────────────────────────────────┐
F. │▒▒ Basic Usage (or a Small Primer) ▒▒│
└──────────────────────────────────────┘
Msgedsq is fairly easy to use in reader mode: simply use the
left and right arrows to move between messages. You add <ctrl>
to those keys when you wish to follow a reply thread/chain. The
<pgup>, <pgdn>, <up arrow> and <dn arrow> keys are used for
viewing the current message. When you are finished with an area,
<alt><a> will bring up the list of areas; and you can change to
any of these. Exit is achieved by pressing <esc> till you get out.
When you exit an area (via <alt><a> or <esc>), the number of the
last message read is saved in the lastread file. This number is
used when to bring you back to that message when you re-enter the
area. So be careful that you exit on the message you want to (Or
else you may lose your position).
The list function - <alt><l> - is very handy for quickly browsing
through the messages in the current area. Messages addressed to
you are highlighted so you can quickly view them without reading
the whole message area. The config file comes configured so that
a press of the enter key will bring you back to the starting
message in the area (the first message read upon entering the
area). Combine these two, and you can read your messages
quickly, press enter so as to return to the starting message,
then go check another area without losing any of your unread
messages.
There are a number of keys used for entering messages, the most
commonly used ones being:
<alt><e> - A new message.
<alt><r> - Reply to the current message (but not quote).
<alt><q> - Reply to current msg and include it as a quote.
<alt><n> - ditto, but put reply in another area.
<alt><u> - Send comments to the addressee of the current
message, quoting current message.
<alt><y> - ditto but put msg in another area.
For the reference to the key definitions, see the section
"Default Reader Key definitions". Please note: msged
strips all blank lines from the end of your message, and
then always inserts a blank line before putting in the
tearline and origin line.
F1. Quotes & Text Formatting
Quotes can cause a lot of trouble for message editors. Normal
messages are supposed to be paragraphs of text terminated by a
hard carriage return (produced when pressing the enter key). The
purpose of this is to allow editors to wrap the text on the
display to any desired margin (this also includes quoting).
Unfortunately, many editors do not comply with this and terminate
all lines with a hard return, effectively making each line a
paragraph; causing no end of troubles when one tries to wrap the
text to a margin other than the length of the line.
Msgedsq attempts to get around this by reformatting the text as
it quotes it. It works most of the time, but sometimes goes bye-
bye to mars; in which case you may have to manually edit the
quote. To help with this, you are provided with special mode
that is active whenever you are editing a quote (the line will be
displayed in the quote color); it works the same as normal text,
except that words are wrapped after the quote prefix (obtained
from surrounding lines). You do not have to worry about creating
the quote prefix yourself in most circumstances. The only
exception (to the quote mode operation) is the <enter> key: it
will split the line at the current cursor position and create a
new, unquoted line with the remaining text from the previous
line.
Please remember that the quoted lines are treated differently to
normal text; if Msgedsq considers the line a quote, it will copy
the quote prefix to any wrapped lines, sometimes causing a large
mess (if the line isn't a quote). This generally doesn't happen,
as a quote must follow certain rules to be considered one:
o There must be no '<' before the first '>'
o Punctuation characters, except '@', ' ', '-' and ':' are not
allowed.
o There can only be alphanumeric chars before the '>', subject
to the above exceptions.
o The first '>' must be within the first 11 characters of the
line.
It works most of the time, excepting the weird quote prefixes
some people use from time to time. Quote margins should be
around 65, as most (other) editors use an 80 column display.
┌────────────────────────────────────────────┐
G. │▒▒ Network Addressing (And Gates) ▒▒│
└────────────────────────────────────────────┘
When reading messages in both netmail and echomail, the address
of the sender is displayed after their name. Msgedsq does it's
best to make sure this address is correct, but it's probable that
it will stuff up every now and again. Particularly on messages
from other zones (and networks) that don't have any ctrl-a
information. This isn't so common these days, and Msgedsq makes
sure it *always* puts in this information in it's own messages.
If you're running more than one network you can use the <ctrl><w>
function to choose the address you want to use. Msgedsq will use
this address when reading messages, so that any information not
present will come from *your* address. Commonly the zone is not
present, so your zone will be used. For example:
You're reading messages from zone 28 (another network) and
these messages don't have any ctrl-a info. Your current
address is 3:690/626.4 - all these other-zone messages will
have zone 3 instead of 28. (Because the zone info is not
present in the messages themselves). If you change your
address to your zone 28 aka, then all messages will have the
correct zone.
This tends to be a problem because zone/point/domain information
for messages is not transmitted in packets. The only solution is
to have ^a (or ctrl-a) kludges with this information. The common
ones are (and msgedsq uses these):
MSGID The origin of the message (up to 5D).
REPLY The origin of the message this is a reply to (5D)
INTL The destination and origin of the message (3D).
FMPT Point number of the origin.
TOPT Point number of the destination.
DOMAIN Destination domain and address and the origin domain
and address.
The whole idea is that msgedsq gets all the network information
from these klugdes, and fills it all in for you. It works *most*
of the time. When the information is incorrect you'll have to
address the message manually (you have to do this when entering a
new message anyway). Remember that what you see on the screen is
what msgedsq thinks the address is.
If you haven't noticed already, msgedsq WILL allow default
addresses for areas -- please look-up the section on area
definitions.
G1. Network Gating
Msgedsq does three types of gating, zone, domain and internet.
Zone and Domain gating are used when addressing within fidonet
technology networks; internet gating is a bit different and
cannot be mixed with the other methods (see separate section
"Internet and Msgedsq"). Please note that if a message is marked
"crash" or "direct" it will NOT be gated.
G2. Zone Gating
Zone gating is well known, and used to be practically the
only way to get messages into another zone. This is because
while a message is in transit only 2D addressing information
is retained in the message header (the net and node). So,
to get a message to another zone (without directly sending
it), you have to send it to a zone gate; a system specially
set up to handle such mail routing. Each zone has gates into
other zones already setup with predetermined addresses.
When you have the "gate" config verb set to "zones" or
"both" msgedsq will automatically send the message to the
correct gate. The message will contain a ctrl-a kludge
(^aINTL) which contains the 3D destination address of your
message. When the message is sent into the other zone it
will be readdressed to the original destination using this
information.
G3. Domain Gating
What is it? Domain gating allows us to communicate with
other fidonet technology networks -- generally needed when
the "other" network uses the same zones as we do. Usually
you send the message to the gate system (the one that
transfers mail between the two domains), which then takes
your message and readdresses it within the other domain. To
do this we need a ^aDOMAIN kludge which contains the
destination domain's address as well as your own. To enable
this ability, you must put the domain gates in your config
file: the 4D address of the domain gate with domain it
gates. You must also have the "gate" config verb set to
either "both" or "domains". With this done, msgedsq will
gate any messages being written to disk with a destination
domain listed as one of the gates. Noate that for this to
occur the destination *domain* must be different to your own.
G4. Host Routing
This seems to be the "modern" replacement of zone gating and
works on a similar principle. Instead of being routed to
the zone gate, the message is forwarded to the nearest gate
(which may be much closer - there are about 5-6 systems
between mine and the Oz-US zone gate; there are closer
systems which call the States). There doesn't seem to be
any documentation on how this works but from what I can
gather (don't take this as gospel :-), systems simply
"forward" the mail till it gets to the destination. It's
called "host routing" because the mail is passed on to each
system's upline host, or bossnode.
You can do this in msgedsq by putting "gate none" or "gate
domains" in the cfg file. In this case, Msgedsq will leave
the binary address as-is (but still insert the ^aINTL
kludge); there should be no problems.
┌────────────────────────┐
H. │▒▒ Carbon Copies ▒▒│
└────────────────────────┘
Carbon copies, or "CC:'s" as they're commonly known, are simply a
way of sending copies of the same message to a list of people. A
CC: will work in all area types, but the addressing side is only
useful in netmail/uucp areas. Their operation is simple: you
enter the list of names, with each line preceded by "cc:", enter
the text of the message and save it. Msgedsq will stop looking
for names on the first line NOT beginning with "cc:". The rest
is automated.
┌ Example ──────────────────────────┐
│ cc: joe bloe!3:1/1, fred smith │
│ cc: mike, jd │
└───────────────────────────────────┘
The '!' character delimits an address for the preceding name, if
this is specified the name will NOT be looked up. If an address
is not present, first the aliases will be checked, then the
current nodelist, then the usual fidouser.lst. Note that with
aliases, the alias is replaced with the name, as in the
following:
(using above; assuming message was addressed to John Dennis)
┌────────────────────────────────────────────────────┐
│ * Original to: John Dennis at 3:690/626.4 │
│ CC'd to: joe bloe, fred smith, mike mad, │
│ john@miyu.dialix.oz.au │
└────────────────────────────────────────────────────┘
As you will have noticed, the "cc:" lines are deleted and a copy
of the new message is sent to all those listed in the "cc:"
lines. If you have "no savecc" commented then you will also get
a copy of the original message, marked "sent" (which you can edit
and re-send). The other messages are marked kill/sent.
The text should begin *straight* after the last "cc:" line as a
blank line is inserted after the last line entered. If the names
will not fit on the first line (they extend past the right
margin) then it will they will be wrapped to the next line. This
short form is used because normal (read: the old msged way)
looked pretty terrible & took up lots of msg text real estate. I
know some people prefer the old way... Sorry...
You can use UUCP addresses as both aliases and normal entry. If
you wish to enter a bangpath, you MUST precede it with a '@'
("at" sign), or it will be confused with a fidonet address (don't
worry, it will be stripped).
┌──────────────────────────┐
I. │▒▒ Cross Posting ▒▒│
└──────────────────────────┘
Cross posting is similar to Carbon Copies, except the message is
posted to the *same* addressee in multiple areas. It ONLY works
in echomail areas (because it uses the echomail TAG name). Entry
is similar to Carbon Copies:
┌ Example ───────────────────────────┐
│ xc: tub, maxdev, muffin, squish │
│ xc: maxutil, blah, baka │
└────────────────────────────────────┘
Msgedsq will stop looking for areas when it finds the first line
without "xc:" in the first three chars. The "xc:" lines will be
expanded to this:
┌─────────────────────────────────────────────────────┐
│ * Crossposted to areas TUB, MAXDEV, MUFFIN, SQUISH, │
│ MAXUTIL, BLAH, BAKA │
└─────────────────────────────────────────────────────┘
If you specify an area that doesn't exist the name will remain in
the list (you won't be given an error msg :-). Again, this
reduced format was chosen to reduce the amount of space taken up,
and increase readability. Advice: don't crosspost to too many
areas; or you will probably incur someone's wroth (which may or
may not be a bad thing... :).
┌─────────────────────────────┐
J. │▒▒ Internet and Msgedsq ▒▒│
└─────────────────────────────┘
Msgedsq is sort-of<tm> compatible with messages gated to/from the
internet. This means that the internet messages must be stored
in fidonet format, generally following the format UFGATE and
FredGate use (popular gating programs). You can enter internet
messages in both UUCP and netmail areas; it's your choice, tho
netmail is probably easiest to work. Smart addresses are simply
entered in the destination/origin name fields. Addressing
(fidonet style - the gate address) is handled by msgedsq - you
cannot enter them once msgedsq realizes you have entered a
internet address.
From there you simply type in the text of the message and save
it. When it is saved, a "To: " line is added to the beginning of
the text and the destination name field is replaced with "UUCP".
The destination address used is the uucp gate defined in the
config file.
When replying to messages gated from internet, the internet
address is automatically obtained from any "From: " lines in the
message's text and used for the reply.
┌───────────────────────────┐
K. │▒▒ Msgedsq and Points ▒▒│
└───────────────────────────┘
Points can work in two ways; the old fashioned fakenet method or
the newer (and nicer) 4D way. If you have to run a fakenet,
simply define it in the config file as an aka, and don't worry
about it. You MUST define your "real" point address in any case;
so your origin line and ctrl-a kludges get the right address.
The pointnet will be placed in the binary header in all messages
NOT marked "crash" or "direct". If you have a bossnode running
squish and bink 2.5, then you'll be able to run a 4D address
without any trouble (You have to set it up correctly tho - There
is a program called ESC (written by Glen Gilbert) that can manage
all this for you). Please note, that if you're using a fakenet
you *must* also put it in the squish.cfg file.
Other combinations of mailers/tossers may not work so well; i'm
reasonably sure you can manage 4D with FrontDoor. It really
depends on what your boss runs.
┌─────────────────────────────────────────┐
L. │▒▒ Default Reader Key Definitions ▒▒│
└─────────────────────────────────────────┘
Msgedsq is in reader mode at all times except when you're
actually editing a message. These keys are redefinable, unless
otherwise specified. See Appendix A for ReadKey function names.
Up Arrow Scrolls the message up one line.
Down Arrow Scrolls the message down one line.
<pgdn> Display the next page of the current message.
<pgup> Displays the previous page of the current message.
<alt><e> Enter a new message in the current area.
<alt><r> Reply/no quote to FROM name.
<alt><q> Reply/quote to FROM name.
<alt><u> Reply/quote to TO name.
<alt><n> Reply/quote to FROM name in another area.
<alt><y> Reply/quote to TO name in another area.
<alt><w> Writes the current message to device.
<alt><m> Move/forward/copy message.
<m> - Move a message to a selected area.
<c> - Copy a message to another area.
<f> - Forward a message to another person.
<r> - ditto, but make it from user.
<alt><c> Change header/text of msg, time not updated.
<alt><d> Deletes the current message.
<alt><v> Toggle display of hidden information.
<alt><f> Search for text thru current area.
Right Arrow Move to the next message in the current area.
Left Arrow Move to the previous message in the current area.
<msg number> Move to the specified message number.
<alt><a> Change area; Picklist will be displayed;
<home> Move to the first area in the list.
<end> Move to the last area in the list.
<pgup> Move the cursor up one page.
<pgdn> Move the cursor down one page.
Up Arrow Move the previous area.
Dwn Arrow Move to the next area.
<enter> Selects the area the cursor is on.
<esc> Returns to the current area.
<*> Scan all available areas for messages.
<+> Moves to the next area with unread messages.
<-> Moves to the previous area with unread messages.
<alt><l> Lists (one per line) msgs in current area;
Up Arrow Move up one message
Dwn Arrow Move down one message
<pgup> Move up one page in the listing.
<pgdn> Move down one page in the listing.
<alt><a> Toggles display-addresses (netmail).
<esc> Abort.
<enter> Goto area.
<ctrl><Lft> Move to prev msg in the current message thread.
<ctrl><Rght> Move to next msg in the current message thread.
<tab> Unconditionally go to next message in thread.
<home> Move to the first msg in the current msg thread.
<end> Move to the highest numbered message you've read.
<alt><s> Displays/alter switches.
<ctrl><a> Pick Attribution line.
<ctrl><h> Edit header
<ctrl><w> Change current address.
<ctrl><n> change current nodelist.
<ctrl><u> Change current username.
<alt><h> Read help file.
<!> Execute a dos command.
<alt><o> Shell to the operating system.
<esc> Exit msgedsq.
┌──────────────────────────────────────┐
M. │▒▒ Edit Mode Key Definitions ▒▒│
└──────────────────────────────────────┘
Edit mode is operative when editing messages. They are all
redefinable. See Appendix B for EditKey function names.
<alt><c> Cut Anchor To Current Line.
<alt><p> Paste Clipboard Into Text.
<alt><i> Import A Textfile.
<alt><w> Export Message Text To A File.
<ins> Toggle Insert/Typeover Mode.
<tab> Insert Spaces To Next Tab.
<Enter> Break Line At Cursor.
<bckspc> Backspace And Delete or (<ctrl><h>).
<del> Delete Character Under Cursor.
<crtl><t> Delete Word.
<alt><k> Delete To End Of Line.
<alt><d> Delete Current Line.
<esc> Exit To Reader Without Saving.
<alt><s> Save Message, Return.
<alt><1> Execute a single DOS command.
<alt><o> Shell To DOS.
Lft Arrow Move Cursor One Left.
Rt Arrow Move Cursor One Right.
Up Arrow Move Up One Line.
Down Arrow Move Down One Line.
<ctrl><pgup> Move To Top Of Screen.
<ctrl><pgdn> Move To Bottom Of Screen.
<pgup> Move Up One Page.
<pgdn> Move Down One Page.
<ctrl><Lft> Move Left One Word.
<ctrl><Rt> Move Right One Word.
<ctrl><home> Move To First Line Of Message.
<ctrl><end> Move To Last Line Of Message.
<home> Go To Beginning Of Line.
<end> Go To End Of Line.
<alt><b> Count bytes in message.
<ctrl><u> Undelete line.
<alt><q> Toggle quote status of line.
<alt><1> OS command.
┌───────────────────────────────────┐
N. │▒▒ Redefining the Keyboard ▒▒│
└───────────────────────────────────┘
Almost all keys are redefinable, with the exception of menu
selection, scrolling & paging, help and field editing keys.
Don't reassign keys to combinations that include escape or you
won't be able to exit.
Defining keys assignments in the configuration file requires that
you know the extended ASCII codes of the keys. A small utility
called keycode.exe has been included for that purpose: run it,
record what the keypresses produce and then exit by typing 'q'.
Key assignments are made in this form:
readkey keycode command
readkey 0x000d alast
or
editkey keycode command
editkey 0x0016 undelete
The keycode must be in the format shown above (hexadecimal).
If you don't know, the "0x" simply means that the number is
hexadecimal, and it must be there.
N1. Function Key Macros
Msgedsq is capable of executing macros, a pre-recorded set of
keystrokes that can be executed by pressing one key. Macros are
assigned to the function keys and their <crtl> <alt> and <shift>
counterparts; 40 in all. Function is a special case, it is
executed on startup. The rest are:
1-10 <f1> - <f10>
11-20 <shift><f1> - <f10>
21-20 <ctrl><f1> - <f10>
31-40 <alt><f1> - <f10>
The function number is preceded by "function" and trailed by the
macro itself. Keystroke numbers are limited only by available
memory - it is possible to store a canned message as a macro.
N2. Caveats
Macros are active throughout msgedsq's operation. Recursive
macros are not supported. Generally you can abort a macro by
pressing <esc>, but this is not guaranteed :-) The autostart
function requires an extra char at the beginning - it will be
eaten, so anything can be used.
┌────────────────────────────────────┐
O. │▒▒▒ Contacting the Author ▒▒▒│
└────────────────────────────────────┘
When contacting me for help, please think about whether you can
get an answer locally first; it saves everyone trouble. You can
send me messages in the MSGED_ECHO and netmail.
Bug reports/feedback is/are always welcome. If you can, send me
as much info as possible, rather than "it's broke!" (A waste of
everyones' time).
Most of all: _RTM_ before calling (please!). If you think
the documentation is inadequate, and you ask me for help, I
would appreciate it if you used the information I give you to
reword the documentation and send me the new doco.
┌───────────────────────────────────────┐
P. │▒▒ Hints/Panic Questions Etc. ▒▒│
└───────────────────────────────────────┘
Q. My othernetwork<tm> mail gets scanned out to my Fido
address! What the @#!*)$* is happening here?!
A. You must include all your addresses in the squish config
file. The area definitions in the squish config file must
have a -p<node> with node being the primary address for that
area. After you've checked that, check out the msgedsq
config files; if you're using squish.cfg for area
definitions, you shouldn't have any trouble. If not, make
sure you have the address on the area definition lines (see
section on area definition).
Set the show addresses switch on and go to the area in
question & have a look. If it's a netmail area, check that
you've got your squish routing file correct. If you're
using FD, you should have no worries as long as the aka's
have been defined in the FDsetup proggy. Failing all this,
ask someone... :-)
Q. I'm a point and my mail bounces back to me from my bossnode!
A. Your bossnode probably hasn't got 4D setup completely; if
your mail is coming to you with your fakenet in the seenbys,
use AddToSeen (in squish.cfg) with your fakenet address. I
have yet to see a true 4D system setup :-/ There are some
funny things that happen around here - feel free to netmail
me on this one...
Q. My messages are being routed to the zonegate, even though I
have "gate none" in my msgedsq config file. OR: My messages
aren't being routed to the right zone (when you see the
address when squish squashes the netmail area).
A. Make sure you've got all the gaterouting stuff in squish.cfg
either setup correctly, or commented out. You can see the
binary address in netmail areas when you do an <alt><l>. If
you're a point and you have pointnet defined in msged.cfg
(and you're setup as 4D in squish), make sure you have the
fakenet addr defined as an Address in squish.cfg. This gets
pretty confusing, I know, but it's all a matter of setting
squish so that it knows where the addresses in your msg are
coming from.
Q. My mailer is barfing on some really weird zones and point
addresses from my *.msg netmail areas. This never happened
until I used msgedsq!
A. Some mailers (and editors) use and undefined part of the
*.msg header for zone and point information. Msgedsq (and
Maximus, Squish and many others) use this for the
date_written and date_arrived fields. You can turn this off
by putting "no opus" in your msgedsq config file.
Q. I keep on losing my cursor when I shell to dos then return.
A. Due to the large number of cards floating about, msgedsq is
only (known to be) compatible with EGA and VGA video
adapters. If you can provide me with a way (in asm, or C)
to identify your card *and* turn off/on the cursor, I will
attempt to put it in future versions of msgedsq. However,
if you know what the your cursor size is, use the curend and
curstart config file verbs to set up your cursor size...
Q. When squish is tossing in the background I sometimes get
empty areas, even tho I know there are messages in them.
A. Squish (from what I can observe), keeps as many areas open
when tossing to the msgbases; and when open it locks them
from access to other programs. If this happens, you will
have to retry opening the area (<alt><a> and picking it
again), until squish has finished with it. If squish locks
a msgbase while you are in it, you may have troubles writing
to the msgbase. I would suggest that you NOT write while
the msgbase is locked (this usually only happens when squish
is tossing/scanning to a msgbase), although it *should* be
safe (Msgedsq does use the MsgAPI released by Scott).
Of course, you can't tell if the msgbase is locked until
something happens... Msgedsq will try to detect this and
will stop and then ask you to try writing again.
Q. I was in an FIDO area with squish was running in the
background. When I tried to go to the next msg/prev msg,
msgedsq locked up & required reboot to continue...
A. Msgedsq did NOT lock up; simply, the messages that it was
trying to go to (stored in internal list) were not there
anymore; squish probably deleted them/it (kill/sent). To
get out of this, use <alt><l> to find a message that is
there, and then re-scan the area.
Q. I'm trying to send msgs to a UUCP gate, and the msgs seem to
be not set up right... I have the domain gates set up in the
config file!
A. UUCP and domain gating are NOT compatible, or even the same
thing! Domain gating is only for messages into FTN
networks; UUCP gating requires a few other kludges for it to
work. You MUST set up the UUCP gate ("uucp <gate>") in
msged.cfg for it to work. Addresses are entered in the name
field (ie: john@miyu.dialix.oz.au), not the address field.
P1. Hints
Points: If you can (bossnode running 4D aware mailer/tosser)
then remove pointnets from sight in msged.cfg. If
you have to (areafix?) then use the pointnet as another
address, and switch to it when needed.
Multitasking: If you're running a multi-tasking system with
users online, and squish tossing etc; you should
rescan the current area if you know some new msgs
have been written (and you want to read them).
Msgedsq keeps an internal list of msgs, and this
will need to be updated to reflect the msgs every
now and again...
┌───────────────────────────────────────────┐
│▒▒ Appendix A: ReadKey Function Names ▒▒│
└───────────────────────────────────────────┘
ReadKey Commands
next_area goto Next area with unread msgs.
last goto highest read message in area.
view toggle veiwing of hidden notes.
search find a text string.
reply reply to current message (no quote).
export write current message to file.
list list messages in area.
exit exit program.
next go to next message.
followup reply/comment to TO: name.
first goto first message in msgbase.
chnodel change lookup nodelist.
previous goto previous message.
link_to goto up-link for message.
home goto first message in reply chain.
delete delete current message.
quote reply/quote current message.
dos do a dos command.
change change current message.
prev_area goto previous area with unread messages.
chngaddr change current address for area.
attrib choose attribution line.
slast goto last message in area.
name change the username.
areas change area (with picklist).
link_from link downwardsfrom current message.
shell go to an operating shell.
newmsg create a new message.
move get move menu.
config change msged switches.
null do nothing.
scan scan areas for new messages.
repoth reply to message in another area.
u-next go to uplink from current msg (no menu).
astart go to first msg read when entering area.
┌───────────────────────────────────────────┐
│▒▒ Appendix B: EditKey Function Names ▒▒│
└───────────────────────────────────────────┘
backspace move vursor back one, deleting current char.
left move cursor left one char.
wordright move cursor one word right.
newline add a hard return and goto begining of next line.
down move cursor down one line.
pgdn move cursor down one page.
goeol move cusor to end of line.
anchor create anchor for cut/paste.
quit quite the message editor.
import import text (from file) into editor.
shell goto operating system shell.
insert toggle insert mode.
tab move cursor tab spaces to right.
top goto top of page.
first move cursor to top of message.
del delete char under cursor.
toggleq toggle quote status of line.
deleol delete everything to end of line.
right move cursor right one char.
wordleft move cursor left one word.
up move cusror up one line.
pgup move cursor up one page.
delline delete current line.
cut cut from current line to the anchor point and add
to the clipboard.
paste paste from clipboard to current position.
abort abort editing of message.
export write text in clipboard to file, or if no text in
clipboard, write whole message.
gobol move cursor to the beginning of line.
undel undelete line (last 30 are saved).
null do nothing.
bottom move to the bottom of page.
last move tolast line in message.
killword kill word under cursor.
bytecount display total bytes in message.
oscmd Do an os command.
┌───────────────────────────────────────────┐
│▒▒ Appendix C: Template Token Names ▒▒│
└───────────────────────────────────────────┘
%yms // year msg
%yno // year now
%mms // month msg
%mno // month now
%dms // day msg
%dno // day now
%wms // weekday msg
%wno // weekday now
%tnm // time msg normal
%tnn // time now normal
%tam // time msg atime
%tan // time now atime
%ofn // orginal from name
%off // original from first name
%otn // original to name
%otf // original to first name
%osu // original subject
%ooa // original origin address
%oda // orginal destination address
%fna // from name
%ffn // from first name
%fad // from address
%tna // to name
%tfn // to first name
%tad // to address
%sub // subject
%una // current user name
%ufn // current user first name
%uad // current user address
%ceh // current echo tag (before area change)
%oeh // old echo tag
%ims // iso date of message
%ino // iso date now
%cms // 4-digit year of message
%cno // 4-digit year now
┌───────────────────────────────────────────┐
│▒▒ Appendix D: Origin Line philosophy ▒▒│
└───────────────────────────────────────────┘
A number of people have asked why the treatment of origin lines
is different in this version of MSGED. The reason is as follows:
Originally, all control information was stored in the header of
the message. That is where you will find the date that the
message was written, for example.
Then the designers realised that they needed to specify more
information, which they hadn't allowed room for in the header
(and there was no expansion capability in the header). So they
decided to intrude on the user's text. However, to distinguish
between what the user wrote and what was control information,
they prefixed the control lines with x'01'. This makes for a
clear distinction between control information and user text.
Unfortunately, when it came time for expansion to provide
echomail, the designers DIDN'T put a x'01' in front of the new
control lines that they created, which is completely mad. It is
far too late to change that now, so we have to live with the
following abortions:
Area line, e.g. AREA:MSGED_ECHO
Tearline, e.g. --- msged/sq
Origin line, e.g. * Origin: Big BBS (3:666/666)
SEENBY lines, e.g. SEEN-BY: 711/934 809
There is no doubt that these lines are control lines, as they
are governed by an FTS spec (FTS-4), and are always inserted
by software (ie the user never types " * Origin: xxxx" when
they post messages from your BBS, to make sure they conform
to the appropriate spec - ROFL!).
Now the way MSGED works is that it adds the control information
whenever you save the message. It strips all the old stuff and
adds the new stuff. However, it is very difficult (actually it
is impossible if tearline and origin line are not compulsory,
which they may or may not be, depending whose interpretation of
the spec you use) to determine whether a line beginning "---" is
a control line (ie inserted by software) or whether the user
typed it in. Ditto for Origin and SEENBY, and even AREA. The
way MSGED 2.2e handled the situation was to delete all lines that
started "SEEN-BY:" regardless of whether the user typed them in
or not, and if it found any occurrences of "---" or "* Origin"
in a message that was not brand new, it would assume that these
messages already had a tearline, and not insert a tear or origin.
ie, if you want to see MSGED/SQ 2.2e get fooled, just go in and
create a message and save it (after which it will have got a
tearline and origin inserted), go and type "--- something" on
a line near the top, go and delete the "---" down the bottom,
and you will find it does not insert a tearline, and your
message is technically invalid, according to some interpretations
of FTS-4 (my interpretation says that both tearline and origin
line are compulsory, others think they are both optional). In
either case, MSGED/SQ is designed to insert them.
Anyway, to ensure that there is NO doubt whatsoever as to which
bit is user-text and which bit is control information, without
having to make arbitrary decisions like "don't let the user
type "---" or "SEEN-BY" etc", I did the following:
1. Add the SOT/EOT kludge lines to bracket the user text.
2. Don't (normally) display the origin, tearline or seenbys.
Thus if you are set up this way (ie you have "switch soteot on"
and "switch seen-bys off") then you will never see anything in
the text space except user text, ie what you were originally
meant to see! Furthermore, you can enter "---" or any other
text, and MSGED knows that it is ALL just user text, and will
not try to treat that as a control line.
However, if you choose to display this control information,
then it means the user-text has been corrupted with control
information, which means it needs to be stripped out before
adding a new tearline and origin line. That is why if you
enter "---" in a message and you have "switch seen-bys on",
then that line will be deleted. Since "---" is just normal
ascii text, you probably don't want it to be stripped,
therefore, don't pollute your user text with control information
by switching seen-bys on!
Similarly, if you switch soteot off, then there is no way, when
reading a message from disk, to tell whether a "---" is a tearline
or a bit of user text, so it will be stripped unless it is
bracketed with SOT/EOT. So I suggest you don't lose the clear
bracketing of user-text, and instead make sure you have soteot
switched on.
Actually, it is pretty silly even having the distinction between
control information which is prefixed by x'01' and that which
isn't. It would be more appropriate to have just the one
"shownotes" which shows either all of the control information,
or none of it. I may make this change in a future release of
MSGED/SQ.
BTW, there is some useful control information in the origin line,
namely the origin address. MSGED extracts this information and
displays it next to the "from" name. Which means the only thing
that isn't displayed is the free-format text in the origin line,
which is meant to contain the system name (although some people
put something silly there instead). If you want to see the
origin line for it's joke value, I suggest instead that you FREQ
JOKES01.ZIP from my system, or one of the many other joke files
that are around, or tag AUST_HUMOUR, or the international HUMOR
echo. If you want to know the system name (or sysop name), then
I could use the address and do a lookup of the nodelist and
display that under the "AREA" line, if there is a lot of demand
for that. It's a waste of a line in my opinion. What I would
then do is put "(P9) system name" if the address was a point off
a system, rather than the exact address.
In summary, I strongly recommend:
switch seen-bys off
switch soteot on
One other note. Anyone who transmits SOT/EOT signifies that any
x'8d' in a message is a real character, not a soft-CR. MSGED/SQ
picks up on this and will display x'8d' on a message that has
SOT/EOT, but delete them on messages without. This is of
importance to non-English-speaking countries who use that character
as part of their alphabet. Both Russia and Japan are two countries
that I know of that use this character.
┌────────────────────────────┐
│▒▒ Appendix E: Credits ▒▒│
└────────────────────────────┘
The following people have contributed significantly to MSGED.
There are probably others, but I don't remember them at the
moment, or never did (before my time). I just didn't want the
recent work of some people to go unmentioned:
Jim Nutt, for the original version
John Dennis, for the squish version
Paul Edwards, for the 32-bit OS/2 port
Bill Grimsley, for updating the documentation
Bill Bond, for enhancements and bug fixes
and indirectly, Scott Dudley for the MSGAPI which is used to
access Squish (TM) areas.
┌──────────────────────────────────────┐
│▒▒ Appendix F: Miscellaneous Notes ▒▒│
└──────────────────────────────────────┘
This section is for random things that haven't been merged into
the documentation. It's free format, because otherwise you
won't get anything. It also might not be accurate.
You can go '*' in the area list.
You can edit the message header with ctrl-h or something.
You can have origin lines for different areas by using *.SQO,
or else AREAS.BBS.
You can continuous scroll up in the message list with the mouse.
There may or may not be a keystroke that does ROT13, but there is
a rotate function you can assign a key to at any rate.
You can use "Colour" instead of "Color" if you would rather use
English instead of an abortion.
End of MSGED/SQ Documentation