2026-03-09  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.26 released.
	* decoder.cc (check_trailer): With -vv print sizes, not ratios.
	  (decode_member): Rename rep[0-3] to dis[0-3].
	* list.cc (list_files): Print size of tdata below sizes of members.
	  With -vv print a blank line between files.
	* lzip_index.cc (skip_box): New function.
	* main.cc (getnum): Accept underscore separators ('_').
	  (show_help): New argument 'bool full' to print usage or full help.
	  (Suggested by Murray Calavera and Adam Tuja).
	  (show_help): Print "*Exit status*" for section in man page.
	  (Suggested by Murray Calavera).
	* Print large numbers with underscore separators ('_').
	* lzip.texi: Add several improvements suggested by John Gilmore.

2025-01-11  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.25 released.
	* Remove options '--empty-error' and '--marking-error'.
	* decoder.cc (decode_member): Remove support for Sync Flush marker.
	* list.cc (list_files): Detect write error on stdout.
	* lzip.texi: New chapter 'Syntax of command-line arguments'.
	* check.sh: Use 'cp' instead of 'cat'.
	* testsuite: Add fox_nz.lz. Remove fox6.lz,fox6_mark.lz,test_em.txt.lz.

2024-03-01  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.24.1 released.
	* main.cc: Fix compilation failure on MinGW caused by mkdir.

2024-01-26  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.24 released.
	* New options '--empty-error' and '--marking-error'.
	* main.cc: Reformat file diagnostics as 'PROGRAM: FILE: MESSAGE'.
	  (show_option_error): New function showing argument and option name.
	  (main): Make -o preserve date/mode/owner if 1 input file.
	  (open_outstream): Create missing intermediate directories.
	* lzip.h: Rename verify_* to check_*.
	* configure, Makefile.in: New variable 'MAKEINFO'.
	* testsuite: New test files fox6.lz, fox6_mark.lz.

2022-01-24  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.23 released.
	* Decompression time has been reduced by 5-12% depending on the file.
	* main.cc (getnum): Show option name and valid range if error.
	* Improve several descriptions in manual, '--help', and man page.
	* lzip.texi: Change GNU Texinfo category to 'Compression'.
	  (Reported by Alfred M. Szmidt).

2021-01-04  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.22 released.
	* main.cc (main): Report an error if a file name is empty.
	  Make '-o' behave like '-c', but writing to file instead of stdout.
	  Make '-c' and '-o' check whether the output is a terminal only once.
	  Do not open output if input is a terminal.
	  Set a valid invocation_name even if argc == 0.
	* configure: Build, check, and install without 'make'.
	* Replace 'decompressed', 'compressed' with 'out', 'in' in output.
	* lzip_index.cc: Improve messages for corruption in last header.
	* Document extraction from tar.lz in manual, '--help', and man page.
	* lzip.texi (Introduction): Mention plzip and tarlz as alternatives.
	  Several fixes and improvements.
	* testsuite: Add 9 new test files.

2019-01-03  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.21 released.
	* Rename File_* to Lzip_*.
	* lzip.h (Lzip_trailer): New function 'verify_consistency'.
	* lzip_index.cc: Detect some kinds of corrupt trailers.
	* main.cc (main): Check return value of close( infd ).
	  Compile on DOS with DJGPP. (Reported by Robert Riebisch).
	  Fix a GCC warning about catching std::bad_alloc by value.
	* lzip.texi: Improve descriptions of '-0..-9', '-m', and '-s'.
	* configure: Accept appending to CXXFLAGS; 'CXXFLAGS+=OPTIONS'.
	* INSTALL: Document use of CXXFLAGS+='-D __USE_MINGW_ANSI_STDIO'.

2018-02-11  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.20 released.
	* New option '--loose-trailing'.
	* Improve corrupt header detection to HD=3.
	* main.cc: Show corrupt or truncated header in multimember file.
	  (main): Make option '-S, --volume-size' keep input files.
	  (main): Show final diagnostic when testing multiple files.
	  (set_c_outname): Do not add a second '.lz' to the arg of '-o'.
	* encoder_base.*: Adjust dictionary size for each member.
	* Replace 'bits/byte' with inverse compression ratio in output.
	* Show progress of decompression at verbosity level 2 (-vv).
	* Show progress of (de)compression only if stderr is a terminal.
	* decoder.cc (verify_trailer): Show stored sizes also in hex.
	  Show dictionary size at verbosity level 4 (-vvvv).
	* lzip.texi: New chapter 'Meaning of lzip's output'.

2017-04-13  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.19 released.
	* The option '-l, --list' has been ported from lziprecover.
	* Don't allow mixing different operations (-d, -l or -t).
	* Compression time of option '-0' has been slightly reduced.
	* Decompression time has been reduced by 2%.
	* main.cc: Continue testing if any input file is a terminal.
	  Show trailing data in both hexadecimal and ASCII.
	* encoder.cc (Matchfinder_base): Check the size passed to new.
	* lzip_index.cc: Improve detection of bad dict and trailing data.
	* lzip.h: Unify messages for bad magic, trailing data, etc.

