|  |  | 
|  |  | 
|  | 0.9.0 | 
|  | ~~~~~ | 
|  | First version. | 
|  |  | 
|  |  | 
|  | 0.9.0a | 
|  | ~~~~~~ | 
|  | Removed 'ranlib' from Makefile, since most modern Unix-es | 
|  | don't need it, or even know about it. | 
|  |  | 
|  |  | 
|  | 0.9.0b | 
|  | ~~~~~~ | 
|  | Fixed a problem with error reporting in bzip2.c.  This does not effect | 
|  | the library in any way.  Problem is: versions 0.9.0 and 0.9.0a (of the | 
|  | program proper) compress and decompress correctly, but give misleading | 
|  | error messages (internal panics) when an I/O error occurs, instead of | 
|  | reporting the problem correctly.  This shouldn't give any data loss | 
|  | (as far as I can see), but is confusing. | 
|  |  | 
|  | Made the inline declarations disappear for non-GCC compilers. | 
|  |  | 
|  |  | 
|  | 0.9.0c | 
|  | ~~~~~~ | 
|  | Fixed some problems in the library pertaining to some boundary cases. | 
|  | This makes the library behave more correctly in those situations.  The | 
|  | fixes apply only to features (calls and parameters) not used by | 
|  | bzip2.c, so the non-fixedness of them in previous versions has no | 
|  | effect on reliability of bzip2.c. | 
|  |  | 
|  | In bzlib.c: | 
|  | * made zero-length BZ_FLUSH work correctly in bzCompress(). | 
|  | * fixed bzWrite/bzRead to ignore zero-length requests. | 
|  | * fixed bzread to correctly handle read requests after EOF. | 
|  | * wrong parameter order in call to bzDecompressInit in | 
|  | bzBuffToBuffDecompress.  Fixed. | 
|  |  | 
|  | In compress.c: | 
|  | * changed setting of nGroups in sendMTFValues() so as to | 
|  | do a bit better on small files.  This _does_ effect | 
|  | bzip2.c. | 
|  |  | 
|  |  | 
|  | 0.9.5a | 
|  | ~~~~~~ | 
|  | Major change: add a fallback sorting algorithm (blocksort.c) | 
|  | to give reasonable behaviour even for very repetitive inputs. | 
|  | Nuked --repetitive-best and --repetitive-fast since they are | 
|  | no longer useful. | 
|  |  | 
|  | Minor changes: mostly a whole bunch of small changes/ | 
|  | bugfixes in the driver (bzip2.c).  Changes pertaining to the | 
|  | user interface are: | 
|  |  | 
|  | allow decompression of symlink'd files to stdout | 
|  | decompress/test files even without .bz2 extension | 
|  | give more accurate error messages for I/O errors | 
|  | when compressing/decompressing to stdout, don't catch control-C | 
|  | read flags from BZIP2 and BZIP environment variables | 
|  | decline to break hard links to a file unless forced with -f | 
|  | allow -c flag even with no filenames | 
|  | preserve file ownerships as far as possible | 
|  | make -s -1 give the expected block size (100k) | 
|  | add a flag -q --quiet to suppress nonessential warnings | 
|  | stop decoding flags after --, so files beginning in - can be handled | 
|  | resolved inconsistent naming: bzcat or bz2cat ? | 
|  | bzip2 --help now returns 0 | 
|  |  | 
|  | Programming-level changes are: | 
|  |  | 
|  | fixed syntax error in GET_LL4 for Borland C++ 5.02 | 
|  | let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC} | 
|  | fix overshoot of mode-string end in bzopen_or_bzdopen | 
|  | wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... } | 
|  | close file handles under all error conditions | 
|  | added minor mods so it compiles with DJGPP out of the box | 
|  | fixed Makefile so it doesn't give problems with BSD make | 
|  | fix uninitialised memory reads in dlltest.c | 
|  |  | 
|  | 0.9.5b | 
|  | ~~~~~~ | 
|  | Open stdin/stdout in binary mode for DJGPP. | 
|  |  | 
|  | 0.9.5c | 
|  | ~~~~~~ | 
|  | Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1.  The + 1 | 
|  | version could cause the sorted order to be wrong in some extremely | 
|  | obscure cases.  Also changed setting of quadrant in blocksort.c. | 
|  |  | 
|  | 0.9.5d | 
|  | ~~~~~~ | 
|  | The only functional change is to make bzlibVersion() in the library | 
|  | return the correct string.  This has no effect whatsoever on the | 
|  | functioning of the bzip2 program or library.  Added a couple of casts | 
|  | so the library compiles without warnings at level 3 in MS Visual | 
|  | Studio 6.0.  Included a Y2K statement in the file Y2K_INFO.  All other | 
|  | changes are minor documentation changes. | 
|  |  | 
|  | 1.0 | 
|  | ~~~ | 
|  | Several minor bugfixes and enhancements: | 
|  |  | 
|  | * Large file support.  The library uses 64-bit counters to | 
|  | count the volume of data passing through it.  bzip2.c | 
|  | is now compiled with -D_FILE_OFFSET_BITS=64 to get large | 
|  | file support from the C library.  -v correctly prints out | 
|  | file sizes greater than 4 gigabytes.  All these changes have | 
|  | been made without assuming a 64-bit platform or a C compiler | 
|  | which supports 64-bit ints, so, except for the C library | 
|  | aspect, they are fully portable. | 
|  |  | 
|  | * Decompression robustness.  The library/program should be | 
|  | robust to any corruption of compressed data, detecting and | 
|  | handling _all_ corruption, instead of merely relying on | 
|  | the CRCs.  What this means is that the program should | 
|  | never crash, given corrupted data, and the library should | 
|  | always return BZ_DATA_ERROR. | 
|  |  | 
|  | * Fixed an obscure race-condition bug only ever observed on | 
|  | Solaris, in which, if you were very unlucky and issued | 
|  | control-C at exactly the wrong time, both input and output | 
|  | files would be deleted. | 
|  |  | 
|  | * Don't run out of file handles on test/decompression when | 
|  | large numbers of files have invalid magic numbers. | 
|  |  | 
|  | * Avoid library namespace pollution.  Prefix all exported | 
|  | symbols with BZ2_. | 
|  |  | 
|  | * Minor sorting enhancements from my DCC2000 paper. | 
|  |  | 
|  | * Advance the version number to 1.0, so as to counteract the | 
|  | (false-in-this-case) impression some people have that programs | 
|  | with version numbers less than 1.0 are in someway, experimental, | 
|  | pre-release versions. | 
|  |  | 
|  | * Create an initial Makefile-libbz2_so to build a shared library. | 
|  | Yes, I know I should really use libtool et al ... | 
|  |  | 
|  | * Make the program exit with 2 instead of 0 when decompression | 
|  | fails due to a bad magic number (ie, an invalid bzip2 header). | 
|  | Also exit with 1 (as the manual claims :-) whenever a diagnostic | 
|  | message would have been printed AND the corresponding operation | 
|  | is aborted, for example | 
|  | bzip2: Output file xx already exists. | 
|  | When a diagnostic message is printed but the operation is not | 
|  | aborted, for example | 
|  | bzip2: Can't guess original name for wurble -- using wurble.out | 
|  | then the exit value 0 is returned, unless some other problem is | 
|  | also detected. | 
|  |  | 
|  | I think it corresponds more closely to what the manual claims now. | 
|  |  | 
|  |  | 
|  | 1.0.1 | 
|  | ~~~~~ | 
|  | * Modified dlltest.c so it uses the new BZ2_ naming scheme. | 
|  | * Modified makefile-msc to fix minor build probs on Win2k. | 
|  | * Updated README.COMPILATION.PROBLEMS. | 
|  |  | 
|  | There are no functionality changes or bug fixes relative to version | 
|  | 1.0.0.  This is just a documentation update + a fix for minor Win32 | 
|  | build problems.  For almost everyone, upgrading from 1.0.0 to 1.0.1 is | 
|  | utterly pointless.  Don't bother. |