

                ChangeLog file for zlib



Changes in 1.2.3 (18 July 2005)

- Apply security vulnerability fixes to contrib/infback9 as well

- Clean up some text files (carriage returns, trailing space)

- Update testzlib, vstudio, masmx64, and masmx86 in contrib [Vollant]



Changes in 1.2.2.4 (11 July 2005)

- Add inflatePrime() function for starting inflation at bit boundary

- Avoid some Visual C warnings in deflate.c

- Avoid more silly Visual C warnings in inflate.c and inftrees.c for 64-bit

  compile

- Fix some spelling errors in comments [Betts]

- Correct inflateInit2() error return documentation in zlib.h

- Added zran.c example of compressed data random access to examples

  directory, shows use of inflatePrime()

- Fix cast for assignments to strm->state in inflate.c and infback.c

- Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer]

- Move declarations of gf2 functions to right place in crc32.c [Oberhumer]

- Add cast in trees.c t avoid a warning [Oberhumer]

- Avoid some warnings in fitblk.c, gun.c, gzjoin.c in examples [Oberhumer]

- Update make_vms.com [Zinser]

- Initialize state->write in inflateReset() since copied in inflate_fast()

- Be more strict on incomplete code sets in inflate_table() and increase

  ENOUGH and MAXD -- this repairs a possible security vulnerability for

  invalid inflate input.  Thanks to Tavis Ormandy and Markus Oberhumer for

  discovering the vulnerability and providing test cases.

- Add ia64 support to configure for HP-UX [Smith]

- Add error return to gzread() for format or i/o error [Levin]

- Use malloc.h for OS/2 [Necasek]



Changes in 1.2.2.3 (27 May 2005)

- Replace 1U constants in inflate.c and inftrees.c for 64-bit compile

- Typecast fread() return values in gzio.c [Vollant]

- Remove trailing space in minigzip.c outmode (VC++ can't deal with it)

- Fix crc check bug in gzread() after gzungetc() [Heiner]

- Add the deflateTune() function to adjust internal compression parameters

- Add a fast gzip decompressor, gun.c, to examples (use of inflateBack)

- Remove an incorrect assertion in examples/zpipe.c

- Add C++ wrapper in infback9.h [Donais]

- Fix bug in inflateCopy() when decoding fixed codes

- Note in zlib.h how much deflateSetDictionary() actually uses

- Remove USE_DICT_HEAD in deflate.c (would mess up inflate if used)

- Add _WIN32_WCE to define WIN32 in zconf.in.h [Spencer]

- Don't include stderr.h or errno.h for _WIN32_WCE in zutil.h [Spencer]

- Add gzdirect() function to indicate transparent reads

- Update contrib/minizip [Vollant]

- Fix compilation of deflate.c when both ASMV and FASTEST [Oberhumer]

- Add casts in crc32.c to avoid warnings [Oberhumer]

- Add contrib/masmx64 [Vollant]

- Update contrib/asm586, asm686, masmx86, testzlib, vstudio [Vollant]



Changes in 1.2.2.2 (30 December 2004)

- Replace structure assignments in deflate.c and inflate.c with zmemcpy to

  avoid implicit memcpy calls (portability for no-library compilation)

- Increase sprintf() buffer size in gzdopen() to allow for large numbers

- Add INFLATE_STRICT to check distances against zlib header

- Improve WinCE errno handling and comments [Chang]

- Remove comment about no gzip header processing in FAQ

- Add Z_FIXED strategy option to deflateInit2() to force fixed trees

- Add updated make_vms.com [Coghlan], update README

- Create a new "examples" directory, move gzappend.c there, add zpipe.c,

  fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html.

- Add FAQ entry and comments in deflate.c on uninitialized memory access

- Add Solaris 9 make options in configure [Gilbert]

- Allow strerror() usage in gzio.c for STDC

- Fix DecompressBuf in contrib/delphi/ZLib.pas [ManChesTer]

- Update contrib/masmx86/inffas32.asm and gvmat32.asm [Vollant]

- Use z_off_t for adler32_combine() and crc32_combine() lengths

- Make adler32() much faster for small len

- Use OS_CODE in deflate() default gzip header



Changes in 1.2.2.1 (31 October 2004)

- Allow inflateSetDictionary() call for raw inflate

- Fix inflate header crc check bug for file names and comments

- Add deflateSetHeader() and gz_header structure for custom gzip headers

- Add inflateGetheader() to retrieve gzip headers

- Add crc32_combine() and adler32_combine() functions

- Add alloc_func, free_func, in_func, out_func to Z_PREFIX list

- Use zstreamp consistently in zlib.h (inflate_back functions)

- Remove GUNZIP condition from definition of inflate_mode in inflate.h

  and in contrib/inflate86/inffast.S [Truta, Anderson]

- Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson]

- Update projects/README.projects and projects/visualc6 [Truta]

- Update win32/DLL_FAQ.txt [Truta]

- Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta]

- Deprecate Z_ASCII; use Z_TEXT instead [Truta]

- Use a new algorithm for setting strm->data_type in trees.c [Truta]

- Do not define an exit() prototype in zutil.c unless DEBUG defined

- Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta]

