xref: /plan9-contrib/sys/src/cmd/bzip2/CHANGES (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
1*59cc4ca5SDavid du Colombier
2*59cc4ca5SDavid du Colombier
3*59cc4ca5SDavid du Colombier0.9.0
4*59cc4ca5SDavid du Colombier~~~~~
5*59cc4ca5SDavid du ColombierFirst version.
6*59cc4ca5SDavid du Colombier
7*59cc4ca5SDavid du Colombier
8*59cc4ca5SDavid du Colombier0.9.0a
9*59cc4ca5SDavid du Colombier~~~~~~
10*59cc4ca5SDavid du ColombierRemoved 'ranlib' from Makefile, since most modern Unix-es
11*59cc4ca5SDavid du Colombierdon't need it, or even know about it.
12*59cc4ca5SDavid du Colombier
13*59cc4ca5SDavid du Colombier
14*59cc4ca5SDavid du Colombier0.9.0b
15*59cc4ca5SDavid du Colombier~~~~~~
16*59cc4ca5SDavid du ColombierFixed a problem with error reporting in bzip2.c.  This does not effect
17*59cc4ca5SDavid du Colombierthe library in any way.  Problem is: versions 0.9.0 and 0.9.0a (of the
18*59cc4ca5SDavid du Colombierprogram proper) compress and decompress correctly, but give misleading
19*59cc4ca5SDavid du Colombiererror messages (internal panics) when an I/O error occurs, instead of
20*59cc4ca5SDavid du Colombierreporting the problem correctly.  This shouldn't give any data loss
21*59cc4ca5SDavid du Colombier(as far as I can see), but is confusing.
22*59cc4ca5SDavid du Colombier
23*59cc4ca5SDavid du ColombierMade the inline declarations disappear for non-GCC compilers.
24*59cc4ca5SDavid du Colombier
25*59cc4ca5SDavid du Colombier
26*59cc4ca5SDavid du Colombier0.9.0c
27*59cc4ca5SDavid du Colombier~~~~~~
28*59cc4ca5SDavid du ColombierFixed some problems in the library pertaining to some boundary cases.
29*59cc4ca5SDavid du ColombierThis makes the library behave more correctly in those situations.  The
30*59cc4ca5SDavid du Colombierfixes apply only to features (calls and parameters) not used by
31*59cc4ca5SDavid du Colombierbzip2.c, so the non-fixedness of them in previous versions has no
32*59cc4ca5SDavid du Colombiereffect on reliability of bzip2.c.
33*59cc4ca5SDavid du Colombier
34*59cc4ca5SDavid du ColombierIn bzlib.c:
35*59cc4ca5SDavid du Colombier   * made zero-length BZ_FLUSH work correctly in bzCompress().
36*59cc4ca5SDavid du Colombier   * fixed bzWrite/bzRead to ignore zero-length requests.
37*59cc4ca5SDavid du Colombier   * fixed bzread to correctly handle read requests after EOF.
38*59cc4ca5SDavid du Colombier   * wrong parameter order in call to bzDecompressInit in
39*59cc4ca5SDavid du Colombier     bzBuffToBuffDecompress.  Fixed.
40*59cc4ca5SDavid du Colombier
41*59cc4ca5SDavid du ColombierIn compress.c:
42*59cc4ca5SDavid du Colombier   * changed setting of nGroups in sendMTFValues() so as to
43*59cc4ca5SDavid du Colombier     do a bit better on small files.  This _does_ effect
44*59cc4ca5SDavid du Colombier     bzip2.c.
45*59cc4ca5SDavid du Colombier
46*59cc4ca5SDavid du Colombier
47*59cc4ca5SDavid du Colombier0.9.5a
48*59cc4ca5SDavid du Colombier~~~~~~
49*59cc4ca5SDavid du ColombierMajor change: add a fallback sorting algorithm (blocksort.c)
50*59cc4ca5SDavid du Colombierto give reasonable behaviour even for very repetitive inputs.
51*59cc4ca5SDavid du ColombierNuked --repetitive-best and --repetitive-fast since they are
52*59cc4ca5SDavid du Colombierno longer useful.
53*59cc4ca5SDavid du Colombier
54*59cc4ca5SDavid du ColombierMinor changes: mostly a whole bunch of small changes/
55*59cc4ca5SDavid du Colombierbugfixes in the driver (bzip2.c).  Changes pertaining to the
56*59cc4ca5SDavid du Colombieruser interface are:
57*59cc4ca5SDavid du Colombier
58*59cc4ca5SDavid du Colombier   allow decompression of symlink'd files to stdout
59*59cc4ca5SDavid du Colombier   decompress/test files even without .bz2 extension
60*59cc4ca5SDavid du Colombier   give more accurate error messages for I/O errors
61*59cc4ca5SDavid du Colombier   when compressing/decompressing to stdout, don't catch control-C
62*59cc4ca5SDavid du Colombier   read flags from BZIP2 and BZIP environment variables
63*59cc4ca5SDavid du Colombier   decline to break hard links to a file unless forced with -f
64*59cc4ca5SDavid du Colombier   allow -c flag even with no filenames
65*59cc4ca5SDavid du Colombier   preserve file ownerships as far as possible
66*59cc4ca5SDavid du Colombier   make -s -1 give the expected block size (100k)
67*59cc4ca5SDavid du Colombier   add a flag -q --quiet to suppress nonessential warnings
68*59cc4ca5SDavid du Colombier   stop decoding flags after --, so files beginning in - can be handled
69*59cc4ca5SDavid du Colombier   resolved inconsistent naming: bzcat or bz2cat ?
70*59cc4ca5SDavid du Colombier   bzip2 --help now returns 0
71*59cc4ca5SDavid du Colombier
72*59cc4ca5SDavid du ColombierProgramming-level changes are:
73*59cc4ca5SDavid du Colombier
74*59cc4ca5SDavid du Colombier   fixed syntax error in GET_LL4 for Borland C++ 5.02
75*59cc4ca5SDavid du Colombier   let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC}
76*59cc4ca5SDavid du Colombier   fix overshoot of mode-string end in bzopen_or_bzdopen
77*59cc4ca5SDavid du Colombier   wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... }
78*59cc4ca5SDavid du Colombier   close file handles under all error conditions
79*59cc4ca5SDavid du Colombier   added minor mods so it compiles with DJGPP out of the box
80*59cc4ca5SDavid du Colombier   fixed Makefile so it doesn't give problems with BSD make
81*59cc4ca5SDavid du Colombier   fix uninitialised memory reads in dlltest.c
82*59cc4ca5SDavid du Colombier
83*59cc4ca5SDavid du Colombier0.9.5b
84*59cc4ca5SDavid du Colombier~~~~~~
85*59cc4ca5SDavid du ColombierOpen stdin/stdout in binary mode for DJGPP.
86*59cc4ca5SDavid du Colombier
87*59cc4ca5SDavid du Colombier0.9.5c
88*59cc4ca5SDavid du Colombier~~~~~~
89*59cc4ca5SDavid du ColombierChanged BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1.  The + 1
90*59cc4ca5SDavid du Colombierversion could cause the sorted order to be wrong in some extremely
91*59cc4ca5SDavid du Colombierobscure cases.  Also changed setting of quadrant in blocksort.c.
92*59cc4ca5SDavid du Colombier
93*59cc4ca5SDavid du Colombier0.9.5d
94*59cc4ca5SDavid du Colombier~~~~~~
95*59cc4ca5SDavid du ColombierThe only functional change is to make bzlibVersion() in the library
96*59cc4ca5SDavid du Colombierreturn the correct string.  This has no effect whatsoever on the
97*59cc4ca5SDavid du Colombierfunctioning of the bzip2 program or library.  Added a couple of casts
98*59cc4ca5SDavid du Colombierso the library compiles without warnings at level 3 in MS Visual
99*59cc4ca5SDavid du ColombierStudio 6.0.  Included a Y2K statement in the file Y2K_INFO.  All other
100*59cc4ca5SDavid du Colombierchanges are minor documentation changes.
101*59cc4ca5SDavid du Colombier
102*59cc4ca5SDavid du Colombier1.0
103*59cc4ca5SDavid du Colombier~~~
104*59cc4ca5SDavid du ColombierSeveral minor bugfixes and enhancements:
105*59cc4ca5SDavid du Colombier
106*59cc4ca5SDavid du Colombier* Large file support.  The library uses 64-bit counters to
107*59cc4ca5SDavid du Colombier  count the volume of data passing through it.  bzip2.c
108*59cc4ca5SDavid du Colombier  is now compiled with -D_FILE_OFFSET_BITS=64 to get large
109*59cc4ca5SDavid du Colombier  file support from the C library.  -v correctly prints out
110*59cc4ca5SDavid du Colombier  file sizes greater than 4 gigabytes.  All these changes have
111*59cc4ca5SDavid du Colombier  been made without assuming a 64-bit platform or a C compiler
112*59cc4ca5SDavid du Colombier  which supports 64-bit ints, so, except for the C library
113*59cc4ca5SDavid du Colombier  aspect, they are fully portable.
114*59cc4ca5SDavid du Colombier
115*59cc4ca5SDavid du Colombier* Decompression robustness.  The library/program should be
116*59cc4ca5SDavid du Colombier  robust to any corruption of compressed data, detecting and
117*59cc4ca5SDavid du Colombier  handling _all_ corruption, instead of merely relying on
118*59cc4ca5SDavid du Colombier  the CRCs.  What this means is that the program should
119*59cc4ca5SDavid du Colombier  never crash, given corrupted data, and the library should
120*59cc4ca5SDavid du Colombier  always return BZ_DATA_ERROR.
121*59cc4ca5SDavid du Colombier
122*59cc4ca5SDavid du Colombier* Fixed an obscure race-condition bug only ever observed on
123*59cc4ca5SDavid du Colombier  Solaris, in which, if you were very unlucky and issued
124*59cc4ca5SDavid du Colombier  control-C at exactly the wrong time, both input and output
125*59cc4ca5SDavid du Colombier  files would be deleted.
126*59cc4ca5SDavid du Colombier
127*59cc4ca5SDavid du Colombier* Don't run out of file handles on test/decompression when
128*59cc4ca5SDavid du Colombier  large numbers of files have invalid magic numbers.
129*59cc4ca5SDavid du Colombier
130*59cc4ca5SDavid du Colombier* Avoid library namespace pollution.  Prefix all exported
131*59cc4ca5SDavid du Colombier  symbols with BZ2_.
132*59cc4ca5SDavid du Colombier
133*59cc4ca5SDavid du Colombier* Minor sorting enhancements from my DCC2000 paper.
134*59cc4ca5SDavid du Colombier
135*59cc4ca5SDavid du Colombier* Advance the version number to 1.0, so as to counteract the
136*59cc4ca5SDavid du Colombier  (false-in-this-case) impression some people have that programs
137*59cc4ca5SDavid du Colombier  with version numbers less than 1.0 are in someway, experimental,
138*59cc4ca5SDavid du Colombier  pre-release versions.
139*59cc4ca5SDavid du Colombier
140*59cc4ca5SDavid du Colombier* Create an initial Makefile-libbz2_so to build a shared library.
141*59cc4ca5SDavid du Colombier  Yes, I know I should really use libtool et al ...
142*59cc4ca5SDavid du Colombier
143*59cc4ca5SDavid du Colombier* Make the program exit with 2 instead of 0 when decompression
144*59cc4ca5SDavid du Colombier  fails due to a bad magic number (ie, an invalid bzip2 header).
145*59cc4ca5SDavid du Colombier  Also exit with 1 (as the manual claims :-) whenever a diagnostic
146*59cc4ca5SDavid du Colombier  message would have been printed AND the corresponding operation
147*59cc4ca5SDavid du Colombier  is aborted, for example
148*59cc4ca5SDavid du Colombier     bzip2: Output file xx already exists.
149*59cc4ca5SDavid du Colombier  When a diagnostic message is printed but the operation is not
150*59cc4ca5SDavid du Colombier  aborted, for example
151*59cc4ca5SDavid du Colombier     bzip2: Can't guess original name for wurble -- using wurble.out
152*59cc4ca5SDavid du Colombier  then the exit value 0 is returned, unless some other problem is
153*59cc4ca5SDavid du Colombier  also detected.
154*59cc4ca5SDavid du Colombier
155*59cc4ca5SDavid du Colombier  I think it corresponds more closely to what the manual claims now.
156*59cc4ca5SDavid du Colombier
157*59cc4ca5SDavid du Colombier
158*59cc4ca5SDavid du Colombier1.0.1
159*59cc4ca5SDavid du Colombier~~~~~
160*59cc4ca5SDavid du Colombier* Modified dlltest.c so it uses the new BZ2_ naming scheme.
161*59cc4ca5SDavid du Colombier* Modified makefile-msc to fix minor build probs on Win2k.
162*59cc4ca5SDavid du Colombier* Updated README.COMPILATION.PROBLEMS.
163*59cc4ca5SDavid du Colombier
164*59cc4ca5SDavid du ColombierThere are no functionality changes or bug fixes relative to version
165*59cc4ca5SDavid du Colombier1.0.0.  This is just a documentation update + a fix for minor Win32
166*59cc4ca5SDavid du Colombierbuild problems.  For almost everyone, upgrading from 1.0.0 to 1.0.1 is
167*59cc4ca5SDavid du Colombierutterly pointless.  Don't bother.
168