diff options
55 files changed, 1004 insertions, 522 deletions
| @@ -1,12 +1,57 @@ | |||
| 1 | 1 | ||
| 2 | ChangeLog file for zlib | 2 | ChangeLog file for zlib |
| 3 | 3 | ||
| 4 | Changes in 1.2.5.1 (10 Sep 2011) | ||
| 5 | - Update FAQ entry on shared builds (#13) | ||
| 6 | - Avoid symbolic argument to chmod in Makefile.in | ||
| 7 | - Fix bug and add consts in contrib/puff [Oberhumer] | ||
| 8 | - Update contrib/puff/zeros.raw test file to have all block types | ||
| 9 | - Add full coverage test for puff in contrib/puff/Makefile | ||
| 10 | - Fix static-only-build install in Makefile.in | ||
| 11 | - Fix bug in unzGetCurrentFileInfo() in contrib/minizip [Kuno] | ||
| 12 | - Add libz.a dependency to shared in Makefile.in for parallel builds | ||
| 13 | - Spell out "number" (instead of "nb") in zlib.h for total_in, total_out | ||
| 14 | - Replace $(...) with `...` in configure for non-bash sh [Bowler] | ||
| 15 | - Add darwin* to Darwin* and solaris* to SunOS\ 5* in configure [Groffen] | ||
| 16 | - Add solaris* to Linux* in configure to allow gcc use [Groffen] | ||
| 17 | - Add *bsd* to Linux* case in configure [Bar-Lev] | ||
| 18 | - Add inffast.obj to dependencies in win32/Makefile.msc | ||
| 19 | - Correct spelling error in deflate.h [Kohler] | ||
| 20 | - Change libzdll.a again to libz.dll.a (!) in win32/Makefile.gcc | ||
| 21 | - Add test to configure for GNU C looking for gcc in output of $cc -v | ||
| 22 | - Add zlib.pc generation to win32/Makefile.gcc [Weigelt] | ||
| 23 | - Fix bug in zlib.h for _FILE_OFFSET_BITS set and _LARGEFILE64_SOURCE not | ||
| 24 | - Add comment in zlib.h that adler32_combine with len2 < 0 makes no sense | ||
| 25 | - Make NO_DIVIDE option in adler32.c much faster (thanks to John Reiser) | ||
| 26 | - Make stronger test in zconf.h to include unistd.h for LFS | ||
| 27 | - Apply Darwin patches for 64-bit file offsets to contrib/minizip [Slack] | ||
| 28 | - Fix zlib.h LFS support when Z_PREFIX used | ||
| 29 | - Add updated as400 support (removed from old) [Monnerat] | ||
| 30 | - Avoid deflate sensitivity to volatile input data | ||
| 31 | - Avoid division in adler32_combine for NO_DIVIDE | ||
| 32 | - Clarify the use of Z_FINISH with deflateBound() amount of space | ||
| 33 | - Set binary for output file in puff.c | ||
| 34 | - Use u4 type for crc_table to avoid conversion warnings | ||
| 35 | - Apply casts in zlib.h to avoid conversion warnings | ||
| 36 | - Add OF to prototypes for adler32_combine_ and crc32_combine_ [Miller] | ||
| 37 | - Improve inflateSync() documentation to note indeterminancy | ||
| 38 | - Add deflatePending() function to return the amount of pending output | ||
| 39 | - Correct the spelling of "specification" in FAQ [Randers-Pehrson] | ||
| 40 | - Add a check in configure for stdarg.h, use for gzprintf() | ||
| 41 | - Check that pointers fit in ints when gzprint() compiled old style | ||
| 42 | - Add dummy name before $(SHAREDLIBV) in Makefile [Bar-Lev, Bowler] | ||
| 43 | - Delete line in configure that adds -L. libz.a to LDFLAGS [Weigelt] | ||
| 44 | - Add debug records in assmebler code [Londer] | ||
| 45 | - Update RFC references to use http://tools.ietf.org/html/... [Li] | ||
| 46 | - Add --archs option, use of libtool to configure for Mac OS X [Borstel] | ||
| 47 | |||
| 4 | Changes in 1.2.5 (19 Apr 2010) | 48 | Changes in 1.2.5 (19 Apr 2010) |
| 5 | - Disable visibility attribute in win32/Makefile.gcc [Bar-Lev] | 49 | - Disable visibility attribute in win32/Makefile.gcc [Bar-Lev] |
| 6 | - Default to libdir as sharedlibdir in configure [Nieder] | 50 | - Default to libdir as sharedlibdir in configure [Nieder] |
| 7 | - Update copyright dates on modified source files | 51 | - Update copyright dates on modified source files |
| 8 | - Update trees.c to be able to generate modified trees.h | 52 | - Update trees.c to be able to generate modified trees.h |
| 9 | - Exit configure for MinGW, suggesting win32/Makefile.gcc | 53 | - Exit configure for MinGW, suggesting win32/Makefile.gcc |
| 54 | - Check for NULL path in gz_open [Homurlu] | ||
| 10 | 55 | ||
| 11 | Changes in 1.2.4.5 (18 Apr 2010) | 56 | Changes in 1.2.4.5 (18 Apr 2010) |
| 12 | - Set sharedlibdir in configure [Torok] | 57 | - Set sharedlibdir in configure [Torok] |
| @@ -261,7 +306,7 @@ Changes in 1.2.3.4 (21 Dec 2009) | |||
| 261 | - Clear bytes after deflate lookahead to avoid use of uninitialized data | 306 | - Clear bytes after deflate lookahead to avoid use of uninitialized data |
| 262 | - Change a limit in inftrees.c to be more transparent to Coverity Prevent | 307 | - Change a limit in inftrees.c to be more transparent to Coverity Prevent |
| 263 | - Update win32/zlib.def with exported symbols from zlib.h | 308 | - Update win32/zlib.def with exported symbols from zlib.h |
| 264 | - Correct spelling error in zlib.h [Willem] | 309 | - Correct spelling errors in zlib.h [Willem, Sobrado] |
| 265 | - Allow Z_BLOCK for deflate() to force a new block | 310 | - Allow Z_BLOCK for deflate() to force a new block |
| 266 | - Allow negative bits in inflatePrime() to delete existing bit buffer | 311 | - Allow negative bits in inflatePrime() to delete existing bit buffer |
| 267 | - Add Z_TREES flush option to inflate() to return at end of trees | 312 | - Add Z_TREES flush option to inflate() to return at end of trees |
| @@ -84,8 +84,10 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html | |||
| 84 | 84 | ||
| 85 | 13. How can I make a Unix shared library? | 85 | 13. How can I make a Unix shared library? |
| 86 | 86 | ||
| 87 | make clean | 87 | By default a shared (and a static) library is built for Unix. So: |
| 88 | ./configure -s | 88 | |
| 89 | make distclean | ||
| 90 | ./configure | ||
| 89 | make | 91 | make |
| 90 | 92 | ||
| 91 | 14. How do I install a shared zlib library on Unix? | 93 | 14. How do I install a shared zlib library on Unix? |
| @@ -325,7 +327,7 @@ The lastest zlib FAQ is at http://zlib.net/zlib_faq.html | |||
| 325 | correctly points to the zlib specification in RFC 1950 for the "deflate" | 327 | correctly points to the zlib specification in RFC 1950 for the "deflate" |
| 326 | transfer encoding, there have been reports of servers and browsers that | 328 | transfer encoding, there have been reports of servers and browsers that |
| 327 | incorrectly produce or expect raw deflate data per the deflate | 329 | incorrectly produce or expect raw deflate data per the deflate |
| 328 | specficiation in RFC 1951, most notably Microsoft. So even though the | 330 | specification in RFC 1951, most notably Microsoft. So even though the |
| 329 | "deflate" transfer encoding using the zlib format would be the more | 331 | "deflate" transfer encoding using the zlib format would be the more |
| 330 | efficient approach (and in fact exactly what the zlib format was designed | 332 | efficient approach (and in fact exactly what the zlib format was designed |
| 331 | for), using the "gzip" transfer encoding is probably more reliable due to | 333 | for), using the "gzip" transfer encoding is probably more reliable due to |
| @@ -17,6 +17,7 @@ zlib.pc.in Template for pkg-config descriptor | |||
| 17 | zlib2ansi perl script to convert source files for C++ compilation | 17 | zlib2ansi perl script to convert source files for C++ compilation |
| 18 | 18 | ||
| 19 | amiga/ makefiles for Amiga SAS C | 19 | amiga/ makefiles for Amiga SAS C |
| 20 | as400/ makefiles for AS/400 | ||
| 20 | doc/ documentation for formats and algorithms | 21 | doc/ documentation for formats and algorithms |
| 21 | msdos/ makefiles for MSDOS | 22 | msdos/ makefiles for MSDOS |
| 22 | nintendods/ makefile for Nintendo DS | 23 | nintendods/ makefile for Nintendo DS |
diff --git a/Makefile.in b/Makefile.in index 5b15bd0..861970d 100644 --- a/Makefile.in +++ b/Makefile.in | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | # Makefile for zlib | 1 | # Makefile for zlib |
| 2 | # Copyright (C) 1995-2010 Jean-loup Gailly. | 2 | # Copyright (C) 1995-2011 Jean-loup Gailly. |
| 3 | # For conditions of distribution and use, see copyright notice in zlib.h | 3 | # For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | 4 | ||
| 5 | # To compile and test, type: | 5 | # To compile and test, type: |
| @@ -32,7 +32,7 @@ CPP=$(CC) -E | |||
| 32 | 32 | ||
| 33 | STATICLIB=libz.a | 33 | STATICLIB=libz.a |
| 34 | SHAREDLIB=libz.so | 34 | SHAREDLIB=libz.so |
| 35 | SHAREDLIBV=libz.so.1.2.5 | 35 | SHAREDLIBV=libz.so.1.2.5.1 |
| 36 | SHAREDLIBM=libz.so.1 | 36 | SHAREDLIBM=libz.so.1 |
| 37 | LIBS=$(STATICLIB) $(SHAREDLIBV) | 37 | LIBS=$(STATICLIB) $(SHAREDLIBV) |
| 38 | 38 | ||
| @@ -136,7 +136,7 @@ minigzip64.o: minigzip.c zlib.h zconf.h | |||
| 136 | $(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $< | 136 | $(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $< |
| 137 | -@mv objs/$*.o $@ | 137 | -@mv objs/$*.o $@ |
| 138 | 138 | ||
| 139 | $(SHAREDLIBV): $(PIC_OBJS) | 139 | placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a |
| 140 | $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS) | 140 | $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS) |
| 141 | rm -f $(SHAREDLIB) $(SHAREDLIBM) | 141 | rm -f $(SHAREDLIB) $(SHAREDLIBM) |
| 142 | ln -s $@ $(SHAREDLIB) | 142 | ln -s $@ $(SHAREDLIB) |
| @@ -168,14 +168,16 @@ install-libs: $(LIBS) | |||
| 168 | -@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi | 168 | -@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi |
| 169 | -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi | 169 | -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi |
| 170 | cp $(STATICLIB) $(DESTDIR)$(libdir) | 170 | cp $(STATICLIB) $(DESTDIR)$(libdir) |
| 171 | cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir) | 171 | chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB) |
| 172 | cd $(DESTDIR)$(libdir); chmod u=rw,go=r $(STATICLIB) | 172 | -@($(RANLIB) $(DESTDIR)$(libdir)/libz.a || true) >/dev/null 2>&1 |
| 173 | -@(cd $(DESTDIR)$(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1 | 173 | -@if test -n "$(SHAREDLIBV)"; then \ |
| 174 | -@cd $(DESTDIR)$(sharedlibdir); if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \ | 174 | cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir); \ |
| 175 | chmod 755 $(SHAREDLIBV); \ | 175 | echo "cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)"; \ |
| 176 | rm -f $(SHAREDLIB) $(SHAREDLIBM); \ | 176 | chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \ |
| 177 | ln -s $(SHAREDLIBV) $(SHAREDLIB); \ | 177 | echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV)"; \ |
| 178 | ln -s $(SHAREDLIBV) $(SHAREDLIBM); \ | 178 | rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \ |
| 179 | ln -s $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \ | ||
| 180 | ln -s $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \ | ||
| 179 | ($(LDCONFIG) || true) >/dev/null 2>&1; \ | 181 | ($(LDCONFIG) || true) >/dev/null 2>&1; \ |
| 180 | fi | 182 | fi |
| 181 | cp zlib.3 $(DESTDIR)$(man3dir) | 183 | cp zlib.3 $(DESTDIR)$(man3dir) |
| @@ -193,7 +195,7 @@ install: install-libs | |||
| 193 | uninstall: | 195 | uninstall: |
| 194 | cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h | 196 | cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h |
| 195 | cd $(DESTDIR)$(libdir); rm -f libz.a; \ | 197 | cd $(DESTDIR)$(libdir); rm -f libz.a; \ |
| 196 | if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \ | 198 | if test -n "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \ |
| 197 | rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \ | 199 | rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \ |
| 198 | fi | 200 | fi |
| 199 | cd $(DESTDIR)$(man3dir); rm -f zlib.3 | 201 | cd $(DESTDIR)$(man3dir); rm -f zlib.3 |
| @@ -1,10 +1,10 @@ | |||
| 1 | ZLIB DATA COMPRESSION LIBRARY | 1 | ZLIB DATA COMPRESSION LIBRARY |
| 2 | 2 | ||
| 3 | zlib 1.2.5 is a general purpose data compression library. All the code is | 3 | zlib 1.2.5.1 is a general purpose data compression library. All the code is |
| 4 | thread safe. The data format used by the zlib library is described by RFCs | 4 | thread safe. The data format used by the zlib library is described by RFCs |
| 5 | (Request for Comments) 1950 to 1952 in the files | 5 | (Request for Comments) 1950 to 1952 in the files |
| 6 | http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) | 6 | http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and |
| 7 | and rfc1952.txt (gzip format). | 7 | rfc1952 (gzip format). |
| 8 | 8 | ||
| 9 | All functions of the compression library are documented in the file zlib.h | 9 | All functions of the compression library are documented in the file zlib.h |
| 10 | (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example | 10 | (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example |
| @@ -31,7 +31,7 @@ Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997 | |||
| 31 | issue of Dr. Dobb's Journal; a copy of the article is available at | 31 | issue of Dr. Dobb's Journal; a copy of the article is available at |
| 32 | http://marknelson.us/1997/01/01/zlib-engine/ . | 32 | http://marknelson.us/1997/01/01/zlib-engine/ . |
| 33 | 33 | ||
| 34 | The changes made in version 1.2.5 are documented in the file ChangeLog. | 34 | The changes made in version 1.2.5.1 are documented in the file ChangeLog. |
| 35 | 35 | ||
| 36 | Unsupported third party contributions are provided in directory contrib/ . | 36 | Unsupported third party contributions are provided in directory contrib/ . |
| 37 | 37 | ||
| @@ -84,7 +84,7 @@ Acknowledgments: | |||
| 84 | 84 | ||
| 85 | Copyright notice: | 85 | Copyright notice: |
| 86 | 86 | ||
| 87 | (C) 1995-2010 Jean-loup Gailly and Mark Adler | 87 | (C) 1995-2011 Jean-loup Gailly and Mark Adler |
| 88 | 88 | ||
| 89 | This software is provided 'as-is', without any express or implied | 89 | This software is provided 'as-is', without any express or implied |
| 90 | warranty. In no event will the authors be held liable for any damages | 90 | warranty. In no event will the authors be held liable for any damages |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* adler32.c -- compute the Adler-32 checksum of a data stream | 1 | /* adler32.c -- compute the Adler-32 checksum of a data stream |
| 2 | * Copyright (C) 1995-2007 Mark Adler | 2 | * Copyright (C) 1995-2011 Mark Adler |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -9,9 +9,9 @@ | |||
| 9 | 9 | ||
| 10 | #define local static | 10 | #define local static |
| 11 | 11 | ||
| 12 | local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2); | 12 | local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); |
| 13 | 13 | ||
| 14 | #define BASE 65521UL /* largest prime smaller than 65536 */ | 14 | #define BASE 65521 /* largest prime smaller than 65536 */ |
| 15 | #define NMAX 5552 | 15 | #define NMAX 5552 |
| 16 | /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ | 16 | /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ |
| 17 | 17 | ||
| @@ -21,39 +21,44 @@ local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2); | |||
| 21 | #define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); | 21 | #define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); |
| 22 | #define DO16(buf) DO8(buf,0); DO8(buf,8); | 22 | #define DO16(buf) DO8(buf,0); DO8(buf,8); |
| 23 | 23 | ||
| 24 | /* use NO_DIVIDE if your processor does not do division in hardware */ | 24 | /* use NO_DIVIDE if your processor does not do division in hardware -- |
| 25 | try it both ways to see which is faster */ | ||
| 25 | #ifdef NO_DIVIDE | 26 | #ifdef NO_DIVIDE |
| 26 | # define MOD(a) \ | 27 | /* note that this assumes BASE is 65521, where 65536 % 65521 == 15 |
| 28 | (thank you to John Reiser for pointing this out) */ | ||
| 29 | # define CHOP(a) \ | ||
| 30 | do { \ | ||
| 31 | unsigned long tmp = a >> 16; \ | ||
| 32 | a &= 0xffffUL; \ | ||
| 33 | a += (tmp << 4) - tmp; \ | ||
| 34 | } while (0) | ||
| 35 | # define MOD28(a) \ | ||
| 27 | do { \ | 36 | do { \ |
| 28 | if (a >= (BASE << 16)) a -= (BASE << 16); \ | 37 | CHOP(a); \ |
| 29 | if (a >= (BASE << 15)) a -= (BASE << 15); \ | ||
| 30 | if (a >= (BASE << 14)) a -= (BASE << 14); \ | ||
| 31 | if (a >= (BASE << 13)) a -= (BASE << 13); \ | ||
| 32 | if (a >= (BASE << 12)) a -= (BASE << 12); \ | ||
| 33 | if (a >= (BASE << 11)) a -= (BASE << 11); \ | ||
| 34 | if (a >= (BASE << 10)) a -= (BASE << 10); \ | ||
| 35 | if (a >= (BASE << 9)) a -= (BASE << 9); \ | ||
| 36 | if (a >= (BASE << 8)) a -= (BASE << 8); \ | ||
| 37 | if (a >= (BASE << 7)) a -= (BASE << 7); \ | ||
| 38 | if (a >= (BASE << 6)) a -= (BASE << 6); \ | ||
| 39 | if (a >= (BASE << 5)) a -= (BASE << 5); \ | ||
| 40 | if (a >= (BASE << 4)) a -= (BASE << 4); \ | ||
| 41 | if (a >= (BASE << 3)) a -= (BASE << 3); \ | ||
| 42 | if (a >= (BASE << 2)) a -= (BASE << 2); \ | ||
| 43 | if (a >= (BASE << 1)) a -= (BASE << 1); \ | ||
| 44 | if (a >= BASE) a -= BASE; \ | 38 | if (a >= BASE) a -= BASE; \ |
| 45 | } while (0) | 39 | } while (0) |
| 46 | # define MOD4(a) \ | 40 | # define MOD(a) \ |
| 47 | do { \ | 41 | do { \ |
| 48 | if (a >= (BASE << 4)) a -= (BASE << 4); \ | 42 | CHOP(a); \ |
| 49 | if (a >= (BASE << 3)) a -= (BASE << 3); \ | 43 | MOD28(a); \ |
| 50 | if (a >= (BASE << 2)) a -= (BASE << 2); \ | 44 | } while (0) |
| 51 | if (a >= (BASE << 1)) a -= (BASE << 1); \ | 45 | # define MOD63(a) \ |
| 46 | do { /* this assumes a is not negative */ \ | ||
| 47 | z_off64_t tmp = a >> 32; \ | ||
| 48 | a &= 0xffffffffL; \ | ||
| 49 | a += (tmp << 8) - (tmp << 5) + tmp; \ | ||
| 50 | tmp = a >> 16; \ | ||
| 51 | a &= 0xffffL; \ | ||
| 52 | a += (tmp << 4) - tmp; \ | ||
| 53 | tmp = a >> 16; \ | ||
| 54 | a &= 0xffffL; \ | ||
| 55 | a += (tmp << 4) - tmp; \ | ||
| 52 | if (a >= BASE) a -= BASE; \ | 56 | if (a >= BASE) a -= BASE; \ |
| 53 | } while (0) | 57 | } while (0) |
| 54 | #else | 58 | #else |
| 55 | # define MOD(a) a %= BASE | 59 | # define MOD(a) a %= BASE |
| 56 | # define MOD4(a) a %= BASE | 60 | # define MOD28(a) a %= BASE |
| 61 | # define MOD63(a) a %= BASE | ||
| 57 | #endif | 62 | #endif |
| 58 | 63 | ||
| 59 | /* ========================================================================= */ | 64 | /* ========================================================================= */ |
| @@ -92,7 +97,7 @@ uLong ZEXPORT adler32(adler, buf, len) | |||
| 92 | } | 97 | } |
| 93 | if (adler >= BASE) | 98 | if (adler >= BASE) |
| 94 | adler -= BASE; | 99 | adler -= BASE; |
| 95 | MOD4(sum2); /* only added so many BASE's */ | 100 | MOD28(sum2); /* only added so many BASE's */ |
| 96 | return adler | (sum2 << 16); | 101 | return adler | (sum2 << 16); |
| 97 | } | 102 | } |
| 98 | 103 | ||
| @@ -137,8 +142,13 @@ local uLong adler32_combine_(adler1, adler2, len2) | |||
| 137 | unsigned long sum2; | 142 | unsigned long sum2; |
| 138 | unsigned rem; | 143 | unsigned rem; |
| 139 | 144 | ||
| 145 | /* for negative len, return invalid adler32 as a clue for debugging */ | ||
| 146 | if (len2 < 0) | ||
| 147 | return 0xffffffffUL; | ||
| 148 | |||
| 140 | /* the derivation of this formula is left as an exercise for the reader */ | 149 | /* the derivation of this formula is left as an exercise for the reader */ |
| 141 | rem = (unsigned)(len2 % BASE); | 150 | MOD63(len2); /* assumes len2 >= 0 */ |
| 151 | rem = (unsigned)len2; | ||
| 142 | sum1 = adler1 & 0xffff; | 152 | sum1 = adler1 & 0xffff; |
| 143 | sum2 = rem * sum1; | 153 | sum2 = rem * sum1; |
| 144 | MOD(sum2); | 154 | MOD(sum2); |
diff --git a/old/as400/bndsrc b/as400/bndsrc index 9cf94bb..06c3f43 100644 --- a/old/as400/bndsrc +++ b/as400/bndsrc | |||
| @@ -34,6 +34,7 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB') | |||
| 34 | EXPORT SYMBOL("deflateCopy") | 34 | EXPORT SYMBOL("deflateCopy") |
| 35 | EXPORT SYMBOL("deflateReset") | 35 | EXPORT SYMBOL("deflateReset") |
| 36 | EXPORT SYMBOL("deflateParams") | 36 | EXPORT SYMBOL("deflateParams") |
| 37 | EXPORT SYMBOL("deflatePending") | ||
| 37 | EXPORT SYMBOL("deflatePrime") | 38 | EXPORT SYMBOL("deflatePrime") |
| 38 | EXPORT SYMBOL("deflateInit_") | 39 | EXPORT SYMBOL("deflateInit_") |
| 39 | EXPORT SYMBOL("deflateInit2_") | 40 | EXPORT SYMBOL("deflateInit2_") |
| @@ -129,4 +130,54 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB') | |||
| 129 | 130 | ||
| 130 | EXPORT SYMBOL("zlibCompileFlags") | 131 | EXPORT SYMBOL("zlibCompileFlags") |
| 131 | 132 | ||
| 133 | /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ | ||
| 134 | /* Version 1.2.5 additional entry points. */ | ||
| 135 | /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ | ||
| 136 | |||
| 137 | /********************************************************************/ | ||
| 138 | /* *MODULE ADLER32 ZLIB 01/02/01 00:15:09 */ | ||
| 139 | /********************************************************************/ | ||
| 140 | |||
| 141 | EXPORT SYMBOL("adler32_combine") | ||
| 142 | EXPORT SYMBOL("adler32_combine64") | ||
| 143 | |||
| 144 | /********************************************************************/ | ||
| 145 | /* *MODULE CRC32 ZLIB 01/02/01 00:15:09 */ | ||
| 146 | /********************************************************************/ | ||
| 147 | |||
| 148 | EXPORT SYMBOL("crc32_combine") | ||
| 149 | EXPORT SYMBOL("crc32_combine64") | ||
| 150 | |||
| 151 | /********************************************************************/ | ||
| 152 | /* *MODULE GZLIB ZLIB 01/02/01 00:15:09 */ | ||
| 153 | /********************************************************************/ | ||
| 154 | |||
| 155 | EXPORT SYMBOL("gzbuffer") | ||
| 156 | EXPORT SYMBOL("gzoffset") | ||
| 157 | EXPORT SYMBOL("gzoffset64") | ||
| 158 | EXPORT SYMBOL("gzopen64") | ||
| 159 | EXPORT SYMBOL("gzseek64") | ||
| 160 | EXPORT SYMBOL("gztell64") | ||
| 161 | |||
| 162 | /********************************************************************/ | ||
| 163 | /* *MODULE GZREAD ZLIB 01/02/01 00:15:09 */ | ||
| 164 | /********************************************************************/ | ||
| 165 | |||
| 166 | EXPORT SYMBOL("gzclose_r") | ||
| 167 | |||
| 168 | /********************************************************************/ | ||
| 169 | /* *MODULE GZWRITE ZLIB 01/02/01 00:15:09 */ | ||
| 170 | /********************************************************************/ | ||
| 171 | |||
| 172 | EXPORT SYMBOL("gzclose_w") | ||
| 173 | |||
| 174 | /********************************************************************/ | ||
| 175 | /* *MODULE INFLATE ZLIB 01/02/01 00:15:09 */ | ||
| 176 | /********************************************************************/ | ||
| 177 | |||
| 178 | EXPORT SYMBOL("inflateMark") | ||
| 179 | EXPORT SYMBOL("inflatePrime") | ||
| 180 | EXPORT SYMBOL("inflateReset2") | ||
| 181 | EXPORT SYMBOL("inflateUndermine") | ||
| 182 | |||
| 132 | ENDPGMEXP | 183 | ENDPGMEXP |
diff --git a/as400/compile.clp b/as400/compile.clp new file mode 100644 index 0000000..2f34936 --- /dev/null +++ b/as400/compile.clp | |||
| @@ -0,0 +1,110 @@ | |||
| 1 | /******************************************************************************/ | ||
| 2 | /* */ | ||
| 3 | /* ZLIB */ | ||
| 4 | /* */ | ||
| 5 | /* Compile sources into modules and link them into a service program. */ | ||
| 6 | /* */ | ||
| 7 | /******************************************************************************/ | ||
| 8 | |||
| 9 | PGM | ||
| 10 | |||
| 11 | /* Configuration adjustable parameters. */ | ||
| 12 | |||
| 13 | DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) + | ||
| 14 | VALUE('ZLIB') /* Source library. */ | ||
| 15 | DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(10) + | ||
| 16 | VALUE('SOURCES') /* Source member file. */ | ||
| 17 | DCL VAR(&CTLFILE) TYPE(*CHAR) LEN(10) + | ||
| 18 | VALUE('TOOLS') /* Control member file. */ | ||
| 19 | |||
| 20 | DCL VAR(&MODLIB) TYPE(*CHAR) LEN(10) + | ||
| 21 | VALUE('ZLIB') /* Module library. */ | ||
| 22 | |||
| 23 | DCL VAR(&SRVLIB) TYPE(*CHAR) LEN(10) + | ||
| 24 | VALUE('LGPL') /* Service program library. */ | ||
| 25 | |||
| 26 | DCL VAR(&CFLAGS) TYPE(*CHAR) + | ||
| 27 | VALUE('OPTIMIZE(40)') /* Compile options. */ | ||
| 28 | |||
| 29 | DCL VAR(&TGTRLS) TYPE(*CHAR) + | ||
| 30 | VALUE('V5R3M0') /* Target release. */ | ||
| 31 | |||
| 32 | |||
| 33 | /* Working storage. */ | ||
| 34 | |||
| 35 | DCL VAR(&CMDLEN) TYPE(*DEC) LEN(15 5) VALUE(300) /* Command length. */ | ||
| 36 | DCL VAR(&CMD) TYPE(*CHAR) LEN(512) | ||
| 37 | DCL VAR(&FIXDCMD) TYPE(*CHAR) LEN(512) | ||
| 38 | |||
| 39 | |||
| 40 | /* Compile sources into modules. */ | ||
| 41 | |||
| 42 | CHGVAR VAR(&FIXDCMD) VALUE('CRTCMOD' *BCAT &CFLAGS *BCAT + | ||
| 43 | 'SYSIFCOPT(*IFS64IO)' *BCAT + | ||
| 44 | 'DEFINE(''_LARGEFILE64_SOURCE''' *BCAT + | ||
| 45 | '''_LFS64_LARGEFILE=1'') TGTRLS(' *TCAT &TGTRLS *TCAT + | ||
| 46 | ') SRCFILE(' *TCAT &SRCLIB *TCAT '/' *TCAT + | ||
| 47 | &SRCFILE *TCAT ') MODULE(' *TCAT &MODLIB *TCAT '/') | ||
| 48 | |||
| 49 | |||
| 50 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'ADLER32)') | ||
| 51 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 52 | |||
| 53 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'COMPRESS)') | ||
| 54 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 55 | |||
| 56 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'CRC32)') | ||
| 57 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 58 | |||
| 59 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'DEFLATE)') | ||
| 60 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 61 | |||
| 62 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZCLOSE)') | ||
| 63 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 64 | |||
| 65 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZLIB)') | ||
| 66 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 67 | |||
| 68 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZREAD)') | ||
| 69 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 70 | |||
| 71 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'GZWRITE)') | ||
| 72 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 73 | |||
| 74 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFBACK)') | ||
| 75 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 76 | |||
| 77 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFFAST)') | ||
| 78 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 79 | |||
| 80 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFLATE)') | ||
| 81 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 82 | |||
| 83 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'INFTREES)') | ||
| 84 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 85 | |||
| 86 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'TREES)') | ||
| 87 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 88 | |||
| 89 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'UNCOMPR)') | ||
| 90 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 91 | |||
| 92 | CHGVAR VAR(&CMD) VALUE(&FIXDCMD *TCAT 'ZUTIL)') | ||
| 93 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 94 | |||
| 95 | |||
| 96 | /* Link modules into a service program. */ | ||
| 97 | |||
| 98 | CRTSRVPGM SRVPGM(&SRVLIB/ZLIB) + | ||
| 99 | MODULE(&MODLIB/ADLER32 &MODLIB/COMPRESS + | ||
| 100 | &MODLIB/CRC32 &MODLIB/DEFLATE + | ||
| 101 | &MODLIB/GZCLOSE &MODLIB/GZLIB + | ||
| 102 | &MODLIB/GZREAD &MODLIB/GZWRITE + | ||
| 103 | &MODLIB/INFBACK &MODLIB/INFFAST + | ||
| 104 | &MODLIB/INFLATE &MODLIB/INFTREES + | ||
| 105 | &MODLIB/TREES &MODLIB/UNCOMPR + | ||
| 106 | &MODLIB/ZUTIL) + | ||
| 107 | SRCFILE(&SRCLIB/&CTLFILE) SRCMBR(BNDSRC) + | ||
| 108 | TEXT('ZLIB 1.2.5.1') TGTRLS(&TGTRLS) | ||
| 109 | |||
| 110 | ENDPGM | ||
diff --git a/old/as400/readme.txt b/as400/readme.txt index beae13f..5b96cec 100644 --- a/old/as400/readme.txt +++ b/as400/readme.txt | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ZLIB version 1.2.3 for AS400 installation instructions | 1 | ZLIB version 1.2.5.1 for AS400 installation instructions |
| 2 | 2 | ||
| 3 | I) From an AS400 *SAVF file: | 3 | I) From an AS400 *SAVF file: |
| 4 | 4 | ||
| @@ -70,7 +70,10 @@ II) From the original source distribution: | |||
| 70 | compress.c COMPRESS C ZLIB - Compress a memory buffer | 70 | compress.c COMPRESS C ZLIB - Compress a memory buffer |
| 71 | crc32.c CRC32 C ZLIB - Compute the CRC-32 of a data stream | 71 | crc32.c CRC32 C ZLIB - Compute the CRC-32 of a data stream |
| 72 | deflate.c DEFLATE C ZLIB - Compress data using the deflation algorithm | 72 | deflate.c DEFLATE C ZLIB - Compress data using the deflation algorithm |
| 73 | gzio.c GZIO C ZLIB - IO on .gz files | 73 | gzclose.c GZCLOSE C ZLIB - Close .gz files |
| 74 | gzlib.c GZLIB C ZLIB - Miscellaneous .gz files IO support | ||
| 75 | gzread.c GZREAD C ZLIB - Read .gz files | ||
| 76 | gzwrite.c GZWRITE C ZLIB - Write .gz files | ||
| 74 | infback.c INFBACK C ZLIB - Inflate using a callback interface | 77 | infback.c INFBACK C ZLIB - Inflate using a callback interface |
| 75 | inffast.c INFFAST C ZLIB - Fast proc. literals & length/distance pairs | 78 | inffast.c INFFAST C ZLIB - Fast proc. literals & length/distance pairs |
| 76 | inflate.c INFLATE C ZLIB - Interface to inflate modules | 79 | inflate.c INFLATE C ZLIB - Interface to inflate modules |
| @@ -81,6 +84,7 @@ II) From the original source distribution: | |||
| 81 | H Original ZLIB C and ILE/RPG include files | 84 | H Original ZLIB C and ILE/RPG include files |
| 82 | crc32.h CRC32 C ZLIB - CRC32 tables | 85 | crc32.h CRC32 C ZLIB - CRC32 tables |
| 83 | deflate.h DEFLATE C ZLIB - Internal compression state | 86 | deflate.h DEFLATE C ZLIB - Internal compression state |
| 87 | gzguts.h GZGUTS C ZLIB - Definitions for the gzclose module | ||
| 84 | inffast.h INFFAST C ZLIB - Header to use inffast.c | 88 | inffast.h INFFAST C ZLIB - Header to use inffast.c |
| 85 | inffixed.h INFFIXED C ZLIB - Table for decoding fixed codes | 89 | inffixed.h INFFIXED C ZLIB - Table for decoding fixed codes |
| 86 | inflate.h INFLATE C ZLIB - Internal inflate state definitions | 90 | inflate.h INFLATE C ZLIB - Internal inflate state definitions |
| @@ -108,4 +112,4 @@ Notes: For AS400 ILE RPG programmers, a /copy member defining the ZLIB | |||
| 108 | implementation does not handle conversion from/to ASCII, so | 112 | implementation does not handle conversion from/to ASCII, so |
| 109 | text data code conversions must be done explicitely. | 113 | text data code conversions must be done explicitely. |
| 110 | 114 | ||
| 111 | Always open zipped files in binary mode. | 115 | Mainly for the reason above, always open zipped files in binary mode. |
diff --git a/old/as400/zlib.inc b/as400/zlib.inc index a9a4f5c..d492ef3 100644 --- a/old/as400/zlib.inc +++ b/as400/zlib.inc | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | * ZLIB.INC - Interface to the general purpose compression library | 1 | * ZLIB.INC - Interface to the general purpose compression library |
| 2 | * | 2 | * |
| 3 | * ILE RPG400 version by Patrick Monnerat, DATASPHERE. | 3 | * ILE RPG400 version by Patrick Monnerat, DATASPHERE. |
| 4 | * Version 1.2.3.9 | 4 | * Version 1.2.5.1 |
| 5 | * | 5 | * |
| 6 | * | 6 | * |
| 7 | * WARNING: | 7 | * WARNING: |
| @@ -22,16 +22,25 @@ | |||
| 22 | * | 22 | * |
| 23 | * Versioning information. | 23 | * Versioning information. |
| 24 | * | 24 | * |
| 25 | D ZLIB_VERSION C '1.2.3.9' | 25 | D ZLIB_VERSION C '1.2.5.1' |
| 26 | D ZLIB_VERNUM C X'1239' | 26 | D ZLIB_VERNUM C X'1251' |
| 27 | D ZLIB_VER_MAJOR C 1 | ||
| 28 | D ZLIB_VER_MINOR C 2 | ||
| 29 | D ZLIB_VER_REVISION... | ||
| 30 | D C 5 | ||
| 31 | D ZLIB_VER_SUBREVISION... | ||
| 32 | D C 0 | ||
| 27 | * | 33 | * |
| 28 | * Other equates. | 34 | * Other equates. |
| 29 | * | 35 | * |
| 30 | D Z_NO_FLUSH C 0 | 36 | D Z_NO_FLUSH C 0 |
| 37 | D Z_PARTIAL_FLUSH... | ||
| 38 | D C 1 | ||
| 31 | D Z_SYNC_FLUSH C 2 | 39 | D Z_SYNC_FLUSH C 2 |
| 32 | D Z_FULL_FLUSH C 3 | 40 | D Z_FULL_FLUSH C 3 |
| 33 | D Z_FINISH C 4 | 41 | D Z_FINISH C 4 |
| 34 | D Z_BLOCK C 5 | 42 | D Z_BLOCK C 5 |
| 43 | D Z_TREES C 6 | ||
| 35 | * | 44 | * |
| 36 | D Z_OK C 0 | 45 | D Z_OK C 0 |
| 37 | D Z_STREAM_END C 1 | 46 | D Z_STREAM_END C 1 |
| @@ -72,6 +81,7 @@ | |||
| 72 | D z_streamp S * Stream struct ptr | 81 | D z_streamp S * Stream struct ptr |
| 73 | D gzFile S * File pointer | 82 | D gzFile S * File pointer |
| 74 | D z_off_t S 10i 0 Stream offsets | 83 | D z_off_t S 10i 0 Stream offsets |
| 84 | D z_off64_t S 20i 0 Stream offsets | ||
| 75 | * | 85 | * |
| 76 | ************************************************************************** | 86 | ************************************************************************** |
| 77 | * Structures | 87 | * Structures |
| @@ -122,20 +132,36 @@ | |||
| 122 | D source 32767 const options(*varsize) Source buffer | 132 | D source 32767 const options(*varsize) Source buffer |
| 123 | D sourceLen 10U 0 value Source length | 133 | D sourceLen 10U 0 value Source length |
| 124 | * | 134 | * |
| 135 | /if not defined(LARGE_FILES) | ||
| 125 | D gzopen PR extproc('gzopen') | 136 | D gzopen PR extproc('gzopen') |
| 126 | D like(gzFile) | 137 | D like(gzFile) |
| 127 | D path * value options(*string) File pathname | 138 | D path * value options(*string) File pathname |
| 128 | D mode * value options(*string) Open mode | 139 | D mode * value options(*string) Open mode |
| 140 | /else | ||
| 141 | D gzopen PR extproc('gzopen64') | ||
| 142 | D like(gzFile) | ||
| 143 | D path * value options(*string) File pathname | ||
| 144 | D mode * value options(*string) Open mode | ||
| 145 | * | ||
| 146 | D gzopen64 PR extproc('gzopen64') | ||
| 147 | D like(gzFile) | ||
| 148 | D path * value options(*string) File pathname | ||
| 149 | D mode * value options(*string) Open mode | ||
| 150 | /endif | ||
| 129 | * | 151 | * |
| 130 | D gzdopen PR extproc('gzdopen') | 152 | D gzdopen PR extproc('gzdopen') |
| 131 | D like(gzFile) | 153 | D like(gzFile) |
| 132 | D fd 10i 0 value File descriptor | 154 | D fd 10I 0 value File descriptor |
| 133 | D mode * value options(*string) Open mode | 155 | D mode * value options(*string) Open mode |
| 134 | * | 156 | * |
| 157 | D gzbuffer PR 10I 0 extproc('gzbuffer') | ||
| 158 | D file value like(gzFile) File pointer | ||
| 159 | D size 10U 0 value | ||
| 160 | * | ||
| 135 | D gzsetparams PR 10I 0 extproc('gzsetparams') | 161 | D gzsetparams PR 10I 0 extproc('gzsetparams') |
| 136 | D file value like(gzFile) File pointer | 162 | D file value like(gzFile) File pointer |
| 137 | D level 10I 0 value | 163 | D level 10I 0 value |
| 138 | D strategy 10i 0 value | 164 | D strategy 10I 0 value |
| 139 | * | 165 | * |
| 140 | D gzread PR 10I 0 extproc('gzread') | 166 | D gzread PR 10I 0 extproc('gzread') |
| 141 | D file value like(gzFile) File pointer | 167 | D file value like(gzFile) File pointer |
| @@ -160,22 +186,66 @@ | |||
| 160 | D file value like(gzFile) File pointer | 186 | D file value like(gzFile) File pointer |
| 161 | D flush 10I 0 value Type of flush | 187 | D flush 10I 0 value Type of flush |
| 162 | * | 188 | * |
| 189 | /if not defined(LARGE_FILES) | ||
| 163 | D gzseek PR extproc('gzseek') | 190 | D gzseek PR extproc('gzseek') |
| 164 | D like(z_off_t) | 191 | D like(z_off_t) |
| 165 | D file value like(gzFile) File pointer | 192 | D file value like(gzFile) File pointer |
| 166 | D offset value like(z_off_t) Offset | 193 | D offset value like(z_off_t) Offset |
| 167 | D whence 10i 0 value Origin | 194 | D whence 10i 0 value Origin |
| 195 | /else | ||
| 196 | D gzseek PR extproc('gzseek64') | ||
| 197 | D like(z_off_t) | ||
| 198 | D file value like(gzFile) File pointer | ||
| 199 | D offset value like(z_off_t) Offset | ||
| 200 | D whence 10i 0 value Origin | ||
| 201 | * | ||
| 202 | D gzseek64 PR extproc('gzseek64') | ||
| 203 | D like(z_off64_t) | ||
| 204 | D file value like(gzFile) File pointer | ||
| 205 | D offset value like(z_off64_t) Offset | ||
| 206 | D whence 10i 0 value Origin | ||
| 207 | /endif | ||
| 168 | * | 208 | * |
| 169 | D gzrewind PR 10i 0 extproc('gzrewind') | 209 | D gzrewind PR 10i 0 extproc('gzrewind') |
| 170 | D file value like(gzFile) File pointer | 210 | D file value like(gzFile) File pointer |
| 171 | * | 211 | * |
| 212 | /if not defined(LARGE_FILES) | ||
| 172 | D gztell PR extproc('gztell') | 213 | D gztell PR extproc('gztell') |
| 173 | D like(z_off_t) | 214 | D like(z_off_t) |
| 174 | D file value like(gzFile) File pointer | 215 | D file value like(gzFile) File pointer |
| 216 | /else | ||
| 217 | D gztell PR extproc('gztell64') | ||
| 218 | D like(z_off_t) | ||
| 219 | D file value like(gzFile) File pointer | ||
| 220 | * | ||
| 221 | D gztell64 PR extproc('gztell64') | ||
| 222 | D like(z_off64_t) | ||
| 223 | D file value like(gzFile) File pointer | ||
| 224 | /endif | ||
| 225 | * | ||
| 226 | /if not defined(LARGE_FILES) | ||
| 227 | D gzoffset PR extproc('gzoffset') | ||
| 228 | D like(z_off_t) | ||
| 229 | D file value like(gzFile) File pointer | ||
| 230 | /else | ||
| 231 | D gzoffset PR extproc('gzoffset64') | ||
| 232 | D like(z_off_t) | ||
| 233 | D file value like(gzFile) File pointer | ||
| 234 | * | ||
| 235 | D gzoffset64 PR extproc('gzoffset64') | ||
| 236 | D like(z_off64_t) | ||
| 237 | D file value like(gzFile) File pointer | ||
| 238 | /endif | ||
| 175 | * | 239 | * |
| 176 | D gzeof PR 10i 0 extproc('gzeof') | 240 | D gzeof PR 10i 0 extproc('gzeof') |
| 177 | D file value like(gzFile) File pointer | 241 | D file value like(gzFile) File pointer |
| 178 | * | 242 | * |
| 243 | D gzclose_r PR 10i 0 extproc('gzclose_r') | ||
| 244 | D file value like(gzFile) File pointer | ||
| 245 | * | ||
| 246 | D gzclose_w PR 10i 0 extproc('gzclose_w') | ||
| 247 | D file value like(gzFile) File pointer | ||
| 248 | * | ||
| 179 | D gzclose PR 10i 0 extproc('gzclose') | 249 | D gzclose PR 10i 0 extproc('gzclose') |
| 180 | D file value like(gzFile) File pointer | 250 | D file value like(gzFile) File pointer |
| 181 | * | 251 | * |
| @@ -253,6 +323,11 @@ | |||
| 253 | D strm like(z_stream) Compression stream | 323 | D strm like(z_stream) Compression stream |
| 254 | D sourcelen 10U 0 value Compression level | 324 | D sourcelen 10U 0 value Compression level |
| 255 | * | 325 | * |
| 326 | D deflatePending PR 10I 0 extproc('deflatePending') Change level & strat | ||
| 327 | D strm like(z_stream) Compression stream | ||
| 328 | D pending 10U 0 Pending bytes | ||
| 329 | D bits 10I 0 Pending bits | ||
| 330 | * | ||
| 256 | D deflatePrime PR 10I 0 extproc('deflatePrime') Change level & strat | 331 | D deflatePrime PR 10I 0 extproc('deflatePrime') Change level & strat |
| 257 | D strm like(z_stream) Compression stream | 332 | D strm like(z_stream) Compression stream |
| 258 | D bits 10I 0 value Number of bits to insert | 333 | D bits 10I 0 value Number of bits to insert |
| @@ -280,6 +355,18 @@ | |||
| 280 | D inflateReset PR 10I 0 extproc('inflateReset') End and init. stream | 355 | D inflateReset PR 10I 0 extproc('inflateReset') End and init. stream |
| 281 | D strm like(z_stream) Expansion stream | 356 | D strm like(z_stream) Expansion stream |
| 282 | * | 357 | * |
| 358 | D inflateReset2 PR 10I 0 extproc('inflateReset2') End and init. stream | ||
| 359 | D strm like(z_stream) Expansion stream | ||
| 360 | D windowBits 10I 0 value Log2(buffer size) | ||
| 361 | * | ||
| 362 | D inflatePrime PR 10I 0 extproc('inflatePrime') Insert bits | ||
| 363 | D strm like(z_stream) Expansion stream | ||
| 364 | D bits 10I 0 value Bit count | ||
| 365 | D value 10I 0 value Bits to insert | ||
| 366 | * | ||
| 367 | D inflateMark PR 10I 0 extproc('inflateMark') Get inflate info | ||
| 368 | D strm like(z_stream) Expansion stream | ||
| 369 | * | ||
| 283 | D inflateBackInit... | 370 | D inflateBackInit... |
| 284 | D PR 10I 0 extproc('inflateBackInit_') | 371 | D PR 10I 0 extproc('inflateBackInit_') |
| 285 | D strm like(z_stream) Expansion stream | 372 | D strm like(z_stream) Expansion stream |
| @@ -328,4 +415,9 @@ | |||
| 328 | * | 415 | * |
| 329 | D get_crc_table PR * extproc('get_crc_table') Ptr to ulongs | 416 | D get_crc_table PR * extproc('get_crc_table') Ptr to ulongs |
| 330 | * | 417 | * |
| 418 | D inflateUndermine... | ||
| 419 | D PR 10I 0 extproc('inflateUndermine') | ||
| 420 | D strm like(z_stream) Expansion stream | ||
| 421 | D arg 10I 0 value Error code | ||
| 422 | * | ||
| 331 | /endif | 423 | /endif |
| @@ -14,12 +14,11 @@ | |||
| 14 | # an error. | 14 | # an error. |
| 15 | 15 | ||
| 16 | if [ -n "${CHOST}" ]; then | 16 | if [ -n "${CHOST}" ]; then |
| 17 | uname="$(echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/')" | 17 | uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`" |
| 18 | CROSS_PREFIX="${CHOST}-" | 18 | CROSS_PREFIX="${CHOST}-" |
| 19 | fi | 19 | fi |
| 20 | 20 | ||
| 21 | STATICLIB=libz.a | 21 | STATICLIB=libz.a |
| 22 | LDFLAGS="${LDFLAGS} -L. ${STATICLIB}" | ||
| 23 | VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` | 22 | VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` |
| 24 | VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < zlib.h` | 23 | VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < zlib.h` |
| 25 | VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h` | 24 | VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h` |
| @@ -46,6 +45,7 @@ else | |||
| 46 | fi | 45 | fi |
| 47 | LDCONFIG=${LDCONFIG-"ldconfig"} | 46 | LDCONFIG=${LDCONFIG-"ldconfig"} |
| 48 | LDSHAREDLIBC="${LDSHAREDLIBC--lc}" | 47 | LDSHAREDLIBC="${LDSHAREDLIBC--lc}" |
| 48 | ARCHS= | ||
| 49 | prefix=${prefix-/usr/local} | 49 | prefix=${prefix-/usr/local} |
| 50 | exec_prefix=${exec_prefix-'${prefix}'} | 50 | exec_prefix=${exec_prefix-'${prefix}'} |
| 51 | libdir=${libdir-'${exec_prefix}/lib'} | 51 | libdir=${libdir-'${exec_prefix}/lib'} |
| @@ -67,7 +67,7 @@ case "$1" in | |||
| 67 | echo 'usage:' | 67 | echo 'usage:' |
| 68 | echo ' configure [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' | 68 | echo ' configure [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' |
| 69 | echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | 69 | echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' |
| 70 | echo ' [--includedir=INCLUDEDIR]' | 70 | echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' |
| 71 | exit 0 ;; | 71 | exit 0 ;; |
| 72 | -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;; | 72 | -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;; |
| 73 | -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;; | 73 | -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;; |
| @@ -83,6 +83,7 @@ case "$1" in | |||
| 83 | -t | --static) shared=0; shift ;; | 83 | -t | --static) shared=0; shift ;; |
| 84 | -z* | --zprefix) zprefix=1; shift ;; | 84 | -z* | --zprefix) zprefix=1; shift ;; |
| 85 | -6* | --64) build64=1; shift ;; | 85 | -6* | --64) build64=1; shift ;; |
| 86 | -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;; | ||
| 86 | --sysconfdir=*) echo "ignored option: --sysconfdir"; shift ;; | 87 | --sysconfdir=*) echo "ignored option: --sysconfdir"; shift ;; |
| 87 | --localstatedir=*) echo "ignored option: --localstatedir"; shift ;; | 88 | --localstatedir=*) echo "ignored option: --localstatedir"; shift ;; |
| 88 | *) echo "unknown option: $1"; echo "$0 --help for help"; exit 1 ;; | 89 | *) echo "unknown option: $1"; echo "$0 --help for help"; exit 1 ;; |
| @@ -102,11 +103,15 @@ cflags=${CFLAGS-"-O3"} | |||
| 102 | case "$cc" in | 103 | case "$cc" in |
| 103 | *gcc*) gcc=1 ;; | 104 | *gcc*) gcc=1 ;; |
| 104 | esac | 105 | esac |
| 106 | case `$cc -v 2>&1` in | ||
| 107 | *gcc*) gcc=1 ;; | ||
| 108 | esac | ||
| 105 | 109 | ||
| 106 | if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then | 110 | if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then |
| 107 | CC="$cc" | 111 | CC="$cc" |
| 112 | CFLAGS="${CFLAGS--O3} ${ARCHS}" | ||
| 108 | SFLAGS="${CFLAGS--O3} -fPIC" | 113 | SFLAGS="${CFLAGS--O3} -fPIC" |
| 109 | CFLAGS="${CFLAGS--O3}" | 114 | LDFLAGS="${LDFLAGS} ${ARCHS}" |
| 110 | if test $build64 -eq 1; then | 115 | if test $build64 -eq 1; then |
| 111 | CFLAGS="${CFLAGS} -m64" | 116 | CFLAGS="${CFLAGS} -m64" |
| 112 | SFLAGS="${SFLAGS} -m64" | 117 | SFLAGS="${SFLAGS} -m64" |
| @@ -118,10 +123,11 @@ if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then | |||
| 118 | uname=`(uname -s || echo unknown) 2>/dev/null` | 123 | uname=`(uname -s || echo unknown) 2>/dev/null` |
| 119 | fi | 124 | fi |
| 120 | case "$uname" in | 125 | case "$uname" in |
| 121 | Linux* | linux* | GNU | GNU/* | *BSD | DragonFly) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} ;; | 126 | Linux* | linux* | GNU | GNU/* | *BSD | *bsd* | DragonFly | solaris*) |
| 127 | LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} ;; | ||
| 122 | CYGWIN* | Cygwin* | cygwin* | OS/2*) | 128 | CYGWIN* | Cygwin* | cygwin* | OS/2*) |
| 123 | EXE='.exe' ;; | 129 | EXE='.exe' ;; |
| 124 | MINGW*|mingw*) | 130 | MINGW* | mingw*) |
| 125 | # temporary bypass | 131 | # temporary bypass |
| 126 | rm -f $test.[co] $test $test$shared_ext | 132 | rm -f $test.[co] $test $test$shared_ext |
| 127 | echo "Please use win32/Makefile.gcc instead." | 133 | echo "Please use win32/Makefile.gcc instead." |
| @@ -142,11 +148,14 @@ if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then | |||
| 142 | shared_ext='.sl' | 148 | shared_ext='.sl' |
| 143 | SHAREDLIB='libz.sl' ;; | 149 | SHAREDLIB='libz.sl' ;; |
| 144 | esac ;; | 150 | esac ;; |
| 145 | Darwin*) shared_ext='.dylib' | 151 | Darwin* | darwin*) |
| 152 | shared_ext='.dylib' | ||
| 146 | SHAREDLIB=libz$shared_ext | 153 | SHAREDLIB=libz$shared_ext |
| 147 | SHAREDLIBV=libz.$VER$shared_ext | 154 | SHAREDLIBV=libz.$VER$shared_ext |
| 148 | SHAREDLIBM=libz.$VER1$shared_ext | 155 | SHAREDLIBM=libz.$VER1$shared_ext |
| 149 | LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"} ;; | 156 | LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"} |
| 157 | AR="libtool" | ||
| 158 | AR_RC="${AR} -o" ;; | ||
| 150 | *) LDSHARED=${LDSHARED-"$cc -shared"} ;; | 159 | *) LDSHARED=${LDSHARED-"$cc -shared"} ;; |
| 151 | esac | 160 | esac |
| 152 | else | 161 | else |
| @@ -187,7 +196,8 @@ else | |||
| 187 | SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} | 196 | SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} |
| 188 | CFLAGS=${CFLAGS-"-O3"} | 197 | CFLAGS=${CFLAGS-"-O3"} |
| 189 | LDSHARED=${LDSHARED-"cc -dy -KPIC -G"} ;; | 198 | LDSHARED=${LDSHARED-"cc -dy -KPIC -G"} ;; |
| 190 | SunOS\ 5*) LDSHARED=${LDSHARED-"cc -G"} | 199 | SunOS\ 5* | solaris*) |
| 200 | LDSHARED=${LDSHARED-"cc -G"} | ||
| 191 | case `(uname -m || echo unknown) 2>/dev/null` in | 201 | case `(uname -m || echo unknown) 2>/dev/null` in |
| 192 | i86*) | 202 | i86*) |
| 193 | SFLAGS=${CFLAGS-"-xpentium -fast -KPIC -R."} | 203 | SFLAGS=${CFLAGS-"-xpentium -fast -KPIC -R."} |
| @@ -303,6 +313,18 @@ else | |||
| 303 | echo "Checking for unistd.h... No." | 313 | echo "Checking for unistd.h... No." |
| 304 | fi | 314 | fi |
| 305 | 315 | ||
| 316 | cat > $test.c <<EOF | ||
| 317 | #include <stdarg.h> | ||
| 318 | int main() { return 0; } | ||
| 319 | EOF | ||
| 320 | if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then | ||
| 321 | sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h | ||
| 322 | mv zconf.temp.h zconf.h | ||
| 323 | echo "Checking for stdarg.h... Yes." | ||
| 324 | else | ||
| 325 | echo "Checking for stdarg.h... No." | ||
| 326 | fi | ||
| 327 | |||
| 306 | if test $zprefix -eq 1; then | 328 | if test $zprefix -eq 1; then |
| 307 | sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h | 329 | sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h |
| 308 | mv zconf.temp.h zconf.h | 330 | mv zconf.temp.h zconf.h |
| @@ -347,7 +369,6 @@ int main() | |||
| 347 | return (mytest("Hello%d\n", 1)); | 369 | return (mytest("Hello%d\n", 1)); |
| 348 | } | 370 | } |
| 349 | EOF | 371 | EOF |
| 350 | |||
| 351 | if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then | 372 | if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then |
| 352 | echo "Checking for vsnprintf() in stdio.h... Yes." | 373 | echo "Checking for vsnprintf() in stdio.h... Yes." |
| 353 | 374 | ||
diff --git a/contrib/asm686/match.S b/contrib/asm686/match.S index 06817e1..fa42109 100644 --- a/contrib/asm686/match.S +++ b/contrib/asm686/match.S | |||
| @@ -83,17 +83,25 @@ | |||
| 83 | .text | 83 | .text |
| 84 | 84 | ||
| 85 | /* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */ | 85 | /* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */ |
| 86 | .cfi_sections .debug_frame | ||
| 86 | 87 | ||
| 87 | longest_match: | 88 | longest_match: |
| 88 | 89 | ||
| 90 | .cfi_startproc | ||
| 89 | /* Save registers that the compiler may be using, and adjust %esp to */ | 91 | /* Save registers that the compiler may be using, and adjust %esp to */ |
| 90 | /* make room for our stack frame. */ | 92 | /* make room for our stack frame. */ |
| 91 | 93 | ||
| 92 | pushl %ebp | 94 | pushl %ebp |
| 95 | .cfi_def_cfa_offset 8 | ||
| 96 | .cfi_offset ebp, -8 | ||
| 93 | pushl %edi | 97 | pushl %edi |
| 98 | .cfi_def_cfa_offset 12 | ||
| 94 | pushl %esi | 99 | pushl %esi |
| 100 | .cfi_def_cfa_offset 16 | ||
| 95 | pushl %ebx | 101 | pushl %ebx |
| 102 | .cfi_def_cfa_offset 20 | ||
| 96 | subl $LocalVarsSize, %esp | 103 | subl $LocalVarsSize, %esp |
| 104 | .cfi_def_cfa_offset LocalVarsSize+20 | ||
| 97 | 105 | ||
| 98 | /* Retrieve the function arguments. %ecx will hold cur_match */ | 106 | /* Retrieve the function arguments. %ecx will hold cur_match */ |
| 99 | /* throughout the entire function. %edx will hold the pointer to the */ | 107 | /* throughout the entire function. %edx will hold the pointer to the */ |
| @@ -108,7 +116,7 @@ longest_match: | |||
| 108 | /* if (s->prev_length >= s->good_match) { */ | 116 | /* if (s->prev_length >= s->good_match) { */ |
| 109 | /* chain_length >>= 2; */ | 117 | /* chain_length >>= 2; */ |
| 110 | /* } */ | 118 | /* } */ |
| 111 | 119 | ||
| 112 | movl dsPrevLen(%edx), %eax | 120 | movl dsPrevLen(%edx), %eax |
| 113 | movl dsGoodMatch(%edx), %ebx | 121 | movl dsGoodMatch(%edx), %ebx |
| 114 | cmpl %ebx, %eax | 122 | cmpl %ebx, %eax |
| @@ -336,8 +344,14 @@ LookaheadRet: | |||
| 336 | /* Restore the stack and return from whence we came. */ | 344 | /* Restore the stack and return from whence we came. */ |
| 337 | 345 | ||
| 338 | addl $LocalVarsSize, %esp | 346 | addl $LocalVarsSize, %esp |
| 347 | .cfi_def_cfa_offset 20 | ||
| 339 | popl %ebx | 348 | popl %ebx |
| 349 | .cfi_def_cfa_offset 16 | ||
| 340 | popl %esi | 350 | popl %esi |
| 351 | .cfi_def_cfa_offset 12 | ||
| 341 | popl %edi | 352 | popl %edi |
| 353 | .cfi_def_cfa_offset 8 | ||
| 342 | popl %ebp | 354 | popl %ebp |
| 355 | .cfi_def_cfa_offset 4 | ||
| 356 | .cfi_endproc | ||
| 343 | match_init: ret | 357 | match_init: ret |
diff --git a/contrib/delphi/ZLib.pas b/contrib/delphi/ZLib.pas index 0d86fb5..8690594 100644 --- a/contrib/delphi/ZLib.pas +++ b/contrib/delphi/ZLib.pas | |||
| @@ -152,7 +152,7 @@ procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer; | |||
| 152 | const OutBuf: Pointer; BufSize: Integer); | 152 | const OutBuf: Pointer; BufSize: Integer); |
| 153 | 153 | ||
| 154 | const | 154 | const |
| 155 | zlib_version = '1.2.5'; | 155 | zlib_version = '1.2.5.1'; |
| 156 | 156 | ||
| 157 | type | 157 | type |
| 158 | EZlibError = class(Exception); | 158 | EZlibError = class(Exception); |
diff --git a/contrib/dotzlib/DotZLib/UnitTests.cs b/contrib/dotzlib/DotZLib/UnitTests.cs index 3bbcc8c..e004833 100644 --- a/contrib/dotzlib/DotZLib/UnitTests.cs +++ b/contrib/dotzlib/DotZLib/UnitTests.cs | |||
| @@ -156,7 +156,7 @@ namespace DotZLibTests | |||
| 156 | public void Info_Version() | 156 | public void Info_Version() |
| 157 | { | 157 | { |
| 158 | Info info = new Info(); | 158 | Info info = new Info(); |
| 159 | Assert.AreEqual("1.2.5", Info.Version); | 159 | Assert.AreEqual("1.2.5.1", Info.Version); |
| 160 | Assert.AreEqual(32, info.SizeOfUInt); | 160 | Assert.AreEqual(32, info.SizeOfUInt); |
| 161 | Assert.AreEqual(32, info.SizeOfULong); | 161 | Assert.AreEqual(32, info.SizeOfULong); |
| 162 | Assert.AreEqual(32, info.SizeOfPointer); | 162 | Assert.AreEqual(32, info.SizeOfPointer); |
diff --git a/contrib/infback9/inftree9.c b/contrib/infback9/inftree9.c index 306c5f1..dfd0030 100644 --- a/contrib/infback9/inftree9.c +++ b/contrib/infback9/inftree9.c | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | #define MAXBITS 15 | 9 | #define MAXBITS 15 |
| 10 | 10 | ||
| 11 | const char inflate9_copyright[] = | 11 | const char inflate9_copyright[] = |
| 12 | " inflate9 1.2.5 Copyright 1995-2010 Mark Adler "; | 12 | " inflate9 1.2.5.1 Copyright 1995-2010 Mark Adler "; |
| 13 | /* | 13 | /* |
| 14 | If you use the zlib library in a product, an acknowledgment is welcome | 14 | If you use the zlib library in a product, an acknowledgment is welcome |
| 15 | in the documentation of your product. If for some reason you cannot | 15 | in the documentation of your product. If for some reason you cannot |
| @@ -64,7 +64,7 @@ unsigned short FAR *work; | |||
| 64 | static const unsigned short lext[31] = { /* Length codes 257..285 extra */ | 64 | static const unsigned short lext[31] = { /* Length codes 257..285 extra */ |
| 65 | 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, | 65 | 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, |
| 66 | 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, | 66 | 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, |
| 67 | 133, 133, 133, 133, 144, 73, 195}; | 67 | 133, 133, 133, 133, 144, 205, 203}; |
| 68 | static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ | 68 | static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ |
| 69 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, | 69 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, |
| 70 | 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, | 70 | 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, |
diff --git a/contrib/masmx86/inffas32.asm b/contrib/masmx86/inffas32.asm index 92ac22a..03d20f8 100644 --- a/contrib/masmx86/inffas32.asm +++ b/contrib/masmx86/inffas32.asm | |||
| @@ -73,11 +73,6 @@ inflate_fast_use_mmx: | |||
| 73 | 73 | ||
| 74 | 74 | ||
| 75 | _TEXT segment | 75 | _TEXT segment |
| 76 | PUBLIC _inflate_fast | ||
| 77 | |||
| 78 | ALIGN 4 | ||
| 79 | _inflate_fast: | ||
| 80 | jmp inflate_fast_entry | ||
| 81 | 76 | ||
| 82 | 77 | ||
| 83 | 78 | ||
| @@ -163,7 +158,8 @@ distbits_state equ (76+4+zlib1222sup) ;/* state->distbits */ | |||
| 163 | ;SECTION .text | 158 | ;SECTION .text |
| 164 | 159 | ||
| 165 | ALIGN 4 | 160 | ALIGN 4 |
| 166 | inflate_fast_entry: | 161 | _inflate_fast proc near |
| 162 | .FPO (16, 4, 0, 0, 1, 0) | ||
| 167 | push edi | 163 | push edi |
| 168 | push esi | 164 | push esi |
| 169 | push ebp | 165 | push ebp |
| @@ -1078,6 +1074,7 @@ L_done: | |||
| 1078 | pop esi | 1074 | pop esi |
| 1079 | pop edi | 1075 | pop edi |
| 1080 | ret | 1076 | ret |
| 1077 | _inflate_fast endp | ||
| 1081 | 1078 | ||
| 1082 | _TEXT ends | 1079 | _TEXT ends |
| 1083 | end | 1080 | end |
diff --git a/contrib/masmx86/match686.asm b/contrib/masmx86/match686.asm index 1eaf555..3b09212 100644 --- a/contrib/masmx86/match686.asm +++ b/contrib/masmx86/match686.asm | |||
| @@ -195,6 +195,7 @@ dsNiceMatch equ 136+zlib1222add | |||
| 195 | ELSE | 195 | ELSE |
| 196 | _longest_match proc near | 196 | _longest_match proc near |
| 197 | ENDIF | 197 | ENDIF |
| 198 | .FPO (9, 4, 0, 0, 1, 0) | ||
| 198 | 199 | ||
| 199 | ;;; Save registers that the compiler may be using, and adjust esp to | 200 | ;;; Save registers that the compiler may be using, and adjust esp to |
| 200 | ;;; make room for our stack frame. | 201 | ;;; make room for our stack frame. |
diff --git a/contrib/minizip/ioapi.c b/contrib/minizip/ioapi.c index 49958f6..d4bc020 100644 --- a/contrib/minizip/ioapi.c +++ b/contrib/minizip/ioapi.c | |||
| @@ -14,6 +14,18 @@ | |||
| 14 | #define _CRT_SECURE_NO_WARNINGS | 14 | #define _CRT_SECURE_NO_WARNINGS |
| 15 | #endif | 15 | #endif |
| 16 | 16 | ||
| 17 | #ifdef __APPLE__ | ||
| 18 | // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions | ||
| 19 | #define FOPEN_FUNC(filename, mode) fopen(filename, mode) | ||
| 20 | #define FTELLO_FUNC(stream) ftello(stream) | ||
| 21 | #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) | ||
| 22 | #else | ||
| 23 | #define FOPEN_FUNC(filename, mode) fopen64(filename, mode) | ||
| 24 | #define FTELLO_FUNC(stream) ftello64(stream) | ||
| 25 | #define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin) | ||
| 26 | #endif | ||
| 27 | |||
| 28 | |||
| 17 | #include "ioapi.h" | 29 | #include "ioapi.h" |
| 18 | 30 | ||
| 19 | voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode) | 31 | voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode) |
| @@ -112,7 +124,7 @@ static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename, | |||
| 112 | mode_fopen = "wb"; | 124 | mode_fopen = "wb"; |
| 113 | 125 | ||
| 114 | if ((filename!=NULL) && (mode_fopen != NULL)) | 126 | if ((filename!=NULL) && (mode_fopen != NULL)) |
| 115 | file = fopen64((const char*)filename, mode_fopen); | 127 | file = FOPEN_FUNC((const char*)filename, mode_fopen); |
| 116 | return file; | 128 | return file; |
| 117 | } | 129 | } |
| 118 | 130 | ||
| @@ -142,7 +154,7 @@ static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream) | |||
| 142 | static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream) | 154 | static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream) |
| 143 | { | 155 | { |
| 144 | ZPOS64_T ret; | 156 | ZPOS64_T ret; |
| 145 | ret = ftello64((FILE *)stream); | 157 | ret = FTELLO_FUNC((FILE *)stream); |
| 146 | return ret; | 158 | return ret; |
| 147 | } | 159 | } |
| 148 | 160 | ||
| @@ -188,7 +200,7 @@ static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T | |||
| 188 | } | 200 | } |
| 189 | ret = 0; | 201 | ret = 0; |
| 190 | 202 | ||
| 191 | if(fseeko64((FILE *)stream, offset, fseek_origin) != 0) | 203 | if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0) |
| 192 | ret = -1; | 204 | ret = -1; |
| 193 | 205 | ||
| 194 | return ret; | 206 | return ret; |
diff --git a/contrib/minizip/ioapi.h b/contrib/minizip/ioapi.h index 8309c4c..f6dce26 100644 --- a/contrib/minizip/ioapi.h +++ b/contrib/minizip/ioapi.h | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | #ifndef _ZLIBIOAPI64_H | 21 | #ifndef _ZLIBIOAPI64_H |
| 22 | #define _ZLIBIOAPI64_H | 22 | #define _ZLIBIOAPI64_H |
| 23 | 23 | ||
| 24 | #if (!defined(_WIN32)) && (!defined(WIN32)) | 24 | #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) |
| 25 | 25 | ||
| 26 | // Linux needs this to support file operation on files larger then 4+GB | 26 | // Linux needs this to support file operation on files larger then 4+GB |
| 27 | // But might need better if/def to select just the platforms that needs them. | 27 | // But might need better if/def to select just the platforms that needs them. |
| @@ -38,6 +38,7 @@ | |||
| 38 | #ifndef _FILE_OFFSET_BIT | 38 | #ifndef _FILE_OFFSET_BIT |
| 39 | #define _FILE_OFFSET_BIT 64 | 39 | #define _FILE_OFFSET_BIT 64 |
| 40 | #endif | 40 | #endif |
| 41 | |||
| 41 | #endif | 42 | #endif |
| 42 | 43 | ||
| 43 | #include <stdio.h> | 44 | #include <stdio.h> |
diff --git a/contrib/minizip/miniunz.c b/contrib/minizip/miniunz.c index 9ed009f..3d65401 100644 --- a/contrib/minizip/miniunz.c +++ b/contrib/minizip/miniunz.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) | 12 | Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) |
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | #ifndef _WIN32 | 15 | #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) |
| 16 | #ifndef __USE_FILE_OFFSET64 | 16 | #ifndef __USE_FILE_OFFSET64 |
| 17 | #define __USE_FILE_OFFSET64 | 17 | #define __USE_FILE_OFFSET64 |
| 18 | #endif | 18 | #endif |
| @@ -27,6 +27,18 @@ | |||
| 27 | #endif | 27 | #endif |
| 28 | #endif | 28 | #endif |
| 29 | 29 | ||
| 30 | #ifdef __APPLE__ | ||
| 31 | // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions | ||
| 32 | #define FOPEN_FUNC(filename, mode) fopen(filename, mode) | ||
| 33 | #define FTELLO_FUNC(stream) ftello(stream) | ||
| 34 | #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) | ||
| 35 | #else | ||
| 36 | #define FOPEN_FUNC(filename, mode) fopen64(filename, mode) | ||
| 37 | #define FTELLO_FUNC(stream) ftello64(stream) | ||
| 38 | #define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin) | ||
| 39 | #endif | ||
| 40 | |||
| 41 | |||
| 30 | #include <stdio.h> | 42 | #include <stdio.h> |
| 31 | #include <stdlib.h> | 43 | #include <stdlib.h> |
| 32 | #include <string.h> | 44 | #include <string.h> |
| @@ -34,14 +46,15 @@ | |||
| 34 | #include <errno.h> | 46 | #include <errno.h> |
| 35 | #include <fcntl.h> | 47 | #include <fcntl.h> |
| 36 | 48 | ||
| 37 | #ifdef unix | 49 | #ifdef _WIN32 |
| 38 | # include <unistd.h> | ||
| 39 | # include <utime.h> | ||
| 40 | #else | ||
| 41 | # include <direct.h> | 50 | # include <direct.h> |
| 42 | # include <io.h> | 51 | # include <io.h> |
| 52 | #else | ||
| 53 | # include <unistd.h> | ||
| 54 | # include <utime.h> | ||
| 43 | #endif | 55 | #endif |
| 44 | 56 | ||
| 57 | |||
| 45 | #include "unzip.h" | 58 | #include "unzip.h" |
| 46 | 59 | ||
| 47 | #define CASESENSITIVITY (0) | 60 | #define CASESENSITIVITY (0) |
| @@ -84,7 +97,7 @@ void change_file_date(filename,dosdate,tmu_date) | |||
| 84 | SetFileTime(hFile,&ftm,&ftLastAcc,&ftm); | 97 | SetFileTime(hFile,&ftm,&ftLastAcc,&ftm); |
| 85 | CloseHandle(hFile); | 98 | CloseHandle(hFile); |
| 86 | #else | 99 | #else |
| 87 | #ifdef unix | 100 | #ifdef unix || __APPLE__ |
| 88 | struct utimbuf ut; | 101 | struct utimbuf ut; |
| 89 | struct tm newdate; | 102 | struct tm newdate; |
| 90 | newdate.tm_sec = tmu_date.tm_sec; | 103 | newdate.tm_sec = tmu_date.tm_sec; |
| @@ -114,10 +127,10 @@ int mymkdir(dirname) | |||
| 114 | int ret=0; | 127 | int ret=0; |
| 115 | #ifdef _WIN32 | 128 | #ifdef _WIN32 |
| 116 | ret = _mkdir(dirname); | 129 | ret = _mkdir(dirname); |
| 117 | #else | 130 | #elif unix |
| 118 | #ifdef unix | 131 | ret = mkdir (dirname,0775); |
| 132 | #elif __APPLE__ | ||
| 119 | ret = mkdir (dirname,0775); | 133 | ret = mkdir (dirname,0775); |
| 120 | #endif | ||
| 121 | #endif | 134 | #endif |
| 122 | return ret; | 135 | return ret; |
| 123 | } | 136 | } |
| @@ -364,7 +377,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password) | |||
| 364 | { | 377 | { |
| 365 | char rep=0; | 378 | char rep=0; |
| 366 | FILE* ftestexist; | 379 | FILE* ftestexist; |
| 367 | ftestexist = fopen64(write_filename,"rb"); | 380 | ftestexist = FOPEN_FUNC(write_filename,"rb"); |
| 368 | if (ftestexist!=NULL) | 381 | if (ftestexist!=NULL) |
| 369 | { | 382 | { |
| 370 | fclose(ftestexist); | 383 | fclose(ftestexist); |
| @@ -395,8 +408,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password) | |||
| 395 | 408 | ||
| 396 | if ((skip==0) && (err==UNZ_OK)) | 409 | if ((skip==0) && (err==UNZ_OK)) |
| 397 | { | 410 | { |
| 398 | fout=fopen64(write_filename,"wb"); | 411 | fout=FOPEN_FUNC(write_filename,"wb"); |
| 399 | |||
| 400 | /* some zipfile don't contain directory alone before file */ | 412 | /* some zipfile don't contain directory alone before file */ |
| 401 | if ((fout==NULL) && ((*popt_extract_without_path)==0) && | 413 | if ((fout==NULL) && ((*popt_extract_without_path)==0) && |
| 402 | (filename_withoutpath!=(char*)filename_inzip)) | 414 | (filename_withoutpath!=(char*)filename_inzip)) |
| @@ -405,7 +417,7 @@ int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password) | |||
| 405 | *(filename_withoutpath-1)='\0'; | 417 | *(filename_withoutpath-1)='\0'; |
| 406 | makedir(write_filename); | 418 | makedir(write_filename); |
| 407 | *(filename_withoutpath-1)=c; | 419 | *(filename_withoutpath-1)=c; |
| 408 | fout=fopen64(write_filename,"wb"); | 420 | fout=FOPEN_FUNC(write_filename,"wb"); |
| 409 | } | 421 | } |
| 410 | 422 | ||
| 411 | if (fout==NULL) | 423 | if (fout==NULL) |
diff --git a/contrib/minizip/minizip.c b/contrib/minizip/minizip.c index 7a4fa5a..de63e37 100644 --- a/contrib/minizip/minizip.c +++ b/contrib/minizip/minizip.c | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | 15 | ||
| 16 | #ifndef _WIN32 | 16 | #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) |
| 17 | #ifndef __USE_FILE_OFFSET64 | 17 | #ifndef __USE_FILE_OFFSET64 |
| 18 | #define __USE_FILE_OFFSET64 | 18 | #define __USE_FILE_OFFSET64 |
| 19 | #endif | 19 | #endif |
| @@ -28,6 +28,19 @@ | |||
| 28 | #endif | 28 | #endif |
| 29 | #endif | 29 | #endif |
| 30 | 30 | ||
| 31 | #ifdef __APPLE__ | ||
| 32 | // In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions | ||
| 33 | #define FOPEN_FUNC(filename, mode) fopen(filename, mode) | ||
| 34 | #define FTELLO_FUNC(stream) ftello(stream) | ||
| 35 | #define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) | ||
| 36 | #else | ||
| 37 | #define FOPEN_FUNC(filename, mode) fopen64(filename, mode) | ||
| 38 | #define FTELLO_FUNC(stream) ftello64(stream) | ||
| 39 | #define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin) | ||
| 40 | #endif | ||
| 41 | |||
| 42 | |||
| 43 | |||
| 31 | #include <stdio.h> | 44 | #include <stdio.h> |
| 32 | #include <stdlib.h> | 45 | #include <stdlib.h> |
| 33 | #include <string.h> | 46 | #include <string.h> |
| @@ -35,14 +48,14 @@ | |||
| 35 | #include <errno.h> | 48 | #include <errno.h> |
| 36 | #include <fcntl.h> | 49 | #include <fcntl.h> |
| 37 | 50 | ||
| 38 | #ifdef unix | 51 | #ifdef _WIN32 |
| 52 | # include <direct.h> | ||
| 53 | # include <io.h> | ||
| 54 | #else | ||
| 39 | # include <unistd.h> | 55 | # include <unistd.h> |
| 40 | # include <utime.h> | 56 | # include <utime.h> |
| 41 | # include <sys/types.h> | 57 | # include <sys/types.h> |
| 42 | # include <sys/stat.h> | 58 | # include <sys/stat.h> |
| 43 | #else | ||
| 44 | # include <direct.h> | ||
| 45 | # include <io.h> | ||
| 46 | #endif | 59 | #endif |
| 47 | 60 | ||
| 48 | #include "zip.h" | 61 | #include "zip.h" |
| @@ -81,7 +94,7 @@ uLong filetime(f, tmzip, dt) | |||
| 81 | return ret; | 94 | return ret; |
| 82 | } | 95 | } |
| 83 | #else | 96 | #else |
| 84 | #ifdef unix | 97 | #ifdef unix || __APPLE__ |
| 85 | uLong filetime(f, tmzip, dt) | 98 | uLong filetime(f, tmzip, dt) |
| 86 | char *f; /* name of file to get info on */ | 99 | char *f; /* name of file to get info on */ |
| 87 | tm_zip *tmzip; /* return value: access, modific. and creation times */ | 100 | tm_zip *tmzip; /* return value: access, modific. and creation times */ |
| @@ -142,7 +155,7 @@ int check_exist_file(filename) | |||
| 142 | { | 155 | { |
| 143 | FILE* ftestexist; | 156 | FILE* ftestexist; |
| 144 | int ret = 1; | 157 | int ret = 1; |
| 145 | ftestexist = fopen64(filename,"rb"); | 158 | ftestexist = FOPEN_FUNC(filename,"rb"); |
| 146 | if (ftestexist==NULL) | 159 | if (ftestexist==NULL) |
| 147 | ret = 0; | 160 | ret = 0; |
| 148 | else | 161 | else |
| @@ -173,7 +186,8 @@ int getFileCrc(const char* filenameinzip,void*buf,unsigned long size_buf,unsigne | |||
| 173 | { | 186 | { |
| 174 | unsigned long calculate_crc=0; | 187 | unsigned long calculate_crc=0; |
| 175 | int err=ZIP_OK; | 188 | int err=ZIP_OK; |
| 176 | FILE * fin = fopen64(filenameinzip,"rb"); | 189 | FILE * fin = FOPEN_FUNC(filenameinzip,"rb"); |
| 190 | |||
| 177 | unsigned long size_read = 0; | 191 | unsigned long size_read = 0; |
| 178 | unsigned long total_read = 0; | 192 | unsigned long total_read = 0; |
| 179 | if (fin==NULL) | 193 | if (fin==NULL) |
| @@ -211,13 +225,12 @@ int isLargeFile(const char* filename) | |||
| 211 | { | 225 | { |
| 212 | int largeFile = 0; | 226 | int largeFile = 0; |
| 213 | ZPOS64_T pos = 0; | 227 | ZPOS64_T pos = 0; |
| 214 | FILE* pFile = fopen64(filename, "rb"); | 228 | FILE* pFile = FOPEN_FUNC(filename, "rb"); |
| 215 | 229 | ||
| 216 | if(pFile != NULL) | 230 | if(pFile != NULL) |
| 217 | { | 231 | { |
| 218 | int n = fseeko64(pFile, 0, SEEK_END); | 232 | int n = FSEEKO_FUNC(pFile, 0, SEEK_END); |
| 219 | 233 | pos = FTELLO_FUNC(pFile); | |
| 220 | pos = ftello64(pFile); | ||
| 221 | 234 | ||
| 222 | printf("File : %s is %lld bytes\n", filename, pos); | 235 | printf("File : %s is %lld bytes\n", filename, pos); |
| 223 | 236 | ||
| @@ -447,7 +460,7 @@ int main(argc,argv) | |||
| 447 | printf("error in opening %s in zipfile\n",filenameinzip); | 460 | printf("error in opening %s in zipfile\n",filenameinzip); |
| 448 | else | 461 | else |
| 449 | { | 462 | { |
| 450 | fin = fopen64(filenameinzip,"rb"); | 463 | fin = FOPEN_FUNC(filenameinzip,"rb"); |
| 451 | if (fin==NULL) | 464 | if (fin==NULL) |
| 452 | { | 465 | { |
| 453 | err=ZIP_ERRNO; | 466 | err=ZIP_ERRNO; |
diff --git a/contrib/minizip/unzip.c b/contrib/minizip/unzip.c index 7617f41..587a2a1 100644 --- a/contrib/minizip/unzip.c +++ b/contrib/minizip/unzip.c | |||
| @@ -1145,7 +1145,7 @@ extern int ZEXPORT unzGetCurrentFileInfo (unzFile file, | |||
| 1145 | szFileName,fileNameBufferSize, | 1145 | szFileName,fileNameBufferSize, |
| 1146 | extraField,extraFieldBufferSize, | 1146 | extraField,extraFieldBufferSize, |
| 1147 | szComment,commentBufferSize); | 1147 | szComment,commentBufferSize); |
| 1148 | if (err==UNZ_OK) | 1148 | if ((err==UNZ_OK) && (pfile_info != NULL)) |
| 1149 | { | 1149 | { |
| 1150 | pfile_info->version = file_info64.version; | 1150 | pfile_info->version = file_info64.version; |
| 1151 | pfile_info->version_needed = file_info64.version_needed; | 1151 | pfile_info->version_needed = file_info64.version_needed; |
diff --git a/contrib/pascal/zlibpas.pas b/contrib/pascal/zlibpas.pas index 637ae3a..6f49482 100644 --- a/contrib/pascal/zlibpas.pas +++ b/contrib/pascal/zlibpas.pas | |||
| @@ -10,7 +10,7 @@ unit zlibpas; | |||
| 10 | interface | 10 | interface |
| 11 | 11 | ||
| 12 | const | 12 | const |
| 13 | ZLIB_VERSION = '1.2.5'; | 13 | ZLIB_VERSION = '1.2.5.1'; |
| 14 | 14 | ||
| 15 | type | 15 | type |
| 16 | alloc_func = function(opaque: Pointer; items, size: Integer): Pointer; | 16 | alloc_func = function(opaque: Pointer; items, size: Integer): Pointer; |
| @@ -97,6 +97,7 @@ function deflateCopy(var dest, source: z_stream): Integer; | |||
| 97 | function deflateReset(var strm: z_stream): Integer; | 97 | function deflateReset(var strm: z_stream): Integer; |
| 98 | function deflateParams(var strm: z_stream; level, strategy: Integer): Integer; | 98 | function deflateParams(var strm: z_stream; level, strategy: Integer): Integer; |
| 99 | function deflateBound(var strm: z_stream; sourceLen: LongInt): LongInt; | 99 | function deflateBound(var strm: z_stream; sourceLen: LongInt): LongInt; |
| 100 | function deflatePending(var strm: z_stream; var pending: Integer; var bits: Integer): Integer; | ||
| 100 | function deflatePrime(var strm: z_stream; bits, value: Integer): Integer; | 101 | function deflatePrime(var strm: z_stream; bits, value: Integer): Integer; |
| 101 | function inflateInit2(var strm: z_stream; windowBits: Integer): Integer; | 102 | function inflateInit2(var strm: z_stream; windowBits: Integer): Integer; |
| 102 | function inflateSetDictionary(var strm: z_stream; const dictionary: PChar; | 103 | function inflateSetDictionary(var strm: z_stream; const dictionary: PChar; |
| @@ -166,6 +167,7 @@ function deflateEnd; external; | |||
| 166 | function deflateInit_; external; | 167 | function deflateInit_; external; |
| 167 | function deflateInit2_; external; | 168 | function deflateInit2_; external; |
| 168 | function deflateParams; external; | 169 | function deflateParams; external; |
| 170 | function deflatePending; external; | ||
| 169 | function deflatePrime; external; | 171 | function deflatePrime; external; |
| 170 | function deflateReset; external; | 172 | function deflateReset; external; |
| 171 | function deflateSetDictionary; external; | 173 | function deflateSetDictionary; external; |
diff --git a/contrib/puff/Makefile b/contrib/puff/Makefile index b6b6940..0e2594c 100644 --- a/contrib/puff/Makefile +++ b/contrib/puff/Makefile | |||
| @@ -1,8 +1,42 @@ | |||
| 1 | puff: puff.c puff.h | 1 | CFLAGS=-O |
| 2 | cc -DTEST -o puff puff.c | 2 | |
| 3 | puff: puff.o pufftest.o | ||
| 4 | |||
| 5 | puff.o: puff.h | ||
| 6 | |||
| 7 | pufftest.o: puff.h | ||
| 3 | 8 | ||
| 4 | test: puff | 9 | test: puff |
| 5 | puff zeros.raw | 10 | puff zeros.raw |
| 6 | 11 | ||
| 12 | puft: puff.c puff.h pufftest.o | ||
| 13 | cc -fprofile-arcs -ftest-coverage -o puft puff.c pufftest.o | ||
| 14 | |||
| 15 | # puff full coverage test (should say 100%) | ||
| 16 | cov: puft | ||
| 17 | @rm -f *.gcov *.gcda | ||
| 18 | @puft -w zeros.raw 2>&1 | cat > /dev/null | ||
| 19 | @echo '04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 | ||
| 20 | @echo '00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 | ||
| 21 | @echo '00 00 00 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 254 | ||
| 22 | @echo '00 01 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 | ||
| 23 | @echo '01 01 00 fe ff 0a' | xxd -r -p | puft -f 2>&1 | cat > /dev/null | ||
| 24 | @echo '02 7e ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246 | ||
| 25 | @echo '02' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 | ||
| 26 | @echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 | ||
| 27 | @echo '04 80 49 92 24 49 92 24 71 ff ff 93 11 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 249 | ||
| 28 | @echo '04 c0 81 08 00 00 00 00 20 7f eb 0b 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246 | ||
| 29 | @echo '0b 00 00' | xxd -r -p | puft -f 2>&1 | cat > /dev/null | ||
| 30 | @echo '1a 07' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246 | ||
| 31 | @echo '0c c0 81 00 00 00 00 00 90 ff 6b 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 245 | ||
| 32 | @puft -f zeros.raw 2>&1 | cat > /dev/null | ||
| 33 | @echo 'fc 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 253 | ||
| 34 | @echo '04 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 252 | ||
| 35 | @echo '04 00 24 49' | xxd -r -p | puft 2> /dev/null || test $$? -eq 251 | ||
| 36 | @echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 84' | xxd -r -p | puft 2> /dev/null || test $$? -eq 248 | ||
| 37 | @echo '04 00 24 e9 ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 250 | ||
| 38 | @echo '04 00 24 e9 ff 6d' | xxd -r -p | puft 2> /dev/null || test $$? -eq 247 | ||
| 39 | @gcov -n puff.c | ||
| 40 | |||
| 7 | clean: | 41 | clean: |
| 8 | rm -f puff puff.o | 42 | rm -f puff puft *.o *.gc* |
diff --git a/contrib/puff/puff.c b/contrib/puff/puff.c index 650694e..df8470c 100644 --- a/contrib/puff/puff.c +++ b/contrib/puff/puff.c | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | * puff.c | 2 | * puff.c |
| 3 | * Copyright (C) 2002-2010 Mark Adler | 3 | * Copyright (C) 2002-2010 Mark Adler |
| 4 | * For conditions of distribution and use, see copyright notice in puff.h | 4 | * For conditions of distribution and use, see copyright notice in puff.h |
| 5 | * version 2.1, 4 Apr 2010 | 5 | * version 2.2, 25 Apr 2010 |
| 6 | * | 6 | * |
| 7 | * puff.c is a simple inflate written to be an unambiguous way to specify the | 7 | * puff.c is a simple inflate written to be an unambiguous way to specify the |
| 8 | * deflate format. It is not written for speed but rather simplicity. As a | 8 | * deflate format. It is not written for speed but rather simplicity. As a |
| @@ -49,9 +49,9 @@ | |||
| 49 | * - Fix fixed codes table error | 49 | * - Fix fixed codes table error |
| 50 | * - Provide a scanning mode for determining size of | 50 | * - Provide a scanning mode for determining size of |
| 51 | * uncompressed data | 51 | * uncompressed data |
| 52 | * 1.3 20 Mar 2002 - Go back to lengths for puff() parameters [Jean-loup] | 52 | * 1.3 20 Mar 2002 - Go back to lengths for puff() parameters [Gailly] |
| 53 | * - Add a puff.h file for the interface | 53 | * - Add a puff.h file for the interface |
| 54 | * - Add braces in puff() for else do [Jean-loup] | 54 | * - Add braces in puff() for else do [Gailly] |
| 55 | * - Use indexes instead of pointers for readability | 55 | * - Use indexes instead of pointers for readability |
| 56 | * 1.4 31 Mar 2002 - Simplify construct() code set check | 56 | * 1.4 31 Mar 2002 - Simplify construct() code set check |
| 57 | * - Fix some comments | 57 | * - Fix some comments |
| @@ -69,13 +69,19 @@ | |||
| 69 | * - Allow TEST code to read from piped stdin | 69 | * - Allow TEST code to read from piped stdin |
| 70 | * 2.1 4 Apr 2010 - Avoid variable initialization for happier compilers | 70 | * 2.1 4 Apr 2010 - Avoid variable initialization for happier compilers |
| 71 | * - Avoid unsigned comparisons for even happier compilers | 71 | * - Avoid unsigned comparisons for even happier compilers |
| 72 | * 2.2 25 Apr 2010 - Fix bug in variable initializations [Oberhumer] | ||
| 73 | * - Add const where appropriate [Oberhumer] | ||
| 74 | * - Split if's and ?'s for coverage testing | ||
| 75 | * - Break out test code to separate file | ||
| 76 | * - Move NIL to puff.h | ||
| 77 | * - Allow incomplete code only if single code length is 1 | ||
| 78 | * - Add full code coverage test to Makefile | ||
| 72 | */ | 79 | */ |
| 73 | 80 | ||
| 74 | #include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */ | 81 | #include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */ |
| 75 | #include "puff.h" /* prototype for puff() */ | 82 | #include "puff.h" /* prototype for puff() */ |
| 76 | 83 | ||
| 77 | #define local static /* for local function definitions */ | 84 | #define local static /* for local function definitions */ |
| 78 | #define NIL ((unsigned char *)0) /* for no output option */ | ||
| 79 | 85 | ||
| 80 | /* | 86 | /* |
| 81 | * Maximums for allocations and loops. It is not useful to change these -- | 87 | * Maximums for allocations and loops. It is not useful to change these -- |
| @@ -95,7 +101,7 @@ struct state { | |||
| 95 | unsigned long outcnt; /* bytes written to out so far */ | 101 | unsigned long outcnt; /* bytes written to out so far */ |
| 96 | 102 | ||
| 97 | /* input state */ | 103 | /* input state */ |
| 98 | unsigned char *in; /* input buffer */ | 104 | const unsigned char *in; /* input buffer */ |
| 99 | unsigned long inlen; /* available input at in */ | 105 | unsigned long inlen; /* available input at in */ |
| 100 | unsigned long incnt; /* bytes read so far */ | 106 | unsigned long incnt; /* bytes read so far */ |
| 101 | int bitbuf; /* bit buffer */ | 107 | int bitbuf; /* bit buffer */ |
| @@ -123,7 +129,8 @@ local int bits(struct state *s, int need) | |||
| 123 | /* load at least need bits into val */ | 129 | /* load at least need bits into val */ |
| 124 | val = s->bitbuf; | 130 | val = s->bitbuf; |
| 125 | while (s->bitcnt < need) { | 131 | while (s->bitcnt < need) { |
| 126 | if (s->incnt == s->inlen) longjmp(s->env, 1); /* out of input */ | 132 | if (s->incnt == s->inlen) |
| 133 | longjmp(s->env, 1); /* out of input */ | ||
| 127 | val |= (long)(s->in[s->incnt++]) << s->bitcnt; /* load eight bits */ | 134 | val |= (long)(s->in[s->incnt++]) << s->bitcnt; /* load eight bits */ |
| 128 | s->bitcnt += 8; | 135 | s->bitcnt += 8; |
| 129 | } | 136 | } |
| @@ -162,7 +169,8 @@ local int stored(struct state *s) | |||
| 162 | s->bitcnt = 0; | 169 | s->bitcnt = 0; |
| 163 | 170 | ||
| 164 | /* get length and check against its one's complement */ | 171 | /* get length and check against its one's complement */ |
| 165 | if (s->incnt + 4 > s->inlen) return 2; /* not enough input */ | 172 | if (s->incnt + 4 > s->inlen) |
| 173 | return 2; /* not enough input */ | ||
| 166 | len = s->in[s->incnt++]; | 174 | len = s->in[s->incnt++]; |
| 167 | len |= s->in[s->incnt++] << 8; | 175 | len |= s->in[s->incnt++] << 8; |
| 168 | if (s->in[s->incnt++] != (~len & 0xff) || | 176 | if (s->in[s->incnt++] != (~len & 0xff) || |
| @@ -170,7 +178,8 @@ local int stored(struct state *s) | |||
| 170 | return -2; /* didn't match complement! */ | 178 | return -2; /* didn't match complement! */ |
| 171 | 179 | ||
| 172 | /* copy len bytes from in to out */ | 180 | /* copy len bytes from in to out */ |
| 173 | if (s->incnt + len > s->inlen) return 2; /* not enough input */ | 181 | if (s->incnt + len > s->inlen) |
| 182 | return 2; /* not enough input */ | ||
| 174 | if (s->out != NIL) { | 183 | if (s->out != NIL) { |
| 175 | if (s->outcnt + len > s->outlen) | 184 | if (s->outcnt + len > s->outlen) |
| 176 | return 1; /* not enough output space */ | 185 | return 1; /* not enough output space */ |
| @@ -222,7 +231,7 @@ struct huffman { | |||
| 222 | * in the deflate format. See the format notes for fixed() and dynamic(). | 231 | * in the deflate format. See the format notes for fixed() and dynamic(). |
| 223 | */ | 232 | */ |
| 224 | #ifdef SLOW | 233 | #ifdef SLOW |
| 225 | local int decode(struct state *s, struct huffman *h) | 234 | local int decode(struct state *s, const struct huffman *h) |
| 226 | { | 235 | { |
| 227 | int len; /* current number of bits in code */ | 236 | int len; /* current number of bits in code */ |
| 228 | int code; /* len bits being decoded */ | 237 | int code; /* len bits being decoded */ |
| @@ -250,7 +259,7 @@ local int decode(struct state *s, struct huffman *h) | |||
| 250 | * a few percent larger. | 259 | * a few percent larger. |
| 251 | */ | 260 | */ |
| 252 | #else /* !SLOW */ | 261 | #else /* !SLOW */ |
| 253 | local int decode(struct state *s, struct huffman *h) | 262 | local int decode(struct state *s, const struct huffman *h) |
| 254 | { | 263 | { |
| 255 | int len; /* current number of bits in code */ | 264 | int len; /* current number of bits in code */ |
| 256 | int code; /* len bits being decoded */ | 265 | int code; /* len bits being decoded */ |
| @@ -283,10 +292,13 @@ local int decode(struct state *s, struct huffman *h) | |||
| 283 | len++; | 292 | len++; |
| 284 | } | 293 | } |
| 285 | left = (MAXBITS+1) - len; | 294 | left = (MAXBITS+1) - len; |
| 286 | if (left == 0) break; | 295 | if (left == 0) |
| 287 | if (s->incnt == s->inlen) longjmp(s->env, 1); /* out of input */ | 296 | break; |
| 297 | if (s->incnt == s->inlen) | ||
| 298 | longjmp(s->env, 1); /* out of input */ | ||
| 288 | bitbuf = s->in[s->incnt++]; | 299 | bitbuf = s->in[s->incnt++]; |
| 289 | if (left > 8) left = 8; | 300 | if (left > 8) |
| 301 | left = 8; | ||
| 290 | } | 302 | } |
| 291 | return -10; /* ran out of codes */ | 303 | return -10; /* ran out of codes */ |
| 292 | } | 304 | } |
| @@ -324,7 +336,7 @@ local int decode(struct state *s, struct huffman *h) | |||
| 324 | * - Within a given code length, the symbols are kept in ascending order for | 336 | * - Within a given code length, the symbols are kept in ascending order for |
| 325 | * the code bits definition. | 337 | * the code bits definition. |
| 326 | */ | 338 | */ |
| 327 | local int construct(struct huffman *h, short *length, int n) | 339 | local int construct(struct huffman *h, const short *length, int n) |
| 328 | { | 340 | { |
| 329 | int symbol; /* current symbol when stepping through length[] */ | 341 | int symbol; /* current symbol when stepping through length[] */ |
| 330 | int len; /* current length when stepping through h->count[] */ | 342 | int len; /* current length when stepping through h->count[] */ |
| @@ -344,7 +356,8 @@ local int construct(struct huffman *h, short *length, int n) | |||
| 344 | for (len = 1; len <= MAXBITS; len++) { | 356 | for (len = 1; len <= MAXBITS; len++) { |
| 345 | left <<= 1; /* one more bit, double codes left */ | 357 | left <<= 1; /* one more bit, double codes left */ |
| 346 | left -= h->count[len]; /* deduct count from possible codes */ | 358 | left -= h->count[len]; /* deduct count from possible codes */ |
| 347 | if (left < 0) return left; /* over-subscribed--return negative */ | 359 | if (left < 0) |
| 360 | return left; /* over-subscribed--return negative */ | ||
| 348 | } /* left > 0 means incomplete */ | 361 | } /* left > 0 means incomplete */ |
| 349 | 362 | ||
| 350 | /* generate offsets into symbol table for each length for sorting */ | 363 | /* generate offsets into symbol table for each length for sorting */ |
| @@ -420,8 +433,8 @@ local int construct(struct huffman *h, short *length, int n) | |||
| 420 | * defined to do the wrong thing in this case. | 433 | * defined to do the wrong thing in this case. |
| 421 | */ | 434 | */ |
| 422 | local int codes(struct state *s, | 435 | local int codes(struct state *s, |
| 423 | struct huffman *lencode, | 436 | const struct huffman *lencode, |
| 424 | struct huffman *distcode) | 437 | const struct huffman *distcode) |
| 425 | { | 438 | { |
| 426 | int symbol; /* decoded symbol */ | 439 | int symbol; /* decoded symbol */ |
| 427 | int len; /* length for copy */ | 440 | int len; /* length for copy */ |
| @@ -444,11 +457,13 @@ local int codes(struct state *s, | |||
| 444 | /* decode literals and length/distance pairs */ | 457 | /* decode literals and length/distance pairs */ |
| 445 | do { | 458 | do { |
| 446 | symbol = decode(s, lencode); | 459 | symbol = decode(s, lencode); |
| 447 | if (symbol < 0) return symbol; /* invalid symbol */ | 460 | if (symbol < 0) |
| 461 | return symbol; /* invalid symbol */ | ||
| 448 | if (symbol < 256) { /* literal: symbol is the byte */ | 462 | if (symbol < 256) { /* literal: symbol is the byte */ |
| 449 | /* write out the literal */ | 463 | /* write out the literal */ |
| 450 | if (s->out != NIL) { | 464 | if (s->out != NIL) { |
| 451 | if (s->outcnt == s->outlen) return 1; | 465 | if (s->outcnt == s->outlen) |
| 466 | return 1; | ||
| 452 | s->out[s->outcnt] = symbol; | 467 | s->out[s->outcnt] = symbol; |
| 453 | } | 468 | } |
| 454 | s->outcnt++; | 469 | s->outcnt++; |
| @@ -456,12 +471,14 @@ local int codes(struct state *s, | |||
| 456 | else if (symbol > 256) { /* length */ | 471 | else if (symbol > 256) { /* length */ |
| 457 | /* get and compute length */ | 472 | /* get and compute length */ |
| 458 | symbol -= 257; | 473 | symbol -= 257; |
| 459 | if (symbol >= 29) return -10; /* invalid fixed code */ | 474 | if (symbol >= 29) |
| 475 | return -10; /* invalid fixed code */ | ||
| 460 | len = lens[symbol] + bits(s, lext[symbol]); | 476 | len = lens[symbol] + bits(s, lext[symbol]); |
| 461 | 477 | ||
| 462 | /* get and check distance */ | 478 | /* get and check distance */ |
| 463 | symbol = decode(s, distcode); | 479 | symbol = decode(s, distcode); |
| 464 | if (symbol < 0) return symbol; /* invalid symbol */ | 480 | if (symbol < 0) |
| 481 | return symbol; /* invalid symbol */ | ||
| 465 | dist = dists[symbol] + bits(s, dext[symbol]); | 482 | dist = dists[symbol] + bits(s, dext[symbol]); |
| 466 | #ifndef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR | 483 | #ifndef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR |
| 467 | if (dist > s->outcnt) | 484 | if (dist > s->outcnt) |
| @@ -470,13 +487,15 @@ local int codes(struct state *s, | |||
| 470 | 487 | ||
| 471 | /* copy length bytes from distance bytes back */ | 488 | /* copy length bytes from distance bytes back */ |
| 472 | if (s->out != NIL) { | 489 | if (s->out != NIL) { |
| 473 | if (s->outcnt + len > s->outlen) return 1; | 490 | if (s->outcnt + len > s->outlen) |
| 491 | return 1; | ||
| 474 | while (len--) { | 492 | while (len--) { |
| 475 | s->out[s->outcnt] = | 493 | s->out[s->outcnt] = |
| 476 | #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR | 494 | #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR |
| 477 | dist > s->outcnt ? 0 : | 495 | dist > s->outcnt ? |
| 496 | 0 : | ||
| 478 | #endif | 497 | #endif |
| 479 | s->out[s->outcnt - dist]; | 498 | s->out[s->outcnt - dist]; |
| 480 | s->outcnt++; | 499 | s->outcnt++; |
| 481 | } | 500 | } |
| 482 | } | 501 | } |
| @@ -525,6 +544,12 @@ local int fixed(struct state *s) | |||
| 525 | int symbol; | 544 | int symbol; |
| 526 | short lengths[FIXLCODES]; | 545 | short lengths[FIXLCODES]; |
| 527 | 546 | ||
| 547 | /* construct lencode and distcode */ | ||
| 548 | lencode.count = lencnt; | ||
| 549 | lencode.symbol = lensym; | ||
| 550 | distcode.count = distcnt; | ||
| 551 | distcode.symbol = distsym; | ||
| 552 | |||
| 528 | /* literal/length table */ | 553 | /* literal/length table */ |
| 529 | for (symbol = 0; symbol < 144; symbol++) | 554 | for (symbol = 0; symbol < 144; symbol++) |
| 530 | lengths[symbol] = 8; | 555 | lengths[symbol] = 8; |
| @@ -541,12 +566,6 @@ local int fixed(struct state *s) | |||
| 541 | lengths[symbol] = 5; | 566 | lengths[symbol] = 5; |
| 542 | construct(&distcode, lengths, MAXDCODES); | 567 | construct(&distcode, lengths, MAXDCODES); |
| 543 | 568 | ||
| 544 | /* construct lencode and distcode */ | ||
| 545 | lencode.count = lencnt; | ||
| 546 | lencode.symbol = lensym; | ||
| 547 | distcode.count = distcnt; | ||
| 548 | distcode.symbol = distsym; | ||
| 549 | |||
| 550 | /* do this just once */ | 569 | /* do this just once */ |
| 551 | virgin = 0; | 570 | virgin = 0; |
| 552 | } | 571 | } |
| @@ -675,7 +694,8 @@ local int dynamic(struct state *s) | |||
| 675 | 694 | ||
| 676 | /* build huffman table for code lengths codes (use lencode temporarily) */ | 695 | /* build huffman table for code lengths codes (use lencode temporarily) */ |
| 677 | err = construct(&lencode, lengths, 19); | 696 | err = construct(&lencode, lengths, 19); |
| 678 | if (err != 0) return -4; /* require complete code set here */ | 697 | if (err != 0) /* require complete code set here */ |
| 698 | return -4; | ||
| 679 | 699 | ||
| 680 | /* read length/literal and distance code length tables */ | 700 | /* read length/literal and distance code length tables */ |
| 681 | index = 0; | 701 | index = 0; |
| @@ -689,7 +709,8 @@ local int dynamic(struct state *s) | |||
| 689 | else { /* repeat instruction */ | 709 | else { /* repeat instruction */ |
| 690 | len = 0; /* assume repeating zeros */ | 710 | len = 0; /* assume repeating zeros */ |
| 691 | if (symbol == 16) { /* repeat last length 3..6 times */ | 711 | if (symbol == 16) { /* repeat last length 3..6 times */ |
| 692 | if (index == 0) return -5; /* no last length! */ | 712 | if (index == 0) |
| 713 | return -5; /* no last length! */ | ||
| 693 | len = lengths[index - 1]; /* last length */ | 714 | len = lengths[index - 1]; /* last length */ |
| 694 | symbol = 3 + bits(s, 2); | 715 | symbol = 3 + bits(s, 2); |
| 695 | } | 716 | } |
| @@ -710,13 +731,13 @@ local int dynamic(struct state *s) | |||
| 710 | 731 | ||
| 711 | /* build huffman table for literal/length codes */ | 732 | /* build huffman table for literal/length codes */ |
| 712 | err = construct(&lencode, lengths, nlen); | 733 | err = construct(&lencode, lengths, nlen); |
| 713 | if (err < 0 || (err > 0 && nlen - lencode.count[0] != 1)) | 734 | if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1])) |
| 714 | return -7; /* only allow incomplete codes if just one code */ | 735 | return -7; /* incomplete code ok only for single length 1 code */ |
| 715 | 736 | ||
| 716 | /* build huffman table for distance codes */ | 737 | /* build huffman table for distance codes */ |
| 717 | err = construct(&distcode, lengths + nlen, ndist); | 738 | err = construct(&distcode, lengths + nlen, ndist); |
| 718 | if (err < 0 || (err > 0 && ndist - distcode.count[0] != 1)) | 739 | if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1])) |
| 719 | return -8; /* only allow incomplete codes if just one code */ | 740 | return -8; /* incomplete code ok only for single length 1 code */ |
| 720 | 741 | ||
| 721 | /* decode data until end-of-block code */ | 742 | /* decode data until end-of-block code */ |
| 722 | return codes(s, &lencode, &distcode); | 743 | return codes(s, &lencode, &distcode); |
| @@ -768,7 +789,7 @@ local int dynamic(struct state *s) | |||
| 768 | */ | 789 | */ |
| 769 | int puff(unsigned char *dest, /* pointer to destination pointer */ | 790 | int puff(unsigned char *dest, /* pointer to destination pointer */ |
| 770 | unsigned long *destlen, /* amount of output space */ | 791 | unsigned long *destlen, /* amount of output space */ |
| 771 | unsigned char *source, /* pointer to source data pointer */ | 792 | const unsigned char *source, /* pointer to source data pointer */ |
| 772 | unsigned long *sourcelen) /* amount of input available */ | 793 | unsigned long *sourcelen) /* amount of input available */ |
| 773 | { | 794 | { |
| 774 | struct state s; /* input/output state */ | 795 | struct state s; /* input/output state */ |
| @@ -795,11 +816,15 @@ int puff(unsigned char *dest, /* pointer to destination pointer */ | |||
| 795 | do { | 816 | do { |
| 796 | last = bits(&s, 1); /* one if last block */ | 817 | last = bits(&s, 1); /* one if last block */ |
| 797 | type = bits(&s, 2); /* block type 0..3 */ | 818 | type = bits(&s, 2); /* block type 0..3 */ |
| 798 | err = type == 0 ? stored(&s) : | 819 | err = type == 0 ? |
| 799 | (type == 1 ? fixed(&s) : | 820 | stored(&s) : |
| 800 | (type == 2 ? dynamic(&s) : | 821 | (type == 1 ? |
| 801 | -1)); /* type == 3, invalid */ | 822 | fixed(&s) : |
| 802 | if (err != 0) break; /* return with error */ | 823 | (type == 2 ? |
| 824 | dynamic(&s) : | ||
| 825 | -1)); /* type == 3, invalid */ | ||
| 826 | if (err != 0) | ||
| 827 | break; /* return with error */ | ||
| 803 | } while (!last); | 828 | } while (!last); |
| 804 | } | 829 | } |
| 805 | 830 | ||
| @@ -810,146 +835,3 @@ int puff(unsigned char *dest, /* pointer to destination pointer */ | |||
| 810 | } | 835 | } |
| 811 | return err; | 836 | return err; |
| 812 | } | 837 | } |
| 813 | |||
| 814 | #ifdef TEST | ||
| 815 | /* Examples of how to use puff(). | ||
| 816 | |||
| 817 | Usage: puff [-w] [-nnn] file | ||
| 818 | ... | puff [-w] [-nnn] | ||
| 819 | |||
| 820 | where file is the input file with deflate data, nnn is the number of bytes | ||
| 821 | of input to skip before inflating (e.g. to skip a zlib or gzip header), and | ||
| 822 | -w is used to write the decompressed data to stdout */ | ||
| 823 | |||
| 824 | #include <stdio.h> | ||
| 825 | #include <stdlib.h> | ||
| 826 | |||
| 827 | /* Return size times approximately the cube root of 2, keeping the result as 1, | ||
| 828 | 3, or 5 times a power of 2 -- the result is always > size, until the result | ||
| 829 | is the maximum value of an unsigned long, where it remains. This is useful | ||
| 830 | to keep reallocations less than ~33% over the actual data. */ | ||
| 831 | local size_t bythirds(size_t size) | ||
| 832 | { | ||
| 833 | int n; | ||
| 834 | size_t m; | ||
| 835 | |||
| 836 | m = size; | ||
| 837 | for (n = 0; m; n++) | ||
| 838 | m >>= 1; | ||
| 839 | if (n < 3) | ||
| 840 | return size + 1; | ||
| 841 | n -= 3; | ||
| 842 | m = size >> n; | ||
| 843 | m += m == 6 ? 2 : 1; | ||
| 844 | m <<= n; | ||
| 845 | return m > size ? m : (size_t)(-1); | ||
| 846 | } | ||
| 847 | |||
| 848 | /* Read the input file *name, or stdin if name is NULL, into allocated memory. | ||
| 849 | Reallocate to larger buffers until the entire file is read in. Return a | ||
| 850 | pointer to the allocated data, or NULL if there was a memory allocation | ||
| 851 | failure. *len is the number of bytes of data read from the input file (even | ||
| 852 | if load() returns NULL). If the input file was empty or could not be opened | ||
| 853 | or read, *len is zero. */ | ||
| 854 | local void *load(char *name, size_t *len) | ||
| 855 | { | ||
| 856 | size_t size; | ||
| 857 | void *buf, *swap; | ||
| 858 | FILE *in; | ||
| 859 | |||
| 860 | *len = 0; | ||
| 861 | buf = malloc(size = 4096); | ||
| 862 | if (buf == NULL) | ||
| 863 | return NULL; | ||
| 864 | in = name == NULL ? stdin : fopen(name, "rb"); | ||
| 865 | if (in != NULL) { | ||
| 866 | for (;;) { | ||
| 867 | *len += fread((char *)buf + *len, 1, size - *len, in); | ||
| 868 | if (*len < size) break; | ||
| 869 | size = bythirds(size); | ||
| 870 | if (size == *len || (swap = realloc(buf, size)) == NULL) { | ||
| 871 | free(buf); | ||
| 872 | buf = NULL; | ||
| 873 | break; | ||
| 874 | } | ||
| 875 | buf = swap; | ||
| 876 | } | ||
| 877 | fclose(in); | ||
| 878 | } | ||
| 879 | return buf; | ||
| 880 | } | ||
| 881 | |||
| 882 | int main(int argc, char **argv) | ||
| 883 | { | ||
| 884 | int ret, put = 0; | ||
| 885 | unsigned skip = 0; | ||
| 886 | char *arg, *name = NULL; | ||
| 887 | unsigned char *source = NULL, *dest; | ||
| 888 | size_t len = 0; | ||
| 889 | unsigned long sourcelen, destlen; | ||
| 890 | |||
| 891 | /* process arguments */ | ||
| 892 | while (arg = *++argv, --argc) | ||
| 893 | if (arg[0] == '-') { | ||
| 894 | if (arg[1] == 'w' && arg[2] == 0) | ||
| 895 | put = 1; | ||
| 896 | else if (arg[1] >= '0' && arg[1] <= '9') | ||
| 897 | skip = (unsigned)atoi(arg + 1); | ||
| 898 | else { | ||
| 899 | fprintf(stderr, "invalid option %s\n", arg); | ||
| 900 | return 3; | ||
| 901 | } | ||
| 902 | } | ||
| 903 | else if (name != NULL) { | ||
| 904 | fprintf(stderr, "only one file name allowed\n"); | ||
| 905 | return 3; | ||
| 906 | } | ||
| 907 | else | ||
| 908 | name = arg; | ||
| 909 | source = load(name, &len); | ||
| 910 | if (source == NULL) { | ||
| 911 | fprintf(stderr, "memory allocation failure\n"); | ||
| 912 | return 4; | ||
| 913 | } | ||
| 914 | if (len == 0) { | ||
| 915 | fprintf(stderr, "could not read %s, or it was empty\n", | ||
| 916 | name == NULL ? "<stdin>" : name); | ||
| 917 | free(source); | ||
| 918 | return 3; | ||
| 919 | } | ||
| 920 | if (skip >= len) { | ||
| 921 | fprintf(stderr, "skip request of %d leaves no input\n", skip); | ||
| 922 | free(source); | ||
| 923 | return 3; | ||
| 924 | } | ||
| 925 | |||
| 926 | /* test inflate data with offset skip */ | ||
| 927 | len -= skip; | ||
| 928 | sourcelen = (unsigned long)len; | ||
| 929 | ret = puff(NIL, &destlen, source + skip, &sourcelen); | ||
| 930 | if (ret) | ||
| 931 | fprintf(stderr, "puff() failed with return code %d\n", ret); | ||
| 932 | else { | ||
| 933 | fprintf(stderr, "puff() succeeded uncompressing %lu bytes\n", destlen); | ||
| 934 | if (sourcelen < len) fprintf(stderr, "%lu compressed bytes unused\n", | ||
| 935 | len - sourcelen); | ||
| 936 | } | ||
| 937 | |||
| 938 | /* if requested, inflate again and write decompressd data to stdout */ | ||
| 939 | if (put) { | ||
| 940 | dest = malloc(destlen); | ||
| 941 | if (dest == NULL) { | ||
| 942 | fprintf(stderr, "memory allocation failure\n"); | ||
| 943 | free(source); | ||
| 944 | return 4; | ||
| 945 | } | ||
| 946 | puff(dest, &destlen, source + skip, &sourcelen); | ||
| 947 | fwrite(dest, 1, destlen, stdout); | ||
| 948 | free(dest); | ||
| 949 | } | ||
| 950 | |||
| 951 | /* clean up */ | ||
| 952 | free(source); | ||
| 953 | return ret; | ||
| 954 | } | ||
| 955 | #endif | ||
diff --git a/contrib/puff/puff.h b/contrib/puff/puff.h index 88d1b38..6a0080a 100644 --- a/contrib/puff/puff.h +++ b/contrib/puff/puff.h | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* puff.h | 1 | /* puff.h |
| 2 | Copyright (C) 2002-2010 Mark Adler, all rights reserved | 2 | Copyright (C) 2002-2010 Mark Adler, all rights reserved |
| 3 | version 2.1, 4 Apr 2010 | 3 | version 2.2, 25 Apr 2010 |
| 4 | 4 | ||
| 5 | This software is provided 'as-is', without any express or implied | 5 | This software is provided 'as-is', without any express or implied |
| 6 | warranty. In no event will the author be held liable for any damages | 6 | warranty. In no event will the author be held liable for any damages |
| @@ -25,7 +25,11 @@ | |||
| 25 | /* | 25 | /* |
| 26 | * See puff.c for purpose and usage. | 26 | * See puff.c for purpose and usage. |
| 27 | */ | 27 | */ |
| 28 | #ifndef NIL | ||
| 29 | # define NIL ((unsigned char *)0) /* for no output option */ | ||
| 30 | #endif | ||
| 31 | |||
| 28 | int puff(unsigned char *dest, /* pointer to destination pointer */ | 32 | int puff(unsigned char *dest, /* pointer to destination pointer */ |
| 29 | unsigned long *destlen, /* amount of output space */ | 33 | unsigned long *destlen, /* amount of output space */ |
| 30 | unsigned char *source, /* pointer to source data pointer */ | 34 | const unsigned char *source, /* pointer to source data pointer */ |
| 31 | unsigned long *sourcelen); /* amount of input available */ | 35 | unsigned long *sourcelen); /* amount of input available */ |
diff --git a/contrib/puff/pufftest.c b/contrib/puff/pufftest.c new file mode 100644 index 0000000..76e35f6 --- /dev/null +++ b/contrib/puff/pufftest.c | |||
| @@ -0,0 +1,165 @@ | |||
| 1 | /* | ||
| 2 | * pufftest.c | ||
| 3 | * Copyright (C) 2002-2010 Mark Adler | ||
| 4 | * For conditions of distribution and use, see copyright notice in puff.h | ||
| 5 | * version 2.2, 25 Apr 2010 | ||
| 6 | */ | ||
| 7 | |||
| 8 | /* Example of how to use puff(). | ||
| 9 | |||
| 10 | Usage: puff [-w] [-f] [-nnn] file | ||
| 11 | ... | puff [-w] [-f] [-nnn] | ||
| 12 | |||
| 13 | where file is the input file with deflate data, nnn is the number of bytes | ||
| 14 | of input to skip before inflating (e.g. to skip a zlib or gzip header), and | ||
| 15 | -w is used to write the decompressed data to stdout. -f is for coverage | ||
| 16 | testing, and causes pufftest to fail with not enough output space (-f does | ||
| 17 | a write like -w, so -w is not required). */ | ||
| 18 | |||
| 19 | #include <stdio.h> | ||
| 20 | #include <stdlib.h> | ||
| 21 | #include "puff.h" | ||
| 22 | |||
| 23 | #if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__) | ||
| 24 | # include <fcntl.h> | ||
| 25 | # include <io.h> | ||
| 26 | # define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) | ||
| 27 | #else | ||
| 28 | # define SET_BINARY_MODE(file) | ||
| 29 | #endif | ||
| 30 | |||
| 31 | #define local static | ||
| 32 | |||
| 33 | /* Return size times approximately the cube root of 2, keeping the result as 1, | ||
| 34 | 3, or 5 times a power of 2 -- the result is always > size, until the result | ||
| 35 | is the maximum value of an unsigned long, where it remains. This is useful | ||
| 36 | to keep reallocations less than ~33% over the actual data. */ | ||
| 37 | local size_t bythirds(size_t size) | ||
| 38 | { | ||
| 39 | int n; | ||
| 40 | size_t m; | ||
| 41 | |||
| 42 | m = size; | ||
| 43 | for (n = 0; m; n++) | ||
| 44 | m >>= 1; | ||
| 45 | if (n < 3) | ||
| 46 | return size + 1; | ||
| 47 | n -= 3; | ||
| 48 | m = size >> n; | ||
| 49 | m += m == 6 ? 2 : 1; | ||
| 50 | m <<= n; | ||
| 51 | return m > size ? m : (size_t)(-1); | ||
| 52 | } | ||
| 53 | |||
| 54 | /* Read the input file *name, or stdin if name is NULL, into allocated memory. | ||
| 55 | Reallocate to larger buffers until the entire file is read in. Return a | ||
| 56 | pointer to the allocated data, or NULL if there was a memory allocation | ||
| 57 | failure. *len is the number of bytes of data read from the input file (even | ||
| 58 | if load() returns NULL). If the input file was empty or could not be opened | ||
| 59 | or read, *len is zero. */ | ||
| 60 | local void *load(const char *name, size_t *len) | ||
| 61 | { | ||
| 62 | size_t size; | ||
| 63 | void *buf, *swap; | ||
| 64 | FILE *in; | ||
| 65 | |||
| 66 | *len = 0; | ||
| 67 | buf = malloc(size = 4096); | ||
| 68 | if (buf == NULL) | ||
| 69 | return NULL; | ||
| 70 | in = name == NULL ? stdin : fopen(name, "rb"); | ||
| 71 | if (in != NULL) { | ||
| 72 | for (;;) { | ||
| 73 | *len += fread((char *)buf + *len, 1, size - *len, in); | ||
| 74 | if (*len < size) break; | ||
| 75 | size = bythirds(size); | ||
| 76 | if (size == *len || (swap = realloc(buf, size)) == NULL) { | ||
| 77 | free(buf); | ||
| 78 | buf = NULL; | ||
| 79 | break; | ||
| 80 | } | ||
| 81 | buf = swap; | ||
| 82 | } | ||
| 83 | fclose(in); | ||
| 84 | } | ||
| 85 | return buf; | ||
| 86 | } | ||
| 87 | |||
| 88 | int main(int argc, char **argv) | ||
| 89 | { | ||
| 90 | int ret, put = 0, fail = 0; | ||
| 91 | unsigned skip = 0; | ||
| 92 | char *arg, *name = NULL; | ||
| 93 | unsigned char *source = NULL, *dest; | ||
| 94 | size_t len = 0; | ||
| 95 | unsigned long sourcelen, destlen; | ||
| 96 | |||
| 97 | /* process arguments */ | ||
| 98 | while (arg = *++argv, --argc) | ||
| 99 | if (arg[0] == '-') { | ||
| 100 | if (arg[1] == 'w' && arg[2] == 0) | ||
| 101 | put = 1; | ||
| 102 | else if (arg[1] == 'f' && arg[2] == 0) | ||
| 103 | fail = 1, put = 1; | ||
| 104 | else if (arg[1] >= '0' && arg[1] <= '9') | ||
| 105 | skip = (unsigned)atoi(arg + 1); | ||
| 106 | else { | ||
| 107 | fprintf(stderr, "invalid option %s\n", arg); | ||
| 108 | return 3; | ||
| 109 | } | ||
| 110 | } | ||
| 111 | else if (name != NULL) { | ||
| 112 | fprintf(stderr, "only one file name allowed\n"); | ||
| 113 | return 3; | ||
| 114 | } | ||
| 115 | else | ||
| 116 | name = arg; | ||
| 117 | source = load(name, &len); | ||
| 118 | if (source == NULL) { | ||
| 119 | fprintf(stderr, "memory allocation failure\n"); | ||
| 120 | return 4; | ||
| 121 | } | ||
| 122 | if (len == 0) { | ||
| 123 | fprintf(stderr, "could not read %s, or it was empty\n", | ||
| 124 | name == NULL ? "<stdin>" : name); | ||
| 125 | free(source); | ||
| 126 | return 3; | ||
| 127 | } | ||
| 128 | if (skip >= len) { | ||
| 129 | fprintf(stderr, "skip request of %d leaves no input\n", skip); | ||
| 130 | free(source); | ||
| 131 | return 3; | ||
| 132 | } | ||
| 133 | |||
| 134 | /* test inflate data with offset skip */ | ||
| 135 | len -= skip; | ||
| 136 | sourcelen = (unsigned long)len; | ||
| 137 | ret = puff(NIL, &destlen, source + skip, &sourcelen); | ||
| 138 | if (ret) | ||
| 139 | fprintf(stderr, "puff() failed with return code %d\n", ret); | ||
| 140 | else { | ||
| 141 | fprintf(stderr, "puff() succeeded uncompressing %lu bytes\n", destlen); | ||
| 142 | if (sourcelen < len) fprintf(stderr, "%lu compressed bytes unused\n", | ||
| 143 | len - sourcelen); | ||
| 144 | } | ||
| 145 | |||
| 146 | /* if requested, inflate again and write decompressd data to stdout */ | ||
| 147 | if (put && ret == 0) { | ||
| 148 | if (fail) | ||
| 149 | destlen >>= 1; | ||
| 150 | dest = malloc(destlen); | ||
| 151 | if (dest == NULL) { | ||
| 152 | fprintf(stderr, "memory allocation failure\n"); | ||
| 153 | free(source); | ||
| 154 | return 4; | ||
| 155 | } | ||
| 156 | puff(dest, &destlen, source + skip, &sourcelen); | ||
| 157 | SET_BINARY_MODE(stdout); | ||
| 158 | fwrite(dest, 1, destlen, stdout); | ||
| 159 | free(dest); | ||
| 160 | } | ||
| 161 | |||
| 162 | /* clean up */ | ||
| 163 | free(source); | ||
| 164 | return ret; | ||
| 165 | } | ||
diff --git a/contrib/puff/zeros.raw b/contrib/puff/zeros.raw index 637b7be..0a90e76 100644 --- a/contrib/puff/zeros.raw +++ b/contrib/puff/zeros.raw | |||
| Binary files differ | |||
diff --git a/contrib/vstudio/vc10/zlib.rc b/contrib/vstudio/vc10/zlib.rc index f822450..00034ea 100644 --- a/contrib/vstudio/vc10/zlib.rc +++ b/contrib/vstudio/vc10/zlib.rc | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | #define IDR_VERSION1 1 | 3 | #define IDR_VERSION1 1 |
| 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE |
| 5 | FILEVERSION 1,2,5,0 | 5 | FILEVERSION 1.2.5.1,1 |
| 6 | PRODUCTVERSION 1,2,5,0 | 6 | PRODUCTVERSION 1.2.5.1,1 |
| 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK |
| 8 | FILEFLAGS 0 | 8 | FILEFLAGS 0 |
| 9 | FILEOS VOS_DOS_WINDOWS32 | 9 | FILEOS VOS_DOS_WINDOWS32 |
| @@ -17,7 +17,7 @@ BEGIN | |||
| 17 | 17 | ||
| 18 | BEGIN | 18 | BEGIN |
| 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" | 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" |
| 20 | VALUE "FileVersion", "1.2.5\0" | 20 | VALUE "FileVersion", "1.2.5.1\0" |
| 21 | VALUE "InternalName", "zlib\0" | 21 | VALUE "InternalName", "zlib\0" |
| 22 | VALUE "OriginalFilename", "zlib.dll\0" | 22 | VALUE "OriginalFilename", "zlib.dll\0" |
| 23 | VALUE "ProductName", "ZLib.DLL\0" | 23 | VALUE "ProductName", "ZLib.DLL\0" |
diff --git a/contrib/vstudio/vc10/zlibvc.def b/contrib/vstudio/vc10/zlibvc.def index 0269ef7..ad8b4af 100644 --- a/contrib/vstudio/vc10/zlibvc.def +++ b/contrib/vstudio/vc10/zlibvc.def | |||
| @@ -55,6 +55,7 @@ EXPORTS | |||
| 55 | gzungetc @49 | 55 | gzungetc @49 |
| 56 | zlibCompileFlags @50 | 56 | zlibCompileFlags @50 |
| 57 | deflatePrime @51 | 57 | deflatePrime @51 |
| 58 | deflatePending @52 | ||
| 58 | 59 | ||
| 59 | unzOpen @61 | 60 | unzOpen @61 |
| 60 | unzClose @62 | 61 | unzClose @62 |
diff --git a/contrib/vstudio/vc9/zlib.rc b/contrib/vstudio/vc9/zlib.rc index f822450..00034ea 100644 --- a/contrib/vstudio/vc9/zlib.rc +++ b/contrib/vstudio/vc9/zlib.rc | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | #define IDR_VERSION1 1 | 3 | #define IDR_VERSION1 1 |
| 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE |
| 5 | FILEVERSION 1,2,5,0 | 5 | FILEVERSION 1.2.5.1,1 |
| 6 | PRODUCTVERSION 1,2,5,0 | 6 | PRODUCTVERSION 1.2.5.1,1 |
| 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK |
| 8 | FILEFLAGS 0 | 8 | FILEFLAGS 0 |
| 9 | FILEOS VOS_DOS_WINDOWS32 | 9 | FILEOS VOS_DOS_WINDOWS32 |
| @@ -17,7 +17,7 @@ BEGIN | |||
| 17 | 17 | ||
| 18 | BEGIN | 18 | BEGIN |
| 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" | 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" |
| 20 | VALUE "FileVersion", "1.2.5\0" | 20 | VALUE "FileVersion", "1.2.5.1\0" |
| 21 | VALUE "InternalName", "zlib\0" | 21 | VALUE "InternalName", "zlib\0" |
| 22 | VALUE "OriginalFilename", "zlib.dll\0" | 22 | VALUE "OriginalFilename", "zlib.dll\0" |
| 23 | VALUE "ProductName", "ZLib.DLL\0" | 23 | VALUE "ProductName", "ZLib.DLL\0" |
diff --git a/contrib/vstudio/vc9/zlibvc.def b/contrib/vstudio/vc9/zlibvc.def index 0269ef7..ad8b4af 100644 --- a/contrib/vstudio/vc9/zlibvc.def +++ b/contrib/vstudio/vc9/zlibvc.def | |||
| @@ -55,6 +55,7 @@ EXPORTS | |||
| 55 | gzungetc @49 | 55 | gzungetc @49 |
| 56 | zlibCompileFlags @50 | 56 | zlibCompileFlags @50 |
| 57 | deflatePrime @51 | 57 | deflatePrime @51 |
| 58 | deflatePending @52 | ||
| 58 | 59 | ||
| 59 | unzOpen @61 | 60 | unzOpen @61 |
| 60 | unzClose @62 | 61 | unzClose @62 |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* crc32.c -- compute the CRC-32 of a data stream | 1 | /* crc32.c -- compute the CRC-32 of a data stream |
| 2 | * Copyright (C) 1995-2006, 2010 Mark Adler | 2 | * Copyright (C) 1995-2006, 2010, 2011 Mark Adler |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | * | 4 | * |
| 5 | * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster | 5 | * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster |
| @@ -17,6 +17,8 @@ | |||
| 17 | of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should | 17 | of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should |
| 18 | first call get_crc_table() to initialize the tables before allowing more than | 18 | first call get_crc_table() to initialize the tables before allowing more than |
| 19 | one thread to use crc32(). | 19 | one thread to use crc32(). |
| 20 | |||
| 21 | DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h. | ||
| 20 | */ | 22 | */ |
| 21 | 23 | ||
| 22 | #ifdef MAKECRCH | 24 | #ifdef MAKECRCH |
| @@ -53,6 +55,7 @@ | |||
| 53 | 55 | ||
| 54 | /* Definitions for doing the crc four data bytes at a time. */ | 56 | /* Definitions for doing the crc four data bytes at a time. */ |
| 55 | #ifdef BYFOUR | 57 | #ifdef BYFOUR |
| 58 | typedef u4 crc_table_t; | ||
| 56 | # define REV(w) ((((w)>>24)&0xff)+(((w)>>8)&0xff00)+ \ | 59 | # define REV(w) ((((w)>>24)&0xff)+(((w)>>8)&0xff00)+ \ |
| 57 | (((w)&0xff00)<<8)+(((w)&0xff)<<24)) | 60 | (((w)&0xff00)<<8)+(((w)&0xff)<<24)) |
| 58 | local unsigned long crc32_little OF((unsigned long, | 61 | local unsigned long crc32_little OF((unsigned long, |
| @@ -61,6 +64,7 @@ | |||
| 61 | const unsigned char FAR *, unsigned)); | 64 | const unsigned char FAR *, unsigned)); |
| 62 | # define TBLS 8 | 65 | # define TBLS 8 |
| 63 | #else | 66 | #else |
| 67 | typedef unsigned long crc_table_t; | ||
| 64 | # define TBLS 1 | 68 | # define TBLS 1 |
| 65 | #endif /* BYFOUR */ | 69 | #endif /* BYFOUR */ |
| 66 | 70 | ||
| @@ -68,16 +72,16 @@ | |||
| 68 | local unsigned long gf2_matrix_times OF((unsigned long *mat, | 72 | local unsigned long gf2_matrix_times OF((unsigned long *mat, |
| 69 | unsigned long vec)); | 73 | unsigned long vec)); |
| 70 | local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); | 74 | local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); |
| 71 | local uLong crc32_combine_(uLong crc1, uLong crc2, z_off64_t len2); | 75 | local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2)); |
| 72 | 76 | ||
| 73 | 77 | ||
| 74 | #ifdef DYNAMIC_CRC_TABLE | 78 | #ifdef DYNAMIC_CRC_TABLE |
| 75 | 79 | ||
| 76 | local volatile int crc_table_empty = 1; | 80 | local volatile int crc_table_empty = 1; |
| 77 | local unsigned long FAR crc_table[TBLS][256]; | 81 | local crc_table_t FAR crc_table[TBLS][256]; |
| 78 | local void make_crc_table OF((void)); | 82 | local void make_crc_table OF((void)); |
| 79 | #ifdef MAKECRCH | 83 | #ifdef MAKECRCH |
| 80 | local void write_table OF((FILE *, const unsigned long FAR *)); | 84 | local void write_table OF((FILE *, const crc_table_t FAR *)); |
| 81 | #endif /* MAKECRCH */ | 85 | #endif /* MAKECRCH */ |
| 82 | /* | 86 | /* |
| 83 | Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: | 87 | Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: |
| @@ -107,9 +111,9 @@ local void make_crc_table OF((void)); | |||
| 107 | */ | 111 | */ |
| 108 | local void make_crc_table() | 112 | local void make_crc_table() |
| 109 | { | 113 | { |
| 110 | unsigned long c; | 114 | crc_table_t c; |
| 111 | int n, k; | 115 | int n, k; |
| 112 | unsigned long poly; /* polynomial exclusive-or pattern */ | 116 | crc_table_t poly; /* polynomial exclusive-or pattern */ |
| 113 | /* terms of polynomial defining this crc (except x^32): */ | 117 | /* terms of polynomial defining this crc (except x^32): */ |
| 114 | static volatile int first = 1; /* flag to limit concurrent making */ | 118 | static volatile int first = 1; /* flag to limit concurrent making */ |
| 115 | static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; | 119 | static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; |
| @@ -121,13 +125,13 @@ local void make_crc_table() | |||
| 121 | first = 0; | 125 | first = 0; |
| 122 | 126 | ||
| 123 | /* make exclusive-or pattern from polynomial (0xedb88320UL) */ | 127 | /* make exclusive-or pattern from polynomial (0xedb88320UL) */ |
| 124 | poly = 0UL; | 128 | poly = 0; |
| 125 | for (n = 0; n < sizeof(p)/sizeof(unsigned char); n++) | 129 | for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++) |
| 126 | poly |= 1UL << (31 - p[n]); | 130 | poly |= (crc_table_t)1 << (31 - p[n]); |
| 127 | 131 | ||
| 128 | /* generate a crc for every 8-bit value */ | 132 | /* generate a crc for every 8-bit value */ |
| 129 | for (n = 0; n < 256; n++) { | 133 | for (n = 0; n < 256; n++) { |
| 130 | c = (unsigned long)n; | 134 | c = (crc_table_t)n; |
| 131 | for (k = 0; k < 8; k++) | 135 | for (k = 0; k < 8; k++) |
| 132 | c = c & 1 ? poly ^ (c >> 1) : c >> 1; | 136 | c = c & 1 ? poly ^ (c >> 1) : c >> 1; |
| 133 | crc_table[0][n] = c; | 137 | crc_table[0][n] = c; |
| @@ -164,7 +168,7 @@ local void make_crc_table() | |||
| 164 | if (out == NULL) return; | 168 | if (out == NULL) return; |
| 165 | fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); | 169 | fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); |
| 166 | fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); | 170 | fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); |
| 167 | fprintf(out, "local const unsigned long FAR "); | 171 | fprintf(out, "local const crc_table_t FAR "); |
| 168 | fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); | 172 | fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); |
| 169 | write_table(out, crc_table[0]); | 173 | write_table(out, crc_table[0]); |
| 170 | # ifdef BYFOUR | 174 | # ifdef BYFOUR |
| @@ -184,12 +188,13 @@ local void make_crc_table() | |||
| 184 | #ifdef MAKECRCH | 188 | #ifdef MAKECRCH |
| 185 | local void write_table(out, table) | 189 | local void write_table(out, table) |
| 186 | FILE *out; | 190 | FILE *out; |
| 187 | const unsigned long FAR *table; | 191 | const crc_table_t FAR *table; |
| 188 | { | 192 | { |
| 189 | int n; | 193 | int n; |
| 190 | 194 | ||
| 191 | for (n = 0; n < 256; n++) | 195 | for (n = 0; n < 256; n++) |
| 192 | fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", table[n], | 196 | fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", |
| 197 | (unsigned long)(table[n]), | ||
| 193 | n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); | 198 | n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); |
| 194 | } | 199 | } |
| 195 | #endif /* MAKECRCH */ | 200 | #endif /* MAKECRCH */ |
| @@ -2,7 +2,7 @@ | |||
| 2 | * Generated automatically by crc32.c | 2 | * Generated automatically by crc32.c |
| 3 | */ | 3 | */ |
| 4 | 4 | ||
| 5 | local const unsigned long FAR crc_table[TBLS][256] = | 5 | local const crc_table_t FAR crc_table[TBLS][256] = |
| 6 | { | 6 | { |
| 7 | { | 7 | { |
| 8 | 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, | 8 | 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* deflate.c -- compress data using the deflation algorithm | 1 | /* deflate.c -- compress data using the deflation algorithm |
| 2 | * Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler | 2 | * Copyright (C) 1995-2011 Jean-loup Gailly and Mark Adler |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -37,7 +37,7 @@ | |||
| 37 | * REFERENCES | 37 | * REFERENCES |
| 38 | * | 38 | * |
| 39 | * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". | 39 | * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". |
| 40 | * Available in http://www.ietf.org/rfc/rfc1951.txt | 40 | * Available in http://tools.ietf.org/html/rfc1951 |
| 41 | * | 41 | * |
| 42 | * A description of the Rabin and Karp algorithm is given in the book | 42 | * A description of the Rabin and Karp algorithm is given in the book |
| 43 | * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. | 43 | * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. |
| @@ -52,7 +52,7 @@ | |||
| 52 | #include "deflate.h" | 52 | #include "deflate.h" |
| 53 | 53 | ||
| 54 | const char deflate_copyright[] = | 54 | const char deflate_copyright[] = |
| 55 | " deflate 1.2.5 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; | 55 | " deflate 1.2.5.1 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; |
| 56 | /* | 56 | /* |
| 57 | If you use the zlib library in a product, an acknowledgment is welcome | 57 | If you use the zlib library in a product, an acknowledgment is welcome |
| 58 | in the documentation of your product. If for some reason you cannot | 58 | in the documentation of your product. If for some reason you cannot |
| @@ -397,6 +397,18 @@ int ZEXPORT deflateSetHeader (strm, head) | |||
| 397 | } | 397 | } |
| 398 | 398 | ||
| 399 | /* ========================================================================= */ | 399 | /* ========================================================================= */ |
| 400 | int ZEXPORT deflatePending (strm, pending, bits) | ||
| 401 | unsigned *pending; | ||
| 402 | int *bits; | ||
| 403 | z_streamp strm; | ||
| 404 | { | ||
| 405 | if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; | ||
| 406 | *pending = strm->state->pending; | ||
| 407 | *bits = strm->state->bi_valid; | ||
| 408 | return Z_OK; | ||
| 409 | } | ||
| 410 | |||
| 411 | /* ========================================================================= */ | ||
| 400 | int ZEXPORT deflatePrime (strm, bits, value) | 412 | int ZEXPORT deflatePrime (strm, bits, value) |
| 401 | z_streamp strm; | 413 | z_streamp strm; |
| 402 | int bits; | 414 | int bits; |
| @@ -1001,15 +1013,15 @@ local int read_buf(strm, buf, size) | |||
| 1001 | 1013 | ||
| 1002 | strm->avail_in -= len; | 1014 | strm->avail_in -= len; |
| 1003 | 1015 | ||
| 1016 | zmemcpy(buf, strm->next_in, len); | ||
| 1004 | if (strm->state->wrap == 1) { | 1017 | if (strm->state->wrap == 1) { |
| 1005 | strm->adler = adler32(strm->adler, strm->next_in, len); | 1018 | strm->adler = adler32(strm->adler, buf, len); |
| 1006 | } | 1019 | } |
| 1007 | #ifdef GZIP | 1020 | #ifdef GZIP |
| 1008 | else if (strm->state->wrap == 2) { | 1021 | else if (strm->state->wrap == 2) { |
| 1009 | strm->adler = crc32(strm->adler, strm->next_in, len); | 1022 | strm->adler = crc32(strm->adler, buf, len); |
| 1010 | } | 1023 | } |
| 1011 | #endif | 1024 | #endif |
| 1012 | zmemcpy(buf, strm->next_in, len); | ||
| 1013 | strm->next_in += len; | 1025 | strm->next_in += len; |
| 1014 | strm->total_in += len; | 1026 | strm->total_in += len; |
| 1015 | 1027 | ||
| @@ -188,7 +188,7 @@ typedef struct internal_state { | |||
| 188 | int nice_match; /* Stop searching when current match exceeds this */ | 188 | int nice_match; /* Stop searching when current match exceeds this */ |
| 189 | 189 | ||
| 190 | /* used by trees.c: */ | 190 | /* used by trees.c: */ |
| 191 | /* Didn't use ct_data typedef below to supress compiler warning */ | 191 | /* Didn't use ct_data typedef below to suppress compiler warning */ |
| 192 | struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ | 192 | struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ |
| 193 | struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ | 193 | struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ |
| 194 | struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ | 194 | struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ |
diff --git a/doc/algorithm.txt b/doc/algorithm.txt index 34960bd..c97f495 100644 --- a/doc/algorithm.txt +++ b/doc/algorithm.txt | |||
| @@ -206,4 +206,4 @@ Compression,'' IEEE Transactions on Information Theory, Vol. 23, No. 3, | |||
| 206 | pp. 337-343. | 206 | pp. 337-343. |
| 207 | 207 | ||
| 208 | ``DEFLATE Compressed Data Format Specification'' available in | 208 | ``DEFLATE Compressed Data Format Specification'' available in |
| 209 | http://www.ietf.org/rfc/rfc1951.txt | 209 | http://tools.ietf.org/html/rfc1951 |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* example.c -- usage example of the zlib compression library | 1 | /* example.c -- usage example of the zlib compression library |
| 2 | * Copyright (C) 1995-2006 Jean-loup Gailly. | 2 | * Copyright (C) 1995-2006, 2011 Jean-loup Gailly. |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -438,7 +438,7 @@ void test_dict_deflate(compr, comprLen) | |||
| 438 | CHECK_ERR(err, "deflateInit"); | 438 | CHECK_ERR(err, "deflateInit"); |
| 439 | 439 | ||
| 440 | err = deflateSetDictionary(&c_stream, | 440 | err = deflateSetDictionary(&c_stream, |
| 441 | (const Bytef*)dictionary, sizeof(dictionary)); | 441 | (const Bytef*)dictionary, (int)sizeof(dictionary)); |
| 442 | CHECK_ERR(err, "deflateSetDictionary"); | 442 | CHECK_ERR(err, "deflateSetDictionary"); |
| 443 | 443 | ||
| 444 | dictId = c_stream.adler; | 444 | dictId = c_stream.adler; |
| @@ -491,7 +491,7 @@ void test_dict_inflate(compr, comprLen, uncompr, uncomprLen) | |||
| 491 | exit(1); | 491 | exit(1); |
| 492 | } | 492 | } |
| 493 | err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary, | 493 | err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary, |
| 494 | sizeof(dictionary)); | 494 | (int)sizeof(dictionary)); |
| 495 | } | 495 | } |
| 496 | CHECK_ERR(err, "inflate with dict"); | 496 | CHECK_ERR(err, "inflate with dict"); |
| 497 | } | 497 | } |
| @@ -91,6 +91,10 @@ local gzFile gz_open(path, fd, mode) | |||
| 91 | { | 91 | { |
| 92 | gz_statep state; | 92 | gz_statep state; |
| 93 | 93 | ||
| 94 | /* check input */ | ||
| 95 | if (path == NULL) | ||
| 96 | return NULL; | ||
| 97 | |||
| 94 | /* allocate gzFile structure to return */ | 98 | /* allocate gzFile structure to return */ |
| 95 | state = malloc(sizeof(gz_state)); | 99 | state = malloc(sizeof(gz_state)); |
| 96 | if (state == NULL) | 100 | if (state == NULL) |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* gzwrite.c -- zlib functions for writing gzip files | 1 | /* gzwrite.c -- zlib functions for writing gzip files |
| 2 | * Copyright (C) 2004, 2005, 2010 Mark Adler | 2 | * Copyright (C) 2004, 2005, 2010, 2011 Mark Adler |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -274,7 +274,7 @@ int ZEXPORT gzputs(file, str) | |||
| 274 | return ret == 0 && len != 0 ? -1 : ret; | 274 | return ret == 0 && len != 0 ? -1 : ret; |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | #ifdef STDC | 277 | #if defined(STDC) || defined(Z_HAVE_STDARG_H) |
| 278 | #include <stdarg.h> | 278 | #include <stdarg.h> |
| 279 | 279 | ||
| 280 | /* -- see zlib.h -- */ | 280 | /* -- see zlib.h -- */ |
| @@ -346,7 +346,7 @@ int ZEXPORTVA gzprintf (gzFile file, const char *format, ...) | |||
| 346 | return len; | 346 | return len; |
| 347 | } | 347 | } |
| 348 | 348 | ||
| 349 | #else /* !STDC */ | 349 | #else /* !STDC && !Z_HAVE_STDARG_H */ |
| 350 | 350 | ||
| 351 | /* -- see zlib.h -- */ | 351 | /* -- see zlib.h -- */ |
| 352 | int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, | 352 | int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, |
| @@ -366,6 +366,10 @@ int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, | |||
| 366 | state = (gz_statep)file; | 366 | state = (gz_statep)file; |
| 367 | strm = &(state->strm); | 367 | strm = &(state->strm); |
| 368 | 368 | ||
| 369 | /* check that can really pass pointer in ints */ | ||
| 370 | if (sizeof(int) != sizeof(void *)) | ||
| 371 | return 0; | ||
| 372 | |||
| 369 | /* check that we're writing and that there's no error */ | 373 | /* check that we're writing and that there's no error */ |
| 370 | if (state->mode != GZ_WRITE || state->err != Z_OK) | 374 | if (state->mode != GZ_WRITE || state->err != Z_OK) |
| 371 | return 0; | 375 | return 0; |
| @@ -9,7 +9,7 @@ | |||
| 9 | #define MAXBITS 15 | 9 | #define MAXBITS 15 |
| 10 | 10 | ||
| 11 | const char inflate_copyright[] = | 11 | const char inflate_copyright[] = |
| 12 | " inflate 1.2.5 Copyright 1995-2010 Mark Adler "; | 12 | " inflate 1.2.5.1 Copyright 1995-2010 Mark Adler "; |
| 13 | /* | 13 | /* |
| 14 | If you use the zlib library in a product, an acknowledgment is welcome | 14 | If you use the zlib library in a product, an acknowledgment is welcome |
| 15 | in the documentation of your product. If for some reason you cannot | 15 | in the documentation of your product. If for some reason you cannot |
| @@ -62,7 +62,7 @@ unsigned short FAR *work; | |||
| 62 | 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; | 62 | 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; |
| 63 | static const unsigned short lext[31] = { /* Length codes 257..285 extra */ | 63 | static const unsigned short lext[31] = { /* Length codes 257..285 extra */ |
| 64 | 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, | 64 | 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, |
| 65 | 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 73, 195}; | 65 | 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 205, 203}; |
| 66 | static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ | 66 | static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ |
| 67 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, | 67 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, |
| 68 | 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, | 68 | 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, |
diff --git a/old/as400/compile.clp b/old/as400/compile.clp deleted file mode 100644 index 8554951..0000000 --- a/old/as400/compile.clp +++ /dev/null | |||
| @@ -1,123 +0,0 @@ | |||
| 1 | /******************************************************************************/ | ||
| 2 | /* */ | ||
| 3 | /* ZLIB */ | ||
| 4 | /* */ | ||
| 5 | /* Compile sources into modules and link them into a service program. */ | ||
| 6 | /* */ | ||
| 7 | /******************************************************************************/ | ||
| 8 | |||
| 9 | PGM | ||
| 10 | |||
| 11 | /* Configuration adjustable parameters. */ | ||
| 12 | |||
| 13 | DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) + | ||
| 14 | VALUE('ZLIB') /* Source library. */ | ||
| 15 | DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(10) + | ||
| 16 | VALUE('SOURCES') /* Source member file. */ | ||
| 17 | DCL VAR(&CTLFILE) TYPE(*CHAR) LEN(10) + | ||
| 18 | VALUE('TOOLS') /* Control member file. */ | ||
| 19 | |||
| 20 | DCL VAR(&MODLIB) TYPE(*CHAR) LEN(10) + | ||
| 21 | VALUE('ZLIB') /* Module library. */ | ||
| 22 | |||
| 23 | DCL VAR(&SRVLIB) TYPE(*CHAR) LEN(10) + | ||
| 24 | VALUE('LGPL') /* Service program library. */ | ||
| 25 | |||
| 26 | DCL VAR(&CFLAGS) TYPE(*CHAR) + | ||
| 27 | VALUE('OPTIMIZE(40)') /* Compile options. */ | ||
| 28 | |||
| 29 | |||
| 30 | /* Working storage. */ | ||
| 31 | |||
| 32 | DCL VAR(&CMDLEN) TYPE(*DEC) LEN(15 5) VALUE(300) /* Command length. */ | ||
| 33 | DCL VAR(&CMD) TYPE(*CHAR) LEN(512) | ||
| 34 | |||
| 35 | |||
| 36 | /* Compile sources into modules. */ | ||
| 37 | |||
| 38 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 39 | '/ADLER32) SRCFILE(' *TCAT + | ||
| 40 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 41 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 42 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 43 | |||
| 44 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 45 | '/COMPRESS) SRCFILE(' *TCAT + | ||
| 46 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 47 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 48 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 49 | |||
| 50 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 51 | '/CRC32) SRCFILE(' *TCAT + | ||
| 52 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 53 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 54 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 55 | |||
| 56 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 57 | '/DEFLATE) SRCFILE(' *TCAT + | ||
| 58 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 59 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 60 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 61 | |||
| 62 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 63 | '/GZIO) SRCFILE(' *TCAT + | ||
| 64 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 65 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 66 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 67 | |||
| 68 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 69 | '/INFBACK) SRCFILE(' *TCAT + | ||
| 70 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 71 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 72 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 73 | |||
| 74 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 75 | '/INFFAST) SRCFILE(' *TCAT + | ||
| 76 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 77 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 78 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 79 | |||
| 80 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 81 | '/INFLATE) SRCFILE(' *TCAT + | ||
| 82 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 83 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 84 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 85 | |||
| 86 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 87 | '/INFTREES) SRCFILE(' *TCAT + | ||
| 88 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 89 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 90 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 91 | |||
| 92 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 93 | '/TREES) SRCFILE(' *TCAT + | ||
| 94 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 95 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 96 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 97 | |||
| 98 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 99 | '/UNCOMPR) SRCFILE(' *TCAT + | ||
| 100 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 101 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 102 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 103 | |||
| 104 | CHGVAR VAR(&CMD) VALUE('CRTCMOD MODULE(' *TCAT &MODLIB *TCAT + | ||
| 105 | '/ZUTIL) SRCFILE(' *TCAT + | ||
| 106 | &SRCLIB *TCAT '/' *TCAT &SRCFILE *TCAT + | ||
| 107 | ') SYSIFCOPT(*IFSIO)' *BCAT &CFLAGS) | ||
| 108 | CALL PGM(QCMDEXC) PARM(&CMD &CMDLEN) | ||
| 109 | |||
| 110 | |||
| 111 | /* Link modules into a service program. */ | ||
| 112 | |||
| 113 | CRTSRVPGM SRVPGM(&SRVLIB/ZLIB) + | ||
| 114 | MODULE(&MODLIB/ADLER32 &MODLIB/COMPRESS + | ||
| 115 | &MODLIB/CRC32 &MODLIB/DEFLATE + | ||
| 116 | &MODLIB/GZIO &MODLIB/INFBACK + | ||
| 117 | &MODLIB/INFFAST &MODLIB/INFLATE + | ||
| 118 | &MODLIB/INFTREES &MODLIB/TREES + | ||
| 119 | &MODLIB/UNCOMPR &MODLIB/ZUTIL) + | ||
| 120 | SRCFILE(&SRCLIB/&CTLFILE) SRCMBR(BNDSRC) + | ||
| 121 | TEXT('ZLIB 1.2.3') TGTRLS(V4R4M0) | ||
| 122 | |||
| 123 | ENDPGM | ||
diff --git a/qnx/package.qpg b/qnx/package.qpg index 2bc63b2..c75c4b3 100644 --- a/qnx/package.qpg +++ b/qnx/package.qpg | |||
| @@ -25,10 +25,10 @@ | |||
| 25 | <QPG:Files> | 25 | <QPG:Files> |
| 26 | <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/> | 26 | <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/> |
| 27 | <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/> | 27 | <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/> |
| 28 | <QPG:Add file="../libz.so.1.2.5" install="/opt/lib/" user="root:bin" permission="644"/> | 28 | <QPG:Add file="../libz.so.1.2.5.1" install="/opt/lib/" user="root:bin" permission="644"/> |
| 29 | <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.2.5"/> | 29 | <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.2.5.1"/> |
| 30 | <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.2.5"/> | 30 | <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.2.5.1"/> |
| 31 | <QPG:Add file="../libz.so.1.2.5" install="/opt/lib/" component="slib"/> | 31 | <QPG:Add file="../libz.so.1.2.5.1" install="/opt/lib/" component="slib"/> |
| 32 | </QPG:Files> | 32 | </QPG:Files> |
| 33 | 33 | ||
| 34 | <QPG:PackageFilter> | 34 | <QPG:PackageFilter> |
| @@ -63,7 +63,7 @@ | |||
| 63 | </QPM:ProductDescription> | 63 | </QPM:ProductDescription> |
| 64 | 64 | ||
| 65 | <QPM:ReleaseDescription> | 65 | <QPM:ReleaseDescription> |
| 66 | <QPM:ReleaseVersion>1.2.5</QPM:ReleaseVersion> | 66 | <QPM:ReleaseVersion>1.2.5.1</QPM:ReleaseVersion> |
| 67 | <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency> | 67 | <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency> |
| 68 | <QPM:ReleaseStability>Stable</QPM:ReleaseStability> | 68 | <QPM:ReleaseStability>Stable</QPM:ReleaseStability> |
| 69 | <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor> | 69 | <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor> |
diff --git a/treebuild.xml b/treebuild.xml index 6b8f542..b966b2b 100644 --- a/treebuild.xml +++ b/treebuild.xml | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | <?xml version="1.0" ?> | 1 | <?xml version="1.0" ?> |
| 2 | <package name="zlib" version="1.2.5"> | 2 | <package name="zlib" version="1.2.5.1"> |
| 3 | <library name="zlib" dlversion="1.2.5" dlname="z"> | 3 | <library name="zlib" dlversion="1.2.5.1" dlname="z"> |
| 4 | <property name="description"> zip compression library </property> | 4 | <property name="description"> zip compression library </property> |
| 5 | <property name="include-target-dir" value="$(@PACKAGE/install-includedir)" /> | 5 | <property name="include-target-dir" value="$(@PACKAGE/install-includedir)" /> |
| 6 | 6 | ||
diff --git a/win32/Makefile.gcc b/win32/Makefile.gcc index 0a33bf6..43825c0 100644 --- a/win32/Makefile.gcc +++ b/win32/Makefile.gcc | |||
| @@ -25,7 +25,7 @@ | |||
| 25 | 25 | ||
| 26 | STATICLIB = libz.a | 26 | STATICLIB = libz.a |
| 27 | SHAREDLIB = zlib1.dll | 27 | SHAREDLIB = zlib1.dll |
| 28 | IMPLIB = libzdll.a | 28 | IMPLIB = libz.dll.a |
| 29 | 29 | ||
| 30 | # | 30 | # |
| 31 | # Set to 1 if shared object needs to be installed | 31 | # Set to 1 if shared object needs to be installed |
| @@ -59,7 +59,7 @@ CP = cp -fp | |||
| 59 | INSTALL = $(CP) | 59 | INSTALL = $(CP) |
| 60 | RM = rm -f | 60 | RM = rm -f |
| 61 | 61 | ||
| 62 | prefix = /usr/local | 62 | prefix ?= /usr/local |
| 63 | exec_prefix = $(prefix) | 63 | exec_prefix = $(prefix) |
| 64 | 64 | ||
| 65 | OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \ | 65 | OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \ |
| @@ -118,7 +118,7 @@ zlibrc.o: win32/zlib1.rc | |||
| 118 | 118 | ||
| 119 | install: zlib.h zconf.h $(STATICLIB) $(IMPLIB) | 119 | install: zlib.h zconf.h $(STATICLIB) $(IMPLIB) |
| 120 | -@mkdir -p $(INCLUDE_PATH) | 120 | -@mkdir -p $(INCLUDE_PATH) |
| 121 | -@mkdir -p $(LIBRARY_PATH) | 121 | -@mkdir -p $(LIBRARY_PATH) $(LIBRARY_PATH)/pkgconfig |
| 122 | -if [ "$(SHARED_MODE)" = "1" ]; then \ | 122 | -if [ "$(SHARED_MODE)" = "1" ]; then \ |
| 123 | mkdir -p $(BINARY_PATH); \ | 123 | mkdir -p $(BINARY_PATH); \ |
| 124 | $(INSTALL) $(SHAREDLIB) $(BINARY_PATH); \ | 124 | $(INSTALL) $(SHAREDLIB) $(BINARY_PATH); \ |
| @@ -127,6 +127,14 @@ install: zlib.h zconf.h $(STATICLIB) $(IMPLIB) | |||
| 127 | -$(INSTALL) zlib.h $(INCLUDE_PATH) | 127 | -$(INSTALL) zlib.h $(INCLUDE_PATH) |
| 128 | -$(INSTALL) zconf.h $(INCLUDE_PATH) | 128 | -$(INSTALL) zconf.h $(INCLUDE_PATH) |
| 129 | -$(INSTALL) $(STATICLIB) $(LIBRARY_PATH) | 129 | -$(INSTALL) $(STATICLIB) $(LIBRARY_PATH) |
| 130 | sed \ | ||
| 131 | -e 's|@prefix@|${prefix}|g' \ | ||
| 132 | -e 's|@exec_prefix@|${exec_prefix}|g' \ | ||
| 133 | -e 's|@libdir@|$(LIBRARY_PATH)|g' \ | ||
| 134 | -e 's|@sharedlibdir@|$(LIBRARY_PATH)|g' \ | ||
| 135 | -e 's|@includedir@|$(INCLUDE_PATH)|g' \ | ||
| 136 | -e 's|@VERSION@|'`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' zlib.h`'|g' \ | ||
| 137 | zlib.pc.in > $(LIBRARY_PATH)/pkgconfig/zlib.pc | ||
| 130 | 138 | ||
| 131 | uninstall: | 139 | uninstall: |
| 132 | -if [ "$(SHARED_MODE)" = "1" ]; then \ | 140 | -if [ "$(SHARED_MODE)" = "1" ]; then \ |
diff --git a/win32/Makefile.msc b/win32/Makefile.msc index fa10a1a..2714b45 100644 --- a/win32/Makefile.msc +++ b/win32/Makefile.msc | |||
| @@ -30,7 +30,7 @@ ARFLAGS = -nologo | |||
| 30 | RCFLAGS = /dWIN32 /r | 30 | RCFLAGS = /dWIN32 /r |
| 31 | 31 | ||
| 32 | OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ | 32 | OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ |
| 33 | gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj | 33 | gzwrite.obj infback.obj inflate.obj inftrees.obj inffast.obj trees.obj uncompr.obj zutil.obj |
| 34 | OBJA = | 34 | OBJA = |
| 35 | 35 | ||
| 36 | 36 | ||
diff --git a/win32/zlib.def b/win32/zlib.def index 03df8bf..d2e09f2 100644 --- a/win32/zlib.def +++ b/win32/zlib.def | |||
| @@ -15,6 +15,7 @@ EXPORTS | |||
| 15 | deflateParams | 15 | deflateParams |
| 16 | deflateTune | 16 | deflateTune |
| 17 | deflateBound | 17 | deflateBound |
| 18 | deflatePending | ||
| 18 | deflatePrime | 19 | deflatePrime |
| 19 | deflateSetHeader | 20 | deflateSetHeader |
| 20 | inflateSetDictionary | 21 | inflateSetDictionary |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* zconf.h -- configuration of the zlib compression library | 1 | /* zconf.h -- configuration of the zlib compression library |
| 2 | * Copyright (C) 1995-2010 Jean-loup Gailly. | 2 | * Copyright (C) 1995-2011 Jean-loup Gailly. |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -15,6 +15,7 @@ | |||
| 15 | * this permanently in zconf.h using "./configure --zprefix". | 15 | * this permanently in zconf.h using "./configure --zprefix". |
| 16 | */ | 16 | */ |
| 17 | #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ | 17 | #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ |
| 18 | # define Z_PREFIX_SET | ||
| 18 | 19 | ||
| 19 | /* all linked symbols */ | 20 | /* all linked symbols */ |
| 20 | # define _dist_code z__dist_code | 21 | # define _dist_code z__dist_code |
| @@ -40,6 +41,7 @@ | |||
| 40 | # define deflateInit2_ z_deflateInit2_ | 41 | # define deflateInit2_ z_deflateInit2_ |
| 41 | # define deflateInit_ z_deflateInit_ | 42 | # define deflateInit_ z_deflateInit_ |
| 42 | # define deflateParams z_deflateParams | 43 | # define deflateParams z_deflateParams |
| 44 | # define deflatePending z_deflatePending | ||
| 43 | # define deflatePrime z_deflatePrime | 45 | # define deflatePrime z_deflatePrime |
| 44 | # define deflateReset z_deflateReset | 46 | # define deflateReset z_deflateReset |
| 45 | # define deflateSetDictionary z_deflateSetDictionary | 47 | # define deflateSetDictionary z_deflateSetDictionary |
| @@ -243,6 +245,14 @@ | |||
| 243 | # endif | 245 | # endif |
| 244 | #endif | 246 | #endif |
| 245 | 247 | ||
| 248 | #ifndef ON /* function prototypes for stdarg */ | ||
| 249 | # if defined(STDC) || defined(Z_HAVE_STDARG_H) | ||
| 250 | # define ON(args) args | ||
| 251 | # else | ||
| 252 | # define ON(args) () | ||
| 253 | # endif | ||
| 254 | #endif | ||
| 255 | |||
| 246 | /* The following definitions for FAR are needed only for MSDOS mixed | 256 | /* The following definitions for FAR are needed only for MSDOS mixed |
| 247 | * model programming (small or medium model with some far allocations). | 257 | * model programming (small or medium model with some far allocations). |
| 248 | * This was tested only with MSC; for other MSDOS compilers you may have | 258 | * This was tested only with MSC; for other MSDOS compilers you may have |
| @@ -360,6 +370,10 @@ typedef uLong FAR uLongf; | |||
| 360 | # define Z_HAVE_UNISTD_H | 370 | # define Z_HAVE_UNISTD_H |
| 361 | #endif | 371 | #endif |
| 362 | 372 | ||
| 373 | #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ | ||
| 374 | # define Z_HAVE_STDARG_H | ||
| 375 | #endif | ||
| 376 | |||
| 363 | #ifdef STDC | 377 | #ifdef STDC |
| 364 | # include <sys/types.h> /* for off_t */ | 378 | # include <sys/types.h> /* for off_t */ |
| 365 | #endif | 379 | #endif |
| @@ -374,7 +388,11 @@ typedef uLong FAR uLongf; | |||
| 374 | # undef _LARGEFILE64_SOURCE | 388 | # undef _LARGEFILE64_SOURCE |
| 375 | #endif | 389 | #endif |
| 376 | 390 | ||
| 377 | #if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) | 391 | #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 |
| 392 | # define Z_LARGE | ||
| 393 | #endif | ||
| 394 | |||
| 395 | #if defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE) | ||
| 378 | # include <unistd.h> /* for SEEK_* and off_t */ | 396 | # include <unistd.h> /* for SEEK_* and off_t */ |
| 379 | # ifdef VMS | 397 | # ifdef VMS |
| 380 | # include <unixio.h> /* for off_t */ | 398 | # include <unixio.h> /* for off_t */ |
diff --git a/zconf.h.cmakein b/zconf.h.cmakein index a2f71b1..4a5d9ea 100644 --- a/zconf.h.cmakein +++ b/zconf.h.cmakein | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* zconf.h -- configuration of the zlib compression library | 1 | /* zconf.h -- configuration of the zlib compression library |
| 2 | * Copyright (C) 1995-2010 Jean-loup Gailly. | 2 | * Copyright (C) 1995-2011 Jean-loup Gailly. |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -17,6 +17,7 @@ | |||
| 17 | * this permanently in zconf.h using "./configure --zprefix". | 17 | * this permanently in zconf.h using "./configure --zprefix". |
| 18 | */ | 18 | */ |
| 19 | #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ | 19 | #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ |
| 20 | # define Z_PREFIX_SET | ||
| 20 | 21 | ||
| 21 | /* all linked symbols */ | 22 | /* all linked symbols */ |
| 22 | # define _dist_code z__dist_code | 23 | # define _dist_code z__dist_code |
| @@ -42,6 +43,7 @@ | |||
| 42 | # define deflateInit2_ z_deflateInit2_ | 43 | # define deflateInit2_ z_deflateInit2_ |
| 43 | # define deflateInit_ z_deflateInit_ | 44 | # define deflateInit_ z_deflateInit_ |
| 44 | # define deflateParams z_deflateParams | 45 | # define deflateParams z_deflateParams |
| 46 | # define deflatePending z_deflatePending | ||
| 45 | # define deflatePrime z_deflatePrime | 47 | # define deflatePrime z_deflatePrime |
| 46 | # define deflateReset z_deflateReset | 48 | # define deflateReset z_deflateReset |
| 47 | # define deflateSetDictionary z_deflateSetDictionary | 49 | # define deflateSetDictionary z_deflateSetDictionary |
| @@ -245,6 +247,14 @@ | |||
| 245 | # endif | 247 | # endif |
| 246 | #endif | 248 | #endif |
| 247 | 249 | ||
| 250 | #ifndef ON /* function prototypes for stdarg */ | ||
| 251 | # if defined(STDC) || defined(Z_HAVE_STDARG_H) | ||
| 252 | # define ON(args) args | ||
| 253 | # else | ||
| 254 | # define ON(args) () | ||
| 255 | # endif | ||
| 256 | #endif | ||
| 257 | |||
| 248 | /* The following definitions for FAR are needed only for MSDOS mixed | 258 | /* The following definitions for FAR are needed only for MSDOS mixed |
| 249 | * model programming (small or medium model with some far allocations). | 259 | * model programming (small or medium model with some far allocations). |
| 250 | * This was tested only with MSC; for other MSDOS compilers you may have | 260 | * This was tested only with MSC; for other MSDOS compilers you may have |
| @@ -362,6 +372,10 @@ typedef uLong FAR uLongf; | |||
| 362 | # define Z_HAVE_UNISTD_H | 372 | # define Z_HAVE_UNISTD_H |
| 363 | #endif | 373 | #endif |
| 364 | 374 | ||
| 375 | #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ | ||
| 376 | # define Z_HAVE_STDARG_H | ||
| 377 | #endif | ||
| 378 | |||
| 365 | #ifdef STDC | 379 | #ifdef STDC |
| 366 | # include <sys/types.h> /* for off_t */ | 380 | # include <sys/types.h> /* for off_t */ |
| 367 | #endif | 381 | #endif |
| @@ -376,7 +390,11 @@ typedef uLong FAR uLongf; | |||
| 376 | # undef _LARGEFILE64_SOURCE | 390 | # undef _LARGEFILE64_SOURCE |
| 377 | #endif | 391 | #endif |
| 378 | 392 | ||
| 379 | #if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) | 393 | #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 |
| 394 | # define Z_LARGE | ||
| 395 | #endif | ||
| 396 | |||
| 397 | #if defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE) | ||
| 380 | # include <unistd.h> /* for SEEK_* and off_t */ | 398 | # include <unistd.h> /* for SEEK_* and off_t */ |
| 381 | # ifdef VMS | 399 | # ifdef VMS |
| 382 | # include <unixio.h> /* for off_t */ | 400 | # include <unixio.h> /* for off_t */ |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* zconf.h -- configuration of the zlib compression library | 1 | /* zconf.h -- configuration of the zlib compression library |
| 2 | * Copyright (C) 1995-2010 Jean-loup Gailly. | 2 | * Copyright (C) 1995-2011 Jean-loup Gailly. |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -15,6 +15,7 @@ | |||
| 15 | * this permanently in zconf.h using "./configure --zprefix". | 15 | * this permanently in zconf.h using "./configure --zprefix". |
| 16 | */ | 16 | */ |
| 17 | #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ | 17 | #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ |
| 18 | # define Z_PREFIX_SET | ||
| 18 | 19 | ||
| 19 | /* all linked symbols */ | 20 | /* all linked symbols */ |
| 20 | # define _dist_code z__dist_code | 21 | # define _dist_code z__dist_code |
| @@ -40,6 +41,7 @@ | |||
| 40 | # define deflateInit2_ z_deflateInit2_ | 41 | # define deflateInit2_ z_deflateInit2_ |
| 41 | # define deflateInit_ z_deflateInit_ | 42 | # define deflateInit_ z_deflateInit_ |
| 42 | # define deflateParams z_deflateParams | 43 | # define deflateParams z_deflateParams |
| 44 | # define deflatePending z_deflatePending | ||
| 43 | # define deflatePrime z_deflatePrime | 45 | # define deflatePrime z_deflatePrime |
| 44 | # define deflateReset z_deflateReset | 46 | # define deflateReset z_deflateReset |
| 45 | # define deflateSetDictionary z_deflateSetDictionary | 47 | # define deflateSetDictionary z_deflateSetDictionary |
| @@ -243,6 +245,14 @@ | |||
| 243 | # endif | 245 | # endif |
| 244 | #endif | 246 | #endif |
| 245 | 247 | ||
| 248 | #ifndef ON /* function prototypes for stdarg */ | ||
| 249 | # if defined(STDC) || defined(Z_HAVE_STDARG_H) | ||
| 250 | # define ON(args) args | ||
| 251 | # else | ||
| 252 | # define ON(args) () | ||
| 253 | # endif | ||
| 254 | #endif | ||
| 255 | |||
| 246 | /* The following definitions for FAR are needed only for MSDOS mixed | 256 | /* The following definitions for FAR are needed only for MSDOS mixed |
| 247 | * model programming (small or medium model with some far allocations). | 257 | * model programming (small or medium model with some far allocations). |
| 248 | * This was tested only with MSC; for other MSDOS compilers you may have | 258 | * This was tested only with MSC; for other MSDOS compilers you may have |
| @@ -360,6 +370,10 @@ typedef uLong FAR uLongf; | |||
| 360 | # define Z_HAVE_UNISTD_H | 370 | # define Z_HAVE_UNISTD_H |
| 361 | #endif | 371 | #endif |
| 362 | 372 | ||
| 373 | #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ | ||
| 374 | # define Z_HAVE_STDARG_H | ||
| 375 | #endif | ||
| 376 | |||
| 363 | #ifdef STDC | 377 | #ifdef STDC |
| 364 | # include <sys/types.h> /* for off_t */ | 378 | # include <sys/types.h> /* for off_t */ |
| 365 | #endif | 379 | #endif |
| @@ -374,7 +388,11 @@ typedef uLong FAR uLongf; | |||
| 374 | # undef _LARGEFILE64_SOURCE | 388 | # undef _LARGEFILE64_SOURCE |
| 375 | #endif | 389 | #endif |
| 376 | 390 | ||
| 377 | #if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) | 391 | #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 |
| 392 | # define Z_LARGE | ||
| 393 | #endif | ||
| 394 | |||
| 395 | #if defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE) | ||
| 378 | # include <unistd.h> /* for SEEK_* and off_t */ | 396 | # include <unistd.h> /* for SEEK_* and off_t */ |
| 379 | # ifdef VMS | 397 | # ifdef VMS |
| 380 | # include <unixio.h> /* for off_t */ | 398 | # include <unixio.h> /* for off_t */ |
| @@ -1,4 +1,4 @@ | |||
| 1 | .TH ZLIB 3 "19 Apr 2010" | 1 | .TH ZLIB 3 "10 Sep 2011" |
| 2 | .SH NAME | 2 | .SH NAME |
| 3 | zlib \- compression/decompression library | 3 | zlib \- compression/decompression library |
| 4 | .SH SYNOPSIS | 4 | .SH SYNOPSIS |
| @@ -95,11 +95,11 @@ http://zlib.net/ | |||
| 95 | The data format used by the zlib library is described by RFC | 95 | The data format used by the zlib library is described by RFC |
| 96 | (Request for Comments) 1950 to 1952 in the files: | 96 | (Request for Comments) 1950 to 1952 in the files: |
| 97 | .IP | 97 | .IP |
| 98 | http://www.ietf.org/rfc/rfc1950.txt (for the zlib header and trailer format) | 98 | http://tools.ietf.org/html/rfc1950 (for the zlib header and trailer format) |
| 99 | .br | 99 | .br |
| 100 | http://www.ietf.org/rfc/rfc1951.txt (for the deflate compressed data format) | 100 | http://tools.ietf.org/html/rfc1951 (for the deflate compressed data format) |
| 101 | .br | 101 | .br |
| 102 | http://www.ietf.org/rfc/rfc1952.txt (for the gzip header and trailer format) | 102 | http://tools.ietf.org/html/rfc1952 (for the gzip header and trailer format) |
| 103 | .LP | 103 | .LP |
| 104 | Mark Nelson wrote an article about | 104 | Mark Nelson wrote an article about |
| 105 | .I zlib | 105 | .I zlib |
| @@ -125,8 +125,8 @@ before asking for help. | |||
| 125 | Send questions and/or comments to zlib@gzip.org, | 125 | Send questions and/or comments to zlib@gzip.org, |
| 126 | or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). | 126 | or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). |
| 127 | .SH AUTHORS | 127 | .SH AUTHORS |
| 128 | Version 1.2.5 | 128 | Version 1.2.5.1 |
| 129 | Copyright (C) 1995-2010 Jean-loup Gailly (jloup@gzip.org) | 129 | Copyright (C) 1995-2011 Jean-loup Gailly (jloup@gzip.org) |
| 130 | and Mark Adler (madler@alumni.caltech.edu). | 130 | and Mark Adler (madler@alumni.caltech.edu). |
| 131 | .LP | 131 | .LP |
| 132 | This software is provided "as-is," | 132 | This software is provided "as-is," |
| Binary files differ | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* zlib.h -- interface of the 'zlib' general purpose compression library | 1 | /* zlib.h -- interface of the 'zlib' general purpose compression library |
| 2 | version 1.2.5, April 19th, 2010 | 2 | version 1.2.5.1, September 10th, 2011 |
| 3 | 3 | ||
| 4 | Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler | 4 | Copyright (C) 1995-2011 Jean-loup Gailly and Mark Adler |
| 5 | 5 | ||
| 6 | This software is provided 'as-is', without any express or implied | 6 | This software is provided 'as-is', without any express or implied |
| 7 | warranty. In no event will the authors be held liable for any damages | 7 | warranty. In no event will the authors be held liable for any damages |
| @@ -24,8 +24,8 @@ | |||
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | The data format used by the zlib library is described by RFCs (Request for | 26 | The data format used by the zlib library is described by RFCs (Request for |
| 27 | Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt | 27 | Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 |
| 28 | (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). | 28 | (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). |
| 29 | */ | 29 | */ |
| 30 | 30 | ||
| 31 | #ifndef ZLIB_H | 31 | #ifndef ZLIB_H |
| @@ -37,12 +37,12 @@ | |||
| 37 | extern "C" { | 37 | extern "C" { |
| 38 | #endif | 38 | #endif |
| 39 | 39 | ||
| 40 | #define ZLIB_VERSION "1.2.5" | 40 | #define ZLIB_VERSION "1.2.5.1" |
| 41 | #define ZLIB_VERNUM 0x1250 | 41 | #define ZLIB_VERNUM 0x1251 |
| 42 | #define ZLIB_VER_MAJOR 1 | 42 | #define ZLIB_VER_MAJOR 1 |
| 43 | #define ZLIB_VER_MINOR 2 | 43 | #define ZLIB_VER_MINOR 2 |
| 44 | #define ZLIB_VER_REVISION 5 | 44 | #define ZLIB_VER_REVISION 5 |
| 45 | #define ZLIB_VER_SUBREVISION 0 | 45 | #define ZLIB_VER_SUBREVISION 1 |
| 46 | 46 | ||
| 47 | /* | 47 | /* |
| 48 | The 'zlib' compression library provides in-memory compression and | 48 | The 'zlib' compression library provides in-memory compression and |
| @@ -85,11 +85,11 @@ struct internal_state; | |||
| 85 | typedef struct z_stream_s { | 85 | typedef struct z_stream_s { |
| 86 | Bytef *next_in; /* next input byte */ | 86 | Bytef *next_in; /* next input byte */ |
| 87 | uInt avail_in; /* number of bytes available at next_in */ | 87 | uInt avail_in; /* number of bytes available at next_in */ |
| 88 | uLong total_in; /* total nb of input bytes read so far */ | 88 | uLong total_in; /* total number of input bytes read so far */ |
| 89 | 89 | ||
| 90 | Bytef *next_out; /* next output byte should be put there */ | 90 | Bytef *next_out; /* next output byte should be put there */ |
| 91 | uInt avail_out; /* remaining free space at next_out */ | 91 | uInt avail_out; /* remaining free space at next_out */ |
| 92 | uLong total_out; /* total nb of bytes output so far */ | 92 | uLong total_out; /* total number of bytes output so far */ |
| 93 | 93 | ||
| 94 | char *msg; /* last error message, NULL if no error */ | 94 | char *msg; /* last error message, NULL if no error */ |
| 95 | struct internal_state FAR *state; /* not visible by applications */ | 95 | struct internal_state FAR *state; /* not visible by applications */ |
| @@ -327,8 +327,9 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); | |||
| 327 | 327 | ||
| 328 | Z_FINISH can be used immediately after deflateInit if all the compression | 328 | Z_FINISH can be used immediately after deflateInit if all the compression |
| 329 | is to be done in a single step. In this case, avail_out must be at least the | 329 | is to be done in a single step. In this case, avail_out must be at least the |
| 330 | value returned by deflateBound (see below). If deflate does not return | 330 | value returned by deflateBound (see below). Then deflate is guaranteed to |
| 331 | Z_STREAM_END, then it must be called again as described above. | 331 | return Z_STREAM_END. If not enough output space is provided, deflate will |
| 332 | not return Z_STREAM_END, and it must be called again as described above. | ||
| 332 | 333 | ||
| 333 | deflate() sets strm->adler to the adler32 checksum of all input read | 334 | deflate() sets strm->adler to the adler32 checksum of all input read |
| 334 | so far (that is, total_in bytes). | 335 | so far (that is, total_in bytes). |
| @@ -688,8 +689,27 @@ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, | |||
| 688 | deflation of sourceLen bytes. It must be called after deflateInit() or | 689 | deflation of sourceLen bytes. It must be called after deflateInit() or |
| 689 | deflateInit2(), and after deflateSetHeader(), if used. This would be used | 690 | deflateInit2(), and after deflateSetHeader(), if used. This would be used |
| 690 | to allocate an output buffer for deflation in a single pass, and so would be | 691 | to allocate an output buffer for deflation in a single pass, and so would be |
| 691 | called before deflate(). | 692 | called before deflate(). If that first deflate() call is provided the |
| 692 | */ | 693 | sourceLen input bytes, an output buffer allocated to the size returned by |
| 694 | deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed | ||
| 695 | to return Z_STREAM_END. Note that it is possible for the compressed size to | ||
| 696 | be larger than the value returned by deflateBound() if flush options other | ||
| 697 | than Z_FINISH or Z_NO_FLUSH are used. | ||
| 698 | */ | ||
| 699 | |||
| 700 | ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, | ||
| 701 | unsigned *pending, | ||
| 702 | int *bits)); | ||
| 703 | /* | ||
| 704 | deflatePending() returns the number of bytes and bits of output that have | ||
| 705 | been generated, but not yet provided in the available output. The bytes not | ||
| 706 | provided would be due to the available output space having being consumed. | ||
| 707 | The number of bits of output not provided are between 0 and 7, where they | ||
| 708 | await more bits to join them in order to fill out a full byte. | ||
| 709 | |||
| 710 | deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source | ||
| 711 | stream state was inconsistent. | ||
| 712 | */ | ||
| 693 | 713 | ||
| 694 | ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, | 714 | ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, |
| 695 | int bits, | 715 | int bits, |
| @@ -805,17 +825,21 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, | |||
| 805 | 825 | ||
| 806 | ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); | 826 | ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); |
| 807 | /* | 827 | /* |
| 808 | Skips invalid compressed data until a full flush point (see above the | 828 | Skips invalid compressed data until a possible full flush point (see above |
| 809 | description of deflate with Z_FULL_FLUSH) can be found, or until all | 829 | for the description of deflate with Z_FULL_FLUSH) can be found, or until all |
| 810 | available input is skipped. No output is provided. | 830 | available input is skipped. No output is provided. |
| 811 | 831 | ||
| 812 | inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR | 832 | inflateSync searches for a 00 00 FF FF pattern in the compressed data. |
| 813 | if no more input was provided, Z_DATA_ERROR if no flush point has been | 833 | All full flush points have this pattern, but not all occurences of this |
| 814 | found, or Z_STREAM_ERROR if the stream structure was inconsistent. In the | 834 | pattern are full flush points. |
| 815 | success case, the application may save the current current value of total_in | 835 | |
| 816 | which indicates where valid compressed data was found. In the error case, | 836 | inflateSync returns Z_OK if a possible full flush point has been found, |
| 817 | the application may repeatedly call inflateSync, providing more input each | 837 | Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point |
| 818 | time, until success or end of the input data. | 838 | has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. |
| 839 | In the success case, the application may save the current current value of | ||
| 840 | total_in which indicates where valid compressed data was found. In the | ||
| 841 | error case, the application may repeatedly call inflateSync, providing more | ||
| 842 | input each time, until success or end of the input data. | ||
| 819 | */ | 843 | */ |
| 820 | 844 | ||
| 821 | ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, | 845 | ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, |
| @@ -962,7 +986,7 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, | |||
| 962 | See inflateBack() for the usage of these routines. | 986 | See inflateBack() for the usage of these routines. |
| 963 | 987 | ||
| 964 | inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of | 988 | inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of |
| 965 | the paramaters are invalid, Z_MEM_ERROR if the internal state could not be | 989 | the parameters are invalid, Z_MEM_ERROR if the internal state could not be |
| 966 | allocated, or Z_VERSION_ERROR if the version of the library does not match | 990 | allocated, or Z_VERSION_ERROR if the version of the library does not match |
| 967 | the version of the header file. | 991 | the version of the header file. |
| 968 | */ | 992 | */ |
| @@ -1256,7 +1280,7 @@ ZEXTERN int ZEXPORT gzwrite OF((gzFile file, | |||
| 1256 | error. | 1280 | error. |
| 1257 | */ | 1281 | */ |
| 1258 | 1282 | ||
| 1259 | ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); | 1283 | ZEXTERN int ZEXPORTVA gzprintf ON((gzFile file, const char *format, ...)); |
| 1260 | /* | 1284 | /* |
| 1261 | Converts, formats, and writes the arguments to the compressed file under | 1285 | Converts, formats, and writes the arguments to the compressed file under |
| 1262 | control of the format string, as in fprintf. gzprintf returns the number of | 1286 | control of the format string, as in fprintf. gzprintf returns the number of |
| @@ -1492,7 +1516,9 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, | |||
| 1492 | Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 | 1516 | Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 |
| 1493 | and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for | 1517 | and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for |
| 1494 | each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of | 1518 | each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of |
| 1495 | seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. | 1519 | seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note |
| 1520 | that the z_off_t type (like off_t) is a signed integer. If len2 is | ||
| 1521 | negative, the result has no meaning or utility. | ||
| 1496 | */ | 1522 | */ |
| 1497 | 1523 | ||
| 1498 | ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); | 1524 | ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); |
| @@ -1544,17 +1570,18 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, | |||
| 1544 | const char *version, | 1570 | const char *version, |
| 1545 | int stream_size)); | 1571 | int stream_size)); |
| 1546 | #define deflateInit(strm, level) \ | 1572 | #define deflateInit(strm, level) \ |
| 1547 | deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) | 1573 | deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) |
| 1548 | #define inflateInit(strm) \ | 1574 | #define inflateInit(strm) \ |
| 1549 | inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) | 1575 | inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) |
| 1550 | #define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ | 1576 | #define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ |
| 1551 | deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ | 1577 | deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ |
| 1552 | (strategy), ZLIB_VERSION, sizeof(z_stream)) | 1578 | (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) |
| 1553 | #define inflateInit2(strm, windowBits) \ | 1579 | #define inflateInit2(strm, windowBits) \ |
| 1554 | inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) | 1580 | inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ |
| 1581 | (int)sizeof(z_stream)) | ||
| 1555 | #define inflateBackInit(strm, windowBits, window) \ | 1582 | #define inflateBackInit(strm, windowBits, window) \ |
| 1556 | inflateBackInit_((strm), (windowBits), (window), \ | 1583 | inflateBackInit_((strm), (windowBits), (window), \ |
| 1557 | ZLIB_VERSION, sizeof(z_stream)) | 1584 | ZLIB_VERSION, (int)sizeof(z_stream)) |
| 1558 | 1585 | ||
| 1559 | /* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or | 1586 | /* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or |
| 1560 | * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if | 1587 | * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if |
| @@ -1572,13 +1599,22 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, | |||
| 1572 | #endif | 1599 | #endif |
| 1573 | 1600 | ||
| 1574 | #if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0 | 1601 | #if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0 |
| 1575 | # define gzopen gzopen64 | 1602 | # ifdef Z_PREFIX_SET |
| 1576 | # define gzseek gzseek64 | 1603 | # define z_gzopen z_gzopen64 |
| 1577 | # define gztell gztell64 | 1604 | # define z_gzseek z_gzseek64 |
| 1578 | # define gzoffset gzoffset64 | 1605 | # define z_gztell z_gztell64 |
| 1579 | # define adler32_combine adler32_combine64 | 1606 | # define z_gzoffset z_gzoffset64 |
| 1580 | # define crc32_combine crc32_combine64 | 1607 | # define z_adler32_combine z_adler32_combine64 |
| 1581 | # ifdef _LARGEFILE64_SOURCE | 1608 | # define z_crc32_combine z_crc32_combine64 |
| 1609 | # else | ||
| 1610 | # define gzopen gzopen64 | ||
| 1611 | # define gzseek gzseek64 | ||
| 1612 | # define gztell gztell64 | ||
| 1613 | # define gzoffset gzoffset64 | ||
| 1614 | # define adler32_combine adler32_combine64 | ||
| 1615 | # define crc32_combine crc32_combine64 | ||
| 1616 | # endif | ||
| 1617 | # ifndef _LARGEFILE64_SOURCE | ||
| 1582 | ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); | 1618 | ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); |
| 1583 | ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); | 1619 | ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); |
| 1584 | ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); | 1620 | ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); |
| @@ -66,3 +66,7 @@ ZLIB_1.2.3.5 { | |||
| 66 | gzclose_r; | 66 | gzclose_r; |
| 67 | gzclose_w; | 67 | gzclose_w; |
| 68 | } ZLIB_1.2.3.4; | 68 | } ZLIB_1.2.3.4; |
| 69 | |||
| 70 | ZLIB_1.2.5.1 { | ||
| 71 | deflatePending; | ||
| 72 | } ZLIB_1.2.5; | ||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* zutil.c -- target dependent utility functions for the compression library | 1 | /* zutil.c -- target dependent utility functions for the compression library |
| 2 | * Copyright (C) 1995-2005, 2010 Jean-loup Gailly. | 2 | * Copyright (C) 1995-2005, 2010, 2011 Jean-loup Gailly. |
| 3 | * For conditions of distribution and use, see copyright notice in zlib.h | 3 | * For conditions of distribution and use, see copyright notice in zlib.h |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| @@ -85,7 +85,7 @@ uLong ZEXPORT zlibCompileFlags() | |||
| 85 | #ifdef FASTEST | 85 | #ifdef FASTEST |
| 86 | flags += 1L << 21; | 86 | flags += 1L << 21; |
| 87 | #endif | 87 | #endif |
| 88 | #ifdef STDC | 88 | #if defined(STDC) || defined(Z_HAVE_STDARG_H) |
| 89 | # ifdef NO_vsnprintf | 89 | # ifdef NO_vsnprintf |
| 90 | flags += 1L << 25; | 90 | flags += 1L << 25; |
| 91 | # ifdef HAS_vsprintf_void | 91 | # ifdef HAS_vsprintf_void |