- Add comment in zlib.h for Z_NO_FLUSH parameter to deflate()

- Fix Darwin build version identification [Peterson]



Changes in 1.2.2 (3 October 2004)

- Update zlib.h comments on gzip in-memory processing

- Set adler to 1 in inflateReset() to support Java test suite [Walles]

- Add contrib/dotzlib [Ravn]

- Update win32/DLL_FAQ.txt [Truta]

- Update contrib/minizip [Vollant]

- Move contrib/visual-basic.txt to old/ [Truta]

- Fix assembler builds in projects/visualc6/ [Truta]



Changes in 1.2.1.2 (9 September 2004)

- Update INDEX file

- Fix trees.c to update strm->data_type (no one ever noticed!)

- Fix bug in error case in inflate.c, infback.c, and infback9.c [Brown]

- Add "volatile" to crc table flag declaration (for DYNAMIC_CRC_TABLE)

- Add limited multitasking protection to DYNAMIC_CRC_TABLE

- Add NO_vsnprintf for VMS in zutil.h [Mozilla]

- Don't declare strerror() under VMS [Mozilla]

- Add comment to DYNAMIC_CRC_TABLE to use get_crc_table() to initialize

- Update contrib/ada [Anisimkov]

- Update contrib/minizip [Vollant]

- Fix configure to not hardcode directories for Darwin [Peterson]

- Fix gzio.c to not return error on empty files [Brown]

- Fix indentation; update version in contrib/delphi/ZLib.pas and

  contrib/pascal/zlibpas.pas [Truta]

- Update mkasm.bat in contrib/masmx86 [Truta]

- Update contrib/untgz [Truta]

- Add projects/README.projects [Truta]

- Add project for MS Visual C++ 6.0 in projects/visualc6 [Cadieux, Truta]

- Update win32/DLL_FAQ.txt [Truta]

- Update list of Z_PREFIX symbols in zconf.h [Randers-Pehrson, Truta]

- Remove an unnecessary assignment to curr in inftrees.c [Truta]

- Add OS/2 to exe builds in configure [Poltorak]

- Remove err dummy parameter in zlib.h [Kientzle]



Changes in 1.2.1.1 (9 January 2004)

- Update email address in README

- Several FAQ updates

- Fix a big fat bug in inftrees.c that prevented decoding valid

  dynamic blocks with only literals and no distance codes --

  Thanks to "Hot Emu" for the bug report and sample file

- Add a note to puff.c on no distance codes case.



Changes in 1.2.1 (17 November 2003)

- Remove a tab in contrib/gzappend/gzappend.c

- Update some interfaces in contrib for new zlib functions

- Update zlib version number in some contrib entries

- Add Windows CE definition for ptrdiff_t in zutil.h [Mai, Truta]

- Support shared libraries on Hurd and KFreeBSD [Brown]

- Fix error in NO_DIVIDE option of adler32.c



Changes in 1.2.0.8 (4 November 2003)

- Update version in contrib/delphi/ZLib.pas and contrib/pascal/zlibpas.pas

- Add experimental NO_DIVIDE #define in adler32.c

    - Possibly faster on some processors (let me know if it is)

- Correct Z_BLOCK to not return on first inflate call if no wrap

- Fix strm->data_type on inflate() return to correctly indicate EOB

- Add deflatePrime() function for appending in the middle of a byte

- Add contrib/gzappend for an example of appending to a stream

- Update win32/DLL_FAQ.txt [Truta]

- Delete Turbo C comment in README [Truta]

- Improve some indentation in zconf.h [Truta]

- Fix infinite loop on bad input in configure script [Church]

- Fix gzeof() for concatenated gzip files [Johnson]

- Add example to contrib/visual-basic.txt [Michael B.]

- Add -p to mkdir's in Makefile.in [vda]

- Fix configure to properly detect presence or lack of printf functions

- Add AS400 support [Monnerat]

- Add a little Cygwin support [Wilson]



Changes in 1.2.0.7 (21 September 2003)

- Correct some debug formats in contrib/infback9

- Cast a type in a debug statement in trees.c

- Change search and replace delimiter in configure from % to # [Beebe]

- Update contrib/untgz to 0.2 with various fixes [Truta]

- Add build support for Amiga [Nikl]

- Remove some directories in old that have been updated to 1.2

- Add dylib building for Mac OS X in configure and Makefile.in

- Remove old distribution stuff from Makefile

- Update README to point to DLL_FAQ.txt, and add comment on Mac OS X

- Update links in README



Changes in 1.2.0.6 (13 September 2003)

- Minor FAQ updates

- Update contrib/minizip to 1.00 [Vollant]

- Remove test of gz functions in example.c when GZ_COMPRESS defined [Truta]

- Update POSTINC comment for 68060 [Nikl]

- Add contrib/infback9 with deflate64 decoding (unsupported)

- For MVS define NO_vsnprintf and undefine FAR [van Burik]

- Add pragma for fdopen on MVS [van Burik]



Changes in 1.2.0.5 (8 September 2003)

- Add OF to inflateBackEnd() declaration in zlib.h

- Remember start when using gzdopen in the middle of a file

- Use internal off_t counters in gz* functions to properly handle seeks

