home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-08-28 | 113.5 KB | 3,002 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- LhA User's Guide
-
- Version 1.38 - August 1992
-
-
-
-
-
-
-
-
-
-
-
-
- ### ### ######
- ## ## ### ##
- ## ## ## ###
- ## ##### #######
- ## ## ### ## ##
- ### ## ## ## ## ##
- ####### ### ### ### ###
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Written by Stefan Boberg
-
- Copyright (c) 1991,92 by Stefan Boberg
- All rights reserved
-
-
-
-
-
- V1.38 LhA User's Guide Page 1
-
-
- 1 - Introduction
-
- LhA is a powerful archiver for the Commodore-Amiga computer.
- It is fully compatible with LHA for MSDOS systems and LhArc for
- MSDOS, Amiga and *NIX. It is also compatible with LhArcA, LZ and
- LhArc for the Amiga. LhA sports fast compression and
- decompression and has several commands and options not found in
- any other currently available archiver for the Amiga.
-
- 1.1 About the manual
-
- The manual is divided into two main sections, the first
- section (this one) contains miscellaneous information related to
- the program. The second section is a reference section, where all
- commands and options are explained thoroughly. For information
- about registering read `LICENSE.man' and `Orderform'.
-
- 1.2 System requirements
-
- LhA will run on any Amiga system with at least 512KB RAM and
- one diskdrive, though 1MB RAM and two diskdrives or harddrive is
- recommended to get the most out of LhA. LhA will run on any
- KickStart from version 1.2 and up. If LhA is used on a system
- with the new KickStart 2.x it will adapt to this and utilize
- features new to this release. Special care has been taken in the
- program design to make the program execute as fast as possible on
- 68020, 030 and 040-processors without sacrificing 68000
- compatibility.
-
- Under KickStart 1.3, LhA requires `arp.library' to be able to
- use other wildcard characters than `*' and `?'.
-
- 1.4 Terminology
-
- ARCHIVE - An archive is a file containing one or more files in a
- compressed or non-compressed state and related information like
- file names, last modification date/time, filenotes etc.
-
- COMPRESSION - The process of encoding redundant information into
- data requiring less storage space. There are a multitude of ways
- you can do this in. LhA uses a modified version of Lempel-Ziv
- compression with block-adaptive Huffman coding and a dictionary
- size of 4096 or 8192 characters.
-
- COMPRESSION RATIO - The compression ratio figures reported by LhA
- are calculated as follows: ratio = (1 - (CompressedSize) /
- (OriginalSize)) * 100. I.e how many percent of the file that was
- GAINED. Other archivers may use other methods. LHA and ARJ for
- MS-DOS, for example, calculates the ratio as: ratio =
- (CompressedSize) / (OriginalSize), i.e. how large the compressed
- file is compared to the original file. (MSDOSratio =
- 1-(ADOSratio/100)). The higher the LhA compression ratio is, the
-
-
-
-
-
- V1.38 LhA User's Guide Page 2
-
-
- better the compression. Most Amiga archivers use the same ratio
- calculation method as I use.
-
- CRC - CRC stands for `Cyclic Redundancy Check'. It is a
- relatively sophisticated method of checking data integrity. The
- version used in LhA is a 16-bit CRC.
-
- EXTRACTION or DECOMPRESSION - The process of recreating the exact
- information that was previously compressed (file contents,
- modification date, filenotes, protection flags, directory
- structure etc.)
-
- SELF-EXTRACTION MODULE (SFX-Module) - This is an archive that is
- an executable file capable of extracting self-contained files.
-
-
- 1.5 LhA - what is it?
-
- LhA is a file archiving program written especially for the
- Commodore Amiga computer. The primary goal is to provide the
- Amiga community with a fast, efficient and reliable file
- archiver. LhA creates and processes archive files with the '.LZH'
- suffix, and is fully compatible with both MSDOS LhArc and MSDOS
- LhA, as well as the Amiga LhArc, LZ, and LhArcA. It handles both
- the old LhArc-style compression (-lh1-, -lh0-) and the new
- LHA-style (-lh5-, -lh4-).
-
- LhA is at the time of release by far the fastest LhArc archive
- handler, and is more reliable and robust than both LZ and LhArc.
- Neither LZ nor LhArc even comes close to the speed of LhA. The
- compression and decompression routines are written entirely in
- very optimized 68000 assembly language. The routines were written
- directly from scratch in pure 68000 assembler, and did not, as in
- the other Amiga LZH/LHA-archivers, start as compiled C-code.
- Because of this, the routines are both smaller and, more
- importantly, faster than they would have been if I'd used
- compiler output as source material. You can get an idea of how
- fast LhA is compared to other archivers by looking at the speed
- test results in `benchm.txt'. An even better way to see how fast
- LhA is, is to try it yourself!
-
- 1.6 What is a file archiver anyway?
-
- A file archiver, as the name implies, archives files. It
- collects the files you specify and stores them all in a single
- archive-file. Almost all file archivers (including LhA) also
- compress the files before putting them in the archive-file, so
- that they occupy less diskspace. When you wish to retrieve some
- file from the archive, the archiver decompresses the file and
- restores it's file attributes (Last modification date, time, file
- comments, protection status etc.). A file archiver can usually
- also process archive files in different ways, for instance delete
-
-
-
-
-
- V1.38 LhA User's Guide Page 3
-
-
- files, freshen files, print files etc. See the 'ARCHIVER
- COMMANDS' section of this manual for an explanation of the
- different actions LhA is capable of performing.
-
- The most common use for a file archiver is for transferring
- several related files via modem. It would be a very tedious and
- cumbersome task to transfer for instance every single source file
- of a big project separately, so why not put them all into one
- single file? This is where the file archiver comes in, we simply
- feed the archiver with all the files we wish to transmit, and
- then just transfer the single archive-file the archiver then
- creates! After the transfer the receiver just has to use the
- archiver to extract all files from the archive-file onto his/hers
- harddisk (or floppy). Also, if the files were compressed by the
- archiver, it would take less time to transfer the files as well,
- which means the phonecall will cost us less. There are of course
- other uses for a file archiver, you can use it as a
- harddisk-backup program for example (if you have another harddisk
- partition to put the archive file on..), and you can use it to
- stuff away files you don't use very often, and then when you want
- to use them you simply extract the files from the archive, and
- then delete them when you're finished (saves disk space).
- Personally I use LhA a lot to make automatic backups of my source
- codes for various projects.
-
- The file compression methods vary from very simple, less
- effective, and fast (Run-Length Encoding, RLE, for instance), to
- complex, effective and relatively time-consuming methods
- (Lempel-Ziv-Huffman, LZHUF, as used in LhA). The method used in
- LZH-Archivers (LZHUF) is to date probably the best algorithm used
- in an archiver. There are other similar methods, like ZIP, but
- they are not as good. Even though the files become smaller you
- don't lose any information when compressing them, the information
- is just stored in a different way. Basically, redundant
- (repeated) information is replaced with a pointer to some other
- part of the file, where this information is located. For example
- in this text the word 'archive' appears at several places, this
- is an example of redundant data. Simply put, if a file compressor
- was to compress this file it would let the first occurence of
- 'archive' remain unchanged, and then it would replace all other
- occurences of 'archive' with a pointer to the first one. When
- decompressing the file, the archiver uses these pointers to
- restore the file to its original state.
-
- Files which have already been compressed with one technique
- can generally not be compressed any further by feeding them to
- the same file compressing program again (If that had been
- possible, modem transfers would have been a lot cheaper :), since
- the redundant information has already been eliminated. It is
- possible though to compress files output by certain compressors
- (RunLength-Encoders for example) further by feeding them to a
- program that uses another method (like LZHUF), since they
-
-
-
-
-
- V1.38 LhA User's Guide Page 4
-
-
- eliminate different kinds of redundant information.
-
- 1.8 Compatibility and Amiga-specific features
-
- LhA is aimed at full compatibility with LHA V2.13 for MS-DOS,
- which is an improvement of the original LhArc V1.13. LhA is also
- compatible with LhArc, LhArcA and LZ for the Commodore Amiga
- computer. However, LhArc and LhArcA cannot process any archives
- with headers of level 1 or 2, or files compressed with the new
- LHA compression (-lh5-). LZ 1.92 cannot process archives with
- headers of level 2. LHA V2.13 can process all archives created by
- LhA.
-
- 1.9 About the author program history and future
-
- I, Stefan Boberg - the author of the programs in the LhA
- family, am 19 years old and currently studying `applied physics
- and electrical engineering', first year, at the Linköping
- Institute of Technology. I started working on LhA mainly because
- I thought there was no real good archiver for the Amiga, the ones
- that existed at the time (June 1991) I began work on it were
- either too slow, had loose compression ratios or were
- bugged/crippled so that they could not do what I needed an
- archiver to do. I use archivers mainly to back up sources for my
- various programming projects automatically, and I also use it a
- lot to just decompress archives from bulletin board systems and
- computer networks. Another reason for doing it was to earn a
- little extra money, which I badly need, being a poor student with
- a _small_ allowance.. :)
-
- Anyway, I intend to continue developing LhA and the related
- programs as long as I can, and will release other, related,
- programs as well, like an intuition-driven archiver called `LhI'
- for instance. A file system to enable you to treat archives as
- directories is also in the pipeline and will be released sometime
- in 1992. Other archive formats than LhA-style archives are also
- planned to be supported in the filesystem and intuition driven
- archiver by means of special resident libraries and handlers.
- When these will be finished depends on how much time I can devote
- to developing the programs (have to take care of my studies
- first).
-
- But this all depends on YOU, if I get a good response and
- people register I will continue work on the program. If not,
- well, then I might as well drop it for other projects, and just
- make minor bugfixes to it instead of continuing development...
- It's your choice! If you would like to express your opinions
- about the program, or have an idea for a feature you'd like to
- see in the next version, please drop me a line via EMail (see
- section 3 for addresses) or write a letter. I would really
- appreciate it! You MUST report any bugs you find (though I hope
- you won't find too many), so I can fix it right away!
-
-
-
-
-
- V1.38 LhA User's Guide Page 5
-
-
- 2 Reference guide
-
- This section of the manual is intended to be used mostly as a
- reference guide when you want to know exactly how a certain
- option or command works. If you haven't used LhA before (but
- used other archivers), you should at least glance through the
- descriptions of all the commands and options to get an idea of
- what LhA can do.
-
- 2.1 Command line syntax
-
- The command line syntax is as follows:
-
- LhA [-options] <Command> <Archive> [[HomeDir] FileSpec] [@file]
- [destdir]
-
- The items in square brackets are optional, and the items in
- angle brackets are mandatory. Read the following sections for
- exact information on the various items.
-
- 2.1.1 Specifying options
-
- Unlike other archivers, LhA lets you specify options anywhere
- on the command line. The option specifier is `-' (dash), any
- items on the command line that begins with this character are
- considered to be option switches. If you want to specify a
- filename or something else that begins with a `-' character,
- enclose the name in double quotes or use double dashes. For
- example, to specify a filename of `-minus', you could write
- either `"-minus"' or `--minus'.
-
- If you write `-o' the option `o' is enabled regardless of its
- initial state. If you want to disable an option, append a `0'
- (zero) after the option, like in `-o0'. If an option is followed
- by any other numeric character than `0', the option is enabled.
-
- You can specify multiple options without having a dash in
- front of every option character. An example would be `-ox0m',
- which would enable option `o', disable option `x' and enable
- option `m'. The only exception is options taking multi-digit
- numeric arguments, which must be followed by whitespace and
- another dash if you want to specify more options (like in `-b32
- -ox0m').
-
- 2.1.2 Specifying commands
-
- The first non-option argument on the command line MUST be the
- command specifier. The commands are case-insensitive (`l' means
- the same thing as `L'), and only the first character of the
- argument is considered (except for the `vv' command), so you may
- use verbose commands such as `list' or `add' instead of `l' and
- `a', respectively.
-
-
-
-
-
- V1.38 LhA User's Guide Page 6
-
-
- 2.1.3 Specifying archives
-
- The archive specification must be the second non-option
- argument (the first being the command specification). In most
- cases you can specify a pattern here. The exception being the
- `m' (move files to archive) command.
-
- 2.1.4 Specifying action files
-
- The action files are specified after the archive
- specification. The action file specifications may include pattern
- matching tokens. Note that, as all other file specifications in
- LhA, action file specifications may contain wildcards for
- directory names as well - `hd:*/*/dir/*.h' is valid, for
- example.
-
- NOTE
-
- If you do not specify any action files, LhA assumes
- that you wish to act upon all files in the archive or
- in the current directory.
-
-
- 2.1.5 Home directories
-
- Home directories is a new concept introduced with LhA, it
- provides an easy way of specifying what parts of pathnames that
- should be preserved in the archive. It can also be used to
- simplify specifications of mutiple files in the same directory.
- It is perhaps best explained with a couple of examples:
-
- EXAMPLE
-
- Example 1:
-
- lha -x a newarc dh0:files/ file1 dir1/file2 dir2/file3
- dh0:files2/ *.c
-
- This would add the following files to `newarc.lha':
-
- Added file(s) Stored as
- ----------------- --------------
- dh0:files/file1 file1
- dh0:files/dir1/file2 dir1/file2
- dh0:files/dir2/file3 dir2/file3
- dh0:files2/*.c *.c
-
- Example 2:
-
- lha -r a newarc hd:tmp/ *.c *.h hd:px/ *.s *.snd *.iff
-
- This would add all `.c' and `.h' files in `hd:tmp' and it's
-
-
-
-
-
- V1.38 LhA User's Guide Page 7
-
-
- subdirectories, storing pathnames, but excluding the `hd:tmp'
- part. For instance, the file `hd:tmp/src/foo/arargh.c' would
- be stored in the archive with the name `src/foo/arargh.c'.
- Additionally, all `.s', `.snd' and `.iff' files in `hd:px' and
- its subdirectories will be added, excluding the `hd:px/' part
- of the name.
-
- Homedir specifications must end in `/' or `:', otherwise they
- won't be recognized as such.
-
- Homedir specifications may contain wildcards and other pattern
- matching tokens.
-
- NOTE
-
- You are not supposed to include the home directory name
- in the action file specifications after the home
- directory spec. I.e. you should not enter
- `devs:printers/ devs:printers/*HP*', but
- `devs:printers/ *HP*' is correct.
-
- The home directory remains active for the rest of the
- command line or until the next home directory
- specification. If you want to set the home directory to
- the current directory (as it is from the beginning),
- use a single slash (`/') as a home directory
- specification. This means you cannot use a single slash
- to specify the parent directory, to do this you will
- have to add an additional slash (`//' means parent
- directory, `///' the parent's parent directory and so
- on).
-
-
- 2.1.6 Recursive file collection
-
- When collecting files recursively (by using the -r option with
- a or u commands), action file specs are treated somewhat
- differently. Home directories work the same way as usual. In
- recursive file collection mode, the last node of the action file
- specification (i.e. the file name part) is used as a pattern that
- is compared to all files in the specified directory and its
- subdirectories. Some examples to hopefully clarify the somewhat
- fuzzy description:
-
- EXAMPLE
-
- Example 1:
-
- lha -r a myarc *
-
- This will add all files in the current directory and its
- subdirectories to `myarc.lha'.
-
-
-
-
-
- V1.38 LhA User's Guide Page 8
-
-
-
- Example 2:
-
- lha -r a myarc *.c *.cpp
-
- Will add all `.c' and `.cpp' files in the current directory
- and its subdirectories to `myarc.lha'.
-
- Example 3:
-
- lha -r a myarc ram:work/* hd:tmp/*.c
-
- Will add all files in `ram:work' and its subdirectories - as
- well as all `.c' files in `hd:tmp' and its subdirectories - to
- `myarc.lha'. The full pathnames will be stored (excluding the
- device specification of course).
-
- Example 4:
-
- lha -r a myarc ram:work/ * hd:tmp/ *.c
-
- Will do exactly the same as example 3, but LhA will not store
- the `ram:work/' and `hd:tmp/' parts of the filenames in the
- archive. (Because of the home directory specifications).
-
- Example 5:
-
- lha -r a myarc ram:dir1 ram:makefile
-
- Will archive all files in the directory `dir1' and its
- subdirectories, as well as the file `ram:makefile'.
-
- Example 6:
-
- lha -r a myarc ram:dir1 ram:(makefile)
-
- Will do almost the same as example 5, but will archive ALL
- `makefile's in ram: and all it's subdirectories (because of
- the parentheses - see note below).
-
-
- NOTE
-
- Explicitly specified directories (explicitly = without
- pattern matching) will be treated as `dirname/*', i.e.
- all files in the directory and it's subdirs will be
- archived. Explicitly specified files will only be
- looked for in the current home directory, unless the
- filename is enclosed in parentheses, in which case the
- file will be looked for recursively. I have chosen to
- implement it this way because LhA can then be used
- better together with directory utilities such as
-
-
-
-
-
- V1.38 LhA User's Guide Page 9
-
-
- Browser or DirectoryOpus.
-
-
- 2.1.7 Specifying destination directory
-
- You can optionally specify a destination directory for the
- files written by the extract commands by writing the desired
- directory name anywhere after the archive name on the command
- line. If no destination directory is specified, LhA will use the
- current directory as the destination. The destination directory
- specification must end in `:' or `/', just like home directory
- specifications, or LhA would not be able to distinguish directory
- names from action file specs.
-
- EXAMPLE
-
- `lha x corpus ram:' would extract the contents of `corpus.lzh'
- to ram:.
-
- `lha x project *.c dl:tmp/' would extract the contents of
- `project.lzh' to the `dl:tmp' directory.
-
- and so would `lha x project dl:tmp/ *.c'.
-
- NOTE
-
- You can specify a directory that does not already exist
- as the destination, LhA will automatically create the
- directory for you (without asking first).
-
-
- 2.1.8 `@'-files
-
- `@'-files are files that are treated as if their contents were
- written on the command line. They can be used to specify files,
- options commands and anything else can be specified on the
- command line. An example would be the command `lha -r e arc.lzh
- *.[chas] @filelist ram:', which would extract all files matching
- `*.[chas]' or the files listed in `filelist' to ram:. Carriage
- returns and linefeeds in `@'-files are treated as whitespace.
-
- 2.1.9 LhA limitations
-
- LhA has been written to be as flexible as possible, but there
- are some limitations that you should be aware of as a user.
-
- o LhA pathnames are currently limited to 255 characters. If you
- exceed this limit behaviour is undefined. User reports indicate
- that AmigaDOS does not handle pathnames with more than 180-190
- characters properly.
-
- o When headers of level 0 are used, filenotes may not be longer
-
-
-
-
-
- V1.38 LhA User's Guide Page 10
-
-
- than 230-{filename length (including path)} characters. With
- header level 1 or 2 filenotes may be up to 255 characters
- (AmigaDOS currently only supports filenotes of max 80
- characters so this should not be any problem except with
- exceptionally long filenames and paths).
-
- o The number of files in an archive files are only limited by
- available disk space. The size of an archive must not exceed
- 2.147.483.648 bytes (2 Gigabytes); LhA will get VERY confused.
-
- o The number of arguments on the command line is only limited by
- available RAM memory and the used shell.
-
- o The allowed number of wildcard-matched files is only limited
- by available RAM memory. Any number of files may be extracted
- or added to an archive in one go.
-
- o Level 2 headers must not be longer than 1024 characters, or
- LhA will not be able to process them.
-
- o Currently LhA only handles multivolume archives with a maximum
- of 100 volumes. If you create archives with more than this
- number of volumes, behaviour is undefined.
-
-
- 2.2 Environment variables
-
- Under KickStart 2.0 LhA supports both local and global
- environment variables. Local variables are not available under
- the 1.3 shell. Upon startup LhA looks for the environment
- variable `LHAOPTS' and includes this as if it had been typed on
- the command line directly after the `LhA' command name. If you
- don't want to use the settings from the environment variable, use
- the `-I' switch.
-
- EXAMPLE
-
- If you set LHAOPTS to `-N -b64' with the following command:
-
- 1> setenv LHAOPTS -N -b64
-
- LhA would not display any file-progress indicator and use a
- 64K I/O buffer for all following invokations until the machine
- is reset or LHAOPTS is changed. If you want to set some
- default options that should survive reset and power off, use
- the environment variable name `ENVARC:LHAOPTS' instead, like
- in:
-
- 1> setenv ENVARC:LHAOPTS -b64
-
- This would cause the environment variable LHAOPTS to be set to
- `-b64' whenever the machine is rebooted.
-
-
-
-
-
- V1.38 LhA User's Guide Page 11
-
-
- 2.3 Pattern matching
-
- This section describes how LhA handles pattern matching and
- file collection. For a discussion on what commands will accept
- file patterns, please refer to section 2.1 (Command line
- syntax).
-
- Pattern matching in LhA is always case-insensitive. (i.e. it
- doesn't matter if you write names in upper- or lowercase, `a'
- will match both `a' and `A'.
-
- 2.3.0 Exactly what is pattern matching anyway?
-
- Pattern matching is a means of specifying several files in an
- elegant and relatively straightforward manner. Instead of just
- lining up all the file names you would like to work on on the
- command line (which can be very tedious when a lot of files are
- involved) you can use a technique called `pattern matching'.
- With this technique you - as the name implies - use the fact that
- the names of the files you wish to work on often share certain
- characteristics. For example, the names of files containing
- C-source almost always end in `.c', so if you would like to add
- all C-source files in the current directory you could take
- advantage of this fact by specifying a pattern to that matches
- these files (in this case such a pattern would be `*.c').
- Exactly how these patterns are built up are explained in section
- 2.3.1 forward. Also read the sections explaining `how to specify
- action files' and `how to specify archive files'.
-
- 2.3.1 Accepted pattern tokens
-
- LhA accepts all valid KickStart 2.x and 1.x pattern tokens, it
- also accepts all ARP tokens (works more or less the same way as
- KS2.x).
-
- In the explanations that follow, the term `expression' means
- either a single token or character (such as `x' or `?'), or an
- alternation (such as `(ab|cd|ef)'), or a character class (such as
- `[a-z,A-Z]').
-
- 2.3.1.1 Question mark (?)
-
- The question mark matches any one _single_ character. The
- question mark is sometimes also referred to as the `wildchar'.
-
- EXAMPLE
-
- `d?' : matches all two-letter names beginning with a `d'
- character. For example `dm' or 'd8'.
-
- `ab?d' : matches all four-letter names beginning with `ab' and
- ending in `d'. For example `abcd', `abad' and `ab_d'
-
-
-
-
-
- V1.38 LhA User's Guide Page 12
-
-
- but not `abd' or `acid'.
-
- `f??' : matches all three-letter names beginning in `f'. For
- example `foo', `fel', `fan' but not `ab', `fuga' or
- `fini'
-
-
- 2.3.1.2 Star/Asterisk (*)
-
-
- The star matches any sequence of any length, including
- sequences with length zero (i.e. the null string). The `*'
- character is often called the `wildcard' character.
-
- EXAMPLE
-
- `a*' : matches all names starting with an `a', for example
- `abba', `anette'.
-
- `a*z' : matches `auugaz', `awacz' and `az' and any other names
- starting with an `a' and ending in `z'.
-
- `s*f*n' : matches `stefan', `staffan', `steffen', `sfn' or any
- other name starting with an `s', followed by any number
- (including zero) of arbitrary characters, followed by
- an `f', and ending in `n'.
-
- `*.lzh' : matches all names ending in `.lzh'
-
-
- 2.3.1.3 Hash mark (#)
-
- The hash mark matches a subsequent expression (pattern) 0 or
- more times. The simplest example of this is `#?' which will
- match any filename (equivalent to the `*' token).
-
- EXAMPLE
-
- `#a' : matches any name consisting of the `a' character only.
- For example `aaaa' and `a'.
-
- `b#ad' : matches any name beginning in `b', followed by any
- number (including 0) of `a' characters, and ending in
- `d'. For example `bad', `bd' and `baaaad'.
-
- `#(ha)#(hi)urgh' : of `ha':s followed by any number of `hi':s
- followed by `urgh'. For example `hahahahahihiurgh'
- matches, and so does `haurgh' and `hahiurgh'.
-
-
- 2.3.1.4 Square brackets ([])
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 13
-
-
- The square brackets enclose a set of characters to match.
- They are a bit like the parentheses but match single-characters
- only. You can either specify just the letters you would like the
- expression to match, as in `[abcx]' (this would match `a', `b',
- `c' and `x'), or you can specify ranges, like `[a-c,x-z]' (which
- would match `a', `b', `c' and `x', `y', `z').
-
- EXAMPLE
-
- `prg.[1-9]' : matches any five-letter name beginning with
- `prg.', followed by a non-zero digit. For example
- `prg.1', 'Prg.8'.
-
- `Ver_[1-2].[0-9].[a-z]' : matches any nine-letter name
- beginning with `ver_' followed by either a `1' or a `2'
- character, followed by a dot (`.'), a digit and finally
- a character between `a' and `z' (i.e. all letters in
- the english alphabet). For example `Ver_1.2.a',
- `Ver_2.9.d'.
-
- `#[a-z 0-9]' matches any name containing any number of
- alphanumeric characters (i.e. either in the alphabet
- or numeric). For example `ados' or `PDP11'. It does
- not match `AXE.dat' however, since it contains a `.'
- which is not in the specified character range.
-
- `*.[chas]' : matches any name ending in `.c', `.h', `.a' or
- `.s'.
-
-
- 2.3.1.5 Parentheses and the vertical bar
-
- Parentheses can be used to achieve several things. The first
- way of using them is just like in mathematics - to group several
- individual expressions into one single expression. The other way
- is to provide a list of acceptable expressions separated with `|'
- chars. The entire parenthesized expression is treated as one
- token by other tokens (like `#' and `~'). These two are actually
- the same, since the first is just a special case of the second
- use. This is easier to explain with a couple of examples:
-
- EXAMPLE
-
- `(abc|def|xyz)' : will match names `abc', `def' and `xyz' and
- no other.
-
- `*.(doc|prf|man)' : will match all names ending in `.doc',
- `.prf' or `.man'.
-
- `~(pfile)' : will match all names except `pfile'. (NB: this
- expression is NOT the same thing as `~pfile', see
- section 2.3.1.6 for details)
-
-
-
-
-
- V1.38 LhA User's Guide Page 14
-
-
- `(*.c|*.h|*.doc|ab*)' : will match all files ending in `.c',
- `.h' or `.doc' and all files beginning with `ab'.
-
-
- Typing an action-file spec of `(xxx|yyy|zzz)' is functionally
- equivalent to writing `xxx yyy zzz' (xxx, yyy, zzz can be any
- valid patterns, including patterns with parentheses).
-
- Parentheses can be nested.
-
-
- 2.3.1.6 Tilde (~)
-
- The tilde negates the immediately following expression. It
- negates ONLY the immediately following token or paranthesized
- expressiom, not the entire following expression as some people
- think (see note about ARP<->KS2.0 below).
-
- EXAMPLE
-
- `~x?' : matches any two-letter name except those starting with
- `x'. For example `ah', `ko' or 'ba' but not 'x0' or
- 'xi'.
-
- `~(x?)' : matches anything except two-letter names starting
- with `x'. For example `xaa' or `ab' but not `xa' or
- 'x9'.
-
- `~(#?)' : matches nothing at all. (The tilde negates the
- `#?', which matches all names).
-
- `~lha' : matches all strings that doesn't begin with `l', and
- ends in 'ha'. For example `uha', `why_lha' but not
- 'lumbha' or 'lha'.
-
-
- NOTE
-
- Because of a bug (or misfeature) in ARP, the `~'
- token is not correctly handled by LhA when running
- under KickStart 1.3 under ARP. Under KS2.x LhA
- handles it okay however. In ARP a negation actually
- negates the ENTIRE EXPRESSION, so `~lha' matches all
- files but `lha'.
-
-
- 2.3.1.7 Percent sign (%)
-
- The percent sign represents the empty string. i.e. it
- matches 0 characters always. It is only useful in parenthesized
- expressions and must not follow a the `#' token (`#%' would be a
- rather pointless pattern, since the % always matches exactly 0
-
-
-
-
-
- V1.38 LhA User's Guide Page 15
-
-
- characters).
-
- EXAMPLE
-
- `lha(.doc|.man|%)' : matches `lha.doc', `lha.man' and `lha'.
-
- `l%u%a' : matches `lua' only; the percent signs are totally
- irrelevant here and may just as well be omitted.
-
-
- 2.3.2 KS1.3 ARP and KS2.x pattern matching
-
- When running LhA (and other programs for that matter) under
- KickStart 2.x, the `*' (star) wildcard will be enabled on program
- startup. The initial state of the WILDSTAR flag will not be
- reset. If arp.library is not available when running under
- KickStart 1.3 LhA will use its internal pattern matching
- routines, which only recognizes the `*' and `?' tokens.
-
- 2.3.3 National characters
-
- LhA correctly converts national characters to lower- or
- uppercase when the `-Qn' option is enabled. This causes some
- trouble on older versions of the KickStart since these did not
- correctly convert national characters to uppercase when
- calculating the filename hash value. The `-Qn' option should not
- be used on OFS or FFS disks.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 16
-
-
- 2.4 Commands
-
- This section describes the commands for archive manipulation
- and maintenance LhA provides. See section 2.1.2 (Specifying
- commands) for details on how to specify commands on the command
- line.
-
- 2.4.1 `a' Add files to archive
-
- Obviously, this command adds a number of files to one or more
- archives. If the specified archive does not already exist, then
- it will be created. You cannot add files to an archive if these
- already exist in the archive. If you attempt to do so, a warning
- will be issued, but LhA will continue adding the other files you
- have specified.
-
- Only the filenames are stored by default, if you want to
- preserve some disk structure and directory names, you will have
- to use the -x option to turn path preservation on. If you want to
- archive entire subdirectories recursively you can use the -r
- option, which will turn on the -x option automatically. These
- options are explained in section 2.5.
-
- EXAMPLE
-
- `LhA a myarchive dict.txt' would add the file `dict.txt' to
- the archive `myarchive.lha'.
-
- `LhA a arc.lzh *.c *.h' would cause all files in the current
- directory ending in `.c' or `.h' to be added to the archive
- `arc.lzh'
-
- `LhA -r -0 arch *.c' would cause all `.c' files in the current
- directory and all it's subdirectories to be added to the
- archive `arch.lzh' using the -lh1- (LhArc 1.x) compression
- method.
-
- `LhA -r archive src:(lharca|lha)/*.[cha] asrc:*.asm' would
- cause all `.c', `.h' and `.a' files in the `src:lharca' and
- `src:lha' directories and subdirectories, as well as all
- `.asm' files in the `asrc:' directory, to be added to the
- archive `archive.lha'.
-
-
-
- 2.4.2 `c' Concatenate/Append archives
-
- With this command it is possible to concatenate several
- archives to one or to append several archives to the end of
- another. Currently, LhA does not check for duplicate files, so if
- two archives contain a file with the same name there will be two
- entries with the same name in the resulting archive.
-
-
-
-
-
- V1.38 LhA User's Guide Page 17
-
-
- Concatenating and appending works just as if you had extracted
- all files from the archives and then moved them all to the
- destination archive - except that there is no
- decompression/compression involved in the operation.
-
- To combine (concatenate) several archives into a new archive
- you specify a non-existant or empty archive as the working
- archive - this file will then contain the resultant archive.
-
- To append archives to the end of an archive, specify the
- archive to append to as the working archive - the remaining
- archives will then be appended to this archive.
-
- EXAMPLE
-
- `LhA c ram:new arc:csrc arc:csrc2' would combine the two
- archives `arc:csrc.lha' and `arc:csrc2.lzh' into one archive
- named `ram:new.lha'.
-
- `LhA c arc:csrc arc:csrc2' would yield the exact same result
- as the above command but the resulting archive is in
- `arc:csrc.lha' instead (`csrc2.lzh' is appended to the end of
- `arc:csrc.lha').
-
-
- Note that you can use wildcards to specify the files to append
- / concatenate.
-
- 2.4.3 `d' Delete files from archive
-
- This command removes one or more files from an archive. Please
- note that the message about `packing' does not mean that LhA
- compresses the files once more.. Just that it removes the unused
- files from the archive (packs the remaining files closer).
-
-
- NOTE
-
- Files deleted with the `d' command cannot be recovered
- from the archive file in any way. Once a file is
- deleted from an archive it is gone forever.
-
-
- 2.4.4 `e' Extract files from archive
-
- This command is used to extract files from an archive. It
- works just like the `x' command, except this command takes the
- `-x' option into consideration (the `x' command assumes it is
- set). If the `-x' option is disabled, files are extracted
- without their pathnames, and if it's enabled LhA will extract all
- files with the pathnames and create the needed directories if
- they do not already exist.
-
-
-
-
-
- V1.38 LhA User's Guide Page 18
-
-
-
- EXAMPLE
-
- `lha -x0 e foo.lzh ram:' will extract all files from the
- archive `foo.lzh' to ram:, without paths (all files will be
- put in the ram: root directory).
-
- `lha x foo.lzh *.c ram:' will extract all files ending in `.c'
- to ram:, with paths - i.e. it will recreate the original
- directory structure.
-
- See the tutorial section for more examples
-
-
- 2.4.5 `f' Freshen files in archive
-
- This command is used to freshen files in an archive. I.e.
- replace older files in the archive with new files from the
- current directory. Pathnames are considered unless the `-x'
- option is disabled explicitly (with `-x0'). This command never
- adds any files to an archive, it just replaces those files that
- have older modification dates than the corresponding files in the
- current directory.
-
- EXAMPLE
-
- `lha f /aab/lha' will freshen all files in the archive
- '/aab/lha.lha'.
-
- `lha f /aab/fsys *.[ch]' will freshen all `.c' and `.h' files
- in the archive '/aab/fsys.lha'.
-
-
- This command automatically enables the `-x' option unless it
- is explicitly disabled on the command line with `-x0'.
-
- 2.4.7 `h' Hunt for diffs arc <-> filesys
-
- This command is used to see what files in an archive has been
- changed since the files were archived. The `-D' (display type)
- option has a special meaning with this command; The listing
- format is as follows:
-
-
- `-D0' (default) : Each differing file is listed with the name
- on the right and a `checklist' on the left with x-es in the
- appropriate positions indicating what differs between the archive
- and the filesystem. `Tm' means the last modification date
- differs, `Sz' means the size is different, `Pr' means the
- protection bits has changed, `Fn' means the filenote has changed,
- and `Del' means the file does not exist anymore.
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 19
-
-
-
- `-D1' : Every differing file is listed with the name on the
- left followed by a brief description of what differs. If more
- than one thing differs a new line will be used for each differing
- attribute.
-
-
- `-D2' : As `-D1' but all differing attributes are listed on
- the same line.
-
-
- `-D3' : Only the differing filenames are listed, one on each
- line.
-
- If no directory is specified on the command line, LhA assumes you
- want to compare the archive to the current directory. The
- directory to compare to is specified the same way as the
- destination directory with the `e' and `x' commands.
-
- EXAMPLE
-
- `lha h arc:utils.lha sys:utilities/' would compare all files
- in the archive `arc:utils.lha' to the corresponding files in
- the `sys:utilities' directory, reporting all differences.
-
- `lha -x0 h src:misc #?.c misc:' would compare all files with
- names ending in `.c' in the `src:misc.lha' archive to the
- corresponding files in the `misc:' directory.
-
- `lha h dl:backup' would compare the files in archive
- `dl:backup.lha' to the files and directories in the current
- directory.
-
-
-
- 2.4.8 `l' List archive contents (terse)
-
- This command gives a terse list of the contents of an archive
- file, including file names (without paths), original and
- compressed length, last modification date and compression ratio.
-
- Files with pathnames are indicated by having a `+' character
- in front of the name. See example below.
-
- Filenotes are NOT displayed when using this command, use the
- `v' or `vv' command to display those.
-
- The action file specification is used to determine what files
- to list. If no filespecs are given, all files will be listed.
-
- EXAMPLE
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 20
-
-
- 1> lha -N l dl:c64new
-
- Listing of archive 'dl:c64new.lzh':
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- -------------
- 36098 26979 25.2% 20-Oct-91 22:40:16 +Stormlord
- 482 293 39.2% 20-Oct-91 22:41:36 +Stormlord.info
- 23016 12100 47.4% 21-Oct-91 08:28:18 PlaySID
- -------- ------- ----- --------- --------
- 59596 39372 33.9% 25-Oct-91 21:22:48 3 files
-
- The `+' (plus) signs in front of the first two names indicate
- that the file has a path which is not displayed with the `l'
- command (use the `v' or `vv' command to display pathnames as
- well). The `-N' suppresses the copyright notice.
-
-
- 2.4.8.1 `lq' List archive (terse-quick)
-
- This command works just like the `l' command, but the only
- information listed is the filenames without paths. Empty
- directories are displayed as an empty line.
-
-
- 2.4.9 `m' Move files to archive
-
- This command works just like the `a' command, but the source
- files are deleted after successfully adding them to the archive.
-
- EXAMPLE
-
- `lha m includes.lzh src:*.[hi]' will move all files in
- directory `src:' having filenames ending in `.h' or `.i' to
- the archive `includes.lzh'.
-
- `lha m myarc.lzh lhb_log.911012 lhb_idx.911012' will move the
- two specified files (`lhb_log.911012' and `lhb_idx.911012') to
- the archive `myarc.lzh'.
-
-
- 2.4.14 `p' Print files to stdout
-
- This command works just like the extract (`e', `x') commands,
- but sends the extracted output to stdout (normally the console or
- output redirection file).
-
-
- 2.4.15 `r' Replace files
-
- This command works just like the update/add commands but
- replaces the files that already exist in the archive regardless
- of the file modification time. (Using the `u' command together
-
-
-
-
-
- V1.38 LhA User's Guide Page 21
-
-
- with the `-Qr' option is equivalent to using this command).
-
-
- 2.4.17 `t' Test archive integrity
-
- This command tests the specified archives integrity by
- extracting the files they contain to nowhereland, i.e. the data
- is decompressed only, not written to any file. This command only
- works on entire archives, i.e. you cannot just test one file in
- an archive. If this command fails, the archive is corrupted, and
- a warning return code is returned.
-
- EXAMPLE
-
- `lha t work:arcs/*' will check the integrity of all archives
- in directory `work:arcs'.
-
- `lha t s:envarc.lzh' will check the integrity of
- `s:envarc.lzh'
-
- `lha -R t dh0:*' will check the integrity of all archives on
- the `dh0:' volume (`-R' = Collect archives recursively).
-
-
- 2.4.18 `u' Update archive
-
- As the command name implies, this command updates archives. It
- adds files that are not yet in the archive and replaces existing
- but older files. The last modification date for files are used to
- determine which file is the newest one.
-
- EXAMPLE
-
- `lha u /aab/lha.lzh *.c' will update archive `/aab/lha.lzh'
- with all `.c' files in the current directory.
-
-
- 2.4.19 `v' List archive (verbose)
-
- This command works just like the `l' command, but displays the
- full pathname of the file, while `l' only displays the name node
- without path. Another difference between `l' and the `v'/`vv'
- commands is that the `l' command does not show filenotes.
- Filenotes are displayed on a separate line with a colon (`:') in
- front of it, just like the AmigaDOS `list' command.
-
- The action file specification is used to determine what files
- to list. If no filespecs are given, all files will be listed.
-
- EXAMPLE
-
- 1> lha -N v dl:c64new
-
-
-
-
-
- V1.38 LhA User's Guide Page 22
-
-
-
- Listing of archive 'dl:c64new.lzh':
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- -------------
- 36098 26979 25.2% 20-Oct-91 22:40:16 S/Stormlord
- 482 293 39.2% 20-Oct-91 22:41:36 S/Stormlord.info
- 23016 12100 47.4% 21-Oct-91 08:28:18 PlaySID
- : New version with `equalizers'
- -------- ------- ----- --------- --------
- 59596 39372 33.9% 25-Oct-91 21:22:48 3 files
-
- The `-N' suppresses the copyright notice.
-
-
-
- 2.4.19.1 `vq' List archive (verbose-quick)
-
- This command works just like the `v' command, but the only
- information listed is the filenames including path.
-
-
- 2.4.20 `vv' List archive (full)
-
- This command is just like the `v' command, but displays all
- available information in a slightly different format. The
- original and packed size, last modification date and compression
- ratio is listed just as with the `v' command, plus file
- attributes (`Atts'), compression method, file CRC and DOS ID for
- the OS the files were compressed on. If no DOS ID is given in
- the archive (header level < 1), a question mark is displayed.
- The most common DOS IDs are `A', `U' and `M', where `A' is for
- AmigaDOS, `U' is for **IX and `M' is for MS-DOS. The filename
- including path is displayed on a separate line. File notes are
- displayed in the same way as the `v' command does it, on a
- separate line after the filename. The header level is also
- displayed, and if any unhandled extended headers are found, an
- `X' will be listed after the DOS ID.
-
- The action file specification is used to determine what files
- to list. If no filespecs are given, all files will be listed.
-
- EXAMPLE
-
- 1> lha -N vv dl:c64new
-
- Listing of archive 'dl:c64new.lzh':
- Original Packed Ratio Date Time Atts Method CRC L OS
- -------- ------- ----- --------- -------- -------- ------ ---- -----
- S/Stormlord
- 36098 26979 25.2% 20-Oct-91 22:40:16 ----rwed -lh1- 2093 2 U X
- S/Stormlord.info
- 482 293 39.2% 20-Oct-91 22:41:36 ----rwed -lh1- 710E 2 U X
-
-
-
-
-
- V1.38 LhA User's Guide Page 23
-
-
- PlaySID
- 23016 12100 47.4% 21-Oct-91 08:28:18 ----rwed -lh5- 89FF 0 ?
- : New version with `equalizers'
- -------- ------- ----- --------- --------
- 59596 39372 33.9% 25-Oct-91 21:22:48 3 files
-
- The `-N' option suppresses the copyright notice.
-
-
-
- 2.4.21 `x' Extract files with path
-
- This command works exactly the same as the `e' command, but
- it always extracts files with paths (i.e. same as using the
- `e' command with `-x' option on), regardless of the state of
- the `-x' option.
-
-
- 2.4.22 `y' Copy archive with new options
-
- This command takes an archive as input, and rewrites the
- selected (or all, if none specified) files with the new options
- given on the command line or in environment variables. This can
- often be useful. A couple of examples will surely help to
- clarify;
-
- EXAMPLE
-
- `lha -H1 y dl:#?' will convert all archives in the `dl:'
- directory to archives with level-1 headers.
-
- `lha -x0 y ram:files.lha *.c' will remove all paths from all
- files with names ending in `.c' in the archive
- `ram:files.lha'.
-
-
-
- NOTE
-
- LhA currently ignores the compression method setting,
- so this command cannot be used to re-archive old
- -lh1- archives to new -lh5- archives or vice versa.
- This will be possible in a future release.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 24
-
-
- 2.5 Options
-
- This section describes the various options that are
- available to you when using LhA. For a detailed explanation on
- how to enable/disable specific options and where you can
- specify options, see section 2.1.1. The letters in parantheses
- indicate what commands the options affect.
-
- Code Commands
- ----- ------------
- (add) a,u,f
- (all) all commands
- (ext) e,x
- (upx) a,u,f,e,x
- (upd) a,u,f,d
-
-
- 2.5.1 `-a' (upx) Preserve file attributes
-
- This option, when enabled, will make LhA store and restore
- file protection flags. The eight attributes are listed below:
-
- r: Read - This flag is set for files which are readable (a
- file is read-protected if the flag is unset).
-
- w: Write - This flag is set for files which are writeable
- (a file is write-protected if the flag is unset).
-
- e: Execute - This flag is set for files which are
- executable (binary load files or shell scripts must have
- this bit set).
-
- d: Delete - This flag is set for files which are
- deleteable (a file is protected from deletion if this
- flag is unset).
-
- a: Archived - This flag is used by harddisk-backup
- programs (and optionally LhA) to indicate what files
- have been changed since the last backup. If this flag is
- set it indicates that the file is unchanged, and if it
- is unset the file has changed since the last backup.
- The bit is cleared whenever a write is made to the
- file.
-
- p: Pure - This flag is set for binary load files which are
- pure (i.e. multitasking reentrant), and can be made
- resident with the AmigaDOS 'resident' or equivalent
- command.
-
- s: Script - This flag is set for shell script files.
-
- h: Hidden - This flag is set for files that should not
-
-
-
-
-
- V1.38 LhA User's Guide Page 25
-
-
- show up on directory listings. It is not supported by
- the current release of the AmigaDOS shell/CLI commands,
- and should thus not be used.
-
-
- Please refer to an AmigaDOS manual for more detailed
- explanation of the various file protection flags.
-
- If the option is disabled (by issuing `-a0' on the command
- line), the protection flags are set to '----RWED' for all
- extracted and archived files. Important: You MUST have this
- option enabled both when archiving and extracting to preserve
- file attributes correctly.
-
- NOTE
-
- Use this option only if you know that the archive has
- been compressed or will be decompressed with an Amiga
- archiver, since the attribute field format is
- different on different operating systems. If you use
- archive headers of level 1 or higher you need not
- care about this since the archiver then detects what
- OS the archive was created on and only uses the
- protection flags if it is the native OS. Always
- leave this option enabled when using archive headers
- of level 1 and higher!
-
-
- This option is enabled by default when archiving (a,f,u,m)
- and disabled by default for all other commands.
-
- 2.5.2 `-A' (upd) Set archive attributes
-
- When this option is active, LhA will set the file protection
- flags of all archives it updates to `----RW-D'.
-
- This option is OFF by default.
-
- 2.5.3 `-b' (all) Set I/O buffer size
-
- This option will set the size of the I/O buffers LhA uses
- when reading and writing to archive files. You can set the
- buffer size to anything from 8KB to 64 KB. Larger buffers
- normally makes LhA operate slightly faster (depends on the
- nature of the archive and what files are selected).
-
- EXAMPLE
- 'lha -b64 a archive.lzh hubba' : Will add file `hubba' to
- `archive.lzh' using an I/O buffer of 64K.
-
- NOTE
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 26
-
-
- Running LhA with a small I/O buffer on an accelerated
- (68020 and up) Amiga will degrade compression /
- decompression performance significantly! The default
- buffer size of 32KB is enough in most cases, and
- works well on an unaccelerated Amiga as well. Also
- note that when running LhA and doing all work on some
- ram disk, the I/O buffer size is less important, and
- it is unnecessary to run with a large buffer. The
- default buffer size of 32K is a good choice in most
- setups.
-
-
- The default buffer size is 32K (32768 bytes)
-
- 2.5.4 `-B' (upd) Keep backup of archives
-
- When this option is enabled, LhA will always keep a backup
- copy of the archive whenever a file is removed from it by the
- delete, update, freshen or replace commands. The backup archive
- is named `<arcname>.bak' (note that the `.lzh' or `.lha' suffix
- is *NOT* replaced by the `.bak' suffix - rather, the `.bak'
- suffix is always appended at the end of the filename).
-
- This option is OFF by default.
-
- 2.5.5 `-c' (all) Confirm files
-
- When this option is active LhA will ask you for confirmation
- on all files and archives that are acted upon.
-
- This option is OFF by default.
-
- 2.5.6 `-C' (ext) Clear arc-bit on extract
-
- When this option is active LhA will mask the A-protection
- bit for all files it extracts. This is useful when extracting
- files from archives to a harddisk, since the extracted files
- would not be recognized as new or changed files by the backup
- program if the A-bit was set.
-
- This option is ON by default.
-
- 2.5.6 `-d' (upd) Archive date=newest file
-
- When this option is active LhA will set the last
- modification date of the archive to the same date as the last
- modified file in the archive. This more accurately reflects the
- real age of the archive contents than the date of the last
- archive update.
-
- This option is OFF by default.
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 27
-
-
- 2.5.8 `-D' (all) Alternate progress display
-
- This switch is used to change the look of the byte progress
- indicator that LhA displays when it is compressing or
- decompressing files. There are several different types of
- progress indicators, you can specify which one you want with a
- digit after the '-D' string.
-
-
- 0: This is the default progress indicator, it displays how
- many bytes of the file LhA has processed, and how many bytes
- there is in the file like this:
-
- (xxxxxxx/yyyyyyy) where x = bytes processed, and y = total
- bytes in the file.
-
-
- 1: This progress indicator simply shows a `rotating line' that
- is rotated 45 degrees every time the progress indicator
- display is updated).
-
-
- 2: This progress indicator shows how many percent of the file
- LhA has processed.
-
-
- 3: This progress indicator displays a growing bar that
- indicates how much of the file that has been processed.
-
-
- EXAMPLE
-
- `lha -D2 a src *.asm' will add files to the archive
- `src.lha' with a percentage indicator (type 2).
-
-
- NOTE
-
- When used with the `h' command this option has a
- slightly different meaning. See the section about the
- `h' command for a detailed explanation.
-
-
- The default progress indication type is 0.
-
- 2.5.9 `-e' (add) Archive empty directories
-
- When this option is used together with the `-r' (collect
- files recursively) option, LhA will archive all empty
- subdirectories.
-
- This option is OFF by default (empty subdirectories are not
-
-
-
-
-
- V1.38 LhA User's Guide Page 28
-
-
- archived).
-
- 2.5.10 `-E' (ext) Touch extracted files
-
- When this option is enabled, LhA will set the file
- modification date of all extracted files to the current time.
- This can be useful if you do HD backups by date rather than by
- archive bit.
-
- This option is OFF by default (the original modification
- dates are restored).
-
- 2.5.11 `-f' (all) Ignore filenotes
-
- When this option is enabled, LhA will not store or restore
- any filenotes. There is no real need to do this, since it does
- not cause any compatibility problems with other systems because
- of the way the filenotes are stored. If problems should arise
- anyway, try enabling this option or use headers of level 1 or
- higher if the target system supports it.
-
- See the section about compatibility (1.7) for a discussion
- about this and other compatibility issues.
-
- This option is OFF by default (filenotes are stored and
- restored)
-
- 2.5.12 `-F' (all) Use fast progress display
-
- In this mode LhA uses a different method of display progress
- for the extract and test commands. Normally, LhA emits a
- linefeed (LF) after each file has been processed, thus
- advancing/scrolling the display one line. In this mode LhA only
- emits a LF when an error occurs. This is useful if you are
- testing or extracting files with a lot of small files, and the
- scrolling takes more time than the actual decompression!
-
- NOTE
-
- If you use the default style progress display on a
- very fast Amiga system (68020+), beware that the
- scrolling of the screen may actually take more time
- than the actual decompression! This is especially
- true for archives with many small files. So don't
- use it unless you really _have_ to see what files
- have been processed. LhA scrolls the display
- whenever an error occurs on a file, so you still can
- see when an error occurs (better, even, since the
- only filenames that remain on screen after the action
- is complete are those that failed!).
-
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 29
-
-
- This option is OFF by default (use old style progress
- indication).
-
- 2.5.13 `-g' (add) Garble files with password
-
- This option is not available in the current version.
-
- 2.5.14 `-G' (ext) Only extract newer files
-
- When this option is used LhA will only extract files that
- already exists and have a last modification date that is newer
- than the existing files.
-
- This option is OFF by default.
-
- 2.5.15 `-h' (add) Disable homedirectories
-
- When this option is enabled, the homedirectory specification
- feature of LhA is disabled.
-
- This option is OFF by default (homedirectories are
- recognized).
-
- 2.5.16 `-H' (add) Write header level
-
- With this switch you can select which header types to use.
- The valid header levels are currently 0,1 and 2. Please refer
- to the section about header levels for a more detailed
- explanation about the various header types.
-
- The default header level is 0.
-
- 2.5.17 `-i' (all) Read filelist from file
-
- With this option you can include an action file list from a
- file instead of specifying all action files on a command line.
-
- EXAMPLE
-
- If the file `ArcFList' contains the following lines:
-
- ---> Start of ArcFList data (this line is NOT in the file)
-
- LhA.c ArcList.c FSys/*.(c|h|i|asm|prf|man|doc|txt)
-
- ---> End of ArcFList data (this line is NOT in the file)
-
- The following command line:
-
- `lha -iArcFList u /aab/lha.lzh'
-
- Will do the same thing as this command:
-
-
-
-
-
- V1.38 LhA User's Guide Page 30
-
-
-
- `lha u /aab/lha.lzh LhA.c ArcList.c
- FSys/*.(c|h|i|asm|prf|man|doc|txt)'
-
-
- NOTE
-
- This command works almost exactly like entering
- the following command line:
-
- LhA ? ???? @file
-
- Thus you can include options in your -i file. The
- only difference is that the -i file cannot contain
- a destination directory specification while you
- can do this with the @file method. The destination
- directory will always be taken from the command
- line when using the -i option.
-
-
-
- See the section about `@'(include)-files for an alternate
- way of doing this.
-
- 2.5.18 `-I' (all) Ignore LHAOPTS variable
-
- When this option is specified, LhA will not try to read the
- defaults from the LHAOPTS local or global environment variable.
- Note that this option is special because it has to be specified
- directly after a dash (`-') on the command line.
-
- This option is OFF by default.
-
- 2.5.19 `-k' (all) Keep partial files
-
- This option will, if it's enabled, prevent LhA from deleting
- temporary files when an error occurs. Normally temporary files
- that fail the CRC check, cause I/O errors or are interrupted
- with CTRL-C are deleted before exiting LhA with an error
- message, with this option you can force LhA to keep those
- (often) partial files. This can be useful when trying to
- recover data from corrupted archives - LhA will attempt to
- extract the data from the erraneous archive file and put a
- special filenote on the file to indicate that it failed the CRC
- check and probably is corrupted.
-
- NOTE
-
- Please that in the current release, for certain
- errors all data that has been extracted may not be in
- the partially extracted file, because of internal I/O
- buffering. In this case, set the I/O buffer to the
-
-
-
-
-
- V1.38 LhA User's Guide Page 31
-
-
- smallest value possible (8KB) to recover as much as
- possible. Because of this, small files may not be
- recovered at all. This only applies to LHA (-lh5-)
- compression, LhArc compressed files will always have
- all extracted data in the partially extracted file.
-
-
- This option is OFF by default (partial files are deleted).
-
- 2.5.20 `-K' (move) Kill empty directories
-
- When this option is used together with the move (`m')
- command LhA will delete all directories that are empty after
- moving all files to the archive. Useful for moving an entire
- subdirectory tree with the `-r' (collect files recursively)
- option.
-
- This option is OFF by default (empty directories are not
- deleted).
-
- 2.5.21 `-l' (ALL) Make filenames lowercase
-
- This option, when active, will cause LhA to convert all
- filenames to lowercase. This is useful when extracting files
- from archives created on MSDOS systems, whose filenames are all
- uppercase, which look completely braindead (IMHO). Use this
- option to make them look nicer!
-
- EXAMPLE
- `LhA -l x myarc' will extract all files from
- `myarc.(lzh|lha)', making all filenames lowercase.
-
- This option if OFF by default
-
- 2.5.22 `-L' (ALL) Create filelist
-
- When this option is enabled, it will cause LhA to create a
- list of the files it has acted upon (i.e. what files in the
- last operation that matched the action file specification you
- gave on the command line). The name of the list file must
- follow immediately after the `-L' string. If you need spaces in
- the filename, enclose the name in double quotes.
-
- EXAMPLE
-
- `lha -Lram:ListFile d src.lzh *.asm' will delete all files
- in `src.lzh' with names ending in `.asm' and create a list
- of the deleted files in the file `ram:ListFile'.
-
- `lha -L"ram:List File" u src.lzh *.asm' will update
- `src.lzh', and create a list of the files that were
- added/replaced in the file `ram:List File'.
-
-
-
-
-
- V1.38 LhA User's Guide Page 32
-
-
- NOTE
-
- The file that this option creates is a plain ASCII
- file with every name on a separate line. The files
- created by this option are suitable for use as action
- or exclude lists for LhA using the `@' or `-i'
- options.
-
-
- This option is OFF by default (no filelist created).
-
- 2.5.23 `-m' (ALL) No messages for query
-
- When this option is active LhA will suppress all queries
- that normally are issued before overwriting existing files for
- example. Enabling this option will also cause LhA to ignore
- TelOps (autoshow files). When this option is on you LhA will
- behave like you choose the default action in response to all
- the queries (yes). This option is automatically enabled if the
- standard input is not interactive (if run in the background for
- example).
-
- This option if OFF by default.
-
- 2.5.24 `-M' (ext) No autoshow files
-
- When this option is enabled, LhA will suppress the display
- of autoshow files (files with names ending in `.displayme').
-
- NOTE
-
- Autoshow files are also suppressed if one or more of
- the `-N', `-q' or `-m' options are enabled.
-
-
- This option is OFF by default (autoshow files are
- displayed).
-
- 2.5.25 `-n' (upx) No byte progress indicator
-
- When this option is enabled, the byte progress indicator is
- disabled. LhA will still display what file it is working on
- however, use `-N' to disable all progress indication.
-
- This option is OFF by default.
-
- 2.5.26 `-N' (all) No progress indicator
-
- This option is similar to the `-n' option, but supresses
- higher-level progress indication (i.e. the display of what
- file LhA is bashing). It also disables the short copyright
- banner that is printed at each invokation otherwise.
-
-
-
-
-
- V1.38 LhA User's Guide Page 33
-
-
-
- This option is off by default (file progress indication
- ON).
-
- 2.5.27 `-p' (ALL) Pause after loading
-
- When selected, this option will cause LhA to pause and wait
- for the user to press any key before executing a command. This
- is useful for users with floppies, who can then swap disks
- after LhA has been loaded and is waiting for a keypress.
-
- This option is OFF by default.
-
- 2.5.28 `-P' (ALL) Set task priority
-
- This option is used to set the LhA process priority. The
- priority may be set to any value in the range -5 to +5,
- including 0. The higher priority you give LhA, the more CPU
- time it will grab (processes with lower priority will almost
- never get the chance to run since LhA is very
- processor-intensive). Setting it to a low value (like -5) will
- make LhA only use the processor time that nobody else wants
- (nice when running LhA as a background task while running a
- comm program).
-
- The priority must be specified with a single (optionally
- prefixed with a minus sign for negative priority) digit
- immediately after the P as in:
-
- EXAMPLE
- `lha -P-1 a nonsense.lzh bogus.txt' will make LhA add the
- file `bogus.txt' to the archive `nonsense.lzh', running at
- priority -1.
-
- The default priority is inherited from the calling process
- (i.e. the CLI or program that called Execute()/RunCommand() ).
- This is usually zero (0).
-
- 2.5.29 `-q' (ALL) Be quiet
-
- This option will supress ALL messages from LhA.
-
- This option is OFF by default
-
- 2.5.30 `-Q' (ALL) Alternate option set
-
- This option character (`Q') will cause all following option
- characters until next space character to be interpreted as
- extended options. These are documented at the end of this
- section.
-
- 2.5.31 `-r' (add) Collect action files recursively
-
-
-
-
-
- V1.38 LhA User's Guide Page 34
-
-
-
- When this option is used, LhA will recursively collect files
- from subdirectories.
-
- EXAMPLE
- `lha -r a ram:disk1 df0:' will archive all files on the disk
- in drive 0 to `ram:disk1.lha'.
-
- `lha -r a ram:disk2src df0:*.c' will archive all `.c' files
- on df0: to `ram:disk2src.lha'.
-
- `lha -r a ram:exthup hd:prg/src/ lha/*.[chasi]
- lhi/*.[chasi]' will add all `.c', `.h', `.a', `.s', `.i'
- files in `hd:prg/src/lha' and `hd:prg/src/lhi' and their
- subdirectories. The `hd:prg/src/' part of the names will not
- be stored in the archive (home directory `hd:prg/src/' was
- specified).
-
- NOTE
-
- Files that are specified explicitly (i.e. without any
- pattern matching) are looked for only in the current
- (home) directory, while patterns are used for
- matching in all subdirectories. If a directory is
- specified explicitly without any following file
- pattern (like in `lha -r a ram:test sys:l') it will
- be treated as if a `/*' was appended to the directory
- name - i.e. all files in the directory and it's
- subdirectories will be archived.
-
-
- This option is OFF by default. Note that the `-x' option is
- automatically enabled when the -r option is used. If you do not
- want to store pathnames simply specify `-x0' on the command
- line.
-
- 2.5.32 `-R' (ALL) Collect archive files recursively
-
- When this option is enabled LhA will search for archive
- files recursively using the archive file specification given at
- the command line. This works like the `-r' option but for
- archive files.
-
- EXAMPLE
- `lha -R l dh0:files/a*' will list the contents of all
- archive files whose names begin in `a' in directory
- `dh0:files' and its subdirectories.
-
- `lha -R l *' will list the contents of all archive files in
- the current directory and its subdirectories.
-
- `lha -R l myarc' will list the contents of all archives
-
-
-
-
-
- V1.38 LhA User's Guide Page 35
-
-
- called 'myarc.lzh' or `myarc.lha' in the current directory
- and its subdirectories.
-
- This option is OFF by default.
-
- 2.5.33 `-s' (add) Add files with a-flag unset
-
- When this option is active, LhA will only add files which
- have the A (for Archived) file protection flag unset. This is
- useful for doing incremental backups together with the `-S'
- option.
-
- This option is OFF by default (add files regardless of file
- protection flags).
-
- 2.5.34 `-S' (add) Set A-flag on archived files
-
- When this option is on, LhA will set the A (for Archived)
- file protection flag on all files that are added to an
- archive. This can be used to simplify automatic backups when
- used together with the -s (Add files without A-flag only). See
- previous section for more details.
-
- This option is OFF by default.
-
- 2.5.35 `-t' (ext) Only new files
-
- When this option is active, LhA will not overwrite or
- replace any files.
-
- NOTE
-
- This option overrides the `-T' option.
-
-
- This option is OFF by default.
-
- 2.5.36 `-T' (upx) New and newer files
-
- When this option is active, LhA will overwrite or replace
- files that already exists and are older than the current file,
- and create files that does not already exist.
-
- NOTE
-
- This option overrides the `-t' option.
-
-
- This option is OFF by default.
-
- 2.5.37 `-u' (ALL) Make filenames uppercase
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 36
-
-
- This option, when active, will force LhA to convert all
- filenames to uppercase. This can be useful when making
- archives that are supposed to be used on MSDOS-Systems running
- LhArc/LHA. While these have no problems with extracting files
- with mixed-case filenames, the pattern matching routines will
- not work correctly.
-
- This option is OFF by default.
-
- 2.5.38 `-U' (upx) Set update interval
-
- This option is used to set the interval (in bytes) at which
- LhA updates the byte progress indicator. The desired interval
- must be expressed in kilobytes, and must immediately follow the
- `U' character.
-
- EXAMPLE
- `LhA -U4096 a bar.lzh *.c' will add all c-source files in
- the current directory to `bar.lzh' with a progress indicator
- interval of 4096 (4K) bytes.
-
- `LhA -U32768 a bar.lzh *.c' will do the same as the example
- above, but with a update interval of 32768 bytes (32K).
-
- NOTE
-
- This option does currently not affect the update rate
- of the LHA decompression (`-lh5-' compression mode).
- When LhA decompresses files with this compression
- mode, the update rate will be whatever I/O buffer
- size is used (set with the `-b' option). The reason
- of this behaviour is that the normal progress
- indication would slow down decompression.
-
-
- The default update interval is 8192 (8K) bytes for -lh1- and
- -lh5- compression and 4096 (4K) bytes for -lh1- decompression.
- The update rate for -lh5- decompression is determined by the
- I/O buffer size setting (see note above).
-
- 2.5.39 `-v' (add) Set compression speed
-
- This option can be used to increase or decrease the
- compression speed. -v0 is the slowest, and -v9 is the fastest.
- As usual you can't get anything for free, so compression
- performance is slightly looser with -v9 than with -v0 but the
- difference in speed can be significant (especially with some
- binary graphics data). Higher compression speed is attained by
- using less statistics in the compression phase.
-
- The default compression speed is 5 - best in 99% of all
- cases.
-
-
-
-
-
- V1.38 LhA User's Guide Page 37
-
-
- 2.5.40 `-V' (all) Enable multi-volume archives.
-
- This option enables the multi-volume feature of LhA. Note
- that in the evaluation version you cannot create or update
- multivolume archives, only extract from and list. Please
- consult the section about multi-volume archives for more
- information. Further options must be separated from the `V' by
- at least one whitespace character. In the registered version,
- the desired volume size in KB should be specified after the `V'
- character. If you want LhA to automatically detect what volume
- size it should use, use `-Va' (for `use all available space').
-
- EXAMPLE
- `LhA -Va a df0:MyArc *.c' would archive all files in the
- current directory with names ending in `.c' to DF0: if the
- disk should get full before the archive is finished LhA will
- prompt for a new disk to be inserted.
-
- This option is OFF by default.
-
- 2.5.41 `-w' (upd) Set work directory
-
- This option is used to specify what directory LhA should use
- to store temporary files. Temporary files are created when
- adding files to archives, or when updating an archive in some
- way (like deleting or freshening files). The work directory
- name must be specified immediately after the `-w' string.
-
- EXAMPLE
- `LhA -wrad:tmp a MyArc.lzh *' will use the directory
- `rad:tmp' as temporary storage location when adding all
- files in the current directory to the archive `MyArc.lzh'.
-
- By default LhA uses the `T:' directory for temporary files,
- if this assign or device does not exist, LhA will use the
- current directory.
-
- 2.5.42 `-W' (add) Exclude filenames
-
- This option is not available in the current version.
-
- 2.5.43 `-x' (all) Preserve and use pathnames
-
- As of LhA V1.30, this option comes in three flavors, which
- mode LhA will use depends on the digit (if any) that follows
- the `x'.
-
- `-x1' or `-x': When this option is enabled, LhA will use and
- preserve pathnames when extracting and archiving files. When
- extracting, LhA will create the directories that does not
- already exist. Use this option when you want to preserve some
- directory structure. This option is automatically enabled when
-
-
-
-
-
- V1.38 LhA User's Guide Page 38
-
-
- the `-r' option is used.
-
- `-x2': In this mode, which is only useful with the extract
- commands, LhA will use the full paths of the files in the
- archive when selecting files to extract, but disregard them
- when extracting. Useful when several files with the same
- filename (but different paths) exists in the archive.
-
- `-x3': This mode is the opposite of `-x2'. LhA disregards
- paths when selecting files to extract, but uses them when
- extracting. Useful when you're too lazy to remember the exact
- name including path.
-
- EXAMPLE
-
- `LhA -x2 e dl:rexx.lzh examples/Main.c ram:' would extract
- the file `examples/Main.c' from the archive to
- `ram:Main.c'.
-
- `LhA -x3 e dl:src.lzh #?Main#? ram:' would extract all files
- with names containing `Main'. Notice that this is not
- equivalent to the `LhA x dl:src.lzh #?Main#? ram:' since the
- latter would extract files like `dir/Maindir/file1.h' as
- well.
-
-
- This option is disabled (`-x0') by default for update
- operations and enabled (`-x1') by default for extract
- operations.
-
- 2.5.44 `-X' (ALL) Do not append suffix
-
- When this option is enabled, LhA will not append an `.lzh'
- or `.lha' suffix to the given archive name. The default
- behaviour is to append a suffix of `.lha' or `.lzh' (suffix is
- chosen depending on compression mode) if the name does not
- already have an extension.
-
- This option is OFF by default (suffixes are appended).
-
- 2.5.45 `-y' (all) Always append suffix
-
- When this option is enabled, LhA will always append a `.lzh'
- or `.lha' suffix to the archive name, even when the archive
- name already contains a suffix.
-
- This option is OFF by default (a suffix is appended only if
- there is no suffix in the archive name already).
-
- 2.5.46 `-Y' (add) Store big files with ratio
-
- When this option is enabled, LhA will store big files
-
-
-
-
-
- V1.38 LhA User's Guide Page 39
-
-
- (>32KB) without compression if compression ratio is lower than
- 3%. This is because extraction times of these files are long on
- slower machines.
-
- This option is OFF by default (all files are compressed).
-
- 2.5.47 `-z' (add) Do not compress files
-
- This option, when active, will force LhA to store all
- updated or added files in the archive without attempting to
- compress them. Useful for making fast backups where archive
- size is of no importance. It is not advisable to use this
- option when making archives for distribution via modem or
- networks since the archive will end up much larger than if it
- was compressed.
-
- EXAMPLE
- `lha -z a foo.lha *.bmp' Will store all files in the current
- directory with a suffix of `.bmp' in the archive file
- `foo.lha' without compressing them.
-
- This option is OFF by default.
-
- 2.5.48 `-Z' (add) Compress archives
-
- This option will cause LhA to attempt compressing already
- compressed files.
-
- By default, LhA will not attempt to compress files which are
- already compressed (typically archive files or picture files in
- GIF or JPEG format). The file type is determined from the
- suffix, and files with names ending in `.lzh', `.lha', `.zoo',
- `.zip', `arj', `.arc', `.dms', `.wrp', `.lhw', `.zap', `.pak',
- `.pp', `.gif', or `.jpg'.
-
- The reason why already compressed files should not be
- compressed is that the number of bytes gained by this is so
- small that it is not worth the time spent
- compressing/decompressing it.
-
- This option is OFF by default.
-
- 2.5.49 `-0' (add) Use LhArc 1.x compression
-
- This option causes LhA to use the old -lh1- compression
- method when updating archives. This compression method is
- slightly faster than the normal -lh5- compression but has
- looser compression and is much slower to decompress.
-
- When this compression mode is used, LhA defaults to
- appending a suffix of `.lzh' when creating archives.
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 40
-
-
- When this option is specified, option `-2' is automatically
- deactivated.
-
- By default the -lh5- compression is used.
-
- 2.5.50 `-1' (add) Use LhA compression (-lh4-)
-
- This option causes LhA to use the new -lh4- compression
- method when updating archives. This compression method is
- slightly faster than the -lh5- compression but has looser
- compression and is generally slightly slower to decompress.
-
- When this compression mode is used, LhA defaults to
- appending a suffix of `.lha' when creating archives.
-
- 2.5.51 `-2' (add) Use LhA compression (-lh5-)
-
- This option causes LhA to use the new -lh5- compression
- method when updating archives. This compression method is
- slightly slower than the old -lh1- compression but has tighter
- compression and is much faster to decompress.
-
- When this compression mode is used, LhA defaults to
- appending a suffix of `.lha' when creating archives.
-
- When this option is specified, option `-0' is automatically
- deactivated.
-
- This is the default compression mode.
-
- 2.5.52 `-Qa' (all) Use simple console I/O
-
- When this option is enabled LhA will not try to do any fancy
- stuff like examining the size of the console window, or turning
- off or repositioning the cursor. Enabling this option also
- disables the byte progress indicator (like with `-n'), since
- this requires cursor repositioning.
-
- This option is OFF by default.
-
- 2.5.53 `-Qb' (ext) Test archive before extract
-
- When this switch is enabled LhA will test an archive's
- integrity before extracting. If the archive fails the integrity
- check, the archive is not extracted from at all. Useful in
- certain FIDO BBS setups.
-
- This option is OFF by default.
-
- 2.5.54 `-Qd' (ext) Delete autoshow files
-
- When this option is enabled LhA will delete autoshow files
-
-
-
-
-
- V1.38 LhA User's Guide Page 41
-
-
- after displaying them.
-
- This option is OFF by default.
-
- 2.5.55 `-Qh' (add) Set Huffman buffer size
-
- This option can be used to set the size of the buffer used
- in LHA compression (default or selected with the `-2' or `-1'
- options) for collecting statistics. The size of this buffer
- affects the compression ratio in unpredictable ways (you cannot
- tell with certainty whether a large buffer will be better or
- worse). As a general rule, keep this at the default, but if you
- are compressing homogenous data with a relatively fixed
- relative frequency of symbols (like text files), setting this
- to a large value will improve compression. Binaries generally
- compress best with the default setting.
-
- The Huffman buffer may be of any size between 4K and 64K and
- must be specified immediately following the `-Qh' string, in
- kilobytes.
-
- EXAMPLE
-
- `LhA -Qh32 -2 a foo.lha *' will compress all files in the
- current directory using a Huffman buffer size of 32768 (32K)
- bytes.
-
- `LhA -Qh4 -2 a foo.lha *' will compress all files in the
- current directory using a Huffman buffer size of 4096 (4K)
- bytes.
-
- The default Huffman buffer size is 16K.
-
- 2.5.56 `-Qn' (all) Set national character mode
-
- When this option is enabled, LhA will correctly convert
- national characters to upper/lowercase. By default LhA does not
- convert any characters with the MSB set due to the fact that
- older (pre-2.1) filesystems does not correctly handle national
- characters when computing hash values. This switch should be
- used when national filesystems are used (NOFS/NFFS).
-
- This option is OFF by default.
-
- 2.5.57 `-Qo' (all) Ignore options after command
-
- When this option is enabled LhA will not search the command
- line for options beyond the archive name. This option is useful
- if you need to specify files with names beginning in `-'.
-
- This option is OFF by default.
-
-
-
-
-
-
- V1.38 LhA User's Guide Page 42
-
-
- 2.5.58 `-Qp' (move) Ignore delete protection flag
-
- When you enable this option LhA will delete files with the
- delete protection flag set when using the `m' (move) command.
-
- This option is OFF by default (delete protected files are
- not deleted).
-
- 2.5.59 `-Qq' (add) Quick add
-
- When this option is enabled, LhA will not scan through the
- archive looking for duplicate files before adding to the
- archive. This can be useful when adding one file at a time to a
- large archive, knowing the archive does not contain a file by
- the same name (as is the case in some FIDO BBS setups).
-
- This option is OFF by default.
-
- 2.5.60 `-Qr' (add) Skip datestamp check
-
- This option, when on, disables the datestamp comparison for
- the update (`u') and freshen (`f') commands, so that the files
- that already exist in the archive will be replaced regardless
- of file modification dates.
-
- This option is OFF by default for all commands but `r'.
-
- 2.5.61 `-Qw' (all) Disable wildcards
-
- When you specify this option LhA will not do any wildcard
- matching. This is useful for adding files with (illegal) names
- containing wildcard characters (`()#?~%|*').
-
- This option is OFF by default.
-
- 2.6 Autoshow files
-
- Autoshow files are files that are displayed automatically to
- the user when extracting the file from an archive. LhA
- determines if a file should be displayed by looking at the
- filename; if the filename ends in `.displayme' then the file is
- displayed unless autoshow files have been disabled (with the
- `-M' option). Apart from being displayed on-screen, autoshow
- files are extracted just like normal files, without stripping
- off the `.displayme' part (AmigaDOS LhArc 1.30 does this).
-
- 2.7 Residentability
-
- LhA is multitasking reentrant and pure, and it can be made
- resident with the standard shell resident commands - `resident'
- under AmigaShell 1.3 and 2.0, and `resi' under WShell. If you
- use another shell, please refer to the shell's user manual for
-
-
-
-
-
- V1.38 LhA User's Guide Page 43
-
-
- information about how to make programs resident.
-
- 2.8 Multi-volume archives
-
- Multi-volume archives are created simply by splitting a
- larger archive into smaller files. The evaluation version does
- not do this automatically on the fly (but the registered
- version does), so you will need to do it manually unless you
- register.
-
- The source for two utilities used to create multivolume
- archives are included in the distribution archive. If you have
- access to a C compiler you can compile the (hopefully) portable
- `splitlzh' and `joinlzh' programs simply by entering `make' in
- the `unixutil' directory. These two programs are useful when
- transferring big archives to and from **IX systems.
-
- 2.8.1 Multivolume file names
-
- The first file of a multivolume archive is named `name.lha'
- or `name.lzh'. The following volumes are named `name.l01',
- `name.l02' and so on. Multivolume archives spanning more than
- 100 volumes are not currently supported.
-
- 2.9 A bit about headers
-
- A `header' has to be written to the archive for every file
- in order for the archiver to know what the files are called,
- how they were compressed etc. The original LhArc had a very
- primitive header layout and had no good way of storing any
- machine-specific info like filenotes (I created a workaround in
- LhArcA 0.99, by putting the filenote in the filename field -
- LhArc and LZ later adopted this method). In **IX LhArc V1.02
- the authors introduced a new type of header (level 1 header)
- that allowed slightly more info to be stored, but the header
- length was still limited to 255 bytes. In LHA 2.13 for MS-DOS a
- new header type was introduced - level 2 headers. With this
- latest header type an arbitrary amount of information can be
- stored. LhA can both read and write all these header types. To
- select what type of headers to write, use the `-H' option. LHA
- for MSDOS and LHa for **IX creates level-1 headers by default.
- LhA uses level 0 headers by default for compatibility reasons
- (LZ and LhArc does not handle level 1 and level 2 headers
- correctly). If you want to know what header levels an archive
- contains, use the `vv' command.
-
- 2.10 Some tips for archiving efficiently
-
- If you are going to archive a big bunch of similar or small
- files - text files for example - you can improve compression
- performance greatly by first creating an archive WITHOUT
- compression (using the `-z' option), and then add this file to
-
-
-
-
-
- V1.38 LhA User's Guide Page 44
-
-
- archive (with compression). As an example I added a big
- directory with various sources and some binaries (total 2480
- files, 5102117 bytes). this way with:
-
- LhA -z -r a hd:test msrc:
-
- and then compressed it with
-
- LhA -Z -Qh64 a hd:msrc hd:test.lha
-
- The final `hd:msrc.lha' archive ended up being 1545076 bytes.
- When compressed the normal way (`LhA -r -Qh64 a hd:msrc
- msrc:'), the archive was 2114777 bytes long. Quite a
- difference..
-
- 2.11 Using as little memory as possible
-
- When using the default settings, LhA requires about 300KB to
- archive, and 180KB to extract files. To reduce this to a
- minimum you can reduce the I/O buffer size to 8K. This will
- save you about 48K when archiving and at least 24K when
- extracting. You can reduce the archiving memory usage even more
- by reducing the Huffman buffer size to 4K, but it is not
- recommended since compression performance will drop
- significantly. Please note that the above figures for memory
- usage includes stack and program code.
-
- 2.12 Creating fully MS-DOS compatible archives
-
- In order to satisfy MSDOS archivers, you may have to disable
- a few Amiga-specific features. Filenotes are not supported
- under MSDOS and thus the filenote archiving should be disabled
- with the `-f' option. Furthermore you should disable file
- attribute preservation with the `-a' option. Autoshow files are
- not supported by MSDOS LHA V2.13. If you use header level 1 or
- 2 you don't have to worry about disabling the file attribute
- preservation. LHA V2.13 for MSDOS and LHa 0.04 for **IX creates
- level 1 headers by default.
-
- To summarize, use the following options to create archives
- for use with MSDOS LHA:
-
- `-H0a0f'
-
- In order to create archives that are extractible with LhArc
- the following options should be used when creating archives:
-
- `-H0 -0'
-
- and for MS-DOS LHarc:
-
- `-H0a0f -0'
-
-
-
-
-
- V1.38 LhA User's Guide Page 45
-
-
- 2.13 Recovering data from corrupt archives
-
- It is never possible to recover all lost data from a corrupt
- archive, but you can retrieve as much data as possible by using
- the `-k' option and a small I/O buffer (8K). An example would
- be:
-
-
- LhA -k -b8 x dl:Corrupt ram:
-
-
- This would extract as much as possible from the corrupt
- archive to `ram:'.
-
- 5 Acknowledgements
-
- Haruyasu Yoshizaki For releasing the source of the original LHA
- for MSDOS. The source was used as a
- reference when writing this program. No
- actual code was copied from this source,
- rather LhA was written from scratch for
- the Amiga.
-
- Haruhiko Okumura For devising the -lh5- and -lh4- compression
- algorithms, and for releasing the C source
- for these to the public domain. These
- sources were used as a reference when
- writing the 680x0 assembler versions of
- the compression code. Some algorithms
- were replaced with my own, faster ones but
- the ideas are the same.
-
- Robert K.Jung For making the feature-packed ARJ for MSDOS, from
- which several ideas for commands and
- features for LhA were taken.
-
- Paolo Zibetti For making the first LhArc-style archiver for the
- Amiga, which made me interested in file
- archivers and more advanced data
- compression techniques.
-
- Ron Birk For digging out the source codes I needed before I
- gained access to InterNet myself - Thanks!
-
- Martin Olsson For supplying me with the source for LhA V2.11,
- which was used as a reference. (I wrote
- the -lh5- decompression with only the
- 80x86 source available.. hard work!)
-
- LhArcA users Big thanks to all of you who registered for LhArcA
- and LhA even before the programs were
- finished (LhArcA never was, but those who
-
-
-
-
-
- V1.38 LhA User's Guide Page 46
-
-
- registered will receive LhI/LhA when it's
- finished).
-
- LhA users Big thanks to all who registered so far, and even
- bigger thanks to those who reported bugs
- and problems with the previous releases -
- without you this program would never be
- what it is now.
-
-
- The license agreement was heavily inspired by the TrapDoor
- license, which in turn was inspired by Jack Radigan and the GNU
- General public License.
-
- The manual was formatted with a modified version of `proff'
- (originally written for VAX/VMS/MSDOS by Ozan S. Yigit and
- Steven Tress).
-
- The program was developed using the Lattice C Compiler and
- Assembler on a 25MHz Amiga 3000. Great compiler, great
- computer! Furthermore RCS and MKID were used to simplify the
- maintenance and development process greatly.
-
- Inspiration provided (in order of significance) by Emma,
- Depeche Mode, Recoil, Pet Shop Boys, Erasure, OMD, Electronic,
- The KLF/JAMS, Yazoo, Tears for Fears, Simple Minds and
- Kraftwerk!!
-
-
- "Infinities of dreams imploding into one ..."
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Table Of Contents
-
- LhA V1.38
-
- 1 - Introduction ..................................... 1
- 1.1 About the manual ............................... 1
- 1.2 System requirements ........................... 1
- 1.4 Terminology .................................. 1
- 1.5 LhA - what is it? ................................ 2
- 1.6 What is a file archiver anyway? ................... 2
- 1.8 Compatibility and Amiga-specific features ....... 4
- 1.9 About the author program history and future........ 4
- 2 Reference guide .................................... 5
- 2.1 Command line syntax ............................ 5
- 2.1.1 Specifying options ....................... 5
- 2.1.2 Specifying commands ...................... 5
- 2.1.3 Specifying archives ...................... 5
- 2.1.4 Specifying action files ................... 6
- 2.1.5 Home directories ......................... 6
- 2.1.6 Recursive file collection ................. 7
- 2.1.7 Specifying destination directory .......... 9
- 2.1.8 `@'-files ............................... 9
- 2.1.9 LhA limitations .......................... 9
- 2.2 Environment variables ......................... 10
- 2.3 Pattern matching .............................. 11
- 2.3.0 Exactly what is pattern matching anyway? ..... 11
- 2.3.1 Accepted pattern tokens ................... 11
- 2.3.1.1 Question mark (?) .................... 11
- 2.3.1.2 Star/Asterisk (*) ................... 12
- 2.3.1.3 Hash mark (#) ........................ 12
- 2.3.1.4 Square brackets ([]) ................. 12
- 2.3.1.5 Parentheses and the vertical bar ....... 13
- 2.3.1.6 Tilde (~) ........................... 14
- 2.3.1.7 Percent sign (%) ..................... 14
- 2.3.2 KS1.3 ARP and KS2.x pattern matching ......... 15
- 2.3.3 National characters ...................... 15
- 2.4 Commands ..................................... 16
- 2.4.1 `a' Add files to archive .................... 16
- 2.4.2 `c' Concatenate/Append archives ........... 16
- 2.4.3 `d' Delete files from archive ............... 17
- 2.4.4 `e' Extract files from archive .............. 17
- 2.4.5 `f' Freshen files in archive ................ 18
- 2.4.7 `h' Hunt for diffs arc <-> filesys............ 18
- 2.4.8 `l' List archive contents (terse) ........... 19
- 2.4.8.1 `lq' List archive (terse-quick) ....... 20
- 2.4.9 `m' Move files to archive ................... 20
- 2.4.14 `p' Print files to stdout .................. 20
- 2.4.15 `r' Replace files ........................ 20
- 2.4.17 `t' Test archive integrity ................ 21
- 2.4.18 `u' Update archive ....................... 21
- 2.4.19 `v' List archive (verbose) ................ 21
- 2.4.19.1 `vq' List archive (verbose-quick) .... 22
-
-
- - I -
-
-
-
-
-
- 2.4.20 `vv' List archive (full) .................. 22
- 2.4.21 `x' Extract files with path ................ 23
- 2.4.22 `y' Copy archive with new options ........... 23
- 2.5 Options ...................................... 24
- 2.5.1 `-a' (upx) Preserve file attributes ......... 24
- 2.5.2 `-A' (upd) Set archive attributes ........... 25
- 2.5.3 `-b' (all) Set I/O buffer size ............... 25
- 2.5.4 `-B' (upd) Keep backup of archives ........... 26
- 2.5.5 `-c' (all) Confirm files ................... 26
- 2.5.6 `-C' (ext) Clear arc-bit on extract .......... 26
- 2.5.6 `-d' (upd) Archive date=newest file ......... 26
- 2.5.8 `-D' (all) Alternate progress display ....... 26
- 2.5.9 `-e' (add) Archive empty directories ........ 27
- 2.5.10 `-E' (ext) Touch extracted files ........... 28
- 2.5.11 `-f' (all) Ignore filenotes ............... 28
- 2.5.12 `-F' (all) Use fast progress display ........ 28
- 2.5.13 `-g' (add) Garble files with password ....... 29
- 2.5.14 `-G' (ext) Only extract newer files ......... 29
- 2.5.15 `-h' (add) Disable homedirectories ........ 29
- 2.5.16 `-H' (add) Write header level .............. 29
- 2.5.17 `-i' (all) Read filelist from file .......... 29
- 2.5.18 `-I' (all) Ignore LHAOPTS variable ......... 30
- 2.5.19 `-k' (all) Keep partial files .............. 30
- 2.5.20 `-K' (move) Kill empty directories ......... 31
- 2.5.21 `-l' (ALL) Make filenames lowercase ........ 31
- 2.5.22 `-L' (ALL) Create filelist ................ 31
- 2.5.23 `-m' (ALL) No messages for query ............ 32
- 2.5.24 `-M' (ext) No autoshow files ............... 32
- 2.5.25 `-n' (upx) No byte progress indicator ....... 32
- 2.5.26 `-N' (all) No progress indicator ........... 32
- 2.5.27 `-p' (ALL) Pause after loading ............. 33
- 2.5.28 `-P' (ALL) Set task priority ............... 33
- 2.5.29 `-q' (ALL) Be quiet ....................... 33
- 2.5.30 `-Q' (ALL) Alternate option set ............ 33
- 2.5.31 `-r' (add) Collect action files recursively . 33
- 2.5.32 `-R' (ALL) Collect archive files recursively 34
- 2.5.33 `-s' (add) Add files with a-flag unset....... 35
- 2.5.34 `-S' (add) Set A-flag on archived files...... 35
- 2.5.35 `-t' (ext) Only new files .................. 35
- 2.5.36 `-T' (upx) New and newer files .............. 35
- 2.5.37 `-u' (ALL) Make filenames uppercase ........ 35
- 2.5.38 `-U' (upx) Set update interval ............. 36
- 2.5.39 `-v' (add) Set compression speed ........... 36
- 2.5.40 `-V' (all) Enable multi-volume archives. ... 36
- 2.5.41 `-w' (upd) Set work directory .............. 37
- 2.5.42 `-W' (add) Exclude filenames .............. 37
- 2.5.43 `-x' (all) Preserve and use pathnames ....... 37
- 2.5.44 `-X' (ALL) Do not append suffix ............. 38
- 2.5.45 `-y' (all) Always append suffix ............ 38
- 2.5.46 `-Y' (add) Store big files with ratio........ 38
- 2.5.47 `-z' (add) Do not compress files ............ 39
- 2.5.48 `-Z' (add) Compress archives .............. 39
-
-
- - II -
-
-
-
-
-
- 2.5.49 `-0' (add) Use LhArc 1.x compression ........ 39
- 2.5.50 `-1' (add) Use LhA compression (-lh4-) ...... 40
- 2.5.51 `-2' (add) Use LhA compression (-lh5-) ...... 40
- 2.5.52 `-Qa' (all) Use simple console I/O .......... 40
- 2.5.53 `-Qb' (ext) Test archive before extract ..... 40
- 2.5.54 `-Qd' (ext) Delete autoshow files .......... 40
- 2.5.55 `-Qh' (add) Set Huffman buffer size ......... 41
- 2.5.56 `-Qn' (all) Set national character mode ..... 41
- 2.5.57 `-Qo' (all) Ignore options after command .... 41
- 2.5.58 `-Qp' (move) Ignore delete protection flag .. 41
- 2.5.59 `-Qq' (add) Quick add ..................... 42
- 2.5.60 `-Qr' (add) Skip datestamp check ........... 42
- 2.5.61 `-Qw' (all) Disable wildcards ............. 42
- 2.6 Autoshow files ................................ 42
- 2.7 Residentability .............................. 42
- 2.8 Multi-volume archives ......................... 43
- 2.8.1 Multivolume file names ....................... 43
- 2.9 A bit about headers ............................. 43
- 2.10 Some tips for archiving efficiently ............. 43
- 2.11 Using as little memory as possible ............... 44
- 2.12 Creating fully MS-DOS compatible archives ....... 44
- 2.13 Recovering data from corrupt archives ........... 44
- 5 Acknowledgements .................................. 45
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - III -
-
-