home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / packer / zzap62 / zzap.doc < prev    next >
Text File  |  1991-01-04  |  79KB  |  3,618 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.2
  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                        3
  59.  
  60.                Chapter 3  Running ZZAP                               5
  61.  
  62.                Chapter 4  Archive Programs Supported                 7
  63.  
  64.                Chapter 5  Configuration File                         9
  65.                   5.1  ARC=  . . . . . . . . . . . . . . . . . . . . 9
  66.                   5.2  UNARC=  . . . . . . . . . . . . . . . . . .  10
  67.                   5.3  DEFAULT=  . . . . . . . . . . . . . . . . .  11
  68.                   5.4  BADDIR= . . . . . . . . . . . . . . . . . .  12
  69.                   5.5  SWITCH= . . . . . . . . . . . . . . . . . .  12
  70.                   5.6  FIXER=  . . . . . . . . . . . . . . . . . .  12
  71.                   5.7  AGE=  . . . . . . . . . . . . . . . . . . .  13
  72.                   5.8  PRE=  . . . . . . . . . . . . . . . . . . .  13
  73.                   5.9  MID=  . . . . . . . . . . . . . . . . . . .  14
  74.                   5.10  POST=  . . . . . . . . . . . . . . . . . .  14
  75.                   5.11  SCANOPT= . . . . . . . . . . . . . . . . .  15
  76.  
  77.                Chapter 6  Logging ZZAP Activity                     17
  78.  
  79.                Chapter 7  Executing Compsec                         19
  80.  
  81.                Chapter 8  Command Line Options                      21
  82.                   8.1  Flag Odd Attributes - /A  . . . . . . . . .  21
  83.                   8.2  Allow subdirectories - B  . . . . . . . . .  22
  84.                   8.3  Call Update Program - /C  . . . . . . . . .  23
  85.                   8.4  File Date Stamping - /D . . . . . . . . . .  23
  86.                   8.5  Target Extension - /E . . . . . . . . . . .  23
  87.                   8.6  File List - /F  . . . . . . . . . . . . . .  24
  88.                   8.7  Ignore File Age - /I  . . . . . . . . . . .  24
  89.                   8.8  Keeping The Original - /K . . . . . . . . .  25
  90.                   8.9  Convert Nested - /N . . . . . . . . . . . .  25
  91.                   8.10  Prevent Overwriting - /P . . . . . . . . .  25
  92.                   8.11  Subdirectory Recursion - /R  . . . . . . .  25
  93.                   8.12  Strip Attributes - /S  . . . . . . . . . .  26
  94.                   8.13  Test Only - /T . . . . . . . . . . . . . .  26
  95.                   8.14  Virus Scan - /V  . . . . . . . . . . . . .  26
  96.                   8.15  Expanded/Extended Memory - /X  . . . . . .  27
  97.                   8.16  Enable/Disable I/O Redirection - /Z  . . .  27
  98.  
  99.                Chapter 9  Locating The Configuration File           29
  100.  
  101.                Chapter 10  Running ZZAP                             31
  102.  
  103.  
  104.  
  105.  
  106.                                           i
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.                Chapter 11  Nested Archives                          33
  114.  
  115.                Chapter 12  When Good Files Go Bad                   35
  116.  
  117.                Chapter 13  External Event Conversion                37
  118.  
  119.                Appendix A  Exit Codes                               39
  120.  
  121.                Appendix B  Acknowledgments                          41
  122.  
  123.                Appendix C  My Lawyer Made Me Do It                  43
  124.  
  125.                Appendix D  Version History                          45
  126.  
  127.                Index                                                53
  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
  197.           fee of $15 is required (plus $5.00 for a printed manual).  Please
  198.           let me know what version you currently have so that I can be sure
  199.           to send you an update (when available).
  200.  
  201.           Payment should be by check or money in U.S. funds drawn on a U.S.
  202.           bank.  I can not be responsible for cash that is sent through the
  203.           mail.  Printing the file "ORDER.FRM" will produce an order form
  204.           that you can use to register ZZAP.  Send your registration and/or
  205.           inquiry to:
  206.  
  207.                          Ross Neilson Wentworth
  208.                          1422 Elkgrove Circle, #3
  209.                          Venice, CA  90291
  210.                          (213)399-1244
  211.  
  212.  
  213.           The latest version of ZZAP can be found on West Los Angeles BBS,
  214.           (213)838-9229 or The Software Resource (1:102/330) at
  215.           (213)214-2018.
  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.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.           Page 2                               Chapter 1. License Agreement
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.                                      Chapter Two
  300.  
  301.                                  Summary of Features
  302.  
  303.  
  304.               o  Automated conversion between the most common archive types
  305.                  (ARC, DWC, ICE, LBR, LZH, MD, PAK, SDN, ZIP, and ZOO).
  306.               o  Automatically converts nested archives including nested
  307.                  archives of different types.  A switch is provided to
  308.                  disable this feature.
  309.               o  Optionally convert archives in multiple subdirectories
  310.                  (subdirectory recursion).
  311.               o  Accepts wild-card designations and multiple file names on
  312.                  the command line.
  313.               o  Repack archives to same type.
  314.               o  Renames or moves corrupted archive for later examination.
  315.               o  User defined arcing and unarcing options.
  316.               o  Deletes old archives by default, options to keep them.
  317.               o  Optional logging of ZZAP activities to a text file.
  318.               o  Optionally create a text file listing the archives
  319.                  converted, suitable for use by filter programs to update
  320.                  the file list as used by BBS programs.
  321.               o  Flag archives containing files with Hidden, System, or
  322.                  ReadOnly attributes as "bad" or optionally strip the funny
  323.                  attributes.
  324.               o  Can automatically check an archive for viruses using the
  325.                  virus scanning program SCAN.EXE (version 39 or later) from
  326.                  McAfee Associates.
  327.               o  The standard input of programs that are executed can be
  328.                  redirected from a file to allow the automatic addition of
  329.                  an archive comment (currently this only works with ZIP
  330.                  files, I think).
  331.               o  Can take advantage of expanded memory (LIM 4.0 driver
  332.                  required) or extended memory (XMS driver required) to
  333.                  reduce the memory overhead while executing the archiving
  334.                  programs.
  335.               o  Processing can be skipped on archives that are more than a
  336.                  configurable number of days old.
  337.               o  External programs can be defined to be executed before
  338.                  and/or after each archive is processed.
  339.               o  Configurable for additional archiving programs.
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.           Chapter 2. Summary of Features                             Page 3
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.           Page 4                             Chapter 2. Summary of Features
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.                                     Chapter Three
  428.  
  429.                                     Running ZZAP
  430.  
  431.  
  432.           The basic syntax of ZZAP is:
  433.  
  434.                     ZZAP [switches] filespec [filespec ...]
  435.  
  436.           Where [options] is any of the optional command line switches and
  437.           filespec is a file name, wilcard specification, or the name of a
  438.           file indicating a list of files.  A "list" file is signified by
  439.           preceding the file name with the '@' character, for example:
  440.  
  441.                     ZZAP @newfiles.lst
  442.  
  443.           You can mix filespecs on the command line, giving a combination
  444.           of specific file names, wildcards, and list files; limited only
  445.           by the length of the command line (80 characters):
  446.  
  447.                     ZZAP AFILE.ZOO *.LZH @UPLOADS.LST
  448.  
  449.           Every attempt has been made to supply a universally acceptable
  450.           configuration file (ZZAP.CFG).  Everybody, of course, has
  451.           personal preferences so you may wish to modify it for your
  452.           special needs.  Consult the chapter on the configuration file for
  453.           information on customizing ZZAP operations.
  454.  
  455.           If you wish to log the activity of ZZAP you need to specify the
  456.           full path and file name of the log file.  See the chapter Logging
  457.           ZZAP Activity for details.
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.           Chapter 3. Running ZZAP                                    Page 5
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.           Page 6                                    Chapter 3. Running ZZAP
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.                                     Chapter Four
  556.  
  557.                              Archive Programs Supported
  558.  
  559.  
  560.           Currently, there are a multitude of mostly incompatible archiving
  561.           utilities available.  While a standard would be beneficial to the
  562.           BBS community, it's not likely to occur in the near future.
  563.  
  564.           To help cope with the different formats and to make conversion
  565.           from one to another easy I wrote ZZAP.  It allows conversion from
  566.           one format to another, quickly and painlessly.  ZZAP doesn't
  567.           actually do any conversion on its own.  Rather, it acts as a
  568.           shell around the archivers - automating the process.
  569.  
  570.           The archive programs and version numbers tested under are:
  571.  
  572.                DWC A4.95
  573.                ICE 1.14
  574.                LHARC 1.13
  575.                LUE 2.20 (extraction only)
  576.                MD (unknown version number - tested by user)
  577.                PAK 2.0
  578.                PKPAK/PKUNPAK 3.61 (a.k.a. PKARC/PKXARC)
  579.                PKZIP/PKUNZIP 1.10
  580.                ZOO 2.01
  581.  
  582.           Other formats should work if properly configured but there is no
  583.           guarantee.  If you run across an archiving program that does not
  584.           work under ZZAP I would like to hear about it so I can make the
  585.           necessary modifications.
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.           Chapter 4. Archive Programs Supported                      Page 7
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.           Page 8                      Chapter 4. Archive Programs Supported
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.                                     Chapter Five
  684.  
  685.                                  Configuration File
  686.  
  687.  
  688.           ZZAP relies on a configuration file (ZZAP.CFG) to know how to arc
  689.           and unarc.  There are a number commands allowed in the
  690.           configuration file, three of them are required (ARC=, UNARC=, and
  691.           DEFAULT=) and the rest are optional (BADDIR=, SWITCH=, FIXER=,
  692.           AGE=, PRE=, MID=, POST=, and SCANOPT=).  The order of the
  693.           commands are unimportant.
  694.  
  695.           Each command is on its own line.  Placing multiple commands on a
  696.           single line will result in improper operation.  A configuration
  697.           file is included with this package that may be uses "as-is" or
  698.           may be modified for your personal preferences.
  699.  
  700.  
  701.           5.1  ARC=
  702.  
  703.  
  704.           ARC= defines the command used to archive.  This command can
  705.           appear as many times as required to define all of the various
  706.           archive types you may use.  The syntax for this command is:
  707.  
  708.                     ARC=EXT PROGNAME OPTIONS
  709.  
  710.           EXT represents the filename extension used by this particular
  711.           archiver, PKZIP, for example, uses ZIP.  Do NOT include a leading
  712.           period.
  713.  
  714.           PROGNAME is the name of the actual archiving program.  If the
  715.           filename extension is not given the a search will be made for
  716.           both COM and EXE.  Including the extension will improve the
  717.           performance of ZZAP.
  718.  
  719.           OPTIONS is the command line options used to create an archive.
  720.           ZOO, for example, uses "-ADD" while PKPAK uses "-A".  Since some
  721.           archiving programs use both upper and lower case letters to
  722.           represent different actions, this item's case is left intact.
  723.           OPTIONS also may include the "%1" to indicate where the archive
  724.           files name should be placed on the command line.  In previous
  725.           version the archive name was appended to the end of the command
  726.           line if the %1 was omitted.  This is no longer true, now you MUST
  727.           specify the %1 if you wish the archive name on the command line.
  728.  
  729.           If you wish to redirect the standard input or output of the
  730.           archiving program then put the redirection command at the end of
  731.           OPTIONS.  ZZAP allows three types of redirection: > redirects the
  732.           output, < redirects the input, and >> appends redirection to the
  733.           indicated file.
  734.  
  735.  
  736.  
  737.           Chapter 5. Configuration File                              Page 9
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.           The following are all legal ARC= commands:
  745.  
  746.                          ARC=ARC PKPAK -A %1 *.*
  747.                          ARC=DWC DWC.EXE AZ %1 *.*
  748.                          ARC=PAK PAK A %1 *.*
  749.                          ARC=LZH LHARC.EXE a %1 *.*
  750.                          ARC=ZIP PKZIP -A -EX
  751.                          ARC=ZOO ZOO.EXE -ADD %1 * >NUL
  752.                          ARC=ZIP PKZIP.EXE -a -z %1 *.* >NUL <HEADER.ANS
  753.  
  754.           The last two examples have their display output redirected to the
  755.           NUL device, resulting in the normal output to not be displayed.
  756.           The last example has its standard input redirected from the file
  757.           "HEADER.ANS".  THE -z option of PKZIP is the add archive comment
  758.           command.  The contents of the file will be used as the archive
  759.           comment.
  760.  
  761.           Note that if there is an error when attempting to open a file for
  762.           redirection a second attempt will be made to redirect using the
  763.           NUL device.  This is so that PKZIP (and possibly other programs)
  764.           won't sit and wait for input from the keyboard.
  765.  
  766.           See also COMSPEC.
  767.  
  768.  
  769.           5.2  UNARC=
  770.  
  771.  
  772.           The next command is UNARC=.  This is the commands to unarc the
  773.           various types of archives.  This command can appear as many times
  774.           as necessary to define all the archive types you may use.  The
  775.           syntax for this command is:
  776.  
  777.                          UNARC=EXT PROGNAME OPTIONS
  778.  
  779.           EXT is the extension used by this type of archive.
  780.  
  781.           PROGNAME is the name of the program used to extract files in the
  782.           archive.
  783.  
  784.           OPTIONS is the command line options used to extract files from
  785.           the archive.  As with the ARC command, "%1" may also be included
  786.           to indicate the position of the archive file name.
  787.  
  788.           If you wish the display output of the  unarcing program to be
  789.           redirected you should list the redirection command last.
  790.  
  791.           For unarcing to work with ZZAP it MUST extract all files in an
  792.           archive if a filename is not given after the archive name.
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.           Page 10                             Chapter 5. Configuration File
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.           The following are all legal UNARC commands:
  809.  
  810.                          UNARC=ARC PKXARC.EXE
  811.                          UNARC=DWC DWC E %1 *.*
  812.                          UNARC=LZH LHARC.EXE e
  813.                          UNARC=PAK PAK E %1 *.*
  814.                          UNARC=ZIP PKUNZIP.EXE %1 >NUL
  815.                          UNARC=ZOO ZOO -EXTRACT %1 >NUL
  816.  
  817.           The last two examples have their display output redirected to the
  818.           NUL device.
  819.  
  820.           Subdirectories
  821.           It is recommended that you turn on creation of subdirectories if
  822.           the archive format supports storing subdirectories along with
  823.           file names.  This is to allow ZZAP to detect the subdirectories
  824.           and treat the archive as BAD.  If the unarc program allows all
  825.           files to be placed in a single subdirectory a file name conflict
  826.           can arise, resulting in the unarc program stopping and waiting
  827.           for keyboard input to verify a file overwrite.  This could
  828.           potentially stop your computer dead, leaving the BBS system off-
  829.           line until manually continued.
  830.  
  831.           The unarc program MUST allow the subdirectories created to be
  832.           children of the temporary subdirectory.
  833.  
  834.                          UNARC=ZIP PKUNZIP.EXE -d %1 >NUL
  835.  
  836.           This example causes PKUNZIP to create subdirectories if the
  837.           information is stored with the file names.  ZZAP will detect the
  838.           creation of any subdirectories, log the error message, move the
  839.           archive to the BAD subdirectory, and clean up (remove all files
  840.           and subdirectories extracted from the archive).
  841.  
  842.           If the unarc program creates the subdirectores anyplace besides
  843.           in the temporary subdirectory ZZAP will not be able to detect
  844.           them, the contents of the new archive will be incomplete, and the
  845.           subdirectories created will remain on your disk.
  846.  
  847.           See also COMSPEC.
  848.  
  849.  
  850.           5.3  DEFAULT=
  851.  
  852.  
  853.           This is the default extension used to decide which archiving
  854.           format to convert to.  The extension given must match one of the
  855.           extensions given with the ARC= command.  If a match is not found
  856.           the program will halt with an error.  The syntax for this command
  857.           is:
  858.  
  859.                          DEFAULT=ext
  860.  
  861.           where ext is the file extension corresponding to an archive type.
  862.  
  863.  
  864.  
  865.           Chapter 5. Configuration File                             Page 11
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.           The following are legal DEFAULT commands:
  873.  
  874.                          DEFAULT=ZIP
  875.                          DEFAULT=ZOO
  876.                          DEFAULT=.ARC
  877.  
  878.           Note that the preceding period is optional.
  879.  
  880.           You can override DEFAULT= with the command line switch /E.
  881.  
  882.  
  883.           5.4  BADDIR=
  884.  
  885.  
  886.           Whenever an archive fails to unarc properly or fails the virus
  887.           check it will be renamed to so the second character of the
  888.           extension is "!", e.g. "Z!P".  By default the file is kept in its
  889.           original subdirectory.  If you wish bad archives to be placed in
  890.           a special subdirectory you may use the BADDIR= command.  Simply
  891.           name the subdirectory you wish to use.  This subdirectory must
  892.           already exist for this option to work properly.  Example:
  893.  
  894.                          BADDIR=C:\BAD
  895.  
  896.           The defined subdirectory can be on a different drive but if the
  897.           file move is unsuccessful the file will simply be renamed to have
  898.           the normal bad extension (the default mode).
  899.  
  900.  
  901.           5.5  SWITCH=
  902.  
  903.  
  904.           Use this to specify your default command line switches.  For
  905.           example, if you always use the virus checking options you can
  906.           place this in your configuration file:
  907.  
  908.                          SWITCH=/V+
  909.  
  910.           You can always override the options on the command line:
  911.  
  912.                          ZZAP /V- file.ext
  913.  
  914.           The command line always takes precedence over the configuration
  915.           file.
  916.  
  917.  
  918.           5.6  FIXER=
  919.  
  920.  
  921.           Specify the name of your BBS download list fix-up program and
  922.           command line options with this command.  For example, if you are
  923.           running a QuickBBS bulletin board system you can specify
  924.           FIXER=QFIX.EXE (included in this package).
  925.  
  926.  
  927.  
  928.  
  929.           Page 12                             Chapter 5. Configuration File
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.           Include any command line options needed immediately after the
  937.           fix-up program name.  For example, to automatically update the
  938.           4DOS description file the proper syntax would be:
  939.  
  940.                          FIXER=QFIX.EXE DESCRIPT.ION
  941.  
  942.           This command is only needed if you plan on using the /C command
  943.           line switch.
  944.  
  945.           See also COMSPEC.
  946.  
  947.  
  948.           5.7  AGE=
  949.  
  950.  
  951.           If this command is used then only files that are within the
  952.           specified number of days old will be processed.  For example,
  953.           setting the age to 1 (AGE=1) will result in only files that are
  954.           one day old (files with today's date ONLY) to be processed by
  955.           ZZAP.
  956.  
  957.           Sysops who have an "event" at midnight will generally wish to set
  958.           AGE= to 2, allowing files from today and yesterday to be
  959.           processed.  When using this feature you should use the /DO
  960.           command line switch (keep original dates of files).  Assuming you
  961.           stamped the files with the date they are uploaded, this would
  962.           guarantee that only new archives are processed.
  963.  
  964.           Omitting this command or setting AGE=0 results in the age of a
  965.           file to be completely ignored.
  966.  
  967.           See also the /I command line switch.
  968.  
  969.  
  970.           5.8  PRE=
  971.  
  972.  
  973.           If you wish an external program executed to process an archive
  974.           before its files are extracted declare the program name and
  975.           command line options with this command.
  976.  
  977.                PRE=GETCMTS.EXE %1
  978.  
  979.           With the above example the hypothetical program GETCMTS.EXE will
  980.           be execute with the archive name passed as the command line
  981.           parameter.  The specified program will be executed while in the
  982.           same subdirectory as the archive being processed (regardless of
  983.           the command line parameters).
  984.  
  985.           This program, as well as programs defined by MID= and POST= will
  986.           be executed for nested archives as well.  You should avoid
  987.           creating files in the temporary subdirectories ("Z.I_P" is
  988.           created as a child of the subdirectory holding the archive being
  989.  
  990.  
  991.  
  992.  
  993.           Chapter 5. Configuration File                             Page 13
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.           processed) as these files will be added to the new archive
  1001.           (unless that is what you wish done).
  1002.  
  1003.           While testing ZZAP I often use a "PRE=MAPMEM.EXE >\MAP" to get a
  1004.           memory map of the system while shelling to an external program.
  1005.           This helps me to optimize memory usage so that the maximum amount
  1006.           is available.
  1007.  
  1008.           See also MID=, POST=, and COMSPEC.
  1009.  
  1010.  
  1011.           5.9  MID=
  1012.  
  1013.  
  1014.           If you wish an external program executed after files have been
  1015.           extracted from the old archive but before the new archive has
  1016.           been created declare the program name and command line options
  1017.           with this command.
  1018.  
  1019.                MID=DOTHIS.EXE
  1020.  
  1021.           With the above example the hypothetical program DOTHIS.EXE will
  1022.           be executed without any command line options.  The specified
  1023.           program will be executed while in the temporary subdirectory ZZAP
  1024.           creates to hold the extracted files.
  1025.  
  1026.           See also PRE=, POST=, and COMSPEC.
  1027.  
  1028.  
  1029.           5.10  POST=
  1030.  
  1031.  
  1032.           If you wish an external program executed to process the new
  1033.           archive after it as been created (or repacked) declare the
  1034.           program name and command line options with this command.
  1035.  
  1036.                POST=PUTCMTS.EXE %1
  1037.  
  1038.           With the above example the hypothetical program PUTCMTS.EXE will
  1039.           be executed with the archive name (the new name) as the command
  1040.           line parameter.  The specified program will be executed while in
  1041.           the same subdirectory as the archive being processed (regardless
  1042.           of the command line parameters).
  1043.  
  1044.           The main intent of the PRE= and POST= commands is to allow third
  1045.           party programmers to create programs that extract archive
  1046.           comments from the original archives and then put them into the
  1047.           new archives.  Since these are format specific I didn't want to
  1048.           program these types of operations into ZZAP.
  1049.  
  1050.           See also PRE=, MID=, and COMSPEC.
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.           Page 14                             Chapter 5. Configuration File
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.           5.11  SCANOPT=
  1065.  
  1066.  
  1067.           Place, after this command, any command line options you wish
  1068.           passed on to SCAN.EXE when it is executed.  The given options
  1069.           will be added after the subdirectory to scan exactly as shown in
  1070.           the configuration file.  For example, if you have this in the
  1071.           configuration file:
  1072.  
  1073.                     SCANOPT=/A /NOMEM
  1074.  
  1075.           SCAN will be executed as:
  1076.  
  1077.                     SCAN pathname /A /NOMEM
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.           Chapter 5. Configuration File                             Page 15
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.           Page 16                             Chapter 5. Configuration File
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.                                      Chapter Six
  1196.  
  1197.                                 Logging ZZAP Activity
  1198.  
  1199.  
  1200.           If you wish ZZAP to run unattended (see EVENTS below) then you
  1201.           may wish to log its activities.  You must specify the drive full
  1202.           path and file name of the log file in the environment with the
  1203.           ZZAPLOG variable.  In your AUTOEXEC.BAT file you should place
  1204.           this (or something similar):
  1205.  
  1206.                     SET ZZAPLOG=C:\LOG\ZZAP.LOG
  1207.  
  1208.           The actual file name will depend upon your system configuration.
  1209.  
  1210.           The first time the log option is used the log file is created.
  1211.           On subsequent runs new information is appended to the end of the
  1212.           file.
  1213.  
  1214.           The log file is a standard ASCII file that may be viewed, edited,
  1215.           printed, etc..  It will contain information about archives
  1216.           converted, virses detected, corrupted archives, and other error
  1217.           messages, along with the times and dates when they occurred.
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.           Chapter 6. Logging ZZAP Activity                          Page 17
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.           Page 18                          Chapter 6. Logging ZZAP Activity
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.                                     Chapter Seven
  1324.  
  1325.                                   Executing Compsec
  1326.  
  1327.  
  1328.           Any time you declare, in the configuration file, a program to be
  1329.           executed you have the option of using %COMSPEC% to indicate to
  1330.           ZZAP to execute DOS (normally COMMAND.COM).  With this feature
  1331.           you can execute a batch file instead of a single program.  For
  1332.           example:
  1333.  
  1334.                     FIXER=%COMSPEC /C FIXUP %1
  1335.  
  1336.           If FIXUP is a batch file it will be executed with the archive
  1337.           name passed as the parameter.  The /C option is to tell DOS to
  1338.           return to the calling program (ZZAP) when execution has been
  1339.           completed.
  1340.  
  1341.           Caution!  When you execute COMSPEC any error codes returned by
  1342.           programs will be unseen by ZZAP.
  1343.  
  1344.           See also PRE=, MID=, and POST=.
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.           Chapter 7. Executing Compsec                              Page 19
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.           Page 20                              Chapter 7. Executing Compsec
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.                                     Chapter Eight
  1452.  
  1453.                                 Command Line Options
  1454.  
  1455.  
  1456.           There are a number of command line options that allow you to
  1457.           customize the behavior of ZZAP.  These options can also be
  1458.           declared in the configuration file using the SWITCH= statement.
  1459.           Command line options override configuration file options.
  1460.  
  1461.           With the exception of the /E and /D switches, each option is a
  1462.           forward slash (/), a letter, and optionally followed by a plus
  1463.           (+) or minus (-).  If the option is given but the plus or minus
  1464.           is omitted then plus is assumed, e.g. /A is equivalent to /A+.
  1465.           Plus (+) turns the option on and minus (-) turns the option off.
  1466.  
  1467.                    /A          Flag archives with HIDDEN, SYSTEM, or READ-
  1468.                                ONLY files (default ON).
  1469.                    /B          Allow subdirectories.
  1470.                    /C          Call the BBS file description updating
  1471.                                program.
  1472.                    /D          File date stamping.
  1473.                    /E          Extension of archive type to convert to.
  1474.                    /F          Create a list of files that were converted
  1475.                                (default OFF).
  1476.                    /I          Ignore age of files.
  1477.                    /K          Keep the original archive (default OFF).
  1478.                    /N          Convert archives nested within archives
  1479.                                (ON).
  1480.                    /P          Prevent overwriting existing archives
  1481.                                (default OFF).
  1482.                    /R          Recurse subdirectories (default OFF).
  1483.                    /S          Strip HIDDEN, SYSTEM, and READ-ONLY
  1484.                                attributes (default OFF).
  1485.                    /T          Test mode only - no repacking (default OFF).
  1486.                    /V          Scan for viruses (default OFF).
  1487.                    /X          Use expanded or  extended memory when
  1488.                                shelling (default ON).
  1489.                    /Z          Enable/disable I/O redirection.
  1490.  
  1491.  
  1492.           8.1  Flag Odd Attributes - /A
  1493.  
  1494.  
  1495.           If this option is ON any archive that contains a file with the
  1496.           HIDDEN, SYSTEM, or READ-ONLY attribute will be treated as a
  1497.           corrupt archive and be renamed to have a "!" as the second
  1498.           character of the extension.  Currently, only PKZIP, LHARC, and
  1499.           ICE support attributes within the archive.
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.           Chapter 8. Command Line Options                           Page 21
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.           It is highly recommended that you have on either the /A or /S
  1513.           command at all times since most archiving programs will
  1514.           completely ignore hidden files, possibly resulting in lost files.
  1515.  
  1516.           The /S (strip attributes) command will override this command.
  1517.  
  1518.  
  1519.           8.2  Allow subdirectories - B
  1520.  
  1521.  
  1522.           Some archive formats allow subdirectory information to be
  1523.           imbedded into the archive.  By default, ZZAP treats archives with
  1524.           subdirectory information as BAD archives, leaving them for you to
  1525.           manually examine and process.
  1526.  
  1527.           If the archive format you are converting to supports
  1528.           subdirectories you can have this information automatically
  1529.           included in the conversion process by modifying the program
  1530.           options for the ARC and UNARC programs and including the /B
  1531.           option on the command line (or with the SWITCH= option).
  1532.  
  1533.           It is assumed that subdirectories that are created by the UNARC
  1534.           program will be child directories of ZZAP's temporary work
  1535.           subdirectory ZZAP.  If a subdirectory is created elsewhere it
  1536.           will not be detected and the files contained therein will not be
  1537.           added to the new archive.  Nested archives that are placed in
  1538.           created subdirectories will not be converted by ZZAP.
  1539.  
  1540.           *** WARNING ***  Do not use the /B switch unless you are sure
  1541.           that the default archive configuration is properly configured to
  1542.           allow subdirectory information.  Improper configuration will
  1543.           result in the failure of files to be included in the new
  1544.           subdirectory.  It is URGED that you manually test all possible
  1545.           situations before trusting the /B switch in an unattended mode.
  1546.  
  1547.           The following archive programs can NOT be used to extract
  1548.           subdirectory information.  This limitation is because the
  1549.           programs insist on creating the original subdirectories instead
  1550.           of creating the subdirectories as children of the current
  1551.           directory:
  1552.  
  1553.                     DWC A495
  1554.                     PAK 2.10
  1555.  
  1556.           This limitation may be removed in future versions of these
  1557.           programs or the limitation could be removed by changing the
  1558.           configuration of each of these programs in the ZZAP configuration
  1559.           file.
  1560.  
  1561.           This limitation does not exist for the creation of new archives,
  1562.           however, it should be noted that because the entire path is
  1563.           stored you may not have the subdirectory information that you
  1564.           desire.  *** REPEAT OF WARNING *** allow subdirectory creation
  1565.           with extreme caution.  It is highly recommended that you leave
  1566.  
  1567.  
  1568.  
  1569.           Page 22                           Chapter 8. Command Line Options
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.           out the /B option and handle the subdirectories manual on a
  1577.           case-by-case basis.
  1578.  
  1579.  
  1580.           8.3  Call Update Program - /C
  1581.  
  1582.  
  1583.           Turning this option on causes the fix-up program named in the
  1584.           configuration file (see FIXER=) to be executed after all
  1585.           conversions have been completed.  This removes the necessity to
  1586.           execute the program after running ZZAP.
  1587.  
  1588.           Turning this option on also forces the /F option on as well.
  1589.  
  1590.           This option is ignored when using the Test Only mode (/T).
  1591.  
  1592.  
  1593.           8.4  File Date Stamping - /D
  1594.  
  1595.  
  1596.           ZZAP provides three different options for setting the date and
  1597.           time of the archives after they have been converted.  Immediately
  1598.           follow /D with one of three letters to indicate which stamping
  1599.           method to use:
  1600.  
  1601.                    T           Stamp with the current date and time
  1602.                                (Today).
  1603.                    L           Stamp with the date and time of the most
  1604.                                recent file contained in the archive
  1605.                                (Latest).
  1606.                    O           Keep the original date and time of the
  1607.                                archive (Original).
  1608.  
  1609.           Sysops may wish to use the /DO (original date) option in
  1610.           conjunction with the AGE= configuration file command.  If your
  1611.           daily maintenance event is at midnight you should set AGE=2.
  1612.           After a file is successfully uploaded you should "TOUCH" the file
  1613.           with the current date and time.  When the daily event occurs,
  1614.           only files that are one or two days old will be processed.  Since
  1615.           there shouldn't be any one day old files (assuming a midnight
  1616.           event), only the files uploaded from the previous day will be
  1617.           processed.
  1618.  
  1619.           The default stamping method is /DL.
  1620.  
  1621.  
  1622.           8.5  Target Extension - /E
  1623.  
  1624.  
  1625.           Overrides the DEFAULT= option in the configuration file.  Follow
  1626.           immediately with a three letter extension, for example:
  1627.  
  1628.                     ZZAP /EZIP *.LZH
  1629.  
  1630.  
  1631.  
  1632.  
  1633.           Chapter 8. Command Line Options                           Page 23
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.           The above example will convert all LZH type archives in the
  1641.           current directory to ZIP archives.
  1642.  
  1643.           Unlike the DEFAULT= configuration file option, you must not
  1644.           precede the extension with a period.
  1645.  
  1646.  
  1647.           8.6  File List - /F
  1648.  
  1649.  
  1650.           If the /F+ option is used the text file FILES.FIX will be created
  1651.           that lists each of the files converted.  Each line contains a
  1652.           single entry, first is the full path and file name of the
  1653.           original file, followed by a single space, and finally the new
  1654.           file name (no path), for example:
  1655.  
  1656.                C:\ARCHIVES\MYARC.LZH MYARC.ZIP
  1657.                C:\ARCHIVES\ANOTHER.ZOO ANOTHER.ZIP
  1658.                C:\NEWSTUFF\JUNK.ICE JUNK.ZIP
  1659.  
  1660.           Files that are repacked to the same type (e.g. ZIP to ZIP) will
  1661.           also be listed in this file.  Under some BBS list formats the
  1662.           file size, date, time, etc. are also stored along with the file
  1663.           name and description.  It is up to the programmer of the filter
  1664.           to use or ignore unchanged file names as necessary.
  1665.  
  1666.           This option is ignored when using the Test Only mode (/T).
  1667.  
  1668.           This text file can be used by a filter program to modify any file
  1669.           list as used by most BBS systems to reflect the change of file
  1670.           names.  Included with ZZAP is the program QFIX.EXE that modifies
  1671.           the file list format used by QuickBBS and many other BBS systems
  1672.           as well as the description file used by 4DOS.  See the QFIX
  1673.           document file for additional information.
  1674.  
  1675.           A filter program for TBBS called DIRFIX has been written by Gary
  1676.           W. Funk.  This program is also included with ZZAP by permission.
  1677.  
  1678.           I will be happy to provide some limited assistance in developing
  1679.           filter programs for other BBS list formats.  If you develop a
  1680.           filter program that would be of interest to others, send a copy
  1681.           to me so I can make it available to other sysops.  Appropriate
  1682.           acknowledgments will, of course, be given.
  1683.  
  1684.  
  1685.           8.7  Ignore File Age - /I
  1686.  
  1687.  
  1688.           If you use the AGE= option to ignore files that are more than a
  1689.           specified number of days old you can override this with the /I
  1690.           command.  Enabling the /I option will result in all files
  1691.           (matching the file specification) being processed, regardless of
  1692.           their age.
  1693.  
  1694.  
  1695.  
  1696.  
  1697.           Page 24                           Chapter 8. Command Line Options
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.           8.8  Keeping The Original - /K
  1705.  
  1706.  
  1707.           By default the original archive is deleted after the new archive
  1708.           is successfully created.  To prevent the old archives from being
  1709.           deleted you need to turn ON the /K (keep) option.  For example:
  1710.  
  1711.                          ZZAP /K+ *.ARC
  1712.  
  1713.           This switch can be used in combination with any other option:
  1714.  
  1715.                          ZZAP /K+ /R+ C:\*.ARC
  1716.  
  1717.  
  1718.           8.9  Convert Nested - /N
  1719.  
  1720.  
  1721.           If this option is on, any archives nested within an archive being
  1722.           converted will also be converted.  All nested archive types
  1723.           supported will be converted to the default type.  Nested archives
  1724.           are left unchanged if this option is off.
  1725.  
  1726.  
  1727.           8.10  Prevent Overwriting - /P
  1728.  
  1729.  
  1730.           By default an existing archive can be overwritten when
  1731.           converting.  For example, if both TEST.ZIP and TEST.LZH exist and
  1732.           you convert TEST.LZH to a ZIP file, the original TEST.ZIP will be
  1733.           replaced by the new ZIP file (formerly TEST.LZH).  If the /P
  1734.           option is turned on it will prevent this from occurring, in fact,
  1735.           any archive that would cause an overwrite would be completely
  1736.           ignored, without any status message being displayed.
  1737.  
  1738.           This option has no effect when using the Test Only mode (/T).
  1739.  
  1740.  
  1741.           8.11  Subdirectory Recursion - /R
  1742.  
  1743.  
  1744.           If you have multiple subdirectories with archives you need to
  1745.           convert, you can either process each subdirectory individually or
  1746.           use the recursion feature of ZZAP.  Subdirectory recursion means
  1747.           ZZAP will start at a given subdirectory and convert all archives
  1748.           in it and all archives in any child subdirectories.  This feature
  1749.           is especially handy when you have a Bulletin Board System with a
  1750.           large number of specialized file areas.
  1751.  
  1752.           Subdirectory Recursion is invoked by the /R command line options.
  1753.           The following are valid command lines:
  1754.  
  1755.                          ZZAP /R+ \FILES\T*.ZOO
  1756.                          ZZAP /R+ \*.ARC
  1757.                          ZZAP /R *.PAK
  1758.  
  1759.  
  1760.  
  1761.           Chapter 8. Command Line Options                           Page 25
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.                          ZZAP /R+/V+ *.*
  1769.  
  1770.  
  1771.           8.12  Strip Attributes - /S
  1772.  
  1773.  
  1774.           The /S options will strip the HIDDEN, SYSTEM, and READ-ONLY
  1775.           attributes from all files contained in the archive before adding
  1776.           the files to the new archive.  Note that most archiving programs
  1777.           do not support unusual attributes and will simply ignore files
  1778.           containing these three attributes.  You should use either the /A
  1779.           or /S command if there is any chance of any of these three
  1780.           attributes being run across.
  1781.  
  1782.           Turning this option on will cause the /A option to be turned off.
  1783.  
  1784.           This option has no effect when using the Test Only mode (/T).
  1785.  
  1786.  
  1787.           8.13  Test Only - /T
  1788.  
  1789.  
  1790.           If you merely wish to test the integrity of an archive and
  1791.           possibly run a virus check use the /T switch.  All normal steps
  1792.           will be executed with the exception of the creation of the new
  1793.           archive.
  1794.  
  1795.           The date/time stamp of a archives will not be changed during the
  1796.           Test mode unless a /D command is explicitly stated, either in the
  1797.           configuration file with the OPTIONS= command, or on the command
  1798.           line.
  1799.  
  1800.           This feature would be more useful with SDN archives if PAK would
  1801.           return a nonzero exit code if the security envelope was missing.
  1802.           Unfortunately, as of version 2.10 it returns a code of zero as
  1803.           long as the archive is not corrupted (beyond the missing security
  1804.           envelope).
  1805.  
  1806.  
  1807.           8.14  Virus Scan - /V
  1808.  
  1809.  
  1810.           The /V option will enable the virus scan option.  You must have
  1811.           version 39 or greater of McAfee Associates virus scanning program
  1812.           SCAN.EXE placed on your execution PATH.  If a virus is detected
  1813.           the archive will be treated as corrupted and an error message
  1814.           will be displayed and placed in the log file (if enabled).
  1815.  
  1816.           See also the SCANOPT= configuration file command.
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.           Page 26                           Chapter 8. Command Line Options
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.           8.15  Expanded/Extended Memory - /X
  1833.  
  1834.  
  1835.           By default ZZAP will take advantage of expanded or extended
  1836.           memory while shelling to an archive program.  This makes more
  1837.           memory available to the archiver and may mean the difference
  1838.           between success or failure in a tight memory system.  If you do
  1839.           NOT wish expanded to be used include the /X- option on the
  1840.           command line.
  1841.  
  1842.           To use expanded memory a LIM 4.0 driver be installed as well as
  1843.           sufficient EMS to store the bulk of the program and data.
  1844.  
  1845.           To use extended memory an XMS driver such as HIMEM.SYS (available
  1846.           free from Microsoft) must be installed as well as sufficient
  1847.           extended memory to store the bulk of the program and data.
  1848.  
  1849.  
  1850.           8.16  Enable/Disable I/O Redirection - /Z
  1851.  
  1852.  
  1853.           Turning this option off disables all I/O redirection.  ZZAP is
  1854.           configured to redirect all the output of the external programs to
  1855.           the NULL device to keep a clean screen.  When you are having a
  1856.           problem with program configuration it is often helpful to turn
  1857.           off the redirection so you can see each phase of the conversion
  1858.           process.  Using this commmand line switch is much easier than
  1859.           editing the configuration file to remove the redirection
  1860.           commands.
  1861.  
  1862.           This option is ON by default.
  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.           Chapter 8. Command Line Options                           Page 27
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  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.           Page 28                           Chapter 8. Command Line Options
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.                                     Chapter Nine
  1964.  
  1965.                            Locating The Configuration File
  1966.  
  1967.  
  1968.           ZZAP will try it's best to locate the configuration file.  Upon
  1969.           execution it searches for the configuration file in the following
  1970.           order:
  1971.  
  1972.              1.  The current subdirectory.
  1973.              2.  The Subdirectory defined by the environment variable
  1974.                  ZZAP=, e.g. ZZAP=C:\BIN.
  1975.              3.  The subdirectory ZZAP.EXE resides in (DOS 3.x only).
  1976.              4.  Each subdirectory defined by PATH in the environment.
  1977.  
  1978.           If you wish to keep the configuration file in a directory not on
  1979.           the PATH and still be able to execute ZZAP from any subdirectory
  1980.           you should set the environment variable:
  1981.  
  1982.                     SET ZZAP=C:\STUFF
  1983.  
  1984.           If the configuration file can not be found ZZAP will halt with an
  1985.           error.
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.           Chapter 9. Locating The Configuration File                Page 29
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.           Page 30                Chapter 9. Locating The Configuration File
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.                                      Chapter Ten
  2092.  
  2093.                                     Running ZZAP
  2094.  
  2095.  
  2096.           ZZAP is fully configured for the major archiving programs.  The
  2097.           only change in the configuration file you may need to make is the
  2098.           EXT= command to set your preferred default archive type.
  2099.  
  2100.           To run ZZAP, simply type ZZAP followed by the filename (wild-
  2101.           cards allowed).  The filename MUST have an extension.  If the
  2102.           extension is wild (*) then all archive types defined by UNARC=
  2103.           commands will be converted to the new archive type as defined by
  2104.           ARC=.  The following are legal:
  2105.  
  2106.                     ZZAP *.ZOO
  2107.  
  2108.           Converts all ZOO files in the default subdirectory to the new
  2109.           archive type or repacks ZOO files if that is the default
  2110.           extension.
  2111.  
  2112.                     ZZAP \UPLOADS\AFILE.ZIP
  2113.  
  2114.           Converts AFILE.ZIP, located in the \UPLOADS subdirectory, to the
  2115.           new archiving type.
  2116.  
  2117.                     ZZAP *.*
  2118.  
  2119.           Converts all archive types that are not the default format, in
  2120.           the current subdirectory, to the new archive type.
  2121.  
  2122.           When using a wild-card for the extension archives with the
  2123.           default extension will be ignored.  To repack archives to the
  2124.           same type, e.g. ZIP to ZIP, you must explicitly state the
  2125.           extension.
  2126.  
  2127.                     ZZAP *.ZIP
  2128.  
  2129.           If you wish to repack an archive to the same type you must
  2130.           explicitly name the extension as the default archive type is
  2131.           ignored when doing a wild card conversion (this is to avoid
  2132.           repacking the same archives every time you run ZZAP).
  2133.  
  2134.           If your default archive type is LZH simply give that as the
  2135.           extension to convert:
  2136.  
  2137.                     ZZAP *.LZH
  2138.  
  2139.           When repacking an archive, all archive and file comments are
  2140.           lost.
  2141.  
  2142.  
  2143.  
  2144.  
  2145.           Chapter 10. Running ZZAP                                  Page 31
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.           Note that the /P and /K options are ignored when doing a repack.
  2153.  
  2154.           ZZAP can also accept multiple file names on the command line:
  2155.  
  2156.                     ZZAP /V *.ZIP *.*
  2157.  
  2158.           Assuming a default archive type of ZIP, this example first
  2159.           repacks all ZIP files (and does a virus check) then converts all
  2160.           other types to ZIP format, also with a virus check.  If the order
  2161.           had been changed, "ZZAP /V *.* *.ZIP", all archives would be
  2162.           converted to ZIP format then all ZIP files would be repacked,
  2163.           clearly not the intention.
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.           Page 32                                  Chapter 10. Running ZZAP
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.                                    Chapter Eleven
  2220.  
  2221.                                    Nested Archives
  2222.  
  2223.  
  2224.           It is not uncommon to find archives nested inside an archive.  A
  2225.           program that includes source code may have the source code
  2226.           archived and placed within the main archive.  ZZAP will properly
  2227.           handle this situation and convert the nested archives to the new
  2228.           format.  If fact, it will even convert nested archives of a
  2229.           differing types.  Theoretically, an unlimited amount of nesting
  2230.           can be handled, only limited by available memory, but this has
  2231.           only been tested one deep.
  2232.  
  2233.           If you do not wish nested archives to be converted you should use
  2234.           the /N- option on the command line or place it in the
  2235.           configuration file using the SWITCH= command.
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.           Chapter 11. Running ZZAP                                  Page 33
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.           Page 34                               Chapter 11. Nested Archives
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.                                    Chapter Twelve
  2348.  
  2349.                                When Good Files Go Bad
  2350.  
  2351.  
  2352.           If a file is found to be corrupted further processing on that
  2353.           file is halted and the archive is renamed to have a "!" as the
  2354.           second character of the extension, for example, "Z!P".  If the
  2355.           corrupted archive is nested only the parent archive is renamed.
  2356.           You will have to manually unarc the archive to find the actual
  2357.           problem.
  2358.  
  2359.           ZZAP assumes that a file is corrupted when the "EXIT CODE" for
  2360.           the unarc program is nonzero.
  2361.  
  2362.           PAK version 1.0 is known to not return a proper error code so
  2363.           ZZAP will not work with it.  I'm not sure which version they
  2364.           fixed the bug in.  I do know that it works properly with PAK
  2365.           version 1.6.
  2366.  
  2367.           Just because ZZAP says an archive is corrupted does not
  2368.           necessarily mean it is true.  When the archiving program returns
  2369.           a nonzero exit code ZZAP has know way of knowing what the code
  2370.           represents.  Some of the reasons an archive might be flagged as
  2371.           bad are:
  2372.  
  2373.               o  Archive is truly corrupted.
  2374.  
  2375.               o  Insufficient memory, there was enough memory to execute
  2376.                  the archiving program but not enough for the archiving
  2377.                  program to properly process the archive.
  2378.  
  2379.               o  Insufficient disk space.  A very large archive can quickly
  2380.                  eat up disk space.  Even a seemingly small archive can
  2381.                  suddenly expand into a big file.  Font files, for example,
  2382.                  typically compress to only 5% of the original size.  A 72
  2383.                  point font can take more than 1Meg of disk space while
  2384.                  requiring less than 100k when compressed.  Keep in mind
  2385.                  that ZZAP requires enough disk space to hold the original
  2386.                  archive, the expanded files, and the new archive.
  2387.                  Therefore, a 100k archive that expands to 500k and
  2388.                  recompresses to 75k will temporarily require 675k of disk
  2389.                  space.
  2390.  
  2391.               o  Invalid archive version.  When a new version of an archive
  2392.                  program is released it often includes improved
  2393.                  compresssion techniques that older versions of the program
  2394.                  can not handle.  Upgrade your archive software.
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.           Chapter 12. When Good Files Go Bad                        Page 35
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.               o  Command line options as defined in the configuration file
  2409.                  are incorrect.  Double check each ARC= and UNARC= command
  2410.                  in the configuration file.
  2411.  
  2412.               o  Archive program is corrupted.  Make sure that your
  2413.                  archiving programs are working properly.
  2414.  
  2415.               o  Disk error.  If your disk has a bad sector it could result
  2416.                  in a unsuccessful archiving or unarchiving.
  2417.  
  2418.  
  2419.  
  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.           Page 36                        Chapter 12. When Good Files Go Bad
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.                                   Chapter Thirteen
  2476.  
  2477.                               External Event Conversion
  2478.  
  2479.  
  2480.           Some bulletin board systems support timed "events".  These events
  2481.           are used to automate the operation of the board.  Using an event
  2482.           can make it possible for the bulletin board to automatically
  2483.           handle the conversion of any archive type to the type supported
  2484.           by the board.  A BBS that automatically converts archive types
  2485.           could allow the callers to upload archives of virtually any type.
  2486.  
  2487.           Under FrontDoor, for example, you can use an external event for
  2488.           this process.  An external event causes FrontDoor to terminate
  2489.           with a specified error level.  The error level can then be
  2490.           queried to decide what should be done.
  2491.  
  2492.           Follows is a fragment from a possible batch file to do just this.
  2493.           This example assumes all new uploads are placed in the
  2494.           subdirectory "C:\UPLOADS".
  2495.  
  2496.                IF ERRORLEVEL 87 GOTO do_this
  2497.                IF ERRORLEVEL 86 GOTO arc_convert
  2498.                IF ERRORLEVEL 85 GOTO do_that
  2499.  
  2500.                REM convert all archive types to ZIP files
  2501.                :arc_convert
  2502.                  zzap /f+ c:\uploads\*.*
  2503.  
  2504.                GOTO run_fd
  2505.  
  2506.           There is one problem with this type of system - what happens to
  2507.           the descriptions?  Some BBS programs automatically place the file
  2508.           name and description in an ASCII file.  If the file is then
  2509.           converted the filename is changed and would no longer match the
  2510.           name given with the description.  The /F option and the QFIX
  2511.           program (included) handle the conversion for QuickBBS format file
  2512.           list.
  2513.  
  2514.           See QFIX.DOC for further information.  See also the description
  2515.           of the /C options as well as the configuration file option FIXER=
  2516.           and other related options.
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.           Chapter 13. When Good Files Go Bad                        Page 37
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.           Page 38                     Chapter 13. External Event Conversion
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.                                      Appendix A
  2604.  
  2605.                                      Exit Codes
  2606.  
  2607.  
  2608.           ZZAP will return exit codes upon termination.  These exit codes
  2609.           can be used by a batch file to decide what steps should be taken
  2610.           after running ZZAP.  The exit codes are
  2611.  
  2612.                    0           Normal termination - no errors, viruses, or
  2613.                                corrupted archives.
  2614.                    1           Virus detected.
  2615.                    2           Corrupted archive.
  2616.                    3           Configuration file not found.
  2617.                    4           Not configured for given extension.
  2618.                    5           Couldn't create temporary directory.
  2619.                    6           Other fatal error.
  2620.  
  2621.           There is a possibility for both a corrupted archive and a virused
  2622.           archive to have been detected (bad day!).  In this case an exit
  2623.           code of 1 (virus detected) will be returned, specifying the more
  2624.           critical situation.
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.           Appendix A. Exit Codes                                    Page 39
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.           Page 40                                    Appendix A. Exit Codes
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.                                      Appendix B
  2732.  
  2733.                                    Acknowledgments
  2734.  
  2735.  
  2736.           Thanks to:
  2737.  
  2738.               o  Ken Doebler and Dan Geatons for their many suggestions.
  2739.  
  2740.               o  Randall Greylock (1:321/202.4) for pointing out an oddity
  2741.                  with ZOO and many fine suggestions which were implemented.
  2742.  
  2743.               o  Charles Falconer (1:141/488) for pointing out that I
  2744.                  didn't handle unusual file attributes (which LHARC and
  2745.                  PKZIP archives may retain) and other suggestions.
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.           Appendix B. Acknowledgments                               Page 41
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.           Page 42                               Appendix B. Acknowledgments
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.                                      Appendix C
  2860.  
  2861.                                My Lawyer Made Me Do It
  2862.  
  2863.  
  2864.               -  DWC is copyright (c)1986,87,88 Dean W. Cooper.
  2865.               -  LHARC and ICE are copyright (c)1988,89 Haruyasu
  2866.                  Yoshizaki-san.
  2867.               -  LUE is copyright (c)1985 Vernon D. Buerg.
  2868.               -  PAK is copyright (c)1988,89 NoGate Consulting
  2869.               -  GSARC is copyright (c)1988 NoGate Consulting
  2870.               -  PKARC/PKXARC and PKPAK/PKUNPAK are copyright (c)1986,87,88
  2871.                  PKWare, Inc.
  2872.               -  PKZIP/PKUNZIP are copyright (c)1989 PkWare, Inc.
  2873.               -  ZOO is copyright (c)1988 Rahul Dhesi
  2874.               -  FrontDoor is copyright (c)1988,89 Scandinavian PC Systems
  2875.                  and InterZone Software, Inc.
  2876.               -  DIRFIX is copyright (c)1990 Gary W. Funk.
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.           Appendix C. My Lawyer Made Me Do It                       Page 43
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.           Page 44                       Appendix C. My Lawyer Made Me Do It
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.                                      Appendix D
  2988.  
  2989.                                    Version History
  2990.  
  2991.  
  2992.           Version 6.2 Changes
  2993.           ===================
  2994.  
  2995.               -  The log file must now be specified in the environment.
  2996.                  This allows ZZAP to log errors before the configuration
  2997.                  file is read.
  2998.               -  Can now read a file containing a list of files to convert.
  2999.  
  3000.           Version 6.1 Changes
  3001.           ===================
  3002.  
  3003.               -  Added the /B command line switch and support for
  3004.                  subdirectory information in archives.
  3005.               -  Slightly changed the way temporary files are handled to
  3006.                  improve support on networked multi-line BBS's.
  3007.  
  3008.           Version 6.0 Changes
  3009.           ===================
  3010.  
  3011.               -  Added the PRE=, MID=, and POST= configuration file
  3012.                  commands.
  3013.               -  Added support for %COMSPEC% when declaring programs to
  3014.                  execute.
  3015.               -  Added support for >> type output redirection.
  3016.               -  Changed /T to /D.
  3017.               -  A new test mode has been added.  Using /T now initiates a
  3018.                  test mode, no new archives are created.
  3019.               -  The date/time stamp is left unaltered when using the /T
  3020.                  command unless a /D option is explicitly stated.
  3021.               -  Instead of searching the path for all of the UNARC
  3022.                  programs at start-up, which can be a slow process if more
  3023.                  than a few are defined, ZZAP now only searches for the
  3024.                  programs when actually required.  The full path, if found,
  3025.                  is saved so that subsequent searches are not required.
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.           Appendix D. Version History                               Page 45
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.           Version 5.9 Changes
  3049.           ===================
  3050.  
  3051.               -  Changed the way temporary files are handled, ZZAP can now
  3052.                  work with archive programs that insist on using a specific
  3053.                  extension.
  3054.                  Duplicate archives are not deleted until the new archive
  3055.                  has been successfully created.
  3056.               -  Added a few new error messages in the log file.
  3057.               -  When I added input redirection capabilities I also
  3058.                  introduced a bug that would could cause the wrong files to
  3059.                  be closed when turning off redirection after an execute.
  3060.                  This is now fixed.
  3061.  
  3062.           Version 5.8 Changes
  3063.           ===================
  3064.  
  3065.               -  Removed the /O command line option and replaced it with
  3066.                  the more versatile /T option.
  3067.               -  Added the /I (ignore file age) command to the command line
  3068.                  switches.
  3069.               -  Added the AGE= command to the configuration file.  ZZAP
  3070.                  can now be configured to skip processing of files that are
  3071.                  more than a specified number of days old.
  3072.               -  Added an index to the documents
  3073.               -  ZZAP is now DesqView aware.
  3074.  
  3075.           Version 5.7 Changes
  3076.           ===================
  3077.  
  3078.               -  Added support for redirection of input for called
  3079.                  programs.  This will allow you to automatically add
  3080.                  archives comments when converting to some archive formats.
  3081.               -  Deleted the FIXOPT= configuration file command.  Now the
  3082.                  FIXER= command does double duty - defining the program
  3083.                  name and options.
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.           Page 46                               Appendix D. Version History
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.           Version 5.6 Changes
  3113.           ===================
  3114.  
  3115.               -  Corrected a bug where a bad archive could not be
  3116.                  successfully moved to a "bad directory" as defined by the
  3117.                  BADDIR= configuration option.
  3118.               -  If an archive contains subdirectory information and you
  3119.                  have the unarc option set to create subdirectories, ZZAP
  3120.                  will now handle this in a graceful manner by deleting the
  3121.                  subdirectories that were created, treating the archive as
  3122.                  bad, and logging an appropriate message.  Formerly, ZZAP
  3123.                  would crash when it was unable to remove its temporary
  3124.                  work subdirectory.
  3125.               -  When an archive nested inside another archive is found to
  3126.                  be corrupt, only the parent archive (containing the
  3127.                  corrupt child archive) will be moved to BADDIR instead of
  3128.                  both the parent and child archives.
  3129.               -  Stamped a new bug where a nested archive would be stored
  3130.                  with its temporary name (*.Z!Z) as well as the old
  3131.                  extension, resulting in larger archives.
  3132.  
  3133.           Version 5.5 Changes
  3134.           ===================
  3135.  
  3136.               -  Due to a bug in my code the error code returned by
  3137.                  SCAN.EXE was not being processed correctly.  This could
  3138.                  allow archives with infected programs to slip by.
  3139.               -  Cleaned up the display of error and warning messages.
  3140.               -  The log file is now only date/time stamped if something is
  3141.                  actually done.
  3142.               -  The number of files skipped due to the /P+ option is now
  3143.                  displayed with other status information.
  3144.  
  3145.           Version 5.4 Changes
  3146.           ===================
  3147.  
  3148.               -  Added the /C command line option.
  3149.               -  Added the FIXER=, FIXOPT= and SCANOPT= configuration file
  3150.                  commands.
  3151.               -  Corrupted archives are renamed to have a "!" as the second
  3152.                  character of the extension instead of "BAD" being the
  3153.                  extension.
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.           Appendix D. Version History                               Page 47
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.           Version 5.3 Changes
  3177.           ===================
  3178.  
  3179.               -  Added support for "%1" to allow the archive file names to
  3180.                  be in any position on the command line.
  3181.               -  Corrected a bug where the /N command line switch was being
  3182.                  ignored.
  3183.               -  Bug corrected where the state of Keep (/K+) and/or
  3184.                  PreventOverwrite (/P+) could be lost if more than one file
  3185.                  is given on the command line.
  3186.               -  On the switch status line, "on" is displayed in high-
  3187.                  intensity.
  3188.               -  Completely changed the way the /F option works and added
  3189.                  the QFIX program.
  3190.               -  Conversion of all archive types by indicating the wild-
  3191.                  card extension (e.g. '*.*' was not working, corrected as
  3192.                  of 5.3b.
  3193.  
  3194.           Version 5.2 Changes
  3195.           ===================
  3196.  
  3197.               -  Fixed a bug where the stack would overflow and trash some
  3198.                  internal data.
  3199.               -  Fixed a bug where if /X- was used it wouldn't properly
  3200.                  execute the external programs.
  3201.               -  Removed the ZZAPARC= environmental variable, it is not
  3202.                  longer needed with the addition of the /E command line
  3203.                  switch.
  3204.               -  Added the /N switch (convert nested archives).  Default
  3205.                  ON.
  3206.  
  3207.           Version 5.1 Changes
  3208.           ===================
  3209.  
  3210.               -  Added the SWITCH= configuration file option.
  3211.               -  Changed the way command line options are used.
  3212.  
  3213.           Version 5.0 Changes
  3214.           ===================
  3215.  
  3216.               -  Completely rewrote most of the file searching routines.
  3217.               -  Now supports repacking any archive type, e.g. ZIP to ZIP.
  3218.               -  Added a switch to prevent overwriting of existing
  3219.                  archives.
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.           Page 48                               Appendix D. Version History
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.           Version 4.8 Changes
  3241.           ===================
  3242.  
  3243.               -  Added support for output redirection.
  3244.               -  ZZAP always thought the bad archive directory (BADDIR=)
  3245.                  didn't exist - whether it did or not.
  3246.               -  Now supports moving a BAD archive to a different drive.
  3247.               -  If BADDIR is defined and the subdirectory exists the file
  3248.                  will be moved their and the extension will NOT be changed
  3249.                  to .BAD.  The extension will be changed to .BAD if BADDIR
  3250.                  is not defined or does not exist.
  3251.  
  3252.           Version 4.7 Changes
  3253.           ===================
  3254.  
  3255.               -  Added the DEFAULT= command in the configuration file.
  3256.               -  Changed the ZZAPARC environmental variable so that it only
  3257.                  requires the file extension.
  3258.               -  Changed the ARC= command in the configuration file so that
  3259.                  multiple archiving programs can be listed.
  3260.               -  Added the /S (strip attributes) command line option.
  3261.               -  Added support for extended memory during archive program
  3262.                  executing.
  3263.               -  The BBS list routine was not working properly if the
  3264.                  filenames in the list file were not uppercase.
  3265.  
  3266.           Version 4.6 Changes
  3267.           ===================
  3268.  
  3269.               -  Added support for virus scanning using McAfee Associates
  3270.                  SCAN.EXE program.
  3271.               -  Added the BADDIR configuration option.
  3272.               -  Improved the error detection code.
  3273.  
  3274.           Version 4.5 Changes
  3275.           ===================
  3276.  
  3277.               -  Added support for multiple file names on the command line.
  3278.               -  Removed bug where ZZAP returned an error message if no
  3279.                  file name was given on the command line.
  3280.  
  3281.           Version 4.4 Changes
  3282.           ===================
  3283.  
  3284.               -  ZZAP wasn't properly reading the exit code of the unarcing
  3285.                  programs.  This resulting in some bad archives slipping
  3286.                  by.
  3287.  
  3288.           Version 4.3 Changes
  3289.           ===================
  3290.  
  3291.               -  Cosmetic changes and code optimization.
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.           Appendix D. Version History                               Page 49
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.           Version 4.2 Changes
  3305.           ===================
  3306.  
  3307.               -  Trivial B.S. hardly worth mentioning.
  3308.  
  3309.           Version 4.1 Changes
  3310.           ===================
  3311.  
  3312.               -  Corrected a fatal bug introduced in 4.0 that would cause
  3313.                  ZZAP to lose files under PKARC/PKPAK.
  3314.               -  Removed a bug which resulted in the "home" path (DOS 3.x
  3315.                  only) not being located properly.
  3316.  
  3317.           Version 4.0 Changes
  3318.           ===================
  3319.  
  3320.               -  Changed the "/I" option to "/A" - makes more sense.
  3321.                  Log more information about nonstandard file attributes in
  3322.                  the log file.
  3323.               -  Now supports expanded memory (LIM 4.0 only) when shelling,
  3324.                  thus making available more conventional memory when
  3325.                  running the archiving programs.
  3326.  
  3327.           Version 3.6 Changes
  3328.           ===================
  3329.  
  3330.               -  Now properly handles files with attributes of READ-ONLY,
  3331.                  HIDDEN, or SYSTEM, which could cause ZZAP to crash.
  3332.               -  Added the /I option.
  3333.               -  Fixed a bug with the FIXLIST option (/F).
  3334.  
  3335.           Version 3.5 Changes
  3336.           ===================
  3337.  
  3338.               -  Mostly cosmetic changes.
  3339.               -  A minor bug in path searching was fixed.
  3340.  
  3341.           Version 3.4 Changes
  3342.           ===================
  3343.  
  3344.               -  Another minor bug fix, changes in version 3.3 resulted in
  3345.                  archive programs in the default directory not being found.
  3346.  
  3347.           Version 3.3 Changes
  3348.           ===================
  3349.  
  3350.               -  Added the environment variable ZZAPARC= which overrides
  3351.                  the ARC= command in the configuration file.
  3352.               -  The code was cleaned up a bit, as well.
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.           Page 50                               Appendix D. Version History
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.           Version 3.2 Changes
  3369.           ===================
  3370.  
  3371.               -  Fixed a minor bug related to the environment variable
  3372.                  ZZAP=.
  3373.               -  Now aborts if the archiving (ARC=) program can not be
  3374.                  found.
  3375.               -  Displays an error message if any of the unarcing programs
  3376.                  (UNARC=) can not be found.
  3377.  
  3378.           Version 3.1 Changes
  3379.           ===================
  3380.  
  3381.               -  As of version 3.1 ZZAP will work with DWC.  Prior to this
  3382.                  version DWC would not work because of the way DWC handled
  3383.                  paths.  Most DOS programs support the "parent"
  3384.                  subdirectory path, "..\ARCHIVE.EXT". For some reason DWC
  3385.                  would not.  The parent subdirectory is now converted to a
  3386.                  qualified filename, e.g. "C:\ARCHIVES\MYARC.DWC".
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.           Appendix D. Version History                               Page 51
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.           Page 52                               Appendix D. Version History
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.                                         Index
  3500.  
  3501.  
  3502.           A                                  I
  3503.           AGE= 24                            I/O redirection 21
  3504.           Archive Programs Supported 6
  3505.           Attributes 21                      K
  3506.             Flag funny 21, 26                Keep 21, 24
  3507.             Strip 21, 22, 26
  3508.                                              L
  3509.           B                                  License Agreement 1
  3510.           BBS download list 12               List 21, 24
  3511.                                              Locating The Configuration
  3512.           C                                    File 28
  3513.           Command Line Options 20            Log 17
  3514.           Command line options               Logging ZZAP Activity 16
  3515.             /A 21
  3516.             /B 21, 22                        N
  3517.             /C 21, 23                        Nested Archives 21, 33
  3518.             /D 13, 21, 23                    Nested archives 33
  3519.             /E 21, 23
  3520.             /F 21, 23, 24                    P
  3521.             /I 13, 21, 24                    Path 29
  3522.             /K 21, 24                        POST= 14
  3523.             /N 21, 25                        PRE= 14
  3524.             /P 21, 25                        Prevent overwrite 21
  3525.             /R 21, 25
  3526.             /S 21, 26                        Q
  3527.             /T 21, 26                        QuickBBS 12
  3528.             /V 21, 26
  3529.             /X 21, 26                        R
  3530.             /Z 21, 27                        Redirection 9, 10, 11
  3531.           Configuration File 8               Redirection error 10
  3532.           Configuration File 29              Repack 31
  3533.                                              Running ZZAP 4, 30
  3534.           D
  3535.           Default Extension 11, 21, 23       S
  3536.           Description fix-up 21, 23          SCANV 15, 21, 26
  3537.           DIRFIX 24                          Subdirecties 21, 22
  3538.                                              Subdirectories 11
  3539.           E                                  Subdirectory recursion 21
  3540.           Environment 29                     Summary of Features 2
  3541.           Executing Compsec 18               Switches 12, 21
  3542.           Expanded Memory 21, 27
  3543.           Extended Memory 21, 27             T
  3544.           External Event Conversion 37       Temporary subdirectory 13
  3545.                                              Test mode 21, 23, 24, 25, 26
  3546.           F
  3547.           File date stamping 13, 21          V
  3548.           Filter 24                          Viruses 15, 21, 26
  3549.           Fix-up program 12
  3550.  
  3551.  
  3552.  
  3553.           Index                                                     Page 53
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.           W                                  Z
  3561.           When Good Files Go Bad 34          ZZAPLOG= 17
  3562.           Wild-cards 31
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.           Page 54                                                     Index
  3618.