- Perform more rigorous check for distance-too-far in inffast.c

- Add Z_BLOCK flush option to return from inflate at block boundary

- Set strm->data_type on return from inflate

    - Indicate bits unused, if at block boundary, and if in last block

- Replace size_t with ptrdiff_t in crc32.c, and check for correct size

- Add condition so old NO_DEFLATE define still works for compatibility

- FAQ update regarding the Windows DLL [Truta]

- INDEX update: add qnx entry, remove aix entry [Truta]

- Install zlib.3 into mandir [Wilson]

- Move contrib/zlib_dll_FAQ.txt to win32/DLL_FAQ.txt; update [Truta]

- Adapt the zlib interface to the new DLL convention guidelines [Truta]

- Introduce ZLIB_WINAPI macro to allow the export of functions using

  the WINAPI calling convention, for Visual Basic [Vollant, Truta]

- Update msdos and win32 scripts and makefiles [Truta]

- Export symbols by name, not by ordinal, in win32/zlib.def [Truta]

- Add contrib/ada [Anisimkov]

- Move asm files from contrib/vstudio/vc70_32 to contrib/asm386 [Truta]

- Rename contrib/asm386 to contrib/masmx86 [Truta, Vollant]

- Add contrib/masm686 [Truta]

- Fix offsets in contrib/inflate86 and contrib/masmx86/inffas32.asm

  [Truta, Vollant]

- Update contrib/delphi; rename to contrib/pascal; add example [Truta]

- Remove contrib/delphi2; add a new contrib/delphi [Truta]

- Avoid inclusion of the nonstandard <memory.h> in contrib/iostream,

  and fix some method prototypes [Truta]

- Fix the ZCR_SEED2 constant to avoid warnings in contrib/minizip

  [Truta]

- Avoid the use of backslash (\) in contrib/minizip [Vollant]

- Fix file time handling in contrib/untgz; update makefiles [Truta]

- Update contrib/vstudio/vc70_32 to comply with the new DLL guidelines

  [Vollant]

- Remove contrib/vstudio/vc15_16 [Vollant]

- Rename contrib/vstudio/vc70_32 to contrib/vstudio/vc7 [Truta]

- Update README.contrib [Truta]

- Invert the assignment order of match_head and s->prev[...] in

  INSERT_STRING [Truta]

- Compare TOO_FAR with 32767 instead of 32768, to avoid 16-bit warnings

  [Truta]

- Compare function pointers with 0, not with NULL or Z_NULL [Truta]

- Fix prototype of syncsearch in inflate.c [Truta]

- Introduce ASMINF macro to be enabled when using an ASM implementation

  of inflate_fast [Truta]

- Change NO_DEFLATE to NO_GZCOMPRESS [Truta]

- Modify test_gzio in example.c to take a single file name as a

  parameter [Truta]

- Exit the example.c program if gzopen fails [Truta]

- Add type casts around strlen in example.c [Truta]

- Remove casting to sizeof in minigzip.c; give a proper type

  to the variable compared with SUFFIX_LEN [Truta]

- Update definitions of STDC and STDC99 in zconf.h [Truta]

- Synchronize zconf.h with the new Windows DLL interface [Truta]

- Use SYS16BIT instead of __32BIT__ to distinguish between

  16- and 32-bit platforms [Truta]

- Use far memory allocators in small 16-bit memory models for

  Turbo C [Truta]

- Add info about the use of ASMV, ASMINF and ZLIB_WINAPI in

  zlibCompileFlags [Truta]

- Cygwin has vsnprintf [Wilson]

- In Windows16, OS_CODE is 0, as in MSDOS [Truta]

- In Cygwin, OS_CODE is 3 (Unix), not 11 (Windows32) [Wilson]



Changes in 1.2.0.4 (10 August 2003)

- Minor FAQ updates

- Be more strict when checking inflateInit2's windowBits parameter

- Change NO_GUNZIP compile option to NO_GZIP to cover deflate as well

- Add gzip wrapper option to deflateInit2 using windowBits

- Add updated QNX rule in configure and qnx directory [Bonnefoy]

- Make inflate distance-too-far checks more rigorous

- Clean up FAR usage in inflate

- Add casting to sizeof() in gzio.c and minigzip.c



Changes in 1.2.0.3 (19 July 2003)

- Fix silly error in gzungetc() implementation [Vollant]

- Update contrib/minizip and contrib/vstudio [Vollant]

- Fix printf format in example.c

- Correct cdecl support in zconf.in.h [Anisimkov]

- Minor FAQ updates



Changes in 1.2.0.2 (13 July 2003)

- Add ZLIB_VERNUM in zlib.h for numerical preprocessor comparisons

- Attempt to avoid warnings in crc32.c for pointer-int conversion

- Add AIX to configure, remove aix directory [Bakker]

- Add some casts to minigzip.c

- Improve checking after insecure sprintf() or vsprintf() calls

- Remove #elif's from crc32.c

- Change leave label to inf_leave in inflate.c and infback.c to avoid

  library conflicts

- Remove inflate gzip decoding by default--only enable gzip decoding by

  special request for stricter backward compatibility

