home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
XLAX_256.ZIP
/
XLAXDIFF.DOC
< prev
next >
Wrap
Text File
|
1992-07-19
|
12KB
|
322 lines
XLAXDIFF
Express Nodelist Update
Copyright 1987, 1988
By Scott Samet
Friends of Dorothy 1:135/990
This is a program to apply the weekly update NodeDiff files to the
matrix NodeList. It's designed to be fast and easy to use. On my 8
Mhz XT clone, it unarchives and applies a typical update in 45
seconds.
XlaxDiff is part of XlaxNode. It's not a free program, and it's never
supposed to be distributed without all of the files. If you didn't
get all of these files, you have an illegal copy:
NODELIST.DBF, PCP.DAT, PCP.DOC, PCP.EXE, PCP.INP, PCP.S12,
PCP.S24, READ.ME., XLAXDIFF.DOC, XLAXDIFF.EXE, XLAXNODE.CTL,
XLAXNODE.DOC, XLAXNODE.EXE, XLAXNODE.OVR
NOTICE
This version expects an IBM PC Compatible BIOS or some reasonable
facsimile. It also expects to find a copy of ARCE somewhere in the
DOS Path. Command line switches allow use of other unarc programs and
on non-PC-Compatibles.
License / Warranty
The program and associated documentation are Copyright. It may only
be distributed as part of the XlaxNode archive. The full license and
warranty terms for XlaxNode and XlaxDiff are contained in the
XlaxNode.Doc file.
What does it do?
XlaxDiff takes the most recent NodeList and applies any higher
numbered NodeDiff files, producing a new NodeList. If it encounters
any NodeList or NodeDiff archive files along the way, it extracts the
files it needs.
OPERATION
If you have ARCE (the "official-un-official" Opus unarchive program)
in your DOS path, and you have NodeList and NodeDiff in your currect
path, just type XLAXDIFF and let it rip.
If you are into all the bells and whistles, XLAXDIFF accepts arguments
on the command line:
/G
By default, this version uses IBM PC BIOS calls for the
video display. The /G switch on the command line will force
the use of ANSI escape sequences. Machines without PC BIOS
support, such as the Z-100 or DEC Rainbow MUST use the /G
switch.
XLAXDIFF Page 1
XLAXDIFF Page 2
/O=[path\][filename]
Path and/or file name (no type) to use for the old NodeList.
The default is NodeList in the current directory.
/E=[path\][filename]
Path and/or file name (no type) to use for the updates to
the the NodeList. The default is NodeDiff in the current
directory.
/N=[path\][filename]
Path and/or file name (no type) to use for the new (output)
NodeList. The default is the path and name of the old
NodeList. The day number of the highest update file will be
used as the file type.
/A[=[path\][filename]]
Indicates an archive containing the new (output) Nodelist is
to be created. A path and/or file name (no type) may be
specified. If omitted, the path and file name of the new
nodelist will be used. The first character of the type will
be replaced by the letter 'A'. Using an archive program
name on the /X switch does NOT force an archive to be
created.
/X=[[path\]progname][,[[path\]progname]]
Name of the archive programs to be used. The first is the
program to use for unarchiving files, the second for
archiving files. If omitted, ARCE and ARCA will be assumed.
Path and file names are significant, file type will be
ignored. If the path is omitted, the DOS Path will be
searched.
/L
Leave: Any files extracted from archives are to be left in
the current directory when the program is done. Normal
action is to delete these work files.
/C
Cleanup: The input Nodelist and Nodediff files are deleted
if the program completes and the output file passes the CRC
check. The only file left will be the new Nodelist (and
archive, if requested).
ERROR CODES
XlaxDiff returns an error code to DOS. This code can be tested by the
IF ERRORLEVEL test in a batch file.
LEVEL DESCRIPTION
0 Updates applied without error.
1 No work to do: No NodeDiff file present or NodeList
later than all NodeDiffs.
XLAXDIFF Page 2
XLAXDIFF Page 3
2 NodeList/NodeDiff file sequence broken by missing
file.
3 Error renaming output file.
4 Checksum error in output NodeList. Usual cause is
corrupted Nodelist input file.
5 Other errors, including:
o Command line syntax error.
o NodeDiff file format error.
o Archive or Unarchive program error message.
BUGS, PROBLEMS, COMPLAINTS, SUGGESTIONS and COMPLIMENTS
Hopefully there will not be a lot of the first three. Be sure to tell
me the what version of the program you are running and the NodeList
and NodeDiff numbers causing the problem. If you think that the error
message might be helpful, XlaxDiff output can be piped, so just say:
XlaxDiff > Bug.Rpt
Before you send a bug report PLEASE read the list of common problems
below. 95% of the reports I receive are traced to one of the items on
the list.
Archive (ARC, ZIP, LHA, ARJ) the stuff up, make YOUR node number part
of the file name, and send it down the net.
Bug reports with unidentified archives, or missing program version
number or other supporting information will be sent to NUL.
Common Problems
Nogate's PAK utility causes "Disk Read Errors". As part of its effort
to locate the latest files, XlaxDiff looks inside everything it
suspects might be an archived NodeList or NodeDiff. PAK creates
files that are close enough to ARCs that they confuse XlaxDiff. If
you have files compressed with PAK, you must extract their contents
yourself, PLUS make sure the compressed files are located in a
directory where XlaxDiff will not find them.
ZIPs, LZHs, ARJs. Fidonet standards specify that nodelist files are
compressed by ARC. No slight against any of these programs, but
XlaxDiff does not support them. If your nodelist supplier is
compressing files with a non-standard utility, you will have to unpack
them yourself.
Missing Diffs. I'm frequently asked "I missed NodeDiff number xyz.
How do I merge the next one?" You don't. This has nothing to do with
XlaxDiff. The NodeList/NodeDiff scheme only works if you have all the
parts. If you miss a NodeDiff, you have no choice but to get a
complete copy of the current NodeList.
XLAXDIFF Page 3
XLAXDIFF Page 4
CRC errors. Please folks, I can't emphasize this enough. Not one CRC
error has ever been traced to a problem with XlaxDiff. Every single
one has been traced to a problem with the NodeList or NodeDiff files.
Every blasted one. Some problems are technical: phone lines, batch
files, archivers, mailers and the like.
By far, the most common source of CRC errors is the computer keyboard.
NODELIST and NODEDIFF FILES MUST NEVER BE EDITED.
NODELIST and NODEDIFF FILES MUST NEVER BE EDITED.
That's right, I said it twice, but some people will miss it. The
NodeList/NodeDiff scheme just doesn't have any provision for making
manual changes to the files. There are cases where NC's and even RC's
(almost always new ones!) have corrected phone numbers or flags before
passing them down the line. As a result, an entire net or region had
CRC problems. Before you panic, check with others in your net to see
if they had CRC problems, too.
There's no practical treatment for the CRC-Blues. You need to get a
good clean copy of the NodeList and start from there.
NodeList/NodeDiff Selection Logic
Here's the actual logic: The program determines the latest files by
using the day number that is part of the file names. For the year end
logic to work correctly, the range of day numbers should not exceed a
six month period.
First, it determines the latest NodeList and NodeDiff files. If the
NodeList is later than or equal to the NodeDiff, the NodeList is
unarced, if necessary. If the /A switch is specified, the NodeList is
(re)archived. Otherwise, if the /C switch is specified, the input
NodeList archive is deleted.
If a later NodeDiff exists, it is opened and the first line read.
That line contains the number of the NodeList to which the updates
apply. If no NodeList with that number exists, then a check is made
for a NodeDiff. If a NodeDiff is found, that NodeDiff is opened and
the process is repeated until a NodeList is located. If the program
cannot find an unbroken chain of NodeDiff files leading back to a
NodeList file, then it aborts.
Example 1:
You have NodeList.245, NodeList.252, NodeDiff.245 and
NodeDiff.252 in the current directory. There's no NodeDiff
higher than the higest NodeList, so the program exits.
Example 2:
You have NodeList.238, NodeDiff.238, NodeDiff.245 and
NodeDiff.252 in the current directory. NodeDiff.252 refers to
list #245, NodeDiff.245 refers to list #238 and NodeDiff.238
refers to list #231. In this case, the program follows the chain
from NodeDiff.252 to NodeDiff.245 to NodeList.238 and will apply
the two NodeDiff files and create NodeList.252 in the current
directory. NodeDiff.238 is not needed.
XLAXDIFF Page 4
XLAXDIFF Page 5
Example 3:
The same as Example 2, except the NodeList file is #224. The
program follows the chain from NodeDiff.252 to NodeDiff.245 to
NodeDiff.238. There is no NodeList.231 or NodeDiff.231, so the
program is unable to apply the updates.
Example 4:
You have NodeList.360 and NodeDiff.002 in the current directory.
Since the time span from 360 to 002 (seven days) is less than the
time span from 002 to 360 (358 days), NodeDiff.002 will be
considered the latest file. If NodeDiff.002 refers to
NodeList.360, the update will be applied; otherwise the program
will issue an error message.
XLAXDIFF Page 5