2016-05-14  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.18 released.
	* New option '-a, --trailing-error'.
	* Decompression time has been reduced by 2%.
	* main.cc (main): Delete '--output' file if infd is a terminal.
	  (main): Don't use stdin more than once.
	* Remove decompression support for version 0 files.
	* decoder.cc (verify_trailer): Remove test of final code.
	* lzip.texi: New chapter 'Trailing data'.
	* configure: Avoid warning on some shells when testing for g++.
	* Makefile.in: Detect the existence of install-info.
	* check.sh: Require a POSIX shell. Don't check error messages.

2015-07-12  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.17 released.
	* Reorganization of the compression code.
	* lzip.texi: New chapter 'Quality assurance'.
	* Makefile.in: New targets 'install*-compress'.

2014-08-26  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.16 released.
	* Compression ratio of option '-9' has been slightly increased.
	* Compression time has been reduced by 4%.
	* Compression time of option '-0' has been reduced by 2%.
	* main.cc (close_and_set_permissions): Behave like 'cp -p'.
	* Minor improvements.
	* lzip.texinfo: Rename to lzip.texi.
	* Change license to GPL version 2 or later.

2013-09-20  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.15 released.
	* Show progress of compression at verbosity level 2 (-vv).
	* main.cc (show_header): Don't show header version.
	* Ignore option '-n, --threads' for compatibility with plzip.
	* configure: Options now accept a separate argument.
	* lzip.texinfo: New chapter 'Stream format' and appendix
	  'Reference source code'.

2013-02-17  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.14 released.
	* Multi-step trials have been implemented.
	* Compression ratio has been slightly increased.
	* Compression time has been reduced by 5%.
	* Decompression time has been reduced by 12%.
	* Makefile.in: New target 'install-bin'.
	* main.cc: Define 'strtoull' to 'std::strtoul' on Windows.
	  (main): Use 'setmode' instead of '_setmode' on Windows and OS/2.

2012-02-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.13 released.
	* Lziprecover has been moved to its own package.
	* main.cc (close_and_set_permissions): Inability to change output
	  file attributes has been downgraded from error to warning.
	* Compression time of option '-0' has been reduced by 2%.
	* Reorganization of the compression code.
	* Small change in '--help' output and man page.
	* Change quote characters in messages as advised by GNU Standards.
	* configure: Rename 'datadir' to 'datarootdir'.
	* 'unzcrash.cc' has been moved to package 'lziprecover'.

2011-04-30  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.12 released.
	* New option '-F, --recompress'.
	* encoder.h (update_prices): Update high length symbol prices
	  independently of the value of 'pos_state'. This gives better
	  compression for large values of '--match-length' without being
	  slower.
	* encoder.h, encoder.cc: Optimize pair price calculations, reducing
	  compression time for large values of '--match-length' by up to 6%.
	* Compression time of option '-0' has been reduced by 2%.
	* main.cc (decompress): Print only one status line for each
	  multimember file when only one '-v' is specified.
	  (decompress): Print 6 bytes of trailing data at verbosity level 4.
	  (open_instream): Don't show the message
	  " and '--stdout' was not specified" for directories, etc.
	* lziprecover.cc: If '-v' is not specified show errors only.
	* unzcrash.cc: Use Arg_parser.
	  New options '-b, --bits', '-p, --position', and '-s, --size'.

2010-09-16  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.11 released.
	* New option '-0', which produces a compression speed and ratio
	  comparable to those of 'gzip -9'.
	* fast_encoder.h, fast_encoder.cc: New files.
	* main.cc: Match length limit set by options -1 to -8 has been
	  reduced to extend range of use towards gzip. Lower numbers now
	  compress less but faster. (-1 now takes 43% less time for only 20%
	  larger compressed size).
	  Exit with status 1 if any output file exists and is skipped.
	  Fix warning about fchown's return value being ignored.
	  (main): Set stdin/stdout in binary mode on MSVC and OS2.
	* Compression ratio of option '-9' has been slightly increased.
	* decoder.cc (decode_member): Detect file errors earlier to improve
	  efficiency of lziprecover's new repair capability.
	  This change also prevents (harmless) access to uninitialized
	  memory when decompressing a corrupt file.
	  (verify_trailer): '-tvvvv' now also shows compression ratio.
	* lziprecover.cc: New option '-m, --merge', which tries to produce a
	  correct file by merging the good parts of two or more damaged copies.
	  New option '-R, --repair' for repairing a 1-byte error in
	  single-member files.
	  New options '-f, --force' and '-o, --output'.
	  New option '-s, --split' to select the until now only operation of
	  splitting multimember files.
	  If no operation is specified, warn the user and do nothing.
	* lzip.texinfo: New examples.
	* testsuite: Rename 'test1' to 'test.txt'. New tests.
	* Matchfinder types HC4 (4 bytes hash-chain) and HT4 (4 bytes
	  hash-table) have been tested and found no better than current BT4.