- Add zlibCompileFlags() function to return compilation information

- More typecasting in deflate.c to avoid warnings

- Remove leading underscore from _Capital #defines [Truta]

- Fix configure to link shared library when testing

- Add some Windows CE target adjustments [Mai]

- Remove #define ZLIB_DLL in zconf.h [Vollant]

- Add zlib.3 [Rodgers]

- Update RFC URL in deflate.c and algorithm.txt [Mai]

- Add zlib_dll_FAQ.txt to contrib [Truta]

- Add UL to some constants [Truta]

- Update minizip and vstudio [Vollant]

- Remove vestigial NEED_DUMMY_RETURN from zconf.in.h

- Expand use of NO_DUMMY_DECL to avoid all dummy structures

- Added iostream3 to contrib [Schwardt]

- Replace rewind() with fseek() for WinCE [Truta]

- Improve setting of zlib format compression level flags

    - Report 0 for huffman and rle strategies and for level == 0 or 1

    - Report 2 only for level == 6

- Only deal with 64K limit when necessary at compile time [Truta]

- Allow TOO_FAR check to be turned off at compile time [Truta]

- Add gzclearerr() function [Souza]

- Add gzungetc() function



Changes in 1.2.0.1 (17 March 2003)

- Add Z_RLE strategy for run-length encoding [Truta]

    - When Z_RLE requested, restrict matches to distance one

    - Update zlib.h, minigzip.c, gzopen(), gzdopen() for Z_RLE

- Correct FASTEST compilation to allow level == 0

- Clean up what gets compiled for FASTEST

- Incorporate changes to zconf.in.h [Vollant]

    - Refine detection of Turbo C need for dummy returns

    - Refine ZLIB_DLL compilation

    - Include additional header file on VMS for off_t typedef

- Try to use _vsnprintf where it supplants vsprintf [Vollant]

- Add some casts in inffast.c

- Enchance comments in zlib.h on what happens if gzprintf() tries to

  write more than 4095 bytes before compression

- Remove unused state from inflateBackEnd()

- Remove exit(0) from minigzip.c, example.c

- Get rid of all those darn tabs

- Add "check" target to Makefile.in that does the same thing as "test"

- Add "mostlyclean" and "maintainer-clean" targets to Makefile.in

- Update contrib/inflate86 [Anderson]

- Update contrib/testzlib, contrib/vstudio, contrib/minizip [Vollant]

- Add msdos and win32 directories with makefiles [Truta]

- More additions and improvements to the FAQ



Changes in 1.2.0 (9 March 2003)

- New and improved inflate code

    - About 20% faster

    - Does not allocate 32K window unless and until needed

    - Automatically detects and decompresses gzip streams

    - Raw inflate no longer needs an extra dummy byte at end

    - Added inflateBack functions using a callback interface--even faster

      than inflate, useful for file utilities (gzip, zip)

    - Added inflateCopy() function to record state for random access on

      externally generated deflate streams (e.g. in gzip files)

    - More readable code (I hope)

- New and improved crc32()

    - About 50% faster, thanks to suggestions from Rodney Brown

- Add deflateBound() and compressBound() functions

- Fix memory leak in deflateInit2()

- Permit setting dictionary for raw deflate (for parallel deflate)

- Fix const declaration for gzwrite()

- Check for some malloc() failures in gzio.c

- Fix bug in gzopen() on single-byte file 0x1f

- Fix bug in gzread() on concatenated file with 0x1f at end of buffer

  and next buffer doesn't start with 0x8b

- Fix uncompress() to return Z_DATA_ERROR on truncated input

- Free memory at end of example.c

- Remove MAX #define in trees.c (conflicted with some libraries)

- Fix static const's in deflate.c, gzio.c, and zutil.[ch]

- Declare malloc() and free() in gzio.c if STDC not defined

- Use malloc() instead of calloc() in zutil.c if int big enough

- Define STDC for AIX

- Add aix/ with approach for compiling shared library on AIX

- Add HP-UX support for shared libraries in configure

- Add OpenUNIX support for shared libraries in configure

- Use $cc instead of gcc to build shared library

- Make prefix directory if needed when installing

- Correct Macintosh avoidance of typedef Byte in zconf.h

- Correct Turbo C memory allocation when under Linux

- Use libz.a instead of -lz in Makefile (assure use of compiled library)

- Update configure to check for snprintf or vsnprintf functions and their

  return value, warn during make if using an insecure function

- Fix configure problem with compile-time knowledge of HAVE_UNISTD_H that

  is lost when library is used--resolution is to build new zconf.h

- Documentation improvements (in zlib.h):

    - Document raw deflate and inflate

    - Update RFCs URL

    - Point out that zlib and gzip formats are different

    - Note that Z_BUF_ERROR is not fatal

    - Document string limit for gzprintf() and possible buffer overflow

    - Note requirement on avail_out when flushing

    - Note permitted values of flush parameter of inflate()

- Add some FAQs (and even answers) to the FAQ

- Add contrib/inflate86/ for x86 faster inflate

- Add contrib/blast/ for PKWare Data Compression Library decompression

- Add contrib/puff/ simple inflate for deflate format description



