home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / COMPRESS / ZZAP61A.ZIP / ZZAP.DOC < prev    next >
Encoding:
Text File  |  1990-09-18  |  71.8 KB  |  2,476 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                    █████████   █████████      ███      ███████
  25.                     ░░░░░██░░   ░░░░░██░░    ██░██░    ██░░░░██░
  26.                         ██░░        ██░░    ██░  ██░   ██░    ██░
  27.                        ██░░        ██░░    ██░    ██░  ██░   ██░░
  28.                       ██░░        ██░░     █████████░  ███████░░
  29.                      ██░░        ██░░      ██░░░░░██░  ██░░░░░░
  30.                     ██░░        ██░░       ██░    ██░  ██░
  31.                    █████████   █████████   ██░    ██░  ██░
  32.                     ░░░░░░░░░   ░░░░░░░░░   ░░     ░░   ░░
  33.  
  34.                                      Version 6.0
  35.  
  36.  
  37.                               ZIP/ZOO/ARC/PAK Converter
  38.                                      (And More!)
  39.  
  40.                                  Copyright (c) 1989
  41.                                Ross Neilson Wentworth
  42.                                  All Rights Reserved
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.                                     Contents
  53.  
  54.  
  55.  
  56.                Chapter 1  License Agreement                          1
  57.  
  58.                Chapter 2  Summary of Features                        2
  59.  
  60.                Chapter 3  Archive Programs Supported                 3
  61.  
  62.                Chapter 4  Configuration File                         4
  63.                   4.1  ARC=  . . . . . . . . . . . . . . . . . . . . 4
  64.                   4.2  UNARC=  . . . . . . . . . . . . . . . . . . . 5
  65.                   4.3  DEFAULT=  . . . . . . . . . . . . . . . . . . 6
  66.                   4.4  BADDIR= . . . . . . . . . . . . . . . . . . . 7
  67.                   4.5  LOG=  . . . . . . . . . . . . . . . . . . . . 7
  68.                   4.6  SWITCH= . . . . . . . . . . . . . . . . . . . 8
  69.                   4.7  FIXER=  . . . . . . . . . . . . . . . . . . . 8
  70.                   4.8  AGE=  . . . . . . . . . . . . . . . . . . . . 8
  71.                   4.9  PRE=  . . . . . . . . . . . . . . . . . . . . 9
  72.                   4.10  MID= . . . . . . . . . . . . . . . . . . . . 9
  73.                   4.11  POST=  . . . . . . . . . . . . . . . . . .  10
  74.                   4.12  SCANOPT= . . . . . . . . . . . . . . . . .  10
  75.  
  76.                Chapter 5  Executing Compsec                         11
  77.  
  78.                Chapter 6  Command Line Options                      12
  79.                   6.1  Flag Odd Attributes - /A  . . . . . . . . .  12
  80.                   6.2  Allow subdirectories - B  . . . . . . . . .  13
  81.                   6.3  Call Update Program - /C  . . . . . . . . .  14
  82.                   6.4  File Date Stamping - /D . . . . . . . . . .  14
  83.                   6.5  Target Extension - /E . . . . . . . . . . .  14
  84.                   6.6  File List - /F  . . . . . . . . . . . . . .  15
  85.                   6.7  Ignore File Age - /I  . . . . . . . . . . .  15
  86.                   6.8  Keeping The Original - /K . . . . . . . . .  16
  87.                   6.9  Activity Log - /L . . . . . . . . . . . . .  16
  88.                   6.10  Convert Nested - /N  . . . . . . . . . . .  16
  89.                   6.11  Prevent Overwriting - /P . . . . . . . . .  16
  90.                   6.12  Subdirectory Recursion - /R  . . . . . . .  17
  91.                   6.13  Strip Attributes - /S  . . . . . . . . . .  17
  92.                   6.14  Test Only - /T . . . . . . . . . . . . . .  17
  93.                   6.15  Virus Scan - /V  . . . . . . . . . . . . .  18
  94.                   6.16  Expanded/Extended Memory - /X  . . . . . .  18
  95.                   6.17  Enable/Disable I/O Redirection - /Z  . . .  18
  96.  
  97.                Chapter 7  Locating The Configuration File           19
  98.  
  99.                Chapter 8  Running ZZAP                              20
  100.  
  101.                Chapter 9  Nested Archives                           22
  102.  
  103.  
  104.  
  105.  
  106.                                           i
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.                Chapter 10  When Good Files Go Bad                   23
  114.  
  115.                Chapter 11  External Event Conversion                25
  116.  
  117.                Appendix A  Exit Codes                               26
  118.  
  119.                Appendix B  Acknowledgments                          27
  120.  
  121.                Appendix C  My Lawyer Made Me Do It                  28
  122.  
  123.                Appendix D  Version History                          29
  124.  
  125.                Index                                                35
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.                                          ii
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.                                      Chapter One
  182.  
  183.                                   License Agreement
  184.  
  185.  
  186.           In the past I have not requested money to use ZZAP unless it was
  187.           used in a commercial environment.  However, due to its increased
  188.           popularity with the resultant increase in phone calls with
  189.           questions, I am forced to change my licensing policy.  This new
  190.           policy supersedes all previous agreements for the licensing of
  191.           ZZAP.
  192.  
  193.           You may use ZZAP on a trial basis for up to 30 days freely.  You
  194.           may give it away to anyone you wish so long as you do not charge
  195.           for it or use it as an incentive to buy.  If, after the 30 day
  196.           trial period, you wish to continue to use ZZAP a registration fee
  197.           of $10 is required.  If you send an additional $5 I will send you
  198.           the latest version.  Please let me know what version you
  199.           currently have so that I can be sure to send you an update (when
  200.           available).
  201.  
  202.           Payment should be by check or money in U.S. funds drawn on a U.S.
  203.           bank.  I can not be responsible for cash that is sent through the
  204.           mail.  Printing the file "ORDER.FRM" will produce an order form
  205.           that you can use to register ZZAP.  Send your registration and/or
  206.           inquiry to:
  207.  
  208.                          Ross Neilson Wentworth
  209.                          1422 Elkgrove Circle, #3
  210.                          Venice, CA  90291
  211.                          (213)399-1244
  212.  
  213.  
  214.           The latest version of ZZAP can be found on West Los Angeles BBS,
  215.           (213)838-9229.
  216.  
  217.           Even if you do not wish to register I would appreciate hearing
  218.           from you.  A simple postcard listing your likes, dislikes,
  219.           suggestions, and the version number is all that I ask.
  220.  
  221.           The terms "arc", "archive", "unarc", etc. are used throughout
  222.           this document.  They are considered generic terms for all
  223.           archiving types and formats.  Any declaration that any of these
  224.           terms are proprietary will be construed as a ridiculous statement
  225.           and be properly ignored.
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.           Chapter 1. License Agreement                               Page 1
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.                                      Chapter Two
  246.  
  247.                                  Summary of Features
  248.  
  249.  
  250.               o  Automated conversion between the most common archive types
  251.                  (ARC, DWC, ICE, LBR, LZH, MD, PAK, SDN, ZIP, and ZOO).
  252.               o  Automatically converts nested archives including nested
  253.                  archives of different types.  A switch is provided to
  254.                  disable this feature.
  255.               o  Optionally convert archives in multiple subdirectories
  256.                  (subdirectory recursion).
  257.               o  Accepts wild-card designations and multiple file names on
  258.                  the command line.
  259.               o  Repack archives to same type.
  260.               o  Renames or moves corrupted archive for later examination.
  261.               o  User defined arcing and unarcing options.
  262.               o  Deletes old archives by default, options to keep them.
  263.               o  Optional logging of ZZAP activities to a text file.
  264.               o  Optionally create a text file listing the archives
  265.                  converted, suitable for use by filter programs to update
  266.                  the file list as used by BBS programs.
  267.               o  Flag archives containing files with Hidden, System, or
  268.                  ReadOnly attributes as "bad" or optionally strip the funny
  269.                  attributes.
  270.               o  Can automatically check an archive for viruses using the
  271.                  virus scanning program SCAN.EXE (version 39 or later) from
  272.                  McAfee Associates.
  273.               o  The standard input of programs that are executed can be
  274.                  redirected from a file to allow the automatic addition of
  275.                  an archive comment (currently this only works with ZIP
  276.                  files, I think).
  277.               o  Can take advantage of expanded memory (LIM 4.0 driver
  278.                  required) or extended memory (XMS driver required) to
  279.                  reduce the memory overhead while executing the archiving
  280.                  programs.
  281.               o  Processing can be skipped on archives that are more than a
  282.                  configurable number of days old.
  283.               o  External programs can be defined to be executed before
  284.                  and/or after each archive is processed.
  285.               o  Configurable for additional archiving programs.
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.           Chapter 2. Summary of Features                             Page 2
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.                                     Chapter Three
  310.  
  311.                              Archive Programs Supported
  312.  
  313.  
  314.           Currently, there are a multitude of mostly incompatible archiving
  315.           utilities available.  While a standard would be beneficial to the
  316.           BBS community, it's not likely to occur in the near future.
  317.  
  318.           To help cope with the different formats and to make conversion
  319.           from one to another easy I wrote ZZAP.  It allows conversion from
  320.           one format to another, quickly and painlessly.  ZZAP doesn't
  321.           actually do any conversion on its own.  Rather, it acts as a
  322.           shell around the archivers - automating the process.
  323.  
  324.           The archive programs and version numbers tested under are:
  325.  
  326.                DWC A4.95
  327.                ICE 1.14
  328.                LHARC 1.13
  329.                LUE 2.20 (extraction only)
  330.                MD (unknown version number - tested by user)
  331.                PAK 2.0
  332.                PKPAK/PKUNPAK 3.61 (a.k.a. PKARC/PKXARC)
  333.                PKZIP/PKUNZIP 1.10
  334.                ZOO 2.01
  335.  
  336.           Other formats should work if properly configured but there is no
  337.           guarantee.  If you run across an archiving program that does not
  338.           work under ZZAP I would like to hear about it so I can make the
  339.           necessary modifications.
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.           Chapter 3. Archive Programs Supported                      Page 3
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.                                     Chapter Four
  374.  
  375.                                  Configuration File
  376.  
  377.  
  378.           ZZAP relies on a configuration file (ZZAP.CFG) to know how to arc
  379.           and unarc.  There are a number commands allowed in the
  380.           configuration file, three of them are required (ARC=, UNARC=, and
  381.           DEFAULT=) and the rest are optional (LOG=, BADDIR=, SWITCH=,
  382.           FIXER=, AGE=, PRE=, MID=, POST=, and SCANOPT=).  The order of the
  383.           commands are unimportant.
  384.  
  385.           Each command is on its own line.  Placing multiple commands on a
  386.           single line will result in improper operation.  A configuration
  387.           file is included with this package that may be uses "as-is" or
  388.           may be modified for your personal preferences.
  389.  
  390.  
  391.           4.1  ARC=
  392.  
  393.  
  394.           ARC= defines the command used to archive.  This command can
  395.           appear as many times as required to define all of the various
  396.           archive types you may use.  The syntax for this command is:
  397.  
  398.                     ARC=EXT PROGNAME OPTIONS
  399.  
  400.           EXT represents the filename extension used by this particular
  401.           archiver, PKZIP, for example, uses ZIP.  Do NOT include a leading
  402.           period.
  403.  
  404.           PROGNAME is the name of the actual archiving program.  If the
  405.           filename extension is not given the a search will be made for
  406.           both COM and EXE.  Including the extension will improve the
  407.           performance of ZZAP.
  408.  
  409.           OPTIONS is the command line options used to create an archive.
  410.           ZOO, for example, uses "-ADD" while PKPAK uses "-A".  Since some
  411.           archiving programs use both upper and lower case letters to
  412.           represent different actions, this item's case is left intact.
  413.           OPTIONS also may include the "%1" to indicate where the archive
  414.           files name should be placed on the command line.  In previous
  415.           version the archive name was appended to the end of the command
  416.           line if the %1 was omitted.  This is no longer true, now you MUST
  417.           specify the %1 if you wish the archive name on the command line.
  418.  
  419.           If you wish to redirect the standard input or output of the
  420.           archiving program then put the redirection command at the end of
  421.           OPTIONS.  ZZAP allows three types of redirection: > redirects the
  422.           output, < redirects the input, and >> appends redirection to the
  423.           indicated file.
  424.  
  425.  
  426.  
  427.           Chapter 4. Configuration File                              Page 4
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.           The following are all legal ARC= commands:
  435.  
  436.                          ARC=ARC PKPAK -A %1 *.*
  437.                          ARC=DWC DWC.EXE AZ %1 *.*
  438.                          ARC=PAK PAK A %1 *.*
  439.                          ARC=LZH LHARC.EXE a %1 *.*
  440.                          ARC=ZIP PKZIP -A -EX
  441.                          ARC=ZOO ZOO.EXE -ADD %1 * >NUL
  442.                          ARC=ZIP PKZIP.EXE -a -z %1 *.* >NUL <HEADER.ANS
  443.  
  444.           The last two examples have their display output redirected to the
  445.           NUL device, resulting in the normal output to not be displayed.
  446.           The last example has its standard input redirected from the file
  447.           "HEADER.ANS".  THE -z option of PKZIP is the add archive comment
  448.           command.  The contents of the file will be used as the archive
  449.           comment.
  450.  
  451.           Note that if there is an error when attempting to open a file for
  452.           redirection a second attempt will be made to redirect using the
  453.           NUL device.  This is so that PKZIP (and possibly other programs)
  454.           won't sit and wait for input from the keyboard.
  455.  
  456.           See also COMSPEC.
  457.  
  458.  
  459.           4.2  UNARC=
  460.  
  461.  
  462.           The next command is UNARC=.  This is the commands to unarc the
  463.           various types of archives.  This command can appear as many times
  464.           as necessary to define all the archive types you may use.  The
  465.           syntax for this command is:
  466.  
  467.                          UNARC=EXT PROGNAME OPTIONS
  468.  
  469.           EXT is the extension used by this type of archive.
  470.  
  471.           PROGNAME is the name of the program used to extract files in the
  472.           archive.
  473.  
  474.           OPTIONS is the command line options used to extract files from
  475.           the archive.  As with the ARC command, "%1" may also be included
  476.           to indicate the position of the archive file name.
  477.  
  478.           If you wish the display output of the  unarcing program to be
  479.           redirected you should list the redirection command last.
  480.  
  481.           For unarcing to work with ZZAP it MUST extract all files in an
  482.           archive if a filename is not given after the archive name.
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.           Chapter 4. Configuration File                              Page 5
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.           The following are all legal UNARC commands:
  499.  
  500.                          UNARC=ARC PKXARC.EXE
  501.                          UNARC=DWC DWC E %1 *.*
  502.                          UNARC=LZH LHARC.EXE e
  503.                          UNARC=PAK PAK E %1 *.*
  504.                          UNARC=ZIP PKUNZIP.EXE %1 >NUL
  505.                          UNARC=ZOO ZOO -EXTRACT %1 >NUL
  506.  
  507.           The last two examples have their display output redirected to the
  508.           NUL device.
  509.  
  510.           Subdirectories
  511.           It is recommended that you turn on creation of subdirectories if
  512.           the archive format supports storing subdirectories along with
  513.           file names.  This is to allow ZZAP to detect the subdirectories
  514.           and treat the archive as BAD.  If the unarc program allows all
  515.           files to be placed in a single subdirectory a file name conflict
  516.           can arise, resulting in the unarc program stopping and waiting
  517.           for keyboard input to verify a file overwrite.  This could
  518.           potentially stop your computer dead, leaving the BBS system off-
  519.           line until manually continued.
  520.  
  521.           The unarc program MUST allow the subdirectories created to be
  522.           children of the temporary subdirectory.
  523.  
  524.                          UNARC=ZIP PKUNZIP.EXE -d %1 >NUL
  525.  
  526.           This example causes PKUNZIP to create subdirectories if the
  527.           information is stored with the file names.  ZZAP will detect the
  528.           creation of any subdirectories, log the error message, move the
  529.           archive to the BAD subdirectory, and clean up (remove all files
  530.           and subdirectories extracted from the archive).
  531.  
  532.           If the unarc program creates the subdirectores anyplace besides
  533.           in the temporary subdirectory ZZAP will not be able to detect
  534.           them, the contents of the new archive will be incomplete, and the
  535.           subdirectories created will remain on your disk.
  536.  
  537.           See also COMSPEC.
  538.  
  539.  
  540.           4.3  DEFAULT=
  541.  
  542.  
  543.           This is the default extension used to decide which archiving
  544.           format to convert to.  The extension given must match one of the
  545.           extensions given with the ARC= command.  If a match is not found
  546.           the program will halt with an error.  The syntax for this command
  547.           is:
  548.  
  549.                          DEFAULT=ext
  550.  
  551.           where ext is the file extension corresponding to an archive type.
  552.  
  553.  
  554.  
  555.           Chapter 4. Configuration File                              Page 6
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.           The following are legal DEFAULT commands:
  563.  
  564.                          DEFAULT=ZIP
  565.                          DEFAULT=ZOO
  566.                          DEFAULT=.ARC
  567.  
  568.           Note that the preceding period is optional.
  569.  
  570.           You can override DEFAULT= with the command line switch /E.
  571.  
  572.  
  573.           4.4  BADDIR=
  574.  
  575.  
  576.           Whenever an archive fails to unarc properly or fails the virus
  577.           check it will be renamed to so the second character of the
  578.           extension is "!", e.g. "Z!P".  By default the file is kept in its
  579.           original subdirectory.  If you wish bad archives to be placed in
  580.           a special subdirectory you may use the BADDIR= command.  Simply
  581.           name the subdirectory you wish to use.  This subdirectory must
  582.           already exist for this option to work properly.  Example:
  583.  
  584.                          BADDIR=C:\BAD
  585.  
  586.           The defined subdirectory can be on a different drive but if the
  587.           file move is unsuccessful the file will simply be renamed to have
  588.           the normal bad extension (the default mode).
  589.  
  590.  
  591.           4.5  LOG=
  592.  
  593.  
  594.           The final command allowed in the configuration file is LOG=.
  595.           This defines the path and file name of the log file (see below).
  596.           If you do not plan on using the log option then you may omit this
  597.           command.
  598.  
  599.           Its syntax is:
  600.  
  601.                          LOG=filename
  602.  
  603.           For example:
  604.  
  605.                          LOG=C:\DOCS\ZZAP.LOG
  606.  
  607.           This command is only necessary if you plan on using the /L
  608.           command line switch.
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.           Chapter 4. Configuration File                              Page 7
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.           4.6  SWITCH=
  627.  
  628.  
  629.           Use this to specify your default command line switches.  For
  630.           example, if you always use the log and virus checking options you
  631.           can place this in your configuration file:
  632.  
  633.                          SWITCH=/L+/V+
  634.  
  635.           You can always override the options on the command line:
  636.  
  637.                          ZZAP /L-/V- file.ext
  638.  
  639.           The command line always takes precedence over the configuration
  640.           file.
  641.  
  642.  
  643.           4.7  FIXER=
  644.  
  645.  
  646.           Specify the name of your BBS download list fix-up program and
  647.           command line options with this command.  For example, if you are
  648.           running a QuickBBS bulletin board system you can specify
  649.           FIXER=QFIX.EXE (included in this package).
  650.  
  651.           Include any command line options needed immediately after the
  652.           fix-up program name.  For example, to automatically update the
  653.           4DOS description file the proper syntax would be:
  654.  
  655.                          FIXER=QFIX.EXE DESCRIPT.ION
  656.  
  657.           This command is only needed if you plan on using the /C command
  658.           line switch.
  659.  
  660.           See also COMSPEC.
  661.  
  662.  
  663.           4.8  AGE=
  664.  
  665.  
  666.           If this command is used then only files that are within the
  667.           specified number of days old will be processed.  For example,
  668.           setting the age to 1 (AGE=1) will result in only files that are
  669.           one day old (files with today's date ONLY) to be processed by
  670.           ZZAP.
  671.  
  672.           Sysops who have an "event" at midnight will generally wish to set
  673.           AGE= to 2, allowing files from today and yesterday to be
  674.           processed.  When using this feature you should use the /DO
  675.           command line switch (keep original dates of files).  Assuming you
  676.           stamped the files with the date they are uploaded, this would
  677.           guarantee that only new archives are processed.
  678.  
  679.  
  680.  
  681.  
  682.  
  683.           Chapter 4. Configuration File                              Page 8
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.           Omitting this command or setting AGE=0 results in the age of a
  691.           file to be completely ignored.
  692.  
  693.           See also the /I command line switch.
  694.  
  695.  
  696.           4.9  PRE=
  697.  
  698.  
  699.           If you wish an external program executed to process an archive
  700.           before its files are extracted declare the program name and
  701.           command line options with this command.
  702.  
  703.                PRE=GETCMTS.EXE %1
  704.  
  705.           With the above example the hypothetical program GETCMTS.EXE will
  706.           be execute with the archive name passed as the command line
  707.           parameter.  The specified program will be executed while in the
  708.           same subdirectory as the archive being processed (regardless of
  709.           the command line parameters).
  710.  
  711.           This program, as well as programs defined by MID= and POST= will
  712.           be executed for nested archives as well.  You should avoid
  713.           creating files in the temporary subdirectories ("Z.I_P" is
  714.           created as a child of the subdirectory holding the archive being
  715.           processed) as these files will be added to the new archive
  716.           (unless that is what you wish done).
  717.  
  718.           While testing ZZAP I often use a "PRE=MAPMEM.EXE >\MAP" to get a
  719.           memory map of the system while shelling to an external program.
  720.           This helps me to optimize memory usage so that the maximum amount
  721.           is available.
  722.  
  723.           See also MID=, POST=, and COMSPEC.
  724.  
  725.  
  726.           4.10  MID=
  727.  
  728.  
  729.           If you wish an external program executed after files have been
  730.           extracted from the old archive but before the new archive has
  731.           been created declare the program name and command line options
  732.           with this command.
  733.  
  734.                MID=DOTHIS.EXE
  735.  
  736.           With the above example the hypothetical program DOTHIS.EXE will
  737.           be executed without any command line options.  The specified
  738.           program will be executed while in the temporary subdirectory ZZAP
  739.           creates to hold the extracted files.
  740.  
  741.           See also PRE=, POST=, and COMSPEC.
  742.  
  743.  
  744.  
  745.  
  746.  
  747.           Chapter 4. Configuration File                              Page 9
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.           4.11  POST=
  755.  
  756.  
  757.           If you wish an external program executed to process the new
  758.           archive after it as been created (or repacked) declare the
  759.           program name and command line options with this command.
  760.  
  761.                POST=PUTCMTS.EXE %1
  762.  
  763.           With the above example the hypothetical program PUTCMTS.EXE will
  764.           be executed with the archive name (the new name) as the command
  765.           line parameter.  The specified program will be executed while in
  766.           the same subdirectory as the archive being processed (regardless
  767.           of the command line parameters).
  768.  
  769.           The main intent of the PRE= and POST= commands is to allow third
  770.           party programmers to create programs that extract archive
  771.           comments from the original archives and then put them into the
  772.           new archives.  Since these are format specific I didn't want to
  773.           program these types of operations into ZZAP.
  774.  
  775.           See also PRE=, MID=, and COMSPEC.
  776.  
  777.  
  778.           4.12  SCANOPT=
  779.  
  780.  
  781.           Place, after this command, any command line options you wish
  782.           passed on to SCAN.EXE when it is executed.  The given options
  783.           will be added after the subdirectory to scan exactly as shown in
  784.           the configuration file.  For example, if you have this in the
  785.           configuration file:
  786.  
  787.                     SCANOPT=/A /NOMEM
  788.  
  789.           SCAN will be executed as:
  790.  
  791.                     SCAN pathname /A /NOMEM
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.           Chapter 4. Configuration File                             Page 10
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.                                     Chapter Five
  822.  
  823.                                   Executing Compsec
  824.  
  825.  
  826.           Any time you declare, in the configuration file, a program to be
  827.           executed you have the option of using %COMSPEC% to indicate to
  828.           ZZAP to execute DOS (normally COMMAND.COM).  With this feature
  829.           you can execute a batch file instead of a single program.  For
  830.           example:
  831.  
  832.                     FIXER=%COMSPEC /C FIXUP %1
  833.  
  834.           If FIXUP is a batch file it will be executed with the archive
  835.           name passed as the parameter.  The /C option is to tell DOS to
  836.           return to the calling program (ZZAP) when execution has been
  837.           completed.
  838.  
  839.           Caution!  When you execute COMSPEC any error codes returned by
  840.           programs will be unseen by ZZAP.
  841.  
  842.           See also PRE=, MID=, and POST=.
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.           Chapter 5. Executing Compsec                              Page 11
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.                                      Chapter Six
  886.  
  887.                                 Command Line Options
  888.  
  889.  
  890.           There are a number of command line options that allow you to
  891.           customize the behavior of ZZAP.  These options can also be
  892.           declared in the configuration file using the SWITCH= statement.
  893.           Command line options override configuration file options.
  894.  
  895.           With the exception of the /E and /D switches, each option is a
  896.           forward slash (/), a letter, and optionally followed by a plus
  897.           (+) or minus (-).  If the option is given but the plus or minus
  898.           is omitted then plus is assumed, e.g. /A is equivalent to /A+.
  899.           Plus (+) turns the option on and minus (-) turns the option off.
  900.  
  901.                    /A          Flag archives with HIDDEN, SYSTEM, or READ-
  902.                                ONLY files (default ON).
  903.                    /B          Allow subdirectories.
  904.                    /C          Call the BBS file description updating
  905.                                program.
  906.                    /D          File date stamping.
  907.                    /E          Extension of archive type to convert to.
  908.                    /F          Create a list of files that were converted
  909.                                (default OFF).
  910.                    /I          Ignore age of files.
  911.                    /K          Keep the original archive (default OFF).
  912.                    /L          Log the activity to a text file (default
  913.                                OFF).
  914.                    /N          Convert archives nested within archives
  915.                                (ON).
  916.                    /P          Prevent overwriting existing archives
  917.                                (default OFF).
  918.                    /R          Recurse subdirectories (default OFF).
  919.                    /S          Strip HIDDEN, SYSTEM, and READ-ONLY
  920.                                attributes (default OFF).
  921.                    /T          Test mode only - no repacking (default OFF).
  922.                    /V          Scan for viruses (default OFF).
  923.                    /X          Use expanded or  extended memory when
  924.                                shelling (default ON).
  925.                    /Z          Enable/disable I/O redirection.
  926.  
  927.  
  928.           6.1  Flag Odd Attributes - /A
  929.  
  930.  
  931.           If this option is ON any archive that contains a file with the
  932.           HIDDEN, SYSTEM, or READ-ONLY attribute will be treated as a
  933.           corrupt archive and be renamed to have a "!" as the second
  934.           character of the extension.  Currently, only PKZIP, LHARC, and
  935.           ICE support attributes within the archive.
  936.  
  937.  
  938.  
  939.           Chapter 6. Command Line Options                           Page 12
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.           It is highly recommended that you have on either the /A or /S
  947.           command at all times since most archiving programs will
  948.           completely ignore hidden files, possibly resulting in lost files.
  949.  
  950.           The /S (strip attributes) command will override this command.
  951.  
  952.  
  953.           6.2  Allow subdirectories - B
  954.  
  955.  
  956.           Some archive formats allow subdirectory information to be
  957.           imbedded into the archive.  By default, ZZAP treats archives with
  958.           subdirectory information as BAD archives, leaving them for you to
  959.           manually examine and process.
  960.  
  961.           If the archive format you are converting to supports
  962.           subdirectories you can have this information automatically
  963.           included in the conversion process by modifying the program
  964.           options for the ARC and UNARC programs and including the /B
  965.           option on the command line (or with the SWITCH= option).
  966.  
  967.           It is assumed that subdirectories that are created by the UNARC
  968.           program will be child directories of ZZAP's temporary work
  969.           subdirectory ZZAP.  If a subdirectory is created elsewhere it
  970.           will not be detected and the files contained therein will not be
  971.           added to the new archive.
  972.  
  973.           *** WARNING ***  Do not use the /B switch unless you are sure
  974.           that the default archive configuration is properly configured to
  975.           allow subdirectory information.  Improper configuration will
  976.           result in the failure of files to be included in the new
  977.           subdirectory.  It is URGED that you manually test all possible
  978.           situations before trusting the /B switch in an unattended mode.
  979.  
  980.           The following archive programs can NOT be used to extract
  981.           subdirectory information.  This limitation is because the
  982.           programs insist on creating the original subdirectories instead
  983.           of creating the subdirectories as children of the current
  984.           directory:
  985.  
  986.                     DWC A495
  987.                     PAK 2.10
  988.  
  989.           This limitation may be removed in future versions of these
  990.           programs or the limitation could be removed by changing the
  991.           configuration of each of these programs in the ZZAP configuration
  992.           file.
  993.  
  994.           This limitation does not exist for the creation of new archives,
  995.           however, it should be noted that because the entire path is
  996.           stored you may not have the subdirectory information that you
  997.           desire.  *** REPEAT OF WARNING *** allow subdirectory creation
  998.           with extreme caution.  It is highly recommended that you leave
  999.  
  1000.  
  1001.  
  1002.  
  1003.           Chapter 6. Command Line Options                           Page 13
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.           out the /B option and handle the subdirectories manual on a
  1011.           case-by-case basis.
  1012.  
  1013.  
  1014.           6.3  Call Update Program - /C
  1015.  
  1016.  
  1017.           Turning this option on causes the fix-up program named in the
  1018.           configuration file (see FIXER=) to be executed after all
  1019.           conversions have been completed.  This removes the necessity to
  1020.           execute the program after running ZZAP.
  1021.  
  1022.           Turning this option on also forces the /F option on as well.
  1023.  
  1024.           This option is ignored when using the Test Only mode (/T).
  1025.  
  1026.  
  1027.           6.4  File Date Stamping - /D
  1028.  
  1029.  
  1030.           ZZAP provides three different options for setting the date and
  1031.           time of the archives after they have been converted.  Immediately
  1032.           follow /D with one of three letters to indicate which stamping
  1033.           method to use:
  1034.  
  1035.                    T           Stamp with the current date and time
  1036.                                (Today).
  1037.                    L           Stamp with the date and time of the most
  1038.                                recent file contained in the archive
  1039.                                (Latest).
  1040.                    O           Keep the original date and time of the
  1041.                                archive (Original).
  1042.  
  1043.           Sysops may wish to use the /DO (original date) option in
  1044.           conjunction with the AGE= configuration file command.  If your
  1045.           daily maintenance event is at midnight you should set AGE=2.
  1046.           After a file is successfully uploaded you should "TOUCH" the file
  1047.           with the current date and time.  When the daily event occurs,
  1048.           only files that are one or two days old will be processed.  Since
  1049.           there shouldn't be any one day old files (assuming a midnight
  1050.           event), only the files uploaded from the previous day will be
  1051.           processed.
  1052.  
  1053.           The default stamping method is /DL.
  1054.  
  1055.  
  1056.           6.5  Target Extension - /E
  1057.  
  1058.  
  1059.           Overrides the DEFAULT= option in the configuration file.  Follow
  1060.           immediately with a three letter extension, for example:
  1061.  
  1062.                     ZZAP /EZIP *.LZH
  1063.  
  1064.  
  1065.  
  1066.  
  1067.           Chapter 6. Command Line Options                           Page 14
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.           The above example will convert all LZH type archives in the
  1075.           current directory to ZIP archives.
  1076.  
  1077.           Unlike the DEFAULT= configuration file option, you must not
  1078.           precede the extension with a period.
  1079.  
  1080.  
  1081.           6.6  File List - /F
  1082.  
  1083.  
  1084.           If the /F+ option is used the text file FILES.FIX will be created
  1085.           that lists each of the files converted.  Each line contains a
  1086.           single entry, first is the full path and file name of the
  1087.           original file, followed by a single space, and finally the new
  1088.           file name (no path), for example:
  1089.  
  1090.                C:\ARCHIVES\MYARC.LZH MYARC.ZIP
  1091.                C:\ARCHIVES\ANOTHER.ZOO ANOTHER.ZIP
  1092.                C:\NEWSTUFF\JUNK.ICE JUNK.ZIP
  1093.  
  1094.           Files that are repacked to the same type (e.g. ZIP to ZIP) will
  1095.           also be listed in this file.  Under some BBS list formats the
  1096.           file size, date, time, etc. are also stored along with the file
  1097.           name and description.  It is up to the programmer of the filter
  1098.           to use or ignore unchanged file names as necessary.
  1099.  
  1100.           This option is ignored when using the Test Only mode (/T).
  1101.  
  1102.           This text file can be used by a filter program to modify any file
  1103.           list as used by most BBS systems to reflect the change of file
  1104.           names.  Included with ZZAP is the program QFIX.EXE that modifies
  1105.           the file list format used by QuickBBS and many other BBS systems
  1106.           as well as the description file used by 4DOS.  See the QFIX
  1107.           document file for additional information.
  1108.  
  1109.           A filter program for TBBS called DIRFIX has been written by Gary
  1110.           W. Funk.  This program is also included with ZZAP by permission.
  1111.  
  1112.           I will be happy to provide some limited assistance in developing
  1113.           filter programs for other BBS list formats.  If you develop a
  1114.           filter program that would be of interest to others, send a copy
  1115.           to me so I can make it available to other sysops.  Appropriate
  1116.           acknowledgments will, of course, be given.
  1117.  
  1118.  
  1119.           6.7  Ignore File Age - /I
  1120.  
  1121.  
  1122.           If you use the AGE= option to ignore files that are more than a
  1123.           specified number of days old you can override this with the /I
  1124.           command.  Enabling the /I option will result in all files
  1125.           (matching the file specification) being processed, regardless of
  1126.           their age.
  1127.  
  1128.  
  1129.  
  1130.  
  1131.           Chapter 6. Command Line Options                           Page 15
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.           6.8  Keeping The Original - /K
  1139.  
  1140.  
  1141.           By default the original archive is deleted after the new archive
  1142.           is successfully created.  To prevent the old archives from being
  1143.           deleted you need to turn ON the /K (keep) option.  For example:
  1144.  
  1145.                          ZZAP /K+ *.ARC
  1146.  
  1147.           This switch can be used in combination with any other option:
  1148.  
  1149.                          ZZAP /K+ /R+ C:\*.ARC
  1150.  
  1151.  
  1152.           6.9  Activity Log - /L
  1153.  
  1154.  
  1155.           If you wish ZZAP to run unattended (see EVENTS below) then you
  1156.           may wish to log its activities.  Including the '/L+' on the
  1157.           command line will turn on the logging option.  The following are
  1158.           examples of using the log options.
  1159.  
  1160.                     ZZAP /L+ C:\UPLOADS\*.ARC
  1161.                     ZZAP /K+/L+/R+ C:\*.ZOO
  1162.  
  1163.           You must use the "LOG=" in the configuration file to define the
  1164.           log file path and name for this option to work.
  1165.  
  1166.           The first time the log option is used the log file is created.
  1167.           On subsequent runs new information is appended to the end of the
  1168.           file.
  1169.  
  1170.           The log file is a standard ASCII file that may be viewed, edited,
  1171.           printed, etc..
  1172.  
  1173.  
  1174.           6.10  Convert Nested - /N
  1175.  
  1176.  
  1177.           If this option is on, any archives nested within an archive being
  1178.           converted will also be converted.  All nested archive types
  1179.           supported will be converted to the default type.  Nested archives
  1180.           are left unchanged if this option is off.
  1181.  
  1182.  
  1183.           6.11  Prevent Overwriting - /P
  1184.  
  1185.  
  1186.           By default an existing archive can be overwritten when
  1187.           converting.  For example, if both TEST.ZIP and TEST.LZH exist and
  1188.           you convert TEST.LZH to a ZIP file, the original TEST.ZIP will be
  1189.           replaced by the new ZIP file (formerly TEST.LZH).  If the /P
  1190.           option is turned on it will prevent this from occurring, in fact,
  1191.  
  1192.  
  1193.  
  1194.  
  1195.           Chapter 6. Command Line Options                           Page 16
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.           any archive that would cause an overwrite would be completely
  1203.           ignored, without any status message being displayed.
  1204.  
  1205.           This option has no effect when using the Test Only mode (/T).
  1206.  
  1207.  
  1208.           6.12  Subdirectory Recursion - /R
  1209.  
  1210.  
  1211.           If you have multiple subdirectories with archives you need to
  1212.           convert, you can either process each subdirectory individually or
  1213.           use the recursion feature of ZZAP.  Subdirectory recursion means
  1214.           ZZAP will start at a given subdirectory and convert all archives
  1215.           in it and all archives in any child subdirectories.  This feature
  1216.           is especially handy when you have a Bulletin Board System with a
  1217.           large number of specialized file areas.
  1218.  
  1219.           Subdirectory Recursion is invoked by the /R command line options.
  1220.           The following are valid command lines:
  1221.  
  1222.                          ZZAP /R+ \FILES\T*.ZOO
  1223.                          ZZAP /R+ \*.ARC
  1224.                          ZZAP /R *.PAK
  1225.                          ZZAP /R+/L+ *.*
  1226.  
  1227.  
  1228.           6.13  Strip Attributes - /S
  1229.  
  1230.  
  1231.           The /S options will strip the HIDDEN, SYSTEM, and READ-ONLY
  1232.           attributes from all files contained in the archive before adding
  1233.           the files to the new archive.  Note that most archiving programs
  1234.           do not support unusual attributes and will simply ignore files
  1235.           containing these three attributes.  You should use either the /A
  1236.           or /S command if there is any chance of any of these three
  1237.           attributes being run across.
  1238.  
  1239.           Turning this option on will cause the /A option to be turned off.
  1240.  
  1241.           This option has no effect when using the Test Only mode (/T).
  1242.  
  1243.  
  1244.           6.14  Test Only - /T
  1245.  
  1246.  
  1247.           If you merely wish to test the integrity of an archive and
  1248.           possibly run a virus check use the /T switch.  All normal steps
  1249.           will be executed with the exception of the creation of the new
  1250.           archive.
  1251.  
  1252.           The date/time stamp of a archives will not be changed during the
  1253.           Test mode unless a /D command is explicitly stated, either in the
  1254.           configuration file with the OPTIONS= command, or on the command
  1255.           line.
  1256.  
  1257.  
  1258.  
  1259.           Chapter 6. Command Line Options                           Page 17
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.           This feature would be more useful with SDN archives if PAK would
  1267.           return a nonzero exit code if the security envelope was missing.
  1268.           Unfortunately, as of version 2.10 it returns a code of zero as
  1269.           long as the archive is not corrupted (beyond the missing security
  1270.           envelope).
  1271.  
  1272.  
  1273.           6.15  Virus Scan - /V
  1274.  
  1275.  
  1276.           The /V option will enable the virus scan option.  You must have
  1277.           version 39 or greater of McAfee Associates virus scanning program
  1278.           SCAN.EXE placed on your execution PATH.  If a virus is detected
  1279.           the archive will be treated as corrupted and an error message
  1280.           will be displayed and placed in the log file (if enabled).
  1281.  
  1282.           See also the SCANOPT= configuration file command.
  1283.  
  1284.  
  1285.           6.16  Expanded/Extended Memory - /X
  1286.  
  1287.  
  1288.           By default ZZAP will take advantage of expanded or extended
  1289.           memory while shelling to an archive program.  This makes more
  1290.           memory available to the archiver and may mean the difference
  1291.           between success or failure in a tight memory system.  If you do
  1292.           NOT wish expanded to be used include the /X- option on the
  1293.           command line.
  1294.  
  1295.           To use expanded memory a LIM 4.0 driver be installed as well as
  1296.           sufficient EMS to store the bulk of the program and data.
  1297.  
  1298.           To use extended memory an XMS driver such as HIMEM.SYS (available
  1299.           free from Microsoft) must be installed as well as sufficient
  1300.           extended memory to store the bulk of the program and data.
  1301.  
  1302.  
  1303.           6.17  Enable/Disable I/O Redirection - /Z
  1304.  
  1305.  
  1306.           Turning this option off disables all I/O redirection.  ZZAP is
  1307.           configured to redirect all the output of the external programs to
  1308.           the NULL device to keep a clean screen.  When you are having a
  1309.           problem with program configuration it is often helpful to turn
  1310.           off the redirection so you can see each phase of the conversion
  1311.           process.  Using this commmand line switch is much easier than
  1312.           editing the configuration file to remove the redirection
  1313.           commands.
  1314.  
  1315.           This option is ON by default.
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.           Chapter 6. Command Line Options                           Page 18
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.                                     Chapter Seven
  1334.  
  1335.                            Locating The Configuration File
  1336.  
  1337.  
  1338.           ZZAP will try it's best to locate the configuration file.  Upon
  1339.           execution it searches for the configuration file in the following
  1340.           order:
  1341.  
  1342.              1.  The current subdirectory.
  1343.              2.  The Subdirectory defined by the environment variable
  1344.                  ZZAP=, e.g. ZZAP=C:\BIN.
  1345.              3.  The subdirectory ZZAP.EXE resides in (DOS 3.x only).
  1346.              4.  Each subdirectory defined by PATH in the environment.
  1347.  
  1348.           If you wish to keep the configuration file in a directory not on
  1349.           the PATH and still be able to execute ZZAP from any subdirectory
  1350.           you should set the environment variable:
  1351.  
  1352.                     SET ZZAP=C:\STUFF
  1353.  
  1354.           If the configuration file can not be found ZZAP will halt with an
  1355.           error.
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.           Chapter 7. Locating The Configuration File                Page 19
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.                                     Chapter Eight
  1398.  
  1399.                                     Running ZZAP
  1400.  
  1401.  
  1402.           ZZAP is fully configured for the major archiving programs.  The
  1403.           only change in the configuration file you may need to make is the
  1404.           EXT= command to set your preferred default archive type.
  1405.  
  1406.           To run ZZAP, simply type ZZAP followed by the filename (wild-
  1407.           cards allowed).  The filename MUST have an extension.  If the
  1408.           extension is wild (*) then all archive types defined by UNARC=
  1409.           commands will be converted to the new archive type as defined by
  1410.           ARC=.  The following are legal:
  1411.  
  1412.                     ZZAP *.ZOO
  1413.  
  1414.           Converts all ZOO files in the default subdirectory to the new
  1415.           archive type or repacks ZOO files if that is the default
  1416.           extension.
  1417.  
  1418.                     ZZAP \UPLOADS\AFILE.ZIP
  1419.  
  1420.           Converts AFILE.ZIP, located in the \UPLOADS subdirectory, to the
  1421.           new archiving type.
  1422.  
  1423.                     ZZAP *.*
  1424.  
  1425.           Converts all archive types that are not the default format, in
  1426.           the current subdirectory, to the new archive type.
  1427.  
  1428.           When using a wild-card for the extension archives with the
  1429.           default extension will be ignored.  To repack archives to the
  1430.           same type, e.g. ZIP to ZIP, you must explicitly state the
  1431.           extension.
  1432.  
  1433.                     ZZAP *.ZIP
  1434.  
  1435.           If you wish to repack an archive to the same type you must
  1436.           explicitly name the extension as the default archive type is
  1437.           ignored when doing a wild card conversion (this is to avoid
  1438.           repacking the same archives every time you run ZZAP).
  1439.  
  1440.           If your default archive type is LZH simply give that as the
  1441.           extension to convert:
  1442.  
  1443.                     ZZAP *.LZH
  1444.  
  1445.           When repacking an archive, all archive and file comments are
  1446.           lost.
  1447.  
  1448.  
  1449.  
  1450.  
  1451.           Chapter 8. Running ZZAP                                   Page 20
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.           Note that the /P and /K options are ignored when doing a repack.
  1459.  
  1460.           ZZAP can also accept multiple file names on the command line:
  1461.  
  1462.                     ZZAP /V *.ZIP *.*
  1463.  
  1464.           Assuming a default archive type of ZIP, this example first
  1465.           repacks all ZIP files (and does a virus check) then converts all
  1466.           other types to ZIP format, also with a virus check.  If the order
  1467.           had been changed, "ZZAP /V *.* *.ZIP", all archives would be
  1468.           converted to ZIP format then all ZIP files would be repacked,
  1469.           clearly not the intention.
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.           Chapter 8. Running ZZAP                                   Page 21
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.                                     Chapter Nine
  1526.  
  1527.                                    Nested Archives
  1528.  
  1529.  
  1530.           It is not uncommon to find archives nested inside an archive.  A
  1531.           program that includes source code may have the source code
  1532.           archived and placed within the main archive.  ZZAP will properly
  1533.           handle this situation and convert the nested archives to the new
  1534.           format.  If fact, it will even convert nested archives of a
  1535.           differing types.  Theoretically, an unlimited amount of nesting
  1536.           can be handled, only limited by available memory, but this has
  1537.           only been tested one deep.
  1538.  
  1539.           If you do not wish nested archives to be converted you should use
  1540.           the /N- option on the command line or place it in the
  1541.           configuration file using the SWITCH= command.
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.           Chapter 9. Nested Archives                                Page 22
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.                                      Chapter Ten
  1590.  
  1591.                                When Good Files Go Bad
  1592.  
  1593.  
  1594.           If a file is found to be corrupted further processing on that
  1595.           file is halted and the archive is renamed to have a "!" as the
  1596.           second character of the extension, for example, "Z!P".  If the
  1597.           corrupted archive is nested only the parent archive is renamed.
  1598.           You will have to manually unarc the archive to find the actual
  1599.           problem.
  1600.  
  1601.           ZZAP assumes that a file is corrupted when the "EXIT CODE" for
  1602.           the unarc program is nonzero.
  1603.  
  1604.           PAK version 1.0 is known to not return a proper error code so
  1605.           ZZAP will not work with it.  I'm not sure which version they
  1606.           fixed the bug in.  I do know that it works properly with PAK
  1607.           version 1.6.
  1608.  
  1609.           Just because ZZAP says an archive is corrupted does not
  1610.           necessarily mean it is true.  When the archiving program returns
  1611.           a nonzero exit code ZZAP has know way of knowing what the code
  1612.           represents.  Some of the reasons an archive might be flagged as
  1613.           bad are:
  1614.  
  1615.               o  Archive is truly corrupted.
  1616.  
  1617.               o  Insufficient memory, there was enough memory to execute
  1618.                  the archiving program but not enough for the archiving
  1619.                  program to properly process the archive.
  1620.  
  1621.               o  Insufficient disk space.  A very large archive can quickly
  1622.                  eat up disk space.  Even a seemingly small archive can
  1623.                  suddenly expand into a big file.  Font files, for example,
  1624.                  typically compress to only 5% of the original size.  A 72
  1625.                  point font can take more than 1Meg of disk space while
  1626.                  requiring less than 100k when compressed.  Keep in mind
  1627.                  that ZZAP requires enough disk space to hold the original
  1628.                  archive, the expanded files, and the new archive.
  1629.                  Therefore, a 100k archive that expands to 500k and
  1630.                  recompresses to 75k will temporarily require 675k of disk
  1631.                  space.
  1632.  
  1633.               o  Invalid archive version.  When a new version of an archive
  1634.                  program is released it often includes improved
  1635.                  compresssion techniques that older versions of the program
  1636.                  can not handle.  Upgrade your archive software.
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.           Chapter 10. When Good Files Go Bad                        Page 23
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.               o  Command line options as defined in the configuration file
  1651.                  are incorrect.  Double check each ARC= and UNARC= command
  1652.                  in the configuration file.
  1653.  
  1654.               o  Archive program is corrupted.  Make sure that your
  1655.                  archiving programs are working properly.
  1656.  
  1657.               o  Disk error.  If your disk has a bad sector it could result
  1658.                  in a unsuccessful archiving or unarchiving.
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.           Chapter 10. When Good Files Go Bad                        Page 24
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.                                    Chapter Eleven
  1718.  
  1719.                               External Event Conversion
  1720.  
  1721.  
  1722.           Some bulletin board systems support timed "events".  These events
  1723.           are used to automate the operation of the board.  Using an event
  1724.           can make it possible for the bulletin board to automatically
  1725.           handle the conversion of any archive type to the type supported
  1726.           by the board.  A BBS that automatically converts archive types
  1727.           could allow the callers to upload archives of virtually any type.
  1728.  
  1729.           Under FrontDoor, for example, you can use an external event for
  1730.           this process.  An external event causes FrontDoor to terminate
  1731.           with a specified error level.  The error level can then be
  1732.           queried to decide what should be done.
  1733.  
  1734.           Follows is a fragment from a possible batch file to do just this.
  1735.           This example assumes all new uploads are placed in the
  1736.           subdirectory "C:\UPLOADS".
  1737.  
  1738.                IF ERRORLEVEL 87 GOTO do_this
  1739.                IF ERRORLEVEL 86 GOTO arc_convert
  1740.                IF ERRORLEVEL 85 GOTO do_that
  1741.  
  1742.                REM convert all archive types to ZIP files
  1743.                :arc_convert
  1744.                  zzap /l+/f+ c:\uploads\*.*
  1745.  
  1746.                GOTO run_fd
  1747.  
  1748.           There is one problem with this type of system - what happens to
  1749.           the descriptions?  Some BBS programs automatically place the file
  1750.           name and description in an ASCII file.  If the file is then
  1751.           converted the filename is changed and would no longer match the
  1752.           name given with the description.  The /F option and the QFIX
  1753.           program (included) handle the conversion for QuickBBS format file
  1754.           list.
  1755.  
  1756.           See QFIX.DOC for further information.  See also the description
  1757.           of the /C options as well as the configuration file option FIXER=
  1758.           and other related options.
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.           Chapter 11. External Event Conversion                     Page 25
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.                                      Appendix A
  1782.  
  1783.                                      Exit Codes
  1784.  
  1785.  
  1786.           ZZAP will return exit codes upon termination.  These exit codes
  1787.           can be used by a batch file to decide what steps should be taken
  1788.           after running ZZAP.  The exit codes are
  1789.  
  1790.                    0           Normal termination - no errors, viruses, or
  1791.                                corrupted archives.
  1792.                    1           Virus detected.
  1793.                    2           Corrupted archive.
  1794.                    3           Configuration file not found.
  1795.                    4           Not configured for given extension.
  1796.                    5           Couldn't create temporary directory.
  1797.                    6           Other fatal error.
  1798.  
  1799.           There is a possibility for both a corrupted archive and a virused
  1800.           archive to have been detected (bad day!).  In this case an exit
  1801.           code of 1 (virus detected) will be returned, specifying the more
  1802.           critical situation.
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.           Appendix A. Exit Codes                                         26
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.                                      Appendix B
  1846.  
  1847.                                    Acknowledgments
  1848.  
  1849.  
  1850.           Thanks to:
  1851.  
  1852.               o  Ken Doebler and Dan Geatons for their many suggestions.
  1853.  
  1854.               o  Randall Greylock (1:321/202.4) for pointing out an oddity
  1855.                  with ZOO and many fine suggestions which were implemented.
  1856.  
  1857.               o  Charles Falconer (1:141/488) for pointing out that I
  1858.                  didn't handle unusual file attributes (which LHARC and
  1859.                  PKZIP archives may retain) and other suggestions.
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.           Appendix B. Acknowledgments                                    27
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.                                      Appendix C
  1910.  
  1911.                                My Lawyer Made Me Do It
  1912.  
  1913.  
  1914.               -  DWC is copyright (c)1986,87,88 Dean W. Cooper.
  1915.               -  LHARC and ICE are copyright (c)1988,89 Haruyasu
  1916.                  Yoshizaki-san.
  1917.               -  LUE is copyright (c)1985 Vernon D. Buerg.
  1918.               -  PAK is copyright (c)1988,89 NoGate Consulting
  1919.               -  GSARC is copyright (c)1988 NoGate Consulting
  1920.               -  PKARC/PKXARC and PKPAK/PKUNPAK are copyright (c)1986,87,88
  1921.                  PKWare, Inc.
  1922.               -  PKZIP/PKUNZIP are copyright (c)1989 PkWare, Inc.
  1923.               -  ZOO is copyright (c)1988 Rahul Dhesi
  1924.               -  FrontDoor is copyright (c)1988,89 Scandinavian PC Systems
  1925.                  and InterZone Software, Inc.
  1926.               -  DIRFIX is copyright (c)1990 Gary W. Funk.
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.           Appendix C. My Lawyer Made Me Do It                            28
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.                                      Appendix D
  1974.  
  1975.                                    Version History
  1976.  
  1977.  
  1978.           Version 6.1 Changes
  1979.           ===================
  1980.  
  1981.               -  Added the /B command line switch and support for
  1982.                  subdirectory information in archives.
  1983.               -  Slightly changed the way temporary files are handled to
  1984.                  improve support on networked multi-line BBS's.
  1985.  
  1986.           Version 6.0 Changes
  1987.           ===================
  1988.  
  1989.               -  Added the PRE=, MID=, and POST= configuration file
  1990.                  commands.
  1991.               -  Added support for %COMSPEC% when declaring programs to
  1992.                  execute.
  1993.               -  Added support for >> type output redirection.
  1994.               -  Changed /T to /D.
  1995.               -  A new test mode has been added.  Using /T now initiates a
  1996.                  test mode, no new archives are created.
  1997.               -  The date/time stamp is left unaltered when using the /T
  1998.                  command unless a /D option is explicitly stated.
  1999.               -  Instead of searching the path for all of the UNARC
  2000.                  programs at start-up, which can be a slow process if more
  2001.                  than a few are defined, ZZAP now only searches for the
  2002.                  programs when actually required.  The full path, if found,
  2003.                  is saved so that subsequent searches are not required.
  2004.  
  2005.           Version 5.9 Changes
  2006.           ===================
  2007.  
  2008.               -  Changed the way temporary files are handled, ZZAP can now
  2009.                  work with archive programs that insist on using a specific
  2010.                  extension.
  2011.                  Duplicate archives are not deleted until the new archive
  2012.                  has been successfully created.
  2013.               -  Added a few new error messages in the log file.
  2014.               -  When I added input redirection capabilities I also
  2015.                  introduced a bug that would could cause the wrong files to
  2016.                  be closed when turning off redirection after an execute.
  2017.                  This is now fixed.
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.           Appendix D. Version History                                    29
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.           Version 5.8 Changes
  2035.           ===================
  2036.  
  2037.               -  Removed the /O command line option and replaced it with
  2038.                  the more versatile /T option.
  2039.               -  Added the /I (ignore file age) command to the command line
  2040.                  switches.
  2041.               -  Added the AGE= command to the configuration file.  ZZAP
  2042.                  can now be configured to skip processing of files that are
  2043.                  more than a specified number of days old.
  2044.               -  Added an index to the documents
  2045.               -  ZZAP is now DesqView aware.
  2046.  
  2047.           Version 5.7 Changes
  2048.           ===================
  2049.  
  2050.               -  Added support for redirection of input for called
  2051.                  programs.  This will allow you to automatically add
  2052.                  archives comments when converting to some archive formats.
  2053.               -  Deleted the FIXOPT= configuration file command.  Now the
  2054.                  FIXER= command does double duty - defining the program
  2055.                  name and options.
  2056.  
  2057.           Version 5.6 Changes
  2058.           ===================
  2059.  
  2060.               -  Corrected a bug where a bad archive could not be
  2061.                  successfully moved to a "bad directory" as defined by the
  2062.                  BADDIR= configuration option.
  2063.               -  If an archive contains subdirectory information and you
  2064.                  have the unarc option set to create subdirectories, ZZAP
  2065.                  will now handle this in a graceful manner by deleting the
  2066.                  subdirectories that were created, treating the archive as
  2067.                  bad, and logging an appropriate message.  Formerly, ZZAP
  2068.                  would crash when it was unable to remove its temporary
  2069.                  work subdirectory.
  2070.               -  When an archive nested inside another archive is found to
  2071.                  be corrupt, only the parent archive (containing the
  2072.                  corrupt child archive) will be moved to BADDIR instead of
  2073.                  both the parent and child archives.
  2074.               -  Stamped a new bug where a nested archive would be stored
  2075.                  with its temporary name (*.Z!Z) as well as the old
  2076.                  extension, resulting in larger archives.
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.           Appendix D. Version History                                    30
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.           Version 5.5 Changes
  2099.           ===================
  2100.  
  2101.               -  Due to a bug in my code the error code returned by
  2102.                  SCAN.EXE was not being processed correctly.  This could
  2103.                  allow archives with infected programs to slip by.
  2104.               -  Cleaned up the display of error and warning messages.
  2105.               -  The log file is now only date/time stamped if something is
  2106.                  actually done.
  2107.               -  The number of files skipped due to the /P+ option is now
  2108.                  displayed with other status information.
  2109.  
  2110.           Version 5.4 Changes
  2111.           ===================
  2112.  
  2113.               -  Added the /C command line option.
  2114.               -  Added the FIXER=, FIXOPT= and SCANOPT= configuration file
  2115.                  commands.
  2116.               -  Corrupted archives are renamed to have a "!" as the second
  2117.                  character of the extension instead of "BAD" being the
  2118.                  extension.
  2119.  
  2120.           Version 5.3 Changes
  2121.           ===================
  2122.  
  2123.               -  Added support for "%1" to allow the archive file names to
  2124.                  be in any position on the command line.
  2125.               -  Corrected a bug where the /N command line switch was being
  2126.                  ignored.
  2127.               -  Bug corrected where the state of Keep (/K+) and/or
  2128.                  PreventOverwrite (/P+) could be lost if more than one file
  2129.                  is given on the command line.
  2130.               -  On the switch status line, "on" is displayed in high-
  2131.                  intensity.
  2132.               -  Completely changed the way the /F option works and added
  2133.                  the QFIX program.
  2134.               -  Conversion of all archive types by indicating the wild-
  2135.                  card extension (e.g. '*.*' was not working, corrected as
  2136.                  of 5.3b.
  2137.  
  2138.           Version 5.2 Changes
  2139.           ===================
  2140.  
  2141.               -  Fixed a bug where the stack would overflow and trash some
  2142.                  internal data.
  2143.               -  Fixed a bug where if /X- was used it wouldn't properly
  2144.                  execute the external programs.
  2145.               -  Removed the ZZAPARC= environmental variable, it is not
  2146.                  longer needed with the addition of the /E command line
  2147.                  switch.
  2148.               -  Added the /N switch (convert nested archives).  Default
  2149.                  ON.
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.           Appendix D. Version History                                    31
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.           Version 5.1 Changes
  2163.           ===================
  2164.  
  2165.               -  Added the SWITCH= configuration file option.
  2166.               -  Changed the way command line options are used.
  2167.  
  2168.           Version 5.0 Changes
  2169.           ===================
  2170.  
  2171.               -  Completely rewrote most of the file searching routines.
  2172.               -  Now supports repacking any archive type, e.g. ZIP to ZIP.
  2173.               -  Added a switch to prevent overwriting of existing
  2174.                  archives.
  2175.  
  2176.           Version 4.8 Changes
  2177.           ===================
  2178.  
  2179.               -  Added support for output redirection.
  2180.               -  ZZAP always thought the bad archive directory (BADDIR=)
  2181.                  didn't exist - whether it did or not.
  2182.               -  Now supports moving a BAD archive to a different drive.
  2183.               -  If BADDIR is defined and the subdirectory exists the file
  2184.                  will be moved their and the extension will NOT be changed
  2185.                  to .BAD.  The extension will be changed to .BAD if BADDIR
  2186.                  is not defined or does not exist.
  2187.  
  2188.           Version 4.7 Changes
  2189.           ===================
  2190.  
  2191.               -  Added the DEFAULT= command in the configuration file.
  2192.               -  Changed the ZZAPARC environmental variable so that it only
  2193.                  requires the file extension.
  2194.               -  Changed the ARC= command in the configuration file so that
  2195.                  multiple archiving programs can be listed.
  2196.               -  Added the /S (strip attributes) command line option.
  2197.               -  Added support for extended memory during archive program
  2198.                  executing.
  2199.               -  The BBS list routine was not working properly if the
  2200.                  filenames in the list file were not uppercase.
  2201.  
  2202.           Version 4.6 Changes
  2203.           ===================
  2204.  
  2205.               -  Added support for virus scanning using McAfee Associates
  2206.                  SCAN.EXE program.
  2207.               -  Added the BADDIR configuration option.
  2208.               -  Improved the error detection code.
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.           Appendix D. Version History                                    32
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.           Version 4.5 Changes
  2227.           ===================
  2228.  
  2229.               -  Added support for multiple file names on the command line.
  2230.               -  Removed bug where ZZAP returned an error message if no
  2231.                  file name was given on the command line.
  2232.  
  2233.           Version 4.4 Changes
  2234.           ===================
  2235.  
  2236.               -  ZZAP wasn't properly reading the exit code of the unarcing
  2237.                  programs.  This resulting in some bad archives slipping
  2238.                  by.
  2239.  
  2240.           Version 4.3 Changes
  2241.           ===================
  2242.  
  2243.               -  Cosmetic changes and code optimization.
  2244.  
  2245.           Version 4.2 Changes
  2246.           ===================
  2247.  
  2248.               -  Trivial B.S. hardly worth mentioning.
  2249.  
  2250.           Version 4.1 Changes
  2251.           ===================
  2252.  
  2253.               -  Corrected a fatal bug introduced in 4.0 that would cause
  2254.                  ZZAP to lose files under PKARC/PKPAK.
  2255.               -  Removed a bug which resulted in the "home" path (DOS 3.x
  2256.                  only) not being located properly.
  2257.  
  2258.           Version 4.0 Changes
  2259.           ===================
  2260.  
  2261.               -  Changed the "/I" option to "/A" - makes more sense.
  2262.                  Log more information about nonstandard file attributes in
  2263.                  the log file.
  2264.               -  Now supports expanded memory (LIM 4.0 only) when shelling,
  2265.                  thus making available more conventional memory when
  2266.                  running the archiving programs.
  2267.  
  2268.           Version 3.6 Changes
  2269.           ===================
  2270.  
  2271.               -  Now properly handles files with attributes of READ-ONLY,
  2272.                  HIDDEN, or SYSTEM, which could cause ZZAP to crash.
  2273.               -  Added the /I option.
  2274.               -  Fixed a bug with the FIXLIST option (/F).
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.           Appendix D. Version History                                    33
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.           Version 3.5 Changes
  2291.           ===================
  2292.  
  2293.               -  Mostly cosmetic changes.
  2294.               -  A minor bug in path searching was fixed.
  2295.  
  2296.           Version 3.4 Changes
  2297.           ===================
  2298.  
  2299.               -  Another minor bug fix, changes in version 3.3 resulted in
  2300.                  archive programs in the default directory not being found.
  2301.  
  2302.           Version 3.3 Changes
  2303.           ===================
  2304.  
  2305.               -  Added the environment variable ZZAPARC= which overrides
  2306.                  the ARC= command in the configuration file.
  2307.               -  The code was cleaned up a bit, as well.
  2308.  
  2309.           Version 3.2 Changes
  2310.           ===================
  2311.  
  2312.               -  Fixed a minor bug related to the environment variable
  2313.                  ZZAP=.
  2314.               -  Now aborts if the archiving (ARC=) program can not be
  2315.                  found.
  2316.               -  Displays an error message if any of the unarcing programs
  2317.                  (UNARC=) can not be found.
  2318.  
  2319.           Version 3.1 Changes
  2320.           ===================
  2321.  
  2322.               -  As of version 3.1 ZZAP will work with DWC.  Prior to this
  2323.                  version DWC would not work because of the way DWC handled
  2324.                  paths.  Most DOS programs support the "parent"
  2325.                  subdirectory path, "..\ARCHIVE.EXT". For some reason DWC
  2326.                  would not.  The parent subdirectory is now converted to a
  2327.                  qualified filename, e.g. "C:\ARCHIVES\MYARC.DWC".
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.           Appendix D. Version History                                    34
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.                                         Index
  2358.  
  2359.  
  2360.           A                                  Fix-up program 8
  2361.           AGE= 15
  2362.           Archive Programs Supported 3       I
  2363.           Attributes 12                      I/O redirection 12
  2364.             Flag funny 12, 17
  2365.             Strip 12, 13, 17                 K
  2366.                                              Keep 12, 15
  2367.           B
  2368.           BBS download list 8                L
  2369.                                              License Agreement 1
  2370.           C                                  List 12, 15
  2371.           Command Line Options 12            Locating The Configuration
  2372.           Command line options                 File 19
  2373.             /A 12                            Log file 7, 12, 16
  2374.             /B 12, 13
  2375.             /C 12, 14                        N
  2376.             /D 8, 12, 14                     Nested Archives 12, 22
  2377.             /E 12, 14                        Nested archives 22
  2378.             /F 12, 14, 15
  2379.             /I 9, 12, 15                     P
  2380.             /K 12, 15                        Path 19
  2381.             /L 12, 16                        POST= 10
  2382.             /N 12, 16                        PRE= 10
  2383.             /P 12, 16                        Prevent overwrite 12
  2384.             /R 12, 17
  2385.             /S 12, 17                        Q
  2386.             /T 12, 17                        QuickBBS 8
  2387.             /V 12, 18
  2388.             /X 12, 18                        R
  2389.             /Z 12, 18                        Redirection 4, 5, 6
  2390.           Configuration File 4               Redirection error 5
  2391.           Configuration File 19              Repack 20
  2392.                                              Running ZZAP 20
  2393.           D
  2394.           Default Extension 6, 12, 14        S
  2395.           Description fix-up 12, 14          SCANV 10, 12, 18
  2396.           DIRFIX 15                          Subdirecties 12, 13
  2397.                                              Subdirectories 6
  2398.           E                                  Subdirectory recursion 12
  2399.           Environment 19                     Summary of Features 2
  2400.           Executing Compsec 11               Switches 8, 12
  2401.           Expanded Memory 12, 18
  2402.           Extended Memory 12, 18             T
  2403.           External Event Conversion 25       Temporary subdirectory 9
  2404.                                              Test mode 12, 14, 15, 17
  2405.           F
  2406.           File date stamping 8, 12           V
  2407.           Filter 15                          Viruses 10, 12, 18
  2408.  
  2409.  
  2410.  
  2411.           Index                                                          35
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.           W                                  Wild-cards 20
  2419.           When Good Files Go Bad 23
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.           Index                                                          36
  2476.