12021-01-02  Antonio Diaz Diaz  <antonio@gnu.org>
2
3	* Version 1.22 released.
4	* New options '-e, --reproduce', '--lzip-level', '--lzip-name',
5	  '--reference-file', and '-E, --debug-reproduce'.
6	* Remove '--dump-tdata', '--remove-tdata', and '--strip-tdata'.
7	* main.cc (main): Report an error if a file name is empty.
8	  Make '-o' behave like '-c', but writing to file.
9	  Make '-c' and '-o' check whether the output is a terminal only once.
10	  Do not open output if input is a terminal.
11	* main.cc (decompress): With '-i', ignore data errors, keep files.
12	* range_dec.cc: '-i -D' now decompresses a truncated last member.
13	* '-i -D' now returns 0 if only ignored errors are found.
14	* '-i' now considers any block > 36 with header a member, not a gap.
15	* Replace 'decompressed', 'compressed' with 'out', 'in' in output.
16	* Fix several compiler warnings. (Reported by Nissanka Gooneratne).
17	* lzip_index.cc: Improve messages for corruption in last header.
18	* New debug options '-M, --md5sum' and '-U, --unzcrash'.
19	* main.cc: Set a valid invocation_name even if argc == 0.
20	* Document extraction from tar.lz in manual, '--help', and man page.
21	* New files lunzcrash.cc, md5.h, md5.cc, nrep_stats.cc, reproduce.cc.
22	* lziprecover.texi: New chapter 'Reproducing one sector'.
23	  New sections 'Merging with a backup' and 'Reproducing a mailbox'.
24	  Document the debug options for experts.
25	* check.sh: Lzip 1.16 or newer is required to run the tests.
26	* testsuite: Add 9 new test files.
27
282019-01-04  Antonio Diaz Diaz  <antonio@gnu.org>
29
30	* Version 1.21 released.
31	* Rename File_* to Lzip_*.
32	* New options '--dump', '--remove', and '--strip'. They
33	  replace '--dump-tdata', '--remove-tdata', and '--strip-tdata',
34	  which are now aliases and will be removed in version 1.22.
35	* lzip.h (Lzip_trailer): New function 'verify_consistency'.
36	* lzip_index.cc: Lzip_index now detects gaps between members,
37	  some kinds of corrupt trailers and
38	  some fake trailers embedded in trailing data.
39	* split.cc: Use Lzip_index to split members, gaps and trailing data.
40	* split.cc: Verify last member before writing anything.
41	* list.cc (list_files): With '-i', ignore format errors, show gaps.
42	* range_dec.cc: With '-i', ignore a truncated last member.
43	* main.cc (main): Check return value of close( infd ).
44	* Improve and add new diagnostic messages.
45	* Print '\n' instead of '\r' if !isatty( 1 ) in merge, repair.
46	* main.cc: Compile on DOS with DJGPP.
47	* lziprecover.texi: New chapter 'Tarlz'.
48	* configure: Accept appending to CXXFLAGS, 'CXXFLAGS+=OPTIONS'.
49	* INSTALL: Document use of CXXFLAGS+='-D __USE_MINGW_ANSI_STDIO'.
50	* New test files fox.lz, fox6_sc[1-6].lz.
51
522018-02-12  Antonio Diaz Diaz  <antonio@gnu.org>
53
54	* Version 1.20 released.
55	* split.cc: Fix splitting of files > 64 KiB broken since 1.16.
56	* New options '--dump-tdata', '--remove-tdata', '--strip-tdata', and
57	  '--loose-trailing'.
58	* Improve corrupt header detection to HD=3.
59	* main.cc: Show corrupt or truncated header in multimember file.
60	* Replace 'bits/byte' with inverse compression ratio in output.
61	* Show progress of decompression at verbosity level 2 (-vv).
62	* Show progress of decompression only if stderr is a terminal.
63	* main.cc: Show final diagnostic when testing multiple files.
64	* decoder.cc (verify_trailer): Show stored sizes also in hex.
65	  Show dictionary size at verbosity level 4 (-vvvv).
66
672017-04-10  Antonio Diaz Diaz  <antonio@gnu.org>
68
69	* Version 1.19 released.
70	* merge.cc: Fix members with thousands of scattered errors.
71	* Option '-a' now works with '-l' and '-D'.
72	* The output of option '-l, --list' has been simplified.
73	* main.cc: Continue testing if any input file is a terminal.
74	* main.cc: Show trailing data in both hexadecimal and ASCII.
75	* lzip_index.cc: Improve detection of bad dict and trailing data.
76	* lzip_index.cc: Skip trailing data more efficiently.
77	* lzip.h: Unify messages for bad magic, trailing data, etc.
78	* New struct Bad_byte allows delta and flip modes for bad_value.
79	* unzcrash.cc: New option '-e, --set-byte'.
80
812016-05-12  Antonio Diaz Diaz  <antonio@gnu.org>
82
83	* Version 1.18 released.
84	* New option '-a, --trailing-error'.
85	* merge.cc (open_input_files): Use CRC to test identical files.
86	* repair.cc (repair_file): Detect gross damage before repairing.
87	* repair.cc: Repair a damaged dictionary size in the header.
88	* repair.cc: Try bytes at offsets 7 to 11 first.
89	* Decompression time has been reduced by 2%.
90	* main.cc (decompress): Print up to 6 bytes of trailing data
91	  when '-tvvvv' is specified.
92	* decoder.cc (verify_trailer): Remove test of final code.
93	* main.cc (main): Delete '--output' file if infd is a terminal.
94	* main.cc (main): Don't use stdin more than once.
95	* Use 'close_and_set_permissions' and 'set_signals' in all modes.
96	* range_dec.cc (list_file): Show dictionary size and size of
97	  trailing data (if any) with '-lv'.
98	* New options '-A, --alone-to-lz', '-W, --debug-decompress', and
99	  '-X, --show-packets'.
100	* Change short name of option '--debug-delay' to '-Y'.
101	* Change short name of option '--debug-repair' to '-Z'.
102	* unzcrash.cc: New options '-B, --block', '-d, --delta',
103	  '-t, --truncate', and '-z, --zcmp'.
104	* unzcrash.cc: Read files as large as RAM allows.
105	* unzcrash.cc: Compare output using zcmp if decompressor returns 0.
106	* unzcrash.cc: Accept negative position and size.
107	* lziprecover.texi: New chapter 'Trailing data'.
108	* configure: Avoid warning on some shells when testing for g++.
109	* Makefile.in: Detect the existence of install-info.
110	* check.sh: Don't check error messages.
111	* check.sh: A POSIX shell is required to run the tests.
112
1132015-05-28  Antonio Diaz Diaz  <antonio@gnu.org>
114
115	* Version 1.17 released.
116	* New block selection algorithm makes merge up to 100 times faster.
117	* repair.cc: Repair time has been reduced by 15%.
118	* New options '-y, --debug-delay' and '-z, --debug-repair'.
119	* Makefile.in: New targets 'install*-compress'.
120	* testsuite/unzcrash.cc: Move to top directory.
121	* lziprecover.texi: New chapter 'File names'.
122
1232014-08-29  Antonio Diaz Diaz  <antonio@gnu.org>
124
125	* Version 1.16 released.
126	* New class LZ_mtester makes repair up to 10 times faster.
127	* main.cc (close_and_set_permissions): Behave like 'cp -p'.
128	* lziprecover.texinfo: Rename to lziprecover.texi.
129	* Change license to GPL version 2 or later.
130
1312013-09-14  Antonio Diaz Diaz  <antonio@gnu.org>
132
133	* Version 1.15 released.
134	* repair.cc: Repair multimember files with up to one byte error
135	  per member.
136	* merge.cc: Merge multimember files.
137	* main.cc (show_header): Don't show header version.
138	* lziprecover.texinfo: New chapters 'Repairing files',
139	  'Merging files', and 'Unzcrash'.
140
1412013-05-31  Antonio Diaz Diaz  <antonio@gnu.org>
142
143	* Version 1.14 released.
144	* New option '-i, --ignore-errors'.
145	* Option '-l, --list' now accepts more than one file.
146	* Decompression time has been reduced by 12%.
147	* split.cc: Use as few digits as possible in file names.
148	* split.cc: In verbose mode show names of files being created.
149	* main.cc (show_header): Show header version if verbosity >= 4.
150	* configure: Options now accept a separate argument.
151	* Makefile.in: New targets 'install-as-lzip' and 'install-bin'.
152	* main.cc: Use 'setmode' instead of '_setmode' on Windows and OS/2.
153
1542012-02-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>
155
156	* Version 1.13 released.
157	* Lziprecover is now distributed in its own package. Until
158	  version 1.12 it was included in the lzip package. Previous
159	  entries in this file are taken from there.
160	* lziprecover.cc: Rename to main.cc.
161	* New files merge.cc, repair.cc, split.cc, and range_dec.cc.
162	* main.cc: Add decompressor options (-c, -d, -k, -t) so that
163	  an external decompressor is not needed for recovery nor for
164	  "make check".
165	* New option '-D, --range-decompress', which extracts a range of
166	  bytes decompressing only the members containing the desired data.
167	* New option '-l, --list', which prints correct total file sizes
168	  even for multimember files.
169	* merge.cc, repair.cc: Remove output file if recovery fails.
170	* Change quote characters in messages as advised by GNU Standards.
171	* split.cc: Use Boyer-Moore algorithm to search for headers.
172	* configure: Rename 'datadir' to 'datarootdir'.
173
1742011-04-30  Antonio Diaz Diaz  <ant_diaz@teleline.es>
175
176	* Version 1.12 released.
177	* lziprecover.cc: If '-v' is not specified show errors only.
178	* unzcrash.cc: Use Arg_parser.
179	* unzcrash.cc: New options '-b, --bits', '-p, --position', and
180	  '-s, --size'.
181
1822010-09-16  Antonio Diaz Diaz  <ant_diaz@teleline.es>
183
184	* Version 1.11 released.
185	* lziprecover.cc: New option '-m, --merge', which tries to produce a
186	  correct file by merging the good parts of two or more damaged copies.
187	* lziprecover.cc: New option '-R, --repair' for repairing a
188	  1-byte error in single-member files.
189	* decoder.cc (decode_member): Detect file errors earlier to improve
190	  efficiency of lziprecover's new repair capability.
191	  This change also prevents (harmless) access to uninitialized
192	  memory when decompressing a corrupt file.
193	* lziprecover.cc: New options '-f, --force' and '-o, --output'.
194	* lziprecover.cc: New option '-s, --split' to select the until
195	  now only operation of splitting multimember files.
196	* lziprecover.cc: If no operation is specified, warn the user and do
197	  nothing.
198
1992009-06-22  Antonio Diaz Diaz  <ant_diaz@teleline.es>
200
201	* Version 1.6 released.
202	* lziprecover.1: New man page.
203	* check.sh: Test lziprecover.
204
2052009-01-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>
206
207	* Version 1.4 released.
208	* Add 'lziprecover', a member recoverer program.
209	* unzcrash.cc: Test all 1-byte errors.
210
211
212Copyright (C) 2009-2021 Antonio Diaz Diaz.
213
214This file is a collection of facts, and thus it is not copyrightable,
215but just in case, you have unlimited permission to copy, distribute, and
216modify it.
217