home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-10-23 | 87.5 KB | 2,910 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- █████████ █████████ ███ ███████
- ░░░░░██░░ ░░░░░██░░ ██░██░ ██░░░░██░
- ██░░ ██░░ ██░ ██░ ██░ ██░
- ██░░ ██░░ ██░ ██░ ██░ ██░░
- ██░░ ██░░ █████████░ ███████░░
- ██░░ ██░░ ██░░░░░██░ ██░░░░░░
- ██░░ ██░░ ██░ ██░ ██░
- █████████ █████████ ██░ ██░ ██░
- ░░░░░░░░░ ░░░░░░░░░ ░░ ░░ ░░
-
- Version 6.6
-
-
- ZIP/ZOO/ARC/PAK Converter
- (And More!)
-
- Copyright (c) 1989,91
- Ross Neilson Wentworth
- All Rights Reserved
-
-
-
-
-
-
-
-
-
- Chapter One
-
- License Agreement
-
-
- In the past I have not requested money to use ZZAP unless it was
- used in a commercial environment. However, due to its increased
- popularity with the resultant increase in phone calls with
- questions, I am forced to change my licensing policy. This new
- policy supersedes all previous agreements for the licensing of
- ZZAP.
-
- You may use ZZAP on a trial basis for up to 30 days freely. You
- may give it away to anyone you wish so long as you do not charge
- for it or use it as an incentive to buy. If, after the 30 day
- trial period, you wish to continue to use ZZAP, a registration
- fee is required (see the file ORDER.FRM for details).
-
- Payment should be by check or money in U.S. funds drawn on a U.S.
- bank. I can not be responsible for cash that is sent through the
- mail. Printing the file "ORDER.FRM" will produce an order form
- that you can use to register ZZAP. Send your registration and/or
- inquiry to:
-
- Ross Neilson Wentworth
- 1422 Elkgrove Circle, #3
- Venice, CA 90291
- (310)399-1244
-
-
- The latest version of ZZAP can be found on West Los Angeles BBS,
- (310)838-9229.
-
- Even if you do not wish to register I would appreciate hearing
- from you. A simple postcard listing your likes, dislikes,
- suggestions, and the version number is all that I ask.
-
- The terms "arc", "archive", "unarc", etc. are used throughout
- this document. They are considered generic terms for all
- archiving types and formats. Any declaration that any of these
- terms are proprietary will be construed as a ridiculous statement
- and be properly ignored.
-
-
-
-
-
-
-
-
-
- Chapter Two
-
- Summary of Features
-
-
- o Automated conversion between the most common archive types
- (ARC, ARJ, DWC, ICE, LBR, LZH, MD, PAK, SDN, SQZ, ZIP, and
- ZOO), including self-extracting archives.
- o Automatically converts nested archives including nested
- archives of different types. A switch is provided to
- disable this feature.
- o Optionally convert archives in multiple subdirectories
- (subdirectory recursion).
- o Accepts wild-card designations and multiple file names on
- the command line.
- o Repack archives to same type.
- o Renames or moves corrupted archive for later examination.
- o User defined arcing and unarcing options.
- o Deletes old archives by default, options to keep them.
- o Optional logging of ZZAP activities to a text file.
- o Optionally create a text file listing the archives
- converted, suitable for use by filter programs to update
- the file list as used by BBS programs.
- o Flag archives containing files with Hidden, System, or
- ReadOnly attributes as "bad" or optionally strip the funny
- attributes.
- o Can automatically check an archive for viruses using the
- virus scanning program SCAN.EXE (version 39 or later) from
- McAfee Associates.
- o Optional 32-bit CRC testing of program files adds an
- additional layer of protection from viruses, trojans, and
- the like.
- o The standard input of programs that are executed can be
- redirected from a file to allow the automatic addition of
- an archive comment (currently this only works with ZIP
- files, I think).
- o Can take advantage of expanded memory (LIM 4.0 driver
- required) or extended memory (XMS driver required) to
- reduce the memory overhead while executing the archiving
- programs.
- o Processing can be skipped on archives that are more than a
- configurable number of days old.
- o External programs can be defined to be executed before
- and/or after each archive is processed.
- o Configurable for additional archiving programs.
-
-
-
-
-
-
-
-
-
- Page 2 Chapter 2. License Agreement
-
-
-
-
-
-
-
-
-
- Chapter Three
-
- Running ZZAP
-
-
- The basic syntax of ZZAP is:
-
- ZZAP [switches] filespec [filespec ...]
-
- Where [options] is any of the optional command line switches and
- filespec is a file name, wildcard specification, or the name of a
- file indicating a list of files. A "list" file is signified by
- preceding the file name with the '@' character, for example:
-
- ZZAP @newfiles.lst
-
- You can mix filespecs on the command line, giving a combination
- of specific file names, wildcards, and list files; limited only
- by the length of the command line (80 characters):
-
- ZZAP AFILE.ZOO *.LZH @UPLOADS.LST
-
- To halt ZZAP press the ESCape key. Conversion of the current
- archive will be completed and ZZAP will halt.
-
- Every attempt has been made to supply a universally acceptable
- configuration file (ZZAP.CFG). Everybody, of course, has
- personal preferences so you may wish to modify it for your
- special needs. Consult the chapter on the configuration file for
- information on customizing ZZAP operations.
-
- If you wish to log the activity of ZZAP you need to specify the
- full path and file name of the log file. See the chapter Logging
- ZZAP Activity for details.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 3. Summary of Features Page 3
-
-
-
-
-
-
-
-
-
- Chapter Four
-
- Archive Programs Supported
-
-
- Currently, there are a multitude of mostly incompatible archiving
- utilities available. While a standard would be beneficial to the
- BBS community, it's not likely to occur in the near future.
-
- To help cope with the different formats and to make conversion
- from one to another easy I wrote ZZAP. It allows conversion from
- one format to another, quickly and painlessly. ZZAP doesn't
- actually do any conversion on its own. Rather, it acts as a
- shell around the archivers - automating the process.
-
- The archive programs and version numbers tested under are:
-
- ARJ 2.00
- DWC A4.95
- ICE 1.14
- LHARC 1.13
- LUE 2.20 (extraction only)
- MD (unknown version number - tested by user)
- PAK 2.0
- PKPAK/PKUNPAK 3.61 (a.k.a. PKARC/PKXARC)
- PKZIP/PKUNZIP 1.10
- SQZ 1.08.2
- ZOO 2.01
-
- Other formats should work if properly configured but there is no
- guarantee. If you run across an archiving program that does not
- work under ZZAP I would like to hear about it so I can make the
- necessary modifications.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 4 Chapter 4. Running ZZAP
-
-
-
-
-
-
-
-
-
- Chapter Five
-
- Configuration File
-
-
- ZZAP relies on a configuration file (ZZAP.CFG) to know how to arc
- and unarc. There are a number commands allowed in the
- configuration file, three of them are required (ARC=, UNARC=, and
- DEFAULT=) and the rest are optional. The order of the commands
- are unimportant.
-
- Each command is on its own line. Placing multiple commands on a
- single line will result in improper operation. A configuration
- file is included with this package that may be used as-is or may
- be modified for your personal preferences.
-
-
- 5.1 ARC=
-
-
- ARC= defines the command used to archive. This command can
- appear as many times as required to define all of the various
- archive types you may use. The syntax for this command is:
-
- ARC=EXT PROGNAME OPTIONS
-
- EXT represents the filename extension used by this particular
- archiver, PKZIP, for example, uses ZIP. Do NOT include a leading
- period.
-
- PROGNAME is the name of the actual archiving program. If the
- filename extension is not given the a search will be made for
- both COM and EXE. Including the extension will improve the
- performance of ZZAP.
-
- OPTIONS is the command line options used to create an archive.
- ZOO, for example, uses "-ADD" while PKPAK uses "-A". Since some
- archiving programs use both upper and lower case letters to
- represent different actions, this item's case is left intact.
- OPTIONS also may include the "%1" to indicate where the archive
- files name should be placed on the command line. In previous
- version the archive name was appended to the end of the command
- line if the %1 was omitted. This is no longer true, now you MUST
- specify the %1 if you wish the archive name on the command line.
-
- If you wish to redirect the standard input or output of the
- archiving program then put the redirection command at the end of
- OPTIONS. ZZAP allows three types of redirection: > redirects the
- output, < redirects the input, and >> appends redirection to the
- indicated file.
-
-
-
-
- Chapter 5. Archive Programs Supported Page 5
-
-
-
-
-
-
- The following are all legal ARC= commands:
-
- ARC=ARC PKPAK -A %1 *.*
- ARC=DWC DWC.EXE AZ %1 *.*
- ARC=PAK PAK A %1 *.*
- ARC=LZH LHARC.EXE a %1 *.*
- ARC=ZIP PKZIP -A -EX
- ARC=ZOO ZOO.EXE -ADD %1 * >NUL
- ARC=ZIP PKZIP.EXE -a -z %1 *.* >NUL <HEADER.ANS
-
- The last two examples have their display output redirected to the
- NUL device, resulting in the normal output to not be displayed.
- The last example has its standard input redirected from the file
- "HEADER.ANS". THE -z option of PKZIP is the add archive comment
- command. The contents of the file will be used as the archive
- comment.
-
- Note that if there is an error when attempting to open a file for
- redirection a second attempt will be made to redirect using the
- NUL device. This is so that PKZIP (and possibly other programs)
- won't sit and wait for input from the keyboard.
-
- See also COMSPEC.
-
-
- 5.2 UNARC=
-
-
- The next command is UNARC=. This is the commands to unarc the
- various types of archives. This command can appear as many times
- as necessary to define all the archive types you may use. The
- syntax for this command is:
-
- UNARC=EXT PROGNAME OPTIONS
-
- EXT is the extension used by this type of archive.
-
- PROGNAME is the name of the program used to extract files in the
- archive.
-
- OPTIONS is the command line options used to extract files from
- the archive. As with the ARC command, "%1" may also be included
- to indicate the position of the archive file name.
-
- If you wish the display output of the unarcing program to be
- redirected you should list the redirection command last.
-
- For unarcing to work with ZZAP it MUST extract all files in an
- archive if a filename is not given after the archive name.
-
-
-
-
-
-
-
-
- Page 6 Chapter 5. Configuration File
-
-
-
-
-
-
- The following are all legal UNARC commands:
-
- UNARC=ARC PKXARC.EXE
- UNARC=DWC DWC E %1 *.*
- UNARC=LZH LHARC.EXE e
- UNARC=PAK PAK E %1 *.*
- UNARC=ZIP PKUNZIP.EXE %1 >NUL
- UNARC=ZOO ZOO -EXTRACT %1 >NUL
-
- The last two examples have their display output redirected to the
- NUL device.
-
- Subdirectories
- It is recommended that you turn on creation of subdirectories if
- the archive format supports storing subdirectories along with
- file names. This is to allow ZZAP to detect the subdirectories
- and treat the archive as BAD. If the unarc program allows all
- files to be placed in a single subdirectory a file name conflict
- can arise, resulting in the unarc program stopping and waiting
- for keyboard input to verify a file overwrite. This could
- potentially stop your computer dead, leaving the BBS system off-
- line until manually continued.
-
- The unarc program MUST allow the subdirectories created to be
- children of the temporary subdirectory.
-
- UNARC=ZIP PKUNZIP.EXE -d %1 >NUL
-
- This example causes PKUNZIP to create subdirectories if the
- information is stored with the file names. ZZAP will detect the
- creation of any subdirectories, log the error message, move the
- archive to the BAD subdirectory, and clean up (remove all files
- and subdirectories extracted from the archive).
-
- If the unarc program creates the subdirectores anyplace besides
- in the temporary subdirectory ZZAP will not be able to detect
- them, the contents of the new archive will be incomplete, and the
- subdirectories created will remain on your disk.
-
- See also COMSPEC.
-
-
- 5.3 DEFAULT=
-
-
- This is the default extension used to decide which archiving
- format to convert to. The extension given must match one of the
- extensions given with the ARC= command. If a match is not found
- the program will halt with an error. The syntax for this command
- is:
-
- DEFAULT=ext
-
- where ext is the file extension corresponding to an archive type.
-
-
-
- Chapter 5. Configuration File Page 7
-
-
-
-
-
-
- The following are legal DEFAULT commands:
-
- DEFAULT=ZIP
- DEFAULT=ZOO
- DEFAULT=.ARC
-
- Note that the preceding period is optional.
-
- You can override DEFAULT= with the command line switch /E.
-
-
- 5.4 NESTED=
-
-
- You can modify how nested archives are handled with this command.
- The following options are valid (choose only one):
-
- TEST The nested archive is tested but not converted.
- SAME The archive is repacked to its same type.
- CONVERT The archive is converted to the default type.
-
- If you omit this command from the configuration file the default
- operation is CONVERT. Nested archives are always ignored
- (treated as a normal file) if you disable nested archives
- processing with /N-.
-
-
- 5.5 WORKDRIVE=
-
-
- Specify the drive to use for temporary files with this command,
- e.g.:
-
- WORKDRIVE=E:
-
- If you use a RAM disk be sure it's very large so that it doesn't
- fill up when archives are temporarily expanded. If the drive
- does become full the archive being converted/tested will be
- flagged as "bad".
-
-
- 5.6 NESTEDARC=
-
-
- Controls how nested archives are handled. This command accepts
- three options:
-
- TEST Nested archives are tested only.
- SAME Nested archives are repacked to the same type.
- CONVERT Nested archives are converted to the default type.
-
- If this command is omitted from the configuration file the
- default action is CONVERT. The /T, /O and /N switches will
- affect the action of this command. /T will cause the entire
-
-
-
- Page 8 Chapter 5. Configuration File
-
-
-
-
-
-
- contents of the archive to be tested only, no conversions. /O
- will cause the archive to repack to the same same, nested
- archives included. If /N- is specified nested archives will be
- treated as a normal file, not an archive.
-
-
- 5.7 BADDIR=
-
-
- Whenever an archive fails to unarc properly it will be renamed to
- so the second character of the extension is "!", e.g. "Z!P". By
- default the file is kept in its original subdirectory. If you
- wish bad archives to be placed in a special subdirectory you may
- use the BADDIR= command. Simply name the subdirectory you wish
- to use. This subdirectory must already exist for this option to
- work properly. Example:
-
- BADDIR=C:\BAD
-
- The defined subdirectory can be on a different drive but if the
- file move is unsuccessful the file will simply be renamed to have
- the normal bad extension (the default mode).
-
-
- 5.8 VIRUSDIR=
-
-
- If an archive fails the virus check the archive will be placed in
- the subdirectory named here. If this command is not included in
- the configuration file the archive will be placed in the
- directory specified with the BADDIR= command or will be renamed
- with the '!' in the extension if BADDIR= is not specified. The
- subdirectory must already exist for it to be used, ZZAP will not
- create the subdirectory for you.
-
- VIRUSDIR=C:\VIRUS
-
- The defined subdirectory can be on a different drive but if the
- file move is unsuccessful the file will simply be renamed to have
- the normal bad extension (the default mode).
-
-
- 5.9 SWITCH=
-
-
- Use this to specify your default command line switches. For
- example, if you always use the virus checking options you can
- place this in your configuration file:
-
- SWITCH=/V+
-
- You can always override the options on the command line:
-
- ZZAP /V- file.ext
-
-
-
- Chapter 5. Configuration File Page 9
-
-
-
-
-
-
- The command line always takes precedence over the configuration
- file.
-
-
- 5.10 FIXER=
-
-
- Specify the name of your BBS download list fix-up program and
- command line options with this command. For example, if you are
- running a QuickBBS bulletin board system you can specify
- FIXER=QFIX.EXE (included in this package).
-
- Include any command line options needed immediately after the
- fix-up program name. For example, to automatically update the
- 4DOS description file the proper syntax would be:
-
- FIXER=QFIX.EXE DESCRIPT.ION
-
- This command is only needed if you plan on using the /C command
- line switch.
-
- See also COMSPEC.
-
-
- 5.11 AGE=
-
-
- If this command is used then only files that are within the
- specified number of days old will be processed. For example,
- setting the age to 1 (AGE=1) will result in only files that are
- one day old (files with today's date ONLY) to be processed by
- ZZAP.
-
- Sysops who have an "event" at midnight will generally wish to set
- AGE= to 2, allowing files from today and yesterday to be
- processed. When using this feature you should use the /DO
- command line switch (keep original dates of files). Assuming you
- stamped the files with the date they are uploaded, this would
- guarantee that only new archives are processed.
-
- Omitting this command or setting AGE=0 results in the age of a
- file to be completely ignored.
-
- See also the /I command line switch.
-
-
- 5.12 PRE=
-
-
- If you wish an external program executed to process an archive
- before its files are extracted declare the program name and
- command line options with this command.
-
- PRE=GETCMTS.EXE %1
-
-
-
- Page 10 Chapter 5. Configuration File
-
-
-
-
-
-
- With the above example the hypothetical program GETCMTS.EXE will
- be execute with the archive name passed as the command line
- parameter. The specified program will be executed while in the
- same subdirectory as the archive being processed (regardless of
- the command line parameters).
-
- If the DOS return code returned by the PRE= program is exactly
- 101 further processing on the file will be skipped. This could
- be used to run a program that detects for authenticity
- verification information (e.g. -AV option for PKZIP) since ZZAP
- will lose the AV information if it rebuilds an archive.
-
- This program, as well as programs defined by MID= and POST= will
- be executed for nested archives as well. You should avoid
- creating files in the temporary subdirectories ("Z.I_P" is
- created as a child of the subdirectory holding the archive being
- processed) as these files will be added to the new archive
- (unless that is what you wish done).
-
- While testing ZZAP I often use a "PRE=MAPMEM.EXE >\MAP" to get a
- memory map of the system while shelling to an external program.
- This helped me to optimize memory usage so that the maximum
- amount is available.
-
- See also MID=, POST=, and COMSPEC.
-
-
- 5.13 MID=
-
-
- If you wish an external program executed after files have been
- extracted from the old archive but before the new archive has
- been created declare the program name and command line options
- with this command.
-
- MID=DIRSORT.EXE NE
-
- With the above example the program DIRSORT.EXE will be executed
- with the command line option of NE. You can execute a batch file
- via the command processor (normally COMMAND.COM) by specifying
- %COMSPEC% as the filename. This is useful for deleting those
- silly BBS ads that seem to propagate unchecked throughout
- archives. For example, in ZZAP.CFG:
-
- MID=%COMSPEC% /c bbsads
-
- If your batch file is not somewhere on the PATH you should
- include the path in the filename. In your batch file called
- BBSADS.BAT:
-
- IF EXIST STUPID.AD DEL STUPID.AD
- REM repeat for BBS AD filename
-
-
-
-
-
- Chapter 5. Configuration File Page 11
-
-
-
-
-
-
- The specified program will be executed while in the temporary
- subdirectory ZZAP creates to hold the extracted files. If you
- create any temporary files you should clean up afterwards,
- otherwise the file(s) will be added to the archive when it is
- repacked.
-
- See also PRE=, POST=, and COMSPEC.
-
-
- 5.14 POST=
-
-
- If you wish an external program executed to process the new
- archive after it as been created (or repacked) declare the
- program name and command line options with this command.
-
- POST=PUTCMTS.EXE %1
-
- With the above example the hypothetical program PUTCMTS.EXE will
- be executed with the archive name (the new name) as the command
- line parameter. The specified program will be executed while in
- the same subdirectory as the archive being processed (regardless
- of the command line parameters).
-
- The main intent of the PRE= and POST= commands is to allow third
- party programmers to create programs that extract archive
- comments from the original archives and then put them into the
- new archives. Since these are format specific I didn't want to
- program these types of operations into ZZAP.
-
- See also PRE=, MID=, and COMSPEC.
-
-
- 5.15 SFX=
-
-
- Defines the offset and "signature" to search for in an EXE or COM
- file to verify if it is a self-extracting archive. The
- parameters are:
-
- SFX=ext offset signature
-
- For example, for ZIP version 1.10 self-extracting archives the
- parameters are:
-
- SFX=ZIP 50 PKWARE
-
- The extension you specify will determine which unarc program is
- used to extract the files in the archive. The offset is a
- decimal number indicating the position in the file that the
- signature is found at. The signature is any combination of
- characters that can uniquely determine if the archive is that
- specific SFX type.
-
-
-
-
- Page 12 Chapter 5. Configuration File
-
-
-
-
-
-
- Multiple definitions can be given for the same extension, thus
- allowing different versions to be supported. For example most
- SFX archives come in two flavors, regular and junior. The offset
- and/or signatures are usually different for each type, though the
- same unarc program can be used for either type.
-
- The signature can be regular ASCII characters (case is
- significant) as well as the following special characters:
-
- ^ Species a control character, e.g. ^A is
- replaced with ASCII byte value 01h.
- # Place numbers between a pair of these to
- indicate a specific ASCII value, e.g. #13#
- for ASCII character 13 (decimal).
- / The following character is used as is. Must
- precede the /, ^ or # character, e.g. /^
- when you want an explicit ^ character.
-
-
- 5.16 NONSFX=
-
-
- By default, executable files (EXE and COM) which are not
- recognized as self-extracting archives are treated as "bad". If
- you would prefer to have these files ignored include
- NONSFX=IGNORE in the configuration file. Leaving out this
- command or including NONSFX=BAD will result in executables to be
- treated as "bad" if they are not self-extracting archives. Note
- that executables inside an archive are NEVER treated as bad even
- if they are not SFX.
-
-
- 5.17 NESTEDSFX=
-
-
- You can have ZZAP check for SFX signatures in executable files
- contained inside an archive by including NESTEDSFX=YES in the
- configuration file. Note that many programs include automatic
- installation programs that rely on certain files being SFX and
- converting these files will probably break these programs (though
- they are rare). Alternately, you can have archives with nested
- SFX files flagged as "bad" and placed in the bad archive
- subdirectory (or renamed), giving you the opportunity to manual
- examine the archive and decide if it should be converted or left
- alone.
-
- The valid options for this command are:
-
- NESTEDSFX=YES ; test for nested SFX
- NESTEDSFX=NO ; don't test for nested SFX
- NESTEDSFX=BAD ; treat nested SFX as "bad"
-
-
-
-
-
-
- Chapter 5. Configuration File Page 13
-
-
-
-
-
-
- 5.18 SCANOPT=
-
-
- Place, after this command, any command line options you wish
- passed on to SCAN.EXE when it is executed. The given options
- will be added after the subdirectory to scan exactly as shown in
- the configuration file. For example, if you have this in the
- configuration file:
-
- SCANOPT=/A /NOMEM
-
- SCAN will be executed as:
-
- SCAN pathname /A /NOMEM
-
-
- 5.19 WORKDRV=
-
-
- Use this directive to specify a different drive and/or directory
- for temporary workspace. If you specify a directory it must
- already exist. If you use a RAM disk as the work drive be sure
- it's large enough to hold the entire uncompressed contents of the
- largest archive you will be converting.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 14 Chapter 5. Configuration File
-
-
-
-
-
-
-
-
-
- Chapter Six
-
- Logging ZZAP Activity
-
-
- If you wish ZZAP to run unattended (see EVENTS below) then you
- may wish to log its activities. You must specify the drive full
- path and file name of the log file in the environment with the
- ZZAPLOG variable. In your AUTOEXEC.BAT file you should place
- this (or something similar):
-
- SET ZZAPLOG=C:\LOG\ZZAP.LOG
-
- The actual file name will depend upon your system configuration.
-
- The first time the log option is used the log file is created.
- On subsequent runs new information is appended to the end of the
- file.
-
- The log file is a standard ASCII file that may be viewed, edited,
- printed, etc.. The long form log file (enabled with the /L
- switch) contains information about the files converted, their
- original and new sizes, differences in archive sizes (savings or
- loss), as well as error messages. The short form log file only
- contains error messages.
-
- See also the /L command line switch.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 6. Configuration File Page 15
-
-
-
-
-
-
-
-
-
- Chapter Seven
-
- Executing Compsec
-
-
- Any time you declare, in the configuration file, a program to be
- executed you have the option of using %COMSPEC% to indicate to
- ZZAP to execute DOS (normally COMMAND.COM). With this feature
- you can execute a batch file instead of a single program. For
- example:
-
- FIXER=%COMSPEC% /C FIXUP %1
-
- If FIXUP is a batch file it will be executed with the archive
- name passed as the parameter. The /C option is to tell DOS to
- return to the calling program (ZZAP) when execution has been
- completed.
-
- Caution! When you execute COMSPEC any error codes returned by
- programs will be unseen by ZZAP.
-
- See also PRE=, MID=, and POST=.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 16 Chapter 7. Logging ZZAP Activity
-
-
-
-
-
-
-
-
-
- Chapter Eight
-
- Command Line Options
-
-
- There are a number of command line options that allow you to
- customize the behavior of ZZAP. These options can also be
- declared in the configuration file using the SWITCH= statement.
- Command line options override configuration file options.
-
- With the exception of the /E and /D switches, each option is a
- forward slash (/), a letter, and optionally followed by a plus
- (+) or minus (-). If the option is given but the plus or minus
- is omitted then plus is assumed, e.g. /A is equivalent to /A+.
- Plus (+) turns the option on and minus (-) turns the option off.
-
- /A Flag archives with HIDDEN, SYSTEM, or READ-
- ONLY files (default ON).
- /B Allow subdirectories.
- /C Call the BBS file description updating
- program.
- /D File date stamping.
- /E Extension of archive type to convert to.
- /F Create a list of files that were converted
- (default OFF).
- /I Ignore age of files.
- /K Keep the original archive (default OFF).
- /L Long Log file.
- /M Use expanded or extended memory when
- shelling (default ON).
- /N Convert archives nested within archives
- (default ON).
- /O Repack all archives to original archive type
- (default OFF)
- /P Prevent overwriting existing archives
- (default OFF).
- /R Recurs subdirectories (default OFF).
- /S Strip HIDDEN, SYSTEM, and READ-ONLY
- attributes (default OFF).
- /T Test mode only - no repacking (default OFF).
- /V Scan for viruses (default OFF).
- /X Enable self-extracting archive processing.
- /Z Enable/disable I/O redirection.
-
-
- 8.1 Flag Odd Attributes - /A
-
-
- If this option is ON any archive that contains a file with the
- HIDDEN, SYSTEM, or READ-ONLY attribute will be treated as a
- corrupt archive and be renamed to have a "!" as the second
-
-
-
- Chapter 8. Executing Compsec Page 17
-
-
-
-
-
-
- character of the extension. Currently, only PKZIP, LHARC, and
- ICE support attributes within the archive.
-
- It is highly recommended that you have on either the /A or /S
- command at all times since most archiving programs will
- completely ignore hidden files, possibly resulting in lost files.
-
- The /S (strip attributes) command will override this command.
-
-
- 8.2 Allow subdirectories - B
-
-
- Some archive formats allow subdirectory information to be
- imbedded into the archive. By default, ZZAP treats archives with
- subdirectory information as BAD archives, leaving them for you to
- manually examine and process.
-
- If the archive format you are converting to supports
- subdirectories you can have this information automatically
- included in the conversion process by modifying the program
- options for the ARC and UNARC programs and including the /B
- option on the command line (or with the SWITCH= option).
-
- It is assumed that subdirectories that are created by the UNARC
- program will be child directories of ZZAP's temporary work
- subdirectory ZZAP. If a subdirectory is created elsewhere it
- will not be detected and the files contained therein will not be
- added to the new archive. Nested archives that are placed in
- created subdirectories will not be converted by ZZAP.
-
- *** WARNING *** Do not use the /B switch unless you are sure
- that the default archive configuration is properly configured to
- allow subdirectory information. Improper configuration will
- result in the failure of files to be included in the new
- subdirectory. It is URGED that you manually test all possible
- situations before trusting the /B switch in an unattended mode.
-
- The following archive programs can NOT be used to extract
- subdirectory information. This limitation is because the
- programs insist on creating the original subdirectories instead
- of creating the subdirectories as children of the current
- directory:
-
- DWC A495
- PAK 2.10
-
- This limitation may be removed in future versions of these
- programs or the limitation could be removed by changing the
- configuration of each of these programs in the ZZAP configuration
- file.
-
- This limitation does not exist for the creation of new archives,
- however, it should be noted that because the entire path is
-
-
-
- Page 18 Chapter 8. Command Line Options
-
-
-
-
-
-
- stored you may not have the subdirectory information that you
- desire. *** REPEAT OF WARNING *** allow subdirectory creation
- with extreme caution. It is highly recommended that you leave
- out the /B option and handle the subdirectories manual on a
- case-by-case basis.
-
-
- 8.3 Call Update Program - /C
-
-
- Turning this option on causes the fix-up program named in the
- configuration file (see FIXER=) to be executed after all
- conversions have been completed. This removes the necessity to
- execute the program after running ZZAP.
-
- Turning this option on also forces the /F option on as well.
-
- This option is ignored when using the Test Only mode (/T).
-
-
- 8.4 File Date Stamping - /D
-
-
- ZZAP provides three different options for setting the date and
- time of the archives after they have been converted. Immediately
- follow /D with one of three letters to indicate which stamping
- method to use:
-
- T Stamp with the current date and time
- (Today).
- L Stamp with the date and time of the most
- recent file contained in the archive
- (Latest).
- O Keep the original date and time of the
- archive (Original).
-
- Sysops may wish to use the /DO (original date) option in
- conjunction with the AGE= configuration file command. If your
- daily maintenance event is at midnight you should set AGE=2.
- After a file is successfully uploaded you should "TOUCH" the file
- with the current date and time. When the daily event occurs,
- only files that are one or two days old will be processed. Since
- there shouldn't be any one day old files (assuming a midnight
- event), only the files uploaded from the previous day will be
- processed.
-
- The default stamping method is /DL.
-
-
- 8.5 Target Extension - /E
-
-
- Overrides the DEFAULT= option in the configuration file. Follow
- immediately with a three letter extension, for example:
-
-
-
- Chapter 8. Command Line Options Page 19
-
-
-
-
-
-
- ZZAP /EZIP *.LZH
-
- The above example will convert all LZH type archives in the
- current directory to ZIP archives.
-
- Unlike the DEFAULT= configuration file option, you must not
- precede the extension with a period.
-
-
- 8.6 File List - /F
-
-
- If the /F+ option is used the text file FILES.FIX will be created
- that lists each of the files converted. Each line contains a
- single entry, first is the full path and file name of the
- original file, followed by a single space, and finally the new
- file name (no path), for example:
-
- C:\ARCHIVES\MYARC.LZH MYARC.ZIP
- C:\ARCHIVES\ANOTHER.ZOO ANOTHER.ZIP
- C:\NEWSTUFF\JUNK.ICE JUNK.ZIP
-
- Files that are repacked to the same type (e.g. ZIP to ZIP) will
- also be listed in this file. Under some BBS list formats the
- file size, date, time, etc. are also stored along with the file
- name and description. It is up to the programmer of the filter
- to use or ignore unchanged file names as necessary.
-
- This option is ignored when using the Test Only mode (/T).
-
- This text file can be used by a filter program to modify any file
- list as used by most BBS systems to reflect the change of file
- names. Included with ZZAP is the program QFIX.EXE that modifies
- the file list format used by QuickBBS and many other BBS systems
- as well as the description file used by 4DOS. See the QFIX
- document file for additional information.
-
- A filter program for TBBS called DIRFIX has been written by Gary
- W. Funk. This program is also included with ZZAP by permission.
-
- I will be happy to provide some limited assistance in developing
- filter programs for other BBS list formats. If you develop a
- filter program that would be of interest to others, send a copy
- to me so I can make it available to other sysops. Appropriate
- acknowledgments will, of course, be given.
-
-
- 8.7 Ignore File Age - /I
-
-
- If you use the AGE= option to ignore files that are more than a
- specified number of days old you can override this with the /I
- command. Enabling the /I option will result in all files
-
-
-
-
- Page 20 Chapter 8. Command Line Options
-
-
-
-
-
-
- (matching the file specification) being processed, regardless of
- their age.
-
-
- 8.8 Keeping The Original - /K
-
-
- By default the original archive is deleted after the new archive
- is successfully created. To prevent the old archives from being
- deleted you need to turn ON the /K (keep) option. For example:
-
- ZZAP /K+ *.ARC
-
- This switch can be used in combination with any other option:
-
- ZZAP /K+ /R+ C:\*.ARC
-
-
- 8.9 Long Log file - /L
-
-
- The /L option is used to select between the long form log file,
- in which status reports of archive conversions are kept (original
- size, new size, difference in size, etc.) or the short form log
- file which only contains error messages. /L+ selects the long
- form while /L- selects the short form. The default is the short
- form log if the /L command is not used.
-
-
- 8.10 Expanded/Extended Memory - /M
-
-
- By default ZZAP will take advantage of expanded or extended
- memory while shelling to an archive program. This makes more
- memory available to the archiver and may mean the difference
- between success or failure in a tight memory system. If you do
- NOT wish expanded to be used include the /M- option on the
- command line.
-
- To use expanded memory a LIM 4.0 driver be installed as well as
- sufficient EMS to store the bulk of the program and data.
-
- To use extended memory an XMS driver such as HIMEM.SYS (available
- free from Microsoft) must be installed as well as sufficient
- extended memory to store the bulk of the program and data.
-
-
- 8.11 Convert Nested - /N
-
-
- If this option is on, any archives nested within an archive being
- converted will also be converted. All nested archive types
- supported will be converted to the default type. Nested archives
- are left unchanged (and untested!) if this option is off.
-
-
-
- Chapter 8. Command Line Options Page 21
-
-
-
-
-
-
- 8.12 Keep Original Archive Format - /O
-
-
- When on, all archives are repacked, but they retain their
- original archive type. Thus, a ZIP file will be repacked as a
- ZIP, a LZH file will be repacked as a LZH, etc., regardless of
- the default archive type. Nested archives will be converted to
- the parent archive's type if the /N switch is enabled, otherwise
- the nested archive will be untouched (and untested!). Self-
- extracting archives will be converted to the same type but
- without the SFX program code.
-
- Using this switch without the AGE= option could result in
- archives being processed several times if you use a wildcard for
- the extension. While this doesn't hurt anything it does waste
- time unnecessarily. This problem won't occur if you move
- archives to a new subdirectory after processing them with ZZAP.
-
-
- 8.13 Prevent Overwriting - /P
-
-
- By default an existing archive can be overwritten when
- converting. For example, if both TEST.ZIP and TEST.LZH exist and
- you convert TEST.LZH to a ZIP file, the original TEST.ZIP will be
- replaced by the new ZIP file (formerly TEST.LZH). If the /P
- option is turned on it will prevent this from occurring, in fact,
- any archive that would cause an overwrite would be completely
- ignored, without any status message being displayed.
-
- This option has no effect when using the Test Only mode (/T).
-
-
- 8.14 Subdirectory Recursion - /R
-
-
- If you have multiple subdirectories with archives you need to
- convert, you can either process each subdirectory individually or
- use the recursion feature of ZZAP. Subdirectory recursion means
- ZZAP will start at a given subdirectory and convert all archives
- in it and all archives in any child subdirectories. This feature
- is especially handy when you have a Bulletin Board System with a
- large number of specialized file areas.
-
- Subdirectory Recursion is invoked by the /R command line options.
- The following are valid command lines:
-
- ZZAP /R+ \FILES\T*.ZOO
- ZZAP /R+ \*.ARC
- ZZAP /R *.PAK
- ZZAP /R+/V+ *.*
-
-
-
-
-
-
- Page 22 Chapter 8. Command Line Options
-
-
-
-
-
-
- 8.15 Strip Attributes - /S
-
-
- The /S options will strip the HIDDEN, SYSTEM, and READ-ONLY
- attributes from all files contained in the archive before adding
- the files to the new archive. Note that most archiving programs
- do not support unusual attributes and will simply ignore files
- containing these three attributes. You should use either the /A
- or /S command if there is any chance of any of these three
- attributes being run across.
-
- Turning this option on will cause the /A option to be turned off.
-
- This option has no effect when using the Test Only mode (/T).
-
-
- 8.16 Test Only - /T
-
-
- If you merely wish to test the integrity of an archive and
- possibly run a virus check use the /T switch. All normal steps
- will be executed with the exception of the creation of the new
- archive.
-
- The date/time stamp of a archives will not be changed during the
- Test mode unless a /D command is explicitly stated, either in the
- configuration file with the OPTIONS= command, or on the command
- line.
-
- This feature would be more useful with SDN archives if PAK would
- return a nonzero exit code if the security envelope was missing.
- Unfortunately, as of version 2.10 it returns a code of zero as
- long as the archive is not corrupted (beyond the missing security
- envelope).
-
-
- 8.17 Virus Scan - /V
-
-
- The /V option will enable the virus scan option. You must have
- version 39 or greater of McAfee Associates virus scanning program
- SCAN.EXE placed on your execution PATH. If a virus is detected
- the archive will be treated as corrupted and an error message
- will be displayed and placed in the log file (if enabled).
-
- See also the SCANOPT= and VIRUSDIR= configuration file commands.
-
-
- 8.18 Self-extracting Archives - /X
-
-
- Enables or disables the processing of self-extracting archives
- when a wildcard is specified for the file extension. When
- enabled, files with the extension of EXE or COM will be checked
-
-
-
- Chapter 8. Command Line Options Page 23
-
-
-
-
-
-
- to see if they are self-extracting archives as defined with the
- SFX= command.
-
- Files contained inside an archive are never checked as SFX files.
- Any EXE or COM program will be treated as a corrupted archive if
- it is not self-extracting.
-
- Examples:
-
- zzap /t *.exe
-
- The /X switch was not required since an explicit extension was
- specified.
-
- zzap /x *.*
-
- All archive types are converted to the default archive type. EXE
- and COM programs are also converted if they are self-extracting.
-
-
- 8.19 Enable/Disable CRC Verification - /Y
-
-
- Enables program file CRC verification. Before you can use this
- option you need to create a CRC data file with an entry for each
- program file you wish CRC verified. Consult the file MAKECRC.DOC
- for instructions to do this. The /Y switch allows you to enable
- and disable the CRC option without having to modify the
- configuration file.
-
-
- 8.20 Enable/Disable I/O Redirection - /Z
-
-
- Turning this option off disables all I/O redirection. ZZAP is
- configured to redirect all the output of the external programs to
- the NULL device to keep a clean screen. When you are having a
- problem with program configuration it is often helpful to turn
- off the redirection so you can see each phase of the conversion
- process. Using this command line switch is much easier than
- editing the configuration file to remove the redirection
- commands.
-
- This option is ON by default.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 24 Chapter 8. Command Line Options
-
-
-
-
-
-
-
-
-
- Chapter Nine
-
- Locating The Configuration File
-
-
- ZZAP will try it's best to locate the configuration file. Upon
- execution it searches for the configuration file in the following
- order:
-
- 1. The current subdirectory.
- 2. The Subdirectory defined by the environment variable
- ZZAP=, e.g. ZZAP=C:\BIN.
- 3. The subdirectory ZZAP.EXE resides in (DOS 3.x only).
- 4. Each subdirectory defined by PATH in the environment.
-
- If you wish to keep the configuration file in a directory not on
- the PATH and still be able to execute ZZAP from any subdirectory
- you should set the environment variable:
-
- SET ZZAP=C:\STUFF
-
- If the configuration file can not be found ZZAP will halt with an
- error.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 9. Command Line Options Page 25
-
-
-
-
-
-
-
-
-
- Chapter Ten
-
- Running ZZAP
-
-
- ZZAP is fully configured for the major archiving programs. The
- only change in the configuration file you may need to make is the
- EXT= command to set your preferred default archive type.
-
- To run ZZAP, simply type ZZAP followed by the filename (wild-
- cards allowed). The filename MUST have an extension. If the
- extension is wild (*) then all archive types defined by UNARC=
- commands will be converted to the new archive type as defined by
- ARC=. The following are legal:
-
- ZZAP *.ZOO
-
- Converts all ZOO files in the default subdirectory to the new
- archive type or repacks ZOO files if that is the default
- extension.
-
- ZZAP \UPLOADS\AFILE.ZIP
-
- Converts AFILE.ZIP, located in the \UPLOADS subdirectory, to the
- new archiving type.
-
- ZZAP *.*
-
- Converts all archive types that are not the default format, in
- the current subdirectory, to the new archive type.
-
- When using a wild-card for the extension archives with the
- default extension will be ignored. To repack archives to the
- same type, e.g. ZIP to ZIP, you must explicitly state the
- extension.
-
- ZZAP *.ZIP
-
- If you wish to repack an archive to the same type you must
- explicitly name the extension as the default archive type is
- ignored when doing a wild card conversion (this is to avoid
- repacking the same archives every time you run ZZAP).
-
- If your default archive type is LZH simply give that as the
- extension to convert:
-
- ZZAP *.LZH
-
- When repacking an archive, all archive and file comments are
- lost.
-
-
-
-
- Page 26 Chapter 10. Locating The Configuration File
-
-
-
-
-
-
- Note that the /P and /K options are ignored when doing a repack.
-
- ZZAP can also accept multiple file names on the command line:
-
- ZZAP /V *.ZIP *.*
-
- Assuming a default archive type of ZIP, this example first
- repacks all ZIP files (and does a virus check) then converts all
- other types to ZIP format, also with a virus check. If the order
- had been changed, "ZZAP /V *.* *.ZIP", all archives would be
- converted to ZIP format then all ZIP files would be repacked,
- clearly not the intention.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 10. Running ZZAP Page 27
-
-
-
-
-
-
-
-
-
- Chapter Eleven
-
- Nested Archives
-
-
- It is not uncommon to find archives nested inside an archive. A
- program that includes source code may have the source code
- archived and placed within the main archive. ZZAP will properly
- handle this situation and convert the nested archives to the new
- format. If fact, it will even convert nested archives of a
- differing types. Theoretically, an unlimited amount of nesting
- can be handled, only limited by available memory, but this has
- only been tested one deep.
-
- If you do not wish nested archives to be converted you should use
- the /N- option on the command line or place it in the
- configuration file using the SWITCH= command.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 28 Chapter 11. Running ZZAP
-
-
-
-
-
-
-
-
-
- Chapter Twelve
-
- When Good Files Go Bad
-
-
- If a file is found to be corrupted further processing on that
- file is halted and the archive is renamed to have a "!" as the
- second character of the extension, for example, "Z!P". If the
- corrupted archive is nested only the parent archive is renamed.
- You will have to manually unarc the archive to find the actual
- problem.
-
- ZZAP assumes that a file is corrupted when the "EXIT CODE" for
- the unarc program is nonzero.
-
- PAK version 1.0 is known to not return a proper error code so
- ZZAP will not work with it. I'm not sure which version they
- fixed the bug in. I do know that it works properly with PAK
- version 1.6.
-
- Just because ZZAP says an archive is corrupted does not
- necessarily mean it is true. When the archiving program returns
- a nonzero exit code ZZAP has know way of knowing what the code
- represents. Some of the reasons an archive might be flagged as
- bad are:
-
- o Archive is truly corrupted.
-
- o Insufficient memory, there was enough memory to execute
- the archiving program but not enough for the archiving
- program to properly process the archive.
-
- o Insufficient disk space. A very large archive can quickly
- eat up disk space. Even a seemingly small archive can
- suddenly expand into a big file. Font files, for example,
- typically compress to only 5% of the original size. A 72
- point font can take more than 1Meg of disk space while
- requiring less than 100k when compressed. Keep in mind
- that ZZAP requires enough disk space to hold the original
- archive, the expanded files, and the new archive.
- Therefore, a 100k archive that expands to 500k and
- recompresses to 75k will temporarily require 675k of disk
- space.
-
- o Invalid archive version. When a new version of an archive
- program is released it often includes improved compression
- techniques that older versions of the program can not
- handle. Upgrade your archive software.
-
-
-
-
-
-
- Chapter 12. Nested Archives Page 29
-
-
-
-
-
-
- o Command line options as defined in the configuration file
- are incorrect. Double check each ARC= and UNARC= command
- in the configuration file.
-
- o Archive program is corrupted. Make sure that your
- archiving programs are working properly.
-
- o Disk error. If your disk has a bad sector it could result
- in a unsuccessful archiving or unarchiving.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 30 Chapter 12. When Good Files Go Bad
-
-
-
-
-
-
-
-
-
- Chapter Thirteen
-
- External Event Conversion
-
-
- Some bulletin board systems support timed "events". These events
- are used to automate the operation of the board. Using an event
- can make it possible for the bulletin board to automatically
- handle the conversion of any archive type to the type supported
- by the board. A BBS that automatically converts archive types
- could allow the callers to upload archives of virtually any type.
-
- Under FrontDoor, for example, you can use an external event for
- this process. An external event causes FrontDoor to terminate
- with a specified error level. The error level can then be
- queried to decide what should be done.
-
- Follows is a fragment from a possible batch file to do just this.
- This example assumes all new uploads are placed in the
- subdirectory "C:\UPLOADS".
-
- IF ERRORLEVEL 87 GOTO do_this
- IF ERRORLEVEL 86 GOTO arc_convert
- IF ERRORLEVEL 85 GOTO do_that
-
- REM convert all archive types to ZIP files
- :arc_convert
- zzap /f+ c:\uploads\*.*
-
- GOTO run_fd
-
- There is one problem with this type of system - what happens to
- the descriptions? Some BBS programs automatically place the file
- name and description in an ASCII file. If the file is then
- converted the filename is changed and would no longer match the
- name given with the description. The /F option and the QFIX
- program (included) handle the conversion for QuickBBS format file
- list.
-
- See QFIX.DOC for further information. See also the description
- of the /C options as well as the configuration file option FIXER=
- and other related options.
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 13. When Good Files Go Bad Page 31
-
-
-
-
-
-
-
-
-
- Appendix A
-
- Sysop Recommendations
-
-
- If your BBS supports them, the following system is recommended:
-
- - When a new file is uploaded set its date to "Today's
- date", using a TOUCH program (or whatever means).
-
- - Set up an midnight "event" to process all new uploads.
-
- - Use the AGE=2 command in ZZAP.CFG.
-
- - Run ZZAP with /T /DO to test files already in the default
- archive format and retain the original date.
-
- - Run ZZAP with /DO to convert all archives to the default
- format and retain the original date.
-
- An alternate configuration is:
-
- - Create a subdirectory to hold of "Today's" uploads.
-
- - Create a subdirectory to hold all New (or this month's)
- uploads.
-
- - Set your system to convert/test archives at any desired
- time.
-
- - At conversion/test time:
-
- * Run ZZAP with /T to test all files already in the
- default archive format. Use your preferred date
- (/D) option.
-
- * Run ZZAP to convert all archives to the default
- format. Use your preferred date (/D) option.
-
- - Alternately:
-
- * Use the /O switch to repack all archives, keeping
- their original archive formats. Use your preferred
- /D date/time option.
-
- - Move all freshly tested/converted archive to the
- Monthly/New uploads subdirectory.
-
-
-
-
-
-
-
- Page 32 Appendix A. Sysop Recommendations
-
-
-
-
-
-
-
-
-
- Appendix B
-
- Exit Codes
-
-
- ZZAP will return exit codes upon termination. These exit codes
- can be used by a batch file to decide what steps should be taken
- after running ZZAP. The exit codes are
-
- 0 Normal termination - no errors, viruses, or
- corrupted archives.
- 1 Virus detected.
- 2 Corrupted archive.
- 3 Configuration file not found.
- 4 Not configured for given target extension.
- If you use the /O option ZZAP will continue
- processing other archives. This is so other
- archive types can still be repacked.
- 5 Couldn't create temporary directory.
- 6 Other fatal error.
-
- There is a possibility for both a corrupted archive and a virused
- archive to have been detected (bad day!). In this case an exit
- code of 1 (virus detected) will be returned, specifying the more
- critical situation.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix B. Exit Codes Page 33
-
-
-
-
-
-
-
-
-
- Appendix C
-
- Acknowledgments
-
-
- Thanks to:
-
- o Ken Doebler and Dan Geatons for their many suggestions.
-
- o Randall Greylock (1:321/202.4) for pointing out an oddity
- with ZOO and many fine suggestions which were implemented.
-
- o Charles Falconer (1:141/488) for pointing out that I
- didn't handle unusual file attributes (which LHARC and
- PKZIP archives may retain) and other suggestions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 34 Appendix C. Acknowledgments
-
-
-
-
-
-
-
-
-
- Appendix D
-
- My Lawyer Made Me Do It
-
-
- - DWC is copyright (c)1986,87,88 Dean W. Cooper.
- - LHARC and ICE are copyright (c)1988,89 Haruyasu
- Yoshizaki-san.
- - LUE is copyright (c)1985 Vernon D. Buerg.
- - PAK is copyright (c)1988,89 NoGate Consulting
- - GSARC is copyright (c)1988 NoGate Consulting
- - PKARC/PKXARC and PKPAK/PKUNPAK are copyright (c)1986,87,88
- PKWare, Inc.
- - PKZIP/PKUNZIP are copyright (c)1989 PkWare, Inc.
- - SQZ is copyright (c)1992 J I Hammarberg.
- - ZOO is copyright (c)1988 Rahul Dhesi
- - FrontDoor is copyright (c)1988,89 Scandinavian PC Systems
- and InterZone Software, Inc.
- - DIRFIX is copyright (c)1990 Gary W. Funk.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D. My Lawyer Made Me Do It Page 35
-
-
-
-
-
-
-
-
-
- Appendix E
-
- Version History
-
-
- Version 6.6 Changes
- ===================
-
- - Added CRC verification of program files.
- - Improved the SFX support.
- - Now, by default, only error messages are sent to the log
- file. The new /L switch turns on the long form log file
- with the conversion summaries.
- - Made a few minor changes to the screen to improve the
- readability of error messages.
- - The date and time stamps placed in the log file now use
- the format as defined by the country code.
-
- Version 6.5 Changes
- ===================
-
- - Further enhancements to the SFX routines. Added the
- NONSFX= and NESTEDSFX= configuration file commands.
- - Added the WORKDRIVE= configuration file command.
- - Added the NESTED= configuration file command.
-
- Version 6.4 Changes
- ===================
-
- - Added routines to detect and process self-extracting
- archives (SFX).
- - Changed the /X switch to /M, /X is now used to enable SFX
- support.
-
- Version 6.3 Changes
- ===================
-
- - Added the /O option (different from the older date related
- switch).
-
- Version 6.2 Changes
- ===================
-
- - The log file must now be specified in the environment.
- This allows ZZAP to log errors before the configuration
- file is read.
- - Can now read a file containing a list of files to convert.
- - Corrected an error in initialization that caused the /C+
- switch to be ignored in some cases.
-
-
-
-
-
- Page 36 Appendix E. Version History
-
-
-
-
-
-
- Version 6.1 Changes
- ===================
-
- - Added the /B command line switch and support for
- subdirectory information in archives.
- - Slightly changed the way temporary files are handled to
- improve support on networked multi-line BBS's.
-
- Version 6.0 Changes
- ===================
-
- - Added the PRE=, MID=, and POST= configuration file
- commands.
- - Added support for %COMSPEC% when declaring programs to
- execute.
- - Added support for >> type output redirection.
- - Changed /T to /D.
- - A new test mode has been added. Using /T now initiates a
- test mode, no new archives are created.
- - The date/time stamp is left unaltered when using the /T
- command unless a /D option is explicitly stated.
- - Instead of searching the path for all of the UNARC
- programs at start-up, which can be a slow process if more
- than a few are defined, ZZAP now only searches for the
- programs when actually required. The full path, if found,
- is saved so that subsequent searches are not required.
-
- Version 5.9 Changes
- ===================
-
- - Changed the way temporary files are handled, ZZAP can now
- work with archive programs that insist on using a specific
- extension.
- Duplicate archives are not deleted until the new archive
- has been successfully created.
- - Added a few new error messages in the log file.
- - When I added input redirection capabilities I also
- introduced a bug that would could cause the wrong files to
- be closed when turning off redirection after an execute.
- This is now fixed.
-
- Version 5.8 Changes
- ===================
-
- - Removed the /O command line option and replaced it with
- the more versatile /T option.
- - Added the /I (ignore file age) command to the command line
- switches.
- - Added the AGE= command to the configuration file. ZZAP
- can now be configured to skip processing of files that are
- more than a specified number of days old.
- - Added an index to the documents
- - ZZAP is now DesqView aware.
-
-
-
-
- Appendix E. Version History Page 37
-
-
-
-
-
-
- Version 5.7 Changes
- ===================
-
- - Added support for redirection of input for called
- programs. This will allow you to automatically add
- archives comments when converting to some archive formats.
- - Deleted the FIXOPT= configuration file command. Now the
- FIXER= command does double duty - defining the program
- name and options.
-
- Version 5.6 Changes
- ===================
-
- - Corrected a bug where a bad archive could not be
- successfully moved to a "bad directory" as defined by the
- BADDIR= configuration option.
- - If an archive contains subdirectory information and you
- have the unarc option set to create subdirectories, ZZAP
- will now handle this in a graceful manner by deleting the
- subdirectories that were created, treating the archive as
- bad, and logging an appropriate message. Formerly, ZZAP
- would crash when it was unable to remove its temporary
- work subdirectory.
- - When an archive nested inside another archive is found to
- be corrupt, only the parent archive (containing the
- corrupt child archive) will be moved to BADDIR instead of
- both the parent and child archives.
- - Stamped a new bug where a nested archive would be stored
- with its temporary name (*.Z!Z) as well as the old
- extension, resulting in larger archives.
-
- Version 5.5 Changes
- ===================
-
- - Due to a bug in my code the error code returned by
- SCAN.EXE was not being processed correctly. This could
- allow archives with infected programs to slip by.
- - Cleaned up the display of error and warning messages.
- - The log file is now only date/time stamped if something is
- actually done.
- - The number of files skipped due to the /P+ option is now
- displayed with other status information.
-
- Version 5.4 Changes
- ===================
-
- - Added the /C command line option.
- - Added the FIXER=, FIXOPT= and SCANOPT= configuration file
- commands.
- - Corrupted archives are renamed to have a "!" as the second
- character of the extension instead of "BAD" being the
- extension.
-
-
-
-
-
- Page 38 Appendix E. Version History
-
-
-
-
-
-
- Version 5.3 Changes
- ===================
-
- - Added support for "%1" to allow the archive file names to
- be in any position on the command line.
- - Corrected a bug where the /N command line switch was being
- ignored.
- - Bug corrected where the state of Keep (/K+) and/or
- PreventOverwrite (/P+) could be lost if more than one file
- is given on the command line.
- - On the switch status line, "on" is displayed in high-
- intensity.
- - Completely changed the way the /F option works and added
- the QFIX program.
- - Conversion of all archive types by indicating the wild-
- card extension (e.g. '*.*' was not working, corrected as
- of 5.3b.
-
- Version 5.2 Changes
- ===================
-
- - Fixed a bug where the stack would overflow and trash some
- internal data.
- - Fixed a bug where if /X- was used it wouldn't properly
- execute the external programs.
- - Removed the ZZAPARC= environmental variable, it is not
- longer needed with the addition of the /E command line
- switch.
- - Added the /N switch (convert nested archives). Default
- ON.
-
- Version 5.1 Changes
- ===================
-
- - Added the SWITCH= configuration file option.
- - Changed the way command line options are used.
-
- Version 5.0 Changes
- ===================
-
- - Completely rewrote most of the file searching routines.
- - Now supports repacking any archive type, e.g. ZIP to ZIP.
- - Added a switch to prevent overwriting of existing
- archives.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix E. Version History Page 39
-
-
-
-
-
-
- Version 4.8 Changes
- ===================
-
- - Added support for output redirection.
- - ZZAP always thought the bad archive directory (BADDIR=)
- didn't exist - whether it did or not.
- - Now supports moving a BAD archive to a different drive.
- - If BADDIR is defined and the subdirectory exists the file
- will be moved their and the extension will NOT be changed
- to .BAD. The extension will be changed to .BAD if BADDIR
- is not defined or does not exist.
-
- Version 4.7 Changes
- ===================
-
- - Added the DEFAULT= command in the configuration file.
- - Changed the ZZAPARC environmental variable so that it only
- requires the file extension.
- - Changed the ARC= command in the configuration file so that
- multiple archiving programs can be listed.
- - Added the /S (strip attributes) command line option.
- - Added support for extended memory during archive program
- executing.
- - The BBS list routine was not working properly if the
- filenames in the list file were not upper-case.
-
- Version 4.6 Changes
- ===================
-
- - Added support for virus scanning using McAfee Associates
- SCAN.EXE program.
- - Added the BADDIR configuration option.
- - Improved the error detection code.
-
- Version 4.5 Changes
- ===================
-
- - Added support for multiple file names on the command line.
- - Removed bug where ZZAP returned an error message if no
- file name was given on the command line.
-
- Version 4.4 Changes
- ===================
-
- - ZZAP wasn't properly reading the exit code of the unarcing
- programs. This resulting in some bad archives slipping
- by.
-
- Version 4.3 Changes
- ===================
-
- - Cosmetic changes and code optimization.
-
-
-
-
-
- Page 40 Appendix E. Version History
-
-
-
-
-
-
- Version 4.2 Changes
- ===================
-
- - Trivial B.S. hardly worth mentioning.
-
- Version 4.1 Changes
- ===================
-
- - Corrected a fatal bug introduced in 4.0 that would cause
- ZZAP to lose files under PKARC/PKPAK.
- - Removed a bug which resulted in the "home" path (DOS 3.x
- only) not being located properly.
-
- Version 4.0 Changes
- ===================
-
- - Changed the "/I" option to "/A" - makes more sense.
- Log more information about nonstandard file attributes in
- the log file.
- - Now supports expanded memory (LIM 4.0 only) when shelling,
- thus making available more conventional memory when
- running the archiving programs.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix E. Version History Page 41
-
-
-
-
-
-
-
-
-
- Index
-
-
- A F
- AGE= 20 File date stamping 10, 17
- Archive Programs Supported 4 Filter 20
- Attributes 17 Fix-up program 10
- Flag funny 17, 23
- Strip 17, 18, 22 H
- Halting ZZAP 3
- B
- BBS download list 10 I
- I/O redirection 17
- C
- Command Line Options 17 K
- Command line options Keep 17, 21
- /A 17
- /B 17, 18 L
- /C 17, 19 License Agreement 1
- /D 10, 17, 19 List 17, 20
- /E 17, 19 Locating The Configuration
- /F 17, 19, 20 File 25
- /I 10, 17, 20 Log 15
- /K 17, 21 Logging ZZAP Activity 15
- /L 17, 21 Long Log File 17
- /M 17, 21
- /N 17, 21 N
- /O 17, 21 Nested Archives 17, 28
- /P 17, 22
- /R 17, 22 O
- /S 17, 22 Original Format 17
- /T 17, 23
- /V 17, 23 P
- /X 17, 23 Path 25
- /Y 24 POST= 12
- /Z 17, 24 PRE= 12
- Configuration File 5 Prevent overwrite 17
- Configuration File 25
- Q
- D QuickBBS 10
- Default Extension 7, 17, 19
- Description fix-up 17, 19 R
- DIRFIX 20 Redirection 5, 6, 7
- Redirection error 6
- E Repack 26
- Environment 25 Running ZZAP 3, 26
- Escape 3
- Executing Compsec 16 S
- Expanded Memory 17, 21 SCANV 14, 17, 23
- Extended Memory 17, 21 Self-extracting archives 17,
- External Event Conversion 31 23
-
-
-
- Page 42 Index
-
-
-
-
-
-
- SFX 17, 23 V
- Subdirecties 17, 18 Viruses 14, 17, 23
- Subdirectories 7
- Subdirectory recursion 17 W
- Summary of Features 2 When Good Files Go Bad 29
- Switches 9, 17 Wild-cards 26
-
- T Z
- Temporary subdirectory 11 ZZAPLOG= 15
- Test mode 17, 19, 20, 22, 23
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Index Page 43
-
-
-
-
-
-
-
-
-
- Contents
-
-
-
- Chapter 1 License Agreement 1
-
- Chapter 2 Summary of Features 2
-
- Chapter 3 Running ZZAP 3
-
- Chapter 4 Archive Programs Supported 4
-
- Chapter 5 Configuration File 5
- 5.1 ARC= . . . . . . . . . . . . . . . . . . . . 5
- 5.2 UNARC= . . . . . . . . . . . . . . . . . . . 6
- 5.3 DEFAULT= . . . . . . . . . . . . . . . . . . 7
- 5.4 NESTED= . . . . . . . . . . . . . . . . . . . 8
- 5.5 WORKDRIVE= . . . . . . . . . . . . . . . . . 8
- 5.6 NESTEDARC= . . . . . . . . . . . . . . . . . 8
- 5.7 BADDIR= . . . . . . . . . . . . . . . . . . . 9
- 5.8 VIRUSDIR= . . . . . . . . . . . . . . . . . . 9
- 5.9 SWITCH= . . . . . . . . . . . . . . . . . . . 9
- 5.10 FIXER= . . . . . . . . . . . . . . . . . . 10
- 5.11 AGE= . . . . . . . . . . . . . . . . . . . 10
- 5.12 PRE= . . . . . . . . . . . . . . . . . . . 10
- 5.13 MID= . . . . . . . . . . . . . . . . . . . 11
- 5.14 POST= . . . . . . . . . . . . . . . . . . 12
- 5.15 SFX= . . . . . . . . . . . . . . . . . . . 12
- 5.16 NONSFX= . . . . . . . . . . . . . . . . . 13
- 5.17 NESTEDSFX= . . . . . . . . . . . . . . . . 13
- 5.18 SCANOPT= . . . . . . . . . . . . . . . . . 14
- 5.19 WORKDRV= . . . . . . . . . . . . . . . . . 14
-
- Chapter 6 Logging ZZAP Activity 15
-
- Chapter 7 Executing Compsec 16
-
- Chapter 8 Command Line Options 17
- 8.1 Flag Odd Attributes - /A . . . . . . . . . 17
- 8.2 Allow subdirectories - B . . . . . . . . . 18
- 8.3 Call Update Program - /C . . . . . . . . . 19
- 8.4 File Date Stamping - /D . . . . . . . . . . 19
- 8.5 Target Extension - /E . . . . . . . . . . . 19
- 8.6 File List - /F . . . . . . . . . . . . . . 20
- 8.7 Ignore File Age - /I . . . . . . . . . . . 20
- 8.8 Keeping The Original - /K . . . . . . . . . 21
- 8.9 Long Log file - /L . . . . . . . . . . . . 21
- 8.10 Expanded/Extended Memory - /M . . . . . . 21
- 8.11 Convert Nested - /N . . . . . . . . . . . 21
- 8.12 Keep Original Archive Format - /O . . . . 22
- 8.13 Prevent Overwriting - /P . . . . . . . . . 22
-
-
-
- i
-
-
-
-
-
-
- 8.14 Subdirectory Recursion - /R . . . . . . . 22
- 8.15 Strip Attributes - /S . . . . . . . . . . 23
- 8.16 Test Only - /T . . . . . . . . . . . . . . 23
- 8.17 Virus Scan - /V . . . . . . . . . . . . . 23
- 8.18 Self-extracting Archives - /X . . . . . . 23
- 8.19 Enable/Disable CRC Verification - /Y . . . 24
- 8.20 Enable/Disable I/O Redirection - /Z . . . 24
-
- Chapter 9 Locating The Configuration File 25
-
- Chapter 10 Running ZZAP 26
-
- Chapter 11 Nested Archives 28
-
- Chapter 12 When Good Files Go Bad 29
-
- Chapter 13 External Event Conversion 31
-
- Appendix A Sysop Recommendations 32
-
- Appendix B Exit Codes 33
-
- Appendix C Acknowledgments 34
-
- Appendix D My Lawyer Made Me Do It 35
-
- Appendix E Version History 36
-
- Index 42
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ii
-