diff --git a/ChangeLog b/ChangeLog index 9817f59b7a16d6c2f7d546ce3ec2e5459f9664ee..33a740dbefe52ce1b24af09512a4712250084114 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,23 @@ ChangeLog file for zlib +Changes in 1.2.4.2 (9 Apr 2010) +- Add consistent carriage returns to readme.txt's in masmx86 and masmx64 +- Really provide prototypes for *64 functions when building without LFS +- Only define unlink() in minigzip.c if unistd.h not included +- Update README to point to contrib/vstudio project files +- Move projects/vc6 to old/ and remove projects/ +- Include stdlib.h in minigzip.c for setmode() definition under WinCE +- Clean up assembler builds in win32/Makefile.msc [Rowe] +- Include sys/types.h for Microsoft for off_t definition +- Fix memory leak on error in gz_open() +- Symbolize nm as $NM in configure [Weigelt] +- Use TEST_LDSHARED instead of LDSHARED to link test programs [Weigelt] +- Add +0 to _FILE_OFFSET_BITS and _LFS64_LARGEFILE in case not defined +- Fix bug in gzeof() to take into account unused input data +- Avoid initialization of structures with variables in puff.c +- Updated win32/README-WIN32.txt [Rowe] + Changes in 1.2.4.1 (28 Mar 2010) - Remove the use of [a-z] constructs for sed in configure [gentoo 310225] - Remove $(SHAREDLIB) from LIBS in Makefile.in [Creech] diff --git a/INDEX b/INDEX index f66bf9bbaeedb32e1c5135f39acae214abbd99a4..f6c51ca1759fc8435a8dce00301eda710dcf9eb0 100644 --- a/INDEX +++ b/INDEX @@ -22,7 +22,6 @@ msdos/ makefiles for MSDOS nintendods/ makefile for Nintendo DS old/ makefiles for various architectures and zlib documentation files that have not yet been updated for zlib 1.2.x -projects/ projects for various Integrated Development Environments qnx/ makefiles for QNX watcom/ makefiles for OpenWatcom win32/ makefiles for Windows diff --git a/Makefile.in b/Makefile.in index a79f73939a86570537beddd3190da95c2dd0e6ae..e5bc2a3c41f5b24611969565df7cb0a221edaef7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -26,13 +26,13 @@ CFLAGS=-O SFLAGS=-O -LDFLAGS=-L. libz.a +TEST_LDFLAGS=-L. libz.a LDSHARED=$(CC) CPP=$(CC) -E STATICLIB=libz.a SHAREDLIB=libz.so -SHAREDLIBV=libz.so.1.2.4.1 +SHAREDLIBV=libz.so.1.2.4.2 SHAREDLIBM=libz.so.1 LIBS=$(STATICLIB) $(SHAREDLIBV) @@ -136,17 +136,17 @@ minigzip64.o: minigzip.c zlib.h zconf.h -@mv objs/$*.o $@ $(SHAREDLIBV): $(PIC_OBJS) - $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) + $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS) rm -f $(SHAREDLIB) $(SHAREDLIBM) ln -s $@ $(SHAREDLIB) ln -s $@ $(SHAREDLIBM) -@rmdir objs example$(EXE): example.o $(STATICLIB) - $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS) minigzip$(EXE): minigzip.o $(STATICLIB) - $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS) examplesh$(EXE): example.o $(SHAREDLIBV) $(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV) @@ -155,10 +155,10 @@ minigzipsh$(EXE): minigzip.o $(SHAREDLIBV) $(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV) example64$(EXE): example64.o $(STATICLIB) - $(CC) $(CFLAGS) -o $@ example64.o $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS) minigzip64$(EXE): minigzip64.o $(STATICLIB) - $(CC) $(CFLAGS) -o $@ minigzip64.o $(LDFLAGS) + $(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS) install-libs: $(LIBS) -@if [ ! -d $(DESTDIR)$(exec_prefix) ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi diff --git a/README b/README index a3302675ec2beb0fc9e36cc35edee25f5f9f036e..3c4f36e228aadf5fe40bab54d08793277cbeda8c 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ ZLIB DATA COMPRESSION LIBRARY -zlib 1.2.4.1 is a general purpose data compression library. All the code is +zlib 1.2.4.2 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) @@ -16,7 +16,8 @@ minigzip.c. To compile all files and run the test program, follow the instructions given at the top of Makefile.in. In short "./configure; make test", and if that goes well, "make install" should work for most flavors of Unix. For Windows, use one -of the special makefiles in win32/ or projects/ . For VMS, use make_vms.com. +of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use +make_vms.com. Questions about zlib should be sent to , or to Gilles Vollant for the Windows DLL version. The zlib home page is @@ -30,7 +31,7 @@ Mark Nelson wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available at http://marknelson.us/1997/01/01/zlib-engine/ . -The changes made in version 1.2.4.1 are documented in the file ChangeLog. +The changes made in version 1.2.4.2 are documented in the file ChangeLog. Unsupported third party contributions are provided in directory contrib/ . diff --git a/configure b/configure index 8a36129a65f0e541608c1166d57baf95d38c8821..577cba7000efc3f08169245611fd1a4fa2ae0cf5 100755 --- a/configure +++ b/configure @@ -45,6 +45,7 @@ VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h` AR=${AR-"${CROSS_PREFIX}ar"} AR_RC="${AR} rc" RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"} +NM=${NM-"nm"} LDCONFIG=${LDCONFIG-"ldconfig"} LDSHAREDLIBC="${LDSHAREDLIBC-"-lc"}" prefix=${prefix-/usr/local} @@ -505,7 +506,7 @@ fi CPP=${CPP-"$CC -E"} case $CFLAGS in *ASMV*) - if test "`nm $test.o | grep _hello`" = ""; then + if test "`$NM $test.o | grep _hello`" = ""; then CPP="$CPP -DNO_UNDERLINE" echo Checking for underline in external names... No. else diff --git a/contrib/delphi/ZLib.pas b/contrib/delphi/ZLib.pas index 03450e7cf33bd44c44ec23626c382b20eef18507..72ef99f39a18a287c9b2e64b1b9b24185bbde898 100644 --- a/contrib/delphi/ZLib.pas +++ b/contrib/delphi/ZLib.pas @@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer; const OutBuf: Pointer; BufSize: Integer); const - zlib_version = '1.2.4.1'; + zlib_version = '1.2.4.2'; type EZlibError = class(Exception); diff --git a/contrib/dotzlib/DotZLib/UnitTests.cs b/contrib/dotzlib/DotZLib/UnitTests.cs index 82c749eb1e0dfb23f1b9188aa1fb2a012f1fcdaf..6cfdaa706485415736449d579b33bb6991350332 100644 --- a/contrib/dotzlib/DotZLib/UnitTests.cs +++ b/contrib/dotzlib/DotZLib/UnitTests.cs @@ -156,7 +156,7 @@ namespace DotZLibTests public void Info_Version() { Info info = new Info(); - Assert.AreEqual("1.2.4.1", Info.Version); + Assert.AreEqual("1.2.4.2", Info.Version); Assert.AreEqual(32, info.SizeOfUInt); Assert.AreEqual(32, info.SizeOfULong); Assert.AreEqual(32, info.SizeOfPointer); diff --git a/contrib/infback9/inftree9.c b/contrib/infback9/inftree9.c index e8988939a6f273c7478db511877e6541b91a2317..362008ccb6933c447525eb10d85f2481278f4d2b 100644 --- a/contrib/infback9/inftree9.c +++ b/contrib/infback9/inftree9.c @@ -9,7 +9,7 @@ #define MAXBITS 15 const char inflate9_copyright[] = - " inflate9 1.2.4.1 Copyright 1995-2010 Mark Adler "; + " inflate9 1.2.4.2 Copyright 1995-2010 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -64,7 +64,7 @@ unsigned short FAR *work; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, - 133, 133, 133, 133, 144, 67, 206}; + 133, 133, 133, 133, 144, 202, 75}; static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, diff --git a/contrib/masmx64/readme.txt b/contrib/masmx64/readme.txt index 1115d9b52993248e6b58293bab9a5dc452912a6c..2da6733412aab24841af676f3a127c290253919c 100644 --- a/contrib/masmx64/readme.txt +++ b/contrib/masmx64/readme.txt @@ -12,10 +12,10 @@ inffasx64.asm and inffas8664.c were written by Chris Anderson, by optimizing Use instructions ---------------- -Assemble the .asm files using MASM and put the object files into the zlib source -directory. You can also get object files here: - - http://www.winimage.com/zLibDll/zlib124_masm_obj.zip +Assemble the .asm files using MASM and put the object files into the zlib source +directory. You can also get object files here: + + http://www.winimage.com/zLibDll/zlib124_masm_obj.zip define ASMV and ASMINF in your project. Include inffas8664.c in your source tree, and inffasx64.obj and gvmat64.obj as object to link. diff --git a/contrib/masmx86/readme.txt b/contrib/masmx86/readme.txt index 90230f2d5e5d2160e86c920c87472a21bfd5c1e8..3271f720a1a7645a301b8d1fc16389cad955d5f8 100644 --- a/contrib/masmx86/readme.txt +++ b/contrib/masmx86/readme.txt @@ -1,27 +1,27 @@ - -Summary -------- -This directory contains ASM implementations of the functions -longest_match() and inflate_fast(). - - -Use instructions ----------------- -Assemble using MASM, and copy the object files into the zlib source -directory, then run the appropriate makefile, as suggested below. You can -donwload MASM from here: - + +Summary +------- +This directory contains ASM implementations of the functions +longest_match() and inflate_fast(). + + +Use instructions +---------------- +Assemble using MASM, and copy the object files into the zlib source +directory, then run the appropriate makefile, as suggested below. You can +donwload MASM from here: + http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 - -You can also get objects files here: - - http://www.winimage.com/zLibDll/zlib124_masm_obj.zip - -Build instructions ------------------- -* With Microsoft C and MASM: -nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" - -* With Borland C and TASM: -make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj" - + +You can also get objects files here: + + http://www.winimage.com/zLibDll/zlib124_masm_obj.zip + +Build instructions +------------------ +* With Microsoft C and MASM: +nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" + +* With Borland C and TASM: +make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj" + diff --git a/contrib/pascal/zlibpas.pas b/contrib/pascal/zlibpas.pas index 9772f11e80eedb7bca2876db33a2767cf136a09d..e0bc74b5e206950a718995d4bd725b35cdd1b414 100644 --- a/contrib/pascal/zlibpas.pas +++ b/contrib/pascal/zlibpas.pas @@ -10,7 +10,7 @@ unit zlibpas; interface const - ZLIB_VERSION = '1.2.4.1'; + ZLIB_VERSION = '1.2.4.2'; type alloc_func = function(opaque: Pointer; items, size: Integer): Pointer; diff --git a/contrib/puff/puff.c b/contrib/puff/puff.c index df5b79f82b4e4f750d86e372bec27a95f2c5f63a..650694e9ed823fc457eacf92dfbc172a7fccd6c9 100644 --- a/contrib/puff/puff.c +++ b/contrib/puff/puff.c @@ -1,8 +1,8 @@ /* * puff.c - * Copyright (C) 2002-2008 Mark Adler + * Copyright (C) 2002-2010 Mark Adler * For conditions of distribution and use, see copyright notice in puff.h - * version 2.0, 25 Jul 2008 + * version 2.1, 4 Apr 2010 * * puff.c is a simple inflate written to be an unambiguous way to specify the * deflate format. It is not written for speed but rather simplicity. As a @@ -67,6 +67,8 @@ * - Add option in TEST code for puff to write the data * - Add option in TEST code to skip input bytes * - Allow TEST code to read from piped stdin + * 2.1 4 Apr 2010 - Avoid variable initialization for happier compilers + * - Avoid unsigned comparisons for even happier compilers */ #include /* for setjmp(), longjmp(), and jmp_buf */ @@ -516,8 +518,7 @@ local int fixed(struct state *s) static int virgin = 1; static short lencnt[MAXBITS+1], lensym[FIXLCODES]; static short distcnt[MAXBITS+1], distsym[MAXDCODES]; - static struct huffman lencode = {lencnt, lensym}; - static struct huffman distcode = {distcnt, distsym}; + static struct huffman lencode, distcode; /* build fixed huffman tables if first call (may not be thread safe) */ if (virgin) { @@ -540,6 +541,12 @@ local int fixed(struct state *s) lengths[symbol] = 5; construct(&distcode, lengths, MAXDCODES); + /* construct lencode and distcode */ + lencode.count = lencnt; + lencode.symbol = lensym; + distcode.count = distcnt; + distcode.symbol = distsym; + /* do this just once */ virgin = 0; } @@ -643,11 +650,16 @@ local int dynamic(struct state *s) short lengths[MAXCODES]; /* descriptor code lengths */ short lencnt[MAXBITS+1], lensym[MAXLCODES]; /* lencode memory */ short distcnt[MAXBITS+1], distsym[MAXDCODES]; /* distcode memory */ - struct huffman lencode = {lencnt, lensym}; /* length code */ - struct huffman distcode = {distcnt, distsym}; /* distance code */ + struct huffman lencode, distcode; /* length and distance codes */ static const short order[19] = /* permutation of code length codes */ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + /* construct lencode and distcode */ + lencode.count = lencnt; + lencode.symbol = lensym; + distcode.count = distcnt; + distcode.symbol = distsym; + /* get number of lengths in each table, check lengths */ nlen = bits(s, 5) + 257; ndist = bits(s, 5) + 1; @@ -869,7 +881,8 @@ local void *load(char *name, size_t *len) int main(int argc, char **argv) { - int ret, skip = 0, put = 0; + int ret, put = 0; + unsigned skip = 0; char *arg, *name = NULL; unsigned char *source = NULL, *dest; size_t len = 0; @@ -881,7 +894,7 @@ int main(int argc, char **argv) if (arg[1] == 'w' && arg[2] == 0) put = 1; else if (arg[1] >= '0' && arg[1] <= '9') - skip = atoi(arg + 1); + skip = (unsigned)atoi(arg + 1); else { fprintf(stderr, "invalid option %s\n", arg); return 3; diff --git a/contrib/puff/puff.h b/contrib/puff/puff.h index 8d7f5f87cc3fb8ec63f0db86ecec6a0691837d51..88d1b3844fff544a0dd346d7d10d865a026e5eee 100644 --- a/contrib/puff/puff.h +++ b/contrib/puff/puff.h @@ -1,6 +1,6 @@ /* puff.h - Copyright (C) 2002-2008 Mark Adler, all rights reserved - version 1.9, 10 Jan 2008 + Copyright (C) 2002-2010 Mark Adler, all rights reserved + version 2.1, 4 Apr 2010 This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages diff --git a/contrib/vstudio/vc10/zlib.rc b/contrib/vstudio/vc10/zlib.rc index d6b999138734005c4f43a4741ad09b8b029c54ee..38615f02aeeaa19108246699debb7756aed629d2 100644 --- a/contrib/vstudio/vc10/zlib.rc +++ b/contrib/vstudio/vc10/zlib.rc @@ -2,8 +2,8 @@ #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE - FILEVERSION 1,2,4,1 - PRODUCTVERSION 1,2,4,1 + FILEVERSION 1,2,4,2 + PRODUCTVERSION 1,2,4,2 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 @@ -17,7 +17,7 @@ BEGIN BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" - VALUE "FileVersion", "1.2.4.1\0" + VALUE "FileVersion", "1.2.4.2\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlib.dll\0" VALUE "ProductName", "ZLib.DLL\0" diff --git a/contrib/vstudio/vc9/zlib.rc b/contrib/vstudio/vc9/zlib.rc index d6b999138734005c4f43a4741ad09b8b029c54ee..38615f02aeeaa19108246699debb7756aed629d2 100644 --- a/contrib/vstudio/vc9/zlib.rc +++ b/contrib/vstudio/vc9/zlib.rc @@ -2,8 +2,8 @@ #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE - FILEVERSION 1,2,4,1 - PRODUCTVERSION 1,2,4,1 + FILEVERSION 1,2,4,2 + PRODUCTVERSION 1,2,4,2 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 @@ -17,7 +17,7 @@ BEGIN BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" - VALUE "FileVersion", "1.2.4.1\0" + VALUE "FileVersion", "1.2.4.2\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlib.dll\0" VALUE "ProductName", "ZLib.DLL\0" diff --git a/deflate.c b/deflate.c index b7fb9fc69823f6521f8cd9d9ef142e0a2655230f..70255287790f0f25610f5e9d8f2fa67cdf08fce6 100644 --- a/deflate.c +++ b/deflate.c @@ -52,7 +52,7 @@ #include "deflate.h" const char deflate_copyright[] = - " deflate 1.2.4.1 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; + " deflate 1.2.4.2 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot diff --git a/gzguts.h b/gzguts.h index 53857e0a42b2371de43c9aa8d48a60213c2a477a..a0e71198e0ded362d2ede1f7e4ea0ff3e71f7774 100644 --- a/gzguts.h +++ b/gzguts.h @@ -3,7 +3,7 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -#if _LARGEFILE64_SOURCE == 1 +#if _LARGEFILE64_SOURCE # ifndef _LARGEFILE_SOURCE # define _LARGEFILE_SOURCE 1 # endif @@ -56,12 +56,20 @@ # endif #endif -#if _LARGEFILE64_SOURCE == 1 +#if _LARGEFILE64_SOURCE # define z_off64_t off64_t #else # define z_off64_t z_off_t #endif +/* provide prototypes for these when building zlib without LFS */ +#if _LARGEFILE64_SOURCE+0 != 1 || _LFS64_LARGEFILE+0 != 1 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); +#endif + /* default i/o buffer size -- double this for output when reading */ #define GZBUFSIZE 8192 diff --git a/gzlib.c b/gzlib.c index 15999aee8b5ab37eee1d9f2b4de8c08bcdccb3fa..d1b625342a4d683c5282d9b4120aaaae4016dec6 100644 --- a/gzlib.c +++ b/gzlib.c @@ -5,7 +5,7 @@ #include "gzguts.h" -#if _LARGEFILE64_SOURCE == 1 && _LFS64_LARGEFILE == 1 +#if _LARGEFILE64_SOURCE && _LFS64_LARGEFILE # define LSEEK lseek64 #else # define LSEEK lseek @@ -172,6 +172,7 @@ local gzFile gz_open(path, fd, mode) O_APPEND))), 0666); if (state->fd == -1) { + free(state->path); free(state); return NULL; } @@ -432,7 +433,8 @@ int ZEXPORT gzeof(file) return 0; /* return end-of-file state */ - return state->mode == GZ_READ ? (state->eof && state->have == 0) : 0; + return state->mode == GZ_READ ? + (state->eof && state->strm.avail_in == 0 && state->have == 0) : 0; } /* -- see zlib.h -- */ diff --git a/inftrees.c b/inftrees.c index 90de8b87f25af162de15e256426047ca2ee0edfc..1ea90f79e7c1bde45856897a07705bf5a0f9e98c 100644 --- a/inftrees.c +++ b/inftrees.c @@ -9,7 +9,7 @@ #define MAXBITS 15 const char inflate_copyright[] = - " inflate 1.2.4.1 Copyright 1995-2010 Mark Adler "; + " inflate 1.2.4.2 Copyright 1995-2010 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -62,7 +62,7 @@ unsigned short FAR *work; 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 67, 206}; + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 202, 75}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, diff --git a/minigzip.c b/minigzip.c index 9677fa07f630f7323dfff047cafdd22e8907fbbd..f43cb544db7e586c320d3502be5a7a7e5ceac574 100644 --- a/minigzip.c +++ b/minigzip.c @@ -32,6 +32,9 @@ #if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__) # include # include +# ifdef UNDER_CE +# include +# endif # define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) #else # define SET_BINARY_MODE(file) @@ -50,9 +53,11 @@ # include /* for fileno */ #endif +#if !defined(Z_HAVE_UNISTD_H) && _LARGEFILE64_SOURCE+0 != 1 #ifndef WIN32 /* unlink already in stdio.h for WIN32 */ extern int unlink OF((const char *)); #endif +#endif #if defined(UNDER_CE) # include diff --git a/projects/visualc6/README.txt b/old/visualc6/README.txt similarity index 100% rename from projects/visualc6/README.txt rename to old/visualc6/README.txt diff --git a/projects/visualc6/example.dsp b/old/visualc6/example.dsp similarity index 100% rename from projects/visualc6/example.dsp rename to old/visualc6/example.dsp diff --git a/projects/visualc6/minigzip.dsp b/old/visualc6/minigzip.dsp similarity index 100% rename from projects/visualc6/minigzip.dsp rename to old/visualc6/minigzip.dsp diff --git a/projects/visualc6/zlib.dsp b/old/visualc6/zlib.dsp similarity index 100% rename from projects/visualc6/zlib.dsp rename to old/visualc6/zlib.dsp diff --git a/projects/visualc6/zlib.dsw b/old/visualc6/zlib.dsw similarity index 100% rename from projects/visualc6/zlib.dsw rename to old/visualc6/zlib.dsw diff --git a/projects/README.projects b/projects/README.projects deleted file mode 100644 index 1c029e4a34019956bbfdf55e7062b89a36da6b9e..0000000000000000000000000000000000000000 --- a/projects/README.projects +++ /dev/null @@ -1,41 +0,0 @@ -This directory contains project files for building zlib under various -Integrated Development Environments (IDE). - -If you wish to submit a new project to this directory, you should comply -to the following requirements. Otherwise (e.g. if you wish to integrate -a custom piece of code that changes the zlib interface or its behavior), -please consider submitting the project to the contrib directory. - - -Requirements -============ - -- The project must build zlib using the source files from the official - zlib source distribution, exclusively. - -- If the project produces redistributable builds (e.g. shared objects - or DLL files), these builds must be compatible to those produced by - makefiles, if such makefiles exist in the zlib distribution. - In particular, if the project produces a DLL build for the Win32 - platform, this build must comply to the officially-ammended Win32 DLL - Application Binary Interface (ABI), described in win32/DLL_FAQ.txt. - -- The project may provide additional build targets, which depend on - 3rd-party (unofficially-supported) software, present in the contrib - directory. For example, it is possible to provide an "ASM build", - besides the officially-supported build, and have ASM source files - among its dependencies. - -- If there are significant differences between the project files created - by different versions of an IDE (e.g. Visual C++ 6.0 vs. 7.0), the name - of the project directory should contain the version number of the IDE - for which the project is intended (e.g. "visualc6" for Visual C++ 6.0, - or "visualc7" for Visual C++ 7.0 and 7.1). - - -Current projects -================ - -visualc6/ by Simon-Pierre Cadieux - and Cosmin Truta - Project for Microsoft Visual C++ 6.0 diff --git a/qnx/package.qpg b/qnx/package.qpg index bf3433a380539b565ccc08ccc50bb8135abb60da..99d3701a877cc37c596f209167114cdd26bf7302 100644 --- a/qnx/package.qpg +++ b/qnx/package.qpg @@ -25,10 +25,10 @@ - - - - + + + + @@ -63,7 +63,7 @@ - 1.2.4.1 + 1.2.4.2 Medium Stable diff --git a/treebuild.xml b/treebuild.xml index e30532ed64c18cea60918a7d8d50998dda39f495..d2c6a259276735bb4dcf6b0ff76e1362a635ecda 100644 --- a/treebuild.xml +++ b/treebuild.xml @@ -1,6 +1,6 @@ - - + + zip compression library diff --git a/win32/Makefile.msc b/win32/Makefile.msc index a731c0c6214fcc143a76d40bc4bd0b014e744227..fa10a1aa5f1118baded1163cf041ecc3cf937749 100644 --- a/win32/Makefile.msc +++ b/win32/Makefile.msc @@ -2,15 +2,16 @@ # zlib is copyright (C) 1995-2006 Jean-loup Gailly and Mark Adler # # Usage: -# nmake -f win32/Makefile.msc (standard build) -# nmake -f win32/Makefile.msc LOC=-DFOO (nonstandard build) -# nmake -f win32/Makefile.msc LOC=-DASMV OBJA=match.obj (use ASM code) - +# nmake -f win32/Makefile.msc (standard build) +# nmake -f win32/Makefile.msc LOC=-DFOO (nonstandard build) +# nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" \ +# OBJA="inffas32.obj match686.obj" (use ASM code, x86) +# nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF" \ +# OBJA="inffasx64.obj gvmat64.obj inffas8664.c" (use ASM code, x64) # optional build flags LOC = - # variables STATICLIB = zlib.lib SHAREDLIB = zlib1.dll @@ -23,13 +24,13 @@ AR = lib RC = rc CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC) WFLAGS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -ASFLAGS = -coff -Zi +ASFLAGS = -coff -Zi $(LOC) LDFLAGS = -nologo -debug -incremental:no -opt:ref ARFLAGS = -nologo RCFLAGS = /dWIN32 /r OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ - gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj + gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj OBJA = @@ -71,7 +72,13 @@ minigzip_d.exe: minigzip.obj $(IMPLIB) .c.obj: $(CC) -c $(WFLAGS) $(CFLAGS) $< -.asm.obj: +{contrib/masmx64}.c.obj: + $(CC) -c $(WFLAGS) $(CFLAGS) $< + +{contrib/masmx64}.asm.obj: + $(AS) -c $(ASFLAGS) $< + +{contrib/masmx86}.asm.obj: $(AS) -c $(ASFLAGS) $< adler32.obj: adler32.c zlib.h zconf.h @@ -107,6 +114,17 @@ uncompr.obj: uncompr.c zlib.h zconf.h zutil.obj: zutil.c zutil.h zlib.h zconf.h +gvmat64.obj: contrib\masmx64\gvmat64.asm + +inffasx64.obj: contrib\masmx64\inffasx64.asm + +inffas8664.obj: contrib\masmx64\inffas8664.c zutil.h zlib.h zconf.h \ + inftrees.h inflate.h inffast.h + +inffas32.obj: contrib\masmx86\inffas32.asm + +match686.obj: contrib\masmx86\match686.asm + example.obj: example.c zlib.h zconf.h minigzip.obj: minigzip.c zlib.h zconf.h diff --git a/win32/README-WIN32.txt b/win32/README-WIN32.txt index 35062cdcec68c62df7826a5745b1900bc857012b..1e4c093c5e7b15fbef3fba9cd94ef43bb43f09fb 100644 --- a/win32/README-WIN32.txt +++ b/win32/README-WIN32.txt @@ -47,9 +47,9 @@ The package zlib-1.2.4-win32-x86.zip contains the following files: zdll.lib Install these files into the compilers' LIB path if linking zdll.exp a compiled program to the zlib1.dll binary - zlib.lib Install these files into the compilers' LIB path if linking - zlib.pdb a compiled program to the zlib1.dll binary (zlib.pdb ensures - that the resulting program may be debugged) + zlib.lib Install these files into the compilers' LIB path to link zlib + zlib.pdb into compiled programs, without zlib1.dll runtime dependency + (zlib.pdb provides debugging info to the compile time linker) zlib1.dll Install this binary shared library into the system PATH, or the program's runtime directory (where the .exe resides) diff --git a/zconf.h b/zconf.h index 6ad8a04edaeefc1cb25678a8525664a12778b591..d3eaf9187e63bb7477f4fea87781a91837208c04 100644 --- a/zconf.h +++ b/zconf.h @@ -364,8 +364,11 @@ typedef uLong FAR uLongf; # define Z_HAVE_UNISTD_H #endif -#if defined(Z_HAVE_UNISTD_H) || _LARGEFILE64_SOURCE == 1 +#ifdef STDC # include /* for off_t */ +#endif + +#if defined(Z_HAVE_UNISTD_H) || _LARGEFILE64_SOURCE # include /* for SEEK_* and off_t */ # ifdef VMS # include /* for off_t */ diff --git a/zconf.h.cmakein b/zconf.h.cmakein index fcd57106893d0e42511fff8356a97c12538c3d1a..bbe25a7d4c2e616ce137e6a89458685cc38dbab7 100644 --- a/zconf.h.cmakein +++ b/zconf.h.cmakein @@ -366,8 +366,11 @@ typedef uLong FAR uLongf; # define Z_HAVE_UNISTD_H #endif -#if defined(Z_HAVE_UNISTD_H) || _LARGEFILE64_SOURCE == 1 +#ifdef STDC # include /* for off_t */ +#endif + +#if defined(Z_HAVE_UNISTD_H) || _LARGEFILE64_SOURCE # include /* for SEEK_* and off_t */ # ifdef VMS # include /* for off_t */ diff --git a/zconf.h.in b/zconf.h.in index 6ad8a04edaeefc1cb25678a8525664a12778b591..d3eaf9187e63bb7477f4fea87781a91837208c04 100644 --- a/zconf.h.in +++ b/zconf.h.in @@ -364,8 +364,11 @@ typedef uLong FAR uLongf; # define Z_HAVE_UNISTD_H #endif -#if defined(Z_HAVE_UNISTD_H) || _LARGEFILE64_SOURCE == 1 +#ifdef STDC # include /* for off_t */ +#endif + +#if defined(Z_HAVE_UNISTD_H) || _LARGEFILE64_SOURCE # include /* for SEEK_* and off_t */ # ifdef VMS # include /* for off_t */ diff --git a/zlib.3 b/zlib.3 index 2c1679d7b27c1acec0a306a2b5067703c17f97e6..552318d4aad7cc7f393af196678ae119eaef131c 100644 --- a/zlib.3 +++ b/zlib.3 @@ -1,4 +1,4 @@ -.TH ZLIB 3 "28 Mar 2010" +.TH ZLIB 3 "9 Apr 2010" .SH NAME zlib \- compression/decompression library .SH SYNOPSIS @@ -125,7 +125,7 @@ before asking for help. Send questions and/or comments to zlib@gzip.org, or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). .SH AUTHORS -Version 1.2.4.1 +Version 1.2.4.2 Copyright (C) 1995-2010 Jean-loup Gailly (jloup@gzip.org) and Mark Adler (madler@alumni.caltech.edu). .LP diff --git a/zlib.3.pdf b/zlib.3.pdf index 0d63b20ddf432f2a9ac5a06855c78a612302709f..abbbb7ffef0c21d31491cdea2b916a283ade57c6 100644 Binary files a/zlib.3.pdf and b/zlib.3.pdf differ diff --git a/zlib.h b/zlib.h index 1fcf6300cc2b49d69577f84c7eb28016145eb65a..25535f9ab690ae8a776aa4342d9879e79892d9e6 100644 --- a/zlib.h +++ b/zlib.h @@ -1,5 +1,5 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.4.1, March 28th, 2010 + version 1.2.4.2, April 9th, 2010 Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler @@ -37,12 +37,12 @@ extern "C" { #endif -#define ZLIB_VERSION "1.2.4.1" +#define ZLIB_VERSION "1.2.4.2" #define ZLIB_VERNUM 0x1241 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 #define ZLIB_VER_REVISION 4 -#define ZLIB_VER_SUBREVISION 1 +#define ZLIB_VER_SUBREVISION 2 /* The 'zlib' compression library provides in-memory compression and @@ -1556,7 +1556,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, inflateBackInit_((strm), (windowBits), (window), \ ZLIB_VERSION, sizeof(z_stream)) -#if _LARGEFILE64_SOURCE == 1 && _LFS64_LARGEFILE == 1 +#if _LARGEFILE64_SOURCE && _LFS64_LARGEFILE ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); ZEXTERN off64_t ZEXPORT gzseek64 OF((gzFile, off64_t, int)); ZEXTERN off64_t ZEXPORT gztell64 OF((gzFile)); @@ -1565,14 +1565,14 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, off64_t)); #endif -#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS == 64 && _LFS64_LARGEFILE == 1 +#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS+0 == 64 && _LFS64_LARGEFILE # define gzopen gzopen64 # define gzseek gzseek64 # define gztell gztell64 # define gzoffset gzoffset64 # define adler32_combine adler32_combine64 # define crc32_combine crc32_combine64 -# if _LARGEFILE64_SOURCE != 1 +# if _LARGEFILE64_SOURCE ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); ZEXTERN off_t ZEXPORT gzseek64 OF((gzFile, off_t, int)); ZEXTERN off_t ZEXPORT gztell64 OF((gzFile)); diff --git a/zutil.h b/zutil.h index b21a19cc04397d64307fcb00c0946c858ac20c32..850f1ece16f2b59be8ae45d0e1eb41048795a971 100644 --- a/zutil.h +++ b/zutil.h @@ -154,20 +154,16 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ #pragma warn -8066 #endif -#if _LARGEFILE64_SOURCE == 1 && _LFS64_LARGEFILE == 1 +#if _LARGEFILE64_SOURCE && _LFS64_LARGEFILE # define z_off64_t off64_t #else # define z_off64_t z_off_t #endif /* provide prototypes for these when building zlib without LFS */ -#if _LARGEFILE64_SOURCE != 1 || _LFS64_LARGEFILE != 1 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN off_t ZEXPORT gzseek64 OF((gzFile, off_t, int)); - ZEXTERN off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, off_t)); +#if _LARGEFILE64_SOURCE+0 != 1 || _LFS64_LARGEFILE+0 != 1 + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); #endif /* common defaults */