

				  DSTDIFF.EXE
		 DarkStar Technologies Node Difference Processor

		     Copyright 1994, DarkStar Technologies

				   Version 1.X

Introduction
-=-=-=-=-=-=

	DSTDiff was written a while ago to fill a void, xlaxdiff had failed
on a recent nodelist.  While shortly afterwards an update was produced, I
wanted to write one at the time for two reasons: First it seemed silly for
there to be a limit on the size of nodelist that could be processed, and
second, I had no idea how the nodediffs worked.

        So after getting and sifting through all of the ftsc doc's I set out
to build a 'quick and dirty' processor.  Well, the initial version was exactly
that, it got the nodediff's complied but that was it.  After a couple more
weeks of coding I had something a little more robust.

Registering
=-=-=-=-=-=

        Please see the register.txt file for more information.

Legal Stuff
-=-=-=-=-=-

        Please see the legal.txt file for more information.


What DSTDIFF does...
-=-=-=-=-=-=-=-=-=-=

	DSTDiff takes a nodelist and applies multiple nodediffs to it.	That's
it, nothing else.

	Of course it has all kinds of options on how to do this, including pre
and post processing of the files, but at the basic level it only really does
one thing.

How to use DSTDIFF...
-=-=-=-=-=-=-=-=-=-=-

        DSTDiff is run from a standard DOS prompt, in it's most basic form it
takes no command line arguments.  In it's most complex form, it takes a single
command argument.

	DSTDIFF [<nodelist name>]

	If a nodelist is supplied on the command line then that will be used as
the starting point to add nodediffs to.  If no nodelist is specified, then
DSTDiff will use the newest one it finds.

How to configure DSTDIFF...
-=-=-=-=-=-=-=-=-=-=-=-=-=-

        Ahh, now here's the meat of the program, an INI file called DSTDIFF.INI
is located in the same directory as DSTDiff and has all of the options
contained in it.  Here's a break down of what each one does ( you can use a
standard text editor to edit the file ):

[Options]
SharedFileTimeOut=60				How long to retry using a file,
						0 means to try forever.  This
                                                is only a concern if two
                                                programs are trying to access
                                                the same files at once.
TempDirectory=C:\NODE				Where to put temporary files,
						including uncompressed nodediffs
						and nodelists.
DecompressNodeListsAndDiffs=TRUE		If the nodelist/nodediff is
                                                compressed then DSTDiff will
						first uncompress then for you
						if this is set to TRUE,
						otherwise set it to FALSE.
PathToDiffs=C:\NODE				Where to search for nodediffs
PathToLists=C:\NODE				Where to search for nodelists
DeleteNodeDiffs=TRUE				Whether or not to delete the
						nodediffs once they have been
						applied.
DeleteOldNodeList=TRUE				Whether or not to delete the
						old nodelist once it has been
						updated.
ArchiveNewNodeList=TRUE 			Whether or not to compress the
						new nodelist once done.
NewNodeListArchiveName=C:\TEMP\NODELIST.ZIP     What to call the archive for the
						new nodelist ( full path is
						optional ).
DeleteNNLArchiveIfExists=TRUE			Whether or not to delete the
						old nodelist archive if one is
						found.
NNLCommentFile=F:\RA\UTILITY\THMBBS.ASC 	The name of the file that will
						be used for the comment of the
						archive if the archive type
						allows it.
NNLArchiver=1					Which archiver to use to
						compress the new nodelist, see
                                                list of archivers a bit farther
						down.
MoveNNL=TRUE					Should the new nodelist be moved
						from the temp directory, note
						that this is separate from the
						archive option, you could have
						DSTDiff create the archive to
						update your download areas and
						then move the nodelist to your
						nodelist directory update
						your mailer/BBS.
MoveTo=C:\TEMP					Where to move the new nodelist
						to.
OverwriteExisting=TRUE                          If one already exists
						should DSTDiff overwrite it?
RenameWithMove=TRUE				Should DSTDiff rename the file
						when it is moved?
NewName=FIDONET.NL                              If so what should the new name
						be ( do not include the path )
NodeListName=NODELIST				What is the old nodelist name
NodeDiffName=NODEDIFF				What is the old nodediff(s) name
NewNodeListName=NODELIST			What is the new nodelist name

[Archivers]					This is a list of archivers
1=PkZip 					that are available to use.
2=Arj
3=PkArc
4=LhArc

[PkZip] 			The archiver specific information that is needed
Compress=pkzip ^d ^s -ex > NUL	to perform the operations.  They are as follows:
Uncompress=pkunzip ^s ^d > NUL
Comment=pkzip ^d -z < ^s > NUL		Compress - line used to compress files
AS1=80						   into an archive. Where ^d is
AS2=75						   replaced with the archive
AS3=-1						   name and ^s is replaced with
AS4=-1						   the filename to add to the
						   archive.
[PkArc]
Compress=pkarc a ^s ^d > NUL		Uncompress - line used to decompress
Uncompress=pkxarc ^s ^d > NUL			     files from an archive.
AS1=26						     Where ^s is the archive
AS2=8						     file, ^d is the file to
AS3=-1						     extract.  ^s & ^d are
AS4=-1                                               replaced by DSTDIFF.

[Arj]					Comment - If the archiver supports
Compress=arj a ^d ^s > NUL			  comments then add this line,
Uncompress=arj x ^s ^d > NUL			  if not leave it out.	^d is
Comment=arj c ^d -z^s > NUL			  replaced by the archive name
AS1=96						  and ^s is the comment file.
AS2=234
AS3=-1					AS1 -> AS4 - are the autosense
AS4=-1						     characters used to
						     determine what kind of
[Lharc] 					     archive we are dealing with
Compress=lha a ^d ^s > NUL			     these are the first four
Uncompress=lha x ^s ^d\ > NUL			     characters of the archive.
AS1=34						     If a -1 is placed in one
AS2=-1						     of these, that character
AS3=45						     is skipped.
AS4=108

        The autosense characters should never have to be modified.  However,
they can be easily obtained by taking several archives from the desired archiver
and, using a disk editor, looking for a pattern in the first four characters.


