home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-02-05 | 61.9 KB | 1,255 lines |
- ╔══════════════════════════════════════════╗
- ║ █▀▀▀▀▀▀█ █ █ █▀▀▀▀▀▀█ ║
- ║ █ █ █ █ ║
- ║ █ ▀▀██ █ ██ ▀▀▀▀▀▀██ ║
- ║ █ ██ █ ██ ▄ ██ ║
- ║ ████████ ████████ ████████ ║
- ║ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ║
- ║ General Unpack Shell ║
- ║ version 1.80 ║
- ╚══╤═════════════════════════════════════╤═╝
- │ Copyright (C) 1994 and written by │
- │ Johan Zwiekhorst │
- │ - ALL RIGHTS RESERVED - │
- └─────────────────────────────────────┘
-
-
- T A B L E O F C O N T E N T S
- *********************************
-
- 1. LEGAL STUFF
- The no-nonsense licence statement
- Warranty
- Contact
- Payment
- What you should have received
-
- 2. INTRODUCTION
-
- 3. USAGE
- 3.1. General Usage under DOS
- SYSTEM REQUIREMENTS
- COMMAND-LINE PARAMETERS
- NOTE
- EXAMPLES
- EXIT CODES
- 3.2. Unpacking Mailarchives
- 3.3. Identifying Archive Types
-
- 4. BUILT-IN DEFINITIONS
- 4.1. Built-in Unpacker Definitions
- 4.2. How To Define Other Unpackers
-
- 5. GUS & OTHER SHELLS
-
- 6. HOW GUS IDENTIFIES ARCHIVES
- 6.1. Recognition patterns as used by GUS
- 6.2. Record layout of ARC/PAK/ARC+
- 6.3. How GUS identifies SFX (self-extracting) archives
- 6.4. Mandatory order of scanning the patterns
-
- 7. RUNTIME MESSAGES
- [A] General information messages
- [B] Warning messages
- [C] Fatal error messages
-
- 8. ACKNOWLEDGEMENTS
-
- 9. REVISION HISTORY
-
- ═══════════════════════════════════════════════════════════════════════════════
- ╒════════════════╕
- │ 1. LEGAL STUFF │
- ╘════════════════╛
-
- This software is copyrighted (C) 1989, 1990, 1991, 1992, 1993, 1994
- and written by Johan Zwiekhorst, hereafter called the Author and Owner.
- All Rights Reserved.
-
- The No-Nonsense Licence Statement
- =================================
- This software and everything enclosed with it are protected by both
- Belgian copyright law and international treaty provisions.
- It is called "freeware".
-
- FREEWARE software may be used, copied and distributed freely for
- NONCOMMERCIAL use only IF:
- ▀▀▀▀▀▀▀▀▀▀▀▀▀
-
- NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION.
-
- IT IS NOT MODIFIED IN ANY WAY.
-
- It may be distributed ONLY in it's original, unmodified compressed
- package file. ~~~~~~~~~~
-
- This means you may not add comments to the compressed package file
- (also known as an archive file or simply an archive), nor may you
- delete files from or add files to the archive file, UNLESS YOU HAVE
- A WRITTEN PERMISSION TO DO SO.
-
- Converting the archive file to another compression method or
- another archive file format is allowed, provided that the above
- conditions are met.
-
- The original package as released by me is in Yoshi's LZH archive
- format. (See below for what you should have received.)
- In order to extract the files from an LZH archive under DOS, you
- will need to get the file LHA***.EXE, where '***' stands for the
- version number of the program LHA. At the time this is written,
- the latest version is 2.13, so look for LHA213.EXE.
- If you are using OS/2, look for Peter Fitzsimmons' LH2 program.
- The latest version of LH2 is 2.22, so look for LH2_222.EXE.
- Note, that recompressing the archive will nearly always result
- in a bigger archive.
-
- The use of FREEWARE software is prohibited in a governmental
- or commercial situation. In these cases, this software must be
- purchased and a Commercial Licence Statement will then be provided
- for. You may write to the Owner at the address below for more
- information.
-
- Warranty
- ========
- This software is provided AS IS without any warranty, expressed or
- implied, including but not limited to fitness for a particular
- purpose.
- IN NO EVENT SHALL THE AUTHOR/OWNER OF THIS PRODUCT BE LIABLE FOR
- ANY DIRECT OR CONSEQUENTIAL LOSS OR DAMAGES WHICH MAY HAVE ARISEN
- FROM THE USE OF THIS PRODUCT.
- If your local law does not permit any of the statements made above,
- or if you do not agree with any of them yourself, THEN YOU ARE NOT
- LICENCED TO USE THIS PROGRAM!
-
- Contact
- =======
- The Author can be reached via a Bulletin Board System (BBS) and
- electronic mail at the Tripod BBS.
-
- Phone lines:
-
- [due to a move, none are currently available]
-
- Network addresses:
-
- Internet jz@f118.n292.z2.fidonet.org
- Compuserve >INTERNET:jz@f118.n292.z2.fidonet.org
- FIDOnet 2:292/118
-
- The Owner can be contacted at the following address:
-
- Johan Zwiekhorst
- Dorpheidestraat 63/B
- 3590 DIEPENBEEK (Belgium)
- Phone [not yet available] during office hours, Central European Time.
-
- Payment
- =======
- If you would like to use this product in a commercial or
- governmental situation, please contact the Owner at the address
- above. You will then learn the price of the product and a
- Commercial Licence Statement will be made available to you.
-
- For all others, this product is free, as mentioned before.
- But if you would like to support the Author and encourage him to
- write more useful software, you're welcome to pay some money.
- You may pay whatever you feel the product is worth to you.
- Note that this kind of freeware products is developed entirely in
- the Author's leisure time and he receives absolutely no
- compensation for it, apart from what you as a user would pay him.
-
- If you pay at least U.S. $15 (BEF 500, NLG 30, DEM 25), you will
- receive, when available, a 5.25" or 3.5" floppy diskette with the
- next version. Please specify which.
- Immediately after receiving your payment, I will send you
- an acknowledgement and a list of the latest versions of all
- freeware I wrote. Payments to the Author can be sent in cash to the
- address mentioned above or transferred to one of the following bank
- accounts:
- Bank Brussel Lambert (Belgium) - account number 335-0076382-89
- Rabobank (Netherlands) - account number 1059.19.519
-
- ***NOTE THAT THIS IS FOR NON-COMMERCIAL SITUATIONS ONLY!
-
- For all payments made: please specify NAME and VERSION NUMBER of
- the product!
-
-
- What you should have received:
- ==============================
-
- You should have received the file
-
- GUS_180.LZH - (35673 bytes)
-
- with the following contents:
-
- ┌──────────┐ ┌─────┐ ┌─────────────────────────┐
- │ filename │ │bytes│ │ description │
- └══════════┘ └═════┘ └═════════════════════════┘
- FILE_ID .DIZ 311 Short description for BBS sysops.
- GUS .DOC 63375 This documentation.
- GUS .EXE 12381 The program file. CRC/32 = 4260e561
- GUS_WCFG.PAS 6434 TP source for a program CRC/32 = 5770b074
- that writes a new configur-
- ation into GUS.EXE.
-
- You may also use the program VALIDATE from McAfee Associates for
- the purpose of checking the authenticity of the program file(s).
- It should produce the following:
-
- File Name: gus.exe gus_wcfg.pas
- Size: 12,381 6,434
- Date: 2-5-1994 2-5-1994
- File Authentication:
- Check Method 1 - 5154 3AF4
- Check Method 2 - 1007 05C1
-
-
-
- ╒═════════════════╕
- │ 2. INTRODUCTION │
- ╘═════════════════╛
-
- The General Unpack Shell, or GUS, identifies compressed file types
- and calls the correct unpacker in order to extract the files from
- them.
- Its main purpose is, of course, to take work out of YOUR hands.
- You can use GUS with its straight-forward and easy to remember
- commands instead of having to learn a new set of commands each time
- a new archiver sees the daylight.
-
- GUS will also work nicely in automated tasks, where any type of
- archive should be uncompressed, or where a certain file has to be
- added to any given archive.
-
- GUS was made to be command-line compatible with the ARCE.COM
- unpacker program by Vernon Buerg. This makes it possible for you
- to rename GUS.EXE to ARCE.COM and have it invoked by any program
- that expects both ARCE and SEA's ARC-type compressed files, so that
- such a program will in fact work with any archive format YOU
- choose. Ben Baker's MAKENL is but one example of such a program.
-
- GUS does not require you to fiddle with cumbersome and difficult
- configuration files: it's just a single EXE file. You copy it into
- your favourite utility directory and you can immediately start
- using it, no hassles at all.
-
-
- ╒══════════╕
- │ 3. USAGE │
- ╘══════════╛
-
- GUS assumes you have located all archiver programs it has to invoke
- somewhere in your system PATH.
- GUS is small and it will only occupy about 21K while shelling out
- to other programs, which should leave more than enough memory for
- those archiver programs.
-
- 3.1. General Usage under DOS
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- SYSTEM REQUIREMENTS:
- --------------------
- GUS will run on any IBM PC compatible computer running DOS 3.0 or
- greater, provided that at least 25K plus the memory needed by the
- largest archiver program to invoke is available.
-
- COMMAND-LINE PARAMETERS:
- ------------------------
- As said before, GUS is command-line compatible with ARCE.
- Hence, the general syntax is:
-
- GUS «compressed_filespec» [filespec(s)] [target_path] [switch(es)]
-
- (Entries enclosed within [] are optional, those within « » are
- mandatory. The [] and « » signs serve to indicate this only and
- should never be typed!)
-
- «compressed_filespec» ::= this specifies where to find the
- compressed file. If an extension
- is not given, GUS will assume '.*'.
- Currently, the following archive types
- are supported: ARC and ARC+, ARJ, DWC,
- HA, HAP, HPK, HYP, LZH (both LHarc and LHA),
- PAK, SQZ, UC2, ZIP and ZOO.
-
- [filespec(s)] ::= specifies which files should be
- unpacked. You may give more than one
- file specification, all of which may
- contain wild cards.
-
- [target_path] ::= specifies where to locate the unpacked
- files. In order to allow GUS to be as
- flexible as possible, the ordering of
- the file specifications and the target
- path is not important. You may define
- the target path first and then the
- files to be extracted. It is even
- allowed to put the target path in the
- middle of a number of specifications of
- files to extract! If you give more
- than one directory, GUS will ignore all
- but the last.
-
- [switch(es)] ::= specifies one or more of the following
- switches...
- /D : Delete archive after successful unpacking
- /I : Identify only, don't shell out (see 3.3 below)
- /M : unpack Mailarchives only (see 3.2 below)
- /N : do Not use embedded path while extracting
- (for the sake of compatibility with ARCE, /5 may also be
- used)
- /P : Print file(s) on standard output device
- /Q : Quiet mode, suppresses shell output
- /R : Replace existing files
- /T : Test archive integrity
- /V : View archive contents
- /Gpswd : supply password 'pswd' for Garbled archive
-
- All parameters have to separated by at least one blank. Switches
- may be joined together without spaces, but the '/' character must
- be present for each switch. GUS does not support the dash '-'
- instead of the slash '/'.
- Options may be given in no matter what case. Only the Delete option
- _has_ to be in uppercase for safety reasons.
-
- NOTE:
- -----
- Consistent with ARCE's behaviour, GUS will create any directories
- contained within an archive if they do not exist. Both ARCE and GUS
- have a commandline switch with which you can prevent this and have
- them extract to the current directory.
- If you are using the /M (mail archive) switch however, use of the
- /N (No embedded paths) switch is automatically assumed and unpacking
- will always be done in the current directory.
- With /M, the option /D (Delete archive after successful unpacking) is
- also automatically selected.
- The /N switch is equally automatically invoked with /P (print) and /T
- (test).
- Since SEA's XARC program cannot list the directory of an ARC+ (A7+)
- archive, GUS will switch to the program configured for the regular
- ARC type instead for the View Contents command.
-
- EXAMPLES:
- ---------
- 1) Extract all files from an archive CFILE.ANY:
- > GUS CFILE.ANY
-
- 2) Extract all *.COM and *.EXE files from an archive UTILS.ANY
- into a target directory D:\Utils and replace all existing ones:
- > GUS UTILS.ANY *.COM *.EXE D:\UTILS /R/N
-
- 3) A batchfile LA.BAT which will list any text file inside any
- archive:
- LA.BAT: @echo off
- GUS %1 %2 %3 %4 %5 %6 %7 %8 %9 /P|LIST/S
-
- Then you can use this like: LA KBUI_200 *.DOC
-
- 4) Test the integrity of all archives in the directory F:\Arcs
- > GUS F:\ARCS\* /T
-
- 5) Unpack all ZIPfiles PW*.ZIP protected with password JiMmY into
- the directory D:\PWS, not replacing any existing files and using
- any embedded paths:
- > GUS PW*.ZIP D:\PWS /GJiMmY
-
- EXIT CODES:
- -----------
- GUS will yield an errorlevel of 0 if all operations succeeded.
- If something's wrong, it will pass on the errorlevel returned by
- the child program invoked.
- If the child program could not be started, GUS will return
- errorlevel 202 = no such program file found in PATH
- 203 = non-existing directory
- 204 = too many open files (increase FILES=... parameter
- in your CONFIG.SYS file)
- 205 = access denied
- 206 = invalid handle
- 208 = not enough memory to start the child program
- 210 = invalid environment
- 211 = invalid format
- 218 = no more files
- If the child program could be started but something else is wrong,
- GUS will return
- errorlevel 1 = for all errors not reported in the list below
- 220 = no such (mail) directory
- 221 = no such file(s)
- Note, that GUS will not be able to handle a PATH of more than 255
- characters properly.
-
- 3.2. Unpacking Mailarchives
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- If you are a BBS SysOp or a Point connected to a Fidonet Technology
- compatible electronic mail network, you receive mail packets
- compressed and bundled within mailarchives. You obviously need to
- unpack those mailarchives.
- You can do that in two ways:
-
- a) Have your mailprocessor call GUS to unpack the mailarchives.
-
- + If your mailprocessor allows you to specify which unpacker it
- should invoke to decompress mailarchives, have it call GUS.
- Example for ConfMail:
- > CM IMPORT AREAS.BBS -K -N -F Conf.Imp -A GUS
- This approach has the disadvantage that GUS will create any
- directories embedded in the archive, should they not exist.
- Another disadvantage is, that the mailprocessor is still in memory.
- This occupies a lot more memory than is necessary.
-
- + If your mailprocessor does not allow you to specify which
- unpacker to use, it will most likely expect ARCE or PKXARC/
- PKUNPAK. Rename GUS.EXE to ARCE.COM or PKXARC.EXE or
- PKUNPAK.EXE, whatever your mailprocessor wants.
- If your mailprocessor wants to use an unpacker that needs a
- specific decompress command (like PAK E Archive), you cannot
- have it call GUS, since GUS would interpret its first
- command-line argument as the archive name.
- Use the method described in item b) to have GUS unpack your
- mailarchives BEFORE your mailprocessor is started. Since your
- mailprocessor will only see mail packets then and no
- mailarchives, there will be no problem.
-
- b) Have GUS unpack all mailarchives BEFORE you invoke your
- mailprocessor. This is the preferred method.
- You this by starting GUS with the following command-line:
-
- GUS «Inbound_directory» /M
-
- Instead of the archive name, you specify the path to the
- directory where your inbound mail is located.
- Suppose your inbound directory is D:\Opus\NetFiles. GUS will
- unpack all mailarchives in that directory with the following
- command:
- > GUS D:\OPUS\NETFILES /M
-
- After a mailarchive has been unpacked succesfully, GUS will
- delete it automatically.
- If a mailarchive cannot be unpacked succesfully, then GUS will
- create a subdirectory BADARC.GUS in your inbound directory and
- move that mailarchive to it. This allows you to inspect the
- problematic mailarchives later on while retaining their original
- name. Other unpack shells always rename a faulty archive to
- BADARC.001, which makes it very difficult if you would like to
- restore the archive to its original name after you have
- inspected and maybe repaired it. I didn't like that procedure,
- so I decided to let GUS move problematic archives to a special
- subdirectory instead. Let me know how you feel.
-
- 3.3. Identifying Archive Types
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- With the /I switch, you can have GUS simply report which archive
- type is at hand and do nothing else.
- This switch can be used just to get a list of archive types, like
- this:
- > GUS J:\Outbound\*.MO? /I
-
- Type Archive Filename
- ---- ----------------
- LZH J:\OUTBOUND\0009FE64.MO1
- ??? J:\OUTBOUND\8FDCB1E2.MO1
- ZIP J:\OUTBOUND\8FDCB243.MO0
- ARJ J:\OUTBOUND\FF24FFE9.MO0
- LZH J:\OUTBOUND\8FDCB241.MO0
-
- GUS yields something like the above list. The '???' means that GUS
- was unable to determine the archive type, possibly because it isn't
- an archive at all. In this case, it was a zero-length file.
-
- A much more useful way of using this switch is to determine the
- type of just one archive and act upon that. For instance, to add a
- file to any archive that comes along.
- If used with /I, GUS will return an errorlevel from 0 to 13,
- indicating the archive type.
-
- Archive Type: Unknown ARC ARC+ ARJ DWC HA HAP HPK HYP LZH PAK
- Errorlevel : 0 1 2 3 4 5 6 7 8 9 10
- Archive Type: SQZ UC2 ZIP ZOO
- Errorlevel : 11 12 13 14
-
- Example: suppose you want to add a header text LOGO.TXT to ZIP and
- ARJ files, and leave other archive types alone.
- These batchfile instructions will take care of that:
-
- GUS %1 /I
- if not errorlevel 14 if errorlevel 13 goto IsZIP
- if not errorlevel 4 if errorlevel 3 goto IsARJ
- goto Finish
- :IsZIP
- PKZIP -z %1 <LOGO.TXT
- goto Finish
- :IsARJ
- ARJ c -zLOGO.TXT %1
- :Finish
-
- Please be advised that the errorlevel codes assigned to each archive
- type may change! If a new archive type is added to GUS, its extension
- will be merged into the list shown above so that the order of the
- extensions is alphabetical. If you don't like this and would rather see
- new types simply be added to the end of the list, let me know. I will
- comply with your wishes if enough people feel like that.
- At this time, I like to have an alphabetical list and so do most of the
- people I asked about this.
-
-
- ╒═════════════════════════╕
- │ 4. BUILT-IN DEFINITIONS │
- ╘═════════════════════════╛
-
- 4.1. Built-In Unpacker Definitions
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The following unpackers are defined by default within GUS.EXE:
-
- ╔════╤════════════╤═══════╤═══════╤═══════╤═════╤═════╤═════╤════════╗
- ║Type│Program │Extract│Replace│Display│Test │View │Path │Password║
- ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼─────┼────────╢
- ║ARC │PKUNPAK .EXE│-n │-r │-c │-t │-v │*****│g ║
- ║A7+ │XARC .EXE│ │/o │***** │*****│*****│*****│/g ║
- ║ARJ │ARJ .EXE│e -uy │e -y │p │t │l │<x │─g ║
- ║DWC │DWC .EXE│xow │xw │p │t │v │r │g ║
- ║HA │HA .EXE│et │ety │***** │t │l │<x │***** ║
- ║HAP │PAH .EXE│e │e │***** │**** │l │*****│***** ║
- ║HPK │HPACK .EXE│x -on │x -oa │p │t │v │-da │-c ║
- ║HYP │HYPER .EXE│-x │-xo │***** │*****│-v │p │***** ║
- ║LZH │LHA .EXE│e /m+ │e /m+c+│p /m+ │t /m+│l │x+ │***** ║
- ║PAK │PAK .EXE│e/WO │e/WA │p │t │l │/PATH│/g= ║
- ║SQZ │SQZ .EXE│e /o0 │e /o1 │p │t │l │<x │***** ║
- ║UC2 │UC .EXE│E │E -F │***** │T │V │-S │***** ║
- ║ZIP │PKUNZIP .EXE│-n │-o │-c │-t │-v │-d │-s ║
- ║ZOO │ZOO .EXE│e:O │e:OS │e:p │e:N │lC │// │***** ║
- ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼─────┼────────╢
- ║ 3 │ 12 │ 10 │ 10 │ 10 │ 10 │ 10 │ 5 │ 5 ║
- ╚════╧════════════╧═══════╧═══════╧═══════╧═════╧═════╧═════╧════════╝
- The numbers above indicate the number of characters provided for
- each string.
-
- Note that Extract, Replace, Display, Test and View are COMMANDS,
- while Path and Password are OPTIONS. The difference is, that an
- OPTION is always combined with a COMMAND and cannot be used alone.
- If the first character of the Path option is a `<', however, it means
- that the second character should be used to replace the first command
- string character. This is currently only the case with ARJ, HA and
- SQZ, who all need the `e' command to be replaced with `x' in order to
- extract files while using embedded path information.
-
- All spaces means that that particular program does not need any
- parameters for that particular command.
-
- All stars means that that particular program does not support that
- command or that option.
-
- ATTENTION! When encountering an ARC sfx made by SEA's MKSARC program,
- GUS will identify it correctly, but PKUNPAK can't handle this sfx and
- will therefore exit with an error. If you expect to handle a lot of
- MKSARC sfx files, then you'd better replace PKUNPAK by ARC 6.02 in GUS'
- configuration segment.
-
- You may want to redefine some of those built-in definitions for
- various reasons. To use another unpacker program, for instance.
- Or to change some parameters.
-
- 4.2. How To Define Other Unpackers
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- There are two ways to modify the built-in definitions.
-
- You can grab a hex editor and change GUS.EXE directly. If you do,
- please take note of the lengths of the strings as listed above in
- section 4.1. All strings occupy the specified number of characters.
- To achieve that, they were padded with spaces where necessary. If you
- edit them, make sure you retain the number of characters and do NOT
- change the funny looking character at the start of each string
- (that's in fact the string length indicator byte). If a particular
- parameter is not supported by a certain unpacker program, then you
- should edit the appropriate field to contain all stars.
-
- If you own a Turbo Pascal compiler v5.0 or later from Borland
- International, you can edit the file GUS_WCG.PAS and re-compile it.
- This small program will update the configuration information at the
- end of GUS.EXE for you. Do *NOT* modify the record layout of that
- information, since GUS will not recognize it anymore if you do.
-
- Future versions of GUS may come with a complete setup program to
- edit and save a new configuration, or have a text configuration file.
- I haven't decided yet which way to go.
-
-
- ╒═══════════════════════╕
- │ 5. GUS & OTHER SHELLS │
- ╘═══════════════════════╛
-
- Since GUS was first created, other authors have joined the club and
- released their own versions of a utility that identifies archive
- types and shells out to the appropriate unpacker programs.
-
- Some of those other shell programs come with source, others don't.
- Some have configuration files, others don't.
- Some are large, others small.
- Only one is GUS and all the others "ain't"! :-)
-
- Why should you use GUS?
-
- 1. GUS is small and fast. Other shell programs typically use a lot
- more memory than GUS does.
- 2. GUS provides you with all possible commands to allow not only
- automatic use, but also easy DOS command-line usage.
- 3. While scanning a file to determine the archive type, the
- identification bytes have to be investigated in a well-defined
- order. Only then, the program will not be fooled by things like
- archives within archives.
- GUS is the only program that does this flawlessly: it will never
- be fooled.
- 4. GUS has built-in code especially designed for archives that have
- their identification code at the end of the file. If such an
- archive has been transmitted by means of a protocol like
- X-modem, some junk may have been appended to the file to make it
- grow to the next 128 byte or even 1 K-byte boundary!
- GUS is the *only* program that will recognize an archive with
- appended junk because it can skip that while scanning.
- (At this time, this is only needed for DWC archives, but you
- never know...)
- 5. The HAP&PAH, HPack and DWC archivers require their compressed files
- to have the respective extension '.HAP', 'HPK' and '.DWC' or else
- they won't work with them. GUS knows this and will rename any such
- archive that does not have the proper extension before calling
- the dearchiver program and rename it back to the original name
- afterwards.
- 6. Because *I* wrote it! <grin>
-
-
- ╒════════════════════════════════╕
- │ 6. HOW GUS IDENTIFIES ARCHIVES │
- ╘════════════════════════════════╛
-
- GUS recognizes archives by searching for well-defined patterns in the
- archive file. Such a pattern can be from 1 to 5 bytes in length and
- it is extremely important that they be checked in the PROPER ORDER!
- That is what distinguishes GUS from all it's competitors: most
- programs do search for the right patterns (with the exception of the
- pattern for ZOO, which is almost always wrong), but don't do this in
- the proper order. That can result in faulty identifications,
- specifically when encountering archives within archives.
-
- 6.1. Recognition patterns as used by GUS
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ArcType Offset Pattern Comment
- ------- ------ ------------ -------------------------------
- ARC 0 0x1A
- ARC+ 0 0x1A Method byte (offset 1) of all
- PAK entries needs to be scanned: if
- HYP >= 0x0A then PAK;
- >= 0x48 then HYP;
- == 0x14 then ARC+
- Note: PAK can also be recognized
- by locating the byte 0xFE at offset
- EOF-2, but GUS doesn't use that
- because it is less accurate than
- scanning the method bytes, which
- has to be done anyway for identi-
- fying ARC+ and HYP.
- For completeness, the record layout
- of an ARC archive will be given in
- item 2.
- ARJ 0 0x60 0xEA
- HA 0 'HA' Offset 4 binary ANDed with 0xFC should
- yield 0x20. This is an additional check.
- DWC -3 'DWC' Offset -3 means the third LAST byte
- of the archive file.
- It is possible that some junk is
- present at the end of an archive,
- because of Xmodem transmissions for
- example.
- In order to avoid GUS not
- recognizing the archive because of
- this, the last 1028 bytes (or 343
- triplets) are read into a buffer
- and if that contains the string
- 'DWC', then we have a DWC archive.
- An additional check will be done,
- however. The `DWC' string will have
- to be the last item in a 27 byte
- structure of which the first two
- items are ArcStrucSize=27 (2 bytes)
- and DirStrucSize=34 (1 byte) before
- GUS will accept the file to be a DWC
- archive.
- LZH 2 '-l??-' The '?' specifies a wildcard
- character.
- HAP 0 0x91 '3HF'
- HPK 0 'HPAK'
- UC2 0 'UC2' 0x1A
- ZIP 0 'PK' 0x03 0x04
- ZOO 20 0xDC 0xA7 0xC4 0xFD
- Most other programs search for the
- string 'ZOO' at the front of the
- archive, but that is wrong! Only
- the ZOO archives made using MS-DOS
- would be recognized this way. ZOO
- archives made by an Amiga or a
- computer running Unix would not
- necessarily be recognized this way.
- SQZ 0 'HLSQZ'
-
- 6.2. Record layout of ARC/ARC+/PAK
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- var
- ArcHeader : record
- Marker: Byte;
- Method: Byte;
- Name : array [1..13] of char;
- Size : DWord;
- Stamp : DWord;
- CRC : Word;
- Length: DWord;
- end;
-
- Procedure to scan all archive entries:
-
- |begin
- | seek(F,0);
- | notOK:=false;
- | YieldARC:=ARC;
- | repeat
- | {$I-}
- | blockread(F,ArcHeader,sizeof(ArcHeader));
- | {$I+}
- | if IOresult=0
- | then begin
- | if ArcHeader.Method>=PAKid
- | then begin
- | notOK:=true;
- | YieldARC:=PAK;
- | if ArcHeader.Method>=HYPid
- | then YieldARC:=HYP
- | else if ArcHeader.Method=ARPid
- | then YieldARC:=ARP
- | end
- | else MoveFilePtr(F,ArcHeader.Size);
- | end
- | else notOK:=true
- | until notOK
- |end;
-
- This is of course all in Turbo Pascal, the language in which GUS was
- written. The above are in fact literal excerpts from GUS's source
- code.
-
- 6.3. How GUS identifies SFX (self-extracting) archives
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The basic principle is simple. A self-extracting archive consists of an
- extraction program in EXE form followed by the archive itself as
- appended data.
- The header of an EXE file contains information to determine the size of
- the EXE portion of the file and hence the offset where the appended data
- starts.
- This proved to be true for all archive types, except for SFXs made by
- MKSARC, the ZIP/sfx as used in PKLTE115.EXE and the ZIP/sfx for OS/2.
- GUS has those offset values hardcoded.
-
- 6.4. Mandatory order for scanning the patterns
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 1 - SQZ
- 2 - ZIP
- 3 - HPK
- 4 - UC2
- 5 - HAP
- 6 - ZOO
- 7 - LZH
- 8 - HA
- 9 - ARJ
- 10 - DWC
- 11 - ARC/PAK/ARC+/HYP
-
- This order is mandatory because it guarantees the greatest chance for
- a correct recognition.
- Every other order would enlarge the chance for a faulty result.
- This is also the reason why the archive specifications are still
- built into GUS and not given in a seperate configuration file (like
- PolyXarc, for example): I still haven't found a good method to have
- GUS determine automatically in which order the patterns have to be
- scanned, if a possibility exists that new patterns would be added to
- the list. I can't expect the users to include new patterns in the
- proper order themselves, can I?
- Therefore, I don't think providing GUS with a CFG file is very
- important at this time. I see no problem for providing a new GUS when
- a new and exciting archiver is released.
-
- That's it folks! If you're curious: the TP source for GUS is about
- 870 lines in length. Those lines are `filled' in the same way as
- those of the procedure quoted above.
-
- NOTE: you may use the scanning and identification method as used by
- GUS and as described above in your own programs, but please be so kind
- and don't forget the reference indicating where you got the information!
-
-
- ╒═════════════════════╕
- │ 7. RUNTIME MESSAGES │
- ╘═════════════════════╛
-
- GUS may produce a number of messages while it's working.
- I will list all messages below, with an explanation what's wrong.
-
- [A] General information messages
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- MESSAGE: Child program returns exit code #
- -> this message is given when the invoked unpacker program returns
- control to GUS. It shows the errorlevel returned by the
- unpacker program. The "#" will be replaced by the actual
- exit code.
-
- [CHILD]: «unpacker_commandline»
- -> this is shown in Quiet mode (/Q switch) instead of the
- archiver's screen output. The «unpacker_commandline» will be
- replaced by just that.
-
- Extract: ALL files (XARC cannot extract specific files)
- -> this message is shown when the first four characters of the
- unpacker program definition string are "XARC". Any files to
- extract specified on the command-line will be ignored.
-
-
- [B] Warning messages
- ~~~~~~~~~~~~~~~~~~~~
- WARNING: multiple target directories defined -- will use the LAST one!
- -> you have defined more than one target path on the command-line.
- GUS warns you that it will ignore all paths but the last.
-
- WARNING: you need to use /D (capital!) to have the unpacked archive
- deleted.
- -> you have specified "/d" in lower case. For security reasons, GUS
- will only accept a capital D for the Delete switch.
-
- WARNING: unknown switch /X ignored
- -> you have specified a switch that GUS doesn't know. In the above
- warning message, the "X" will be replaced by the actual
- character (converted to upper case) that you used.
- GUS will continue but ignores this unknown switch.
-
- WARNING: a slash by itself is not a valid option -- ignored
- -> you have typed a slash "/" followed by a space or an end-of-line.
- GUS will continue and ignore this.
-
- WARNING: unknown parameter #9 «X» ignored
- -> you have typed something on the command-line that GUS can't
- decipher. The actual word you typed will be inserted instead of
- "X" in the above message, and the number of that parameter on
- the commandline will be shown instead of the "9" above.
-
- WARNING: unable to determine archive type due to error
- while opening file
- -> for some reason, GUS can't open the file it has to investigate.
- Bummer! GUS will simply skip it and continue with the next one, if
- any.
-
- WARNING: can't open NUL device -- Quiet command ignored
- -> this occurs most often if the /Q (Quiet) command is used and when
- one or more TSRs were loaded with their output redirected to NUL.
- This yields a DOS sharing violation error, hence this message from
- GUS.
-
- WARNING: moving bad archive HHHHHHHH.XX9 to X:\Inbound\BADARC.GUS\
- -> in mail unpack mode (/M switch), GUS was unable to unpack an
- archive and warns you that it will be moved to the BADARC.GUS
- subdirectory that GUS creates in the mail inbound directory.
- The actual name of the bad archive will be inserted in the
- message instead of "HHHHHHHH.XX9" and "X:\Inbound" will be
- replaced by the path to your mail inbound directory.
-
- WARNING: switching to ARC type program for directory of A7+ archive
- -> if the program XARC is configured for handling A7+, GUS will
- switch to the archiver program configured for the ARC type for
- viewing the archive contents (directory), since XARC has no
- command to do it and both PKUNPAK and SEA's ARC 6.02 will list
- the directory of an ARC+ archive fine.
-
- WARNING: unsupported command -- will do normal extract instead
- -> you tried to perform an action not supported by the particular
- archiver defined within GUS (i.e., issue a /T [test] command
- with the HYPER archiver program).
- GUS warns you it will ignore that command and do a normal
- extract instead.
-
- WARNING: XXX type cannot be unpacked into embedded directories!
- -> the unpacker program has no option to enable using embedded
- directories or creating them, so all unpacking will be done
- into the current directory, since that is the only way.
-
- WARNING: XXX type cannot be garbled - ignoring password...
- -> you supplied an extraction password for an archive whose
- unpacker program does not support password-protection.
- GUS will continue the command while ignoring the /G switch.
- The "XXX" will be replaced by the actual archive type detected.
-
- [C] Fatal error messages
- ~~~~~~~~~~~~~~~~~~~~~~~~
- >ERROR<: cannot read configuration information!
- MESSAGE: aborting with exit code 255...
- -> GUS complains it can't find the configuration information at the
- back of it's EXE file. This means something is terribly wrong
- with that EXE file. You better delete it and get the original
- release archive unpacked again! (You *did* save that one,
- didn't you?)
-
- >ERROR<: cannot create new filename for rename or move!
- -> while trying to rename (like when an archiver need a fixed
- extension) or move (like when a mailarchive couldn't be unpacked)
- a file, GUS increments the filename (in case of a fixed extension)
- or the extension (in case of a bad mailarchive) when it at first
- doesn't succeed with the rename or move. If the filename or
- extension cannot be incremented anymore and no other options are
- left, GUS issues the above error message.
-
- >ERROR<: cannot erase unpacked archive!
- -> in mail unpack mode (/M switch) or if the Delete option (/D switch)
- was used, GUS is unable to delete the archive after it has been
- unpacked successfully.
- This more than likely means that the archive was marked
- Read/Only. You will have to unlock and delete it manually.
- As mailarchives are created fresh upon receipt, it is very
- unlikely that they would be marked R/O.
-
- >ERROR<: can't rename fixed extension back to original, leaving as is...
- -> GUS had to rename an archive to a name with the fixed extension
- required by archivers like DWC, HAP or HPACK and now it can't rename
- the file back to the original name. This can normally only happen
- in a multitasking environment, for instance when the archive file
- was renamed, moved or deleted before GUS could rename it back.
- GUS issues this error message and leaves the file as it was.
-
- >ERROR<: DOS couldn't execute «XXX» due to: YYY
- -> GUS was unable to load and execute the unpacker program.
- The path and name of that unpacker will be inserted in the error
- message instead of "XXX" and the reason will be shown instead of
- "YYY". That reason will be one of 9 possible problems
- described in section 3.1. General Usage under DOS, EXIT CODES.
- If the error code returned by DOS should be unknown to GUS, it
- will display "DOS ERROR" followed by the error number instead.
-
- >ERROR<: error locating directory XXX
- will unpack in current directory.
- -> You specified a target directory GUS was unable to find. The
- target path specification will be ignored and the unpacking will
- be done in the current directory.
-
- >ERROR<: «XXX» is no archive file or a type unkown to GUS!
- -> GUS encountered a file that is not one of the known archive
- types. GUS will continue with the next file, if there is one.
- "XXX" will be replaced by the actual archive name.
-
- >ERROR<: no such file(s)!
- -> GUS was started with an archive filename specification, but no
- such file could be found. GUS will abort with errorlevel 221.
-
- >ERROR<: no such mail directory!
- -> you specified a mail inbound directory (/M switch) that GUS was
- unable to locate. GUS will end with errorlevel 220.
-
-
- ╒═════════════════════╕
- │ 8. ACKNOWLEDGEMENTS │
- ╘═════════════════════╛
-
- + PKUNPAK FAST! Archive Extract Utility Version 3.61 08-02-88
- Copyright (c) 1986-1988 PKWARE Inc. All Rights Reserved.
-
- + PKUNZIP (R) FAST! Extract Utility Version 2.04g 02-01-93
- Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Shareware Version
- PKUNZIP Reg. U.S. Pat. and Tm. Off.
-
- + XARC - to decompress a standard ARC Format Archive, Ver 7.1,
- October, 1990
- Copyright 1990 by System Enhancement Associates, Inc.;
- ALL RIGHTS RESERVED
-
- + ARJ 2.39d PRE-RELEASE Copyright (c) 1990-93 Robert K Jung. Mar 06 1993
- All Rights Reserved. U.S. Patent No. 5,140,321 and patent pending.
-
- + DWC - Archive utility, Release 5.10, Created 3/07/90
- (C) Copyright 1986-90 by Dean W. Cooper; All rights reserved.
-
- + HA 0.98 Copyright (c) 1993 Harri Hirvola
-
- + Hamarsoft (R) Hap&Pah TM 3.00
- Copyright (C) 1992 By Harald Feldmann.
- Publicly Distributed evaluation copy.
-
- + HPACK - The multi-system archiver Version 0.78a0 (shareware version)
- For Amiga, Archimedes, Macintosh, MSDOS, OS/2, and UNIX
- Copyright (c) Peter Gutmann 1989 - 1992. Release date: 1 Sept 1992
-
- + Hyper - Pack Utility 2.5
- Copyright (c) 1989,1990 P. Sawatzki and K.P. Nischke
-
- + LHA version 2.55b Copyright (c) Haruyasu Yoshizaki, 1988-92
-
- + Pak 2.51 Copyright 1988-90 NoGate Consulting
-
- + SQZ -- Squeeze It(1.08.3), Jan 24 1993, Copyright J I Hammarberg
-
- + ░███ ░███ ░████ UltraCompressor II (tm)
- ░█ ░█ ░█ ░█ ░█ "The new way of archiving."
- ░█████ ░█ ░████ -NL "Fast, reliable and superior compression."
- ░█ ░█ ░█ ░█ ──────────────────────────────────────────────────
- ░█ ░█ ░███ ░█ (C) Copyright 1994, Ad Infinitum Programs,
- all rights reserved
-
- + Zoo archiver, Version 2.10 (1991/07/09 02:10:34)
- (C) Copyright 1991 Rahul Dhesi -- Noncommercial use permitted
-
- + ARCE Copyright (c) 1986-91 Vernon D. Buerg.
- Extract ARC files, Version 4.0g, 4/12/91. All rights reserved.
-
- + Conference Mail - Revision: 4.07 by Bob Hartman, FidoNet Node 132/101
- (C) Copyright 1986, 1987 by Spark Software Inc. All rights reserved.
-
-
- ╒═════════════════════╕
- │ 9. REVISION HISTORY │
- ╘═════════════════════╛
-
- Ver. Comment
- ~~~~ ~~~~~~~
- 1.80 - Supported the new Dutch archiver UltraCompressor II (UC2).
- It performs consistently better than either PKZIP or ARJ, but HA
- and HPACK are still the best compressors around (albeit very
- slow).
- - Added the '/V' (View archive contents) command. Originally, I
- wanted to implement my own archive lister. However, since I still
- don't have the exact layout for a couple of archive types, I
- didn't want to keep you waiting any longer and provided the lister
- by shelling out to the appropriate archiver.
- - The GUS help screen will now also be shown when the user types
- GUS /?, GUS -?, GUS /h, GUS -h, GUS /H or GUS -H.
- Suggested by Hans Siemons (2:512/149).
- - If the drive is full (0 bytes free), GUS is unable to move
- a bad mailarchive away. GUS v1.70 would check the drive space
- and abort the move if less than 32 bytes would be free.
- 32 bytes is indeed what's needed to create a new directory entry,
- but unfortunately this doesn't help much since DOS always needs
- the size of one cluster to allocate new space.
- This version of GUS will therefore check if at least the size of
- one cluster (or 256 bytes for HPFS volumes) is free.
- Error reported by Peter Smink (2:285/1).
- - GUS file /I will yield errorlevel 221 if the file doesn't exist,
- instead of errorlevel 1 reported by the previous version which was
- confusing (since it could also mean GUS found an ARC archive).
- Changed two errorlevels:
- ERROR ErrLev v1.70 ErrLev NOW
- ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^
- No Such Mail Directory! 0 220
- No Such File(s)! 1 221
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Problem reported by Kianusch Sayah-Karadji (2:310/3.80).
- - Just in case you were wondering: I'm using Borlands BPwO v7.0
- these days for compiling GUS. No, the sourcecode for GUS doesn't
- contain any OOP. I wanted to keep GUS small and OOP has a tendency
- to blow the size of EXE files to huge proportions.
-
- 1.70 - Added support for the Dutch HAP archive format, which compresses
- at least 10% better than PKZIP v2.04.
- - Added support for the Finnish HA archiver, which beats PKZIP
- v2.04 by more than 20%!
- - Added the "/D" or Delete option.
- - Added detection of SFX (self-extracting) archives.
- GUS will recognize all EXE variants of the known archive types.
- Note: GUS can't handle COM self-extractors made by LHarc 1.xx,
- only the EXE sfx version.
- - If the drive is full (0 bytes free), GUS is unable to move
- a bad mailarchive away. It would take quite some time before
- GUS would give up trying, though. Fixed: GUS will check
- the drive space and abort the move if less than 32 bytes are
- free. (32 bytes is what's needed to create a new directory entry.)
- - If a file could not be opened for the purpose of determining
- the archive type, a runtime error 103 resulted. Fixed.
- Added a message: «WARNING: unable to determine archive type due
- to error while opening file».
- - Some people experienced strange `runtime 162' errors.
- Here's what happened...
- GUS tried to open the NUL device and create it. Some environments
- may have objected to that.
- I changed the code so that the NUL device is opened for writing
- only (no creation) and only if the /Q option is used, not always
- like before.
- This still caused some systems to yield that runtime error, so I
- added an error check and disabled the Quiet mode in case the NUL
- device cannot be opened. That should solve the `runtime 162'
- problem once and for all...
- Added a message: «WARNING: can't open NUL device -- Quiet command
- ignored».
- (This problem appeared mostly with systems that loaded TSRs and
- redirected their output to the NUL device. That causes DOS to
- open but never close the NUL device, so when GUS tries to open
- it, a sharing violation (runtime 162) occurs.)
- Thanks to Wim Van Sebroeck, 292/862 and Bert Hubert, 2:281/506.40
- for assisting me in finding a fix for this.
-
- 1.61 - Fixed a bug which caused GUS to use the wrong archive name
- when operating with an archiver that requires a fixed archive
- extension (DWC and HPK at this time).
-
- 1.60 - Added support for the HPACK archiver from Peter Gutmann, which
- makes the absolutely smallest archives at this time.
- - Added support for the Swedish SQZ archiver, which compresses
- better than ARJ 2.30 or the new PKZIP 1.93a!
- - Previously, the first three archive types were: ARC (#1), ARJ
- (#2) and ARC+ (#3). From now on, ARC+ will be #2 and ARJ #3.
- This is more logical. (The reason for the previous order was
- that GUS uses the abbreviation ARp internally for ARC+, and
- ARp comes after ARJ alphabetically.)
- - Due to a string length mismatch, GUS couldn't tell whether
- UsePath or UsePassword options were supported or not. The
- UsePath problem was reported by Wim Van Sebroeck (2:292/862)
- and by checking that, I discovered that the same was true for
- the UsePassword option. Corrected.
- - Added code to allow the Path option to replace a command
- instead of being added to it. (Indicated by `<' as the first
- character in the Path option in GUS_WCFG.PAS)
- Only needed for ARJ and SQZ at this time. (The previously used
- `e -jf' for ARJ doesn't seem to work equal to `x', so that was
- changed.)
- - GUS `forgot' about the specification indicating which files had
- to be extracted, once an ARC+ type archive had been worked on.
- Reported by Wim Van Sebroeck (2:292/862) and fixed.
- - If the specified target directory ended with a backslash (\),
- GUS wouldn't recognize it as the target directory. Reported by
- Wim Van Sebroeck (2:292/862) and fixed.
- - Extract command for ARJ changed from `e -n' to `e -uy' and
- modified some other archiver parameters in order to make the
- behaviour of various archiver programs more homogenious.
- GUS without /R option:
- (1) XARC and HYPER will ask you if they should overwrite older
- files. Unfortunately, these programs have no command
- options to work in batchmode and avoid this.
- (2) HPACK will never overwrite older files because it doesn't
- have an option for this.
- (3) all other archivers will overwrite older files and skip
- the rest.
- GUS with /R will cause existing files always to be
- overwritten.
- - If someone would combine several real commands on the GUS
- commandline, the effects might not be what one desires.
- Example: GUS * /T /R would start unpacking when one would
- expect it to ignore the replace command and do a test only.
- So I have changed the behaviour. The /T command now has priority
- over all other commands. This means that if you specify multiple
- commands, the /T (test) command will be executed and all others
- ignored. If you specify /P and /R, the /P has a higher priority
- and will be executed. The /R will be ignored. The priority of a
- command increases if it can do less damage. So the priority order
- for the GUS commands is in descending order: /I /T /P /R
- (remember: the other switches are options, not commands!).
- This problem was discovered after a tip by Alex Cleynhens
- (2:292/500).
- - Additional check for DWC archives. Apart from the string `DWC'
- in the last 1K of the file, it is now required that this string
- is the last item in a 27 byte structure for the file to be
- identified as a DWC archive.
- - GUS reported a runtime error when trying to rename an archive to
- a fixed extension and if the new name existed already. Reported
- by Wim Van Sebroeck (2:292/862). Fixed: the name is now
- incremented. Modified the routine which moves bad mailarchives
- to the BADARC.GUS subdirectory as well: if a file with the
- same name already exists in the BADARC.GUS subdirectory, the
- extension of the file to be moved is incremented.
- - GUS had a problem if the target directory was a root directory.
- In that case, it specified only the drive instead of the root
- directory. Reported by Wim Van Sebroeck (2:292/862). Fixed.
- - HPACK seems to require that its archives have a fixed extension
- of .HPK (like DWC does). GUS directory /M /T doesn't move bad
- archives into the BAD_ARC.GUS directory. Reported by Peter Smink
- (2:285/1). Fixed.
- - Various changes to the documentation.
-
- 1.50 - Added the /N (/5) switch to prevent GUS using or creating
- paths embedded within archives.
- - Made this switch automatic while working with mail archives
- (/M). Thanks to John Lots (2:512/36.3@fidonet.org) and Eef
- Hartman (2:281/603.5) for suggesting this and detecting the
- problem with this in GUS 1.40.
- /N is now also automatically invoked with /P and /T.
- - Changed the way the configuration information is stored a bit,
- since there was a useless amount of space being reserved for
- the "Unknown" type, which of course shouldn't have been saved.
- - Fixed a minor problem which caused a runtime error when
- GUS.EXE was given a read/only attribute. Thanks to Rob
- Essers (2:283/406.2) for reporting this.
- - Cleaned up the batchfile listing in section 3.3 a bit.
- Thanks to Roelof Heuvel (27:3331/5000@signet.ftn) for the
- suggestion.
- - Fixed a minor problem which caused GUS to not append '.*'
- to a filename given without an extension when the pathame
- would contain a dot somewhere. Thanks to Hans Siemons
- (2:285/214@fidonet.org) for reporting it.
- - Because of a space inserted between the appropriate switch to
- supply a password to an unarchiver and the actual password it-
- self, encrypted archives could never be unpacked. This is now
- fixed.
- - Made minor modifications for PKUNZIP 2.00, due to some changes
- in the way that one handles its command options.
- - The `use path' option was always supplied with the ZOO unpack
- commands. Corrected.
-
- 1.40 - Removed MDCD archive support again, since nobody was likely
- to use it -- unless you're looking for the worst performing
- archiver ever, of course.
- - Added support for the new LHA version 2 archiver from Yoshi,
- which succeeds LHARC. The previous version of GUS could
- already handle the new compression, but I didn't expect the
- name of the program to be changed.
- - Added support for the ARJ archiver program from Robert K.
- Jung, which yields nearly always the best compression and
- has a lot of features.
- - Added support for the HYPER archiver program from Germany,
- which seems to outperform every other archiver on 600..800K
- logfiles ONLY. Weird.
- - Added support for ARCfiles made by the new ARC version 7
- compressor from SEA. At this time, only one public domain
- extractor is available, which unfortunately lacks almost
- every feature GUS has to offer.
- My thanks to Donn Bly (1:236/7@fidonet.org) and Jeffrey
- Nonken (1:273/715@fidonet.org) for providing me with all the
- information on the ARC7+ archive format and the XARC
- program.
- - GUS is now fully commandline compatible with Vernon Buerg's
- ARCE program. All of ARCE's switches are supported - except
- for /5, which prevents ARCE from creating subdirectories
- contained within ARCfile entries.
- - GUS provides two extra options: /I will identify an archive
- type by means of the exitcode (errorlevel) and /M will
- unpack and delete mailarchives in Fidonet Technology
- Networks.
- - BUGFIXES:
- * cleaned up handling zero-length and read/only files.
- From now on, GUS won't abort with a runtime error on
- those.
- * you could only specify one single file to extract on GUS's
- commandline, although the help screen and manual suggested
- you could give more than one filespec.
- That's also corrected now, so you can indeed specify
- multiple files.
- - OTHER IMPROVEMENTS:
- * the code which detects the archive type has been completely
- re-written and now is a *lot* faster than before!
-
- 1.31 - This version was never released, but mentioned in the
- documentation of the ARCA*Simulator v2.31 (ASIM_231.LZH).
-
- 1.30 - This version was never released, but mentioned in the "Latest
- Software Versions" column of the FidoNews magazine.
-
- 1.20M Added MDCD archives, corrected an error which made GUS not
- recognize uncompressed file entries in an LZH archive, made sure
- the new compression method of PAK is supported, added features to
- allow selection of files and target directory for unpacking.
- This is a maintenance release, hence the 'M' behind the version
- number.
-
- 1.10 - Added LZH archives, and changed the way DWC archives are
- identified in order to identify them even if up to 1K of rubbish
- is appended to the end of a DWC archive. This is useful for DWC
- archives which have been transferred by means of an Xmodem
- protocol.
-
- 1.00 - Base version. (Turbo Pascal 5.0)
- _______________________________________________________________________(eof)__
-