home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / UTILS / GUS_150.ZIP / GUS.DOC < prev    next >
Text File  |  1992-04-13  |  39KB  |  832 lines

  1.                   ╔══════════════════════════════════════════╗
  2.                   ║       █▀▀▀▀▀▀█  █      █  █▀▀▀▀▀▀█       ║
  3.                   ║       █         █      █  █              ║
  4.                   ║       █   ▀▀██  █     ██  ▀▀▀▀▀▀██       ║
  5.                   ║       █     ██  █     ██  ▄     ██       ║
  6.                   ║       ████████  ████████  ████████       ║
  7.                   ║       ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡       ║
  8.                   ║           General Unpack Shell           ║
  9.                   ║               version 1.50               ║
  10.                   ╚══╤═════════════════════════════════════╤═╝
  11.                      │Copyright (C) 1992 by TRI-SYSTEMS co.│
  12.                      │       - ALL RIGHTS RESERVED -       │
  13.                      │     Written by Johan Zwiekhorst     │
  14.                      └─────────────────────────────────────┘
  15.  
  16.  
  17.                        T A B L E   O F   C O N T E N T S
  18.                        *********************************
  19.  
  20.       1. LEGAL STUFF
  21.          The no-nonsense licence statement
  22.          Warranty
  23.          Contact
  24.          Payment
  25.          What you should have received
  26.  
  27.       2. INTRODUCTION
  28.  
  29.       3. USAGE
  30.          3.1. General Usage under DOS
  31.               SYSTEM REQUIREMENTS
  32.               COMMAND-LINE PARAMETERS
  33.               NOTE
  34.               EXAMPLES
  35.               EXIT CODES
  36.          3.2. Unpacking Mailarchives
  37.          3.3. Identifying Archive Types
  38.  
  39.       4. BUILT-IN DEFINITIONS
  40.          4.1. Built-in Unpacker Definitions
  41.          4.2. How To Define Other Unpackers
  42.  
  43.       5. GUS & OTHER SHELLS
  44.  
  45.       6. RUNTIME MESSAGES
  46.          [A] General information messages
  47.          [B] Warning messages
  48.          [C] Fatal error messages
  49.  
  50.       7. ACKNOWLEDGEMENTS
  51.  
  52.       8. REVISION HISTORY
  53.  
  54. ═══════════════════════════════════════════════════════════════════════════════
  55.  
  56.  
  57.       ╒════════════════╕
  58.       │ 1. LEGAL STUFF │
  59.       ╘════════════════╛
  60.  
  61.       This software is copyrighted (C) 1991, 1992 by TRI-SYSTEMS co.,
  62.       hereafter called the Owner. All Rights Reserved.  The software was 
  63.       written by Johan Zwiekhorst, hereafter called the Author.
  64.  
  65.       The No-Nonsense Licence Statement
  66.       =================================
  67.       This software and everything enclosed with it are protected by both
  68.       Belgian copyright law and international treaty provisions.
  69.       It is called "freeware".
  70.  
  71.       FREEWARE software may be used, copied and distributed freely for
  72.       NONCOMMERCIAL use only IF:
  73.       ▀▀▀▀▀▀▀▀▀▀▀▀▀
  74.  
  75.               NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION.
  76.  
  77.               IT IS NOT MODIFIED IN ANY WAY.
  78.  
  79.       It may be distributed ONLY in it's original, unmodified compressed
  80.       package file.                                ~~~~~~~~~~
  81.  
  82.       This means you may not add comments to the compressed package file
  83.       (also known as an archive file or simply an archive), nor may you
  84.       delete files from or add files to the archive file, UNLESS YOU HAVE
  85.       A WRITTEN PERMISSION TO DO SO.
  86.  
  87.       Converting the archive file to another compression method or
  88.       another archive file format is allowed, provided that the above
  89.       conditions are met.
  90.  
  91.       The original package as released by me is in Yoshi's LZH archive
  92.       format. (See below for what you should have received.)
  93.       In order to extract the files from an LZH archive, you will need
  94.       to get the file LHA***.EXE, where '***' stands for the version
  95.       number of the program LHA.  At the time this is written, the
  96.       latest version is 2.13, so look for LHA213.EXE.
  97.       Note, that recompressing the archive will nearly always result
  98.       in a bigger archive.
  99.  
  100.       The use of FREEWARE software is prohibited in a governmental
  101.       or commercial situation. In these cases, this software must be
  102.       purchased and a Commercial Licence Statement will then be provided
  103.       for.  You may write to TRI-SYSTEMS at the address below for more
  104.       information.
  105.  
  106.       Warranty
  107.       ========
  108.       This software is provided AS IS without any warranty, expressed or
  109.       implied, including but not limited to fitness for a particular
  110.       purpose.
  111.       IN NO EVENT SHALL THE AUTHOR/OWNER OF THIS PRODUCT BE LIABLE FOR
  112.       ANY DIRECT OR CONSEQUENTIAL LOSS OR DAMAGES WHICH MAY HAVE ARISEN
  113.       FROM THE USE OF THIS PRODUCT.
  114.       If your local law does not permit any of the statements made above,
  115.       or if you do not agree with any of them yourself, THEN YOU ARE NOT
  116.       LICENCED TO USE THIS PROGRAM!
  117.  
  118.       Contact
  119.       =======
  120.       The Author can be reached via electronic mail at phone number
  121.       +32-11-762626.
  122.       This is the Tripod BBS.  Network addresses:
  123.  
  124.       Internet       Johan.Zwiekhorst@f100.n292.z2.fidonet.org
  125.       Compuserve     >INTERNET:Johan.Zwiekhorst@f100.n292.z2.FidoNet.Org
  126.       FIDOnet         2:292/100
  127.       SIGnet         27:332/0
  128.       Turbo-DataNet  77:8320/100
  129.  
  130.       The Owner can be contacted at the following address:
  131.  
  132.       TRI-SYSTEMS co.
  133.       Langstraat 89
  134.       3630 MAASMECHELEN (Belgium)
  135.       Phone +32-11-764905 during office hours, Central European Time.
  136.  
  137.       Payment
  138.       =======
  139.       If you would like to use this product in a commercial or
  140.       governmental situation, please contact TRI-SYSTEMS at the address
  141.       above. You will then learn the price of the product and a
  142.       Commercial Licence Statement will be made available to you.
  143.  
  144.       For all others, this product is free, as mentioned before.
  145.       But if you would like to support the author and encourage him to
  146.       write more useful software, you're welcome to pay some money.
  147.       You may pay whatever you feel the product is worth to you.
  148.       Note that this kind of freeware products is developed entirely in
  149.       the author's leisure time and he receives absolutely no
  150.       compensation for it, apart from what you as a user would pay him.
  151.  
  152.       If you pay at least U.S. $15 (BEF 500, NLG 30, DEM 25), you will
  153.       receive, when available, a 5.25" or 3.5" floppy diskette with the
  154.       next version.  Please specify which.
  155.       Immediately after receiving your payment, I will send you
  156.       an acknowledgement and a list of the latest versions of all
  157.       freeware I wrote. Payments to the author can be sent in cash to the
  158.       address mentioned above or transferred to one of the following bank
  159.       accounts:
  160.       Bank Brussel Lambert (Belgium) - account number 335-0076382-89
  161.       Rabobank (Holland)             - account number 1059.19.519
  162.  
  163.       ***NOTE THAT THIS IS FOR NON-COMMERCIAL SITUATIONS ONLY!
  164.  
  165.       For all payments made: please specify NAME and VERSION NUMBER of
  166.       the product!
  167.  
  168.  
  169.       What you should have received:
  170.       ==============================
  171.  
  172.       You should have received the file
  173.  
  174.       GUS_150.LZH - (24741 bytes)
  175.  
  176.       with the following contents:
  177.  
  178.       ┌──────────┐  ┌─────┐ ┌─────────────────────────┐
  179.       │ filename │  │bytes│ │ description             │
  180.       └══════════┘  └═════┘ └═════════════════════════┘
  181.       GUS     .DOC   39186  This documentation.
  182.       GUS     .EXE    9859  The program file.           CRC/32 = 700e08b3
  183.       GUS_WCFG.PAS    4843  TP source for a program     CRC/32 = 3491569d
  184.                             that writes a new configur-
  185.                             ation into GUS.EXE.
  186.  
  187.       You may also use the program VALIDATE from McAfee Associates for
  188.       the purpose of checking the authenticity of the program file(s).
  189.       It should produce the following:
  190.  
  191.                 File Name:  gus.exe             gus_wcfg.pas
  192.                      Size:   9,859               4,843
  193.                      Date:  2-15-1992           2-15-1992
  194.       File Authentication:
  195.             Check Method 1 - D1E4                94B3
  196.             Check Method 2 - 03E4                172E
  197.  
  198.  
  199.  
  200.       ╒═════════════════╕
  201.       │ 2. INTRODUCTION │
  202.       ╘═════════════════╛
  203.  
  204.       The General Unpack Shell, or GUS, identifies compressed file types
  205.       and calls the correct unpacker in order to extract the files from
  206.       them.
  207.       Its main purpose is, of course, to take work out of YOUR hands.
  208.       You can use GUS with its straight-forward and easy to remember
  209.       commands instead of having to learn a new set of commands each time
  210.       a new archiver sees the daylight.
  211.  
  212.       GUS will also work nicely in automated tasks, where any type of
  213.       archive should be uncompressed, or where a certain file has to be
  214.       added to any given archive.
  215.  
  216.       GUS was made to be command-line compatible with the ARCE.COM
  217.       unpacker program by Vernon Buerg.  This makes it possible for you
  218.       to rename GUS.EXE to ARCE.COM and have it invoked by any program
  219.       that expects both ARCE and SEA's ARC-type compressed files, so that
  220.       such a program will in fact work with any archive format YOU
  221.       choose.
  222.  
  223.       GUS does not require you to fiddle with cumbersome and difficult
  224.       configuration files: it's just a single EXE file.  You copy it into
  225.       your favourite utility directory and you can immediately start
  226.       using it, no hassles at all.
  227.  
  228.  
  229.       ╒══════════╕
  230.       │ 3. USAGE │
  231.       ╘══════════╛
  232.  
  233.       GUS assumes you have located all archiver programs it has to invoke
  234.       somewhere in your system PATH.
  235.       GUS is small and it will only occupy about 21K while shelling out
  236.       to other programs, which should leave more than enough memory for
  237.       those archiver programs.
  238.  
  239.       3.1. General Usage under DOS
  240.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241.       SYSTEM REQUIREMENTS:
  242.       --------------------
  243.       GUS will run on any IBM PC compatible computer running DOS 3.0 or
  244.       greater, provided that at least 21K plus the memory the largest
  245.       archiver program to invoke would need is available.
  246.  
  247.       COMMAND-LINE PARAMETERS:
  248.       ------------------------
  249.       As said before, GUS is command-line compatible with ARCE.
  250.       Hence, the general syntax is:
  251.  
  252.       GUS «compressed_filespec» [filespec(s)] [target_path] [switch(es)]
  253.  
  254.       (Entries enclosed within [] are optional, those within « » are
  255.       mandatory.  The [] and « » signs serve to indicate this only and
  256.       should never be typed!)
  257.  
  258.       «compressed_filespec»  ::=  this specifies where to find the
  259.                                   compressed file.  If an extension
  260.                                   is not given, GUS will assume '.*'.
  261.                                   Currently, the following archive types
  262.                                   are supported: ARC and ARC+, ARJ, DWC,
  263.                                   HYP, LZH (both LHarc and LHA), PAK, ZIP
  264.                                   and ZOO.
  265.  
  266.       [filespec(s)]          ::=  specifies which files should be
  267.                                   unpacked. You may give more than one
  268.                                   file specification, all of which may
  269.                                   contain wild cards.
  270.  
  271.       [target_path]          ::=  specifies where to locate the unpacked
  272.                                   files.  In order to allow GUS to be as
  273.                                   flexible as possible, the ordering of
  274.                                   the file specifications and the target
  275.                                   path is not important.  You may define
  276.                                   the target path first and then the
  277.                                   files to be extracted.  It is even
  278.                                   allowed to put the target path in the
  279.                                   middle of a number of specifications of
  280.                                   files to extract!  If you give more
  281.                                   than one directory, GUS will ignore all
  282.                                   but the last.
  283.  
  284.       [switch(es)]           ::=  specifies one or more of the following
  285.                                   switches...
  286.          /I     :  Identify only, don't shell out (see 3.3 below)
  287.          /M     :  unpack Mailarchives only (see 3.2 below)
  288.          /N     :  do Not use embedded path while extracting
  289.                    (for the sake of compatibility with ARCE, /5 may also be
  290.                    used)
  291.          /P     :  Print file(s) on standard output device
  292.          /Q     :  Quiet mode, suppresses shell output
  293.          /R     :  Replace existing files
  294.          /T     :  Test archive integrity
  295.          /Gpswd :  supply password 'pswd' for Garbled archive
  296.  
  297.       All parameters have to separated by at least one blank.  Switches
  298.       may be joined together without spaces, but the '/' character must
  299.       be present for each switch.  GUS does not support the dash '-'
  300.       instead of the slash '/'.
  301.  
  302.       NOTE:
  303.       -----
  304.       Consistent with ARCE's behaviour, GUS will create any directories
  305.       contained within an archive if they do not exist.  Both ARCE and GUS
  306.       have a commandline switch with which you can prevent this and have
  307.       them extract to the current directory.
  308.       If you are using the /M (mail archive) switch however, use of the
  309.       /N (No embedded paths) switch is automatically assumed and unpacking
  310.       will always be done in the current directory.
  311.       The /N switch is also automatically invoked with /P (print) and /T
  312.       (test).
  313.  
  314.       EXAMPLES:
  315.       ---------
  316.       1) Extract all files from an archive CFILE.ANY:
  317.          > GUS CFILE.ANY
  318.       2) Extract all *.COM and *.EXE files from an archive UTILS.ANY
  319.          into a target directory D:\Utils and replace all existing ones:
  320.          > GUS UTILS.ANY *.COM *.EXE D:\UTILS /R/N
  321.       3) A batchfile LA.BAT which will list any text file inside any
  322.          archive:
  323.          LA.BAT: @echo off
  324.                  GUS %1 %2 %3 %4 %5 %6 %7 %8 %9 /P|LIST/S
  325.  
  326.          Then you can use this like:   LA GUS_140 *.DOC
  327.  
  328.       4) Test the integrity of all archives in the directory F:\Arcs
  329.          > GUS F:\ARCS\* /T
  330.  
  331.       5) Unpack all ZIPfiles PW*.ZIP protected with password JiMmY into
  332.          the directory D:\PWS, not replacing any existing files and using
  333.          any embedded paths:
  334.          > GUS PW*.ZIP D:\PWS /GJiMmY
  335.  
  336.       EXIT CODES:
  337.       -----------
  338.       GUS will yield an errorlevel of 0 if all operations succeeded.
  339.       If something's wrong, it will pass on the errorlevel returned by
  340.       the invoked child program.
  341.       If the child program could not be invoked, GUS will return
  342.       errorlevel 202 = no such program file found in PATH
  343.                  203 = non-existing directory
  344.                  204 = too many open files (increase FILES=... parameter
  345.                        in your CONFIG.SYS file)
  346.                  205 = access denied
  347.                  206 = invalid handle
  348.                  208 = not enough memory to start the child program
  349.                  210 = invalid environment
  350.                  211 = invalid format
  351.                  218 = no more files
  352.       Note, that GUS will not be able to handle a PATH of more than 255
  353.       characters properly.
  354.  
  355.       3.2. Unpacking Mailarchives
  356.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  357.       If you are a BBS SysOp or a Point connected to a Fidonet Technology
  358.       compatible electronic mail network, you receive mail packets
  359.       compressed and bundled within mailarchives.  You obviously need to
  360.       unpack those mailarchives.
  361.       You can do that in two ways:
  362.  
  363.       a) Have your mailprocessor call GUS to unpack the mailarchives.
  364.  
  365.        + If your mailprocessor allows you to specify which unpacker it
  366.          should invoke to decompress mailarchives, have it call GUS.
  367.          Example for ConfMail:
  368.          > CM IMPORT AREAS.BBS -K -N -F Conf.Imp -A GUS
  369.          This approach has the disadvantage that GUS will create any
  370.          directories embedded in the archive, should they not exist.
  371.          Another disadvantage is, that the mailprocessor is still in memory.
  372.          This occupies a lot more memory than is necessary.
  373.  
  374.        + If your mailprocessor does not allow you to specify which
  375.          unpacker to use, it will most likely expect ARCE or PKXARC/
  376.          PKUNPAK.  Rename GUS.EXE to ARCE.COM or PKXARC.EXE or
  377.          PKUNPAK.EXE, whatever your mailprocessor wants.
  378.          If your mailprocessor wants to use an unpacker that needs a
  379.          specific decompress command (like PAK E Archive), you cannot
  380.          have it call GUS, since GUS would interpret its first
  381.          command-line argument as the archive name.
  382.          Use the method described in item b) to have GUS unpack your
  383.          mailarchives BEFORE your mailprocessor is started.  Since your
  384.          mailprocessor will only see mail packets then and no
  385.          mailarchives, there will be no problem.
  386.  
  387.       b) Have GUS unpack all mailarchives BEFORE you invoke your
  388.          mailprocessor. This is the preferred method.
  389.          You this by starting GUS with the following command-line:
  390.  
  391.          GUS «Inbound_directory» /M
  392.  
  393.          Instead of the archive name, you specify the path to the
  394.          directory where your inbound mail is located.
  395.          Suppose your inbound directory is D:\Opus\NetFiles.  GUS will
  396.          unpack all mailarchives in that directory with the following
  397.          command:
  398.          > GUS D:\OPUS\NETFILES /M
  399.  
  400.          After a mailarchive has been unpacked succesfully, GUS will
  401.          delete it automatically.
  402.          If a mailarchive cannot be unpacked succesfully, then GUS will
  403.          create a subdirectory BADARC.GUS in your inbound directory and
  404.          move that mailarchive to it.  This allows you to inspect the
  405.          problematic mailarchives later on while retaining their original
  406.          name.  Other unpack shells always rename a faulty archive to
  407.          BADARC.001, which makes it very difficult if you would like to
  408.          restore the archive to its original name after you have
  409.          inspected and maybe repaired it.  I didn't like that procedure,
  410.          so I decided to let GUS move problematic archives to a special
  411.          subdirectory instead.  Let me know how you feel.
  412.  
  413.       3.3. Identifying Archive Types
  414.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  415.       With the /I switch, you can have GUS simply report which archive
  416.       type is at hand and not do anything else.
  417.       This switch can be used just to get a list of archive types, like
  418.       this:
  419.       > GUS J:\Outbound\*.MO? /I
  420.  
  421.       Type Archive Filename
  422.       ---- ----------------
  423.       LZH  J:\OUTBOUND\0009FE64.MO1
  424.       ???  J:\OUTBOUND\8FDCB1E2.MO1
  425.       ZIP  J:\OUTBOUND\8FDCB243.MO0
  426.       ARJ  J:\OUTBOUND\FF24FFE9.MO0
  427.       LZH  J:\OUTBOUND\8FDCB241.MO0
  428.  
  429.       GUS yields something like the above list.  The '???' means that GUS
  430.       was unable to determine the archive type, possibly because it isn't
  431.       an archive at all.  In this case, it was a zero-length file.
  432.  
  433.       A much more useful way of using this switch is to determine the
  434.       type of just one archive and act upon that.  For instance, to add a
  435.       file to any archive that comes along.
  436.       If used with /I, GUS will return an errorlevel from 0 to 9,
  437.       indicating the archive type.
  438.  
  439.       Archive Type:  Unknown ARC  ARJ  ARC+  DWC  HYP  LZH  PAK  ZIP  ZOO
  440.       Errorlevel  :     0     1    2    3     4    5    6    7    8    9
  441.  
  442.       Example: suppose you want to add a header text LOGO.TXT to ZIP and
  443.       ARJ files, and leave other archive types alone.
  444.       These batchfile instructions will take care of that:
  445.  
  446.         GUS %1 /I
  447.         if errorlevel 9 goto Finish
  448.         if errorlevel 8 goto IsZIP
  449.         if errorlevel 3 goto Finish
  450.         if errorlevel 2 goto IsARJ
  451.         goto Finish
  452.       :IsZIP
  453.         PKZIP -z %1 <LOGO.TXT
  454.         goto Finish
  455.       :IsARJ
  456.         ARJ c -zLOGO.TXT %1
  457.       :Finish
  458.  
  459.  
  460.       ╒═════════════════════════╕
  461.       │ 4. BUILT-IN DEFINITIONS │
  462.       ╘═════════════════════════╛
  463.  
  464.       4.1. Built-In Unpacker Definitions
  465.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  466.       The following unpackers are defined by default within GUS.EXE:
  467.  
  468.       ╔════╤════════════╤═══════╤═══════╤═══════╤═════╤═════╤════════╗
  469.       ║Type│Program     │Extract│Replace│Display│Test │Path │Password║
  470.       ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼────────╢
  471.       ║ARC │PKUNPAK .EXE│-n     │-r     │-c     │-t   │*****│-g      ║
  472.       ║ARJ │ARJ     .EXE│e -n   │e -y   │p      │t    │-jf  │─g      ║
  473.       ║A7+ │XARC    .EXE│       │/o     │*****  │*****│*****│/g      ║
  474.       ║DWC │DWC     .EXE│xow    │xw     │p      │t    │r    │g       ║
  475.       ║HYP │HYPER   .EXE│-x     │-xo    │*****  │*****│p    │*****   ║
  476.       ║LZH │LHA     .EXE│e /m+  │e /m+c+│p      │t    │x+   │*****   ║
  477.       ║PAK │PAK     .EXE│e/WN   │e/WA   │p      │t    │/PATH│/g      ║
  478.       ║ZIP │PKUNZIP .EXE│-n     │-o     │-c     │-t   │-d   │-s      ║
  479.       ║ZOO │ZOO     .EXE│e:     │eSO:   │e:p    │e:N  │//   │*****   ║
  480.       ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼────────╢
  481.       ║ 3  │    12      │  10   │  10   │  10   │ 10  │  5  │   5    ║
  482.       ╚════╧════════════╧═══════╧═══════╧═══════╧═════╧═════╧════════╝
  483.       The numbers above indicate the number of characters provided for
  484.       each string.
  485.  
  486.       Note that Extract, Replace, Display and Test are COMMANDS, while
  487.       Path and Password are OPTIONS.  The difference is, that an OPTION
  488.       is always combined with a COMMAND and cannot be used alone.
  489.       All spaces means that that particular program does not need any
  490.       parameters for that particular command.
  491.       All stars means that that particular program does not support that
  492.       command or that option.
  493.  
  494.       You may want to redefine some of those built-in definitions for
  495.       various reasons.  To use another unpacker program, for instance.
  496.       Or to change some parameters.
  497.  
  498.       4.2. How To Define Other Unpackers
  499.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  500.       There are two ways to modify the built-in definitions.
  501.  
  502.       You can grab a hex editor and change GUS.EXE directly.  If you do,
  503.       please take note of the lengths of the strings as listed above in
  504.       section 4.1.  All strings occupy the specified number of
  505.       characters.  To achieve that, they were padded with spaces where
  506.       necessary.  If you edit them, make sure you retain the number of
  507.       characters and do NOT change the funny looking character at the
  508.       start of each string (that's in fact the string length indicator
  509.       byte).  If a particular parameter is not supported by a certain
  510.       unpacker program, then you should edit the appropriate field to
  511.       contain all stars.
  512.  
  513.       If you own a Turbo Pascal compiler v5.0 or later from Borland
  514.       International, you can edit the file GUS_WCG.PAS and re-compile it.
  515.       This small program will update the configuration information at the
  516.       end of GUS.EXE for you.  Do *NOT* modify the record layout of that
  517.       information, since GUS will not recognize it anymore if you do.
  518.  
  519.       Future versions of GUS may come with a complete setup program to
  520.       edit and save a new configuration.
  521.  
  522.  
  523.       ╒═══════════════════════╕
  524.       │ 5. GUS & OTHER SHELLS │
  525.       ╘═══════════════════════╛
  526.  
  527.       Since GUS was first created, other authors have joined the club and
  528.       released their own versions of a utility that identifies archive
  529.       types and shells out to the appropriate unpacker programs.
  530.  
  531.       Some of those other shell programs come with source, others don't.
  532.       Some have configuration files, others don't.
  533.       Some are large, others small.
  534.       Only one is GUS and all the others "ain't"!
  535.  
  536.       Why should you use GUS?
  537.  
  538.       1. GUS is small and fast.  Other shell programs typically use a lot
  539.          more memory than GUS does.
  540.       2. GUS provides you with all possible commands to allow not only
  541.          automatic use, but also easy DOS command-line usage.
  542.       3. While scanning a file to determine the archive type, the
  543.          identification bytes have to be investigated in a well-defined
  544.          order.  Only then, the program will not be fooled by things like
  545.          archives within archives.
  546.          GUS is the only program that does this flawlessly: it will never
  547.          be fooled.
  548.       4. GUS has built-in code especially designed for archives that have
  549.          their identification code at the end of the file.  If such an
  550.          archive has been transmitted by means of a protocol like
  551.          X-modem, some junk may have been appended to the file to make it
  552.          grow to the next 128 byte or even 1 K-byte boundary!
  553.          GUS is the *only* program that will recognize an archive with
  554.          appended junk because it can skip that while scanning.
  555.          (At this time, this is only needed for DWC archives, but you
  556.          never know...)
  557.       5. The DWC archiver requires its compressed files to have the
  558.          extension '.DWC' or else it won't work with them.
  559.          GUS knows this and will rename any DWC archive that does not
  560.          have the proper extension before calling DWC.EXE and rename it
  561.          back to the original name afterwards.
  562.       6. Because *I* wrote it! <grin>
  563.  
  564.  
  565.       ╒═════════════════════╕
  566.       │ 6. RUNTIME MESSAGES │
  567.       ╘═════════════════════╛
  568.  
  569.       GUS may produce a number of messages while it's working.
  570.       I will list all messages below, with an explanation what's wrong.
  571.  
  572.       [A] General information messages
  573.       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  574.       MESSAGE: Child program returns exit code #
  575.       -> this message is given when the invoked unpacker program returns
  576.          control to GUS.  It shows the errorlevel returned by the
  577.          unpacker program.  The "#" will be replaced by the actual
  578.          exit code.
  579.  
  580.       [CHILD]: «unpacker_commandline»
  581.       -> this is shown in Quiet mode (/Q switch) instead of the
  582.          archiver's screen output.  The «unpacker_commandline» will be
  583.          replaced by just that.
  584.  
  585.       Extract: ALL files (XARC cannot extract specific files)
  586.       -> this message is shown when the first four characters of the
  587.          unpacker program definition string are "XARC".  Any files to
  588.          extract specified on the command-line will be ignored.
  589.  
  590.  
  591.       [B] Warning messages
  592.       ~~~~~~~~~~~~~~~~~~~~
  593.       WARNING: multiple target directories defined -- will use the LAST one!
  594.       -> you have defined more than one target path on the command-line.
  595.          GUS warns you that it will ignore all paths but the last.
  596.  
  597.       WARNING: unknown switch /X ignored
  598.       -> you have specified a switch that GUS doesn't know.  In the above
  599.          warning message, the "X" will be replaced by the actual
  600.          character that you used.  GUS will continue but ignores this
  601.          particular command.
  602.  
  603.       WARNING: a slash by itself is not a valid option -- ignored
  604.       -> you have typed a slash "/" followed by a space or an end-of-line.
  605.          GUS will continue and ignore this.
  606.  
  607.       WARNING: unknown parameter #9 «X» ignored
  608.       -> you have typed something on the command-line that GUS can't
  609.          decipher.  The actual word you typed will be inserted instead of
  610.          "X" in the above message, and the number of that parameter on
  611.          the commandline will be shown instead of the "9" above.
  612.  
  613.       WARNING: moving bad archive HHHHHHHH.XX9 to X:\Inbound\BADARC.GUS\
  614.       -> in mail unpack mode (/M switch), GUS was unable to unpack an
  615.          archive and warns you that it will be moved to the BADARC.GUS
  616.          subdirectory that GUS creates in the mail inbound directory.
  617.          The actual name of the bad archive will be inserted in the
  618.          message instead of "HHHHHHHH.XX9" and "X:\Inbound" will be
  619.          replaced by the path to your mail inbound directory.
  620.  
  621.       WARNING: unsupported command -- will do normal extract instead
  622.       -> you tried to perform an action not supported by the particular
  623.          archiver defined within GUS (i.e., issue a /T [test] command
  624.          with the HYPER archiver program).
  625.          GUS warns you it will ignore that command and do a normal
  626.          extract instead.
  627.  
  628.       WARNING: XXX type can only be unpacked into current directory!
  629.       -> the unpacker program has no option to enable using embedded
  630.          directories or creating them, so all unpacking will be done
  631.          into the current directory, since that is the only way.
  632.  
  633.       WARNING: XXX type cannot be garbled - ignoring password...
  634.       -> you supplied an extraction password for an archive whose
  635.          unpacker program does not support password-protection.
  636.          GUS will continue the command while ignoring the /G switch.
  637.          The "XXX" will be replaced by the actual archive type detected.
  638.  
  639.       [C] Fatal error messages
  640.       ~~~~~~~~~~~~~~~~~~~~~~~~
  641.       >ERROR<: cannot read configuration information!
  642.       MESSAGE: aborting with exit code 255...
  643.       -> GUS complains it can't find the configuration information at the
  644.          back of it's EXE file.  This means something is terribly wrong
  645.          with that EXE file.  You better delete it and get the original
  646.          release archive unpacked again!  (You *did* save that one,
  647.          didn't you?)
  648.  
  649.       >ERROR<: cannot move bad mailarchive!
  650.       -> in mail unpack mode (/M switch), GUS encountered a bad archive
  651.          but is unable to move it to the BADARC.GUS directory.
  652.          (Possible causes: a file with exactly the same name exists
  653.          already in the BADARC.GUS directory, or the BADARC.GUS directory
  654.          does not exist [anymore?] at the time of the move.)
  655.          The bad archive will remain in the inbound directory and you'd
  656.          better find out what the heck is going on!
  657.  
  658.       >ERROR<: cannot erase unpacked mailarchive!
  659.       -> in mail unpack mode (/M switch), GUS is unable to delete the
  660.          mailarchive after it has been unpacked successfully.
  661.          This more than likely means that the mailarchive was marked
  662.          Read/Only.  You will have to unlock and delete it manually.
  663.          As mailarchives are created fresh upon receipt, it is very
  664.          unlikely that they would be marked R/O.
  665.  
  666.       >ERROR<: DOS couldn't execute «XXX» due to: YYY
  667.       -> GUS was unable to load and execute the unpacker program.
  668.          The path and name of that unpacker will be inserted in the error
  669.          message instead of "XXX" and the reason will be shown instead of
  670.          "YYY".  That reason will be one of 9 possible problems
  671.          described in section 3.1. General Usage under DOS, EXIT CODES.
  672.          If the error code returned by DOS should be unknown to GUS, it
  673.          will display "DOS ERROR" followed by the error number instead.
  674.  
  675.       >ERROR<: error locating directory XXX
  676.                will unpack in current directory.
  677.       -> You specified a target directory GUS was unable to find.  The
  678.          target path specification will be ignored and the unpacking will
  679.          be done in the current directory.
  680.  
  681.       >ERROR<: «XXX» is no ARC/ARC+/ARJ/DWC/HYP/LZH/PAK/ZIP/ZOO file!
  682.       -> GUS encountered a file that is not one of the known archive
  683.          types.  GUS will continue with the next file, if there is one.
  684.          "XXX" will be replaced by the actual archive name.
  685.  
  686.       >ERROR<: no such file(s)!
  687.       -> GUS was started with an archive filename specification, but no
  688.          such file could be found.  GUS will abort with errorlevel 1.
  689.  
  690.       >ERROR<: no such mail directory!
  691.       -> you specified a mail inbound directory (/M switch) that GUS was
  692.          unable to locate.  GUS will end with errorlevel 0.
  693.  
  694.  
  695.       ╒═════════════════════╕
  696.       │ 7. ACKNOWLEDGEMENTS │
  697.       ╘═════════════════════╛
  698.  
  699.     + PKUNPAK  FAST!  Archive Extract Utility  Version 3.61  08-02-88
  700.       Copyright (c) 1986-1988 PKWARE Inc. All Rights Reserved.
  701.  
  702.     + PKUNZIP (R)   FAST!   Extract Utility   Version 1.93  ALPHA  10-15-91
  703.       Copr. 1989-1991 PKWARE Inc. All Rights Reserved. PKUNZIP/h for help
  704.       PKUNZIP Reg. U.S. Pat. and Tm. Off.
  705.      
  706.     + XARC - to decompress a standard ARC Format Archive, Ver 7.1,
  707.       October, 1990
  708.       Copyright 1990 by System Enhancement Associates, Inc.;
  709.       ALL RIGHTS RESERVED
  710.  
  711.     + ARJ 2.22 Copyright (c) 1990,91 Robert K Jung
  712.       All rights reserved.  Free for non-commercial personal use.
  713.  
  714.     + DWC - Archive utility, Release 5.10, Created 3/07/90
  715.       (C) Copyright 1986-90 by Dean W. Cooper; All rights reserved.
  716.  
  717.     + Hyper - Pack Utility 2.5
  718.       Copyright (c) 1989,1990 P. Sawatzki and K.P. Nischke
  719.  
  720.     + LHA version 2.13    Copyright (c) Haruyasu Yoshizaki, 1988-91
  721.  
  722.     + Pak 2.51 Copyright 1988-90 NoGate Consulting
  723.  
  724.     + Zoo archiver, Version 2.10 (1991/07/09 02:10:34)
  725.       (C) Copyright 1991 Rahul Dhesi -- Noncommercial use permitted
  726.  
  727.     + ARCE Copyright (c) 1986-91 Vernon D. Buerg.
  728.       Extract ARC files, Version 4.0g, 4/12/91. All rights reserved.
  729.  
  730.     + Conference Mail - Revision: 4.07 by Bob Hartman, FidoNet Node 132/101
  731.       (C) Copyright 1986, 1987 by Spark Software Inc. All rights reserved.
  732.  
  733.  
  734.  
  735.       ╒═════════════════════╕
  736.       │ 8. REVISION HISTORY │
  737.       ╘═════════════════════╛
  738.  
  739.       Ver.   Comment
  740.       ~~~~   ~~~~~~~
  741.       1.50 - Added the /N (/5) switch to prevent GUS using or creating
  742.              paths embedded within archives.
  743.            - Made this switch automatic while working with mail archives
  744.              (/M).  Thanks to John Lots (2:512/36.3@fidonet) and Eef
  745.              Hartman (2:281/603.5) for suggesting this and detecting the
  746.              problem with this in GUS 1.40.
  747.              /N is now also automatically invoked with /P and /T.
  748.            - Changed the way the configuration information is stored a bit,
  749.              since there was a useless amount of space being reserved for
  750.              the "Unknown" type, which of course shouldn't have been saved.
  751.            - Fixed a minor problem which caused a runtime error when
  752.              GUS.EXE was given a read/only attribute.  Thanks to Rob
  753.              Essers (2:283/406.2) for reporting this.
  754.            - Cleaned up the batchfile listing in section 3.3 a bit.
  755.              Thanks to Roelof Heuvel (27:3331/5000@signet.ftn) for the
  756.              suggestion.
  757.            - Fixed a minor problem which caused GUS to not append '.*'
  758.              to a filename given without an extension when the pathame
  759.              would contain a dot somewhere.  Thanks to Hans Siemons
  760.              (2:285/214@fidonet.org) for reporting it.
  761.            - Because of a space inserted between the appropriate switch to
  762.              supply a password to an unarchiver and the actual password it-
  763.              self, encrypted archives could never be unpacked. This is now
  764.              fixed.
  765.            - Made minor modifications for PKUNZIP 2.00, due to some changes
  766.              in the way that one handles its command options.
  767.            - The `use path' option was always supplied with the ZOO unpack
  768.              commands. Corrected.
  769.  
  770.       1.40 - Removed MDCD archive support again, since nobody was likely
  771.              to use it -- unless you're looking for the worst performing
  772.              archiver ever, of course.
  773.            - Added support for the new LHA version 2 archiver from Yoshi,
  774.              which succeeds LHARC.  The previous version of GUS could
  775.              already handle the new compression, but I didn't expect the
  776.              name of the program to be changed.
  777.            - Added support for the ARJ archiver program from Robert K.
  778.              Jung, which yields nearly always the best compression and
  779.              has a lot of features.
  780.            - Added support for the HYPER archiver program from Germany,
  781.              which seems to outperform every other archiver on 600..800K
  782.              logfiles ONLY.  Weird.
  783.            - Added support for ARCfiles made by the new ARC version 7
  784.              compressor from SEA.  At this time, only one public domain
  785.              extractor is available, which unfortunately lacks almost
  786.              every feature GUS has to offer.
  787.              My thanks to Donn Bly (1:236/7@fidonet.org) and Jeffrey
  788.              Nonken (1:273/715@fidonet.org) for providing me with all the
  789.              information on the ARC7+ archive format and the XARC
  790.              program.
  791.            - GUS is now fully commandline compatible with Vernon Buerg's
  792.              ARCE program.  All of ARCE's switches are supported - except
  793.              for /5, which prevents ARCE from creating subdirectories
  794.              contained within ARCfile entries.
  795.            - GUS provides two extra options: /I will identify an archive
  796.              type by means of the exitcode (errorlevel) and /M will
  797.              unpack and delete mailarchives in Fidonet Technology
  798.              Networks.
  799.            - BUGFIXES:
  800.              * cleaned up handling zero-length and read/only files.
  801.                From now on, GUS won't abort with a runtime error on
  802.                those. 
  803.              * you could only specify one single file to extract on GUS's
  804.                commandline, although the help screen and manual suggested
  805.                you could give more than one filespec.
  806.                That's also corrected now.
  807.            - OTHER IMPROVEMENTS:
  808.              * the code which detects the archive type has been completely
  809.                re-written and now is a *lot* faster than before!
  810.  
  811.       1.31 - This version was never released, but mentioned in the
  812.              documentation of the ARCA*Simulator v2.31 (ASIM_231.LZH).
  813.  
  814.       1.30 - This version was never released, but mentioned in the "Latest
  815.              Software Versions" column of the FidoNews magazine.
  816.  
  817.       1.20M  Added MDCD archives, corrected an error which made GUS not
  818.              recognize uncompressed file entries in an LZH archive, made sure
  819.              the new compression method of PAK is supported, added features to
  820.              allow selection of files and target directory for unpacking.
  821.              This is a maintenance release, hence the 'M' behind the version
  822.              number.
  823.  
  824.       1.10 - Added LZH archives, and changed the way DWC archives are
  825.              identified in order to identify them even if up to 1K of rubbish
  826.              is appended to the end of a DWC archive. This is useful for DWC
  827.              archives which have been transferred by means of an Xmodem
  828.              protocol.
  829.  
  830.       1.00 - Base version.  (Turbo Pascal 5.0)
  831. _______________________________________________________________________(eof)__
  832.