home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
qqp124.zip
/
QQLINK.DOC
next >
Wrap
Text File
|
1994-04-03
|
22KB
|
498 lines
##### #####
## ## ## ##
## ## ## ## ## ###### ## ## ## ## V1.24
## ## ## ## ## ## ### ## ## ##
## #### ## #### ## ## ## # ## ####
##### ##### ## ## ## ### ## ##
### ### ##### ###### ## ## ## ##
*** The Documentation ***
---{ 1 }---------{ Introduction }---------
Welcome to QQLink - a reply linker for use with the "Squish" mail
processor by Scott J Dudley. If this doesn't make much sense to you,
might have just downloaded the wrong archive - from here on I'll be
assuming that you run, or are about to set up a Fidonet BBS or point
with Scott's software. If some of this is unfamiliar, read Squish.PRN
first, it's got a good basic explanation of what's going on.
QQLink is quite a simple programme - if you haven't already, go and set
up the rest of your mail software. Things will tick along quite happily
without it (not that you won't notice the lack!).
---{ 2 }---{ What QQLink does for you }---
One of the problems with Fidonet echomail, and similar media such as
Usenet's news is that of threading - jumping forward to a message's
reply/replies, back to its original, between replies to the same
message etc. Unlike a local BBS message area, message numbers, and even
the order of messages may vary, so some tricky method must be used,
first to uniquely identify messages in a way that does not vary from
system to system, and secondly to use this information to encode the
structure of a reply thread into message packets.
In Fidonet, this is accomplished by the use of hidden "kludges", called
MSGID and REPLY. These are defined in the standards document "FTS-0009".
Formerly, it was common practice to build the reply links by guessing
from the subject lines of messages - ie. if a message has the subject
"Re: Wibbling and widgets", then the next message with the same subject
becomes its reply.
Needless to say, this has some disadvantages, but this is what Squish
will do! For example, often a thread of discussion will split into two
or more subthreads on different topics, but with the same subject line.
Using Squish's builtin reply linking, all the messages in both threads
will become jumbled into one. Also, in situations where a user will not,
or cannot quote others, attempting to find what they were replying to
could become a nightmare.
QQLink solves all this, and additionally, almost always links faster than
Squish (QQLink stands for Quick sQuish Linker).
The speed factor is gained by storing link information in an additional
8K file for each area linked. This is a very good tradeoff - most
echomail areas take up considerably than this, so an additional 8K is
negligible - Squish takes the same approach to storing its
dupe-database.
---{ 3 }------{ How you use QQLink }------
Simply drop QQLINK.EXE into whatever directory you keep Squish in. You
can test it out by manually linking an area. If your Squish.CFG file is
in the current directory, simply enter
QQLink TUB
Or QQLink <some area on your system> if you don't receive the TUB echo.
QQLink will automatically read the path to the echo you specify, and its
type (Squish or *.MSG) from your Squish.CFG or AREAS.BBS. You'll see a
progress report as the area is linked, and a final report on the number
of messages linked in this pass, with the percentage of messages in the
area that have FTS-9 kludge lines. If this percentage is below about 70%,
you should consider using a different link mode, /SUBJ or /MIXED (see
below).
If you have a Squish configuration file called something other than
Squish.CFG, you can specify it using the -c command line switch (see
below)
This manual linking isn't going to be much use if you receive multiple
megabytes a day, however. So the best thing to do is add a call to
QQLink to the batch file you use to process inbound echomail packets.
Make sure Squish is generating an EchoToss.LOG file - the following
should suffice:
change Squish IN OUT
to Squish IN OUT -fechotoss.LOG
if you are using Squish in multipass mode, or doing any other stuff,
consult your Squish.PRN.
After the call to Squish in your batch file, enter the following:
QQLink -fechotoss.LOG
DEL echotoss.LOG
If you have other programmes using EchoToss.LOG, make sure they go in
*before* the DEL! QQLink will now run automatically to link any incoming
messages - messages posted by you are assumed to be linked by your BBS
or editor software (this is true for Maximus, Pobble, and all editors
I'm aware of that use the Squish format).
Use of a disk cache with all mail processing software is STRONGLY
recommended.
---{ 4 }---{ Command line parameters }----
QQLink now accepts a wide variety of command line parameters: here's a
description of each, in gory detail (for a quick reference to some of
the more common ones, run QQLink with the /HELP or -? parameter).
$<pathname of a Squish style messagebase> or
*<pathname of a *.MSG style messagebase>
: Links the messagebase specified, even if it is not listed in
your Squish.CFG file. This might be useful if you use multiple
netmail areas with a utility like NetMgr, or if you wish to link
some local areas for some reason.
-c<filename> or /CFG:<filename>
: Sets the path to your Squish configuration file to be
<filename>. QQLink reads a lot of important information from
Squish.CFG, including the paths, tagnames, and formats of all
your areas, and the path to your AREAS.BBS if you have one.
-a<filename> or /AREAS:<filename>
: Sets the path and filename of an AREAS.BBS format file to be
read in addition to or instead of a Squish.CFG configuration
file. This switch overrides the "AreasBBS" configuration verb in
Squish.CFG. You could use it to run QQLink with a *.SQ? or *.MSG
format mail processor other than Squish (QMail or IMail for
example).
-f<echotoss> or /LOG:<echotoss>
: Specifies a file containing a list of area tags, seperated by
carriage return/line feed pairs - the areas specified will be
linked in this run of QQLink.
-x<echotoss> or /XLOG:<echotoss>
: Specifies a file containing a list of area tags, seperated by
carriage return/line feed pairs - the areas specified will be
excluded from linking in this run of QQLink.
The /LOG and /XLOG parameters are parsed in left to right order
in the command line, so "QQLink -flog1.log -xlog1.log" will link
no areas, but "QQLink -xlog1.log -flog1.log" will link every
area specified in LOG1.LOG
Multiple log parameters may be used: "QQLink -flog1.log
-xlog2.log -xlog3.log -flog4.log" will link all those areas
specified in LOG1, EXCEPT those that are found in either LOG2 or
LOG3, AND the areas in LOG4, regardless of whether they are also
in LOG2 and LOG3.
-o<echotoss> or /OUT:<echotoss>
: Specifies an EchoToss.LOG format file to write the names of
the areas actually linked to. If the file you name already
exists, it will be appended to.
-k or /KILL and -k- or /NOKILL
: These switches turn on and off deletion of the EchoToss.LOG
files referenced by the /LOG and /XLOG switches, in case you are
averse to using the DEL command for some reason. The default is
off, and the command line is parsed from left to right, so
"QQLink -k -fLOG1 -k- -xLOG2" will, when QQLink finishes
linking, delete LOG1, but not LOG2.
-u[parms] or /UGLY[:parms] controls use of screen colours.
: This switch allows you to control QQLink's use of colour, via
ANSI codes. By default, if you have ANSI.SYS or an equivalent
driver installed, QQLink will display its output in pretty
colours. To supress this, you may specify the -u or /UGLY
switches with no additional argument.
You may also customize QQLink's use of colour, by specifying a
5-character argument to these parameters, of the form "TLSHE"
where T = the "Title" colour
L = the "Linking" colour
S = the "Summary" colour
H = the "Help" colour
E = the "Error" colour
Each of these characters can be one of K,R,G,B,Y,C,M,W,D, which
represent black (K), the primary colours (Red, Green, and Blue),
the secondary colours (Yellow, Cyan, Magenta), White, and
Default. If the character used is uppercase, a bright colour
will be displayed, if lowercase, a dim colour.
Examples: QQLink -uRWBdd (a patriotic scheme)
QQLink /UGLY:RrRyB (a socialist one)
-r or /RELINK
: Relinks *every* message in the areas linked, re-creating the
.QQL link information file from scratch. This could be useful if
your .QQL file became corrupted somehow, or you wanted to
benchmark QQLink's straight linking speed.
QQLink may need to relink your areas should you change linking
methods, or upgrade to a newer version, but it can detect these
conditions for itself; method and version information is stored
in the .QQL file.
-n or /CLEAN
: Removes any old reply linking information from each message
linked (by default, the old links will be merged with the new).
In the normal course of operation, this will not make any
difference, as new messages arriving on your system have no link
information, but it will make a difference if you use some other
linker, or are /RELINKing the area.
You might want to use the /RELINK /CLEAN combination if some
buggy software has damaged the reply links in your area. /CLEAN
will also be useful if you want to change an area from being
solely subjectline linked to being solely FTS-9 linked, removing
any old subjectline linkages before linking the area.
-l or /ALL
: Links every area on your system (including netmail areas).
This switch is exactly equivalent to listing every area in your
configuration files on the QQLink command line.
-pt or /LINKPASS
: Link passthru areas if asked to. Without this switch, attempts
to link passthru areas will be ignored. This was the default
behaviour of QQLink v1.22 and below (oops).
-S or /SLOW
: Link slowly, without creating a .QQL file. If you have a very
large number of areas, some of which receive very little
traffic, slow linking can save you space by decreasing the
number of .QQL files QQLink needs to maintain. Slow linking is
only marginally faster than other linkers (ie. much slower than
QQLink's normal pace).
-s or /SUBJ
: Selects ("Old-style") linking with subjectlines, rather than
the FTS-0009 MSGID and REPLY kludges. Although this linking
scheme has its problems, and does not use the Squish format to
its greatest potential, in areas where the kludges are not
widely supported in others' software, there may be nothing else
for it.
Because of its "incremental linking" features, QQLink is still
significantly faster than Squish at subjectline linking.
-m or /MIXED
: Selects "Mixed mode" linking with both MSGID/REPLY and subject
lines. This method is a "best of both worlds" that attempts to
link messages with MSGIDs according to FTS9, and "guesses" via
subject lines at the most appropriate original message for all
others.
I've had extremely varying results with this... it seems to work
very well in areas with simple threads, and comparatively few
FTS9 compliant messages. However, with complex threads involving a
roughly equal proportion of FTS9 and non-FTS9 messages, it
merely added to the confusion. Your mileage may vary.
I think everyone who's commented on previous versions of QQLink
has asked for a feature like this; so here it is! The only
trade-off is that use of the mixed mode linking scheme doubles
the length of .QQL files to slightly less than 16K.
-t<name> or /TOALL:<name>
: Selects a to-name that will be assumed to indicate that a
message is not a reply (such as "ALL"). Messages addressed to the
specified name will not be linked to an earlier message, unless
they have an explicit REPLY kludge (in mixed mode). This feature
is turned off by default. The /TOALL switch has no effect in FTS9
linking mode.
-T<number> or /TRUNC:<number>
: Truncates subject lines to <number> characters before linking
in mixed or subjectline mode. This is handy where you often
receive messages from people with "Fido Ignorant" message
editors which truncate subject lines (eg. SLMR).
---{ 5 }-----{ Advanced Techniques }------
1) Using different linking methods for different areas.
If you carry a number of varied areas, or subscribe to an
Othernet (as I do) where FTS9 identification for messages is not
widely used, you might want to link some areas with FTS9 style
linking, and some with subjectline linking. You might even, (God
forbid!) want to link some areas with QQLink, and some with some
other software.
This is now possible, through the use of the /XLOG: (-x) and
/OUT: (-o) commandline parameters. For example, suppose I want
to link the areas LINK, BBSCMNTS, and OCCULT with subjectline
linking, and all others with FTS9: I could create a file called
SUBJLINK.LOG, and run QQLink as follows
QQLink -fechotoss.log -xsubjlink.log -olinkdone.log
QQLink /SUBJ -fechotoss.log /KILL -xlinkdone.log
...
DEL echotoss.log
The first invocation of QQLink links (using MSGID/REPLY) those
areas specified (by Squish) in echotoss.log, excluding those in
SUBJLINK.LOG. The list of areas linked is output to
LINKDONE.LOG. The second run links the remaining areas (those in
ECHOTOSS but not LINKDONE) by subjectline, and deletes
LINKDONE.LOG when it's finished.
Using this method to link some third set of areas with /MIXED
mode, or with another reply linker altogether are left as an
exercise for the reader.
2) Running multiple reply linkers.
A couple of correspondents have alerted me to the fact that, as
QQLink does not delete old reply links in a Squish messagebase
it's possible (though very slow) to run "Squish LINK" over
areas, and then follow up by linking with QQLink, thereby
gaining some of the advantages of FTS9 style linking, while not
leaving MSGID-less messages unlinked.
Of course, QQLink now has /MIXED mode which accomplishes the
same effect much, much faster.
You might want to try running some other kind of linker (are
there any? EIDs perhaps?) with QQLink going over the top... If
it just makes a mess, you can delete the messed up links by
running QQLink over the area with the /CLEAN /RELINK parameters.
3) Running QQLink under OS/2.
Ralf Brandt of 2:2410/104.3 has sent me a binary and source diff
for his OS/2 port of QQLink, which compiles under IBM's Cset
compiler. I don't run OS/2, and *can't* answer for the binary,
but it's requestable from 3:771/340 as QQLINKP
Source is also available - the magic name is QQLSRC You can create
a DOS executable with any of Borland's C compilers; Watcom and MSC
ports shouldn't be hard. GCC ports are only for the fearless.
4) Linking your NETMAIL area.
QQLink treats the Netmail area specified in Squish.CFG as just
another echomail messagebase. You can cause QQLink to link it by
specifying the "name" of your netmail area on the commandline,
or in an EchoToss.LOG file specified with the -f or /LOG:
parameter.
I just run QQLink as
QQLink -fechotoss.log NETMAIL
each time it runs - if NETMAIL has no new messages, QQLink takes
a mere fraction of a second to open and close it.
5) Using the "QQLINK=" environment string
You can specify any commandline parameters on a "QQLINK" DOS
environment string. The environment string is processed before
(ie "to the left of") the real command line for purposes of the
/LOG, /XLOG, /KILL and /NOKILL switches.
As an example, my AutoExec.BAT contains the following line:
set QQLINK=/CFG:c:\squish\squish.CFG -uGggCW
6) Full screen configuration utility.
Just kidding :)
---{ 6 }---------{ Why QQLink? }----------
At the moment I am aware of two other products that do the same job as
QQLink - Squish itself, and David Nugent's SQLink programme. I've
already discussed the shortcomings of Squish's linker, primarily lack of
support for FTS-0009.
I ran SQLink for most of the time since I started my Maximus BBS, until
I developed QQLink to overcome certain problems with SQLink, mainly its
godawful slowness when linking large areas. This is mainly because
SQLink will relink and scan all the messages in an area, as it has no
way of knowing a) where it left off last time, or b) what the MSGIDs of
all those already linked messages are.
QQLink gets around this by storing this information in a ".QQL" file,
either called <AREA>.QQL for a Squish base, or <AREA>\QQLINK. for a
*.MSG base, where <AREA> is the name of the area. For example, the
Squish area \MAIL\NET would consist of: \MAIL\NET.SQD, \MAIL\NET.SQI,
\MAIL\NET.QQL, and so on.
These .QQL files are usually much smaller (8K) than the rest of the
area, so you won't be losing much space. The gain is tremendous - If you
receive 20 new messages in an area where you keep 500, QQLink will link
only the new 50, as opposed to SQLink's working on all 500. In these
circumstances, QQLink would take just 4% of the time SQLink took. For
smaller areas, such as when used on a point, QQLink will still be around
10 times as fast as SQLink, doing the same job.
---{ 7 }-----{ Changes since v1.00 }------
v1.01: Fixed miscellaneous anomalies in config file parser.
v1.10: Added subject linking and XLOGs.
v1.20: Added mixed linking, outlogs, "clean linking", pretty colours,
environment string, caching of message headers, changed memory
model.
v1.21: Fixed commandline parsing bug, added $<path> and *<path>
parameters. Kludged subject & mixed linking to work better...
v1.22: Fixed a variety of bugs, attempted to fix reported bugs that I
couldn't get to happen myself. OS/2 version should be coming
soon!
v1.23: Not generally released.
v1.24: Passthru areas will now not be linked by default. QQLink should
deal better with *.MSG areas. Subject lines will be "massaged"
before linking: converted to lower case, "re:" stripped, optionally
truncated.
v1.24B: Source code merged with Ralf Brandt's OS/2 port.
---{ 8 }------------{ Cost }--------------
Like Squish itself, QQLink is FREEWARE. I retain copyright, but grant
anyone who wishes to the right to use and distribute it, provided:
No charge is levied for copying QQLink above and beyond the
actual costs of disks or other media, or subscription to a BBS
from which QQLink is downloaded.
This file, QQLink.DOC, and the accompanying executables are not
modified in any way, except to place them in a compressed or
archived format.
Of course, QQLink carries no implicit or explicit warranty. I can only
guarantee that it will take up your disk space.
If you admire QQLink or use it regularly please send a postcard to the
snailmail address below - I welcome feedback and would like to see how
far around the world QQLink progresses, if it does.
If you regularly use QQLink in a commercial environment, add a bar of
chocolate to the postcard. 8-)
---{ 9 }-----{ Reaching the Author }------
I can be reached at any of the following addresses:
FidoNet:
Josh Parsons at 3:771/340
If you have a simple question about QQLink, you might post it in
TUB, as there are other people there who may be able to help.
SnailMail: (ie. post)
Josh Parsons
42 Glen Rd
Kelburn
Wellington 6005
New Zealand
---{ 10 }-------{ Acknowledgements }-------
Thanks to:
Robert Ruthven for encouraging me.
Ewen McNeill for providing me with my fidonet feed.
Scott J. Dudley for writing Squish and the MSGAPI (great stuff).
All the folks in TUB.
USA readers for putting up with my spelling of "colour" and
"programme".
Squish, and Maximus are trademarks of Scott J. Dudley.
Fidonet is a trademark of Tom Jennings.
Made in New Zealand. O~~\
/ \_/