home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 106 / EnigmaAmiga106CD.iso / indispensabili / shell / lha1.50 / lha.man < prev    next >
Text File  |  1993-01-30  |  122KB  |  3,122 lines

  1.  
  2.  
  3.      
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                               LhA User's Guide
  16.  
  17.                         Version 1.50 - October 1992
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                          ###      ###       ######
  31.                           ##       ##      ###  ##
  32.                           ##       ##      ##  ###
  33.                           ##       #####   #######
  34.                           ##       ## ###  ##   ##
  35.                           ###  ##  ##  ##  ##   ##
  36.                          #######  ###  ### ###  ###
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.                           Written by Stefan Boberg
  55.  
  56.                    Copyright (c) 1991,92 by Stefan Boberg
  57.                              All rights reserved
  58.  
  59.  
  60.      
  61.  
  62.  
  63.      V1.50                    LhA User's Guide                   Page 1
  64.  
  65.  
  66.      1 - Introduction      
  67.  
  68.         LhA is  a  powerful  archiver for the Commodore-Amiga computer.
  69.      It  is  fully  compatible with LHA for MSDOS systems and LhArc for
  70.      MSDOS,  Amiga and *NIX.  It is also compatible with LhArcA, LZ and
  71.      LhArc   for   the   Amiga.   LhA   sports   fast  compression  and
  72.      decompression  and  has  several commands and options not found in
  73.      any other currently available archiver for the Amiga.  
  74.  
  75.      1.1 About the manual     
  76.  
  77.         The manual  is  divided  into  two  main  sections,  the  first
  78.      section  (this  one) contains miscellaneous information related to
  79.      the  program. The second section is a reference section, where all
  80.      commands  and  options  are  explained thoroughly. For information
  81.      about registering read `LICENSE.man' and `Orderform'.  
  82.  
  83.      1.2 System requirements      
  84.  
  85.         LhA will  run  on  any Amiga system with at least 512KB RAM and
  86.      one  diskdrive,  though 1MB RAM and two diskdrives or harddrive is
  87.      recommended  to  get  the  most  out  of LhA.  LhA will run on any
  88.      KickStart  from  version  1.2  and up.  If LhA is used on a system
  89.      with  the  new  KickStart  2.x  it  will adapt to this and utilize
  90.      features  new to this release.  Special care has been taken in the
  91.      program  design to make the program execute as fast as possible on
  92.      68020,   030   and   040-processors   without   sacrificing  68000
  93.      compatibility.  
  94.  
  95.         Under KickStart  1.3,  LhA requires `arp.library' to be able to
  96.      use other wildcard characters than `*' and `?'.  
  97.  
  98.      1.4 Terminology       
  99.  
  100.      ARCHIVE  -  An archive is a file containing one or more files in a
  101.      compressed  or  non-compressed  state and related information like
  102.      file names, last modification date/time, filenotes etc.  
  103.  
  104.      COMPRESSION  -  The process of encoding redundant information into
  105.      data  requiring less storage space.  There are a multitude of ways
  106.      you  can  do  this  in.  LhA uses a modified version of Lempel-Ziv
  107.      compression  with  block-adaptive  Huffman coding and a dictionary
  108.      size of 4096 or 8192 characters.  
  109.  
  110.      COMPRESSION  RATIO - The compression ratio figures reported by LhA
  111.      are  calculated  as  follows:   ratio  =  (1  - (CompressedSize) /
  112.      (OriginalSize))  * 100.  I.e how many percent of the file that was
  113.      GAINED.   Other  archivers may use other methods.  LHA and ARJ for
  114.      MS-DOS,   for   example,   calculates   the   ratio  as:  ratio  =
  115.      (CompressedSize)  / (OriginalSize), i.e.  how large the compressed
  116.      file   is   compared   to   the   original  file.   (MSDOSratio  =
  117.      1-(ADOSratio/100)).   The higher the LhA compression ratio is, the
  118.  
  119.  
  120.      
  121.  
  122.  
  123.      V1.50                    LhA User's Guide                   Page 2
  124.  
  125.  
  126.      better  the  compression.  Most Amiga archivers use the same ratio
  127.      calculation method as I use.  
  128.  
  129.      CRC   -  CRC  stands  for  `Cyclic  Redundancy  Check'.  It  is  a
  130.      relatively  sophisticated  method  of checking data integrity. The
  131.      version used in LhA is a 16-bit CRC.  
  132.  
  133.      EXTRACTION  or DECOMPRESSION - The process of recreating the exact
  134.      information   that   was  previously  compressed  (file  contents,
  135.      modification   date,   filenotes,   protection   flags,  directory
  136.      structure etc.) 
  137.  
  138.      SELF-EXTRACTION  MODULE  (SFX-Module) - This is an archive that is
  139.      an executable file capable of extracting self-contained files.  
  140.  
  141.  
  142.      1.5 LhA - what is it?   
  143.  
  144.         LhA is  a  file  archiving  program  written especially for the
  145.      Commodore  Amiga  computer.  The  primary  goal  is to provide the
  146.      Amiga   community   with  a  fast,  efficient  and  reliable  file
  147.      archiver.  LhA creates and processes archive files with the '.LZH'
  148.      suffix,  and  is  fully compatible with both MSDOS LhArc and MSDOS
  149.      LhA,  as  well as the Amiga LhArc, LZ, and LhArcA. It handles both
  150.      the  old  LhArc-style  compression  (-lh1-,  -lh0-)  and  the  new
  151.      LHA-style (-lh5-, -lh4-).  
  152.  
  153.         LhA is  at the time of release by far the fastest LhArc archive
  154.      handler,  and  is more reliable and robust than both LZ and LhArc.
  155.      Neither  LZ  nor  LhArc  even comes close to the speed of LhA. The
  156.      compression  and  decompression  routines  are written entirely in
  157.      very  optimized 68000 assembly language. The routines were written
  158.      directly  from scratch in pure 68000 assembler, and did not, as in
  159.      the  other  Amiga  LZH/LHA-archivers,  start  as  compiled C-code.
  160.      Because   of  this,  the  routines  are  both  smaller  and,  more
  161.      importantly,  faster  than  they  would  have  been  if  I'd  used
  162.      compiler  output  as  source  material. You can get an idea of how
  163.      fast  LhA  is  compared to other archivers by looking at the speed
  164.      test  results  in `benchm.txt'. An even better way to see how fast
  165.      LhA is, is to try it yourself! 
  166.  
  167.      1.6 What is a file archiver anyway?  
  168.  
  169.         A file  archiver,  as  the  name  implies,  archives  files. It
  170.      collects  the  files  you  specify and stores them all in a single
  171.      archive-file.  Almost  all  file  archivers  (including  LhA) also
  172.      compress  the  files  before  putting them in the archive-file, so
  173.      that  they  occupy  less diskspace. When you wish to retrieve some
  174.      file  from  the  archive,  the  archiver decompresses the file and
  175.      restores  it's file attributes (Last modification date, time, file
  176.      comments,  protection  status  etc.).  A file archiver can usually
  177.      also  process archive files in different ways, for instance delete
  178.  
  179.  
  180.      
  181.  
  182.  
  183.      V1.50                    LhA User's Guide                   Page 3
  184.  
  185.  
  186.      files,   freshen   files,  print  files  etc.  See  the  'ARCHIVER
  187.      COMMANDS'  section  of  this  manual  for  an  explanation  of the
  188.      different actions LhA is capable of performing.  
  189.  
  190.         The most  common  use  for  a file archiver is for transferring
  191.      several  related  files  via modem. It would be a very tedious and
  192.      cumbersome  task to transfer for instance every single source file
  193.      of  a  big  project  separately,  so why not put them all into one
  194.      single  file?  This is where the file archiver comes in, we simply
  195.      feed  the  archiver  with  all  the files we wish to transmit, and
  196.      then  just  transfer  the  single  archive-file  the archiver then
  197.      creates!  After  the  transfer  the  receiver  just has to use the
  198.      archiver  to extract all files from the archive-file onto his/hers
  199.      harddisk  (or  floppy).  Also, if the files were compressed by the
  200.      archiver,  it  would take less time to transfer the files as well,
  201.      which  means the phonecall will cost us less.  There are of course
  202.      other   uses   for   a   file  archiver,  you  can  use  it  as  a
  203.      harddisk-backup  program for example (if you have another harddisk
  204.      partition  to  put  the  archive file on..), and you can use it to
  205.      stuff  away files you don't use very often, and then when you want
  206.      to  use  them  you  simply extract the files from the archive, and
  207.      then   delete  them  when  you're  finished  (saves  disk  space).
  208.      Personally  I use LhA a lot to make automatic backups of my source
  209.      codes for various projects.  
  210.  
  211.         The file  compression  methods  vary  from  very  simple,  less
  212.      effective,  and  fast (Run-Length Encoding, RLE, for instance), to
  213.      complex,   effective   and   relatively   time-consuming   methods
  214.      (Lempel-Ziv-Huffman,  LZHUF,  as  used in LhA). The method used in
  215.      LZH-Archivers  (LZHUF) is to date probably the best algorithm used
  216.      in  an  archiver.  There  are other similar methods, like ZIP, but
  217.      they  are  not  as  good. Even though the files become smaller you
  218.      don't  lose any information when compressing them, the information
  219.      is   just   stored   in  a  different  way.  Basically,  redundant
  220.      (repeated)  information  is  replaced with a pointer to some other
  221.      part  of  the file, where this information is located. For example
  222.      in  this  text  the word 'archive' appears at several places, this
  223.      is  an example of redundant data. Simply put, if a file compressor
  224.      was  to  compress  this  file  it would let the first occurence of
  225.      'archive'  remain  unchanged,  and then it would replace all other
  226.      occurences  of  'archive'  with  a  pointer to the first one. When
  227.      decompressing  the  file,  the  archiver  uses  these  pointers to
  228.      restore the file to its original state.  
  229.  
  230.         Files which  have  already  been  compressed with one technique
  231.      can  generally  not  be  compressed any further by feeding them to
  232.      the  same  file  compressing  program  again  (If  that  had  been
  233.      possible,  modem transfers would have been a lot cheaper :), since
  234.      the  redundant  information  has  already  been  eliminated. It is
  235.      possible  though  to  compress files output by certain compressors
  236.      (RunLength-Encoders  for  example)  further  by  feeding them to a
  237.      program   that  uses  another  method  (like  LZHUF),  since  they
  238.  
  239.  
  240.      
  241.  
  242.  
  243.      V1.50                    LhA User's Guide                   Page 4
  244.  
  245.  
  246.      eliminate different kinds of redundant information.  
  247.  
  248.      1.8 Compatibility and Amiga-specific features    
  249.  
  250.         LhA is  aimed  at full compatibility with LHA V2.13 for MS-DOS,
  251.      which  is  an improvement of the original LhArc V1.13. LhA is also
  252.      compatible  with  LhArc,  LhArcA  and  LZ  for the Commodore Amiga
  253.      computer.  However,  LhArc  and LhArcA cannot process any archives
  254.      with  headers  of  level  1 or 2, or files compressed with the new
  255.      LHA  compression  (-lh5-).  LZ  1.92  cannot process archives with
  256.      headers  of level 2. LHA V2.13 can process all archives created by
  257.      LhA.  
  258.  
  259.      1.9 About the author program history and future 
  260.  
  261.         I, Stefan  Boberg  -  the  author  of  the  programs in the LhA
  262.      family,  am  19  years old and currently studying `applied physics
  263.      and   electrical   engineering',  first  year,  at  the  Linköping
  264.      Institute  of  Technology. I started working on LhA mainly because
  265.      I  thought there was no real good archiver for the Amiga, the ones
  266.      that  existed  at  the  time  (June  1991) I began work on it were
  267.      either   too   slow,   had   loose   compression  ratios  or  were
  268.      bugged/crippled  so  that  they  could  not  do  what  I needed an
  269.      archiver  to do.  I use archivers mainly to back up sources for my
  270.      various  programming  projects  automatically, and I also use it a
  271.      lot  to  just  decompress archives from bulletin board systems and
  272.      computer  networks.  Another  reason  for  doing  it was to earn a
  273.      little  extra money, which I badly need, being a poor student with
  274.      a _small_ allowance..  :) 
  275.  
  276.         Anyway, I  intend  to  continue  developing LhA and the related
  277.      programs  as  long  as  I  can,  and  will release other, related,
  278.      programs  as  well, like an intuition-driven archiver called `LhI'
  279.      for  instance.  A  file  system to enable you to treat archives as
  280.      directories  is also in the pipeline and will be released sometime
  281.      in  1992.  Other  archive formats than LhA-style archives are also
  282.      planned  to  be  supported  in the filesystem and intuition driven
  283.      archiver  by  means  of  special  resident libraries and handlers.
  284.      When  these will be finished depends on how much time I can devote
  285.      to  developing  the  programs  (have  to  take  care of my studies
  286.      first).  
  287.  
  288.         But this  all  depends  on  YOU,  if  I get a good response and
  289.      people  register  I  will  continue  work on the program.  If not,
  290.      well,  then  I  might as well drop it for other projects, and just
  291.      make  minor  bugfixes  to  it instead of continuing development...
  292.      It's  your  choice!   If  you  would like to express your opinions
  293.      about  the  program,  or  have an idea for a feature you'd like to
  294.      see  in  the  next  version,  please drop me a line via EMail (see
  295.      section  3  for  addresses)  or  write  a  letter.  I would really
  296.      appreciate  it!   You MUST report any bugs you find (though I hope
  297.      you won't find too many), so I can fix it right away! 
  298.  
  299.  
  300.      
  301.  
  302.  
  303.      V1.50                    LhA User's Guide                   Page 5
  304.  
  305.  
  306.      2 Reference guide      
  307.  
  308.         This section  of  the manual is intended to be used mostly as a
  309.      reference  guide  when  you  want  to  know  exactly how a certain
  310.      option  or  command  works.   If  you haven't used LhA before (but
  311.      used  other  archivers),  you  should  at least glance through the
  312.      descriptions  of  all  the  commands and options to get an idea of
  313.      what LhA can do.  
  314.  
  315.      2.1 Command line syntax     
  316.  
  317.         The command line syntax is as follows: 
  318.  
  319.      LhA  [-options]  <Command>  <Archive> [[HomeDir] FileSpec] [@file]
  320.      [destdir] 
  321.  
  322.         The items  in  square  brackets  are optional, and the items in
  323.      angle  brackets  are  mandatory.   Read the following sections for
  324.      exact information on the various items.  
  325.  
  326.      2.1.1 Specifying options      
  327.  
  328.         Unlike other  archivers,  LhA lets you specify options anywhere
  329.      on  the  command  line.   The  option specifier is `-' (dash), any
  330.      items  on  the  command  line  that begins with this character are
  331.      considered  to  be  option  switches.   If  you  want to specify a
  332.      filename  or  something  else  that  begins  with a `-' character,
  333.      enclose  the  name  in  double  quotes  or use double dashes.  For
  334.      example,  to  specify  a  filename  of  `-minus',  you could write
  335.      either `"-minus"' or `--minus'.  
  336.  
  337.         If you  write  `-o' the option `o' is enabled regardless of its
  338.      initial  state.   If  you  want to disable an option, append a `0'
  339.      (zero)  after the option, like in `-o0'.  If an option is followed
  340.      by any other numeric character than `0', the option is enabled.  
  341.  
  342.         You can  specify  multiple  options  without  having  a dash in
  343.      front  of  every  option  character.  An example would be `-ox0m',
  344.      which  would  enable  option  `o',  disable  option `x' and enable
  345.      option  `m'.   The  only  exception  is options taking multi-digit
  346.      numeric  arguments,  which  must  be  followed  by  whitespace and
  347.      another  dash  if  you want to specify more options (like in `-b32
  348.      -ox0m').  
  349.  
  350.      2.1.2 Specifying commands      
  351.  
  352.         The first  non-option  argument on the command line MUST be the
  353.      command  specifier.   The commands are case-insensitive (`l' means
  354.      the  same  thing  as  `L'),  and  only  the first character of the
  355.      argument  is  considered (except for the `vv' command), so you may
  356.      use  verbose  commands  such as `list' or `add' instead of `l' and
  357.      `a', respectively.  
  358.  
  359.  
  360.      
  361.  
  362.  
  363.      V1.50                    LhA User's Guide                   Page 6
  364.  
  365.  
  366.      2.1.3 Specifying archives      
  367.  
  368.         The archive   specification   must  be  the  second  non-option
  369.      argument  (the  first  being  the command specification).  In most
  370.      cases  you  can  specify  a pattern here.  The exception being the
  371.      `m' (move files to archive) command.  
  372.  
  373.      2.1.4 Specifying action files     
  374.  
  375.         The action    files    are    specified   after   the   archive
  376.      specification.  The action file specifications may include pattern
  377.      matching  tokens.  Note  that, as all other file specifications in
  378.      LhA,   action   file  specifications  may  contain  wildcards  for
  379.      directory   names   as  well  -  `hd:*/*/dir/*.h'  is  valid,  for
  380.      example.  
  381.  
  382.                                     NOTE
  383.  
  384.           If  you  do  not  specify  any action files, LhA assumes
  385.           that  you  wish  to act upon all files in the archive or
  386.           in the current directory.  
  387.  
  388.  
  389.      2.1.5 Home directories      
  390.  
  391.         Home directories  is  a  new  concept  introduced  with LhA, it
  392.      provides  an  easy  way of specifying what parts of pathnames that
  393.      should  be  preserved  in  the  archive.  It  can  also be used to
  394.      simplify  specifications  of  mutiple files in the same directory.
  395.      It is perhaps best explained with a couple of examples: 
  396.  
  397.       EXAMPLE 
  398.  
  399.        Example 1: 
  400.  
  401.        lha   -x   a  newarc  dh0:files/  file1  dir1/file2  dir2/file3
  402.        dh0:files2/ *.c 
  403.  
  404.        This would add the following files to `newarc.lha': 
  405.  
  406.         Added file(s)         Stored as 
  407.         -----------------     -------------- 
  408.         dh0:files/file1       file1 
  409.         dh0:files/dir1/file2  dir1/file2 
  410.         dh0:files/dir2/file3  dir2/file3 
  411.         dh0:files2/*.c        *.c 
  412.  
  413.        Example 2: 
  414.  
  415.        lha -r a newarc hd:tmp/ *.c *.h hd:px/ *.s *.snd *.iff 
  416.  
  417.         This would  add  all  `.c' and `.h' files in `hd:tmp' and it's
  418.  
  419.  
  420.      
  421.  
  422.  
  423.      V1.50                    LhA User's Guide                   Page 7
  424.  
  425.  
  426.        subdirectories,  storing  pathnames, but excluding the `hd:tmp'
  427.        part.   For  instance, the file `hd:tmp/src/foo/arargh.c' would
  428.        be  stored  in  the  archive  with the name `src/foo/arargh.c'.
  429.        Additionally,  all `.s', `.snd' and `.iff' files in `hd:px' and
  430.        its  subdirectories  will be added, excluding the `hd:px/' part
  431.        of the name.  
  432.  
  433.         Homedir specifications  must  end in `/' or `:', otherwise they
  434.      won't be recognized as such.  
  435.  
  436.         Homedir specifications  may contain wildcards and other pattern
  437.      matching tokens.  
  438.  
  439.                                     NOTE
  440.  
  441.           You  are not supposed to include the home directory name
  442.           in   the  action  file  specifications  after  the  home
  443.           directory    spec.    I.e.    you   should   not   enter
  444.           `devs:printers/         devs:printers/*HP*',         but
  445.           `devs:printers/ *HP*' is correct.  
  446.  
  447.           The  home  directory  remains active for the rest of the
  448.           command   line   or   until   the  next  home  directory
  449.           specification.  If you want to set the home directory to
  450.           the  current  directory  (as  it is from the beginning),
  451.           use   a   single   slash   (`/')  as  a  home  directory
  452.           specification.  This means you cannot use a single slash
  453.           to  specify  the  parent  directory, to do this you will
  454.           have  to  add  an  additional  slash  (`//' means parent
  455.           directory,  `///'  the  parent's parent directory and so
  456.           on).  
  457.  
  458.  
  459.      2.1.6 Recursive file collection     
  460.  
  461.         When collecting  files recursively (by using the -r option with
  462.      a   or  u  commands),  action  file  specs  are  treated  somewhat
  463.      differently.  Home  directories  work  the  same  way as usual. In
  464.      recursive  file  collection mode, the last node of the action file
  465.      specification  (i.e. the file name part) is used as a pattern that
  466.      is  compared  to  all  files  in  the  specified directory and its
  467.      subdirectories.   Some  examples to hopefully clarify the somewhat
  468.      fuzzy description: 
  469.  
  470.       EXAMPLE 
  471.  
  472.        Example 1: 
  473.  
  474.        lha -r a myarc * 
  475.  
  476.        This  will  add  all  files  in  the  current directory and its
  477.        subdirectories to `myarc.lha'.  
  478.  
  479.  
  480.      
  481.  
  482.  
  483.      V1.50                    LhA User's Guide                   Page 8
  484.  
  485.  
  486.  
  487.        Example 2: 
  488.  
  489.        lha -r a myarc *.c *.cpp 
  490.  
  491.        Will  add  all  `.c'  and `.cpp' files in the current directory
  492.        and its subdirectories to `myarc.lha'.  
  493.  
  494.        Example 3: 
  495.  
  496.        lha -r a myarc ram:work/* hd:tmp/*.c 
  497.  
  498.        Will  add  all  files in `ram:work' and its subdirectories - as
  499.        well  as all `.c' files in `hd:tmp' and its subdirectories - to
  500.        `myarc.lha'.  The  full pathnames will be stored (excluding the
  501.        device specification of course).  
  502.  
  503.        Example 4: 
  504.  
  505.        lha -r a myarc ram:work/ * hd:tmp/ *.c 
  506.  
  507.        Will  do  exactly the same as example 3, but LhA will not store
  508.        the  `ram:work/'  and  `hd:tmp/'  parts of the filenames in the
  509.        archive. (Because of the home directory specifications).  
  510.  
  511.        Example 5: 
  512.  
  513.        lha -r a myarc ram:dir1 ram:makefile 
  514.  
  515.        Will  archive  all  files  in  the  directory  `dir1'  and  its
  516.        subdirectories, as well as the file `ram:makefile'.  
  517.  
  518.        Example 6: 
  519.  
  520.        lha -r a myarc ram:dir1 ram:(makefile) 
  521.  
  522.        Will  do  almost  the  same  as example 5, but will archive ALL
  523.        `makefile's  in  ram:  and  all it's subdirectories (because of
  524.        the parentheses - see note below).  
  525.  
  526.  
  527.                                     NOTE
  528.  
  529.           Explicitly  specified  directories (explicitly = without
  530.           pattern  matching)  will be treated as `dirname/*', i.e.
  531.           all  files  in  the  directory  and it's subdirs will be
  532.           archived.   Explicitly  specified  files  will  only  be
  533.           looked  for  in  the  current home directory, unless the
  534.           filename  is  enclosed in parentheses, in which case the
  535.           file  will  be  looked for recursively. I have chosen to
  536.           implement  it  this  way  because  LhA  can then be used
  537.           better   together   with  directory  utilities  such  as
  538.  
  539.  
  540.      
  541.  
  542.  
  543.      V1.50                    LhA User's Guide                   Page 9
  544.  
  545.  
  546.           Browser or DirectoryOpus.  
  547.  
  548.  
  549.      2.1.7 Specifying destination directory     
  550.  
  551.         You can  optionally  specify  a  destination  directory for the
  552.      files  written  by  the  extract  commands  by writing the desired
  553.      directory  name  anywhere  after  the  archive name on the command
  554.      line.   If no destination directory is specified, LhA will use the
  555.      current  directory  as the destination.  The destination directory
  556.      specification  must  end  in  `:' or `/', just like home directory
  557.      specifications,  or LhA would not be able to distinguish directory
  558.      names from action file specs.  
  559.  
  560.       EXAMPLE 
  561.  
  562.        `lha  x corpus ram:' would extract the contents of `corpus.lzh'
  563.        to ram:.  
  564.  
  565.        `lha  x  project  *.c  dl:tmp/'  would  extract the contents of
  566.        `project.lzh' to the `dl:tmp' directory.  
  567.  
  568.        and so would `lha x project dl:tmp/ *.c'.  
  569.  
  570.                                     NOTE
  571.  
  572.           You  can specify a directory that does not already exist
  573.           as  the  destination,  LhA will automatically create the
  574.           directory for you (without asking first).  
  575.  
  576.  
  577.      2.1.8 `@'-files       
  578.  
  579.         `@'-files are  files that are treated as if their contents were
  580.      written  on  the command line.  They can be used to specify files,
  581.      options  commands  and  anything  else  can  be  specified  on the
  582.      command  line.   An example would be the command `lha -r e arc.lzh
  583.      *.[chas]  @filelist  ram:', which would extract all files matching
  584.      `*.[chas]'  or  the  files  listed in `filelist' to ram:. Carriage
  585.      returns and linefeeds in `@'-files are treated as whitespace.  
  586.  
  587.      2.1.9 LhA limitations      
  588.  
  589.         LhA has  been  written to be as flexible as possible, but there
  590.      are some limitations that you should be aware of as a user.  
  591.  
  592.      o  LhA  pathnames  are currently limited to 255 characters. If you
  593.        exceed  this limit behaviour is undefined. User reports indicate
  594.        that  AmigaDOS  does not handle pathnames with more than 180-190
  595.        characters properly.  
  596.  
  597.      o  When  headers  of level 0 are used, filenotes may not be longer
  598.  
  599.  
  600.      
  601.  
  602.  
  603.      V1.50                    LhA User's Guide                  Page 10
  604.  
  605.  
  606.        than  230-{filename  length  (including path)} characters.  With
  607.        header  level  1  or  2  filenotes  may  be up to 255 characters
  608.        (AmigaDOS   currently   only   supports   filenotes  of  max  80
  609.        characters  so  this  should  not  be  any  problem  except with
  610.        exceptionally long filenames and paths).  
  611.  
  612.      o  The  number  of  files  in an archive files are only limited by
  613.        available  disk  space.  The  size of an archive must not exceed
  614.        2.147.483.648 bytes (2 Gigabytes); LhA will get VERY confused.  
  615.  
  616.      o  The  number of arguments on the command line is only limited by
  617.        available RAM memory and the used shell.  
  618.  
  619.      o  The  allowed  number  of wildcard-matched files is only limited
  620.        by  available  RAM memory.  Any number of files may be extracted
  621.        or added to an archive in one go.  
  622.  
  623.      o  Level  2  headers  must  not be longer than 1024 characters, or
  624.        LhA will not be able to process them.  
  625.  
  626.      o  Currently  LhA only handles multivolume archives with a maximum
  627.        of  100  volumes.  If  you  create  archives with more than this
  628.        number of volumes, behaviour is undefined.  
  629.  
  630.  
  631.      2.2 Environment variables      
  632.  
  633.         Under KickStart   2.0   LhA  supports  both  local  and  global
  634.      environment  variables.  Local  variables  are not available under
  635.      the  1.3  shell.   Upon  startup  LhA  looks  for  the environment
  636.      variable  `LHAOPTS'  and  includes this as if it had been typed on
  637.      the  command  line  directly  after the `LhA' command name. If you
  638.      don't  want to use the settings from the environment variable, use
  639.      the `-I' switch.  
  640.  
  641.       EXAMPLE 
  642.  
  643.        If you set LHAOPTS to `-N -b64' with the following command: 
  644.  
  645.         1> setenv LHAOPTS -N -b64 
  646.  
  647.        LhA  would  not  display  any file-progress indicator and use a
  648.        64K  I/O buffer for all following invokations until the machine
  649.        is  reset  or  LHAOPTS  is  changed.  If  you  want to set some
  650.        default  options  that  should survive reset and power off, use
  651.        the  environment  variable  name `ENVARC:LHAOPTS' instead, like
  652.        in: 
  653.  
  654.         1> setenv ENVARC:LHAOPTS -b64 
  655.  
  656.        This  would cause the environment variable LHAOPTS to be set to
  657.        `-b64' whenever the machine is rebooted.  
  658.  
  659.  
  660.      
  661.  
  662.  
  663.      V1.50                    LhA User's Guide                  Page 11
  664.  
  665.  
  666.      2.3 Pattern matching      
  667.  
  668.         This section  describes  how  LhA  handles pattern matching and
  669.      file  collection.   For  a discussion on what commands will accept
  670.      file   patterns,   please  refer  to  section  2.1  (Command  line
  671.      syntax).  
  672.  
  673.         Pattern matching  in LhA is always case-insensitive.  (i.e.  it
  674.      doesn't  matter  if  you  write  names in upper- or lowercase, `a'
  675.      will match both `a' and `A'.  
  676.  
  677.      2.3.0 Exactly what is pattern matching anyway?  
  678.  
  679.         Pattern matching  is  a means of specifying several files in an
  680.      elegant  and  relatively  straightforward manner.  Instead of just
  681.      lining  up  all  the  file  names you would like to work on on the
  682.      command  line  (which  can be very tedious when a lot of files are
  683.      involved)  you  can  use  a  technique  called `pattern matching'.
  684.      With  this technique you - as the name implies - use the fact that
  685.      the  names  of  the  files you wish to work on often share certain
  686.      characteristics.   For  example,  the  names  of  files containing
  687.      C-source  almost  always  end in `.c', so if you would like to add
  688.      all  C-source  files  in  the  current  directory  you  could take
  689.      advantage  of  this  fact  by specifying a pattern to that matches
  690.      these  files  (in  this  case  such  a  pattern  would  be `*.c').
  691.      Exactly  how  these patterns are built up are explained in section
  692.      2.3.1  forward.  Also read the sections explaining `how to specify
  693.      action files' and `how to specify archive files'.  
  694.  
  695.      2.3.1 Accepted pattern tokens     
  696.  
  697.         LhA accepts  all valid KickStart 2.x and 1.x pattern tokens, it
  698.      also  accepts  all  ARP tokens (works more or less the same way as
  699.      KS2.x).  
  700.  
  701.         In the  explanations  that  follow, the term `expression' means
  702.      either  a  single  token  or character (such as `x' or `?'), or an
  703.      alternation  (such as `(ab|cd|ef)'), or a character class (such as
  704.      `[a-z,A-Z]').  
  705.  
  706.      2.3.1.1 Question mark (?)     
  707.  
  708.         The question  mark  matches  any  one  _single_  character. The
  709.      question mark is sometimes also referred to as the `wildchar'.  
  710.  
  711.       EXAMPLE 
  712.  
  713.        `d?' :  matches  all  two-letter  names  beginning  with  a `d'
  714.               character.  For example `dm' or 'd8'.  
  715.  
  716.        `ab?d' :  matches all four-letter names beginning with `ab' and
  717.               ending  in  `d'.   For example `abcd', `abad' and `ab_d'
  718.  
  719.  
  720.      
  721.  
  722.  
  723.      V1.50                    LhA User's Guide                  Page 12
  724.  
  725.  
  726.               but not `abd' or `acid'.  
  727.  
  728.        `f??' :  matches  all three-letter names beginning in `f'.  For
  729.               example  `foo',  `fel',  `fan'  but  not `ab', `fuga' or
  730.               `fini' 
  731.  
  732.  
  733.      2.3.1.2 Star/Asterisk (*)      
  734.  
  735.  
  736.         The star   matches   any  sequence  of  any  length,  including
  737.      sequences  with  length  zero  (i.e.   the  null string).  The `*'
  738.      character is often called the `wildcard' character.  
  739.  
  740.       EXAMPLE 
  741.  
  742.        `a*' :  matches  all  names  starting  with an `a', for example
  743.               `abba', `anette'.  
  744.  
  745.        `a*z' :  matches `auugaz', `awacz' and `az' and any other names
  746.               starting with an `a' and ending in `z'.  
  747.  
  748.        `s*f*n' :  matches `stefan', `staffan', `steffen', `sfn' or any
  749.               other  name starting with an `s', followed by any number
  750.               (including  zero)  of  arbitrary characters, followed by
  751.               an `f', and ending in `n'.  
  752.  
  753.        `*.lzh' : matches all names ending in `.lzh' 
  754.  
  755.  
  756.      2.3.1.3 Hash mark (#)     
  757.  
  758.         The hash  mark  matches  a subsequent expression (pattern) 0 or
  759.      more  times.   The  simplest  example  of  this is `#?' which will
  760.      match any filename (equivalent to the `*' token).  
  761.  
  762.       EXAMPLE 
  763.  
  764.        `#a' :  matches  any name consisting of the `a' character only.
  765.               For example `aaaa' and `a'.  
  766.  
  767.        `b#ad' :  matches  any  name  beginning in `b', followed by any
  768.               number  (including  0)  of `a' characters, and ending in
  769.               `d'.  For example `bad', `bd' and `baaaad'.  
  770.  
  771.        `#(ha)#(hi)urgh' :  of  `ha':s followed by any number of `hi':s
  772.               followed   by  `urgh'.  For  example  `hahahahahihiurgh'
  773.               matches, and so does `haurgh' and `hahiurgh'.  
  774.  
  775.  
  776.      2.3.1.4 Square brackets ([])     
  777.  
  778.  
  779.  
  780.      
  781.  
  782.  
  783.      V1.50                    LhA User's Guide                  Page 13
  784.  
  785.  
  786.         The square  brackets  enclose  a  set  of  characters to match.
  787.      They  are  a  bit like the parentheses but match single-characters
  788.      only.   You can either specify just the letters you would like the
  789.      expression  to  match,  as in `[abcx]' (this would match `a', `b',
  790.      `c'  and  `x'), or you can specify ranges, like `[a-c,x-z]' (which
  791.      would match `a', `b', `c' and `x', `y', `z').  
  792.  
  793.       EXAMPLE 
  794.  
  795.        `prg.[1-9]' :  matches  any  five-letter  name  beginning  with
  796.               `prg.',  followed  by  a  non-zero  digit.   For example
  797.               `prg.1', 'Prg.8'.  
  798.  
  799.        `Ver_[1-2].[0-9].[a-z]' :    matches   any   nine-letter   name
  800.               beginning  with `ver_' followed by either a `1' or a `2'
  801.               character,  followed by a dot (`.'), a digit and finally
  802.               a  character  between  `a' and `z' (i.e.  all letters in
  803.               the   english   alphabet).    For  example  `Ver_1.2.a',
  804.               `Ver_2.9.d'.  
  805.  
  806.        `#[a-z 0-9]'   matches   any  name  containing  any  number  of
  807.               alphanumeric  characters  (i.e.   either in the alphabet
  808.               or  numeric).   For  example `ados' or `PDP11'.  It does
  809.               not  match  `AXE.dat'  however,  since it contains a `.'
  810.               which is not in the specified character range.  
  811.  
  812.        `*.[chas]' :  matches  any  name  ending in `.c', `.h', `.a' or
  813.               `.s'.  
  814.  
  815.  
  816.      2.3.1.5 Parentheses and the vertical bar   
  817.  
  818.         Parentheses can  be  used to achieve several things.  The first
  819.      way  of  using them is just like in mathematics - to group several
  820.      individual  expressions into one single expression.  The other way
  821.      is  to provide a list of acceptable expressions separated with `|'
  822.      chars.   The  entire  parenthesized  expression  is treated as one
  823.      token  by other tokens (like `#' and `~').  These two are actually
  824.      the  same,  since  the  first is just a special case of the second
  825.      use.  This is easier to explain with a couple of examples: 
  826.  
  827.       EXAMPLE 
  828.  
  829.        `(abc|def|xyz)' :  will  match names `abc', `def' and `xyz' and
  830.               no other.  
  831.  
  832.        `*.(doc|prf|man)' :  will  match  all  names  ending in `.doc',
  833.               `.prf' or `.man'.  
  834.  
  835.        `~(pfile)' :  will  match  all  names except `pfile'. (NB: this
  836.               expression  is  NOT  the  same  thing  as  `~pfile', see
  837.               section 2.3.1.6 for details) 
  838.  
  839.  
  840.      
  841.  
  842.  
  843.      V1.50                    LhA User's Guide                  Page 14
  844.  
  845.  
  846.        `(*.c|*.h|*.doc|ab*)' :  will  match  all files ending in `.c',
  847.               `.h' or `.doc' and all files beginning with `ab'.  
  848.  
  849.  
  850.         Typing an  action-file  spec of `(xxx|yyy|zzz)' is functionally
  851.      equivalent  to  writing  `xxx  yyy  zzz' (xxx, yyy, zzz can be any
  852.      valid patterns, including patterns with parentheses).  
  853.  
  854.         Parentheses can be nested.  
  855.  
  856.  
  857.      2.3.1.6 Tilde (~)      
  858.  
  859.         The tilde  negates  the  immediately  following expression.  It
  860.      negates  ONLY  the  immediately  following  token or paranthesized
  861.      expressiom,  not  the  entire  following expression as some people
  862.      think (see note about ARP<->KS2.0 below).  
  863.  
  864.       EXAMPLE 
  865.  
  866.        `~x?' :  matches any two-letter name except those starting with
  867.               `x'.   For  example  `ah',  `ko' or 'ba' but not 'x0' or
  868.               'xi'.  
  869.  
  870.        `~(x?)' :  matches  anything  except  two-letter names starting
  871.               with  `x'.   For  example  `xaa' or `ab' but not `xa' or
  872.               'x9'.  
  873.  
  874.        `~(#?)' :  matches  nothing  at  all.   (The  tilde negates the
  875.               `#?', which matches all names).  
  876.  
  877.        `~lha' :  matches  all strings that doesn't begin with `l', and
  878.               ends  in  'ha'.   For  example  `uha', `why_lha' but not
  879.               'lumbha' or 'lha'.  
  880.  
  881.  
  882.                                     NOTE
  883.  
  884.             Because  of  a  bug  (or  misfeature) in ARP, the `~'
  885.             token  is  not  correctly handled by LhA when running
  886.             under  KickStart  1.3  under  ARP.  Under  KS2.x  LhA
  887.             handles  it  okay however. In ARP a negation actually
  888.             negates  the ENTIRE EXPRESSION, so `~lha' matches all
  889.             files but `lha'.  
  890.  
  891.  
  892.      2.3.1.7 Percent sign (%)     
  893.  
  894.         The percent   sign  represents  the  empty  string.   i.e.   it
  895.      matches  0  characters always.  It is only useful in parenthesized
  896.      expressions  and  must not follow a the `#' token (`#%' would be a
  897.      rather  pointless  pattern,  since  the % always matches exactly 0
  898.  
  899.  
  900.      
  901.  
  902.  
  903.      V1.50                    LhA User's Guide                  Page 15
  904.  
  905.  
  906.      characters).  
  907.  
  908.       EXAMPLE 
  909.  
  910.        `lha(.doc|.man|%)' : matches `lha.doc', `lha.man' and `lha'.  
  911.  
  912.        `l%u%a' :  matches  `lua'  only;  the percent signs are totally
  913.               irrelevant here and may just as well be omitted.  
  914.  
  915.  
  916.      2.3.2 KS1.3 ARP and KS2.x pattern matching  
  917.  
  918.         When running  LhA  (and  other  programs for that matter) under
  919.      KickStart  2.x, the `*' (star) wildcard will be enabled on program
  920.      startup.  The  initial  state  of  the  WILDSTAR  flag will not be
  921.      reset.   If  arp.library  is  not  available  when  running  under
  922.      KickStart   1.3   LhA  will  use  its  internal  pattern  matching
  923.      routines, which only recognizes the `*' and `?' tokens.  
  924.  
  925.      2.3.3 National characters      
  926.  
  927.         LhA correctly   converts   national  characters  to  lower-  or
  928.      uppercase  when  the  `-Qn'  option  is  enabled. This causes some
  929.      trouble  on  older  versions  of the KickStart since these did not
  930.      correctly   convert   national   characters   to   uppercase  when
  931.      calculating  the  filename hash value. The `-Qn' option should not
  932.      be used on OFS or FFS disks.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.      
  961.  
  962.  
  963.      V1.50                    LhA User's Guide                  Page 16
  964.  
  965.  
  966.      2.4 Commands       
  967.  
  968.         This section  describes  the  commands for archive manipulation
  969.      and  maintenance  LhA  provides.   See  section  2.1.2 (Specifying
  970.      commands)  for  details  on how to specify commands on the command
  971.      line.  
  972.  
  973.      2.4.1 `a' Add files to archive   
  974.  
  975.         Obviously, this  command  adds a number of files to one or more
  976.      archives.   If  the specified archive does not already exist, then
  977.      it  will  be created.  You cannot add files to an archive if these
  978.      already  exist in the archive.  If you attempt to do so, a warning
  979.      will  be  issued, but LhA will continue adding the other files you
  980.      have specified.  
  981.  
  982.         Only the  filenames  are  stored  by  default,  if  you want to
  983.      preserve  some  disk  structure and directory names, you will have
  984.      to  use the -x option to turn path preservation on. If you want to
  985.      archive  entire  subdirectories  recursively  you  can  use the -r
  986.      option,  which  will  turn  on  the -x option automatically. These
  987.      options are explained in section 2.5.  
  988.  
  989.       EXAMPLE 
  990.  
  991.        `LhA  a  myarchive  dict.txt'  would add the file `dict.txt' to
  992.        the archive `myarchive.lha'.  
  993.  
  994.        `LhA  a  arc.lzh  *.c *.h' would cause all files in the current
  995.        directory  ending  in  `.c'  or `.h' to be added to the archive
  996.        `arc.lzh' 
  997.  
  998.        `LhA  -r -0 arch *.c' would cause all `.c' files in the current
  999.        directory  and  all  it's  subdirectories  to  be  added to the
  1000.        archive  `arch.lzh'  using  the  -lh1-  (LhArc 1.x) compression
  1001.        method.  
  1002.  
  1003.        `LhA  -r  archive  src:(lharca|lha)/*.[cha]  asrc:*.asm'  would
  1004.        cause  all  `.c',  `.h'  and `.a' files in the `src:lharca' and
  1005.        `src:lha'  directories  and  subdirectories,  as  well  as  all
  1006.        `.asm'  files  in  the  `asrc:'  directory,  to be added to the
  1007.        archive `archive.lha'.  
  1008.  
  1009.  
  1010.  
  1011.      2.4.2 `c' Concatenate/Append archives     
  1012.  
  1013.         With this   command  it  is  possible  to  concatenate  several
  1014.      archives  to  one  or  to  append  several  archives to the end of
  1015.      another.  Currently, LhA does not check for duplicate files, so if
  1016.      two  archives  contain a file with the same name there will be two
  1017.      entries   with   the   same   name   in   the  resulting  archive.
  1018.  
  1019.  
  1020.      
  1021.  
  1022.  
  1023.      V1.50                    LhA User's Guide                  Page 17
  1024.  
  1025.  
  1026.      Concatenating  and  appending  works  just as if you had extracted
  1027.      all  files  from  the  archives  and  then  moved  them all to the
  1028.      destination    archive    -    except    that    there    is    no
  1029.      decompression/compression involved in the operation.  
  1030.  
  1031.         To combine  (concatenate)  several  archives into a new archive
  1032.      you  specify  a  non-existant  or  empty  archive  as  the working
  1033.      archive - this file will then contain the resultant archive.  
  1034.  
  1035.         To append  archives  to  the  end  of  an  archive, specify the
  1036.      archive  to  append  to  as  the  working  archive - the remaining
  1037.      archives will then be appended to this archive.  
  1038.  
  1039.       EXAMPLE 
  1040.  
  1041.        `LhA  c  ram:new  arc:csrc  arc:csrc2'  would  combine  the two
  1042.        archives  `arc:csrc.lha'  and  `arc:csrc2.lzh' into one archive
  1043.        named `ram:new.lha'.  
  1044.  
  1045.        `LhA  c  arc:csrc  arc:csrc2' would yield the exact same result
  1046.        as   the   above  command  but  the  resulting  archive  is  in
  1047.        `arc:csrc.lha'  instead  (`csrc2.lzh' is appended to the end of
  1048.        `arc:csrc.lha').  
  1049.  
  1050.  
  1051.         Note that  you can use wildcards to specify the files to append
  1052.      / concatenate.  
  1053.  
  1054.      2.4.3 `d' Delete files from archive   
  1055.  
  1056.         This command  removes one or more files from an archive. Please
  1057.      note  that  the  message  about  `packing'  does not mean that LhA
  1058.      compresses  the  files once more.. Just that it removes the unused
  1059.      files from the archive (packs the remaining files closer).  
  1060.  
  1061.  
  1062.                                     NOTE
  1063.  
  1064.           Files  deleted  with the `d' command cannot be recovered
  1065.           from  the  archive  file  in  any  way.   Once a file is
  1066.           deleted from an archive it is gone forever.  
  1067.  
  1068.  
  1069.      2.4.4 `e' Extract files from archive   
  1070.  
  1071.         This command  is  used  to  extract  files from an archive.  It
  1072.      works  just  like  the  `x' command, except this command takes the
  1073.      `-x'  option  into  consideration  (the  `x' command assumes it is
  1074.      set).   If  the  `-x'  option  is  disabled,  files  are extracted
  1075.      without  their pathnames, and if it's enabled LhA will extract all
  1076.      files  with  the  pathnames  and  create the needed directories if
  1077.      they do not already exist.  
  1078.  
  1079.  
  1080.      
  1081.  
  1082.  
  1083.      V1.50                    LhA User's Guide                  Page 18
  1084.  
  1085.  
  1086.  
  1087.       EXAMPLE 
  1088.  
  1089.        `lha  -x0  e  foo.lzh  ram:'  will  extract  all files from the
  1090.        archive  `foo.lzh'  to  ram:,  without paths (all files will be
  1091.        put in the ram:  root directory).  
  1092.  
  1093.        `lha  x foo.lzh *.c ram:' will extract all files ending in `.c'
  1094.        to  ram:,  with  paths  -  i.e.  it  will recreate the original
  1095.        directory structure.  
  1096.  
  1097.        See the tutorial section for more examples 
  1098.  
  1099.  
  1100.      2.4.5 `f' Freshen files in archive   
  1101.  
  1102.         This command  is  used  to  freshen  files in an archive.  I.e.
  1103.      replace  older  files  in  the  archive  with  new  files from the
  1104.      current  directory.   Pathnames  are  considered  unless  the `-x'
  1105.      option  is  disabled  explicitly (with `-x0').  This command never
  1106.      adds  any  files  to an archive, it just replaces those files that
  1107.      have  older modification dates than the corresponding files in the
  1108.      current directory.  
  1109.  
  1110.       EXAMPLE 
  1111.  
  1112.        `lha  f  /aab/lha'  will  freshen  all  files  in  the  archive
  1113.        '/aab/lha.lha'.  
  1114.  
  1115.        `lha  f  /aab/fsys *.[ch]' will freshen all `.c' and `.h' files
  1116.        in the archive '/aab/fsys.lha'.  
  1117.  
  1118.  
  1119.         This command  automatically  enables  the `-x' option unless it
  1120.      is explicitly disabled on the command line with `-x0'.  
  1121.  
  1122.      2.4.7 `h' Hunt for diffs arc <-> filesys 
  1123.  
  1124.         This command  is  used to see what files in an archive has been
  1125.      changed  since  the  files  were archived. The `-D' (display type)
  1126.      option  has  a  special  meaning  with  this  command; The listing
  1127.      format is as follows: 
  1128.  
  1129.  
  1130.         `-D0' (default)  :  Each differing file is listed with the name
  1131.      on  the  right  and  a  `checklist'  on  the left with x-es in the
  1132.      appropriate  positions indicating what differs between the archive
  1133.      and   the  filesystem.  `Tm'  means  the  last  modification  date
  1134.      differs,  `Sz'  means  the  size  is  different,  `Pr'  means  the
  1135.      protection  bits has changed, `Fn' means the filenote has changed,
  1136.      and `Del' means the file does not exist anymore.  
  1137.  
  1138.  
  1139.  
  1140.      
  1141.  
  1142.  
  1143.      V1.50                    LhA User's Guide                  Page 19
  1144.  
  1145.  
  1146.  
  1147.         `-D1' :  Every  differing  file  is listed with the name on the
  1148.      left  followed  by  a  brief  description of what differs. If more
  1149.      than  one thing differs a new line will be used for each differing
  1150.      attribute.  
  1151.  
  1152.  
  1153.         `-D2' :  As  `-D1'  but  all differing attributes are listed on
  1154.      the same line.  
  1155.  
  1156.  
  1157.         `-D3' :  Only  the  differing filenames are listed, one on each
  1158.      line.  
  1159.  
  1160.      If  no directory is specified on the command line, LhA assumes you
  1161.      want  to  compare  the  archive  to  the  current  directory.  The
  1162.      directory  to  compare  to  is  specified  the  same  way  as  the
  1163.      destination directory with the `e' and `x' commands.  
  1164.  
  1165.       EXAMPLE 
  1166.  
  1167.        `lha  h  arc:utils.lha  sys:utilities/' would compare all files
  1168.        in  the  archive  `arc:utils.lha' to the corresponding files in
  1169.        the `sys:utilities' directory, reporting all differences.  
  1170.  
  1171.        `lha  -x0  h  src:misc #?.c misc:' would compare all files with
  1172.        names  ending  in  `.c'  in  the  `src:misc.lha' archive to the
  1173.        corresponding files in the `misc:' directory.  
  1174.  
  1175.        `lha   h   dl:backup'   would  compare  the  files  in  archive
  1176.        `dl:backup.lha'  to  the  files  and directories in the current
  1177.        directory.  
  1178.  
  1179.  
  1180.  
  1181.      2.4.8 `l' List archive contents (terse)   
  1182.  
  1183.         This command  gives  a terse list of the contents of an archive
  1184.      file,   including   file   names  (without  paths),  original  and
  1185.      compressed length, last modification date and compression ratio.  
  1186.  
  1187.         Files with  pathnames  are  indicated by having a `+' character
  1188.      in front of the name. See example below.  
  1189.  
  1190.         Filenotes are  NOT  displayed  when using this command, use the
  1191.      `v' or `vv' command to display those.  
  1192.  
  1193.         The action  file  specification is used to determine what files
  1194.      to list. If no filespecs are given, all files will be listed.  
  1195.  
  1196.       EXAMPLE 
  1197.  
  1198.  
  1199.  
  1200.      
  1201.  
  1202.  
  1203.      V1.50                    LhA User's Guide                  Page 20
  1204.  
  1205.  
  1206.         1> lha -N l dl:c64new 
  1207.  
  1208.         Listing of archive 'dl:c64new.lzh': 
  1209.         Original  Packed Ratio    Date     Time    Name 
  1210.         -------- ------- ----- --------- --------  ------------- 
  1211.            36098   26979 25.2% 20-Oct-91 22:40:16 +Stormlord 
  1212.              482     293 39.2% 20-Oct-91 22:41:36 +Stormlord.info 
  1213.            23016   12100 47.4% 21-Oct-91 08:28:18  PlaySID 
  1214.         -------- ------- ----- --------- -------- 
  1215.            59596   39372 33.9% 25-Oct-91 21:22:48   3 files 
  1216.  
  1217.         The `+'  (plus) signs in front of the first two names indicate
  1218.        that  the  file  has a path which is not displayed with the `l'
  1219.        command  (use  the  `v' or `vv' command to display pathnames as
  1220.        well).  The `-N' suppresses the copyright notice.  
  1221.  
  1222.  
  1223.      2.4.8.1 `lq' List archive (terse-quick)    
  1224.  
  1225.         This command  works  just  like  the  `l' command, but the only
  1226.      information   listed   is   the  filenames  without  paths.  Empty
  1227.      directories are displayed as an empty line.  
  1228.  
  1229.  
  1230.      2.4.9 `m' Move files to archive   
  1231.  
  1232.         This command  works  just  like the `a' command, but the source
  1233.      files are deleted after successfully adding them to the archive.  
  1234.  
  1235.       EXAMPLE 
  1236.  
  1237.        `lha   m  includes.lzh  src:*.[hi]'  will  move  all  files  in
  1238.        directory  `src:'  having  filenames  ending in `.h' or `.i' to
  1239.        the archive `includes.lzh'.  
  1240.  
  1241.        `lha  m  myarc.lzh lhb_log.911012 lhb_idx.911012' will move the
  1242.        two  specified files (`lhb_log.911012' and `lhb_idx.911012') to
  1243.        the archive `myarc.lzh'.  
  1244.  
  1245.  
  1246.      2.4.14 `p' Print files to stdout   
  1247.  
  1248.         This command  works  just like the extract (`e', `x') commands,
  1249.      but  sends the extracted output to stdout (normally the console or
  1250.      output redirection file).  
  1251.  
  1252.  
  1253.      2.4.15 `r' Replace files     
  1254.  
  1255.         This command  works  just  like  the  update/add  commands  but
  1256.      replaces  the  files  that already exist in the archive regardless
  1257.      of  the  file  modification  time. (Using the `u' command together
  1258.  
  1259.  
  1260.      
  1261.  
  1262.  
  1263.      V1.50                    LhA User's Guide                  Page 21
  1264.  
  1265.  
  1266.      with the `-Qr' option is equivalent to using this command).  
  1267.  
  1268.  
  1269.      2.4.17 `t' Test archive integrity    
  1270.  
  1271.         This command   tests   the   specified  archives  integrity  by
  1272.      extracting  the  files they contain to nowhereland, i.e.  the data
  1273.      is  decompressed only, not written to any file.  This command only
  1274.      works  on  entire archives, i.e.  you cannot just test one file in
  1275.      an  archive.  If this command fails, the archive is corrupted, and
  1276.      a warning return code is returned.  
  1277.  
  1278.       EXAMPLE 
  1279.  
  1280.        `lha  t  work:arcs/*'  will check the integrity of all archives
  1281.        in directory `work:arcs'.  
  1282.  
  1283.        `lha    t   s:envarc.lzh'   will   check   the   integrity   of
  1284.        `s:envarc.lzh' 
  1285.  
  1286.        `lha  -R  t  dh0:*' will check the integrity of all archives on
  1287.        the `dh0:' volume (`-R' = Collect archives recursively).  
  1288.  
  1289.  
  1290.      2.4.18 `u' Update archive     
  1291.  
  1292.         As the  command name implies, this command updates archives. It
  1293.      adds  files  that are not yet in the archive and replaces existing
  1294.      but  older files. The last modification date for files are used to
  1295.      determine which file is the newest one.  
  1296.  
  1297.       EXAMPLE 
  1298.  
  1299.        `lha  u  /aab/lha.lzh  *.c'  will update archive `/aab/lha.lzh'
  1300.        with all `.c' files in the current directory.  
  1301.  
  1302.  
  1303.      2.4.19 `v' List archive (verbose)    
  1304.  
  1305.         This command  works just like the `l' command, but displays the
  1306.      full  pathname  of the file, while `l' only displays the name node
  1307.      without  path.   Another  difference  between `l' and the `v'/`vv'
  1308.      commands  is  that  the  `l'  command  does  not  show  filenotes.
  1309.      Filenotes  are  displayed on a separate line with a colon (`:') in
  1310.      front of it, just like the AmigaDOS `list' command.  
  1311.  
  1312.         The action  file  specification is used to determine what files
  1313.      to list. If no filespecs are given, all files will be listed.  
  1314.  
  1315.       EXAMPLE 
  1316.  
  1317.         1> lha -N v dl:c64new 
  1318.  
  1319.  
  1320.      
  1321.  
  1322.  
  1323.      V1.50                    LhA User's Guide                  Page 22
  1324.  
  1325.  
  1326.  
  1327.         Listing of archive 'dl:c64new.lzh': 
  1328.         Original  Packed Ratio    Date     Time    Name 
  1329.         -------- ------- ----- --------- --------  ------------- 
  1330.            36098   26979 25.2% 20-Oct-91 22:40:16  S/Stormlord 
  1331.              482     293 39.2% 20-Oct-91 22:41:36  S/Stormlord.info 
  1332.            23016   12100 47.4% 21-Oct-91 08:28:18  PlaySID 
  1333.         : New version with `equalizers' 
  1334.         -------- ------- ----- --------- -------- 
  1335.            59596   39372 33.9% 25-Oct-91 21:22:48   3 files 
  1336.  
  1337.         The `-N' suppresses the copyright notice.  
  1338.  
  1339.  
  1340.  
  1341.      2.4.19.1 `vq' List archive (verbose-quick)    
  1342.  
  1343.         This command  works  just  like  the  `v' command, but the only
  1344.      information listed is the filenames including path.  
  1345.  
  1346.  
  1347.      2.4.20 `vv' List archive (full)    
  1348.  
  1349.         This command  is  just  like  the `v' command, but displays all
  1350.      available   information  in  a  slightly  different  format.   The
  1351.      original  and  packed size, last modification date and compression
  1352.      ratio   is  listed  just  as  with  the  `v'  command,  plus  file
  1353.      attributes  (`Atts'),  compression method, file CRC and DOS ID for
  1354.      the  OS  the  files  were compressed on.  If no DOS ID is given in
  1355.      the  archive  (header  level  <  1), a question mark is displayed.
  1356.      The  most  common  DOS  IDs are `A', `U' and `M', where `A' is for
  1357.      AmigaDOS,  `U'  is  for  **IX and `M' is for MS-DOS.  The filename
  1358.      including  path  is  displayed on a separate line.  File notes are
  1359.      displayed  in  the  same  way  as  the  `v'  command does it, on a
  1360.      separate  line  after  the  filename.  The  header  level  is also
  1361.      displayed,  and  if  any  unhandled extended headers are found, an
  1362.      `X' will be listed after the DOS ID.  
  1363.  
  1364.         The action  file  specification is used to determine what files
  1365.      to list. If no filespecs are given, all files will be listed.  
  1366.  
  1367.       EXAMPLE 
  1368.  
  1369.         1> lha -N vv dl:c64new 
  1370.  
  1371.         Listing of archive 'dl:c64new.lzh': 
  1372.         Original  Packed Ratio    Date     Time     Atts   Method CRC  L OS 
  1373.         -------- ------- ----- --------- -------- -------- ------ ---- ----- 
  1374.         S/Stormlord 
  1375.            36098   26979 25.2% 20-Oct-91 22:40:16 ----rwed  -lh1- 2093 2 U X 
  1376.         S/Stormlord.info 
  1377.              482     293 39.2% 20-Oct-91 22:41:36 ----rwed  -lh1- 710E 2 U X 
  1378.  
  1379.  
  1380.      
  1381.  
  1382.  
  1383.      V1.50                    LhA User's Guide                  Page 23
  1384.  
  1385.  
  1386.         PlaySID 
  1387.            23016   12100 47.4% 21-Oct-91 08:28:18 ----rwed  -lh5- 89FF 0 ? 
  1388.         : New version with `equalizers' 
  1389.         -------- ------- ----- --------- -------- 
  1390.            59596   39372 33.9% 25-Oct-91 21:22:48   3 files 
  1391.  
  1392.         The `-N' option suppresses the copyright notice.  
  1393.  
  1394.  
  1395.  
  1396.        2.4.21 `x' Extract files with path   
  1397.  
  1398.           This command  works  exactly the same as the `e' command, but
  1399.        it  always  extracts  files  with paths (i.e.  same as using the
  1400.        `e'  command  with  `-x'  option on), regardless of the state of
  1401.        the `-x' option.  
  1402.  
  1403.  
  1404.        2.4.22 `y' Copy archive with new options  
  1405.  
  1406.           This command  takes  an  archive  as  input, and rewrites the
  1407.        selected  (or all, if none specified) files with the new options
  1408.        given  on the command line or in environment variables. This can
  1409.        often  be  useful.  A  couple  of  examples  will surely help to
  1410.        clarify; 
  1411.  
  1412.         EXAMPLE 
  1413.  
  1414.          `lha  -H1  y  dl:#?'  will  convert all archives in the `dl:'
  1415.          directory to archives with level-1 headers.  
  1416.  
  1417.          `lha  -x0 y ram:files.lha *.c' will remove all paths from all
  1418.          files   with   names   ending   in   `.c'   in   the  archive
  1419.          `ram:files.lha'.  
  1420.  
  1421.  
  1422.  
  1423.                                      NOTE
  1424.  
  1425.             LhA  currently ignores the compression method setting,
  1426.             so  this  command  cannot  be  used  to re-archive old
  1427.             -lh1-  archives  to  new -lh5- archives or vice versa.
  1428.             This will be possible in a future release.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.      
  1441.  
  1442.  
  1443.      V1.50                    LhA User's Guide                  Page 24
  1444.  
  1445.  
  1446.        2.5 Options       
  1447.  
  1448.           This section   describes   the   various   options  that  are
  1449.        available  to  you when using LhA. For a detailed explanation on
  1450.        how  to  enable/disable  specific  options  and  where  you  can
  1451.        specify  options, see section 2.1.1.  The letters in parantheses
  1452.        indicate what commands the options affect.  
  1453.  
  1454.            Code  Commands 
  1455.            ----- ------------ 
  1456.            (add) a,u,f 
  1457.            (all) all commands 
  1458.            (ext) e,x 
  1459.            (upx) a,u,f,e,x 
  1460.            (upd) a,u,f,d 
  1461.  
  1462.  
  1463.        2.5.1 `-a' (upx) Preserve file attributes   
  1464.  
  1465.           This option,  when  enabled,  will make LhA store and restore
  1466.        file protection flags. The eight attributes are listed below: 
  1467.  
  1468.            r:  Read  - This flag is set for files which are readable (a
  1469.               file is read-protected if the flag is unset).  
  1470.  
  1471.            w:  Write  -  This flag is set for files which are writeable
  1472.               (a file is write-protected if the flag is unset).  
  1473.  
  1474.            e:  Execute   -  This  flag  is  set  for  files  which  are
  1475.               executable  (binary load files or shell scripts must have
  1476.               this bit set).  
  1477.  
  1478.            d:  Delete   -   This  flag  is  set  for  files  which  are
  1479.               deleteable  (a  file  is  protected from deletion if this
  1480.               flag is unset).  
  1481.  
  1482.            a:  Archived   -   This  flag  is  used  by  harddisk-backup
  1483.               programs  (and  optionally  LhA)  to  indicate what files
  1484.               have  been changed since the last backup. If this flag is
  1485.               set  it  indicates  that the file is unchanged, and if it
  1486.               is  unset  the  file  has  changed since the last backup.
  1487.               The  bit  is  cleared  whenever  a  write  is made to the
  1488.               file.  
  1489.  
  1490.            p:  Pure  - This flag is set for binary load files which are
  1491.               pure  (i.e.   multitasking  reentrant),  and  can be made
  1492.               resident  with  the  AmigaDOS  'resident'  or  equivalent
  1493.               command.  
  1494.  
  1495.            s:  Script - This flag is set for shell script files.  
  1496.  
  1497.            h:  Hidden  -  This  flag  is  set for files that should not
  1498.  
  1499.  
  1500.      
  1501.  
  1502.  
  1503.      V1.50                    LhA User's Guide                  Page 25
  1504.  
  1505.  
  1506.               show  up  on  directory  listings. It is not supported by
  1507.               the  current  release of the AmigaDOS shell/CLI commands,
  1508.               and should thus not be used.  
  1509.  
  1510.  
  1511.           Please refer   to   an  AmigaDOS  manual  for  more  detailed
  1512.        explanation of the various file protection flags.  
  1513.  
  1514.           If the  option  is  disabled (by issuing `-a0' on the command
  1515.        line),  the  protection  flags  are  set  to  '----RWED' for all
  1516.        extracted  and  archived  files.  Important:  You MUST have this
  1517.        option  enabled  both  when archiving and extracting to preserve
  1518.        file attributes correctly.  
  1519.  
  1520.                                      NOTE
  1521.  
  1522.             Use  this option only if you know that the archive has
  1523.             been  compressed or will be decompressed with an Amiga
  1524.             archiver,   since   the   attribute  field  format  is
  1525.             different  on different operating systems.  If you use
  1526.             archive  headers  of  level  1  or higher you need not
  1527.             care  about  this since the archiver then detects what
  1528.             OS  the  archive  was  created  on  and  only uses the
  1529.             protection  flags  if  it  is  the  native OS.  Always
  1530.             leave  this  option enabled when using archive headers
  1531.             of level 1 and higher! 
  1532.  
  1533.  
  1534.           This option  is  enabled  by default when archiving (a,f,u,m)
  1535.        and disabled by default for all other commands.  
  1536.  
  1537.        2.5.2 `-A' (upd) Set archive attributes   
  1538.  
  1539.           When this  option is active, LhA will set the file protection
  1540.        flags of all archives it updates to `----RW-D'.  
  1541.  
  1542.           This option is OFF by default.  
  1543.  
  1544.        2.5.3 `-b' (all) Set I/O buffer size  
  1545.  
  1546.           This option  will  set  the  size of the I/O buffers LhA uses
  1547.        when  reading  and  writing  to  archive files.  You can set the
  1548.        buffer  size  to  anything  from  8KB  to 64 KB.  Larger buffers
  1549.        normally  makes  LhA  operate  slightly  faster  (depends on the
  1550.        nature of the archive and what files are selected).  
  1551.  
  1552.         EXAMPLE 
  1553.          'lha  -b64  a  archive.lzh hubba' :  Will add file `hubba' to
  1554.          `archive.lzh' using an I/O buffer of 64K.  
  1555.  
  1556.                                      NOTE
  1557.  
  1558.  
  1559.  
  1560.      
  1561.  
  1562.  
  1563.      V1.50                    LhA User's Guide                  Page 26
  1564.  
  1565.  
  1566.             Running  LhA with a small I/O buffer on an accelerated
  1567.             (68020  and  up)  Amiga  will  degrade  compression  /
  1568.             decompression  performance significantly!  The default
  1569.             buffer  size  of  32KB  is  enough  in most cases, and
  1570.             works  well  on  an unaccelerated Amiga as well.  Also
  1571.             note  that when running LhA and doing all work on some
  1572.             ram  disk,  the I/O buffer size is less important, and
  1573.             it  is  unnecessary  to  run  with a large buffer. The
  1574.             default  buffer  size  of 32K is a good choice in most
  1575.             setups.  
  1576.  
  1577.  
  1578.           The default buffer size is 32K (32768 bytes) 
  1579.  
  1580.        2.5.4 `-B' (upd) Keep backup of archives  
  1581.  
  1582.           When this  option  is  enabled, LhA will always keep a backup
  1583.        copy  of  the  archive whenever a file is removed from it by the
  1584.        delete,  update, freshen or replace commands. The backup archive
  1585.        is  named `<arcname>.bak' (note that the `.lzh' or `.lha' suffix
  1586.        is  *NOT*  replaced  by  the  `.bak' suffix - rather, the `.bak'
  1587.        suffix is always appended at the end of the filename).  
  1588.  
  1589.           This option is OFF by default.  
  1590.  
  1591.        2.5.5 `-c' (all) Confirm files    
  1592.  
  1593.           When this  option is active LhA will ask you for confirmation
  1594.        on all files and archives that are acted upon.  
  1595.  
  1596.           This option is OFF by default.  
  1597.  
  1598.        2.5.6 `-C' (ext) Clear arc-bit on extract  
  1599.  
  1600.           When this  option  is  active  LhA will mask the A-protection
  1601.        bit  for  all  files it extracts. This is useful when extracting
  1602.        files  from  archives  to  a harddisk, since the extracted files
  1603.        would  not  be  recognized as new or changed files by the backup
  1604.        program if the A-bit was set.  
  1605.  
  1606.           This option is ON by default.  
  1607.  
  1608.        2.5.6 `-d' (upd) Archive date=newest file   
  1609.  
  1610.           When this   option   is   active   LhA   will  set  the  last
  1611.        modification  date  of  the archive to the same date as the last
  1612.        modified  file in the archive. This more accurately reflects the
  1613.        real  age  of  the  archive  contents  than the date of the last
  1614.        archive update.  
  1615.  
  1616.           This option is OFF by default.  
  1617.  
  1618.  
  1619.  
  1620.      
  1621.  
  1622.  
  1623.      V1.50                    LhA User's Guide                  Page 27
  1624.  
  1625.  
  1626.        2.5.8 `-D' (all) Alternate progress display   
  1627.  
  1628.           This switch  is  used to change the look of the byte progress
  1629.        indicator   that   LhA   displays  when  it  is  compressing  or
  1630.        decompressing  files.  There  are  several  different  types  of
  1631.        progress  indicators,  you can specify which one you want with a
  1632.        digit after the '-D' string.  
  1633.  
  1634.  
  1635.        0:  This  is  the  default  progress  indicator, it displays how
  1636.           many  bytes of the file LhA has processed, and how many bytes
  1637.           there is in the file like this: 
  1638.  
  1639.           (xxxxxxx/yyyyyyy)  where  x  = bytes processed, and y = total
  1640.           bytes in the file.  
  1641.  
  1642.  
  1643.        1:  This  progress indicator simply shows a `rotating line' that
  1644.           is  rotated  45  degrees  every  time  the progress indicator
  1645.           display is updated).  
  1646.  
  1647.  
  1648.        2:  This  progress  indicator shows how many percent of the file
  1649.           LhA has processed.  
  1650.  
  1651.  
  1652.        3:  This   progress   indicator  displays  a  growing  bar  that
  1653.           indicates how much of the file that has been processed.  
  1654.  
  1655.  
  1656.         EXAMPLE 
  1657.  
  1658.          `lha  -D2  a  src  *.asm'  will  add  files  to  the  archive
  1659.          `src.lha' with a percentage indicator (type 2).  
  1660.  
  1661.  
  1662.                                      NOTE
  1663.  
  1664.             When  used  with  the  `h'  command  this option has a
  1665.             slightly  different meaning. See the section about the
  1666.             `h' command for a detailed explanation.  
  1667.  
  1668.  
  1669.           The default progress indication type is 0.  
  1670.  
  1671.        2.5.9 `-e' (add) Archive empty directories   
  1672.  
  1673.           When this  option  is  used  together  with the `-r' (collect
  1674.        files   recursively)   option,   LhA   will  archive  all  empty
  1675.        subdirectories.  
  1676.  
  1677.           This option  is  OFF by default (empty subdirectories are not
  1678.  
  1679.  
  1680.      
  1681.  
  1682.  
  1683.      V1.50                    LhA User's Guide                  Page 28
  1684.  
  1685.  
  1686.        archived).  
  1687.  
  1688.        2.5.10 `-E' (ext) Touch extracted files   
  1689.  
  1690.           When this   option   is   enabled,  LhA  will  set  the  file
  1691.        modification  date  of  all extracted files to the current time.
  1692.        This  can  be useful if you do HD backups by date rather than by
  1693.        archive bit.  
  1694.  
  1695.           This option  is  OFF  by  default  (the original modification
  1696.        dates are restored).  
  1697.  
  1698.        2.5.11 `-f' (all) Ignore filenotes    
  1699.  
  1700.           When this  option  is  enabled, LhA will not store or restore
  1701.        any  filenotes.  There is no real need to do this, since it does
  1702.        not  cause any compatibility problems with other systems because
  1703.        of  the  way the filenotes are stored.  If problems should arise
  1704.        anyway,  try  enabling  this option or use headers of level 1 or
  1705.        higher if the target system supports it.  
  1706.  
  1707.           See the  section  about  compatibility (1.7) for a discussion
  1708.        about this and other compatibility issues.  
  1709.  
  1710.           This option  is  OFF  by  default  (filenotes  are stored and
  1711.        restored) 
  1712.  
  1713.        2.5.12 `-F' (all) Use fast progress display  
  1714.  
  1715.           In this  mode LhA uses a different method of display progress
  1716.        for  the  extract  and  test  commands.  Normally,  LhA  emits a
  1717.        linefeed   (LF)   after  each  file  has  been  processed,  thus
  1718.        advancing/scrolling  the display one line. In this mode LhA only
  1719.        emits  a  LF  when  an  error  occurs. This is useful if you are
  1720.        testing  or  extracting files with a lot of small files, and the
  1721.        scrolling takes more time than the actual decompression! 
  1722.  
  1723.                                      NOTE
  1724.  
  1725.             If  you  use  the  default style progress display on a
  1726.             very  fast  Amiga  system  (68020+),  beware  that the
  1727.             scrolling  of  the  screen may actually take more time
  1728.             than  the  actual  decompression!   This is especially
  1729.             true  for  archives  with  many small files.  So don't
  1730.             use  it  unless  you  really  _have_ to see what files
  1731.             have   been   processed.    LhA  scrolls  the  display
  1732.             whenever  an  error occurs on a file, so you still can
  1733.             see  when  an  error  occurs  (better, even, since the
  1734.             only  filenames that remain on screen after the action
  1735.             is complete are those that failed!).  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.      
  1741.  
  1742.  
  1743.      V1.50                    LhA User's Guide                  Page 29
  1744.  
  1745.  
  1746.           This option  is  OFF  by  default  (use  old  style  progress
  1747.        indication).  
  1748.  
  1749.        2.5.13 `-g' (add) Garble files with password  
  1750.  
  1751.           This option is not available in the current version.  
  1752.  
  1753.        2.5.14 `-G' (ext) Only extract newer files  
  1754.  
  1755.           When this  option  is  used  LhA will only extract files that
  1756.        already  exists  and have a last modification date that is newer
  1757.        than the existing files.  
  1758.  
  1759.           This option is OFF by default.  
  1760.  
  1761.        2.5.15 `-h' (add) Disable homedirectories    
  1762.  
  1763.           When this  option is enabled, the homedirectory specification
  1764.        feature of LhA is disabled.  
  1765.  
  1766.           This option   is   OFF   by   default   (homedirectories  are
  1767.        recognized).  
  1768.  
  1769.        2.5.16 `-H' (add) Write header level   
  1770.  
  1771.           With this  switch  you  can select which header types to use.
  1772.        The  valid  header  levels are currently 0,1 and 2. Please refer
  1773.        to   the  section  about  header  levels  for  a  more  detailed
  1774.        explanation about the various header types.  
  1775.  
  1776.           The default header level is 0.  
  1777.  
  1778.        2.5.17 `-i' (all) Read filelist from file  
  1779.  
  1780.           With this  option  you can include an action file list from a
  1781.        file instead of specifying all action files on a command line.  
  1782.  
  1783.         EXAMPLE 
  1784.  
  1785.          If the file `ArcFList' contains the following lines: 
  1786.  
  1787.          ---> Start of ArcFList data   (this line is NOT in the file) 
  1788.  
  1789.          LhA.c ArcList.c FSys/*.(c|h|i|asm|prf|man|doc|txt) 
  1790.  
  1791.          ---> End of ArcFList data     (this line is NOT in the file) 
  1792.  
  1793.          The following command line: 
  1794.  
  1795.          `lha -iArcFList u /aab/lha.lzh' 
  1796.  
  1797.          Will do the same thing as this command: 
  1798.  
  1799.  
  1800.      
  1801.  
  1802.  
  1803.      V1.50                    LhA User's Guide                  Page 30
  1804.  
  1805.  
  1806.  
  1807.          `lha        u        /aab/lha.lzh       LhA.c       ArcList.c
  1808.          FSys/*.(c|h|i|asm|prf|man|doc|txt)' 
  1809.  
  1810.  
  1811.                                      NOTE
  1812.  
  1813.               This  command  works  almost  exactly like entering
  1814.               the following command line: 
  1815.  
  1816.               LhA ? ???? @file 
  1817.  
  1818.               Thus  you  can include options in your -i file. The
  1819.               only  difference is that the -i file cannot contain
  1820.               a  destination  directory  specification  while you
  1821.               can  do this with the @file method. The destination
  1822.               directory  will  always  be  taken from the command
  1823.               line when using the -i option.  
  1824.  
  1825.  
  1826.  
  1827.           See the  section  about  `@'(include)-files  for an alternate
  1828.        way of doing this.  
  1829.  
  1830.        2.5.18 `-I' (all) Ignore LHAOPTS variable   
  1831.  
  1832.           When this  option  is specified, LhA will not try to read the
  1833.        defaults  from the LHAOPTS local or global environment variable.
  1834.        Note  that this option is special because it has to be specified
  1835.        directly after a dash (`-') on the command line.  
  1836.  
  1837.           This option is OFF by default.  
  1838.  
  1839.        2.5.19 `-k' (all) Keep partial files   
  1840.  
  1841.           This option  will, if it's enabled, prevent LhA from deleting
  1842.        temporary  files when an error occurs.  Normally temporary files
  1843.        that  fail  the  CRC  check, cause I/O errors or are interrupted
  1844.        with  CTRL-C  are  deleted  before  exiting  LhA  with  an error
  1845.        message,  with  this  option  you  can  force  LhA to keep those
  1846.        (often)  partial  files.   This  can  be  useful  when trying to
  1847.        recover  data  from  corrupted  archives  -  LhA will attempt to
  1848.        extract  the  data  from  the  erraneous  archive file and put a
  1849.        special  filenote on the file to indicate that it failed the CRC
  1850.        check and probably is corrupted.  
  1851.  
  1852.                                      NOTE
  1853.  
  1854.             Please  that  in  the  current  release,  for  certain
  1855.             errors  all data that has been extracted may not be in
  1856.             the  partially extracted file, because of internal I/O
  1857.             buffering.  In  this  case,  set the I/O buffer to the
  1858.  
  1859.  
  1860.      
  1861.  
  1862.  
  1863.      V1.50                    LhA User's Guide                  Page 31
  1864.  
  1865.  
  1866.             smallest  value  possible  (8KB) to recover as much as
  1867.             possible.  Because  of  this,  small  files may not be
  1868.             recovered  at  all.  This  only applies to LHA (-lh5-)
  1869.             compression,  LhArc  compressed files will always have
  1870.             all extracted data in the partially extracted file.  
  1871.  
  1872.  
  1873.           This option is OFF by default (partial files are deleted).  
  1874.  
  1875.        2.5.20 `-K' (move) Kill empty directories   
  1876.  
  1877.           When this  option  is  used  together  with  the  move  (`m')
  1878.        command  LhA  will  delete  all directories that are empty after
  1879.        moving  all  files  to  the archive. Useful for moving an entire
  1880.        subdirectory  tree  with  the  `-r'  (collect files recursively)
  1881.        option.  
  1882.  
  1883.           This option  is  OFF  by  default  (empty directories are not
  1884.        deleted).  
  1885.  
  1886.        2.5.21 `-l' (ALL) Make filenames lowercase   
  1887.  
  1888.           This option,  when  active,  will  cause  LhA  to convert all
  1889.        filenames  to  lowercase.   This is useful when extracting files
  1890.        from  archives created on MSDOS systems, whose filenames are all
  1891.        uppercase,  which  look  completely  braindead (IMHO).  Use this
  1892.        option to make them look nicer! 
  1893.  
  1894.         EXAMPLE 
  1895.          `LhA    -l   x   myarc'   will   extract   all   files   from
  1896.          `myarc.(lzh|lha)', making all filenames lowercase.  
  1897.  
  1898.           This option if OFF by default 
  1899.  
  1900.        2.5.22 `-L' (ALL) Create filelist    
  1901.  
  1902.           When this  option  is  enabled, it will cause LhA to create a
  1903.        list  of  the  files  it  has acted upon (i.e. what files in the
  1904.        last  operation  that  matched the action file specification you
  1905.        gave  on  the  command  line).  The  name  of the list file must
  1906.        follow  immediately after the `-L' string. If you need spaces in
  1907.        the filename, enclose the name in double quotes.  
  1908.  
  1909.         EXAMPLE 
  1910.  
  1911.          `lha  -Lram:ListFile  d  src.lzh *.asm' will delete all files
  1912.          in  `src.lzh'  with  names ending in `.asm' and create a list
  1913.          of the deleted files in the file `ram:ListFile'.  
  1914.  
  1915.          `lha   -L"ram:List   File"   u  src.lzh  *.asm'  will  update
  1916.          `src.lzh',   and  create  a  list  of  the  files  that  were
  1917.          added/replaced in the file `ram:List File'.  
  1918.  
  1919.  
  1920.      
  1921.  
  1922.  
  1923.      V1.50                    LhA User's Guide                  Page 32
  1924.  
  1925.  
  1926.                                      NOTE
  1927.  
  1928.             The  file  that  this  option creates is a plain ASCII
  1929.             file  with  every  name  on a separate line. The files
  1930.             created  by this option are suitable for use as action
  1931.             or  exclude  lists  for  LhA  using  the  `@'  or `-i'
  1932.             options.  
  1933.  
  1934.  
  1935.           This option is OFF by default (no filelist created).  
  1936.  
  1937.        2.5.23 `-m' (ALL) No messages for query  
  1938.  
  1939.           When this  option  is  active  LhA  will suppress all queries
  1940.        that  normally  are issued before overwriting existing files for
  1941.        example.   Enabling  this  option  will also cause LhA to ignore
  1942.        TelOps  (autoshow  files).   When this option is on you LhA will
  1943.        behave  like  you  choose  the default action in response to all
  1944.        the  queries  (yes). This option is automatically enabled if the
  1945.        standard  input is not interactive (if run in the background for
  1946.        example).  
  1947.  
  1948.           This option if OFF by default.  
  1949.  
  1950.        2.5.24 `-M' (ext) No autoshow files   
  1951.  
  1952.           When this  option  is  enabled, LhA will suppress the display
  1953.        of autoshow files (files with names ending in `.displayme').  
  1954.  
  1955.                                      NOTE
  1956.  
  1957.             Autoshow  files  are also suppressed if one or more of
  1958.             the `-N', `-q' or `-m' options are enabled.  
  1959.  
  1960.  
  1961.           This option   is   OFF   by   default   (autoshow  files  are
  1962.        displayed).  
  1963.  
  1964.        2.5.25 `-n' (upx) No byte progress indicator  
  1965.  
  1966.           When this  option  is enabled, the byte progress indicator is
  1967.        disabled.  LhA  will  still  display  what file it is working on
  1968.        however, use `-N' to disable all progress indication.  
  1969.  
  1970.           This option is OFF by default.  
  1971.  
  1972.        2.5.26 `-N' (all) No progress indicator   
  1973.  
  1974.           This option  is  similar  to  the  `-n' option, but supresses
  1975.        higher-level  progress  indication  (i.e.   the  display of what
  1976.        file  LhA  is  bashing).  It  also  disables the short copyright
  1977.        banner that is printed at each invokation otherwise.  
  1978.  
  1979.  
  1980.      
  1981.  
  1982.  
  1983.      V1.50                    LhA User's Guide                  Page 33
  1984.  
  1985.  
  1986.  
  1987.           This option  is  off  by  default  (file  progress indication
  1988.        ON).  
  1989.  
  1990.        2.5.27 `-p' (ALL) Pause after loading   
  1991.  
  1992.           When selected,  this  option will cause LhA to pause and wait
  1993.        for  the  user to press any key before executing a command. This
  1994.        is  useful  for  users  with  floppies,  who can then swap disks
  1995.        after LhA has been loaded and is waiting for a keypress.  
  1996.  
  1997.           This option is OFF by default.  
  1998.  
  1999.        2.5.28 `-P' (ALL) Set task priority   
  2000.  
  2001.           This option  is  used  to  set  the LhA process priority. The
  2002.        priority  may  be  set  to  any  value  in  the  range -5 to +5,
  2003.        including  0.  The  higher  priority  you give LhA, the more CPU
  2004.        time  it  will  grab  (processes with lower priority will almost
  2005.        never    get   the   chance   to   run   since   LhA   is   very
  2006.        processor-intensive).   Setting it to a low value (like -5) will
  2007.        make  LhA  only  use  the  processor time that nobody else wants
  2008.        (nice  when  running  LhA  as  a background task while running a
  2009.        comm program).  
  2010.  
  2011.           The priority  must  be  specified  with  a single (optionally
  2012.        prefixed   with  a  minus  sign  for  negative  priority)  digit
  2013.        immediately after the P as in: 
  2014.  
  2015.         EXAMPLE 
  2016.          `lha  -P-1  a  nonsense.lzh  bogus.txt' will make LhA add the
  2017.          file  `bogus.txt'  to  the archive `nonsense.lzh', running at
  2018.          priority -1.  
  2019.  
  2020.           The default  priority  is  inherited from the calling process
  2021.        (i.e.   the CLI or program that called Execute()/RunCommand() ).
  2022.        This is usually zero (0).  
  2023.  
  2024.        2.5.29 `-q' (ALL) Be quiet    
  2025.  
  2026.           This option will supress ALL messages from LhA.  
  2027.  
  2028.           This option is OFF by default 
  2029.  
  2030.        2.5.30 `-Q' (ALL) Alternate option set   
  2031.  
  2032.           This option  character  (`Q') will cause all following option
  2033.        characters  until  next  space  character  to  be interpreted as
  2034.        extended  options.   These  are  documented  at  the end of this
  2035.        section.  
  2036.  
  2037.        2.5.31 `-r' (add) Collect action files recursively  
  2038.  
  2039.  
  2040.      
  2041.  
  2042.  
  2043.      V1.50                    LhA User's Guide                  Page 34
  2044.  
  2045.  
  2046.  
  2047.           When this  option is used, LhA will recursively collect files
  2048.        from subdirectories.  
  2049.  
  2050.         EXAMPLE 
  2051.          `lha  -r a ram:disk1 df0:' will archive all files on the disk
  2052.          in drive 0 to `ram:disk1.lha'.  
  2053.  
  2054.          `lha  -r  a ram:disk2src df0:*.c' will archive all `.c' files
  2055.          on df0: to `ram:disk2src.lha'.  
  2056.  
  2057.          `lha    -r    a    ram:exthup    hd:prg/src/    lha/*.[chasi]
  2058.          lhi/*.[chasi]'  will  add  all  `.c',  `.h', `.a', `.s', `.i'
  2059.          files  in  `hd:prg/src/lha'  and  `hd:prg/src/lhi'  and their
  2060.          subdirectories.  The `hd:prg/src/' part of the names will not
  2061.          be  stored  in  the archive (home directory `hd:prg/src/' was
  2062.          specified).  
  2063.  
  2064.                                      NOTE
  2065.  
  2066.             Files  that are specified explicitly (i.e. without any
  2067.             pattern  matching)  are looked for only in the current
  2068.             (home)   directory,   while   patterns  are  used  for
  2069.             matching  in  all  subdirectories.  If  a directory is
  2070.             specified   explicitly   without  any  following  file
  2071.             pattern  (like  in  `lha -r a ram:test sys:l') it will
  2072.             be  treated as if a `/*' was appended to the directory
  2073.             name  -  i.e.  all  files  in  the  directory and it's
  2074.             subdirectories will be archived.  
  2075.  
  2076.  
  2077.           This option  is  OFF by default. Note that the `-x' option is
  2078.        automatically  enabled when the -r option is used. If you do not
  2079.        want  to  store  pathnames  simply  specify `-x0' on the command
  2080.        line.  
  2081.  
  2082.        2.5.32 `-R' (ALL) Collect archive files recursively  
  2083.  
  2084.           When this  option  is  enabled  LhA  will  search for archive
  2085.        files  recursively using the archive file specification given at
  2086.        the  command  line.  This  works  like  the  `-r' option but for
  2087.        archive files.  
  2088.  
  2089.         EXAMPLE 
  2090.          `lha  -R  l  dh0:files/a*'  will  list  the  contents  of all
  2091.          archive   files   whose  names  begin  in  `a'  in  directory
  2092.          `dh0:files' and its subdirectories.  
  2093.  
  2094.          `lha  -R  l *' will list the contents of all archive files in
  2095.          the current directory and its subdirectories.  
  2096.  
  2097.          `lha  -R  l  myarc'  will  list  the contents of all archives
  2098.  
  2099.  
  2100.      
  2101.  
  2102.  
  2103.      V1.50                    LhA User's Guide                  Page 35
  2104.  
  2105.  
  2106.          called  'myarc.lzh'  or  `myarc.lha' in the current directory
  2107.          and its subdirectories.  
  2108.  
  2109.           This option is OFF by default.  
  2110.  
  2111.        2.5.33 `-s' (add) Add files with a-flag unset 
  2112.  
  2113.           When this  option  is  active,  LhA will only add files which
  2114.        have  the  A  (for Archived) file protection flag unset. This is
  2115.        useful  for  doing  incremental  backups  together with the `-S'
  2116.        option.  
  2117.  
  2118.           This option  is  OFF by default (add files regardless of file
  2119.        protection flags).  
  2120.  
  2121.        2.5.34 `-S' (add) Set A-flag on archived files 
  2122.  
  2123.           When this  option  is  on,  LhA will set the A (for Archived)
  2124.        file  protection  flag  on  all  files  that  are  added  to  an
  2125.        archive.   This  can  be used to simplify automatic backups when
  2126.        used  together with the -s (Add files without A-flag only).  See
  2127.        previous section for more details.  
  2128.  
  2129.           This option is OFF by default.  
  2130.  
  2131.        2.5.35 `-t' (ext) Only new files   
  2132.  
  2133.           When this  option  is  active,  LhA  will  not  overwrite  or
  2134.        replace any files.  
  2135.  
  2136.                                      NOTE
  2137.  
  2138.             This option overrides the `-T' option.  
  2139.  
  2140.  
  2141.           This option is OFF by default.  
  2142.  
  2143.        2.5.36 `-T' (upx) New and newer files  
  2144.  
  2145.           When this  option  is  active,  LhA will overwrite or replace
  2146.        files  that  already exists and are older than the current file,
  2147.        and create files that does not already exist.  
  2148.  
  2149.                                      NOTE
  2150.  
  2151.             This option overrides the `-t' option.  
  2152.  
  2153.  
  2154.           This option is OFF by default.  
  2155.  
  2156.        2.5.37 `-u' (ALL) Make filenames uppercase   
  2157.  
  2158.  
  2159.  
  2160.      
  2161.  
  2162.  
  2163.      V1.50                    LhA User's Guide                  Page 36
  2164.  
  2165.  
  2166.           This option,  when  active,  will  force  LhA  to convert all
  2167.        filenames   to  uppercase.   This  can  be  useful  when  making
  2168.        archives  that  are supposed to be used on MSDOS-Systems running
  2169.        LhArc/LHA.   While  these have no problems with extracting files
  2170.        with  mixed-case  filenames,  the pattern matching routines will
  2171.        not work correctly.  
  2172.  
  2173.           This option is OFF by default.  
  2174.  
  2175.        2.5.38 `-U' (upx) Set update interval   
  2176.  
  2177.           This option  is  used to set the interval (in bytes) at which
  2178.        LhA  updates  the  byte progress indicator. The desired interval
  2179.        must  be expressed in kilobytes, and must immediately follow the
  2180.        `U' character.  
  2181.  
  2182.         EXAMPLE 
  2183.          `LhA  -U4096  a  bar.lzh  *.c' will add all c-source files in
  2184.          the  current directory to `bar.lzh' with a progress indicator
  2185.          interval of 4096 (4K) bytes.  
  2186.  
  2187.          `LhA  -U32768  a bar.lzh *.c' will do the same as the example
  2188.          above, but with a update interval of 32768 bytes (32K).  
  2189.  
  2190.                                      NOTE
  2191.  
  2192.             This  option does currently not affect the update rate
  2193.             of  the  LHA decompression (`-lh5-' compression mode).
  2194.             When  LhA  decompresses  files  with  this compression
  2195.             mode,  the  update  rate  will  be whatever I/O buffer
  2196.             size  is  used  (set with the `-b' option). The reason
  2197.             of   this   behaviour  is  that  the  normal  progress
  2198.             indication would slow down decompression.  
  2199.  
  2200.  
  2201.           The default  update interval is 8192 (8K) bytes for -lh1- and
  2202.        -lh5-  compression  and 4096 (4K) bytes for -lh1- decompression.
  2203.        The  update  rate  for  -lh5- decompression is determined by the
  2204.        I/O buffer size setting (see note above).  
  2205.  
  2206.        2.5.39 `-v' (add) Set compression speed   
  2207.  
  2208.           This option   can   be  used  to  increase  or  decrease  the
  2209.        compression  speed.  -v0 is the slowest, and -v9 is the fastest.
  2210.        As  usual  you  can't  get  anything  for  free,  so compression
  2211.        performance  is  slightly  looser with -v9 than with -v0 but the
  2212.        difference  in  speed  can  be significant (especially with some
  2213.        binary  graphics  data). Higher compression speed is attained by
  2214.        using less statistics in the compression phase.  
  2215.  
  2216.           The default  compression  speed  is  5  -  best in 99% of all
  2217.        cases.  
  2218.  
  2219.  
  2220.      
  2221.  
  2222.  
  2223.      V1.50                    LhA User's Guide                  Page 37
  2224.  
  2225.  
  2226.        2.5.40 `-V' (all) Enable multi-volume archives.   
  2227.  
  2228.           This option  enables  the  multi-volume  feature of LhA. Note
  2229.        that  in  the  evaluation  version  you  cannot create or update
  2230.        multivolume   archives,  only  extract  from  and  list.  Please
  2231.        consult   the  section  about  multi-volume  archives  for  more
  2232.        information.  Also  read  the  section  about  the `-Qv' option.
  2233.        Further  options  must be separated from the `V' by at least one
  2234.        whitespace  character.  In  the  registered version, the desired
  2235.        volume  size  in KB should be specified after the `V' character.
  2236.        If  you  want  LhA  to  automatically detect what volume size it
  2237.        should use, use `-Va' (for `use all available space').  
  2238.  
  2239.         EXAMPLE 
  2240.          `LhA  -Va  a  df0:MyArc  *.c'  would archive all files in the
  2241.          current  directory  with  names ending in `.c' to DF0: if the
  2242.          disk  should get full before the archive is finished LhA will
  2243.          prompt for a new disk to be inserted.  
  2244.  
  2245.           This option is OFF by default.  
  2246.  
  2247.        2.5.41 `-w' (upd) Set work directory   
  2248.  
  2249.           This option  is used to specify what directory LhA should use
  2250.        to  store  temporary  files.  Temporary  files  are created when
  2251.        adding  files  to  archives, or when updating an archive in some
  2252.        way  (like  deleting  or  freshening  files). The work directory
  2253.        name must be specified immediately after the `-w' string.  
  2254.  
  2255.         EXAMPLE 
  2256.          `LhA   -wrad:tmp  a  MyArc.lzh  *'  will  use  the  directory
  2257.          `rad:tmp'  as  temporary  storage  location  when  adding all
  2258.          files in the current directory to the archive `MyArc.lzh'.  
  2259.  
  2260.           By default  LhA  uses the `T:' directory for temporary files,
  2261.        if  this  assign  or  device  does  not  exist, LhA will use the
  2262.        current directory.  
  2263.  
  2264.        2.5.42 `-W' (add) Exclude filenames    
  2265.  
  2266.           This option is not available in the current version.  
  2267.  
  2268.        2.5.43 `-x' (all) Preserve and use pathnames  
  2269.  
  2270.           As of  LhA  V1.30,  this option comes in three flavors, which
  2271.        mode  LhA  will  use  depends on the digit (if any) that follows
  2272.        the `x'.  
  2273.  
  2274.           `-x1' or  `-x': When this option is enabled, LhA will use and
  2275.        preserve  pathnames  when  extracting  and archiving files. When
  2276.        extracting,  LhA  will  create  the  directories  that  does not
  2277.        already  exist.  Use  this option when you want to preserve some
  2278.  
  2279.  
  2280.      
  2281.  
  2282.  
  2283.      V1.50                    LhA User's Guide                  Page 38
  2284.  
  2285.  
  2286.        directory  structure.  This option is automatically enabled when
  2287.        the `-r' option is used.  
  2288.  
  2289.           `-x2': In  this  mode,  which is only useful with the extract
  2290.        commands,  LhA  will  use  the  full  paths  of the files in the
  2291.        archive  when  selecting  files  to  extract, but disregard them
  2292.        when  extracting.  Useful  when  several  files  with  the  same
  2293.        filename (but different paths) exists in the archive.  
  2294.  
  2295.           `-x3': This  mode  is  the  opposite of `-x2'. LhA disregards
  2296.        paths  when  selecting  files  to  extract,  but  uses them when
  2297.        extracting.  Useful  when  you're too lazy to remember the exact
  2298.        name including path.  
  2299.  
  2300.         EXAMPLE 
  2301.  
  2302.          `LhA  -x2  e  dl:rexx.lzh examples/Main.c ram:' would extract
  2303.          the    file    `examples/Main.c'    from   the   archive   to
  2304.          `ram:Main.c'.  
  2305.  
  2306.          `LhA  -x3 e dl:src.lzh #?Main#? ram:' would extract all files
  2307.          with  names  containing  `Main'.  Notice  that  this  is  not
  2308.          equivalent  to the `LhA x dl:src.lzh #?Main#? ram:' since the
  2309.          latter  would  extract  files  like  `dir/Maindir/file1.h' as
  2310.          well.  
  2311.  
  2312.  
  2313.           This option   is  disabled  (`-x0')  by  default  for  update
  2314.        operations   and   enabled   (`-x1')   by  default  for  extract
  2315.        operations.  
  2316.  
  2317.        2.5.44 `-X' (ALL) Do not append suffix  
  2318.  
  2319.           When this  option  is  enabled, LhA will not append an `.lzh'
  2320.        or  `.lha'  suffix  to  the  given  archive  name.   The default
  2321.        behaviour  is  to append a suffix of `.lha' or `.lzh' (suffix is
  2322.        chosen  depending  on  compression  mode)  if  the name does not
  2323.        already have an extension.  
  2324.  
  2325.           This option is OFF by default (suffixes are appended).  
  2326.  
  2327.        2.5.45 `-y' (all) Always append suffix   
  2328.  
  2329.           When this  option is enabled, LhA will always append a `.lzh'
  2330.        or  `.lha'  suffix  to  the  archive name, even when the archive
  2331.        name already contains a suffix.  
  2332.  
  2333.           This option  is  OFF by default (a suffix is appended only if
  2334.        there is no suffix in the archive name already).  
  2335.  
  2336.        2.5.46 `-Y' (add) Store big files with ratio 
  2337.  
  2338.  
  2339.  
  2340.      
  2341.  
  2342.  
  2343.      V1.50                    LhA User's Guide                  Page 39
  2344.  
  2345.  
  2346.           When this  option  is  enabled,  LhA  will  store  big  files
  2347.        (>32KB)  without  compression if compression ratio is lower than
  2348.        3%.  This is because extraction times of these files are long on
  2349.        slower machines.  
  2350.  
  2351.           This option is OFF by default (all files are compressed).  
  2352.  
  2353.        2.5.47 `-z' (add) Do not compress files  
  2354.  
  2355.           This option,  when  active,  will  force  LhA  to  store  all
  2356.        updated  or  added  files  in  the archive without attempting to
  2357.        compress  them.   Useful  for  making fast backups where archive
  2358.        size  is  of  no  importance.   It  is not advisable to use this
  2359.        option  when  making  archives  for  distribution  via  modem or
  2360.        networks  since  the  archive will end up much larger than if it
  2361.        was compressed.  
  2362.  
  2363.         EXAMPLE 
  2364.          `lha  -z a foo.lha *.bmp' Will store all files in the current
  2365.          directory  with  a  suffix  of  `.bmp'  in  the  archive file
  2366.          `foo.lha' without compressing them.  
  2367.  
  2368.           This option is OFF by default.  
  2369.  
  2370.        2.5.48 `-Z' (add) Compress archives    
  2371.  
  2372.           This option  will  cause  LhA  to attempt compressing already
  2373.        compressed files.  
  2374.  
  2375.           By default,  LhA will not attempt to compress files which are
  2376.        already  compressed (typically archive files or picture files in
  2377.        GIF  or  JPEG  format).  The  file  type  is determined from the
  2378.        suffix,  and  files with names ending in `.lzh', `.lha', `.zoo',
  2379.        `.zip',  `arj',  `.arc', `.dms', `.wrp', `.lhw', `.zap', `.pak',
  2380.        `.pp', `.gif', or `.jpg'.  
  2381.  
  2382.           The reason   why  already  compressed  files  should  not  be
  2383.        compressed  is  that  the  number  of bytes gained by this is so
  2384.        small    that    it    is    not    worth    the    time   spent
  2385.        compressing/decompressing it.  
  2386.  
  2387.           This option is OFF by default.  
  2388.  
  2389.        2.5.49 `-0' (add) Use LhArc 1.x compression  
  2390.  
  2391.           This option  causes  LhA  to  use  the  old -lh1- compression
  2392.        method  when  updating  archives.  This  compression  method  is
  2393.        slightly  faster  than  the  normal  -lh5-  compression  but has
  2394.        looser compression and is much slower to decompress.  
  2395.  
  2396.           When this   compression   mode   is  used,  LhA  defaults  to
  2397.        appending a suffix of `.lzh' when creating archives.  
  2398.  
  2399.  
  2400.      
  2401.  
  2402.  
  2403.      V1.50                    LhA User's Guide                  Page 40
  2404.  
  2405.  
  2406.  
  2407.           When this  option  is specified, option `-2' is automatically
  2408.        deactivated.  
  2409.  
  2410.           By default the -lh5- compression is used.  
  2411.  
  2412.        2.5.50 `-1' (add) Use LhA compression (-lh4-)  
  2413.  
  2414.           This option  causes  LhA  to  use  the  new -lh4- compression
  2415.        method  when  updating  archives.  This  compression  method  is
  2416.        slightly  faster  than  the  -lh5-  compression  but  has looser
  2417.        compression and is generally slightly slower to decompress.  
  2418.  
  2419.           When this   compression   mode   is  used,  LhA  defaults  to
  2420.        appending a suffix of `.lha' when creating archives.  
  2421.  
  2422.        2.5.51 `-2' (add) Use LhA compression (-lh5-)  
  2423.  
  2424.           This option  causes  LhA  to  use  the  new -lh5- compression
  2425.        method  when  updating  archives.  This  compression  method  is
  2426.        slightly  slower  than the old -lh1- compression but has tighter
  2427.        compression and is much faster to decompress.  
  2428.  
  2429.           When this   compression   mode   is  used,  LhA  defaults  to
  2430.        appending a suffix of `.lha' when creating archives.  
  2431.  
  2432.           When this  option  is specified, option `-0' is automatically
  2433.        deactivated.  
  2434.  
  2435.           This is the default compression mode.  
  2436.  
  2437.        2.5.52 `-Qa' (all) Use simple console I/O  
  2438.  
  2439.           When this  option is enabled LhA will not try to do any fancy
  2440.        stuff  like examining the size of the console window, or turning
  2441.        off  or  repositioning  the  cursor.  Enabling  this option also
  2442.        disables  the  byte  progress  indicator (like with `-n'), since
  2443.        this requires cursor repositioning.  
  2444.  
  2445.           This option is OFF by default.  
  2446.  
  2447.        2.5.53 `-Qb' (ext) Test archive before extract  
  2448.  
  2449.           When this  switch  is  enabled  LhA  will  test  an archive's
  2450.        integrity  before extracting. If the archive fails the integrity
  2451.        check,  the  archive  is  not  extracted  from at all. Useful in
  2452.        certain FIDO BBS setups.  
  2453.  
  2454.           This option is OFF by default.  
  2455.  
  2456.        2.5.54 `-Qd' (ext) Delete autoshow files   
  2457.  
  2458.  
  2459.  
  2460.      
  2461.  
  2462.  
  2463.      V1.50                    LhA User's Guide                  Page 41
  2464.  
  2465.  
  2466.           When this  option  is  enabled LhA will delete autoshow files
  2467.        after displaying them.  
  2468.  
  2469.           This option is OFF by default.  
  2470.  
  2471.        2.5.55 `-Qh' (add) Set Huffman buffer size  
  2472.  
  2473.           This option  can  be  used to set the size of the buffer used
  2474.        in  LHA  compression  (default or selected with the `-2' or `-1'
  2475.        options)  for  collecting  statistics.  The  size of this buffer
  2476.        affects  the compression ratio in unpredictable ways (you cannot
  2477.        tell  with  certainty  whether  a large buffer will be better or
  2478.        worse).  As a general rule, keep this at the default, but if you
  2479.        are   compressing   homogenous  data  with  a  relatively  fixed
  2480.        relative  frequency  of  symbols (like text files), setting this
  2481.        to  a  large value will improve compression.  Binaries generally
  2482.        compress best with the default setting.  
  2483.  
  2484.           The Huffman  buffer may be of any size between 4K and 64K and
  2485.        must  be  specified  immediately  following the `-Qh' string, in
  2486.        kilobytes.  
  2487.  
  2488.         EXAMPLE 
  2489.  
  2490.          `LhA  -Qh32  -2  a  foo.lha *' will compress all files in the
  2491.          current  directory using a Huffman buffer size of 32768 (32K)
  2492.          bytes.  
  2493.  
  2494.          `LhA  -Qh4  -2  a  foo.lha  *' will compress all files in the
  2495.          current  directory  using  a Huffman buffer size of 4096 (4K)
  2496.          bytes.  
  2497.  
  2498.           The default Huffman buffer size is 16K.  
  2499.  
  2500.        2.5.56 `-Qn' (all) Set national character mode  
  2501.  
  2502.           When this  option  is  enabled,  LhA  will  correctly convert
  2503.        national  characters to upper/lowercase. By default LhA does not
  2504.        convert  any  characters  with  the MSB set due to the fact that
  2505.        older  (pre-2.1)  filesystems does not correctly handle national
  2506.        characters  when  computing  hash  values. This switch should be
  2507.        used when national filesystems are used (NOFS/NFFS).  
  2508.  
  2509.           This option is OFF by default.  
  2510.  
  2511.        2.5.57 `-Qo' (all) Ignore options after command  
  2512.  
  2513.           When this  option  is enabled LhA will not search the command
  2514.        line  for options beyond the archive name. This option is useful
  2515.        if you need to specify files with names beginning in `-'.  
  2516.  
  2517.           This option is OFF by default.  
  2518.  
  2519.  
  2520.      
  2521.  
  2522.  
  2523.      V1.50                    LhA User's Guide                  Page 42
  2524.  
  2525.  
  2526.        2.5.58 `-Qp' (move) Ignore delete protection flag  
  2527.  
  2528.           When you  enable  this  option LhA will delete files with the
  2529.        delete protection flag set when using the `m' (move) command.  
  2530.  
  2531.           This option  is  OFF  by  default (delete protected files are
  2532.        not deleted).  
  2533.  
  2534.        2.5.59 `-Qq' (add) Quick add    
  2535.  
  2536.           When this  option  is  enabled, LhA will not scan through the
  2537.        archive  looking  for  duplicate  files  before  adding  to  the
  2538.        archive.  This can be useful when adding one file at a time to a
  2539.        large  archive,  knowing  the archive does not contain a file by
  2540.        the same name (as is the case in some FIDO BBS setups).  
  2541.  
  2542.           This option is OFF by default.  
  2543.  
  2544.        2.5.60 `-Qr' (add) Skip datestamp check   
  2545.  
  2546.           This option,  when  on, disables the datestamp comparison for
  2547.        the  update  (`u') and freshen (`f') commands, so that the files
  2548.        that  already  exist  in the archive will be replaced regardless
  2549.        of file modification dates.  
  2550.  
  2551.           This option is OFF by default for all commands but `r'.  
  2552.  
  2553.        2.5.61 `-Qv' (all) Set multivolume arc devices  
  2554.  
  2555.           With this  option  you  can make LhA use several devices when
  2556.        creating  multivolume  archives.  LhA  will  use the devices you
  2557.        specify  in  sequence  and wrap around to the beginning when the
  2558.        last  device  has  been  used.  The  devices should be specified
  2559.        WITHOUT  a  colon  directly after the `-Qv' string, separated by
  2560.        commas  (`,').  When using this option you still have to specify
  2561.        the first device to use in the archive name.  
  2562.  
  2563.         EXAMPLE 
  2564.  
  2565.          `LhA  -Va  -Qvdf0,df2,df3  -r a df0:Bak hd:#?' would create a
  2566.          multivolume  archive  starting  on  df0:  and  then use df2:,
  2567.          df3:,  df0:,  df2:  and  so  on. Notice that we still have to
  2568.          specify `df0:' in the archive name specification.  
  2569.  
  2570.  
  2571.  
  2572.        2.5.62 `-Qw' (all) Disable wildcards    
  2573.  
  2574.           When you  specify  this  option  LhA will not do any wildcard
  2575.        matching.  This  is useful for adding files with (illegal) names
  2576.        containing wildcard characters (`()#?~%|*').  
  2577.  
  2578.  
  2579.  
  2580.      
  2581.  
  2582.  
  2583.      V1.50                    LhA User's Guide                  Page 43
  2584.  
  2585.  
  2586.           This option is OFF by default.  
  2587.  
  2588.        2.6 Autoshow files      
  2589.  
  2590.           Autoshow files  are files that are displayed automatically to
  2591.        the   user  when  extracting  the  file  from  an  archive.  LhA
  2592.        determines  if  a  file  should  be  displayed by looking at the
  2593.        filename;  if the filename ends in `.displayme' then the file is
  2594.        displayed  unless  autoshow  files  have been disabled (with the
  2595.        `-M'  option).  Apart  from  being displayed on-screen, autoshow
  2596.        files  are  extracted  just like normal files, without stripping
  2597.        off the `.displayme' part (AmigaDOS LhArc 1.30 does this).  
  2598.  
  2599.        2.7 Residentability       
  2600.  
  2601.           LhA is  multitasking  reentrant  and pure, and it can be made
  2602.        resident  with the standard shell resident commands - `resident'
  2603.        under  AmigaShell  1.3  and 2.0, and `resi' under WShell. If you
  2604.        use  another  shell, please refer to the shell's user manual for
  2605.        information about how to make programs resident.  
  2606.  
  2607.        2.8 Multi-volume archives      
  2608.  
  2609.           Multi-volume archives  are  created  simply  by  splitting  a
  2610.        larger  archive  into smaller files. The evaluation version does
  2611.        not  do  this  automatically  on  the  fly  (but  the registered
  2612.        version  does),  so  you  will need to do it manually unless you
  2613.        register.  
  2614.  
  2615.           The source  for  two  utilities  used  to  create multivolume
  2616.        archives  are  included in the distribution archive. If you have
  2617.        access  to a C compiler you can compile the (hopefully) portable
  2618.        `splitlzh'  and  `joinlzh' programs simply by entering `make' in
  2619.        the  `unixutil'  directory.  These  two programs are useful when
  2620.        transferring big archives to and from **IX systems.  
  2621.  
  2622.        2.8.1 Multivolume file names     
  2623.  
  2624.           The first  file  of a multivolume archive is named `name.lha'
  2625.        or  `name.lzh'.   The  following  volumes  are named `name.l01',
  2626.        `name.l02'  and  so  on.  This naming convention has been chosen
  2627.        because  certain  brain-damaged  filesystems  don't  allow  long
  2628.        filenames  (MSDOS).  Multivolume archives spanning more than 100
  2629.        volumes are not currently supported.  
  2630.  
  2631.        2.8.2 Making backups with multivolume archives   
  2632.  
  2633.           The multivolume  capability  of  LhA  can  be  used  to  make
  2634.        efficient  harddisk  backups.  In order to do this you will need
  2635.        some  formatted  floppy  disks  (or  equivalent)  - LhA does not
  2636.        currently  format disks while writing. An example backup command
  2637.        would be: 
  2638.  
  2639.  
  2640.      
  2641.  
  2642.  
  2643.      V1.50                    LhA User's Guide                  Page 44
  2644.  
  2645.  
  2646.  
  2647.         LhA -r -v9 -Qh64 -Va -Qvdf0,df2,df3 a df0:Backup920712 lha:#?
  2648.  
  2649.           This would  archive  all files in the `LhA:' directory/device
  2650.        to  disks  starting  with  drive  DF0:, then DF2: and then after
  2651.        using  DF3:  LhA  would  repeat  the  cycle  until the backup is
  2652.        finished.  
  2653.  
  2654.           LhA is  somewhat slower than using a dedicated backup program
  2655.        since  it has to go through the filing system instead of writing
  2656.        directly  to  the disks. However, LhA offers greater compression
  2657.        than  any existing backup program. LhA V2.00 will allow the user
  2658.        to  write  directly  to disk (by bypassing the filesystem), thus
  2659.        speeding up backups considerably.  
  2660.  
  2661.        2.8.2.1 Incremental backups      
  2662.  
  2663.           Incremental backups  are  backups where you only backup files
  2664.        that  has been changed since the last backup. In LhA this can be
  2665.        accomplished like this: 
  2666.  
  2667.          LhA -V -s -S -Qvdf0,df1 -r a df0:Backup920912 Work:#?
  2668.  
  2669.           This would  archive  all  files on `Work:' that does not have
  2670.        its  `a' (archived) bit set (the -s option). After adding a file
  2671.        LhA  will  set  that  file's `a' bit (the -S option). Whenever a
  2672.        file  is  written  to, AmigaDOS automatically clears this bit so
  2673.        it will be included in the next incremental backup.  
  2674.  
  2675.        2.8.3 Extracting from multivolume archives    
  2676.  
  2677.           When extracting  files  from  multivolume  archives, LhA must
  2678.        scan  the  entire  archive from first to last volume. An example
  2679.        command would be: 
  2680.  
  2681.           LhA -V -Qvdf0,df1 x df0:MltArc #?.c
  2682.  
  2683.           This would   extract   all   `.c'   files   (#?.c)  from  the
  2684.        multivolume   archive  (-V)  `MltArc.lha',  alternating  between
  2685.        drive df0: and df1: (-Qvdf0,df1).  
  2686.  
  2687.        2.8.3.1 Restoring incremental backups     
  2688.  
  2689.           Incremental backups  should  be  restored  starting  with the
  2690.        latest  backup  (i.e.  the  newest  archives  should be restored
  2691.        first). An example would be: 
  2692.  
  2693.         LhA -V -T -Qvdf0,df1 x df0:Backup920909 work:
  2694.         LhA -V -T -Qvdf0,df1 x df0:Backup920902 work:
  2695.         LhA -V -T -Qvdf0,df1 x df0:Backup920821 work:
  2696.  
  2697.           The `-T'  option  must  be  specified  so LhA will not try to
  2698.  
  2699.  
  2700.      
  2701.  
  2702.  
  2703.      V1.50                    LhA User's Guide                  Page 45
  2704.  
  2705.  
  2706.        overwrite  any  file  that  is newer than the one present in the
  2707.        archive   (that   has   already  been  extracted  from  a  newer
  2708.        archive).  
  2709.  
  2710.        2.8.4 Listing multivolume archive contents    
  2711.  
  2712.           Multivolume archives are listed like this: 
  2713.  
  2714.          LhA -V v df0:MyArc
  2715.  
  2716.           This will  list all files in the multivolume archive starting
  2717.        with  file  `MyArc.lha'. At the end of every volume LhA will ask
  2718.        for  a  new  volume  until  the  end  of the archive is reached.
  2719.        Listing  of  individual  volumes is not supported in the current
  2720.        implementation.  
  2721.  
  2722.        2.8.5 Updating multivolume archives     
  2723.  
  2724.           In the  current version it is not possible to delete, freshen
  2725.        or  update files in a multivolume archive. This will be possible
  2726.        in V2.00.  
  2727.  
  2728.        2.8.6 Future multivolume archives     
  2729.  
  2730.           Future multivolume  archives  will be somewhat different from
  2731.        the  current  implementation.  The  user  will  be able to start
  2732.        operations  on  any  volume  (for example list the contents of a
  2733.        volume),  and every volume will be a proper LhA archive. The new
  2734.        format  will  also  allow  the  user to replace and update files
  2735.        already present in the archive.  
  2736.  
  2737.        2.8.7 Interrupting multivolume archiving     
  2738.  
  2739.           Don't interrupt multivolume archiving.  
  2740.  
  2741.           Currently, interrupting  an  archiving  operation  will cause
  2742.        the  archive  to  become slightly messed up. All data will be OK
  2743.        but  you  will not be able to add any files to the archive since
  2744.        LhA  will prompt you for a non-existent volume at the end of the
  2745.        archive. This is inavoidable with the current implementation.  
  2746.  
  2747.        2.9 A bit about headers    
  2748.  
  2749.           A `header'  has  to  be written to the archive for every file
  2750.        in  order  for  the  archiver to know what the files are called,
  2751.        how  they  were  compressed  etc.  The original LhArc had a very
  2752.        primitive  header  layout  and  had  no  good way of storing any
  2753.        machine-specific  info like filenotes (I created a workaround in
  2754.        LhArcA  0.99,  by  putting  the filenote in the filename field -
  2755.        LhArc  and  LZ  later  adopted this method). In **IX LhArc V1.02
  2756.        the  authors  introduced  a  new type of header (level 1 header)
  2757.        that  allowed  slightly  more  info to be stored, but the header
  2758.  
  2759.  
  2760.      
  2761.  
  2762.  
  2763.      V1.50                    LhA User's Guide                  Page 46
  2764.  
  2765.  
  2766.        length  was still limited to 255 bytes. In LHA 2.13 for MS-DOS a
  2767.        new  header  type  was  introduced  - level 2 headers. With this
  2768.        latest  header  type  an  arbitrary amount of information can be
  2769.        stored.  LhA  can both read and write all these header types. To
  2770.        select  what  type of headers to write, use the `-H' option. LHA
  2771.        for  MSDOS  and LHa for **IX creates level-1 headers by default.
  2772.        LhA  uses  level  0 headers by default for compatibility reasons
  2773.        (LZ  and  LhArc  does  not  handle  level  1 and level 2 headers
  2774.        correctly).  If  you  want to know what header levels an archive
  2775.        contains, use the `vv' command.  
  2776.  
  2777.        2.10 Some tips for archiving efficiently   
  2778.  
  2779.           If you  are  going to archive a big bunch of similar or small
  2780.        files  -  text  files  for example - you can improve compression
  2781.        performance   greatly  by  first  creating  an  archive  WITHOUT
  2782.        compression  (using  the `-z' option), and then add this file to
  2783.        archive  (with  compression).  As  an  example  I  added  a  big
  2784.        directory  with  various  sources  and some binaries (total 2480
  2785.        files, 5102117 bytes).  this way with: 
  2786.  
  2787.        LhA -z -r a hd:test msrc: 
  2788.  
  2789.        and then compressed it with 
  2790.  
  2791.        LhA -Z -Qh64 a hd:msrc hd:test.lha 
  2792.  
  2793.        The  final  `hd:msrc.lha'  archive ended up being 1545076 bytes.
  2794.        When  compressed  the  normal  way  (`LhA  -r  -Qh64  a  hd:msrc
  2795.        msrc:'),   the   archive   was   2114777  bytes  long.  Quite  a
  2796.        difference..  
  2797.  
  2798.        2.11 Using as little memory as possible  
  2799.  
  2800.           When using  the default settings, LhA requires about 300KB to
  2801.        archive,  and  180KB  to  extract  files.  To  reduce  this to a
  2802.        minimum  you  can  reduce  the  I/O buffer size to 8K. This will
  2803.        save  you  about  48K  when  archiving  and  at  least  24K when
  2804.        extracting.  You can reduce the archiving memory usage even more
  2805.        by  reducing  the  Huffman  buffer  size  to  4K,  but it is not
  2806.        recommended    since    compression    performance   will   drop
  2807.        significantly.  Please  note  that  the above figures for memory
  2808.        usage includes stack and program code.  
  2809.  
  2810.        2.12 Creating fully MS-DOS compatible archives   
  2811.  
  2812.           In order  to satisfy MSDOS archivers, you may have to disable
  2813.        a  few  Amiga-specific  features.  Filenotes  are  not supported
  2814.        under  MSDOS  and thus the filenote archiving should be disabled
  2815.        with  the  `-f'  option.   Furthermore  you  should disable file
  2816.        attribute  preservation with the `-a' option. Autoshow files are
  2817.        not  supported  by MSDOS LHA V2.13. If you use header level 1 or
  2818.  
  2819.  
  2820.      
  2821.  
  2822.  
  2823.      V1.50                    LhA User's Guide                  Page 47
  2824.  
  2825.  
  2826.        2  you  don't  have  to worry about disabling the file attribute
  2827.        preservation.  LHA V2.13 for MSDOS and LHa 0.04 for **IX creates
  2828.        level 1 headers by default.  
  2829.  
  2830.           To summarize,  use  the  following options to create archives
  2831.        for use with MSDOS LHA: 
  2832.  
  2833.           `-UH0a0f' 
  2834.  
  2835.           In order  to  create archives that are extractible with LhArc
  2836.        the following options should be used when creating archives: 
  2837.  
  2838.           `-H0 -0' 
  2839.  
  2840.           and for MS-DOS LHarc: 
  2841.  
  2842.           `-UH0a0f -0' 
  2843.  
  2844.        2.13 Recovering data from corrupt archives   
  2845.  
  2846.           It is  never possible to recover all lost data from a corrupt
  2847.        archive,  but you can retrieve as much data as possible by using
  2848.        the  `-k'  option  and a small I/O buffer (8K). An example would
  2849.        be: 
  2850.  
  2851.  
  2852.           LhA -k -b8 x dl:Corrupt ram: 
  2853.  
  2854.  
  2855.           This would  extract  as  much  as  possible  from the corrupt
  2856.        archive to `ram:'.  
  2857.  
  2858.        5 Acknowledgements       
  2859.  
  2860.        Haruyasu Yoshizaki  For releasing the source of the original LHA
  2861.                             for  MSDOS.   The  source  was  used  as  a
  2862.                             reference  when  writing  this  program. No
  2863.                             actual  code  was  copied from this source,
  2864.                             rather  LhA  was  written  from scratch for
  2865.                             the Amiga.  
  2866.  
  2867.        Haruhiko Okumura  For  devising  the -lh5- and -lh4- compression
  2868.                             algorithms,  and for releasing the C source
  2869.                             for  these  to  the  public  domain.  These
  2870.                             sources  were  used  as  a  reference  when
  2871.                             writing  the  680x0  assembler  versions of
  2872.                             the   compression  code.   Some  algorithms
  2873.                             were  replaced with my own, faster ones but
  2874.                             the ideas are the same.  
  2875.  
  2876.        Robert K.Jung  For making the feature-packed ARJ for MSDOS, from
  2877.                             which   several   ideas  for  commands  and
  2878.  
  2879.  
  2880.      
  2881.  
  2882.  
  2883.      V1.50                    LhA User's Guide                  Page 48
  2884.  
  2885.  
  2886.                             features for LhA were taken.  
  2887.  
  2888.        Paolo Zibetti  For making the first LhArc-style archiver for the
  2889.                             Amiga,  which  made  me  interested in file
  2890.                             archivers    and    more    advanced   data
  2891.                             compression techniques.  
  2892.  
  2893.        Roger Nordin Beta tester extraordinaire 
  2894.  
  2895.        Ron Birk  For  digging  out  the  source codes I needed before I
  2896.                             gained access to InterNet myself - Thanks! 
  2897.  
  2898.        Martin Olsson  For  supplying  me with the source for LhA V2.11,
  2899.                             which  was  used  as  a reference. (I wrote
  2900.                             the   -lh5-  decompression  with  only  the
  2901.                             80x86 source available.. hard work!) 
  2902.  
  2903.        LhArcA users  Big thanks to all of you who registered for LhArcA
  2904.                             and  LhA  even  before  the  programs  were
  2905.                             finished  (LhArcA  never was, but those who
  2906.                             registered  will  receive LhI/LhA when it's
  2907.                             finished).  
  2908.  
  2909.        LhA users  Big  thanks  to  all  who registered so far, and even
  2910.                             bigger  thanks  to  those who reported bugs
  2911.                             and  problems  with the previous releases -
  2912.                             without  you  this  program  would never be
  2913.                             what it is now.  
  2914.  
  2915.  
  2916.           The license  agreement  was  heavily inspired by the TrapDoor
  2917.        license,  which in turn was inspired by Jack Radigan and the GNU
  2918.        General public License.  
  2919.  
  2920.           The manual  was  formatted with a modified version of `proff'
  2921.        (originally  written  for  VAX/VMS/MSDOS  by  Ozan S.  Yigit and
  2922.        Steven Tress).  
  2923.  
  2924.           The program  was  developed  using the Lattice C Compiler and
  2925.        Assembler   on   a  25MHz  Amiga  3000.  Great  compiler,  great
  2926.        computer!  Furthermore  RCS  and  MKID were used to simplify the
  2927.        maintenance and development process greatly.  
  2928.  
  2929.           Inspiration provided  (in  order  of  significance)  by Emma,
  2930.        Depeche  Mode,  Recoil, Pet Shop Boys, Erasure, OMD, Electronic,
  2931.        The   KLF/JAMS,   Yazoo,  Tears  for  Fears,  Simple  Minds  and
  2932.        Kraftwerk!! 
  2933.  
  2934.  
  2935.                 "Infinities of dreams imploding into one ..."
  2936.  
  2937.  
  2938.  
  2939.  
  2940.      
  2941.  
  2942.  
  2943.      
  2944.  
  2945.  
  2946.                               Table Of Contents
  2947.  
  2948.                                   LhA V1.50
  2949.  
  2950.        1 - Introduction     .....................................    1
  2951.           1.1 About the manual    ...............................    1
  2952.           1.2 System requirements     ...........................    1
  2953.           1.4 Terminology      ..................................    1
  2954.           1.5 LhA - what is it?  ................................    2
  2955.           1.6 What is a file archiver anyway? ...................    2
  2956.           1.8 Compatibility and Amiga-specific features   .......    4
  2957.           1.9 About the author program history and future........    4
  2958.        2 Reference guide     ....................................    5
  2959.           2.1 Command line syntax    ............................    5
  2960.              2.1.1 Specifying options     .......................    5
  2961.              2.1.2 Specifying commands     ......................    5
  2962.              2.1.3 Specifying archives     ......................    5
  2963.              2.1.4 Specifying action files    ...................    6
  2964.              2.1.5 Home directories     .........................    6
  2965.              2.1.6 Recursive file collection    .................    7
  2966.              2.1.7 Specifying destination directory    ..........    9
  2967.              2.1.8 `@'-files      ...............................    9
  2968.              2.1.9 LhA limitations     ..........................    9
  2969.           2.2 Environment variables     .........................   10
  2970.           2.3 Pattern matching     ..............................   11
  2971.              2.3.0 Exactly what is pattern matching anyway? .....   11
  2972.              2.3.1 Accepted pattern tokens    ...................   11
  2973.                 2.3.1.1 Question mark (?)    ....................   11
  2974.                 2.3.1.2 Star/Asterisk (*)     ...................   12
  2975.                 2.3.1.3 Hash mark (#)    ........................   12
  2976.                 2.3.1.4 Square brackets ([])    .................   12
  2977.                 2.3.1.5 Parentheses and the vertical bar  .......   13
  2978.                 2.3.1.6 Tilde (~)     ...........................   14
  2979.                 2.3.1.7 Percent sign (%)    .....................   14
  2980.              2.3.2 KS1.3 ARP and KS2.x pattern matching .........   15
  2981.              2.3.3 National characters     ......................   15
  2982.           2.4 Commands      .....................................   16
  2983.              2.4.1 `a' Add files to archive  ....................   16
  2984.              2.4.2 `c' Concatenate/Append archives    ...........   16
  2985.              2.4.3 `d' Delete files from archive  ...............   17
  2986.              2.4.4 `e' Extract files from archive  ..............   17
  2987.              2.4.5 `f' Freshen files in archive  ................   18
  2988.              2.4.7 `h' Hunt for diffs arc <-> filesys............   18
  2989.              2.4.8 `l' List archive contents (terse)  ...........   19
  2990.                 2.4.8.1 `lq' List archive (terse-quick)   .......   20
  2991.              2.4.9 `m' Move files to archive  ...................   20
  2992.              2.4.14 `p' Print files to stdout  ..................   20
  2993.              2.4.15 `r' Replace files    ........................   20
  2994.              2.4.17 `t' Test archive integrity   ................   21
  2995.              2.4.18 `u' Update archive    .......................   21
  2996.              2.4.19 `v' List archive (verbose)   ................   21
  2997.                 2.4.19.1 `vq' List archive (verbose-quick)   ....   22
  2998.  
  2999.  
  3000.                                     - I -
  3001.  
  3002.  
  3003.      
  3004.  
  3005.  
  3006.              2.4.20 `vv' List archive (full)   ..................   22
  3007.              2.4.21 `x' Extract files with path  ................   23
  3008.              2.4.22 `y' Copy archive with new options ...........   23
  3009.           2.5 Options      ......................................   24
  3010.              2.5.1 `-a' (upx) Preserve file attributes  .........   24
  3011.              2.5.2 `-A' (upd) Set archive attributes  ...........   25
  3012.              2.5.3 `-b' (all) Set I/O buffer size ...............   25
  3013.              2.5.4 `-B' (upd) Keep backup of archives ...........   26
  3014.              2.5.5 `-c' (all) Confirm files   ...................   26
  3015.              2.5.6 `-C' (ext) Clear arc-bit on extract ..........   26
  3016.              2.5.6 `-d' (upd) Archive date=newest file  .........   26
  3017.              2.5.8 `-D' (all) Alternate progress display  .......   26
  3018.              2.5.9 `-e' (add) Archive empty directories  ........   27
  3019.              2.5.10 `-E' (ext) Touch extracted files  ...........   28
  3020.              2.5.11 `-f' (all) Ignore filenotes   ...............   28
  3021.              2.5.12 `-F' (all) Use fast progress display ........   28
  3022.              2.5.13 `-g' (add) Garble files with password .......   29
  3023.              2.5.14 `-G' (ext) Only extract newer files .........   29
  3024.              2.5.15 `-h' (add) Disable homedirectories   ........   29
  3025.              2.5.16 `-H' (add) Write header level  ..............   29
  3026.              2.5.17 `-i' (all) Read filelist from file ..........   29
  3027.              2.5.18 `-I' (all) Ignore LHAOPTS variable  .........   30
  3028.              2.5.19 `-k' (all) Keep partial files  ..............   30
  3029.              2.5.20 `-K' (move) Kill empty directories  .........   31
  3030.              2.5.21 `-l' (ALL) Make filenames lowercase  ........   31
  3031.              2.5.22 `-L' (ALL) Create filelist   ................   31
  3032.              2.5.23 `-m' (ALL) No messages for query ............   32
  3033.              2.5.24 `-M' (ext) No autoshow files  ...............   32
  3034.              2.5.25 `-n' (upx) No byte progress indicator .......   32
  3035.              2.5.26 `-N' (all) No progress indicator  ...........   32
  3036.              2.5.27 `-p' (ALL) Pause after loading  .............   33
  3037.              2.5.28 `-P' (ALL) Set task priority  ...............   33
  3038.              2.5.29 `-q' (ALL) Be quiet   .......................   33
  3039.              2.5.30 `-Q' (ALL) Alternate option set  ............   33
  3040.              2.5.31 `-r' (add) Collect action files recursively .   33
  3041.              2.5.32 `-R' (ALL) Collect archive files recursively    34
  3042.              2.5.33 `-s' (add) Add files with a-flag unset.......   35
  3043.              2.5.34 `-S' (add) Set A-flag on archived files......   35
  3044.              2.5.35 `-t' (ext) Only new files  ..................   35
  3045.              2.5.36 `-T' (upx) New and newer files ..............   35
  3046.              2.5.37 `-u' (ALL) Make filenames uppercase  ........   35
  3047.              2.5.38 `-U' (upx) Set update interval  .............   36
  3048.              2.5.39 `-v' (add) Set compression speed  ...........   36
  3049.              2.5.40 `-V' (all) Enable multi-volume archives.  ...   36
  3050.              2.5.41 `-w' (upd) Set work directory  ..............   37
  3051.              2.5.42 `-W' (add) Exclude filenames   ..............   37
  3052.              2.5.43 `-x' (all) Preserve and use pathnames .......   37
  3053.              2.5.44 `-X' (ALL) Do not append suffix .............   38
  3054.              2.5.45 `-y' (all) Always append suffix  ............   38
  3055.              2.5.46 `-Y' (add) Store big files with ratio........   38
  3056.              2.5.47 `-z' (add) Do not compress files ............   39
  3057.              2.5.48 `-Z' (add) Compress archives   ..............   39
  3058.  
  3059.  
  3060.                                     - II -
  3061.  
  3062.  
  3063.      
  3064.  
  3065.  
  3066.              2.5.49 `-0' (add) Use LhArc 1.x compression ........   39
  3067.              2.5.50 `-1' (add) Use LhA compression (-lh4-) ......   40
  3068.              2.5.51 `-2' (add) Use LhA compression (-lh5-) ......   40
  3069.              2.5.52 `-Qa' (all) Use simple console I/O ..........   40
  3070.              2.5.53 `-Qb' (ext) Test archive before extract .....   40
  3071.              2.5.54 `-Qd' (ext) Delete autoshow files  ..........   40
  3072.              2.5.55 `-Qh' (add) Set Huffman buffer size .........   41
  3073.              2.5.56 `-Qn' (all) Set national character mode .....   41
  3074.              2.5.57 `-Qo' (all) Ignore options after command ....   41
  3075.              2.5.58 `-Qp' (move) Ignore delete protection flag ..   41
  3076.              2.5.59 `-Qq' (add) Quick add   .....................   42
  3077.              2.5.60 `-Qr' (add) Skip datestamp check  ...........   42
  3078.              2.5.61 `-Qv' (all) Set multivolume arc devices .....   42
  3079.              2.5.62 `-Qw' (all) Disable wildcards   .............   42
  3080.           2.6 Autoshow files     ................................   43
  3081.           2.7 Residentability      ..............................   43
  3082.           2.8 Multi-volume archives     .........................   43
  3083.           2.8.1 Multivolume file names    .......................   43
  3084.           2.8.2 Making backups with multivolume archives  .......   43
  3085.           2.8.2.1 Incremental backups     .......................   44
  3086.           2.8.3 Extracting from multivolume archives   ..........   44
  3087.           2.8.3.1 Restoring incremental backups    ..............   44
  3088.           2.8.4 Listing multivolume archive contents   ..........   45
  3089.           2.8.5 Updating multivolume archives    ................   45
  3090.           2.8.6 Future multivolume archives    ..................   45
  3091.           2.8.7 Interrupting multivolume archiving    ...........   45
  3092.           2.9 A bit about headers   .............................   45
  3093.           2.10 Some tips for archiving efficiently  .............   46
  3094.           2.11 Using as little memory as possible ...............   46
  3095.           2.12 Creating fully MS-DOS compatible archives  .......   46
  3096.           2.13 Recovering data from corrupt archives  ...........   47
  3097.        5 Acknowledgements      ..................................   47
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.                                    - III -
  3121.  
  3122.