12021-01-04 Antonio Diaz Diaz <antonio@gnu.org> 2 3 * Version 1.22 released. 4 * main.cc (main): Report an error if a file name is empty. 5 Make '-o' behave like '-c', but writing to file instead of stdout. 6 Make '-c' and '-o' check whether the output is a terminal only once. 7 Do not open output if input is a terminal. 8 * configure: Build, check, and install without 'make'. 9 * Replace 'decompressed', 'compressed' with 'out', 'in' in output. 10 * lzip_index.cc: Improve messages for corruption in last header. 11 * main.cc: Set a valid invocation_name even if argc == 0. 12 * Document extraction from tar.lz in manual, '--help', and man page. 13 * lzip.texi (Introduction): Mention plzip and tarlz as alternatives. 14 * lzip.texi: Several fixes and improvements. 15 * testsuite: Add 9 new test files. 16 172019-01-03 Antonio Diaz Diaz <antonio@gnu.org> 18 19 * Version 1.21 released. 20 * Rename File_* to Lzip_*. 21 * lzip.h (Lzip_trailer): New function 'verify_consistency'. 22 * lzip_index.cc: Detect some kinds of corrupt trailers. 23 * main.cc (main): Check return value of close( infd ). 24 * main.cc: Compile on DOS with DJGPP. 25 * Fix a GCC warning about catching std::bad_alloc by value. 26 * lzip.texi: Improve description of '-0..-9', '-m', and '-s'. 27 * configure: Accept appending to CXXFLAGS, 'CXXFLAGS+=OPTIONS'. 28 * INSTALL: Document use of CXXFLAGS+='-D __USE_MINGW_ANSI_STDIO'. 29 302018-02-11 Antonio Diaz Diaz <antonio@gnu.org> 31 32 * Version 1.20 released. 33 * New option '--loose-trailing'. 34 * Improve corrupt header detection to HD=3. 35 * main.cc: Show corrupt or truncated header in multimember file. 36 * main.cc (main): Option '-S, --volume-size' now keeps input files. 37 * encoder_base.*: Adjust dictionary size for each member. 38 * Replace 'bits/byte' with inverse compression ratio in output. 39 * Show progress of decompression at verbosity level 2 (-vv). 40 * Show progress of (de)compression only if stderr is a terminal. 41 * main.cc: Show final diagnostic when testing multiple files. 42 * main.cc: Do not add a second extension '.lz' to the arg of '-o'. 43 * decoder.cc (verify_trailer): Show stored sizes also in hex. 44 Show dictionary size at verbosity level 4 (-vvvv). 45 * lzip.texi: New chapter 'Meaning of lzip's output'. 46 472017-04-13 Antonio Diaz Diaz <antonio@gnu.org> 48 49 * Version 1.19 released. 50 * The option '-l, --list' has been ported from lziprecover. 51 * Don't allow mixing different operations (-d, -l or -t). 52 * Compression time of option '-0' has been slightly reduced. 53 * Decompression time has been reduced by 2%. 54 * main.cc: Continue testing if any input file is a terminal. 55 * main.cc: Show trailing data in both hexadecimal and ASCII. 56 * encoder.cc (Matchfinder_base): Verify the size passed to new. 57 * lzip_index.cc: Improve detection of bad dict and trailing data. 58 * lzip.h: Unify messages for bad magic, trailing data, etc. 59 602016-05-14 Antonio Diaz Diaz <antonio@gnu.org> 61 62 * Version 1.18 released. 63 * New option '-a, --trailing-error'. 64 * Decompression time has been reduced by 2%. 65 * decoder.cc (verify_trailer): Remove test of final code. 66 * main.cc (main): Delete '--output' file if infd is a terminal. 67 * main.cc (main): Don't use stdin more than once. 68 * Remove decompression support for version 0 files. 69 * lzip.texi: New chapter 'Trailing data'. 70 * configure: Avoid warning on some shells when testing for g++. 71 * Makefile.in: Detect the existence of install-info. 72 * check.sh: A POSIX shell is required to run the tests. 73 * check.sh: Don't check error messages. 74 752015-07-12 Antonio Diaz Diaz <antonio@gnu.org> 76 77 * Version 1.17 released. 78 * Reorganization of the compression code. 79 * lzip.texi: New chapter 'Quality assurance'. 80 * Makefile.in: New targets 'install*-compress'. 81 822014-08-26 Antonio Diaz Diaz <antonio@gnu.org> 83 84 * Version 1.16 released. 85 * Compression ratio of option '-9' has been slightly increased. 86 * Compression time has been reduced by 4%. 87 * Compression time of option '-0' has been reduced by 2%. 88 * main.cc (close_and_set_permissions): Behave like 'cp -p'. 89 * Minor improvements. 90 * lzip.texinfo: Rename to lzip.texi. 91 * Change license to GPL version 2 or later. 92 932013-09-20 Antonio Diaz Diaz <antonio@gnu.org> 94 95 * Version 1.15 released. 96 * Show progress of compression at verbosity level 2 (-vv). 97 * main.cc (show_header): Don't show header version. 98 * Ignore option '-n, --threads' for compatibility with plzip. 99 * configure: Options now accept a separate argument. 100 * lzip.texinfo: New chapter 'Stream format' and appendix 101 'Reference source code'. 102 1032013-02-17 Antonio Diaz Diaz <ant_diaz@teleline.es> 104 105 * Version 1.14 released. 106 * Multi-step trials have been implemented. 107 * Compression ratio has been slightly increased. 108 * Compression time has been reduced by 5%. 109 * Decompression time has been reduced by 12%. 110 * Makefile.in: New target 'install-bin'. 111 * main.cc: Use 'setmode' instead of '_setmode' on Windows and OS/2. 112 * main.cc: Define 'strtoull' to 'std::strtoul' on Windows. 113 1142012-02-24 Antonio Diaz Diaz <ant_diaz@teleline.es> 115 116 * Version 1.13 released. 117 * Lziprecover has been moved to its own package. 118 * main.cc (close_and_set_permissions): Inability to change output 119 file attributes has been downgraded from error to warning. 120 * Compression time of option '-0' has been reduced by 2%. 121 * Reorganization of the compression code. 122 * Small change in '--help' output and man page. 123 * Change quote characters in messages as advised by GNU Standards. 124 * configure: Rename 'datadir' to 'datarootdir'. 125 * 'unzcrash.cc' has been moved to package 'lziprecover'. 126 1272011-04-30 Antonio Diaz Diaz <ant_diaz@teleline.es> 128 129 * Version 1.12 released. 130 * New option '-F, --recompress'. 131 * encoder.h (update_prices): Update high length symbol prices 132 independently of the value of 'pos_state'. This gives better 133 compression for large values of '--match-length' without being 134 slower. 135 * encoder.h, encoder.cc: Optimize pair price calculations, reducing 136 compression time for large values of '--match-length' by up to 6%. 137 * Compression time of option '-0' has been reduced by 2%. 138 * main.cc (decompress): Print only one status line for each 139 multimember file when only one '-v' is specified. 140 * main.cc (decompress): Print up to 6 bytes of trailing data 141 when '-vvvv' is specified. 142 * main.cc (open_instream): Don't show the message 143 " and '--stdout' was not specified" for directories, etc. 144 * lziprecover.cc: If '-v' is not specified show errors only. 145 * unzcrash.cc: Use Arg_parser. 146 * unzcrash.cc: New options '-b, --bits', '-p, --position', and 147 '-s, --size'. 148 1492010-09-16 Antonio Diaz Diaz <ant_diaz@teleline.es> 150 151 * Version 1.11 released. 152 * New option '-0', which produces a compression speed and ratio 153 comparable to those of 'gzip -9'. 154 * fast_encoder.h, fast_encoder.cc: New files. 155 * main.cc: Match length limit set by options -1 to -8 has been 156 reduced to extend range of use towards gzip. Lower numbers now 157 compress less but faster. (-1 now takes 43% less time for only 20% 158 larger compressed size). 159 Exit with status 1 if any output file exists and is skipped. 160 * Compression ratio of option '-9' has been slightly increased. 161 * lziprecover.cc: New option '-m, --merge', which tries to produce a 162 correct file by merging the good parts of two or more damaged copies. 163 * lziprecover.cc: New option '-R, --repair' for repairing a 164 1-byte error in single-member files. 165 * decoder.cc (decode_member): Detect file errors earlier to improve 166 efficiency of lziprecover's new repair capability. 167 This change also prevents (harmless) access to uninitialized 168 memory when decompressing a corrupt file. 169 * lziprecover.cc: New options '-f, --force' and '-o, --output'. 170 * lziprecover.cc: New option '-s, --split' to select the until 171 now only operation of splitting multimember files. 172 * lziprecover.cc: If no operation is specified, warn the user and do 173 nothing. 174 * main.cc: Fix warning about fchown's return value being ignored. 175 * decoder.cc: '-tvvvv' now also shows compression ratio. 176 * main.cc: Set stdin/stdout in binary mode on MSVC and OS2. 177 * lzip.texinfo: New examples. 178 * testsuite: Rename 'test1' to 'test.txt'. New tests. 179 * Matchfinder types HC4 (4 bytes hash-chain) and HT4 (4 bytes 180 hash-table) have been tested and found no better than the current 181 BT4. 182 1832010-04-05 Antonio Diaz Diaz <ant_diaz@teleline.es> 184 185 * Version 1.10 released. 186 * decoder.h: Input_buffer integrated in Range_decoder. 187 * main.cc: File specified with option '-o' is now created with mode 188 0666 if umask allows it, deleted if interrupted by user. 189 * main.cc: New constant 'o_binary'. 190 * main.cc: Dictionary size for options -2, -3, -4 and -8 has been 191 changed to improve linearity of compressed sizes. 192 * lzip.h: Fix warnings produced by over-optimization (-O3). 193 * Makefile.in: Add quotes to directory names. 194 1952010-01-17 Antonio Diaz Diaz <ant_diaz@teleline.es> 196 197 * Version 1.9 released. 198 * main.cc (main): Return at least 1 if closing stdout fails. 199 * Makefile.in: Add option '--name' to help2man invocation. 200 * check.sh: Use 'test1' instead of 'COPYING' for testing. 201 2022009-09-02 Antonio Diaz Diaz <ant_diaz@teleline.es> 203 204 * Version 1.8 released. 205 * Compression time has been reduced by 4%. 206 * Lzdiff and lzgrep have been moved to the new package zutils. 207 * Fix warnings on systems where uint32_t != unsigned int. 208 2092009-06-25 Antonio Diaz Diaz <ant_diaz@teleline.es> 210 211 * Version 1.7 released. 212 * decoder.h (copy_block): Fix memcpy overlap introduced in 1.6. 213 2142009-06-22 Antonio Diaz Diaz <ant_diaz@teleline.es> 215 216 * Version 1.6 released. 217 * Decompression time has been reduced by 17%. 218 * Add decompression support for Sync Flush marker. 219 * Add support for the extension '.tbz' to lzdiff and lzgrep. 220 * Add man pages for lzdiff, lzgrep and lziprecover. 221 * encoder.cc (Matchfinder): Reduce memory use to 9x if input file is 222 smaller than dictionary size limit. 223 * decoder.cc: Add extra flush calls to improve partial decompression 224 of corrupt files. 225 * '--test' no longer needs '/dev/null'. 226 * Remove some 'bashisms' from lzdiff and lzgrep. 227 * Dictionary size for options '-1' to '-4' has been changed. 228 * main.cc (signal_handler): Declare as 'extern "C"'. 229 * Makefile.in: Extra files are now installed by default. 230 * check.sh: Test lziprecover. 231 * Add 'export LC_ALL=C' to all scripts. 232 2332009-04-12 Antonio Diaz Diaz <ant_diaz@teleline.es> 234 235 * Version 1.5 released. 236 * lzip.h: Implement coded dictionary size in Lzip_header. 237 * Fix some includes that prevented compilation with GCC 4.4. 238 * 'member_size' and 'volume_size' are now accurate limits. 239 * Compression speed has been improved. 240 * Implement bt4 type matchfinder. 241 * lzip.texinfo: New chapter 'Algorithm'. 242 * Lzdiff and lzgrep now accept '-h' for '--help' and 243 '-V' for '--version'. 244 * Makefile.in: Man page is now installed by default. 245 * check.sh: Verify that files are opened in binary mode. 246 2472009-01-24 Antonio Diaz Diaz <ant_diaz@teleline.es> 248 249 * Version 1.4 released. 250 * Implement compression of version 1 files. 251 * New options '-b, --member-size', '-S, --volume-size', and 252 '-o, --output'. 253 * main.cc: Read from non-regular files if '--stdout' is specified. 254 * Add 'lziprecover', a member recoverer program. 255 * unzcrash.cc: Test all 1-byte errors. 256 2572008-12-21 Antonio Diaz Diaz <ant_diaz@teleline.es> 258 259 * Version 1.3 released. 260 * This version automatically chooses the smallest possible 261 dictionary size for each file during compression, saving memory 262 during decompression. 263 * Implement decompression of version 1 files. 264 * check.sh: Replace 'diff -q' with 'cmp'. 265 2662008-12-10 Antonio Diaz Diaz <ant_diaz@teleline.es> 267 268 * Version 1.2 released. 269 * encoder.cc: A 1-byte read outside allocated memory has been fixed. 270 * lzip.h: Dictionary size limit has been reduced to 512MiB because 271 setting it to 1GiB causes overflow of a 32 bit integer. 272 * Add 'lzdiff', a diff/cmp wrapper for gzip, bzip2, lzip and 273 non-compressed files. 274 * Add 'lzgrep', a grep wrapper for gzip, bzip2, lzip and 275 non-compressed files. 276 * 'make install-info' should now work on Debian and OS X. 277 2782008-11-17 Antonio Diaz Diaz <ant_diaz@teleline.es> 279 280 * Version 1.1 released. 281 * Change short name of option '--dictionary-size' to '-s'. 282 * Change short name of option '--match-length' to '-m'. 283 * Change LONG_LONG_MAX to LLONG_MAX. 284 2852008-10-14 Antonio Diaz Diaz <ant_diaz@teleline.es> 286 287 * Version 1.0 released. 288 * '-tvv' shows file version and dictionary size. 289 2902008-09-30 Antonio Diaz Diaz <ant_diaz@teleline.es> 291 292 * Version 0.5 released. 293 * Decompression is now 1% faster. 294 2952008-09-23 Antonio Diaz Diaz <ant_diaz@teleline.es> 296 297 * Version 0.4 released. 298 * Code cleanup for global variable 'verbosity'. 299 * Regain the compression ratio of 0.2 with 5% faster speed. 300 * lzip.h: Fix compilation on systems where size_t != unsigned int. 301 3022008-09-15 Antonio Diaz Diaz <ant_diaz@teleline.es> 303 304 * Version 0.3 released. 305 * encoder.cc: Compression is now 15% faster, 1% worse. 306 * main.cc (main): Make option '-t' override '-c'. 307 * main.cc (decompress): Show 'done' instead of 'ok' when not testing. 308 * encoder.h: Use trials[] to return the list of pairs. 309 3102008-09-09 Antonio Diaz Diaz <ant_diaz@teleline.es> 311 312 * Version 0.2 released. 313 * encoder.cc: Small improvements in compression speed. 314 * Small documentation changes. 315 3162008-08-20 Antonio Diaz Diaz <ant_diaz@teleline.es> 317 318 * Version 0.1 released. 319 320 321Copyright (C) 2008-2021 Antonio Diaz Diaz. 322 323This file is a collection of facts, and thus it is not copyrightable, 324but just in case, you have unlimited permission to copy, distribute, and 325modify it. 326