Changes in 1.1.4 (11 March 2002)

- ZFREE was repeated on same allocation on some error conditions.

  This creates a security problem described in

  http://www.zlib.org/advisory-2002-03-11.txt

- Returned incorrect error (Z_MEM_ERROR) on some invalid data

- Avoid accesses before window for invalid distances with inflate window

  less than 32K.

- force windowBits > 8 to avoid a bug in the encoder for a window size

  of 256 bytes. (A complete fix will be available in 1.1.5).



Changes in 1.1.3 (9 July 1998)

- fix "an inflate input buffer bug that shows up on rare but persistent

  occasions" (Mark)

- fix gzread and gztell for concatenated .gz files (Didier Le Botlan)

- fix gzseek(..., SEEK_SET) in write mode

- fix crc check after a gzeek (Frank Faubert)

- fix miniunzip when the last entry in a zip file is itself a zip file

  (J Lillge)

- add contrib/asm586 and contrib/asm686 (Brian Raiter)

  See http://www.muppetlabs.com/~breadbox/software/assembly.html

- add support for Delphi 3 in contrib/delphi (Bob Dellaca)

- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti)

- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren)

- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks)

- added a FAQ file



- Support gzdopen on Mac with Metrowerks (Jason Linhart)

- Do not redefine Byte on Mac (Brad Pettit & Jason Linhart)

- define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young)

- avoid some warnings with Borland C (Tom Tanner)

- fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant)

- emulate utime() for WIN32 in contrib/untgz  (Gilles Vollant)

- allow several arguments to configure (Tim Mooney, Frodo Looijaard)

- use libdir and includedir in Makefile.in (Tim Mooney)

- support shared libraries on OSF1 V4 (Tim Mooney)

- remove so_locations in "make clean"  (Tim Mooney)

- fix maketree.c compilation error (Glenn, Mark)

- Python interface to zlib now in Python 1.5 (Jeremy Hylton)

- new Makefile.riscos (Rich Walker)

- initialize static descriptors in trees.c for embedded targets (Nick Smith)

- use "foo-gz" in example.c for RISCOS and VMS (Nick Smith)

- add the OS/2 files in Makefile.in too (Andrew Zabolotny)

- fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane)

- fix maketree.c to allow clean compilation of inffixed.h (Mark)

- fix parameter check in deflateCopy (Gunther Nikl)

- cleanup trees.c, use compressed_len only in debug mode (Christian Spieler)

- Many portability patches by Christian Spieler:

  . zutil.c, zutil.h: added "const" for zmem*

  . Make_vms.com: fixed some typos

  . Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists

  . msdos/Makefile.msc: remove "default rtl link library" info from obj files

  . msdos/Makefile.*: use model-dependent name for the built zlib library

  . msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc:

     new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT)

- use define instead of typedef for Bytef also for MSC small/medium (Tom Lane)

- replace __far with _far for better portability (Christian Spieler, Tom Lane)

- fix test for errno.h in configure (Tim Newsham)



Changes in 1.1.2 (19 March 98)

- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant)

  See http://www.winimage.com/zLibDll/unzip.html

- preinitialize the inflate tables for fixed codes, to make the code

  completely thread safe (Mark)

- some simplifications and slight speed-up to the inflate code (Mark)

- fix gzeof on non-compressed files (Allan Schrum)

- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs)

- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn)

- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny)

- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori)

- do not wrap extern "C" around system includes (Tom Lane)

- mention zlib binding for TCL in README (Andreas Kupries)

- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert)

- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson)

- allow "configure --prefix $HOME" (Tim Mooney)

- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson)

- move Makefile.sas to amiga/Makefile.sas



Changes in 1.1.1 (27 Feb 98)

- fix macros _tr_tally_* in deflate.h for debug mode  (Glenn Randers-Pehrson)

- remove block truncation heuristic which had very marginal effect for zlib

  (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the

  compression ratio on some files. This also allows inlining _tr_tally for

  matches in deflate_slow.

- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier)



Changes in 1.1.0 (24 Feb 98)

- do not return STREAM_END prematurely in inflate (John Bowler)

- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler)

- compile with -DFASTEST to get compression code optimized for speed only

- in minigzip, try mmap'ing the input file first (Miguel Albrecht)

- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain

  on Sun but significant on HP)



- add a pointer to experimental unzip library in README (Gilles Vollant)

- initialize variable gcc in configure (Chris Herborth)



Changes in 1.0.9 (17 Feb 1998)

- added gzputs and gzgets functions

- do not clear eof flag in gzseek (Mark Diekhans)

- fix gzseek for files in transparent mode (Mark Diekhans)

- do not assume that vsprintf returns the number of bytes written (Jens Krinke)

- replace EXPORT with ZEXPORT to avoid conflict with other programs

- added compress2 in zconf.h, zlib.def, zlib.dnt

- new asm code from Gilles Vollant in contrib/asm386

- simplify the inflate code (Mark):

 . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new()

 . ZALLOC the length list in inflate_trees_fixed() instead of using stack

 . ZALLOC the value area for huft_build() instead of using stack

 . Simplify Z_FINISH check in inflate()



- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8

- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi)

- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with

  the declaration of FAR (Gilles VOllant)

- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann)

- read_buf buf parameter of type Bytef* instead of charf*

- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout)

- do not redeclare unlink in minigzip.c for WIN32 (John Bowler)

- fix check for presence of directories in "make install" (Ian Willis)



Changes in 1.0.8 (27 Jan 1998)

- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant)

- fix gzgetc and gzputc for big endian systems (Markus Oberhumer)

- added compress2() to allow setting the compression level

- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong)

- use constant arrays for the static trees in trees.c instead of computing

  them at run time (thanks to Ken Raeburn for this suggestion). To create

  trees.h, compile with GEN_TREES_H and run "make test".

- check return code of example in "make test" and display result

- pass minigzip command line options to file_compress

- simplifying code of inflateSync to avoid gcc 2.8 bug



- support CC="gcc -Wall" in configure -s (QingLong)

- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn)

- fix test for shared library support to avoid compiler warnings

- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant)

- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit)

- do not use fdopen for Metrowerks on Mac (Brad Pettit))

- add checks for gzputc and gzputc in example.c

- avoid warnings in gzio.c and deflate.c (Andreas Kleinert)

- use const for the CRC table (Ken Raeburn)

- fixed "make uninstall" for shared libraries

- use Tracev instead of Trace in infblock.c

- in example.c use correct compressed length for test_sync

- suppress +vnocompatwarnings in configure for HPUX (not always supported)



Changes in 1.0.7 (20 Jan 1998)

- fix gzseek which was broken in write mode

- return error for gzseek to negative absolute position

- fix configure for Linux (Chun-Chung Chen)

- increase stack space for MSC (Tim Wegner)

- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant)

- define EXPORTVA for gzprintf (Gilles Vollant)

- added man page zlib.3 (Rick Rodgers)

- for contrib/untgz, fix makedir() and improve Makefile



- check gzseek in write mode in example.c

- allocate extra buffer for seeks only if gzseek is actually called

- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant)

- add inflateSyncPoint in zconf.h

- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def



Changes in 1.0.6 (19 Jan 1998)

- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and

  gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code)

- Fix a deflate bug occurring only with compression level 0 (thanks to

  Andy Buckler for finding this one).

- In minigzip, pass transparently also the first byte for .Z files.

- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress()

- check Z_FINISH in inflate (thanks to Marc Schluper)

- Implement deflateCopy (thanks to Adam Costello)

- make static libraries by default in configure, add --shared option.

- move MSDOS or Windows specific files to directory msdos

- suppress the notion of partial flush to simplify the interface

  (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4)

- suppress history buffer provided by application to simplify the interface

  (this feature was not implemented anyway in 1.0.4)

- next_in and avail_in must be initialized before calling inflateInit or

  inflateInit2

- add EXPORT in all exported functions (for Windows DLL)

- added Makefile.nt (thanks to Stephen Williams)

- added the unsupported "contrib" directory:

   contrib/asm386/ by Gilles Vollant <info@winimage.com>

        386 asm code replacing longest_match().

   contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>

        A C++ I/O streams interface to the zlib gz* functions

   contrib/iostream2/  by Tyge Løvset <Tyge.Lovset@cmr.no>

        Another C++ I/O streams interface

   contrib/untgz/  by "Pedro A. Aranda Guti\irrez" <paag@tid.es>

        A very simple tar.gz file extractor using zlib

   contrib/visual-basic.txt by Carlos Rios <c_rios@sonda.cl>

        How to use compress(), uncompress() and the gz* functions from VB.

- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression

  level) in minigzip (thanks to Tom Lane)



- use const for rommable constants in deflate

- added test for gzseek and gztell in example.c

- add undocumented function inflateSyncPoint() (hack for Paul Mackerras)

- add undocumented function zError to convert error code to string

  (for Tim Smithers)

- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code.

- Use default memcpy for Symantec MSDOS compiler.

- Add EXPORT keyword for check_func (needed for Windows DLL)

- add current directory to LD_LIBRARY_PATH for "make test"

- create also a link for libz.so.1

- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura)

- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX)

- added -soname for Linux in configure (Chun-Chung Chen,

- assign numbers to the exported functions in zlib.def (for Windows DLL)

- add advice in zlib.h for best usage of deflateSetDictionary

- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn)

- allow compilation with ANSI keywords only enabled for TurboC in large model

- avoid "versionString"[0] (Borland bug)

- add NEED_DUMMY_RETURN for Borland

- use variable z_verbose for tracing in debug mode (L. Peter Deutsch).

- allow compilation with CC

- defined STDC for OS/2 (David Charlap)

- limit external names to 8 chars for MVS (Thomas Lund)

- in minigzip.c, use static buffers only for 16-bit systems

- fix suffix check for "minigzip -d foo.gz"

- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee)

- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)

- added makelcc.bat for lcc-win32 (Tom St Denis)

- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)

- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.

- check for unistd.h in configure (for off_t)

- remove useless check parameter in inflate_blocks_free

- avoid useless assignment of s->check to itself in inflate_blocks_new

- do not flush twice in gzclose (thanks to Ken Raeburn)

- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h

- use NO_ERRNO_H instead of enumeration of operating systems with errno.h

- work around buggy fclose on pipes for HP/UX

- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson)

- fix configure if CC is already equal to gcc



Changes in 1.0.5 (3 Jan 98)

- Fix inflate to terminate gracefully when fed corrupted or invalid data

- Use const for rommable constants in inflate

- Eliminate memory leaks on error conditions in inflate

- Removed some vestigial code in inflate

- Update web address in README



Changes in 1.0.4 (24 Jul 96)

- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF

  bit, so the decompressor could decompress all the correct data but went

  on to attempt decompressing extra garbage data. This affected minigzip too.

- zlibVersion and gzerror return const char* (needed for DLL)

- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno)

- use z_error only for DEBUG (avoid problem with DLLs)



Changes in 1.0.3 (2 Jul 96)

- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS

  small and medium models; this makes the library incompatible with previous

  versions for these models. (No effect in large model or on other systems.)

- return OK instead of BUF_ERROR if previous deflate call returned with

  avail_out as zero but there is nothing to do

- added memcmp for non STDC compilers

- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly)

- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO)

- better check for 16-bit mode MSC (avoids problem with Symantec)



Changes in 1.0.2 (23 May 96)

- added Windows DLL support

- added a function zlibVersion (for the DLL support)

- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model)

- Bytef is define's instead of typedef'd only for Borland C

- avoid reading uninitialized memory in example.c

- mention in README that the zlib format is now RFC1950

- updated Makefile.dj2

- added algorithm.doc



Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion]

- fix array overlay in deflate.c which sometimes caused bad compressed data

- fix inflate bug with empty stored block

- fix MSDOS medium model which was broken in 0.99

- fix deflateParams() which could generated bad compressed data.

- Bytef is define'd instead of typedef'ed (work around Borland bug)

- added an INDEX file

- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32),

  Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas)

- speed up adler32 for modern machines without auto-increment

- added -ansi for IRIX in configure

- static_init_done in trees.c is an int

- define unlink as delete for VMS

- fix configure for QNX

- add configure branch for SCO and HPUX

- avoid many warnings (unused variables, dead assignments, etc...)

- no fdopen for BeOS

- fix the Watcom fix for 32 bit mode (define FAR as empty)

- removed redefinition of Byte for MKWERKS

- work around an MWKERKS bug (incorrect merge of all .h files)



Changes in 0.99 (27 Jan 96)

- allow preset dictionary shared between compressor and decompressor

- allow compression level 0 (no compression)

- add deflateParams in zlib.h: allow dynamic change of compression level

  and compression strategy.

- test large buffers and deflateParams in example.c

- add optional "configure" to build zlib as a shared library

- suppress Makefile.qnx, use configure instead

- fixed deflate for 64-bit systems (detected on Cray)

- fixed inflate_blocks for 64-bit systems (detected on Alpha)

- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2)

- always return Z_BUF_ERROR when deflate() has nothing to do

- deflateInit and inflateInit are now macros to allow version checking

- prefix all global functions and types with z_ with -DZ_PREFIX

- make falloc completely reentrant (inftrees.c)

- fixed very unlikely race condition in ct_static_init

- free in reverse order of allocation to help memory manager