2010-04-05  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.10 released.
	* decoder.h: Input_buffer integrated in Range_decoder.
	* main.cc: File specified with option '-o' is now created with mode
	  0666 if umask allows it, deleted if interrupted by user.
	  New constant 'o_binary'.
	  (main): Change dictionary size for options -2, -3, -4 and -8 to
	  improve linearity of compressed sizes.
	* lzip.h: Fix warnings produced by over-optimization (-O3).
	* Makefile.in: Add quotes to directory names.

2010-01-17  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.9 released.
	* main.cc (main): Return at least 1 if closing stdout fails.
	* Makefile.in: Add option '--name' to help2man invocation.
	* check.sh: Use 'test1' instead of 'COPYING' for testing.

2009-09-02  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.8 released.
	* Compression time has been reduced by 4%.
	* Lzdiff and lzgrep have been moved to the new package zutils.
	* Fix warnings on systems where uint32_t != unsigned int.

2009-06-25  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.7 released.
	* decoder.h (copy_block): Fix memcpy overlap introduced in 1.6.

2009-06-22  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.6 released.
	* Decompression time has been reduced by 17%.
	* decoder.cc (decode_member): Add support for Sync Flush marker.
	* Add support for the extension '.tbz' to lzdiff and lzgrep.
	* Add man pages for lzdiff, lzgrep and lziprecover.
	* encoder.cc (Matchfinder): Reduce memory use to 9x if input file is
	  smaller than dictionary size limit.
	* decoder.cc: Add extra flush calls to improve partial decompression
	  of corrupt files.
	* '--test' no longer needs '/dev/null'.
	* Remove some 'bashisms' from lzdiff and lzgrep.
	* Dictionary size for options '-1' to '-4' has been changed.
	* main.cc (signal_handler): Declare as 'extern "C"'.
	* Makefile.in: Extra files are now installed by default.
	* check.sh: Test lziprecover.
	* Add 'export LC_ALL=C' to all scripts.

2009-04-12  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.5 released.
	* lzip.h: Implement coded dictionary size in Lzip_header.
	* Fix some includes that prevented compilation with GCC 4.4.
	* 'member_size' and 'volume_size' are now accurate limits.
	* Compression speed has been improved.
	* Implement bt4 type matchfinder.
	* lzip.texinfo: New chapter 'Algorithm'.
	* lzdiff, lzgrep: Accept '-h' for '--help' and '-V' for '--version'.
	* Makefile.in: Man page is now installed by default.
	* check.sh: Check that files are opened in binary mode.

2009-01-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.4 released.
	* Implement compression of version 1 files.
	* New options '-b, --member-size', '-S, --volume-size', and
	  '-o, --output'.
	* main.cc: Read from non-regular files if '--stdout' is specified.
	* Add 'lziprecover', a member recoverer program.
	* unzcrash.cc: Test all 1-byte errors.

2008-12-21  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.3 released.
	* This version automatically chooses the smallest possible
	  dictionary size for each file during compression, saving memory
	  during decompression.
	* Implement decompression of version 1 files.
	* check.sh: Replace 'diff -q' with 'cmp'.

2008-12-10  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.2 released.
	* encoder.cc: A 1-byte read outside allocated memory has been fixed.
	* lzip.h: Dictionary size limit has been reduced to 512 MiB because
	  setting it to 1 GiB causes overflow of a 32 bit integer.
	* Add 'lzdiff', a diff/cmp wrapper for gzip, bzip2, lzip and
	  non-compressed files.
	* Add 'lzgrep', a grep wrapper for gzip, bzip2, lzip and
	  non-compressed files.
	* 'make install-info' should now work on Debian and OS X.

2008-11-17  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.1 released.
	* Change short name of option '--dictionary-size' to '-s'.
	* Change short name of option '--match-length' to '-m'.
	* Change LONG_LONG_MAX to LLONG_MAX.

2008-10-14  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.0 released.
	* '-tvv' shows file version and dictionary size.

2008-09-30  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.5 released.
	* Decompression is now 1% faster.

2008-09-23  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.4 released.
	* Code cleanup for global variable 'verbosity'.
	* Regain the compression ratio of 0.2 with 5% faster speed.
	* lzip.h: Fix compilation on systems where size_t != unsigned int.

2008-09-15  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.3 released.
	* encoder.cc: Compression is now 15% faster, 1% worse.
	* main.cc (main): Make option '-t' override '-c'.
	  (decompress): Show 'done' instead of 'ok' when not testing.
	* encoder.h: Use trials[] to return the list of pairs.

2008-09-09  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.2 released.
	* encoder.cc: Small improvements in compression speed.
	* Small documentation changes.

2008-08-20  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.1 released.


Copyright (C) 2008-2026 Antonio Diaz Diaz.

This file is a collection of facts, and thus it is not copyrightable, but just
in case, you have unlimited permission to copy, distribute, and modify it.
