History
-------
December 12, 1997
======================================
Bruce Goodman added generic keyfile and lzxkeyfile.readme to archive
and re-uploaded to Aminet, as authorized by Jonathan Forbes.


Version 1.21r (Registered version only)
August 23, 1995
=======================================

* All the changes made to the 1.21 evaluation version (see below), plus:

* Fixed directory creation bug for extracting "LHA" and "LZH" files.

* Fixed up handling of level 1 file headers; extended directory names and
  path names are now handled.  The operating system field is now also
  displayed when using the "vv" command, if the operating system is known.

* Fixed a bug which could cause LZX to hang on a corrupted LHA archive.

* By mistake, the 68020/68030 versions of LZX 1.10r and 1.20r had received
  the 68040-optimised LHA decompression code, which was designed for the
  cache of the 68040, rather than for the smaller caches of the 68020/68030.

  The main loop of the 68020/68030 LHA decompression code now easily fits
  within the 68030's code cache, resulting in faster operation on a 68030.

* The ability to decode LZH and LHA files has been temporarily removed
  from the 68000 version, since a bug is being investigated in this area.


Version 1.21 (Evaluation)
August 23, 1995
=======================================

* LZX now contains a $ver version string.

* Fixed a bug in the "e" command which slipped into 1.20.

* LZX accepts directory names with trailing slashes;

  e.g. "lzx a archive.lzx dir_name/" now works.

* LZX displays the directory name properly when adding files from a
  logical device (e.g. "lzx a archive.lzx devs:").

* LZX will automatically disable interactivity (as if the -m option had
  been used) if it detects that standard input is not interactive.

* Fixed the handling of empty directories.

  "lzx -e a archive.lzx empty_dir_name" now works.

* Fixed a bug which could cause LZX to hang when decompressing certain
  corrupted archives.

* LZX won't accept invalid characters after the "a" command letter, so
  that "lzx archive.lzx file1 file2" is recognised as an invalid command.

* Fixed the problem where "-a0" did not turn off preservation of file
  attributes when creating the archive.

* If extracting a file from a corrupt archive, LZX will delete the
  partial file from the destination directory instead of from the
  current directory.

* Fixed a bug in the replace (r) command where it would simply remove
  files from the archive.

* Changed the extract without path preservation command (e) so that one
  can supply a path name with the name of the file to be extracted.  For
  example, "lzx e archive.lzx dir1/dir2/dir3/filename" will cause that
  file to be extracted to the current directory as <filename>.

* If the '-S' option is used, LZX now correctly sets the 'a' flag for
  files which are stored.  Previously, it only set the flag for files
  which were compressed.

* LZX will only recognise files as noncompressible archives if the
  file extension matches exactly (e.g. ".lha", ".jpg", ".zip").  LZX
  will not treat "file.lhafoobar" as a compressed file.

* Provided a small (~37K) extract-only "UNLZX" program.


Version 1.20r (Registered version only)
May 30, 1995
=======================================

* New -9 compression mode, which compresses even better than the -3 mode.
  Going from -3 to -9 usually provides about 1.5 to 3 times the compression
  improvement of going from the default to -3.

* New -Qf "faster compression" mode, which improves compression speed at
  the expense of RAM (increases memory requirements by 32K).

* Faster compression


Version 1.20 (Evaluation)
May 30, 1995
=========================

* Lowered memory requirements by 80K.


Version 1.10r (Registered version only)
April 29, 1995
=======================================

* All the changes made to the 1.10 evaluation version (see below), plus:

* Asynchronous disk i/o supported for decompression, resulting in a huge
  speedup if decompressing from a hard disk or floppy disk.  More
  improvements in this area are forthcoming.

* Decompression of ".LHA" and ".LZH" files is now supported within LZX.
  LZX will automatically recognise .lzh and .lha files, so no special
  options are required to decode these files.

  LZX generally decompresses these files 25-35% faster than LhA, but
  performance varies depending on hard drive and CPU speed.

  NOTE: On the 68000EC version the speed increase is smaller; the raw
        decompression code is about 20% faster than LhA, but there are
        additional speed gains if decompressing from floppy or HD.

* Archive concatenation ("c" command)

* Print files to the console ("p") command

* Fast add ("af") command.  This command causes LZX to not check an
  existing archive for duplicate files, but to instead append directly to
  the end of the existing archive.  This option provides a sizeable
  performance enhancement to Fido-related mail processing setups which do
  not require such checks.


Version 1.10 (Evaluation)
May 8, 1995
=========================

* Fixed a wildcard-related bug on the 68000EC version if using AmigaDOS 1.3
  and arp.library.

* The "e" command now works as intended and does not extract full path name
  information (unless the -x option is also used).

* LZX no longer uses ExamineFH() to obtain information on open files under
  AmigaDOS Release 2 or later, since not all file system handlers support
  this operation.  Instead, Lock()/Examine() is used.

* Fixed the -m option.

* Adding new files to existing archives is now much faster.  This provides
  a huge performance boost to Fido-related mail processing setups.

* Deleting many files from an archive is now much faster.

* LZX now exits with exit status 10 if it cannot append to or create an
  archive.  Previously it did print an error message, but exited with
  exit status zero.

* LZX will now display an "Operation successful" or "Operation failed"
  message when it exits.

* Performance improvements:

  The 68040/68060 version decompresses about 7% faster.
  The 68020/68030 version decompresses about 5% faster.


Version 1.01
March 20, 1995
============================

* The LZX "v1" command is now supported as per the documentation, and
  is identical to LZX "vv" (verbose view).

* Fixed the "--" option bug with command line parsing.

* LZX now determines if a file to archive is a directory, and will
  archive the contents of that; e.g. "lzx a archivename.lzx dirname".

* LZX won't complain if you try to add files to an empty archive.

* LZX won't print blank lines if adding empty dirs with the -F
  (fast progress display) option.

* LZX won't display AmigaDOS requesters (e.g. lzx a test.lzx xxx:blah
  won't bring up a requester for device "xxx:").

* LZX can now be aborted while it is storing files.

* LZX can now be aborted when searching through an archive if adding
  files to that archive.

* The 'e' (extract) command now works.

* LZX a arcname * now works.

* Fixed a date comparison bug in the updating code.

* The -m option now causes files to be overwritten automatically.

* Fixed a bug which made LZX very slow decompressing large archives.

* Reduced memory requirements by 64K (more memory reductions are
  coming).

* If the -P (task priority) option is used, LZX will now reset the
  priority to its original state upon exit.

* LZX now adds a lower case ".lzx" to archive names, instead of an
  upper case ".LZX".

* Performance improvements:

  The 68000EC version of LZX compresses about 5% faster.
  The 68020/68030 version decompresses about 8% faster.

  More performance improvements are forthcoming; Tomi has been able to
  tweak another 15% of speed out of the algorithm on the PC, which
  should hopefully result in a comparable gain when this change is
  ported to the Amiga version.


Version 1.00
February 5, 1995
============================

* Initial release
