Commits on Jan 17, 2012
  1. Have ./configure use the compiler return code for error indication.

    madler committed Jan 16, 2012
    Previously ./configure would use any output on stderr as an indication
    that the compilation failed.  However if some compiler wrapper uses
    stderr for some other purpose, e.g. distcc for nodes going down, then
    ./configure would not properly configure the build.  This problem was
    noted by Mike Frysinger.  For backwards compatibility, ./configure
    will revert to the old way, i.e. checking for anything on stderr, if
    when it deliberately runs the compiler with an error, a zero exit
    status is returned.
  2. Change version number to 1.2.6.

    madler committed Jan 16, 2012
Commits on Jan 16, 2012
  1. zlib

    madler committed Jan 16, 2012
Commits on Jan 14, 2012
  1. Insert the first two strings in the hash table after a flush.

    madler committed Jan 14, 2012
    This allows deflate to generate the same output when continuing after
    a Z_SYNC_FLUSH vs. using deflateSetDictionary() after a Z_FULL_FLUSH
    or a deflateReset().  It also slightly improves compression when
    flushing by providing two more strings to possibly match at the start
    of the new block.
Commits on Jan 7, 2012
  1. Write out all of the available bits when using Z_BLOCK.

    madler committed Dec 29, 2011
    Previously, the bit buffer would hold 1 to 16 bits after "all" of the
    output is provided after a Z_BLOCK deflate() call.  Now at most seven
    bits remain in the output buffer after Z_BLOCK.  flush_pending() now
    flushes the bit buffer before copying out the byte buffer, in order
    for it to really flush as much as possible.
  2. Remove second empty static block for Z_PARTIAL_FLUSH.

    madler committed Jan 7, 2012
    Z_PARTIAL_FLUSH would sometimes emit two empty static blocks instead
    of one in order to provide enough lookahead for inflate to be able
    to decode what was last compressed.  inflate no longer needs that
    much lookahead, so this removes the possibility of emitting the
    second empty static block.  Z_PARTIAL_FLUSH will now emit only one
    empty static block.
  3. Allow deflatePrime() to insert bits in the middle of a stream.

    madler committed Jan 7, 2012
    This allows the insertion of multiple empty static blocks for the
    purpose of efficiently bringing a stream to a byte boundary.
Commits on Dec 29, 2011
  1. Permit Z_NULL arguments to deflatePending.

    madler committed Dec 29, 2011
    This avoids having to create useless variables for return values
    that aren't needed.
  2. Avoid extraneous empty blocks when doing empty flushes.

    madler committed Dec 29, 2011
    Previously when doing an empty flush, a extra static or stored block
    could be emitted before the requested empty static or stored block.
    This patch prevents the emission of empty blocks by the deflate_*
  3. Permit stronger flushes after Z_BLOCK flushes.

    madler committed Dec 29, 2011
    The incorporation of the Z_BLOCK flush did not update the rejection
    of lower ranked flushes immediately after higher ranked flushes with
    no more input data.  This prevented an empty Z_SYNC_FLUSH right after
    a Z_BLOCK flush, which would be desired to bring the deflate stream
    to a byte boundary conditionally on whether or not it was already at
    a byte boundary.  This patch re-ranks Z_BLOCK above Z_NO_FLUSH but
    below Z_PARTIAL_FLUSH, allowing stronger empty flushes to follow a
    Z_BLOCK flush.
Commits on Dec 24, 2011
Commits on Dec 20, 2011
  1. Update AS400 build files and documentation [Monnerat].

    madler committed Dec 20, 2011
    Moves new function definitions in order to preserve shared library
    compatibility with previous versions.  Also increases buffer size in
    RPG binding and updates the documentation.
Commits on Dec 19, 2011
Commits on Dec 18, 2011
  1. Restore gzgetc function for binary compatibility.

    madler committed Dec 18, 2011
    Newly compiled applications will use the gzgetc macro.
  2. zlib

    madler committed Dec 18, 2011
Commits on Dec 17, 2011
Commits on Dec 14, 2011
  1. Document gzread() capability to read concurrently written files.

    madler committed Dec 14, 2011
    Also since gzread() will no longer return an error for an incomplete
    gzip file, have gzclose() return an error if the last gzread() ended
    in the middle of a gzip stream.
  2. Avoid use of Z_BUF_ERROR in gz* functions except for premature EOF.

    madler committed Dec 14, 2011
    Z_BUF_ERROR was also being used for an unsuccessful gzungetc and for buffer
    lengths that didn't fit in an int.  Those uses were changed to Z_DATA_ERROR
    in order to assure that Z_BUF_ERROR occurs only when a premature end of
    input occurs, indicating that gzclearerr() can be used.
Commits on Dec 12, 2011
  1. Fix gzeof() to behave just like feof() when read is not past end of f…

    madler committed Oct 13, 2011
    Before, gzeof() would return true (accurately) when the last read request
    went just up to the end of the uncompressed data.  In the analogous case,
    feof() would return false, only returning true when a read request goes
    past the end of the file.  This patch corrects gzeof() to behave in the
    same way as feof(), as noted in the zlib.h documentation.
Commits on Dec 11, 2011
  1. Have inflate() with Z_FINISH avoid the allocation of a window.

    madler committed Dec 9, 2011
    inflate() avoided that allocation normally, until it was modified to
    update the window on a normal completion so that inflateResetKeep()
    could work.  This patch restores that behavior, but only when
    Z_FINISH is used successfully to complete an inflation of a stream in
    a single call of inflate().  The comments in zlib.h have been updated
  2. Fix gzwrite.c to accommodate reduced memory zlib compilation.

    madler committed Dec 8, 2011
    gzwrite.c had hard-coded parameters to deflateInit2() which could
    contradict compile-time options for the use of less memory and fewer
    code bits.  This patch suggested by Karsten Saunte fixes that.
Commits on Dec 8, 2011
  1. Enable dictionary setting in middle of stream, and keeping the dictio…

    madler committed Dec 8, 2011
    This patch adds the deflateResetKeep() function to retain the sliding
    window for the next deflate operation, and fixes an inflateResetKeep()
    problem that came from inflate() not updating the window when the
    stream completed.  This enables constructing and decompressing a series
    of concatenated deflate streams where each can depend on the history of
    uncompressed data that precedes it.
    This generalizes deflateSetDictionary() and inflateSetDictionary() to
    permit setting the dictionary in the middle of a stream for raw deflate
    and inflate.  This in combination with the Keep functions enables a
    scheme for updating files block by block with the transmission of
    compressed data, where blocks are sent with deflateResetKeep() to
    retain history for better compression, and deflateSetDictionary() is
    used for blocks already present at the receiver to skip compression but
    insert that data in the history, again for better compression.  The
    corresponding inflate calls are done on the receiver side.
Commits on Dec 1, 2011
  1. Clean up infcover.c.

    madler committed Dec 1, 2011
Commits on Nov 27, 2011
  1. Test the inflate code with full coverage.

    madler committed Nov 20, 2011
    Add a cover target in Makefile and the test/infcover.c test program
    to cover all of the code lines in the inf*.c source files.  The
    coverage is run with memory allocation checking in order to expose
    memory leaks.  The coverage testing is run using:
        ./configure --cover && make cover
  2. Remove code from inflate.c and infback.c that is impossible to execute.

    madler committed Nov 20, 2011
    During coverage testing it was discovered that these two lines could
    never pull more bits, since the immediately preceding for loop assures
    that all of the code's bits are already pulled.