1df9de0ebSDavid E. O'Brien 2df9de0ebSDavid E. O'Brien 3df9de0ebSDavid E. O'Brien0.9.0 4df9de0ebSDavid E. O'Brien~~~~~ 5df9de0ebSDavid E. O'BrienFirst version. 6df9de0ebSDavid E. O'Brien 7df9de0ebSDavid E. O'Brien 8df9de0ebSDavid E. O'Brien0.9.0a 9df9de0ebSDavid E. O'Brien~~~~~~ 10df9de0ebSDavid E. O'BrienRemoved 'ranlib' from Makefile, since most modern Unix-es 11df9de0ebSDavid E. O'Briendon't need it, or even know about it. 12df9de0ebSDavid E. O'Brien 13df9de0ebSDavid E. O'Brien 14df9de0ebSDavid E. O'Brien0.9.0b 15df9de0ebSDavid E. O'Brien~~~~~~ 16df9de0ebSDavid E. O'BrienFixed a problem with error reporting in bzip2.c. This does not effect 17df9de0ebSDavid E. O'Brienthe library in any way. Problem is: versions 0.9.0 and 0.9.0a (of the 18df9de0ebSDavid E. O'Brienprogram proper) compress and decompress correctly, but give misleading 19df9de0ebSDavid E. O'Brienerror messages (internal panics) when an I/O error occurs, instead of 20df9de0ebSDavid E. O'Brienreporting the problem correctly. This shouldn't give any data loss 21df9de0ebSDavid E. O'Brien(as far as I can see), but is confusing. 22df9de0ebSDavid E. O'Brien 23df9de0ebSDavid E. O'BrienMade the inline declarations disappear for non-GCC compilers. 24df9de0ebSDavid E. O'Brien 25df9de0ebSDavid E. O'Brien 26df9de0ebSDavid E. O'Brien0.9.0c 27df9de0ebSDavid E. O'Brien~~~~~~ 28df9de0ebSDavid E. O'BrienFixed some problems in the library pertaining to some boundary cases. 29df9de0ebSDavid E. O'BrienThis makes the library behave more correctly in those situations. The 30df9de0ebSDavid E. O'Brienfixes apply only to features (calls and parameters) not used by 31df9de0ebSDavid E. O'Brienbzip2.c, so the non-fixedness of them in previous versions has no 32df9de0ebSDavid E. O'Brieneffect on reliability of bzip2.c. 33df9de0ebSDavid E. O'Brien 34df9de0ebSDavid E. O'BrienIn bzlib.c: 35df9de0ebSDavid E. O'Brien * made zero-length BZ_FLUSH work correctly in bzCompress(). 36df9de0ebSDavid E. O'Brien * fixed bzWrite/bzRead to ignore zero-length requests. 37df9de0ebSDavid E. O'Brien * fixed bzread to correctly handle read requests after EOF. 38df9de0ebSDavid E. O'Brien * wrong parameter order in call to bzDecompressInit in 39df9de0ebSDavid E. O'Brien bzBuffToBuffDecompress. Fixed. 40df9de0ebSDavid E. O'Brien 41df9de0ebSDavid E. O'BrienIn compress.c: 42df9de0ebSDavid E. O'Brien * changed setting of nGroups in sendMTFValues() so as to 43df9de0ebSDavid E. O'Brien do a bit better on small files. This _does_ effect 44df9de0ebSDavid E. O'Brien bzip2.c. 45df9de0ebSDavid E. O'Brien 46df9de0ebSDavid E. O'Brien 47df9de0ebSDavid E. O'Brien0.9.5a 48df9de0ebSDavid E. O'Brien~~~~~~ 49df9de0ebSDavid E. O'BrienMajor change: add a fallback sorting algorithm (blocksort.c) 50df9de0ebSDavid E. O'Briento give reasonable behaviour even for very repetitive inputs. 51df9de0ebSDavid E. O'BrienNuked --repetitive-best and --repetitive-fast since they are 52df9de0ebSDavid E. O'Brienno longer useful. 53df9de0ebSDavid E. O'Brien 54df9de0ebSDavid E. O'BrienMinor changes: mostly a whole bunch of small changes/ 55df9de0ebSDavid E. O'Brienbugfixes in the driver (bzip2.c). Changes pertaining to the 56df9de0ebSDavid E. O'Brienuser interface are: 57df9de0ebSDavid E. O'Brien 58df9de0ebSDavid E. O'Brien allow decompression of symlink'd files to stdout 59df9de0ebSDavid E. O'Brien decompress/test files even without .bz2 extension 60df9de0ebSDavid E. O'Brien give more accurate error messages for I/O errors 61df9de0ebSDavid E. O'Brien when compressing/decompressing to stdout, don't catch control-C 62df9de0ebSDavid E. O'Brien read flags from BZIP2 and BZIP environment variables 63df9de0ebSDavid E. O'Brien decline to break hard links to a file unless forced with -f 64df9de0ebSDavid E. O'Brien allow -c flag even with no filenames 65df9de0ebSDavid E. O'Brien preserve file ownerships as far as possible 66df9de0ebSDavid E. O'Brien make -s -1 give the expected block size (100k) 67df9de0ebSDavid E. O'Brien add a flag -q --quiet to suppress nonessential warnings 68df9de0ebSDavid E. O'Brien stop decoding flags after --, so files beginning in - can be handled 69df9de0ebSDavid E. O'Brien resolved inconsistent naming: bzcat or bz2cat ? 70df9de0ebSDavid E. O'Brien bzip2 --help now returns 0 71df9de0ebSDavid E. O'Brien 72df9de0ebSDavid E. O'BrienProgramming-level changes are: 73df9de0ebSDavid E. O'Brien 74df9de0ebSDavid E. O'Brien fixed syntax error in GET_LL4 for Borland C++ 5.02 75df9de0ebSDavid E. O'Brien let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC} 76df9de0ebSDavid E. O'Brien fix overshoot of mode-string end in bzopen_or_bzdopen 77df9de0ebSDavid E. O'Brien wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... } 78df9de0ebSDavid E. O'Brien close file handles under all error conditions 79df9de0ebSDavid E. O'Brien added minor mods so it compiles with DJGPP out of the box 80df9de0ebSDavid E. O'Brien fixed Makefile so it doesn't give problems with BSD make 81df9de0ebSDavid E. O'Brien fix uninitialised memory reads in dlltest.c 82df9de0ebSDavid E. O'Brien 83df9de0ebSDavid E. O'Brien0.9.5b 84df9de0ebSDavid E. O'Brien~~~~~~ 85df9de0ebSDavid E. O'BrienOpen stdin/stdout in binary mode for DJGPP. 86df9de0ebSDavid E. O'Brien 87df9de0ebSDavid E. O'Brien0.9.5c 88df9de0ebSDavid E. O'Brien~~~~~~ 89df9de0ebSDavid E. O'BrienChanged BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1. The + 1 90df9de0ebSDavid E. O'Brienversion could cause the sorted order to be wrong in some extremely 91df9de0ebSDavid E. O'Brienobscure cases. Also changed setting of quadrant in blocksort.c. 92df9de0ebSDavid E. O'Brien 93df9de0ebSDavid E. O'Brien0.9.5d 94df9de0ebSDavid E. O'Brien~~~~~~ 95df9de0ebSDavid E. O'BrienThe only functional change is to make bzlibVersion() in the library 96df9de0ebSDavid E. O'Brienreturn the correct string. This has no effect whatsoever on the 97df9de0ebSDavid E. O'Brienfunctioning of the bzip2 program or library. Added a couple of casts 98df9de0ebSDavid E. O'Brienso the library compiles without warnings at level 3 in MS Visual 99df9de0ebSDavid E. O'BrienStudio 6.0. Included a Y2K statement in the file Y2K_INFO. All other 100df9de0ebSDavid E. O'Brienchanges are minor documentation changes. 101df9de0ebSDavid E. O'Brien 102df9de0ebSDavid E. O'Brien1.0 103df9de0ebSDavid E. O'Brien~~~ 104df9de0ebSDavid E. O'BrienSeveral minor bugfixes and enhancements: 105df9de0ebSDavid E. O'Brien 106df9de0ebSDavid E. O'Brien* Large file support. The library uses 64-bit counters to 107df9de0ebSDavid E. O'Brien count the volume of data passing through it. bzip2.c 108df9de0ebSDavid E. O'Brien is now compiled with -D_FILE_OFFSET_BITS=64 to get large 109df9de0ebSDavid E. O'Brien file support from the C library. -v correctly prints out 110df9de0ebSDavid E. O'Brien file sizes greater than 4 gigabytes. All these changes have 111df9de0ebSDavid E. O'Brien been made without assuming a 64-bit platform or a C compiler 112df9de0ebSDavid E. O'Brien which supports 64-bit ints, so, except for the C library 113df9de0ebSDavid E. O'Brien aspect, they are fully portable. 114df9de0ebSDavid E. O'Brien 115df9de0ebSDavid E. O'Brien* Decompression robustness. The library/program should be 116df9de0ebSDavid E. O'Brien robust to any corruption of compressed data, detecting and 117df9de0ebSDavid E. O'Brien handling _all_ corruption, instead of merely relying on 118df9de0ebSDavid E. O'Brien the CRCs. What this means is that the program should 119df9de0ebSDavid E. O'Brien never crash, given corrupted data, and the library should 120df9de0ebSDavid E. O'Brien always return BZ_DATA_ERROR. 121df9de0ebSDavid E. O'Brien 122df9de0ebSDavid E. O'Brien* Fixed an obscure race-condition bug only ever observed on 123df9de0ebSDavid E. O'Brien Solaris, in which, if you were very unlucky and issued 124df9de0ebSDavid E. O'Brien control-C at exactly the wrong time, both input and output 125df9de0ebSDavid E. O'Brien files would be deleted. 126df9de0ebSDavid E. O'Brien 127df9de0ebSDavid E. O'Brien* Don't run out of file handles on test/decompression when 128df9de0ebSDavid E. O'Brien large numbers of files have invalid magic numbers. 129df9de0ebSDavid E. O'Brien 130df9de0ebSDavid E. O'Brien* Avoid library namespace pollution. Prefix all exported 131df9de0ebSDavid E. O'Brien symbols with BZ2_. 132df9de0ebSDavid E. O'Brien 133df9de0ebSDavid E. O'Brien* Minor sorting enhancements from my DCC2000 paper. 134df9de0ebSDavid E. O'Brien 135df9de0ebSDavid E. O'Brien* Advance the version number to 1.0, so as to counteract the 136df9de0ebSDavid E. O'Brien (false-in-this-case) impression some people have that programs 137df9de0ebSDavid E. O'Brien with version numbers less than 1.0 are in some way, experimental, 138df9de0ebSDavid E. O'Brien pre-release versions. 139df9de0ebSDavid E. O'Brien 140df9de0ebSDavid E. O'Brien* Create an initial Makefile-libbz2_so to build a shared library. 141df9de0ebSDavid E. O'Brien Yes, I know I should really use libtool et al ... 142df9de0ebSDavid E. O'Brien 143df9de0ebSDavid E. O'Brien* Make the program exit with 2 instead of 0 when decompression 144df9de0ebSDavid E. O'Brien fails due to a bad magic number (ie, an invalid bzip2 header). 145df9de0ebSDavid E. O'Brien Also exit with 1 (as the manual claims :-) whenever a diagnostic 146df9de0ebSDavid E. O'Brien message would have been printed AND the corresponding operation 147df9de0ebSDavid E. O'Brien is aborted, for example 148df9de0ebSDavid E. O'Brien bzip2: Output file xx already exists. 149df9de0ebSDavid E. O'Brien When a diagnostic message is printed but the operation is not 150df9de0ebSDavid E. O'Brien aborted, for example 151df9de0ebSDavid E. O'Brien bzip2: Can't guess original name for wurble -- using wurble.out 152df9de0ebSDavid E. O'Brien then the exit value 0 is returned, unless some other problem is 153df9de0ebSDavid E. O'Brien also detected. 154df9de0ebSDavid E. O'Brien 155df9de0ebSDavid E. O'Brien I think it corresponds more closely to what the manual claims now. 156df9de0ebSDavid E. O'Brien 157df9de0ebSDavid E. O'Brien 158df9de0ebSDavid E. O'Brien1.0.1 159df9de0ebSDavid E. O'Brien~~~~~ 160df9de0ebSDavid E. O'Brien* Modified dlltest.c so it uses the new BZ2_ naming scheme. 161df9de0ebSDavid E. O'Brien* Modified makefile-msc to fix minor build probs on Win2k. 162df9de0ebSDavid E. O'Brien* Updated README.COMPILATION.PROBLEMS. 163df9de0ebSDavid E. O'Brien 164df9de0ebSDavid E. O'BrienThere are no functionality changes or bug fixes relative to version 165df9de0ebSDavid E. O'Brien1.0.0. This is just a documentation update + a fix for minor Win32 166df9de0ebSDavid E. O'Brienbuild problems. For almost everyone, upgrading from 1.0.0 to 1.0.1 is 167df9de0ebSDavid E. O'Brienutterly pointless. Don't bother. 168ed14b6e0SMaxim Sobolev 169ed14b6e0SMaxim Sobolev 170ed14b6e0SMaxim Sobolev1.0.2 171ed14b6e0SMaxim Sobolev~~~~~ 172ed14b6e0SMaxim SobolevA bug fix release, addressing various minor issues which have appeared 173ed14b6e0SMaxim Sobolevin the 18 or so months since 1.0.1 was released. Most of the fixes 174ed14b6e0SMaxim Sobolevare to do with file-handling or documentation bugs. To the best of my 175ed14b6e0SMaxim Sobolevknowledge, there have been no data-loss-causing bugs reported in the 176ed14b6e0SMaxim Sobolevcompression/decompression engine of 1.0.0 or 1.0.1. 177ed14b6e0SMaxim Sobolev 178ed14b6e0SMaxim SobolevNote that this release does not improve the rather crude build system 179ed14b6e0SMaxim Sobolevfor Unix platforms. The general plan here is to autoconfiscate/ 180ed14b6e0SMaxim Sobolevlibtoolise 1.0.2 soon after release, and release the result as 1.1.0 181ed14b6e0SMaxim Sobolevor perhaps 1.2.0. That, however, is still just a plan at this point. 182ed14b6e0SMaxim Sobolev 183ed14b6e0SMaxim SobolevHere are the changes in 1.0.2. Bug-reporters and/or patch-senders in 184ed14b6e0SMaxim Sobolevparentheses. 185ed14b6e0SMaxim Sobolev 186ed14b6e0SMaxim Sobolev* Fix an infinite segfault loop in 1.0.1 when a directory is 187ed14b6e0SMaxim Sobolev encountered in -f (force) mode. 188ed14b6e0SMaxim Sobolev (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt) 189ed14b6e0SMaxim Sobolev 190ed14b6e0SMaxim Sobolev* Avoid double fclose() of output file on certain I/O error paths. 191ed14b6e0SMaxim Sobolev (Solar Designer) 192ed14b6e0SMaxim Sobolev 193ed14b6e0SMaxim Sobolev* Don't fail with internal error 1007 when fed a long stream (> 48MB) 194ed14b6e0SMaxim Sobolev of byte 251. Also print useful message suggesting that 1007s may be 195ed14b6e0SMaxim Sobolev caused by bad memory. 196ed14b6e0SMaxim Sobolev (noticed by Juan Pedro Vallejo, fixed by me) 197ed14b6e0SMaxim Sobolev 198ed14b6e0SMaxim Sobolev* Fix uninitialised variable silly bug in demo prog dlltest.c. 199ed14b6e0SMaxim Sobolev (Jorj Bauer) 200ed14b6e0SMaxim Sobolev 201ed14b6e0SMaxim Sobolev* Remove 512-MB limitation on recovered file size for bzip2recover 202ed14b6e0SMaxim Sobolev on selected platforms which support 64-bit ints. At the moment 203ed14b6e0SMaxim Sobolev all GCC supported platforms, and Win32. 204ed14b6e0SMaxim Sobolev (me, Alson van der Meulen) 205ed14b6e0SMaxim Sobolev 206ed14b6e0SMaxim Sobolev* Hard-code header byte values, to give correct operation on platforms 207ed14b6e0SMaxim Sobolev using EBCDIC as their native character set (IBM's OS/390). 208ed14b6e0SMaxim Sobolev (Leland Lucius) 209ed14b6e0SMaxim Sobolev 210ed14b6e0SMaxim Sobolev* Copy file access times correctly. 211ed14b6e0SMaxim Sobolev (Marty Leisner) 212ed14b6e0SMaxim Sobolev 213ed14b6e0SMaxim Sobolev* Add distclean and check targets to Makefile. 214ed14b6e0SMaxim Sobolev (Michael Carmack) 215ed14b6e0SMaxim Sobolev 216ed14b6e0SMaxim Sobolev* Parameterise use of ar and ranlib in Makefile. Also add $(LDFLAGS). 217ed14b6e0SMaxim Sobolev (Rich Ireland, Bo Thorsen) 218ed14b6e0SMaxim Sobolev 219ed14b6e0SMaxim Sobolev* Pass -p (create parent dirs as needed) to mkdir during make install. 220ed14b6e0SMaxim Sobolev (Jeremy Fusco) 221ed14b6e0SMaxim Sobolev 222ed14b6e0SMaxim Sobolev* Dereference symlinks when copying file permissions in -f mode. 223ed14b6e0SMaxim Sobolev (Volker Schmidt) 224ed14b6e0SMaxim Sobolev 225ed14b6e0SMaxim Sobolev* Majorly simplify implementation of uInt64_qrm10. 226ed14b6e0SMaxim Sobolev (Bo Lindbergh) 227ed14b6e0SMaxim Sobolev 228ed14b6e0SMaxim Sobolev* Check the input file still exists before deleting the output one, 229ed14b6e0SMaxim Sobolev when aborting in cleanUpAndFail(). 230ed14b6e0SMaxim Sobolev (Joerg Prante, Robert Linden, Matthias Krings) 231ed14b6e0SMaxim Sobolev 232ed14b6e0SMaxim SobolevAlso a bunch of patches courtesy of Philippe Troin, the Debian maintainer 233ed14b6e0SMaxim Sobolevof bzip2: 234ed14b6e0SMaxim Sobolev 235ed14b6e0SMaxim Sobolev* Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore. 236ed14b6e0SMaxim Sobolev 237ed14b6e0SMaxim Sobolev* Spelling changes and minor enhancements in bzip2.1. 238ed14b6e0SMaxim Sobolev 239ed14b6e0SMaxim Sobolev* Avoid race condition between creating the output file and setting its 240ed14b6e0SMaxim Sobolev interim permissions safely, by using fopen_output_safely(). 241ed14b6e0SMaxim Sobolev No changes to bzip2recover since there is no issue with file 242ed14b6e0SMaxim Sobolev permissions there. 243ed14b6e0SMaxim Sobolev 244ed14b6e0SMaxim Sobolev* do not print senseless report with -v when compressing an empty 245ed14b6e0SMaxim Sobolev file. 246ed14b6e0SMaxim Sobolev 247ed14b6e0SMaxim Sobolev* bzcat -f works on non-bzip2 files. 248ed14b6e0SMaxim Sobolev 249ed14b6e0SMaxim Sobolev* do not try to escape shell meta-characters on unix (the shell takes 250ed14b6e0SMaxim Sobolev care of these). 251ed14b6e0SMaxim Sobolev 252ed14b6e0SMaxim Sobolev* added --fast and --best aliases for -1 -9 for gzip compatibility. 253ed14b6e0SMaxim Sobolev 254