- use zlib-1.0/* instead of zlib/* inside the tar.gz

- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith

  -Wconversion -Wstrict-prototypes -Wmissing-prototypes"

- allow gzread on concatenated .gz files

- deflateEnd now returns Z_DATA_ERROR if it was premature

- deflate is finally (?) fully deterministic (no matches beyond end of input)

- Document Z_SYNC_FLUSH

- add uninstall in Makefile

- Check for __cpluplus in zlib.h

- Better test in ct_align for partial flush

- avoid harmless warnings for Borland C++

- initialize hash_head in deflate.c

- avoid warning on fdopen (gzio.c) for HP cc -Aa

- include stdlib.h for STDC compilers

- include errno.h for Cray

- ignore error if ranlib doesn't exist

- call ranlib twice for NeXTSTEP

- use exec_prefix instead of prefix for libz.a

- renamed ct_* as _tr_* to avoid conflict with applications

- clear z->msg in inflateInit2 before any error return

- initialize opaque in example.c, gzio.c, deflate.c and inflate.c

- fixed typo in zconf.h (_GNUC__ => __GNUC__)

- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode)

- fix typo in Make_vms.com (f$trnlnm -> f$getsyi)

- in fcalloc, normalize pointer if size > 65520 bytes

- don't use special fcalloc for 32 bit Borland C++

- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc...

- use Z_BINARY instead of BINARY

- document that gzclose after gzdopen will close the file

- allow "a" as mode in gzopen.

- fix error checking in gzread

- allow skipping .gz extra-field on pipes

- added reference to Perl interface in README

- put the crc table in FAR data (I dislike more and more the medium model :)

- added get_crc_table

- added a dimension to all arrays (Borland C can't count).

- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast

- guard against multiple inclusion of *.h (for precompiled header on Mac)

- Watcom C pretends to be Microsoft C small model even in 32 bit mode.

- don't use unsized arrays to avoid silly warnings by Visual C++:

     warning C4746: 'inflate_mask' : unsized array treated as  '__far'

     (what's wrong with far data in far model?).

- define enum out of inflate_blocks_state to allow compilation with C++



Changes in 0.95 (16 Aug 95)

- fix MSDOS small and medium model (now easier to adapt to any compiler)

- inlined send_bits

- fix the final (:-) bug for deflate with flush (output was correct but

  not completely flushed in rare occasions).

- default window size is same for compression and decompression

  (it's now sufficient to set MAX_WBITS in zconf.h).

- voidp -> voidpf and voidnp -> voidp (for consistency with other

  typedefs and because voidnp was not near in large model).



Changes in 0.94 (13 Aug 95)

- support MSDOS medium model

- fix deflate with flush (could sometimes generate bad output)

- fix deflateReset (zlib header was incorrectly suppressed)

- added support for VMS

- allow a compression level in gzopen()

- gzflush now calls fflush

- For deflate with flush, flush even if no more input is provided.

- rename libgz.a as libz.a

- avoid complex expression in infcodes.c triggering Turbo C bug

- work around a problem with gcc on Alpha (in INSERT_STRING)

- don't use inline functions (problem with some gcc versions)

- allow renaming of Byte, uInt, etc... with #define.

- avoid warning about (unused) pointer before start of array in deflate.c

- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c

- avoid reserved word 'new' in trees.c



Changes in 0.93 (25 June 95)

- temporarily disable inline functions

- make deflate deterministic

- give enough lookahead for PARTIAL_FLUSH

- Set binary mode for stdin/stdout in minigzip.c for OS/2

- don't even use signed char in inflate (not portable enough)

- fix inflate memory leak for segmented architectures



Changes in 0.92 (3 May 95)

- don't assume that char is signed (problem on SGI)

- Clear bit buffer when starting a stored block

- no memcpy on Pyramid

- suppressed inftest.c

- optimized fill_window, put longest_match inline for gcc

- optimized inflate on stored blocks.

- untabify all sources to simplify patches



Changes in 0.91 (2 May 95)

- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h

- Document the memory requirements in zconf.h

- added "make install"

- fix sync search logic in inflateSync

- deflate(Z_FULL_FLUSH) now works even if output buffer too short

- after inflateSync, don't scare people with just "lo world"

- added support for DJGPP



Changes in 0.9 (1 May 95)

- don't assume that zalloc clears the allocated memory (the TurboC bug

  was Mark's bug after all :)

- let again gzread copy uncompressed data unchanged (was working in 0.71)

- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented

- added a test of inflateSync in example.c

- moved MAX_WBITS to zconf.h because users might want to change that.

- document explicitly that zalloc(64K) on MSDOS must return a normalized

  pointer (zero offset)

- added Makefiles for Microsoft C, Turbo C, Borland C++

- faster crc32()



Changes in 0.8 (29 April 95)

- added fast inflate (inffast.c)

- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this

  is incompatible with previous versions of zlib which returned Z_OK.

- work around a TurboC compiler bug (bad code for b << 0, see infutil.h)

  (actually that was not a compiler bug, see 0.81 above)

- gzread no longer reads one extra byte in certain cases

- In gzio destroy(), don't reference a freed structure

- avoid many warnings for MSDOS

- avoid the ERROR symbol which is used by MS Windows



Changes in 0.71 (14 April 95)

- Fixed more MSDOS compilation problems :( There is still a bug with

  TurboC large model.



Changes in 0.7 (14 April 95)

- Added full inflate support.

- Simplified the crc32() interface. The pre- and post-conditioning

  (one's complement) is now done inside crc32(). WARNING: this is

  incompatible with previous versions; see zlib.h for the new usage.



Changes in 0.61 (12 April 95)

- workaround for a bug in TurboC. example and minigzip now work on MSDOS.



Changes in 0.6 (11 April 95)

- added minigzip.c

- added gzdopen to reopen a file descriptor as gzFile

- added transparent reading of non-gziped files in gzread.

- fixed bug in gzread (don't read crc as data)

- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose).

- don't allocate big arrays in the stack (for MSDOS)

- fix some MSDOS compilation problems



Changes in 0.5:

- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but

  not yet Z_FULL_FLUSH.

- support decompression but only in a single step (forced Z_FINISH)

- added opaque object for zalloc and zfree.

- added deflateReset and inflateReset

- added a variable zlib_version for consistency checking.

- renamed the 'filter' parameter of deflateInit2 as 'strategy'.

  Added Z_FILTERED and Z_HUFFMAN_ONLY constants.



Changes in 0.4:

- avoid "zip" everywhere, use zlib instead of ziplib.

- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush

  if compression method == 8.

- added adler32 and crc32

- renamed deflateOptions as deflateInit2, call one or the other but not both

- added the method parameter for deflateInit2.

- added inflateInit2

- simplied considerably deflateInit and inflateInit by not supporting

  user-provided history buffer. This is supported only in deflateInit2

  and inflateInit2.



Changes in 0.3:

- prefix all macro names with Z_

- use Z_FINISH instead of deflateEnd to finish compression.

- added Z_HUFFMAN_ONLY

- added gzerror()

