diff options
author | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:19:21 -0700 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:19:21 -0700 |
commit | b8c9ecb0765fc39423c07613d909c5193378bdfd (patch) | |
tree | c2a2964d00dcfee6c7426ffcdf8e8060727bc2bf | |
parent | 6759211ad8a5006689216a86c3267bb503bfccc1 (diff) | |
download | zlib-b8c9ecb0765fc39423c07613d909c5193378bdfd.tar.gz zlib-b8c9ecb0765fc39423c07613d909c5193378bdfd.tar.bz2 zlib-b8c9ecb0765fc39423c07613d909c5193378bdfd.zip |
zlib 1.0.9v1.0.9
-rw-r--r-- | ChangeLog | 24 | ||||
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | Makefile.in | 12 | ||||
-rw-r--r-- | README | 38 | ||||
-rw-r--r-- | adler32.c | 2 | ||||
-rw-r--r-- | compress.c | 4 | ||||
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | contrib/asm386/gvmat32.asm | 696 | ||||
-rw-r--r-- | contrib/asm386/gvmat32c.c | 63 | ||||
-rw-r--r-- | contrib/asm386/zlibvc.dsp | 612 | ||||
-rw-r--r-- | contrib/asm386/zlibvc.dsw | 29 | ||||
-rw-r--r-- | contrib/asm386/zlibvc.mak | 781 | ||||
-rw-r--r-- | crc32.c | 4 | ||||
-rw-r--r-- | deflate.c | 36 | ||||
-rw-r--r-- | example.c | 17 | ||||
-rw-r--r-- | gzio.c | 92 | ||||
-rw-r--r-- | infblock.c | 40 | ||||
-rw-r--r-- | inflate.c | 32 | ||||
-rw-r--r-- | inftrees.c | 161 | ||||
-rw-r--r-- | inftrees.h | 23 | ||||
-rw-r--r-- | infutil.h | 3 | ||||
-rw-r--r-- | minigzip.c | 6 | ||||
-rw-r--r-- | msdos/zlib.def | 5 | ||||
-rw-r--r-- | msdos/zlib.rc | 6 | ||||
-rw-r--r-- | nt/zlib.dnt | 3 | ||||
-rw-r--r-- | test.c | 2 | ||||
-rw-r--r-- | uncompr.c | 2 | ||||
-rw-r--r-- | zconf.h | 44 | ||||
-rw-r--r-- | zlib.3 | 6 | ||||
-rw-r--r-- | zlib.h | 152 | ||||
-rw-r--r-- | ztest28975.c | 1 | ||||
-rw-r--r-- | zutil.c | 4 | ||||
-rw-r--r-- | zutil.h | 2 |
33 files changed, 1460 insertions, 1465 deletions
@@ -1,6 +1,30 @@ | |||
1 | 1 | ||
2 | ChangeLog file for zlib | 2 | ChangeLog file for zlib |
3 | 3 | ||
4 | Changes in 1.0.9 (17 Feb 1998) | ||
5 | - added gzputs and gzgets functions | ||
6 | - do not clear eof flag in gzseek (Mark Diekhans) | ||
7 | - fix gzseek for files in transparent mode (Mark Diekhans) | ||
8 | - do not assume that vsprintf returns the number of bytes written (Jens Krinke) | ||
9 | - replace EXPORT with ZEXPORT to avoid conflict with other programs | ||
10 | - added compress2 in zconf.h, zlib.def, zlib.dnt | ||
11 | - new asm code from Gilles Vollant in contrib/asm386 | ||
12 | - simplify the inflate code (Mark): | ||
13 | . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new() | ||
14 | . ZALLOC the length list in inflate_trees_fixed() instead of using stack | ||
15 | . ZALLOC the value area for huft_build() instead of using stack | ||
16 | . Simplify Z_FINISH check in inflate() | ||
17 | |||
18 | - Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8 | ||
19 | - in inftrees.c, avoid cc -O bug on HP (Farshid Elahi) | ||
20 | - in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with | ||
21 | the declaration of FAR (Gilles VOllant) | ||
22 | - install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann) | ||
23 | - read_buf buf parameter of type Bytef* instead of charf* | ||
24 | - zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout) | ||
25 | - do not redeclare unlink in minigzip.c for WIN32 (John Bowler) | ||
26 | - fix check for presence of directories in "make install" (Ian Willis) | ||
27 | |||
4 | Changes in 1.0.8 (27 Jan 1998) | 28 | Changes in 1.0.8 (27 Jan 1998) |
5 | - fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) | 29 | - fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) |
6 | - fix gzgetc and gzputc for big endian systems (Markus Oberhumer) | 30 | - fix gzgetc and gzputc for big endian systems (Markus Oberhumer) |
@@ -23,7 +23,7 @@ CFLAGS=-O | |||
23 | LDFLAGS=-L. -lz | 23 | LDFLAGS=-L. -lz |
24 | LDSHARED=$(CC) | 24 | LDSHARED=$(CC) |
25 | 25 | ||
26 | VER=1.0.8 | 26 | VER=1.0.9 |
27 | LIBS=libz.a | 27 | LIBS=libz.a |
28 | SHAREDLIB=libz.so | 28 | SHAREDLIB=libz.so |
29 | 29 | ||
@@ -44,7 +44,7 @@ DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] *.[ch] descrip.mms \ | |||
44 | algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \ | 44 | algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \ |
45 | nt/Makefile.nt nt/zlib.dnt contrib/README.contrib contrib/*.txt \ | 45 | nt/Makefile.nt nt/zlib.dnt contrib/README.contrib contrib/*.txt \ |
46 | contrib/asm386/*.asm contrib/asm386/*.c \ | 46 | contrib/asm386/*.asm contrib/asm386/*.c \ |
47 | contrib/asm386/*.bat contrib/asm386/*.mak contrib/iostream/*.cpp \ | 47 | contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/iostream/*.cpp \ |
48 | contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \ | 48 | contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \ |
49 | contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 | 49 | contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 |
50 | 50 | ||
@@ -77,12 +77,12 @@ minigzip: minigzip.o $(LIBS) | |||
77 | $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) | 77 | $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) |
78 | 78 | ||
79 | install: $(LIBS) | 79 | install: $(LIBS) |
80 | -@if [ ! $(prefix)/include ]; then mkdir $(prefix)/include; fi | 80 | -@if [ ! -d $(prefix)/include ]; then mkdir $(prefix)/include; fi |
81 | -@if [ ! $(exec_prefix)/lib ]; then mkdir $(exec_prefix)/lib; fi | 81 | -@if [ ! -d $(exec_prefix)/lib ]; then mkdir $(exec_prefix)/lib; fi |
82 | cp zlib.h zconf.h $(prefix)/include | 82 | cp zlib.h zconf.h $(prefix)/include |
83 | chmod 644 $(prefix)/include/zlib.h $(prefix)/include/zconf.h | 83 | chmod 644 $(prefix)/include/zlib.h $(prefix)/include/zconf.h |
84 | cp $(LIBS) $(exec_prefix)/lib | 84 | cp $(LIBS) $(exec_prefix)/lib |
85 | cd $(exec_prefix)/lib; chmod 644 $(LIBS) | 85 | cd $(exec_prefix)/lib; chmod 755 $(LIBS) |
86 | -@(cd $(exec_prefix)/lib; $(RANLIB) libz.a || true) >/dev/null 2>&1 | 86 | -@(cd $(exec_prefix)/lib; $(RANLIB) libz.a || true) >/dev/null 2>&1 |
87 | cd $(exec_prefix)/lib; if test -f $(SHAREDLIB).$(VER); then \ | 87 | cd $(exec_prefix)/lib; if test -f $(SHAREDLIB).$(VER); then \ |
88 | rm -f $(SHAREDLIB) $(SHAREDLIB).1; \ | 88 | rm -f $(SHAREDLIB) $(SHAREDLIB).1; \ |
@@ -112,12 +112,14 @@ distclean: clean | |||
112 | 112 | ||
113 | zip: | 113 | zip: |
114 | mv Makefile Makefile~; cp -p Makefile.in Makefile | 114 | mv Makefile Makefile~; cp -p Makefile.in Makefile |
115 | rm -f test.c ztest*.c | ||
115 | v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | 116 | v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ |
116 | zip -ul9 zlib$$v $(DISTFILES) | 117 | zip -ul9 zlib$$v $(DISTFILES) |
117 | mv Makefile~ Makefile | 118 | mv Makefile~ Makefile |
118 | 119 | ||
119 | dist: | 120 | dist: |
120 | mv Makefile Makefile~; cp -p Makefile.in Makefile | 121 | mv Makefile Makefile~; cp -p Makefile.in Makefile |
122 | rm -f test.c ztest*.c | ||
121 | d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | 123 | d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ |
122 | rm -f $$d.tar.gz; \ | 124 | rm -f $$d.tar.gz; \ |
123 | if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \ | 125 | if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \ |
diff --git a/Makefile.in b/Makefile.in index 0de616c..f6c3ca7 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -23,7 +23,7 @@ CFLAGS=-O | |||
23 | LDFLAGS=-L. -lz | 23 | LDFLAGS=-L. -lz |
24 | LDSHARED=$(CC) | 24 | LDSHARED=$(CC) |
25 | 25 | ||
26 | VER=1.0.8 | 26 | VER=1.0.9 |
27 | LIBS=libz.a | 27 | LIBS=libz.a |
28 | SHAREDLIB=libz.so | 28 | SHAREDLIB=libz.so |
29 | 29 | ||
@@ -44,7 +44,7 @@ DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] *.[ch] descrip.mms \ | |||
44 | algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \ | 44 | algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \ |
45 | nt/Makefile.nt nt/zlib.dnt contrib/README.contrib contrib/*.txt \ | 45 | nt/Makefile.nt nt/zlib.dnt contrib/README.contrib contrib/*.txt \ |
46 | contrib/asm386/*.asm contrib/asm386/*.c \ | 46 | contrib/asm386/*.asm contrib/asm386/*.c \ |
47 | contrib/asm386/*.bat contrib/asm386/*.mak contrib/iostream/*.cpp \ | 47 | contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/iostream/*.cpp \ |
48 | contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \ | 48 | contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \ |
49 | contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 | 49 | contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 |
50 | 50 | ||
@@ -77,12 +77,12 @@ minigzip: minigzip.o $(LIBS) | |||
77 | $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) | 77 | $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) |
78 | 78 | ||
79 | install: $(LIBS) | 79 | install: $(LIBS) |
80 | -@if [ ! $(prefix)/include ]; then mkdir $(prefix)/include; fi | 80 | -@if [ ! -d $(prefix)/include ]; then mkdir $(prefix)/include; fi |
81 | -@if [ ! $(exec_prefix)/lib ]; then mkdir $(exec_prefix)/lib; fi | 81 | -@if [ ! -d $(exec_prefix)/lib ]; then mkdir $(exec_prefix)/lib; fi |
82 | cp zlib.h zconf.h $(prefix)/include | 82 | cp zlib.h zconf.h $(prefix)/include |
83 | chmod 644 $(prefix)/include/zlib.h $(prefix)/include/zconf.h | 83 | chmod 644 $(prefix)/include/zlib.h $(prefix)/include/zconf.h |
84 | cp $(LIBS) $(exec_prefix)/lib | 84 | cp $(LIBS) $(exec_prefix)/lib |
85 | cd $(exec_prefix)/lib; chmod 644 $(LIBS) | 85 | cd $(exec_prefix)/lib; chmod 755 $(LIBS) |
86 | -@(cd $(exec_prefix)/lib; $(RANLIB) libz.a || true) >/dev/null 2>&1 | 86 | -@(cd $(exec_prefix)/lib; $(RANLIB) libz.a || true) >/dev/null 2>&1 |
87 | cd $(exec_prefix)/lib; if test -f $(SHAREDLIB).$(VER); then \ | 87 | cd $(exec_prefix)/lib; if test -f $(SHAREDLIB).$(VER); then \ |
88 | rm -f $(SHAREDLIB) $(SHAREDLIB).1; \ | 88 | rm -f $(SHAREDLIB) $(SHAREDLIB).1; \ |
@@ -112,12 +112,14 @@ distclean: clean | |||
112 | 112 | ||
113 | zip: | 113 | zip: |
114 | mv Makefile Makefile~; cp -p Makefile.in Makefile | 114 | mv Makefile Makefile~; cp -p Makefile.in Makefile |
115 | rm -f test.c ztest*.c | ||
115 | v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | 116 | v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ |
116 | zip -ul9 zlib$$v $(DISTFILES) | 117 | zip -ul9 zlib$$v $(DISTFILES) |
117 | mv Makefile~ Makefile | 118 | mv Makefile~ Makefile |
118 | 119 | ||
119 | dist: | 120 | dist: |
120 | mv Makefile Makefile~; cp -p Makefile.in Makefile | 121 | mv Makefile Makefile~; cp -p Makefile.in Makefile |
122 | rm -f test.c ztest*.c | ||
121 | d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | 123 | d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ |
122 | rm -f $$d.tar.gz; \ | 124 | rm -f $$d.tar.gz; \ |
123 | if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \ | 125 | if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \ |
@@ -1,4 +1,4 @@ | |||
1 | zlib 1.0.8 is a general purpose data compression library. All the code | 1 | zlib 1.0.9 is a general purpose data compression library. All the code |
2 | is thread safe. The data format used by the zlib library | 2 | is thread safe. The data format used by the zlib library |
3 | is described by RFCs (Request for Comments) 1950 to 1952 in the files | 3 | is described by RFCs (Request for Comments) 1950 to 1952 in the files |
4 | ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate | 4 | ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate |
@@ -25,18 +25,22 @@ Mark Nelson wrote an article about zlib for the Jan. 1997 issue of | |||
25 | Dr. Dobb's Journal; a copy of the article is available in | 25 | Dr. Dobb's Journal; a copy of the article is available in |
26 | http://web2.airmail.net/markn/articles/zlibtool/zlibtool.htm | 26 | http://web2.airmail.net/markn/articles/zlibtool/zlibtool.htm |
27 | 27 | ||
28 | The changes made in version 1.0.8 are documented in the file ChangeLog. | 28 | The changes made in version 1.0.9 are documented in the file ChangeLog. |
29 | The main changes since 1.0.7 are: | 29 | The main changes since 1.0.8 are: |
30 | |||
31 | - added gzputs and gzgets functions | ||
32 | - do not clear eof flag in gzseek (Mark Diekhans) | ||
33 | - fix gzseek for files in transparent mode (Mark Diekhans) | ||
34 | - do not assume that vsprintf returns the number of bytes written (Jens Krinke) | ||
35 | - replace EXPORT with ZEXPORT to avoid conflict with other programs | ||
36 | - added compress2 in zconf.h, zlib.def, zlib.dnt | ||
37 | - new asm code from Gilles Vollant in contrib/asm386 | ||
38 | - simplify the inflate code (Mark): | ||
39 | . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new() | ||
40 | . ZALLOC the length list in inflate_trees_fixed() instead of using stack | ||
41 | . ZALLOC the value area for huft_build() instead of using stack | ||
42 | . Simplify Z_FINISH check in inflate() | ||
30 | 43 | ||
31 | - fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) | ||
32 | - fix gzgetc and gzputc for big endian systems (Markus Oberhumer) | ||
33 | - added compress2() to allow setting the compression level | ||
34 | - include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong) | ||
35 | - use constant arrays for the static trees in trees.c instead of computing | ||
36 | them at run time (thanks to Ken Raeburn for this suggestion). To create | ||
37 | trees.h, compile with GEN_TREES_H and run "make test". | ||
38 | - check return code of example in "make test" and display result | ||
39 | - pass minigzip command line options to file_compress | ||
40 | 44 | ||
41 | Unsupported third party contributions are provided in directory "contrib". | 45 | Unsupported third party contributions are provided in directory "contrib". |
42 | 46 | ||
@@ -65,9 +69,6 @@ Notes for some targets: | |||
65 | See contrib/visual-basic.txt for more information. | 69 | See contrib/visual-basic.txt for more information. |
66 | I don't know how to handle structures in Visual Basic, sorry. | 70 | I don't know how to handle structures in Visual Basic, sorry. |
67 | 71 | ||
68 | - "make test" fails on Solaris 2.6 with gcc 2.8.0. It works with cc and | ||
69 | with gcc 2.7.2.1. | ||
70 | |||
71 | - For 64-bit Irix, deflate.c must be compiled without any optimization. | 72 | - For 64-bit Irix, deflate.c must be compiled without any optimization. |
72 | With -O, one libpng test fails. The test works in 32 bit mode (with | 73 | With -O, one libpng test fails. The test works in 32 bit mode (with |
73 | the -n32 compiler flag). The compiler bug has been reported to SGI. | 74 | the -n32 compiler flag). The compiler bug has been reported to SGI. |
@@ -75,11 +76,12 @@ Notes for some targets: | |||
75 | - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 | 76 | - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 |
76 | it works when compiled with cc. | 77 | it works when compiled with cc. |
77 | 78 | ||
78 | - zlib doesn't work on HP-UX 9.05 with one cc compiler (the one not | 79 | - zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works |
79 | accepting the -O option). It works with the other cc compiler. | 80 | with other compilers. Use "make test" to check your compiler. |
80 | 81 | ||
81 | - For shared memory multiprocessors, the decompression code assumes that | 82 | - For shared memory multiprocessors, the decompression code assumes that |
82 | writes to pointers are atomic. | 83 | writes to pointers are atomic. Also the functions zalloc and zfree passed |
84 | to deflateInit must be multi-threaded in this case. | ||
83 | 85 | ||
84 | - gzdopen is not supported on RISCOS, BEOS and Mac | 86 | - gzdopen is not supported on RISCOS, BEOS and Mac |
85 | 87 | ||
@@ -18,7 +18,7 @@ | |||
18 | #define DO16(buf) DO8(buf,0); DO8(buf,8); | 18 | #define DO16(buf) DO8(buf,0); DO8(buf,8); |
19 | 19 | ||
20 | /* ========================================================================= */ | 20 | /* ========================================================================= */ |
21 | uLong EXPORT adler32(adler, buf, len) | 21 | uLong ZEXPORT adler32(adler, buf, len) |
22 | uLong adler; | 22 | uLong adler; |
23 | const Bytef *buf; | 23 | const Bytef *buf; |
24 | uInt len; | 24 | uInt len; |
@@ -18,7 +18,7 @@ | |||
18 | memory, Z_BUF_ERROR if there was not enough room in the output buffer, | 18 | memory, Z_BUF_ERROR if there was not enough room in the output buffer, |
19 | Z_STREAM_ERROR if the level parameter is invalid. | 19 | Z_STREAM_ERROR if the level parameter is invalid. |
20 | */ | 20 | */ |
21 | int EXPORT compress2 (dest, destLen, source, sourceLen, level) | 21 | int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) |
22 | Bytef *dest; | 22 | Bytef *dest; |
23 | uLongf *destLen; | 23 | uLongf *destLen; |
24 | const Bytef *source; | 24 | const Bytef *source; |
@@ -58,7 +58,7 @@ int EXPORT compress2 (dest, destLen, source, sourceLen, level) | |||
58 | 58 | ||
59 | /* =========================================================================== | 59 | /* =========================================================================== |
60 | */ | 60 | */ |
61 | int EXPORT compress (dest, destLen, source, sourceLen) | 61 | int ZEXPORT compress (dest, destLen, source, sourceLen) |
62 | Bytef *dest; | 62 | Bytef *dest; |
63 | uLongf *destLen; | 63 | uLongf *destLen; |
64 | const Bytef *source; | 64 | const Bytef *source; |
@@ -14,6 +14,10 @@ | |||
14 | # (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure) | 14 | # (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure) |
15 | # LDSHARED is the command to be used to create a shared library | 15 | # LDSHARED is the command to be used to create a shared library |
16 | 16 | ||
17 | # Incorrect settings of CC or CFLAGS may prevent creating a shared library. | ||
18 | # If you have problems, try without defining CC and CFLAGS before reporting | ||
19 | # an error. | ||
20 | |||
17 | LIBS=libz.a | 21 | LIBS=libz.a |
18 | SHAREDLIB=libz.so | 22 | SHAREDLIB=libz.so |
19 | VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` | 23 | VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` |
@@ -23,6 +27,8 @@ prefix=${prefix-/usr/local} | |||
23 | exec_prefix=${exec_prefix-$prefix} | 27 | exec_prefix=${exec_prefix-$prefix} |
24 | shared_ext='.so' | 28 | shared_ext='.so' |
25 | shared=0 | 29 | shared=0 |
30 | old_cc="$CC" | ||
31 | old_cflags="$CFLAGS" | ||
26 | 32 | ||
27 | case "$1" in | 33 | case "$1" in |
28 | -s* | --s*) shared=1; shift;; | 34 | -s* | --s*) shared=1; shift;; |
@@ -96,9 +102,12 @@ if test $shared -eq 1; then | |||
96 | CFLAGS="$SFLAGS" | 102 | CFLAGS="$SFLAGS" |
97 | LIBS="$SHAREDLIB.$VER" | 103 | LIBS="$SHAREDLIB.$VER" |
98 | echo Building shared library $SHAREDLIB.$VER with $CC. | 104 | echo Building shared library $SHAREDLIB.$VER with $CC. |
99 | else | 105 | elif test -z "$old_cc" -a -z "$old_cflags"; then |
100 | echo No shared library suppport. | 106 | echo No shared library suppport. |
101 | shared=0; | 107 | shared=0; |
108 | else | ||
109 | echo 'No shared library suppport; try without defining CC and CFLAGS' | ||
110 | shared=0; | ||
102 | fi | 111 | fi |
103 | fi | 112 | fi |
104 | if test $shared -eq 0; then | 113 | if test $shared -eq 0; then |
diff --git a/contrib/asm386/gvmat32.asm b/contrib/asm386/gvmat32.asm index 2918a5d..28d527f 100644 --- a/contrib/asm386/gvmat32.asm +++ b/contrib/asm386/gvmat32.asm | |||
@@ -9,40 +9,36 @@ | |||
9 | ; For Visual C++ 4.2 and ML 6.11c (version in directory \MASM611C of Win95 DDK) | 9 | ; For Visual C++ 4.2 and ML 6.11c (version in directory \MASM611C of Win95 DDK) |
10 | ; I compile with : "ml /coff /Zi /c gvmat32.asm" | 10 | ; I compile with : "ml /coff /Zi /c gvmat32.asm" |
11 | ; | 11 | ; |
12 | ; uInt longest_match_gvasm(IPos cur_match,int* match_start_ptr,uInt scan_end, | ||
13 | ; uInt scan_start,ush* prev,uch* window,int best_len, | ||
14 | ; IPos limit,uInt chain_length,uch* scanrp, | ||
15 | ; uInt nice_match); | ||
16 | 12 | ||
17 | ;uInt longest_match(s, cur_match) | 13 | ;uInt longest_match_7fff(s, cur_match) |
18 | ; deflate_state *s; | 14 | ; deflate_state *s; |
19 | ; IPos cur_match; /* current match */ | 15 | ; IPos cur_match; /* current match */ |
20 | 16 | ||
21 | NbStack equ 76 | 17 | NbStack equ 76 |
22 | cur_match equ dword ptr[esp+NbStack-0] | 18 | cur_match equ dword ptr[esp+NbStack-0] |
23 | str_s equ dword ptr[esp+NbStack-4] | 19 | str_s equ dword ptr[esp+NbStack-4] |
24 | ; 5 dword on top (ret,ebp,esi,edi,ebx) | 20 | ; 5 dword on top (ret,ebp,esi,edi,ebx) |
25 | adrret equ dword ptr[esp+NbStack-8] | 21 | adrret equ dword ptr[esp+NbStack-8] |
26 | pushebp equ dword ptr[esp+NbStack-12] | 22 | pushebp equ dword ptr[esp+NbStack-12] |
27 | pushedi equ dword ptr[esp+NbStack-16] | 23 | pushedi equ dword ptr[esp+NbStack-16] |
28 | pushesi equ dword ptr[esp+NbStack-20] | 24 | pushesi equ dword ptr[esp+NbStack-20] |
29 | pushebx equ dword ptr[esp+NbStack-24] | 25 | pushebx equ dword ptr[esp+NbStack-24] |
30 | 26 | ||
31 | chain_length equ dword ptr [esp+NbStack-28] | 27 | chain_length equ dword ptr [esp+NbStack-28] |
32 | limit equ dword ptr [esp+NbStack-32] | 28 | limit equ dword ptr [esp+NbStack-32] |
33 | best_len equ dword ptr [esp+NbStack-36] | 29 | best_len equ dword ptr [esp+NbStack-36] |
34 | window equ dword ptr [esp+NbStack-40] | 30 | window equ dword ptr [esp+NbStack-40] |
35 | prev equ dword ptr [esp+NbStack-44] | 31 | prev equ dword ptr [esp+NbStack-44] |
36 | scan_start equ word ptr [esp+NbStack-48] | 32 | scan_start equ word ptr [esp+NbStack-48] |
37 | scan_end equ word ptr [esp+NbStack-52] | 33 | wmask equ dword ptr [esp+NbStack-52] |
38 | match_start_ptr equ dword ptr [esp+NbStack-56] | 34 | match_start_ptr equ dword ptr [esp+NbStack-56] |
39 | nice_match equ dword ptr [esp+NbStack-60] | 35 | nice_match equ dword ptr [esp+NbStack-60] |
40 | scanrp equ dword ptr [esp+NbStack-64] | 36 | scan equ dword ptr [esp+NbStack-64] |
41 | 37 | ||
42 | windowlen equ dword ptr [esp+NbStack-68] | 38 | windowlen equ dword ptr [esp+NbStack-68] |
43 | match_start equ dword ptr [esp+NbStack-72] | 39 | match_start equ dword ptr [esp+NbStack-72] |
44 | strend equ dword ptr [esp+NbStack-76] | 40 | strend equ dword ptr [esp+NbStack-76] |
45 | NbStackAdd equ (76-24) | 41 | NbStackAdd equ (NbStack-24) |
46 | 42 | ||
47 | .386p | 43 | .386p |
48 | 44 | ||
@@ -50,11 +46,11 @@ | |||
50 | .MODEL FLAT | 46 | .MODEL FLAT |
51 | 47 | ||
52 | 48 | ||
53 | @lmtype TYPEDEF PROTO C :PTR , :SDWORD | ||
54 | longest_match_c PROTO @lmtype | ||
55 | 49 | ||
56 | ; all the +4 offsets are due to the addition of pending_buf_size | 50 | ; all the +4 offsets are due to the addition of pending_buf_size (in zlib |
57 | ; in the deflate_state structure since the asm code was first written | 51 | ; in the deflate_state structure since the asm code was first written |
52 | ; (if you compile with zlib 1.0.4 or older, remove the +4). | ||
53 | ; Note : these value are good with a 8 bytes boundary pack structure | ||
58 | dep_chain_length equ 70h+4 | 54 | dep_chain_length equ 70h+4 |
59 | dep_window equ 2ch+4 | 55 | dep_window equ 2ch+4 |
60 | dep_strstart equ 60h+4 | 56 | dep_strstart equ 60h+4 |
@@ -68,398 +64,496 @@ longest_match_c PROTO @lmtype | |||
68 | dep_lookahead equ 68h+4 | 64 | dep_lookahead equ 68h+4 |
69 | 65 | ||
70 | 66 | ||
71 | _TEXT segment | 67 | _TEXT segment |
72 | public _longest_match_asm7fff | ||
73 | 68 | ||
74 | MAX_MATCH equ 258 | 69 | IFDEF NOUNDERLINE |
75 | MIN_MATCH equ 3 | 70 | public longest_match_7fff |
76 | MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1) | 71 | ; public match_init |
77 | 72 | ELSE | |
78 | ; initialize or check the variables used in match.asm. | 73 | public _longest_match_7fff |
74 | ; public _match_init | ||
75 | ENDIF | ||
79 | 76 | ||
77 | MAX_MATCH equ 258 | ||
78 | MIN_MATCH equ 3 | ||
79 | MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1) | ||
80 | 80 | ||
81 | ; ----------------------------------------------------------------------- | ||
82 | ; Set match_start to the longest match starting at the given string and | ||
83 | ; return its length. Matches shorter or equal to prev_length are discarded, | ||
84 | ; in which case the result is equal to prev_length and match_start is | ||
85 | ; garbage. | ||
86 | ; IN assertions: cur_match is the head of the hash chain for the current | ||
87 | ; string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 | ||
88 | 81 | ||
89 | ; int longest_match(cur_match) | ||
90 | 82 | ||
91 | _longest_match_asm7fff proc near | 83 | IFDEF NOUNDERLINE |
84 | ;match_init proc near | ||
85 | ; ret | ||
86 | ;match_init endp | ||
87 | ELSE | ||
88 | ;_match_init proc near | ||
89 | ; ret | ||
90 | ;_match_init endp | ||
91 | ENDIF | ||
92 | 92 | ||
93 | 93 | ||
94 | IFDEF NOUNDERLINE | ||
95 | longest_match_7fff proc near | ||
96 | ELSE | ||
97 | _longest_match_7fff proc near | ||
98 | ENDIF | ||
94 | 99 | ||
95 | ; return address | 100 | mov edx,[esp+4] |
96 | 101 | ||
97 | mov eax,[esp+4] | ||
98 | mov bx,[eax+dep_w_mask] | ||
99 | cmp bx,7fffh | ||
100 | jnz longest_match_c | ||
101 | 102 | ||
102 | push ebp | ||
103 | push edi | ||
104 | push esi | ||
105 | push ebx | ||
106 | 103 | ||
107 | sub esp,NbStackAdd | 104 | push ebp |
105 | push edi | ||
106 | push esi | ||
107 | push ebx | ||
108 | 108 | ||
109 | ;//mov ebp,str_s | 109 | sub esp,NbStackAdd |
110 | mov ebp,eax | ||
111 | 110 | ||
112 | mov eax,[ebp+dep_max_chain_length] | 111 | ; initialize or check the variables used in match.asm. |
113 | mov ebx,[ebp+dep_prev_length] | 112 | mov ebp,edx |
114 | cmp [ebp+dep_good_match],ebx ; if prev_length>=good_match chain_length >>= 2 | 113 | |
115 | ja noshr | 114 | ; chain_length = s->max_chain_length |
116 | shr eax,2 | 115 | ; if (prev_length>=good_match) chain_length >>= 2 |
116 | mov edx,[ebp+dep_chain_length] | ||
117 | mov ebx,[ebp+dep_prev_length] | ||
118 | cmp [ebp+dep_good_match],ebx | ||
119 | ja noshr | ||
120 | shr edx,2 | ||
117 | noshr: | 121 | noshr: |
118 | mov edi,[ebp+dep_nice_match] | 122 | ; we increment chain_length because in the asm, the --chain_lenght is in the beginning of the loop |
119 | mov chain_length,eax | 123 | inc edx |
120 | mov edx,[ebp+dep_lookahead] | 124 | mov edi,[ebp+dep_nice_match] |
121 | cmp edx,edi | 125 | mov chain_length,edx |
122 | ;if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | 126 | mov eax,[ebp+dep_lookahead] |
123 | jae nolookaheadnicematch | 127 | cmp eax,edi |
124 | mov edi,edx | 128 | ; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; |
129 | jae nolookaheadnicematch | ||
130 | mov edi,eax | ||
125 | nolookaheadnicematch: | 131 | nolookaheadnicematch: |
126 | mov best_len,ebx | 132 | ; best_len = s->prev_length |
127 | 133 | mov best_len,ebx | |
128 | 134 | ||
129 | mov esi,[ebp+dep_window] | 135 | ; window = s->window |
130 | mov ecx,[ebp+dep_strstart] | 136 | mov esi,[ebp+dep_window] |
131 | mov window,esi | 137 | mov ecx,[ebp+dep_strstart] |
132 | 138 | mov window,esi | |
133 | mov nice_match,edi | 139 | |
134 | add esi,ecx | 140 | mov nice_match,edi |
135 | mov scanrp,esi | 141 | ; scan = window + strstart |
136 | mov ax,word ptr [esi] | 142 | add esi,ecx |
137 | mov bx,word ptr [esi+ebx-1] | 143 | mov scan,esi |
138 | add esi,MAX_MATCH-1 | 144 | ; dx = *window |
139 | mov scan_start,ax | 145 | mov dx,word ptr [esi] |
140 | mov strend,esi | 146 | ; bx = *(window+best_len-1) |
141 | mov scan_end,bx | 147 | mov bx,word ptr [esi+ebx-1] |
148 | add esi,MAX_MATCH-1 | ||
149 | ; scan_start = *scan | ||
150 | mov scan_start,dx | ||
151 | ; strend = scan + MAX_MATCH-1 | ||
152 | mov strend,esi | ||
153 | ; bx = scan_end = *(window+best_len-1) | ||
142 | 154 | ||
143 | ; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? | 155 | ; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? |
144 | ; s->strstart - (IPos)MAX_DIST(s) : NIL; | 156 | ; s->strstart - (IPos)MAX_DIST(s) : NIL; |
145 | 157 | ||
146 | mov esi,[ebp+dep_w_size] | 158 | mov esi,[ebp+dep_w_size] |
147 | sub esi,MIN_LOOKAHEAD | 159 | sub esi,MIN_LOOKAHEAD |
148 | ; here esi = MAX_DIST(s) | 160 | ; here esi = MAX_DIST(s) |
149 | sub ecx,esi | 161 | sub ecx,esi |
150 | ja nodist | 162 | ja nodist |
151 | xor ecx,ecx | 163 | xor ecx,ecx |
152 | nodist: | 164 | nodist: |
153 | mov limit,ecx | 165 | mov limit,ecx |
154 | |||
155 | |||
156 | |||
157 | |||
158 | mov eax,[ebp+dep_prev] | ||
159 | mov prev,eax | ||
160 | 166 | ||
161 | mov ebx,dword ptr [ebp+dep_match_start] | 167 | ; prev = s->prev |
162 | mov bp,scan_start | 168 | mov edx,[ebp+dep_prev] |
163 | mov edx,cur_match | 169 | mov prev,edx |
164 | mov match_start,ebx | ||
165 | 170 | ||
166 | mov bx,scan_end | 171 | ; |
167 | mov eax,window | 172 | mov edx,dword ptr [ebp+dep_match_start] |
168 | mov edi,eax | 173 | mov bp,scan_start |
169 | add edi,best_len | 174 | mov eax,cur_match |
170 | mov esi,prev | 175 | mov match_start,edx |
171 | dec edi | 176 | |
172 | mov windowlen,edi | 177 | mov edx,window |
173 | 178 | mov edi,edx | |
174 | jmp beginloop2 | 179 | add edi,best_len |
175 | align 4 | 180 | mov esi,prev |
181 | dec edi | ||
182 | ; windowlen = window + best_len -1 | ||
183 | mov windowlen,edi | ||
184 | |||
185 | jmp beginloop2 | ||
186 | align 4 | ||
176 | 187 | ||
177 | ; here, in the loop | 188 | ; here, in the loop |
178 | ;;;; eax = chain_length | 189 | ; eax = ax = cur_match |
179 | ; edx = dx = cur_match | ||
180 | ; ecx = limit | 190 | ; ecx = limit |
181 | ; bx = scan_end | 191 | ; bx = scan_end |
182 | ; bp = scan_start | 192 | ; bp = scan_start |
183 | ; edi = windowlen (window + best_len) | 193 | ; edi = windowlen (window + best_len -1) |
184 | ; esi = prev | 194 | ; esi = prev |
185 | 195 | ||
186 | 196 | ||
187 | ;// here; eax <=16 | 197 | ;// here; chain_length <=16 |
188 | normalbeg0add16: | 198 | normalbeg0add16: |
189 | add chain_length,16 | 199 | add chain_length,16 |
190 | jz exitloop | 200 | jz exitloop |
191 | normalbeg0: | 201 | normalbeg0: |
192 | cmp word ptr[edi+edx-0],bx | 202 | cmp word ptr[edi+eax],bx |
193 | je normalbeg2 | 203 | je normalbeg2noroll |
194 | and edx,7fffh | 204 | rcontlabnoroll: |
195 | mov dx,word ptr[esi+edx*2] | 205 | ; cur_match = prev[cur_match & wmask] |
196 | cmp ecx,edx | 206 | and eax,7fffh |
197 | jnb exitloop | 207 | mov ax,word ptr[esi+eax*2] |
198 | dec chain_length | 208 | ; if cur_match > limit, go to exitloop |
199 | jnz normalbeg0 | 209 | cmp ecx,eax |
200 | ;jnbexitloopshort1: | 210 | jnb exitloop |
201 | jmp exitloop | 211 | ; if --chain_length != 0, go to exitloop |
212 | dec chain_length | ||
213 | jnz normalbeg0 | ||
214 | jmp exitloop | ||
215 | |||
216 | normalbeg2noroll: | ||
217 | ; if (scan_start==*(cur_match+window)) goto normalbeg2 | ||
218 | cmp bp,word ptr[edx+eax] | ||
219 | jne rcontlabnoroll | ||
220 | jmp normalbeg2 | ||
202 | 221 | ||
203 | contloop3: | 222 | contloop3: |
204 | mov edi,windowlen | 223 | mov edi,windowlen |
205 | 224 | ||
206 | ; cur_match = prev[cur_match & wmask] | 225 | ; cur_match = prev[cur_match & wmask] |
207 | and edx,7fffh | 226 | and eax,7fffh |
208 | mov dx,word ptr[esi+edx*2] | 227 | mov ax,word ptr[esi+eax*2] |
209 | ; if cur_match > limit, go to exitloop | 228 | ; if cur_match > limit, go to exitloop |
210 | cmp ecx,edx | 229 | cmp ecx,eax |
211 | jnbexitloopshort1: | 230 | jnbexitloopshort1: |
212 | jnb exitloop | 231 | jnb exitloop |
213 | ; if --chain_length != 0, go to exitloop | 232 | ; if --chain_length != 0, go to exitloop |
214 | 233 | ||
234 | |||
235 | ; begin the main loop | ||
215 | beginloop2: | 236 | beginloop2: |
216 | sub chain_length,16+1 | 237 | sub chain_length,16+1 |
217 | jna normalbeg0add16 | 238 | ; if chain_length <=16, don't use the unrolled loop |
239 | jna normalbeg0add16 | ||
218 | 240 | ||
219 | do16: | 241 | do16: |
220 | cmp word ptr[edi+edx],bx | 242 | cmp word ptr[edi+eax],bx |
221 | je normalbeg2dc0 | 243 | je normalbeg2dc0 |
222 | 244 | ||
223 | maccn MACRO lab | 245 | maccn MACRO lab |
224 | and edx,7fffh | 246 | and eax,7fffh |
225 | mov dx,word ptr[esi+edx*2] | 247 | mov ax,word ptr[esi+eax*2] |
226 | cmp ecx,edx | 248 | cmp ecx,eax |
227 | jnb exitloop | 249 | jnb exitloop |
228 | cmp word ptr[edi+edx-0],bx | 250 | cmp word ptr[edi+eax],bx |
229 | je lab | 251 | je lab |
230 | ENDM | 252 | ENDM |
231 | 253 | ||
232 | rcontloop0: | 254 | rcontloop0: |
233 | maccn normalbeg2dc1 | 255 | maccn normalbeg2dc1 |
234 | 256 | ||
235 | rcontloop1: | 257 | rcontloop1: |
236 | maccn normalbeg2dc2 | 258 | maccn normalbeg2dc2 |
237 | 259 | ||
238 | rcontloop2: | 260 | rcontloop2: |
239 | maccn normalbeg2dc3 | 261 | maccn normalbeg2dc3 |
240 | 262 | ||
241 | rcontloop3: | 263 | rcontloop3: |
242 | maccn normalbeg2dc4 | 264 | maccn normalbeg2dc4 |
243 | 265 | ||
244 | rcontloop4: | 266 | rcontloop4: |
245 | maccn normalbeg2dc5 | 267 | maccn normalbeg2dc5 |
246 | 268 | ||
247 | rcontloop5: | 269 | rcontloop5: |
248 | maccn normalbeg2dc6 | 270 | maccn normalbeg2dc6 |
249 | 271 | ||
250 | rcontloop6: | 272 | rcontloop6: |
251 | maccn normalbeg2dc7 | 273 | maccn normalbeg2dc7 |
252 | 274 | ||
253 | rcontloop7: | 275 | rcontloop7: |
254 | maccn normalbeg2dc8 | 276 | maccn normalbeg2dc8 |
255 | 277 | ||
256 | rcontloop8: | 278 | rcontloop8: |
257 | maccn normalbeg2dc9 | 279 | maccn normalbeg2dc9 |
258 | 280 | ||
259 | rcontloop9: | 281 | rcontloop9: |
260 | maccn normalbeg2dc10 | 282 | maccn normalbeg2dc10 |
261 | 283 | ||
262 | rcontloop10: | 284 | rcontloop10: |
263 | maccn normalbeg2dc11 | 285 | maccn short normalbeg2dc11 |
264 | 286 | ||
265 | rcontloop11: | 287 | rcontloop11: |
266 | maccn short normalbeg2dc12 | 288 | maccn short normalbeg2dc12 |
267 | 289 | ||
268 | rcontloop12: | 290 | rcontloop12: |
269 | maccn short normalbeg2dc13 | 291 | maccn short normalbeg2dc13 |
270 | 292 | ||
271 | rcontloop13: | 293 | rcontloop13: |
272 | maccn short normalbeg2dc14 | 294 | maccn short normalbeg2dc14 |
273 | 295 | ||
274 | rcontloop14: | 296 | rcontloop14: |
275 | maccn short normalbeg2dc15 | 297 | maccn short normalbeg2dc15 |
276 | 298 | ||
277 | rcontloop15: | 299 | rcontloop15: |
278 | and edx,7fffh | 300 | and eax,7fffh |
279 | mov dx,word ptr[esi+edx*2] | 301 | mov ax,word ptr[esi+eax*2] |
280 | cmp ecx,edx | 302 | cmp ecx,eax |
281 | jnb short exitloopshort | 303 | jnb exitloop |
282 | 304 | ||
283 | sub chain_length,16 | 305 | sub chain_length,16 |
284 | ja do16 | 306 | ja do16 |
285 | jmp normalbeg0add16 | 307 | jmp normalbeg0add16 |
286 | 308 | ||
287 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 309 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
288 | 310 | ||
289 | exitloopshort: | 311 | normbeg MACRO rcontlab,valsub |
290 | jmp exitloop | 312 | ; if we are here, we know that *(match+best_len-1) == scan_end |
313 | cmp bp,word ptr[edx+eax] | ||
314 | ; if (match != scan_start) goto rcontlab | ||
315 | jne rcontlab | ||
316 | ; calculate the good chain_length, and we'll compare scan and match string | ||
317 | add chain_length,16-valsub | ||
318 | jmp iseq | ||
319 | ENDM | ||
291 | 320 | ||
292 | normbeg MACRO rcontlab,valsub | 321 | |
293 | cmp bp,word ptr[eax+edx] | 322 | normalbeg2dc11: |
294 | jne rcontlab | 323 | normbeg rcontloop11,11 |
295 | add chain_length,16-valsub | ||
296 | jmp iseq | ||
297 | ENDM | ||
298 | 324 | ||
299 | normalbeg2dc12: | 325 | normalbeg2dc12: |
300 | normbeg rcontloop12,12 | 326 | normbeg short rcontloop12,12 |
301 | 327 | ||
302 | normalbeg2dc13: | 328 | normalbeg2dc13: |
303 | normbeg rcontloop13,13 | 329 | normbeg short rcontloop13,13 |
304 | 330 | ||
305 | normalbeg2dc14: | 331 | normalbeg2dc14: |
306 | normbeg rcontloop14,14 | 332 | normbeg short rcontloop14,14 |
307 | 333 | ||
308 | normalbeg2dc15: | 334 | normalbeg2dc15: |
309 | normbeg rcontloop15,15 | 335 | normbeg short rcontloop15,15 |
310 | |||
311 | normalbeg2dc11: | ||
312 | normbeg rcontloop11,11 | ||
313 | 336 | ||
314 | normalbeg2dc10: | 337 | normalbeg2dc10: |
315 | normbeg rcontloop10,10 | 338 | normbeg rcontloop10,10 |
316 | |||
317 | 339 | ||
318 | normalbeg2dc9: | 340 | normalbeg2dc9: |
319 | normbeg rcontloop9,9 | 341 | normbeg rcontloop9,9 |
320 | 342 | ||
321 | normalbeg2dc8: | 343 | normalbeg2dc8: |
322 | normbeg rcontloop8,8 | 344 | normbeg rcontloop8,8 |
323 | 345 | ||
324 | normalbeg2dc7: | 346 | normalbeg2dc7: |
325 | normbeg rcontloop7,7 | 347 | normbeg rcontloop7,7 |
326 | |||
327 | normalbeg2dc5: | ||
328 | normbeg rcontloop5,5 | ||
329 | |||
330 | |||
331 | |||
332 | |||
333 | 348 | ||
334 | normalbeg2dc6: | 349 | normalbeg2dc6: |
335 | normbeg rcontloop6,6 | 350 | normbeg rcontloop6,6 |
351 | |||
352 | normalbeg2dc5: | ||
353 | normbeg rcontloop5,5 | ||
336 | 354 | ||
337 | normalbeg2dc4: | 355 | normalbeg2dc4: |
338 | normbeg rcontloop4,4 | 356 | normbeg rcontloop4,4 |
339 | 357 | ||
340 | normalbeg2dc3: | 358 | normalbeg2dc3: |
341 | normbeg rcontloop3,3 | 359 | normbeg rcontloop3,3 |
342 | 360 | ||
343 | normalbeg2dc2: | 361 | normalbeg2dc2: |
344 | normbeg rcontloop2,2 | 362 | normbeg rcontloop2,2 |
345 | 363 | ||
346 | normalbeg2dc1: | 364 | normalbeg2dc1: |
347 | normbeg rcontloop1,1 | 365 | normbeg rcontloop1,1 |
348 | 366 | ||
349 | normalbeg2dc0: | 367 | normalbeg2dc0: |
350 | normbeg rcontloop0,0 | 368 | normbeg rcontloop0,0 |
351 | 369 | ||
352 | 370 | ||
353 | ; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_end | 371 | ; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_end |
354 | 372 | ||
355 | normalbeg2: | 373 | normalbeg2: |
374 | mov edi,window | ||
356 | 375 | ||
357 | ; 10 nop here take 10% time | 376 | cmp bp,word ptr[edi+eax] |
358 | mov edi,window | 377 | jne contloop3 ; if *(ushf*)match != scan_start, continue |
359 | ;mov chain_length,eax ; now, we need eax... | ||
360 | |||
361 | cmp bp,word ptr[edi+edx] | ||
362 | jne contloop3 ; if *(ushf*)match != scan_start, continue | ||
363 | 378 | ||
364 | iseq: | 379 | iseq: |
380 | ; if we are here, we know that *(match+best_len-1) == scan_end | ||
381 | ; and (match == scan_start) | ||
365 | 382 | ||
366 | mov edi,eax | 383 | mov edi,edx |
367 | mov esi,scanrp ; esi = scan | 384 | mov esi,scan ; esi = scan |
368 | add edi,edx ; edi = window + cur_match = match | 385 | add edi,eax ; edi = window + cur_match = match |
369 | 386 | ||
370 | 387 | mov edx,[esi+3] ; compare manually dword at match+3 | |
371 | mov eax,[esi+3] ; compare manually dword at match+3 | 388 | xor edx,[edi+3] ; and scan +3 |
372 | xor eax,[edi+3] ; and scan +3 | ||
373 | 389 | ||
374 | jz begincompare ; if equal, go to long compare | 390 | jz begincompare ; if equal, go to long compare |
375 | 391 | ||
376 | ; we will determine the unmatch byte and calculate len (in esi) | 392 | ; we will determine the unmatch byte and calculate len (in esi) |
377 | or al,al | 393 | or dl,dl |
378 | je eq1rr | 394 | je eq1rr |
379 | mov esi,3 | 395 | mov esi,3 |
380 | jmp trfinval | 396 | jmp trfinval |
381 | eq1rr: | 397 | eq1rr: |
382 | or ax,ax | 398 | or dx,dx |
383 | je eq1 | 399 | je eq1 |
384 | 400 | ||
385 | mov esi,4 | 401 | mov esi,4 |
386 | jmp trfinval | 402 | jmp trfinval |
387 | eq1: | 403 | eq1: |
388 | shl eax,8 | 404 | and edx,0ffffffh |
389 | jz eq11 | 405 | jz eq11 |
390 | mov esi,5 | 406 | mov esi,5 |
391 | jmp trfinval | 407 | jmp trfinval |
392 | eq11: | 408 | eq11: |
393 | mov esi,6 | 409 | mov esi,6 |
394 | jmp trfinval | 410 | jmp trfinval |
395 | 411 | ||
396 | begincompare: | 412 | begincompare: |
397 | ; here we now scan and match begin same | 413 | ; here we now scan and match begin same |
398 | add edi,6 | 414 | add edi,6 |
399 | add esi,6 | 415 | add esi,6 |
400 | mov ecx,(MAX_MATCH-(2+4))/4 ;//; scan for at most MAX_MATCH bytes | 416 | mov ecx,(MAX_MATCH-(2+4))/4 ; scan for at most MAX_MATCH bytes |
401 | repe cmpsd ;//; loop until mismatch | 417 | repe cmpsd ; loop until mismatch |
402 | 418 | ||
403 | je trfin ; go to trfin if not unmatch | 419 | je trfin ; go to trfin if not unmatch |
404 | ; we determine the unmatch byte | 420 | ; we determine the unmatch byte |
405 | sub esi,4 | 421 | sub esi,4 |
406 | mov eax,[edi-4] | 422 | mov edx,[edi-4] |
407 | xor eax,[esi] | 423 | xor edx,[esi] |
408 | or al,al | 424 | |
409 | 425 | or dl,dl | |
410 | jnz trfin | 426 | jnz trfin |
411 | inc esi | 427 | inc esi |
412 | 428 | ||
413 | or ax,ax | 429 | or dx,dx |
414 | jnz trfin | 430 | jnz trfin |
415 | inc esi | 431 | inc esi |
416 | 432 | ||
417 | shl eax,8 | 433 | and edx,0ffffffh |
418 | jnz trfin | 434 | jnz trfin |
419 | inc esi | 435 | inc esi |
420 | 436 | ||
421 | trfin: | 437 | trfin: |
422 | sub esi,scanrp ; esi = len | 438 | sub esi,scan ; esi = len |
423 | trfinval: | 439 | trfinval: |
424 | cmp esi,best_len ; if len <= best_len, go contloop2 | 440 | ; here we have finised compare, and esi contain len of equal string |
425 | jbe contloop2 | 441 | cmp esi,best_len ; if len > best_len, go newbestlen |
426 | 442 | ja short newbestlen | |
427 | mov best_len,esi ; len become best_len | 443 | ; now we restore edx, ecx and esi, for the big loop |
428 | 444 | mov esi,prev | |
429 | mov match_start,edx | 445 | mov ecx,limit |
430 | cmp esi,nice_match ;//; if esi >= nice_match, exit | 446 | mov edx,window |
431 | mov ecx,scanrp | 447 | jmp contloop3 |
432 | jae exitloop | 448 | |
433 | add esi,window | 449 | newbestlen: |
434 | add ecx,best_len | 450 | mov best_len,esi ; len become best_len |
435 | dec esi | 451 | |
436 | mov windowlen,esi | 452 | mov match_start,eax ; save new position as match_start |
437 | mov bx,[ecx-1] | 453 | cmp esi,nice_match ; if best_len >= nice_match, exit |
438 | 454 | jae exitloop | |
439 | 455 | mov ecx,scan | |
440 | ; now we restore eax, ecx and esi, for the big loop : | 456 | mov edx,window ; restore edx=window |
441 | contloop2: | 457 | add ecx,esi |
442 | mov esi,prev | 458 | add esi,edx |
443 | mov ecx,limit | 459 | |
444 | ;mov eax,chain_length | 460 | dec esi |
445 | mov eax,window | 461 | mov windowlen,esi ; windowlen = window + best_len-1 |
446 | jmp contloop3 | 462 | mov bx,[ecx-1] ; bx = *(scan+best_len-1) = scan_end |
447 | 463 | ||
448 | exitloop: | 464 | ; now we restore ecx and esi, for the big loop : |
449 | mov ebx,match_start | 465 | mov esi,prev |
450 | mov ebp,str_s | 466 | mov ecx,limit |
451 | mov dword ptr [ebp+dep_match_start],ebx | 467 | jmp contloop3 |
452 | mov eax,best_len | 468 | |
453 | add esp,NbStackAdd | 469 | exitloop: |
454 | 470 | ; exit : s->match_start=match_start | |
455 | 471 | mov ebx,match_start | |
456 | pop ebx | 472 | mov ebp,str_s |
457 | pop esi | 473 | mov ecx,best_len |
458 | pop edi | 474 | mov dword ptr [ebp+dep_match_start],ebx |
459 | pop ebp | 475 | mov eax,dword ptr [ebp+dep_lookahead] |
460 | ret | 476 | cmp ecx,eax |
461 | 477 | ja minexlo | |
462 | _longest_match_asm7fff endp | 478 | mov eax,ecx |
479 | minexlo: | ||
480 | ; return min(best_len,s->lookahead) | ||
481 | |||
482 | ; restore stack and register ebx,esi,edi,ebp | ||
483 | add esp,NbStackAdd | ||
484 | |||
485 | pop ebx | ||
486 | pop esi | ||
487 | pop edi | ||
488 | pop ebp | ||
489 | ret | ||
490 | InfoAuthor: | ||
491 | ; please don't remove this string ! | ||
492 | ; Your are free use gvmat32 in any fre or commercial apps if you don't remove the string in the binary! | ||
493 | db 0dh,0ah,"GVMat32 optimised assembly code written 1996-98 by Gilles Vollant",0dh,0ah | ||
494 | |||
495 | |||
496 | |||
497 | IFDEF NOUNDERLINE | ||
498 | longest_match_7fff endp | ||
499 | ELSE | ||
500 | _longest_match_7fff endp | ||
501 | ENDIF | ||
502 | |||
503 | |||
504 | IFDEF NOUNDERLINE | ||
505 | cpudetect32 proc near | ||
506 | ELSE | ||
507 | _cpudetect32 proc near | ||
508 | ENDIF | ||
509 | |||
510 | |||
511 | pushfd ; push original EFLAGS | ||
512 | pop eax ; get original EFLAGS | ||
513 | mov ecx, eax ; save original EFLAGS | ||
514 | xor eax, 40000h ; flip AC bit in EFLAGS | ||
515 | push eax ; save new EFLAGS value on stack | ||
516 | popfd ; replace current EFLAGS value | ||
517 | pushfd ; get new EFLAGS | ||
518 | pop eax ; store new EFLAGS in EAX | ||
519 | xor eax, ecx ; can’t toggle AC bit, processor=80386 | ||
520 | jz end_cpu_is_386 ; jump if 80386 processor | ||
521 | push ecx | ||
522 | popfd ; restore AC bit in EFLAGS first | ||
523 | |||
524 | pushfd | ||
525 | pushfd | ||
526 | pop ecx | ||
527 | |||
528 | mov eax, ecx ; get original EFLAGS | ||
529 | xor eax, 200000h ; flip ID bit in EFLAGS | ||
530 | push eax ; save new EFLAGS value on stack | ||
531 | popfd ; replace current EFLAGS value | ||
532 | pushfd ; get new EFLAGS | ||
533 | pop eax ; store new EFLAGS in EAX | ||
534 | popfd ; restore original EFLAGS | ||
535 | xor eax, ecx ; can’t toggle ID bit, | ||
536 | je is_old_486 ; processor=old | ||
537 | |||
538 | mov eax,1 | ||
539 | db 0fh,0a2h ;CPUID | ||
540 | |||
541 | exitcpudetect: | ||
542 | ret | ||
543 | |||
544 | end_cpu_is_386: | ||
545 | mov eax,0300h | ||
546 | jmp exitcpudetect | ||
547 | |||
548 | is_old_486: | ||
549 | mov eax,0400h | ||
550 | jmp exitcpudetect | ||
551 | |||
552 | IFDEF NOUNDERLINE | ||
553 | cpudetect32 endp | ||
554 | ELSE | ||
555 | _cpudetect32 endp | ||
556 | ENDIF | ||
463 | 557 | ||
464 | _TEXT ends | 558 | _TEXT ends |
465 | end | 559 | end |
diff --git a/contrib/asm386/gvmat32c.c b/contrib/asm386/gvmat32c.c index 43d530b..d853bb7 100644 --- a/contrib/asm386/gvmat32c.c +++ b/contrib/asm386/gvmat32c.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * (assembly code is faster with a fixed wmask) | 7 | * (assembly code is faster with a fixed wmask) |
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | //#pragma optimize("agt",on) | ||
11 | 10 | ||
12 | #include "deflate.h" | 11 | #include "deflate.h" |
13 | 12 | ||
@@ -15,65 +14,31 @@ | |||
15 | #include <windows.h> | 14 | #include <windows.h> |
16 | 15 | ||
17 | #ifdef ASMV | 16 | #ifdef ASMV |
18 | |||
19 | #define NIL 0 | 17 | #define NIL 0 |
20 | 18 | ||
21 | static unsigned int tot=0; | ||
22 | static unsigned int totl0=0; | ||
23 | static unsigned int totl0p0=0; | ||
24 | static unsigned int ba0=0; | ||
25 | static unsigned int ba1=0; | ||
26 | static unsigned int cpta=0; | ||
27 | static unsigned int cptb=0; | ||
28 | |||
29 | #define UNALIGNED_OK | 19 | #define UNALIGNED_OK |
30 | #define gvshow(a,b,c,d) | ||
31 | /* | ||
32 | void gvshow(int chain_length,int len,int limit,ushf* prev) | ||
33 | { | ||
34 | static int ival=0; | ||
35 | char sz[80]; | ||
36 | unsigned long i; | ||
37 | int prev0=*prev; | ||
38 | ival++; | ||
39 | //wsprintf(sz,"call %u, len=%u, chain_length=%u\n",ival,len,chain_length); | ||
40 | //OutputDebugString(sz); | ||
41 | tot++; | ||
42 | if (limit==NIL) | ||
43 | totl0++; | ||
44 | if ((limit==NIL) && (prev0==0)) | ||
45 | totl0p0++; | ||
46 | for (i=limit+1;i<32768;i++) | ||
47 | { | ||
48 | ush va=*(prev+i); | ||
49 | if (ba0>4000000000) | ||
50 | { | ||
51 | ba0+=10; | ||
52 | } | ||
53 | ba0++; | ||
54 | if ((va>limit) || (va==0)) | ||
55 | continue; | ||
56 | ba1++; | ||
57 | } | ||
58 | } | ||
59 | */ | ||
60 | 20 | ||
61 | 21 | ||
62 | /* if your C compiler don't add underline before function name, | 22 | /* if your C compiler don't add underline before function name, |
63 | define ADD_UNDERLINE_ASMFUNC */ | 23 | define ADD_UNDERLINE_ASMFUNC */ |
64 | #ifdef ADD_UNDERLINE_ASMFUNC | 24 | #ifdef ADD_UNDERLINE_ASMFUNC |
65 | #define longest_match_asm7fff _longest_match_asm7fff | 25 | #define longest_match_7fff _longest_match_7fff |
66 | #endif | 26 | #endif |
27 | |||
28 | |||
29 | |||
67 | void match_init() | 30 | void match_init() |
68 | { | 31 | { |
69 | } | 32 | } |
70 | 33 | ||
34 | unsigned long cpudetect32(); | ||
35 | |||
71 | uInt longest_match_c( | 36 | uInt longest_match_c( |
72 | deflate_state *s, | 37 | deflate_state *s, |
73 | IPos cur_match); /* current match */ | 38 | IPos cur_match); /* current match */ |
74 | 39 | ||
75 | 40 | ||
76 | uInt longest_match_asm7fff( | 41 | uInt longest_match_7fff( |
77 | deflate_state *s, | 42 | deflate_state *s, |
78 | IPos cur_match); /* current match */ | 43 | IPos cur_match); /* current match */ |
79 | 44 | ||
@@ -81,9 +46,15 @@ uInt longest_match( | |||
81 | deflate_state *s, | 46 | deflate_state *s, |
82 | IPos cur_match) /* current match */ | 47 | IPos cur_match) /* current match */ |
83 | { | 48 | { |
84 | if (s->w_mask == 0x7fff) | 49 | static uInt iIsPPro=2; |
85 | return longest_match_asm7fff(s,cur_match); | 50 | |
86 | return longest_match_c(s,cur_match); | 51 | if ((s->w_mask == 0x7fff) && (iIsPPro==0)) |
52 | return longest_match_7fff(s,cur_match); | ||
53 | |||
54 | if (iIsPPro==2) | ||
55 | iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0; | ||
56 | |||
57 | return longest_match_c(s,cur_match); | ||
87 | } | 58 | } |
88 | 59 | ||
89 | 60 | ||
@@ -222,7 +193,7 @@ uInt longest_match_c(s, cur_match) | |||
222 | } while ((cur_match = prev[cur_match & wmask]) > limit | 193 | } while ((cur_match = prev[cur_match & wmask]) > limit |
223 | && --chain_length != 0); | 194 | && --chain_length != 0); |
224 | 195 | ||
225 | if ((uInt)best_len <= s->lookahead) return best_len; | 196 | if ((uInt)best_len <= s->lookahead) return (uInt)best_len; |
226 | return s->lookahead; | 197 | return s->lookahead; |
227 | } | 198 | } |
228 | 199 | ||
diff --git a/contrib/asm386/zlibvc.dsp b/contrib/asm386/zlibvc.dsp new file mode 100644 index 0000000..98676db --- /dev/null +++ b/contrib/asm386/zlibvc.dsp | |||
@@ -0,0 +1,612 @@ | |||
1 | # Microsoft Developer Studio Project File - Name="zlibvc" - Package Owner=<4> | ||
2 | # Microsoft Developer Studio Generated Build File, Format Version 5.00 | ||
3 | # ** DO NOT EDIT ** | ||
4 | |||
5 | # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 | ||
6 | # TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602 | ||
7 | |||
8 | CFG=zlibvc - Win32 Release | ||
9 | !MESSAGE This is not a valid makefile. To build this project using NMAKE, | ||
10 | !MESSAGE use the Export Makefile command and run | ||
11 | !MESSAGE | ||
12 | !MESSAGE NMAKE /f "zlibvc.mak". | ||
13 | !MESSAGE | ||
14 | !MESSAGE You can specify a configuration when running NMAKE | ||
15 | !MESSAGE by defining the macro CFG on the command line. For example: | ||
16 | !MESSAGE | ||
17 | !MESSAGE NMAKE /f "zlibvc.mak" CFG="zlibvc - Win32 Release" | ||
18 | !MESSAGE | ||
19 | !MESSAGE Possible choices for configuration are: | ||
20 | !MESSAGE | ||
21 | !MESSAGE "zlibvc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") | ||
22 | !MESSAGE "zlibvc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") | ||
23 | !MESSAGE "zlibvc - Win32 ReleaseAxp" (based on\ | ||
24 | "Win32 (ALPHA) Dynamic-Link Library") | ||
25 | !MESSAGE "zlibvc - Win32 ReleaseWithoutAsm" (based on\ | ||
26 | "Win32 (x86) Dynamic-Link Library") | ||
27 | !MESSAGE "zlibvc - Win32 ReleaseWithoutCrtdll" (based on\ | ||
28 | "Win32 (x86) Dynamic-Link Library") | ||
29 | !MESSAGE | ||
30 | |||
31 | # Begin Project | ||
32 | # PROP Scc_ProjName "" | ||
33 | # PROP Scc_LocalPath "" | ||
34 | |||
35 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
36 | |||
37 | # PROP BASE Use_MFC 0 | ||
38 | # PROP BASE Use_Debug_Libraries 0 | ||
39 | # PROP BASE Output_Dir ".\Release" | ||
40 | # PROP BASE Intermediate_Dir ".\Release" | ||
41 | # PROP BASE Target_Dir "" | ||
42 | # PROP Use_MFC 0 | ||
43 | # PROP Use_Debug_Libraries 0 | ||
44 | # PROP Output_Dir ".\Release" | ||
45 | # PROP Intermediate_Dir ".\Release" | ||
46 | # PROP Ignore_Export_Lib 0 | ||
47 | # PROP Target_Dir "" | ||
48 | CPP=cl.exe | ||
49 | # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c | ||
50 | # ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /YX /FD /c | ||
51 | MTL=midl.exe | ||
52 | # ADD BASE MTL /nologo /D "NDEBUG" /win32 | ||
53 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
54 | RSC=rc.exe | ||
55 | # ADD BASE RSC /l 0x40c /d "NDEBUG" | ||
56 | # ADD RSC /l 0x40c /d "NDEBUG" | ||
57 | BSC32=bscmake.exe | ||
58 | # ADD BASE BSC32 /nologo | ||
59 | # ADD BSC32 /nologo | ||
60 | LINK32=link.exe | ||
61 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 | ||
62 | # ADD LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll" | ||
63 | # SUBTRACT LINK32 /pdb:none | ||
64 | |||
65 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
66 | |||
67 | # PROP BASE Use_MFC 0 | ||
68 | # PROP BASE Use_Debug_Libraries 1 | ||
69 | # PROP BASE Output_Dir ".\Debug" | ||
70 | # PROP BASE Intermediate_Dir ".\Debug" | ||
71 | # PROP BASE Target_Dir "" | ||
72 | # PROP Use_MFC 0 | ||
73 | # PROP Use_Debug_Libraries 1 | ||
74 | # PROP Output_Dir ".\Debug" | ||
75 | # PROP Intermediate_Dir ".\Debug" | ||
76 | # PROP Target_Dir "" | ||
77 | CPP=cl.exe | ||
78 | # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c | ||
79 | # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /YX /FD /c | ||
80 | MTL=midl.exe | ||
81 | # ADD BASE MTL /nologo /D "_DEBUG" /win32 | ||
82 | # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 | ||
83 | RSC=rc.exe | ||
84 | # ADD BASE RSC /l 0x40c /d "_DEBUG" | ||
85 | # ADD RSC /l 0x40c /d "_DEBUG" | ||
86 | BSC32=bscmake.exe | ||
87 | # ADD BASE BSC32 /nologo | ||
88 | # ADD BSC32 /nologo | ||
89 | LINK32=link.exe | ||
90 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 | ||
91 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:".\Debug\zlib.dll" | ||
92 | |||
93 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
94 | |||
95 | # PROP BASE Use_MFC 0 | ||
96 | # PROP BASE Use_Debug_Libraries 0 | ||
97 | # PROP BASE Output_Dir "zlibvc__" | ||
98 | # PROP BASE Intermediate_Dir "zlibvc__" | ||
99 | # PROP BASE Ignore_Export_Lib 0 | ||
100 | # PROP BASE Target_Dir "" | ||
101 | # PROP Use_MFC 0 | ||
102 | # PROP Use_Debug_Libraries 0 | ||
103 | # PROP Output_Dir "zlibvc__" | ||
104 | # PROP Intermediate_Dir "zlibvc__" | ||
105 | # PROP Ignore_Export_Lib 0 | ||
106 | # PROP Target_Dir "" | ||
107 | MTL=midl.exe | ||
108 | # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
109 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
110 | CPP=cl.exe | ||
111 | # ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c | ||
112 | # ADD CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c | ||
113 | RSC=rc.exe | ||
114 | # ADD BASE RSC /l 0x40c /d "NDEBUG" | ||
115 | # ADD RSC /l 0x40c /d "NDEBUG" | ||
116 | BSC32=bscmake.exe | ||
117 | # ADD BASE BSC32 /nologo | ||
118 | # ADD BSC32 /nologo | ||
119 | LINK32=link.exe | ||
120 | # ADD BASE LINK32 crtdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /machine:ALPHA /nodefaultlib /out:".\Release\zlib.dll" | ||
121 | # SUBTRACT BASE LINK32 /pdb:none | ||
122 | # ADD LINK32 crtdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /machine:ALPHA /nodefaultlib /out:"zlibvc__\zlib.dll" | ||
123 | # SUBTRACT LINK32 /pdb:none | ||
124 | |||
125 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
126 | |||
127 | # PROP BASE Use_MFC 0 | ||
128 | # PROP BASE Use_Debug_Libraries 0 | ||
129 | # PROP BASE Output_Dir "zlibvc_0" | ||
130 | # PROP BASE Intermediate_Dir "zlibvc_0" | ||
131 | # PROP BASE Ignore_Export_Lib 0 | ||
132 | # PROP BASE Target_Dir "" | ||
133 | # PROP Use_MFC 0 | ||
134 | # PROP Use_Debug_Libraries 0 | ||
135 | # PROP Output_Dir "zlibvc_0" | ||
136 | # PROP Intermediate_Dir "zlibvc_0" | ||
137 | # PROP Ignore_Export_Lib 0 | ||
138 | # PROP Target_Dir "" | ||
139 | CPP=cl.exe | ||
140 | # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c | ||
141 | # ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c | ||
142 | MTL=midl.exe | ||
143 | # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
144 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
145 | RSC=rc.exe | ||
146 | # ADD BASE RSC /l 0x40c /d "NDEBUG" | ||
147 | # ADD RSC /l 0x40c /d "NDEBUG" | ||
148 | BSC32=bscmake.exe | ||
149 | # ADD BASE BSC32 /nologo | ||
150 | # ADD BSC32 /nologo | ||
151 | LINK32=link.exe | ||
152 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll" | ||
153 | # SUBTRACT BASE LINK32 /pdb:none | ||
154 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\zlibvc_0\zlib.dll" | ||
155 | # SUBTRACT LINK32 /pdb:none | ||
156 | |||
157 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
158 | |||
159 | # PROP BASE Use_MFC 0 | ||
160 | # PROP BASE Use_Debug_Libraries 0 | ||
161 | # PROP BASE Output_Dir "zlibvc_1" | ||
162 | # PROP BASE Intermediate_Dir "zlibvc_1" | ||
163 | # PROP BASE Ignore_Export_Lib 0 | ||
164 | # PROP BASE Target_Dir "" | ||
165 | # PROP Use_MFC 0 | ||
166 | # PROP Use_Debug_Libraries 0 | ||
167 | # PROP Output_Dir "zlibvc_1" | ||
168 | # PROP Intermediate_Dir "zlibvc_1" | ||
169 | # PROP Ignore_Export_Lib 0 | ||
170 | # PROP Target_Dir "" | ||
171 | CPP=cl.exe | ||
172 | # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /YX /FD /c | ||
173 | # ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /YX /FD /c | ||
174 | MTL=midl.exe | ||
175 | # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
176 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 | ||
177 | RSC=rc.exe | ||
178 | # ADD BASE RSC /l 0x40c /d "NDEBUG" | ||
179 | # ADD RSC /l 0x40c /d "NDEBUG" | ||
180 | BSC32=bscmake.exe | ||
181 | # ADD BASE BSC32 /nologo | ||
182 | # ADD BSC32 /nologo | ||
183 | LINK32=link.exe | ||
184 | # ADD BASE LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll" | ||
185 | # SUBTRACT BASE LINK32 /pdb:none | ||
186 | # ADD LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\zlibvc_1\zlib.dll" | ||
187 | # SUBTRACT LINK32 /pdb:none | ||
188 | |||
189 | !ENDIF | ||
190 | |||
191 | # Begin Target | ||
192 | |||
193 | # Name "zlibvc - Win32 Release" | ||
194 | # Name "zlibvc - Win32 Debug" | ||
195 | # Name "zlibvc - Win32 ReleaseAxp" | ||
196 | # Name "zlibvc - Win32 ReleaseWithoutAsm" | ||
197 | # Name "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
198 | # Begin Group "Source Files" | ||
199 | |||
200 | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" | ||
201 | # Begin Source File | ||
202 | |||
203 | SOURCE=.\adler32.c | ||
204 | |||
205 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
206 | |||
207 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
208 | |||
209 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
210 | |||
211 | DEP_CPP_ADLER=\ | ||
212 | ".\zconf.h"\ | ||
213 | ".\zlib.h"\ | ||
214 | |||
215 | |||
216 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
217 | |||
218 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
219 | |||
220 | !ENDIF | ||
221 | |||
222 | # End Source File | ||
223 | # Begin Source File | ||
224 | |||
225 | SOURCE=.\compress.c | ||
226 | |||
227 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
228 | |||
229 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
230 | |||
231 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
232 | |||
233 | DEP_CPP_COMPR=\ | ||
234 | ".\zconf.h"\ | ||
235 | ".\zlib.h"\ | ||
236 | |||
237 | |||
238 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
239 | |||
240 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
241 | |||
242 | !ENDIF | ||
243 | |||
244 | # End Source File | ||
245 | # Begin Source File | ||
246 | |||
247 | SOURCE=.\crc32.c | ||
248 | |||
249 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
250 | |||
251 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
252 | |||
253 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
254 | |||
255 | DEP_CPP_CRC32=\ | ||
256 | ".\zconf.h"\ | ||
257 | ".\zlib.h"\ | ||
258 | |||
259 | |||
260 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
261 | |||
262 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
263 | |||
264 | !ENDIF | ||
265 | |||
266 | # End Source File | ||
267 | # Begin Source File | ||
268 | |||
269 | SOURCE=.\deflate.c | ||
270 | |||
271 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
272 | |||
273 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
274 | |||
275 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
276 | |||
277 | DEP_CPP_DEFLA=\ | ||
278 | ".\deflate.h"\ | ||
279 | ".\zconf.h"\ | ||
280 | ".\zlib.h"\ | ||
281 | ".\zutil.h"\ | ||
282 | |||
283 | |||
284 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
285 | |||
286 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
287 | |||
288 | !ENDIF | ||
289 | |||
290 | # End Source File | ||
291 | # Begin Source File | ||
292 | |||
293 | SOURCE=.\gvmat32c.c | ||
294 | |||
295 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
296 | |||
297 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
298 | |||
299 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
300 | |||
301 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
302 | |||
303 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
304 | |||
305 | !ENDIF | ||
306 | |||
307 | # End Source File | ||
308 | # Begin Source File | ||
309 | |||
310 | SOURCE=.\gzio.c | ||
311 | |||
312 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
313 | |||
314 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
315 | |||
316 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
317 | |||
318 | DEP_CPP_GZIO_=\ | ||
319 | ".\zconf.h"\ | ||
320 | ".\zlib.h"\ | ||
321 | ".\zutil.h"\ | ||
322 | |||
323 | |||
324 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
325 | |||
326 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
327 | |||
328 | !ENDIF | ||
329 | |||
330 | # End Source File | ||
331 | # Begin Source File | ||
332 | |||
333 | SOURCE=.\infblock.c | ||
334 | |||
335 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
336 | |||
337 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
338 | |||
339 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
340 | |||
341 | DEP_CPP_INFBL=\ | ||
342 | ".\infblock.h"\ | ||
343 | ".\infcodes.h"\ | ||
344 | ".\inftrees.h"\ | ||
345 | ".\infutil.h"\ | ||
346 | ".\zconf.h"\ | ||
347 | ".\zlib.h"\ | ||
348 | ".\zutil.h"\ | ||
349 | |||
350 | |||
351 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
352 | |||
353 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
354 | |||
355 | !ENDIF | ||
356 | |||
357 | # End Source File | ||
358 | # Begin Source File | ||
359 | |||
360 | SOURCE=.\infcodes.c | ||
361 | |||
362 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
363 | |||
364 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
365 | |||
366 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
367 | |||
368 | DEP_CPP_INFCO=\ | ||
369 | ".\infblock.h"\ | ||
370 | ".\infcodes.h"\ | ||
371 | ".\inffast.h"\ | ||
372 | ".\inftrees.h"\ | ||
373 | ".\infutil.h"\ | ||
374 | ".\zconf.h"\ | ||
375 | ".\zlib.h"\ | ||
376 | ".\zutil.h"\ | ||
377 | |||
378 | |||
379 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
380 | |||
381 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
382 | |||
383 | !ENDIF | ||
384 | |||
385 | # End Source File | ||
386 | # Begin Source File | ||
387 | |||
388 | SOURCE=.\inffast.c | ||
389 | |||
390 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
391 | |||
392 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
393 | |||
394 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
395 | |||
396 | DEP_CPP_INFFA=\ | ||
397 | ".\infblock.h"\ | ||
398 | ".\infcodes.h"\ | ||
399 | ".\inffast.h"\ | ||
400 | ".\inftrees.h"\ | ||
401 | ".\infutil.h"\ | ||
402 | ".\zconf.h"\ | ||
403 | ".\zlib.h"\ | ||
404 | ".\zutil.h"\ | ||
405 | |||
406 | |||
407 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
408 | |||
409 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
410 | |||
411 | !ENDIF | ||
412 | |||
413 | # End Source File | ||
414 | # Begin Source File | ||
415 | |||
416 | SOURCE=.\inflate.c | ||
417 | |||
418 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
419 | |||
420 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
421 | |||
422 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
423 | |||
424 | DEP_CPP_INFLA=\ | ||
425 | ".\infblock.h"\ | ||
426 | ".\zconf.h"\ | ||
427 | ".\zlib.h"\ | ||
428 | ".\zutil.h"\ | ||
429 | |||
430 | |||
431 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
432 | |||
433 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
434 | |||
435 | !ENDIF | ||
436 | |||
437 | # End Source File | ||
438 | # Begin Source File | ||
439 | |||
440 | SOURCE=.\inftrees.c | ||
441 | |||
442 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
443 | |||
444 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
445 | |||
446 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
447 | |||
448 | DEP_CPP_INFTR=\ | ||
449 | ".\inftrees.h"\ | ||
450 | ".\zconf.h"\ | ||
451 | ".\zlib.h"\ | ||
452 | ".\zutil.h"\ | ||
453 | |||
454 | |||
455 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
456 | |||
457 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
458 | |||
459 | !ENDIF | ||
460 | |||
461 | # End Source File | ||
462 | # Begin Source File | ||
463 | |||
464 | SOURCE=.\infutil.c | ||
465 | |||
466 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
467 | |||
468 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
469 | |||
470 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
471 | |||
472 | DEP_CPP_INFUT=\ | ||
473 | ".\infblock.h"\ | ||
474 | ".\infcodes.h"\ | ||
475 | ".\inftrees.h"\ | ||
476 | ".\infutil.h"\ | ||
477 | ".\zconf.h"\ | ||
478 | ".\zlib.h"\ | ||
479 | ".\zutil.h"\ | ||
480 | |||
481 | |||
482 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
483 | |||
484 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
485 | |||
486 | !ENDIF | ||
487 | |||
488 | # End Source File | ||
489 | # Begin Source File | ||
490 | |||
491 | SOURCE=.\trees.c | ||
492 | |||
493 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
494 | |||
495 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
496 | |||
497 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
498 | |||
499 | DEP_CPP_TREES=\ | ||
500 | ".\deflate.h"\ | ||
501 | ".\zconf.h"\ | ||
502 | ".\zlib.h"\ | ||
503 | ".\zutil.h"\ | ||
504 | |||
505 | |||
506 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
507 | |||
508 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
509 | |||
510 | !ENDIF | ||
511 | |||
512 | # End Source File | ||
513 | # Begin Source File | ||
514 | |||
515 | SOURCE=.\uncompr.c | ||
516 | |||
517 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
518 | |||
519 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
520 | |||
521 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
522 | |||
523 | DEP_CPP_UNCOM=\ | ||
524 | ".\zconf.h"\ | ||
525 | ".\zlib.h"\ | ||
526 | |||
527 | |||
528 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
529 | |||
530 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
531 | |||
532 | !ENDIF | ||
533 | |||
534 | # End Source File | ||
535 | # Begin Source File | ||
536 | |||
537 | SOURCE=.\zlib.rc | ||
538 | # End Source File | ||
539 | # Begin Source File | ||
540 | |||
541 | SOURCE=.\zlibvc.def | ||
542 | # End Source File | ||
543 | # Begin Source File | ||
544 | |||
545 | SOURCE=.\zutil.c | ||
546 | |||
547 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
548 | |||
549 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
550 | |||
551 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp" | ||
552 | |||
553 | DEP_CPP_ZUTIL=\ | ||
554 | ".\zconf.h"\ | ||
555 | ".\zlib.h"\ | ||
556 | ".\zutil.h"\ | ||
557 | |||
558 | |||
559 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm" | ||
560 | |||
561 | !ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll" | ||
562 | |||
563 | !ENDIF | ||
564 | |||
565 | # End Source File | ||
566 | # End Group | ||
567 | # Begin Group "Header Files" | ||
568 | |||
569 | # PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" | ||
570 | # Begin Source File | ||
571 | |||
572 | SOURCE=.\deflate.h | ||
573 | # End Source File | ||
574 | # Begin Source File | ||
575 | |||
576 | SOURCE=.\infblock.h | ||
577 | # End Source File | ||
578 | # Begin Source File | ||
579 | |||
580 | SOURCE=.\infcodes.h | ||
581 | # End Source File | ||
582 | # Begin Source File | ||
583 | |||
584 | SOURCE=.\inffast.h | ||
585 | # End Source File | ||
586 | # Begin Source File | ||
587 | |||
588 | SOURCE=.\inftrees.h | ||
589 | # End Source File | ||
590 | # Begin Source File | ||
591 | |||
592 | SOURCE=.\infutil.h | ||
593 | # End Source File | ||
594 | # Begin Source File | ||
595 | |||
596 | SOURCE=.\zconf.h | ||
597 | # End Source File | ||
598 | # Begin Source File | ||
599 | |||
600 | SOURCE=.\zlib.h | ||
601 | # End Source File | ||
602 | # Begin Source File | ||
603 | |||
604 | SOURCE=.\zutil.h | ||
605 | # End Source File | ||
606 | # End Group | ||
607 | # Begin Group "Resource Files" | ||
608 | |||
609 | # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" | ||
610 | # End Group | ||
611 | # End Target | ||
612 | # End Project | ||
diff --git a/contrib/asm386/zlibvc.dsw b/contrib/asm386/zlibvc.dsw new file mode 100644 index 0000000..b62e50b --- /dev/null +++ b/contrib/asm386/zlibvc.dsw | |||
@@ -0,0 +1,29 @@ | |||
1 | Microsoft Developer Studio Workspace File, Format Version 5.00 | ||
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! | ||
3 | |||
4 | ############################################################################### | ||
5 | |||
6 | Project: "zlibvc"=".\zlibvc.dsp" - Package Owner=<4> | ||
7 | |||
8 | Package=<5> | ||
9 | {{{ | ||
10 | }}} | ||
11 | |||
12 | Package=<4> | ||
13 | {{{ | ||
14 | }}} | ||
15 | |||
16 | ############################################################################### | ||
17 | |||
18 | Global: | ||
19 | |||
20 | Package=<5> | ||
21 | {{{ | ||
22 | }}} | ||
23 | |||
24 | Package=<3> | ||
25 | {{{ | ||
26 | }}} | ||
27 | |||
28 | ############################################################################### | ||
29 | |||
diff --git a/contrib/asm386/zlibvc.mak b/contrib/asm386/zlibvc.mak deleted file mode 100644 index ae3d14b..0000000 --- a/contrib/asm386/zlibvc.mak +++ /dev/null | |||
@@ -1,781 +0,0 @@ | |||
1 | # Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 | ||
2 | # ** DO NOT EDIT ** | ||
3 | |||
4 | # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 | ||
5 | |||
6 | !IF "$(CFG)" == "" | ||
7 | CFG=zlibvc - Win32 Debug | ||
8 | !MESSAGE No configuration specified. Defaulting to zlibvc - Win32 Debug. | ||
9 | !ENDIF | ||
10 | |||
11 | !IF "$(CFG)" != "zlibvc - Win32 Release" && "$(CFG)" != "zlibvc - Win32 Debug" | ||
12 | !MESSAGE Invalid configuration "$(CFG)" specified. | ||
13 | !MESSAGE You can specify a configuration when running NMAKE on this makefile | ||
14 | !MESSAGE by defining the macro CFG on the command line. For example: | ||
15 | !MESSAGE | ||
16 | !MESSAGE NMAKE /f "zlibvc.mak" CFG="zlibvc - Win32 Debug" | ||
17 | !MESSAGE | ||
18 | !MESSAGE Possible choices for configuration are: | ||
19 | !MESSAGE | ||
20 | !MESSAGE "zlibvc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") | ||
21 | !MESSAGE "zlibvc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") | ||
22 | !MESSAGE | ||
23 | !ERROR An invalid configuration is specified. | ||
24 | !ENDIF | ||
25 | |||
26 | !IF "$(OS)" == "Windows_NT" | ||
27 | NULL= | ||
28 | !ELSE | ||
29 | NULL=nul | ||
30 | !ENDIF | ||
31 | ################################################################################ | ||
32 | # Begin Project | ||
33 | # PROP Target_Last_Scanned "zlibvc - Win32 Debug" | ||
34 | CPP=cl.exe | ||
35 | RSC=rc.exe | ||
36 | MTL=mktyplib.exe | ||
37 | |||
38 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
39 | |||
40 | # PROP BASE Use_MFC 0 | ||
41 | # PROP BASE Use_Debug_Libraries 0 | ||
42 | # PROP BASE Output_Dir "Release" | ||
43 | # PROP BASE Intermediate_Dir "Release" | ||
44 | # PROP BASE Target_Dir "" | ||
45 | # PROP Use_MFC 0 | ||
46 | # PROP Use_Debug_Libraries 0 | ||
47 | # PROP Output_Dir "Release" | ||
48 | # PROP Intermediate_Dir "Release" | ||
49 | # PROP Target_Dir "" | ||
50 | OUTDIR=.\Release | ||
51 | INTDIR=.\Release | ||
52 | |||
53 | ALL : "$(OUTDIR)\zlib.dll" "$(OUTDIR)\zlibvc.bsc" | ||
54 | |||
55 | CLEAN : | ||
56 | -@erase "$(INTDIR)\adler32.obj" | ||
57 | -@erase "$(INTDIR)\adler32.sbr" | ||
58 | -@erase "$(INTDIR)\compress.obj" | ||
59 | -@erase "$(INTDIR)\compress.sbr" | ||
60 | -@erase "$(INTDIR)\crc32.obj" | ||
61 | -@erase "$(INTDIR)\crc32.sbr" | ||
62 | -@erase "$(INTDIR)\deflate.obj" | ||
63 | -@erase "$(INTDIR)\deflate.sbr" | ||
64 | -@erase "$(INTDIR)\gvmat32c.obj" | ||
65 | -@erase "$(INTDIR)\gvmat32c.sbr" | ||
66 | -@erase "$(INTDIR)\gzio.obj" | ||
67 | -@erase "$(INTDIR)\gzio.sbr" | ||
68 | -@erase "$(INTDIR)\infblock.obj" | ||
69 | -@erase "$(INTDIR)\infblock.sbr" | ||
70 | -@erase "$(INTDIR)\infcodes.obj" | ||
71 | -@erase "$(INTDIR)\infcodes.sbr" | ||
72 | -@erase "$(INTDIR)\inffast.obj" | ||
73 | -@erase "$(INTDIR)\inffast.sbr" | ||
74 | -@erase "$(INTDIR)\inflate.obj" | ||
75 | -@erase "$(INTDIR)\inflate.sbr" | ||
76 | -@erase "$(INTDIR)\inftrees.obj" | ||
77 | -@erase "$(INTDIR)\inftrees.sbr" | ||
78 | -@erase "$(INTDIR)\infutil.obj" | ||
79 | -@erase "$(INTDIR)\infutil.sbr" | ||
80 | -@erase "$(INTDIR)\trees.obj" | ||
81 | -@erase "$(INTDIR)\trees.sbr" | ||
82 | -@erase "$(INTDIR)\uncompr.obj" | ||
83 | -@erase "$(INTDIR)\uncompr.sbr" | ||
84 | -@erase "$(INTDIR)\zlib.res" | ||
85 | -@erase "$(INTDIR)\zutil.obj" | ||
86 | -@erase "$(INTDIR)\zutil.sbr" | ||
87 | -@erase "$(OUTDIR)\zlib.dll" | ||
88 | -@erase "$(OUTDIR)\zlib.exp" | ||
89 | -@erase "$(OUTDIR)\zlib.lib" | ||
90 | -@erase "$(OUTDIR)\zlib.map" | ||
91 | -@erase "$(OUTDIR)\zlibvc.bsc" | ||
92 | |||
93 | "$(OUTDIR)" : | ||
94 | if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" | ||
95 | |||
96 | # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c | ||
97 | # ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D fdopen=_fdopen /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "ASMV" /FR /YX /c | ||
98 | CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "NDEBUG" /D fdopen=_fdopen /D "WIN32" /D\ | ||
99 | "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "ASMV"\ | ||
100 | /FR"$(INTDIR)/" /Fp"$(INTDIR)/zlibvc.pch" /YX /Fo"$(INTDIR)/" /c | ||
101 | CPP_OBJS=.\Release/ | ||
102 | CPP_SBRS=.\Release/ | ||
103 | # ADD BASE MTL /nologo /D "NDEBUG" /win32 | ||
104 | # ADD MTL /nologo /D "NDEBUG" /win32 | ||
105 | MTL_PROJ=/nologo /D "NDEBUG" /win32 | ||
106 | # ADD BASE RSC /l 0x40c /d "NDEBUG" | ||
107 | # ADD RSC /l 0x40c /d "NDEBUG" | ||
108 | RSC_PROJ=/l 0x40c /fo"$(INTDIR)/zlib.res" /d "NDEBUG" | ||
109 | BSC32=bscmake.exe | ||
110 | # ADD BASE BSC32 /nologo | ||
111 | # ADD BSC32 /nologo | ||
112 | BSC32_FLAGS=/nologo /o"$(OUTDIR)/zlibvc.bsc" | ||
113 | BSC32_SBRS= \ | ||
114 | "$(INTDIR)\adler32.sbr" \ | ||
115 | "$(INTDIR)\compress.sbr" \ | ||
116 | "$(INTDIR)\crc32.sbr" \ | ||
117 | "$(INTDIR)\deflate.sbr" \ | ||
118 | "$(INTDIR)\gvmat32c.sbr" \ | ||
119 | "$(INTDIR)\gzio.sbr" \ | ||
120 | "$(INTDIR)\infblock.sbr" \ | ||
121 | "$(INTDIR)\infcodes.sbr" \ | ||
122 | "$(INTDIR)\inffast.sbr" \ | ||
123 | "$(INTDIR)\inflate.sbr" \ | ||
124 | "$(INTDIR)\inftrees.sbr" \ | ||
125 | "$(INTDIR)\infutil.sbr" \ | ||
126 | "$(INTDIR)\trees.sbr" \ | ||
127 | "$(INTDIR)\uncompr.sbr" \ | ||
128 | "$(INTDIR)\zutil.sbr" | ||
129 | |||
130 | "$(OUTDIR)\zlibvc.bsc" : "$(OUTDIR)" $(BSC32_SBRS) | ||
131 | $(BSC32) @<< | ||
132 | $(BSC32_FLAGS) $(BSC32_SBRS) | ||
133 | << | ||
134 | |||
135 | LINK32=link.exe | ||
136 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 | ||
137 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:"Release/zlib.dll" | ||
138 | LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ | ||
139 | advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo\ | ||
140 | /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)/zlib.pdb"\ | ||
141 | /map:"$(INTDIR)/zlib.map" /machine:I386 /nodefaultlib /def:".\zlib.def"\ | ||
142 | /out:"$(OUTDIR)/zlib.dll" /implib:"$(OUTDIR)/zlib.lib" | ||
143 | DEF_FILE= \ | ||
144 | ".\zlib.def" | ||
145 | LINK32_OBJS= \ | ||
146 | "$(INTDIR)\adler32.obj" \ | ||
147 | "$(INTDIR)\compress.obj" \ | ||
148 | "$(INTDIR)\crc32.obj" \ | ||
149 | "$(INTDIR)\deflate.obj" \ | ||
150 | "$(INTDIR)\gvmat32c.obj" \ | ||
151 | "$(INTDIR)\gzio.obj" \ | ||
152 | "$(INTDIR)\infblock.obj" \ | ||
153 | "$(INTDIR)\infcodes.obj" \ | ||
154 | "$(INTDIR)\inffast.obj" \ | ||
155 | "$(INTDIR)\inflate.obj" \ | ||
156 | "$(INTDIR)\inftrees.obj" \ | ||
157 | "$(INTDIR)\infutil.obj" \ | ||
158 | "$(INTDIR)\trees.obj" \ | ||
159 | "$(INTDIR)\uncompr.obj" \ | ||
160 | "$(INTDIR)\zlib.res" \ | ||
161 | "$(INTDIR)\zutil.obj" \ | ||
162 | ".\GVMAT32.obj" | ||
163 | |||
164 | "$(OUTDIR)\zlib.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) | ||
165 | $(LINK32) @<< | ||
166 | $(LINK32_FLAGS) $(LINK32_OBJS) | ||
167 | << | ||
168 | |||
169 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
170 | |||
171 | # PROP BASE Use_MFC 0 | ||
172 | # PROP BASE Use_Debug_Libraries 1 | ||
173 | # PROP BASE Output_Dir "Debug" | ||
174 | # PROP BASE Intermediate_Dir "Debug" | ||
175 | # PROP BASE Target_Dir "" | ||
176 | # PROP Use_MFC 0 | ||
177 | # PROP Use_Debug_Libraries 1 | ||
178 | # PROP Output_Dir "Debug" | ||
179 | # PROP Intermediate_Dir "Debug" | ||
180 | # PROP Target_Dir "" | ||
181 | OUTDIR=.\Debug | ||
182 | INTDIR=.\Debug | ||
183 | |||
184 | ALL : "$(OUTDIR)\zlib.dll" | ||
185 | |||
186 | CLEAN : | ||
187 | -@erase "$(INTDIR)\adler32.obj" | ||
188 | -@erase "$(INTDIR)\compress.obj" | ||
189 | -@erase "$(INTDIR)\crc32.obj" | ||
190 | -@erase "$(INTDIR)\deflate.obj" | ||
191 | -@erase "$(INTDIR)\gvmat32c.obj" | ||
192 | -@erase "$(INTDIR)\gzio.obj" | ||
193 | -@erase "$(INTDIR)\infblock.obj" | ||
194 | -@erase "$(INTDIR)\infcodes.obj" | ||
195 | -@erase "$(INTDIR)\inffast.obj" | ||
196 | -@erase "$(INTDIR)\inflate.obj" | ||
197 | -@erase "$(INTDIR)\inftrees.obj" | ||
198 | -@erase "$(INTDIR)\infutil.obj" | ||
199 | -@erase "$(INTDIR)\trees.obj" | ||
200 | -@erase "$(INTDIR)\uncompr.obj" | ||
201 | -@erase "$(INTDIR)\vc40.idb" | ||
202 | -@erase "$(INTDIR)\vc40.pdb" | ||
203 | -@erase "$(INTDIR)\zlib.res" | ||
204 | -@erase "$(INTDIR)\zutil.obj" | ||
205 | -@erase "$(OUTDIR)\zlib.dll" | ||
206 | -@erase "$(OUTDIR)\zlib.exp" | ||
207 | -@erase "$(OUTDIR)\zlib.ilk" | ||
208 | -@erase "$(OUTDIR)\zlib.lib" | ||
209 | -@erase "$(OUTDIR)\zlib.pdb" | ||
210 | |||
211 | "$(OUTDIR)" : | ||
212 | if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" | ||
213 | |||
214 | # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c | ||
215 | # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /YX /c | ||
216 | CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS"\ | ||
217 | /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL"\ | ||
218 | /Fp"$(INTDIR)/zlibvc.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c | ||
219 | CPP_OBJS=.\Debug/ | ||
220 | CPP_SBRS=.\. | ||
221 | # ADD BASE MTL /nologo /D "_DEBUG" /win32 | ||
222 | # ADD MTL /nologo /D "_DEBUG" /win32 | ||
223 | MTL_PROJ=/nologo /D "_DEBUG" /win32 | ||
224 | # ADD BASE RSC /l 0x40c /d "_DEBUG" | ||
225 | # ADD RSC /l 0x40c /d "_DEBUG" | ||
226 | RSC_PROJ=/l 0x40c /fo"$(INTDIR)/zlib.res" /d "_DEBUG" | ||
227 | BSC32=bscmake.exe | ||
228 | # ADD BASE BSC32 /nologo | ||
229 | # ADD BSC32 /nologo | ||
230 | BSC32_FLAGS=/nologo /o"$(OUTDIR)/zlibvc.bsc" | ||
231 | BSC32_SBRS= \ | ||
232 | |||
233 | LINK32=link.exe | ||
234 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 | ||
235 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/zlib.dll" | ||
236 | LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ | ||
237 | advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo\ | ||
238 | /subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)/zlib.pdb" /debug\ | ||
239 | /machine:I386 /def:".\zlib.def" /out:"$(OUTDIR)/zlib.dll"\ | ||
240 | /implib:"$(OUTDIR)/zlib.lib" | ||
241 | DEF_FILE= \ | ||
242 | ".\zlib.def" | ||
243 | LINK32_OBJS= \ | ||
244 | "$(INTDIR)\adler32.obj" \ | ||
245 | "$(INTDIR)\compress.obj" \ | ||
246 | "$(INTDIR)\crc32.obj" \ | ||
247 | "$(INTDIR)\deflate.obj" \ | ||
248 | "$(INTDIR)\gvmat32c.obj" \ | ||
249 | "$(INTDIR)\gzio.obj" \ | ||
250 | "$(INTDIR)\infblock.obj" \ | ||
251 | "$(INTDIR)\infcodes.obj" \ | ||
252 | "$(INTDIR)\inffast.obj" \ | ||
253 | "$(INTDIR)\inflate.obj" \ | ||
254 | "$(INTDIR)\inftrees.obj" \ | ||
255 | "$(INTDIR)\infutil.obj" \ | ||
256 | "$(INTDIR)\trees.obj" \ | ||
257 | "$(INTDIR)\uncompr.obj" \ | ||
258 | "$(INTDIR)\zlib.res" \ | ||
259 | "$(INTDIR)\zutil.obj" \ | ||
260 | ".\GVMAT32.obj" | ||
261 | |||
262 | "$(OUTDIR)\zlib.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) | ||
263 | $(LINK32) @<< | ||
264 | $(LINK32_FLAGS) $(LINK32_OBJS) | ||
265 | << | ||
266 | |||
267 | !ENDIF | ||
268 | |||
269 | .c{$(CPP_OBJS)}.obj: | ||
270 | $(CPP) $(CPP_PROJ) $< | ||
271 | |||
272 | .cpp{$(CPP_OBJS)}.obj: | ||
273 | $(CPP) $(CPP_PROJ) $< | ||
274 | |||
275 | .cxx{$(CPP_OBJS)}.obj: | ||
276 | $(CPP) $(CPP_PROJ) $< | ||
277 | |||
278 | .c{$(CPP_SBRS)}.sbr: | ||
279 | $(CPP) $(CPP_PROJ) $< | ||
280 | |||
281 | .cpp{$(CPP_SBRS)}.sbr: | ||
282 | $(CPP) $(CPP_PROJ) $< | ||
283 | |||
284 | .cxx{$(CPP_SBRS)}.sbr: | ||
285 | $(CPP) $(CPP_PROJ) $< | ||
286 | |||
287 | ################################################################################ | ||
288 | # Begin Target | ||
289 | |||
290 | # Name "zlibvc - Win32 Release" | ||
291 | # Name "zlibvc - Win32 Debug" | ||
292 | |||
293 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
294 | |||
295 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
296 | |||
297 | !ENDIF | ||
298 | |||
299 | ################################################################################ | ||
300 | # Begin Source File | ||
301 | |||
302 | SOURCE=.\adler32.c | ||
303 | DEP_CPP_ADLER=\ | ||
304 | ".\zconf.h"\ | ||
305 | ".\zlib.h"\ | ||
306 | |||
307 | |||
308 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
309 | |||
310 | |||
311 | "$(INTDIR)\adler32.obj" : $(SOURCE) $(DEP_CPP_ADLER) "$(INTDIR)" | ||
312 | |||
313 | "$(INTDIR)\adler32.sbr" : $(SOURCE) $(DEP_CPP_ADLER) "$(INTDIR)" | ||
314 | |||
315 | |||
316 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
317 | |||
318 | |||
319 | "$(INTDIR)\adler32.obj" : $(SOURCE) $(DEP_CPP_ADLER) "$(INTDIR)" | ||
320 | |||
321 | |||
322 | !ENDIF | ||
323 | |||
324 | # End Source File | ||
325 | ################################################################################ | ||
326 | # Begin Source File | ||
327 | |||
328 | SOURCE=.\compress.c | ||
329 | DEP_CPP_COMPR=\ | ||
330 | ".\zconf.h"\ | ||
331 | ".\zlib.h"\ | ||
332 | |||
333 | |||
334 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
335 | |||
336 | |||
337 | "$(INTDIR)\compress.obj" : $(SOURCE) $(DEP_CPP_COMPR) "$(INTDIR)" | ||
338 | |||
339 | "$(INTDIR)\compress.sbr" : $(SOURCE) $(DEP_CPP_COMPR) "$(INTDIR)" | ||
340 | |||
341 | |||
342 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
343 | |||
344 | |||
345 | "$(INTDIR)\compress.obj" : $(SOURCE) $(DEP_CPP_COMPR) "$(INTDIR)" | ||
346 | |||
347 | |||
348 | !ENDIF | ||
349 | |||
350 | # End Source File | ||
351 | ################################################################################ | ||
352 | # Begin Source File | ||
353 | |||
354 | SOURCE=.\crc32.c | ||
355 | DEP_CPP_CRC32=\ | ||
356 | ".\zconf.h"\ | ||
357 | ".\zlib.h"\ | ||
358 | |||
359 | |||
360 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
361 | |||
362 | |||
363 | "$(INTDIR)\crc32.obj" : $(SOURCE) $(DEP_CPP_CRC32) "$(INTDIR)" | ||
364 | |||
365 | "$(INTDIR)\crc32.sbr" : $(SOURCE) $(DEP_CPP_CRC32) "$(INTDIR)" | ||
366 | |||
367 | |||
368 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
369 | |||
370 | |||
371 | "$(INTDIR)\crc32.obj" : $(SOURCE) $(DEP_CPP_CRC32) "$(INTDIR)" | ||
372 | |||
373 | |||
374 | !ENDIF | ||
375 | |||
376 | # End Source File | ||
377 | ################################################################################ | ||
378 | # Begin Source File | ||
379 | |||
380 | SOURCE=.\deflate.c | ||
381 | |||
382 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
383 | |||
384 | DEP_CPP_DEFLA=\ | ||
385 | ".\deflate.h"\ | ||
386 | ".\zconf.h"\ | ||
387 | ".\zlib.h"\ | ||
388 | ".\zutil.h"\ | ||
389 | |||
390 | |||
391 | "$(INTDIR)\deflate.obj" : $(SOURCE) $(DEP_CPP_DEFLA) "$(INTDIR)" | ||
392 | |||
393 | "$(INTDIR)\deflate.sbr" : $(SOURCE) $(DEP_CPP_DEFLA) "$(INTDIR)" | ||
394 | |||
395 | |||
396 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
397 | |||
398 | DEP_CPP_DEFLA=\ | ||
399 | ".\deflate.h"\ | ||
400 | ".\zconf.h"\ | ||
401 | ".\zlib.h"\ | ||
402 | ".\zutil.h"\ | ||
403 | |||
404 | NODEP_CPP_DEFLA=\ | ||
405 | ".\local"\ | ||
406 | |||
407 | |||
408 | "$(INTDIR)\deflate.obj" : $(SOURCE) $(DEP_CPP_DEFLA) "$(INTDIR)" | ||
409 | |||
410 | |||
411 | !ENDIF | ||
412 | |||
413 | # End Source File | ||
414 | ################################################################################ | ||
415 | # Begin Source File | ||
416 | |||
417 | SOURCE=.\gzio.c | ||
418 | DEP_CPP_GZIO_=\ | ||
419 | ".\zconf.h"\ | ||
420 | ".\zlib.h"\ | ||
421 | ".\zutil.h"\ | ||
422 | |||
423 | |||
424 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
425 | |||
426 | |||
427 | "$(INTDIR)\gzio.obj" : $(SOURCE) $(DEP_CPP_GZIO_) "$(INTDIR)" | ||
428 | |||
429 | "$(INTDIR)\gzio.sbr" : $(SOURCE) $(DEP_CPP_GZIO_) "$(INTDIR)" | ||
430 | |||
431 | |||
432 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
433 | |||
434 | |||
435 | "$(INTDIR)\gzio.obj" : $(SOURCE) $(DEP_CPP_GZIO_) "$(INTDIR)" | ||
436 | |||
437 | |||
438 | !ENDIF | ||
439 | |||
440 | # End Source File | ||
441 | ################################################################################ | ||
442 | # Begin Source File | ||
443 | |||
444 | SOURCE=.\infblock.c | ||
445 | DEP_CPP_INFBL=\ | ||
446 | ".\infblock.h"\ | ||
447 | ".\infcodes.h"\ | ||
448 | ".\inftrees.h"\ | ||
449 | ".\infutil.h"\ | ||
450 | ".\zconf.h"\ | ||
451 | ".\zlib.h"\ | ||
452 | ".\zutil.h"\ | ||
453 | |||
454 | |||
455 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
456 | |||
457 | |||
458 | "$(INTDIR)\infblock.obj" : $(SOURCE) $(DEP_CPP_INFBL) "$(INTDIR)" | ||
459 | |||
460 | "$(INTDIR)\infblock.sbr" : $(SOURCE) $(DEP_CPP_INFBL) "$(INTDIR)" | ||
461 | |||
462 | |||
463 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
464 | |||
465 | |||
466 | "$(INTDIR)\infblock.obj" : $(SOURCE) $(DEP_CPP_INFBL) "$(INTDIR)" | ||
467 | |||
468 | |||
469 | !ENDIF | ||
470 | |||
471 | # End Source File | ||
472 | ################################################################################ | ||
473 | # Begin Source File | ||
474 | |||
475 | SOURCE=.\infcodes.c | ||
476 | DEP_CPP_INFCO=\ | ||
477 | ".\infblock.h"\ | ||
478 | ".\infcodes.h"\ | ||
479 | ".\inffast.h"\ | ||
480 | ".\inftrees.h"\ | ||
481 | ".\infutil.h"\ | ||
482 | ".\zconf.h"\ | ||
483 | ".\zlib.h"\ | ||
484 | ".\zutil.h"\ | ||
485 | |||
486 | |||
487 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
488 | |||
489 | |||
490 | "$(INTDIR)\infcodes.obj" : $(SOURCE) $(DEP_CPP_INFCO) "$(INTDIR)" | ||
491 | |||
492 | "$(INTDIR)\infcodes.sbr" : $(SOURCE) $(DEP_CPP_INFCO) "$(INTDIR)" | ||
493 | |||
494 | |||
495 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
496 | |||
497 | |||
498 | "$(INTDIR)\infcodes.obj" : $(SOURCE) $(DEP_CPP_INFCO) "$(INTDIR)" | ||
499 | |||
500 | |||
501 | !ENDIF | ||
502 | |||
503 | # End Source File | ||
504 | ################################################################################ | ||
505 | # Begin Source File | ||
506 | |||
507 | SOURCE=.\inffast.c | ||
508 | DEP_CPP_INFFA=\ | ||
509 | ".\infblock.h"\ | ||
510 | ".\infcodes.h"\ | ||
511 | ".\inffast.h"\ | ||
512 | ".\inftrees.h"\ | ||
513 | ".\infutil.h"\ | ||
514 | ".\zconf.h"\ | ||
515 | ".\zlib.h"\ | ||
516 | ".\zutil.h"\ | ||
517 | |||
518 | |||
519 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
520 | |||
521 | |||
522 | "$(INTDIR)\inffast.obj" : $(SOURCE) $(DEP_CPP_INFFA) "$(INTDIR)" | ||
523 | |||
524 | "$(INTDIR)\inffast.sbr" : $(SOURCE) $(DEP_CPP_INFFA) "$(INTDIR)" | ||
525 | |||
526 | |||
527 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
528 | |||
529 | |||
530 | "$(INTDIR)\inffast.obj" : $(SOURCE) $(DEP_CPP_INFFA) "$(INTDIR)" | ||
531 | |||
532 | |||
533 | !ENDIF | ||
534 | |||
535 | # End Source File | ||
536 | ################################################################################ | ||
537 | # Begin Source File | ||
538 | |||
539 | SOURCE=.\inflate.c | ||
540 | DEP_CPP_INFLA=\ | ||
541 | ".\infblock.h"\ | ||
542 | ".\zconf.h"\ | ||
543 | ".\zlib.h"\ | ||
544 | ".\zutil.h"\ | ||
545 | |||
546 | |||
547 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
548 | |||
549 | |||
550 | "$(INTDIR)\inflate.obj" : $(SOURCE) $(DEP_CPP_INFLA) "$(INTDIR)" | ||
551 | |||
552 | "$(INTDIR)\inflate.sbr" : $(SOURCE) $(DEP_CPP_INFLA) "$(INTDIR)" | ||
553 | |||
554 | |||
555 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
556 | |||
557 | |||
558 | "$(INTDIR)\inflate.obj" : $(SOURCE) $(DEP_CPP_INFLA) "$(INTDIR)" | ||
559 | |||
560 | |||
561 | !ENDIF | ||
562 | |||
563 | # End Source File | ||
564 | ################################################################################ | ||
565 | # Begin Source File | ||
566 | |||
567 | SOURCE=.\inftrees.c | ||
568 | DEP_CPP_INFTR=\ | ||
569 | ".\inftrees.h"\ | ||
570 | ".\zconf.h"\ | ||
571 | ".\zlib.h"\ | ||
572 | ".\zutil.h"\ | ||
573 | |||
574 | |||
575 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
576 | |||
577 | |||
578 | "$(INTDIR)\inftrees.obj" : $(SOURCE) $(DEP_CPP_INFTR) "$(INTDIR)" | ||
579 | |||
580 | "$(INTDIR)\inftrees.sbr" : $(SOURCE) $(DEP_CPP_INFTR) "$(INTDIR)" | ||
581 | |||
582 | |||
583 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
584 | |||
585 | |||
586 | "$(INTDIR)\inftrees.obj" : $(SOURCE) $(DEP_CPP_INFTR) "$(INTDIR)" | ||
587 | |||
588 | |||
589 | !ENDIF | ||
590 | |||
591 | # End Source File | ||
592 | ################################################################################ | ||
593 | # Begin Source File | ||
594 | |||
595 | SOURCE=.\infutil.c | ||
596 | DEP_CPP_INFUT=\ | ||
597 | ".\infblock.h"\ | ||
598 | ".\infcodes.h"\ | ||
599 | ".\inftrees.h"\ | ||
600 | ".\infutil.h"\ | ||
601 | ".\zconf.h"\ | ||
602 | ".\zlib.h"\ | ||
603 | ".\zutil.h"\ | ||
604 | |||
605 | |||
606 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
607 | |||
608 | |||
609 | "$(INTDIR)\infutil.obj" : $(SOURCE) $(DEP_CPP_INFUT) "$(INTDIR)" | ||
610 | |||
611 | "$(INTDIR)\infutil.sbr" : $(SOURCE) $(DEP_CPP_INFUT) "$(INTDIR)" | ||
612 | |||
613 | |||
614 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
615 | |||
616 | |||
617 | "$(INTDIR)\infutil.obj" : $(SOURCE) $(DEP_CPP_INFUT) "$(INTDIR)" | ||
618 | |||
619 | |||
620 | !ENDIF | ||
621 | |||
622 | # End Source File | ||
623 | ################################################################################ | ||
624 | # Begin Source File | ||
625 | |||
626 | SOURCE=.\trees.c | ||
627 | DEP_CPP_TREES=\ | ||
628 | ".\deflate.h"\ | ||
629 | ".\zconf.h"\ | ||
630 | ".\zlib.h"\ | ||
631 | ".\zutil.h"\ | ||
632 | |||
633 | |||
634 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
635 | |||
636 | |||
637 | "$(INTDIR)\trees.obj" : $(SOURCE) $(DEP_CPP_TREES) "$(INTDIR)" | ||
638 | |||
639 | "$(INTDIR)\trees.sbr" : $(SOURCE) $(DEP_CPP_TREES) "$(INTDIR)" | ||
640 | |||
641 | |||
642 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
643 | |||
644 | |||
645 | "$(INTDIR)\trees.obj" : $(SOURCE) $(DEP_CPP_TREES) "$(INTDIR)" | ||
646 | |||
647 | |||
648 | !ENDIF | ||
649 | |||
650 | # End Source File | ||
651 | ################################################################################ | ||
652 | # Begin Source File | ||
653 | |||
654 | SOURCE=.\uncompr.c | ||
655 | |||
656 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
657 | |||
658 | DEP_CPP_UNCOM=\ | ||
659 | ".\zconf.h"\ | ||
660 | ".\zlib.h"\ | ||
661 | |||
662 | |||
663 | "$(INTDIR)\uncompr.obj" : $(SOURCE) $(DEP_CPP_UNCOM) "$(INTDIR)" | ||
664 | |||
665 | "$(INTDIR)\uncompr.sbr" : $(SOURCE) $(DEP_CPP_UNCOM) "$(INTDIR)" | ||
666 | |||
667 | |||
668 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
669 | |||
670 | DEP_CPP_UNCOM=\ | ||
671 | ".\zconf.h"\ | ||
672 | ".\zlib.h"\ | ||
673 | |||
674 | NODEP_CPP_UNCOM=\ | ||
675 | ".\uncompress"\ | ||
676 | |||
677 | |||
678 | "$(INTDIR)\uncompr.obj" : $(SOURCE) $(DEP_CPP_UNCOM) "$(INTDIR)" | ||
679 | |||
680 | |||
681 | !ENDIF | ||
682 | |||
683 | # End Source File | ||
684 | ################################################################################ | ||
685 | # Begin Source File | ||
686 | |||
687 | SOURCE=.\zutil.c | ||
688 | DEP_CPP_ZUTIL=\ | ||
689 | ".\zconf.h"\ | ||
690 | ".\zlib.h"\ | ||
691 | ".\zutil.h"\ | ||
692 | |||
693 | |||
694 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
695 | |||
696 | |||
697 | "$(INTDIR)\zutil.obj" : $(SOURCE) $(DEP_CPP_ZUTIL) "$(INTDIR)" | ||
698 | |||
699 | "$(INTDIR)\zutil.sbr" : $(SOURCE) $(DEP_CPP_ZUTIL) "$(INTDIR)" | ||
700 | |||
701 | |||
702 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
703 | |||
704 | |||
705 | "$(INTDIR)\zutil.obj" : $(SOURCE) $(DEP_CPP_ZUTIL) "$(INTDIR)" | ||
706 | |||
707 | |||
708 | !ENDIF | ||
709 | |||
710 | # End Source File | ||
711 | ################################################################################ | ||
712 | # Begin Source File | ||
713 | |||
714 | SOURCE=.\zlib.rc | ||
715 | |||
716 | "$(INTDIR)\zlib.res" : $(SOURCE) "$(INTDIR)" | ||
717 | $(RSC) $(RSC_PROJ) $(SOURCE) | ||
718 | |||
719 | |||
720 | # End Source File | ||
721 | ################################################################################ | ||
722 | # Begin Source File | ||
723 | |||
724 | SOURCE=.\zlib.def | ||
725 | |||
726 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
727 | |||
728 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
729 | |||
730 | !ENDIF | ||
731 | |||
732 | # End Source File | ||
733 | ################################################################################ | ||
734 | # Begin Source File | ||
735 | |||
736 | SOURCE=.\GVMAT32.obj | ||
737 | |||
738 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
739 | |||
740 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
741 | |||
742 | !ENDIF | ||
743 | |||
744 | # End Source File | ||
745 | ################################################################################ | ||
746 | # Begin Source File | ||
747 | |||
748 | SOURCE=.\gvmat32c.c | ||
749 | |||
750 | !IF "$(CFG)" == "zlibvc - Win32 Release" | ||
751 | |||
752 | DEP_CPP_GVMAT=\ | ||
753 | ".\deflate.h"\ | ||
754 | ".\zconf.h"\ | ||
755 | ".\zlib.h"\ | ||
756 | ".\zutil.h"\ | ||
757 | |||
758 | |||
759 | "$(INTDIR)\gvmat32c.obj" : $(SOURCE) $(DEP_CPP_GVMAT) "$(INTDIR)" | ||
760 | |||
761 | "$(INTDIR)\gvmat32c.sbr" : $(SOURCE) $(DEP_CPP_GVMAT) "$(INTDIR)" | ||
762 | |||
763 | |||
764 | !ELSEIF "$(CFG)" == "zlibvc - Win32 Debug" | ||
765 | |||
766 | DEP_CPP_GVMAT=\ | ||
767 | ".\deflate.h"\ | ||
768 | ".\zconf.h"\ | ||
769 | ".\zlib.h"\ | ||
770 | ".\zutil.h"\ | ||
771 | |||
772 | |||
773 | "$(INTDIR)\gvmat32c.obj" : $(SOURCE) $(DEP_CPP_GVMAT) "$(INTDIR)" | ||
774 | |||
775 | |||
776 | !ENDIF | ||
777 | |||
778 | # End Source File | ||
779 | # End Target | ||
780 | # End Project | ||
781 | ################################################################################ | ||
@@ -124,7 +124,7 @@ local const uLongf crc_table[256] = { | |||
124 | /* ========================================================================= | 124 | /* ========================================================================= |
125 | * This function can be used by asm versions of crc32() | 125 | * This function can be used by asm versions of crc32() |
126 | */ | 126 | */ |
127 | const uLongf * EXPORT get_crc_table() | 127 | const uLongf * ZEXPORT get_crc_table() |
128 | { | 128 | { |
129 | #ifdef DYNAMIC_CRC_TABLE | 129 | #ifdef DYNAMIC_CRC_TABLE |
130 | if (crc_table_empty) make_crc_table(); | 130 | if (crc_table_empty) make_crc_table(); |
@@ -139,7 +139,7 @@ const uLongf * EXPORT get_crc_table() | |||
139 | #define DO8(buf) DO4(buf); DO4(buf); | 139 | #define DO8(buf) DO4(buf); DO4(buf); |
140 | 140 | ||
141 | /* ========================================================================= */ | 141 | /* ========================================================================= */ |
142 | uLong EXPORT crc32(crc, buf, len) | 142 | uLong ZEXPORT crc32(crc, buf, len) |
143 | uLong crc; | 143 | uLong crc; |
144 | const Bytef *buf; | 144 | const Bytef *buf; |
145 | uInt len; | 145 | uInt len; |
@@ -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.0.8 Copyright 1995-1998 Jean-loup Gailly "; | 55 | " deflate 1.0.9 Copyright 1995-1998 Jean-loup Gailly "; |
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 |
@@ -80,7 +80,7 @@ local block_state deflate_slow OF((deflate_state *s, int flush)); | |||
80 | local void lm_init OF((deflate_state *s)); | 80 | local void lm_init OF((deflate_state *s)); |
81 | local void putShortMSB OF((deflate_state *s, uInt b)); | 81 | local void putShortMSB OF((deflate_state *s, uInt b)); |
82 | local void flush_pending OF((z_streamp strm)); | 82 | local void flush_pending OF((z_streamp strm)); |
83 | local int read_buf OF((z_streamp strm, charf *buf, unsigned size)); | 83 | local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); |
84 | #ifdef ASMV | 84 | #ifdef ASMV |
85 | void match_init OF((void)); /* asm code initialization */ | 85 | void match_init OF((void)); /* asm code initialization */ |
86 | uInt longest_match OF((deflate_state *s, IPos cur_match)); | 86 | uInt longest_match OF((deflate_state *s, IPos cur_match)); |
@@ -175,10 +175,10 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ | |||
175 | */ | 175 | */ |
176 | #define CLEAR_HASH(s) \ | 176 | #define CLEAR_HASH(s) \ |
177 | s->head[s->hash_size-1] = NIL; \ | 177 | s->head[s->hash_size-1] = NIL; \ |
178 | zmemzero((charf *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); | 178 | zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); |
179 | 179 | ||
180 | /* ========================================================================= */ | 180 | /* ========================================================================= */ |
181 | int EXPORT deflateInit_(strm, level, version, stream_size) | 181 | int ZEXPORT deflateInit_(strm, level, version, stream_size) |
182 | z_streamp strm; | 182 | z_streamp strm; |
183 | int level; | 183 | int level; |
184 | const char *version; | 184 | const char *version; |
@@ -190,7 +190,7 @@ int EXPORT deflateInit_(strm, level, version, stream_size) | |||
190 | } | 190 | } |
191 | 191 | ||
192 | /* ========================================================================= */ | 192 | /* ========================================================================= */ |
193 | int EXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, | 193 | int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, |
194 | version, stream_size) | 194 | version, stream_size) |
195 | z_streamp strm; | 195 | z_streamp strm; |
196 | int level; | 196 | int level; |
@@ -276,7 +276,7 @@ int EXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, | |||
276 | } | 276 | } |
277 | 277 | ||
278 | /* ========================================================================= */ | 278 | /* ========================================================================= */ |
279 | int EXPORT deflateSetDictionary (strm, dictionary, dictLength) | 279 | int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) |
280 | z_streamp strm; | 280 | z_streamp strm; |
281 | const Bytef *dictionary; | 281 | const Bytef *dictionary; |
282 | uInt dictLength; | 282 | uInt dictLength; |
@@ -299,7 +299,7 @@ int EXPORT deflateSetDictionary (strm, dictionary, dictLength) | |||
299 | dictionary += dictLength - length; /* use the tail of the dictionary */ | 299 | dictionary += dictLength - length; /* use the tail of the dictionary */ |
300 | #endif | 300 | #endif |
301 | } | 301 | } |
302 | zmemcpy((charf *)s->window, dictionary, length); | 302 | zmemcpy(s->window, dictionary, length); |
303 | s->strstart = length; | 303 | s->strstart = length; |
304 | s->block_start = (long)length; | 304 | s->block_start = (long)length; |
305 | 305 | ||
@@ -317,7 +317,7 @@ int EXPORT deflateSetDictionary (strm, dictionary, dictLength) | |||
317 | } | 317 | } |
318 | 318 | ||
319 | /* ========================================================================= */ | 319 | /* ========================================================================= */ |
320 | int EXPORT deflateReset (strm) | 320 | int ZEXPORT deflateReset (strm) |
321 | z_streamp strm; | 321 | z_streamp strm; |
322 | { | 322 | { |
323 | deflate_state *s; | 323 | deflate_state *s; |
@@ -347,7 +347,7 @@ int EXPORT deflateReset (strm) | |||
347 | } | 347 | } |
348 | 348 | ||
349 | /* ========================================================================= */ | 349 | /* ========================================================================= */ |
350 | int EXPORT deflateParams(strm, level, strategy) | 350 | int ZEXPORT deflateParams(strm, level, strategy) |
351 | z_streamp strm; | 351 | z_streamp strm; |
352 | int level; | 352 | int level; |
353 | int strategy; | 353 | int strategy; |
@@ -421,7 +421,7 @@ local void flush_pending(strm) | |||
421 | } | 421 | } |
422 | 422 | ||
423 | /* ========================================================================= */ | 423 | /* ========================================================================= */ |
424 | int EXPORT deflate (strm, flush) | 424 | int ZEXPORT deflate (strm, flush) |
425 | z_streamp strm; | 425 | z_streamp strm; |
426 | int flush; | 426 | int flush; |
427 | { | 427 | { |
@@ -555,7 +555,7 @@ int EXPORT deflate (strm, flush) | |||
555 | } | 555 | } |
556 | 556 | ||
557 | /* ========================================================================= */ | 557 | /* ========================================================================= */ |
558 | int EXPORT deflateEnd (strm) | 558 | int ZEXPORT deflateEnd (strm) |
559 | z_streamp strm; | 559 | z_streamp strm; |
560 | { | 560 | { |
561 | int status; | 561 | int status; |
@@ -585,7 +585,7 @@ int EXPORT deflateEnd (strm) | |||
585 | * To simplify the source, this is not supported for 16-bit MSDOS (which | 585 | * To simplify the source, this is not supported for 16-bit MSDOS (which |
586 | * doesn't have enough memory anyway to duplicate compression states). | 586 | * doesn't have enough memory anyway to duplicate compression states). |
587 | */ | 587 | */ |
588 | int EXPORT deflateCopy (dest, source) | 588 | int ZEXPORT deflateCopy (dest, source) |
589 | z_streamp dest; | 589 | z_streamp dest; |
590 | z_streamp source; | 590 | z_streamp source; |
591 | { | 591 | { |
@@ -647,7 +647,7 @@ int EXPORT deflateCopy (dest, source) | |||
647 | */ | 647 | */ |
648 | local int read_buf(strm, buf, size) | 648 | local int read_buf(strm, buf, size) |
649 | z_streamp strm; | 649 | z_streamp strm; |
650 | charf *buf; | 650 | Bytef *buf; |
651 | unsigned size; | 651 | unsigned size; |
652 | { | 652 | { |
653 | unsigned len = strm->avail_in; | 653 | unsigned len = strm->avail_in; |
@@ -857,8 +857,8 @@ local void check_match(s, start, match, length) | |||
857 | int length; | 857 | int length; |
858 | { | 858 | { |
859 | /* check that the match is indeed a match */ | 859 | /* check that the match is indeed a match */ |
860 | if (zmemcmp((charf *)s->window + match, | 860 | if (zmemcmp(s->window + match, |
861 | (charf *)s->window + start, length) != EQUAL) { | 861 | s->window + start, length) != EQUAL) { |
862 | fprintf(stderr, " start %u, match %u, length %d\n", | 862 | fprintf(stderr, " start %u, match %u, length %d\n", |
863 | start, match, length); | 863 | start, match, length); |
864 | do { | 864 | do { |
@@ -911,8 +911,7 @@ local void fill_window(s) | |||
911 | */ | 911 | */ |
912 | } else if (s->strstart >= wsize+MAX_DIST(s)) { | 912 | } else if (s->strstart >= wsize+MAX_DIST(s)) { |
913 | 913 | ||
914 | zmemcpy((charf *)s->window, (charf *)s->window+wsize, | 914 | zmemcpy(s->window, s->window+wsize, (unsigned)wsize); |
915 | (unsigned)wsize); | ||
916 | s->match_start -= wsize; | 915 | s->match_start -= wsize; |
917 | s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ | 916 | s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ |
918 | s->block_start -= (long) wsize; | 917 | s->block_start -= (long) wsize; |
@@ -956,8 +955,7 @@ local void fill_window(s) | |||
956 | */ | 955 | */ |
957 | Assert(more >= 2, "more < 2"); | 956 | Assert(more >= 2, "more < 2"); |
958 | 957 | ||
959 | n = read_buf(s->strm, (charf *)s->window + s->strstart + s->lookahead, | 958 | n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); |
960 | more); | ||
961 | s->lookahead += n; | 959 | s->lookahead += n; |
962 | 960 | ||
963 | /* Initialize the hash value now that we have some input: */ | 961 | /* Initialize the hash value now that we have some input: */ |
@@ -95,7 +95,11 @@ void test_gzio(out, in, uncompr, uncomprLen) | |||
95 | exit(1); | 95 | exit(1); |
96 | } | 96 | } |
97 | gzputc(file, 'h'); | 97 | gzputc(file, 'h'); |
98 | if (gzprintf(file, "%s, %s!", "ello", "hello") != len-2) { | 98 | if (gzputs(file, "ello") != 4) { |
99 | fprintf(stderr, "gzputs err: %s\n", gzerror(file, &err)); | ||
100 | exit(1); | ||
101 | } | ||
102 | if (gzprintf(file, ", %s!", "hello") != 8) { | ||
99 | fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err)); | 103 | fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err)); |
100 | exit(1); | 104 | exit(1); |
101 | } | 105 | } |
@@ -132,16 +136,17 @@ void test_gzio(out, in, uncompr, uncomprLen) | |||
132 | exit(1); | 136 | exit(1); |
133 | } | 137 | } |
134 | 138 | ||
135 | uncomprLen = gzread(file, uncompr, (unsigned)uncomprLen); | 139 | gzgets(file, (char*)uncompr, uncomprLen); |
136 | if (uncomprLen != 7) { | 140 | uncomprLen = strlen((char*)uncompr); |
137 | fprintf(stderr, "gzread err after gzseek: %s\n", gzerror(file, &err)); | 141 | if (uncomprLen != 6) { /* "hello!" */ |
142 | fprintf(stderr, "gzgets err after gzseek: %s\n", gzerror(file, &err)); | ||
138 | exit(1); | 143 | exit(1); |
139 | } | 144 | } |
140 | if (strcmp((char*)uncompr, hello+7)) { | 145 | if (strcmp((char*)uncompr, hello+7)) { |
141 | fprintf(stderr, "bad gzread after gzseek\n"); | 146 | fprintf(stderr, "bad gzgets after gzseek\n"); |
142 | exit(1); | 147 | exit(1); |
143 | } else { | 148 | } else { |
144 | printf("gzread() after gzseek: %s\n", uncompr); | 149 | printf("gzgets() after gzseek: %s\n", uncompr); |
145 | } | 150 | } |
146 | 151 | ||
147 | gzclose(file); | 152 | gzclose(file); |
@@ -167,7 +167,7 @@ local gzFile gz_open (path, mode, fd) | |||
167 | /* =========================================================================== | 167 | /* =========================================================================== |
168 | Opens a gzip (.gz) file for reading or writing. | 168 | Opens a gzip (.gz) file for reading or writing. |
169 | */ | 169 | */ |
170 | gzFile EXPORT gzopen (path, mode) | 170 | gzFile ZEXPORT gzopen (path, mode) |
171 | const char *path; | 171 | const char *path; |
172 | const char *mode; | 172 | const char *mode; |
173 | { | 173 | { |
@@ -178,7 +178,7 @@ gzFile EXPORT gzopen (path, mode) | |||
178 | Associate a gzFile with the file descriptor fd. fd is not dup'ed here | 178 | Associate a gzFile with the file descriptor fd. fd is not dup'ed here |
179 | to mimic the behavio(u)r of fdopen. | 179 | to mimic the behavio(u)r of fdopen. |
180 | */ | 180 | */ |
181 | gzFile EXPORT gzdopen (fd, mode) | 181 | gzFile ZEXPORT gzdopen (fd, mode) |
182 | int fd; | 182 | int fd; |
183 | const char *mode; | 183 | const char *mode; |
184 | { | 184 | { |
@@ -193,7 +193,7 @@ gzFile EXPORT gzdopen (fd, mode) | |||
193 | /* =========================================================================== | 193 | /* =========================================================================== |
194 | * Update the compression level and strategy | 194 | * Update the compression level and strategy |
195 | */ | 195 | */ |
196 | int EXPORT gzsetparams (file, level, strategy) | 196 | int ZEXPORT gzsetparams (file, level, strategy) |
197 | gzFile file; | 197 | gzFile file; |
198 | int level; | 198 | int level; |
199 | int strategy; | 199 | int strategy; |
@@ -339,7 +339,7 @@ local int destroy (s) | |||
339 | Reads the given number of uncompressed bytes from the compressed file. | 339 | Reads the given number of uncompressed bytes from the compressed file. |
340 | gzread returns the number of bytes actually read (0 for end of file). | 340 | gzread returns the number of bytes actually read (0 for end of file). |
341 | */ | 341 | */ |
342 | int EXPORT gzread (file, buf, len) | 342 | int ZEXPORT gzread (file, buf, len) |
343 | gzFile file; | 343 | gzFile file; |
344 | voidp buf; | 344 | voidp buf; |
345 | unsigned len; | 345 | unsigned len; |
@@ -375,7 +375,10 @@ int EXPORT gzread (file, buf, len) | |||
375 | s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, | 375 | s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, |
376 | s->file); | 376 | s->file); |
377 | } | 377 | } |
378 | return (int)(len - s->stream.avail_out); | 378 | len -= s->stream.avail_out; |
379 | s->stream.total_in += (uLong)len; | ||
380 | s->stream.total_out += (uLong)len; | ||
381 | return (int)len; | ||
379 | } | 382 | } |
380 | if (s->stream.avail_in == 0 && !s->z_eof) { | 383 | if (s->stream.avail_in == 0 && !s->z_eof) { |
381 | 384 | ||
@@ -425,7 +428,7 @@ int EXPORT gzread (file, buf, len) | |||
425 | Reads one byte from the compressed file. gzgetc returns this byte | 428 | Reads one byte from the compressed file. gzgetc returns this byte |
426 | or -1 in case of end of file or error. | 429 | or -1 in case of end of file or error. |
427 | */ | 430 | */ |
428 | int EXPORT gzgetc(file) | 431 | int ZEXPORT gzgetc(file) |
429 | gzFile file; | 432 | gzFile file; |
430 | { | 433 | { |
431 | unsigned char c; | 434 | unsigned char c; |
@@ -434,12 +437,35 @@ int EXPORT gzgetc(file) | |||
434 | } | 437 | } |
435 | 438 | ||
436 | 439 | ||
440 | /* =========================================================================== | ||
441 | Reads bytes from the compressed file until len-1 characters are | ||
442 | read, or a newline character is read and transferred to buf, or an | ||
443 | end-of-file condition is encountered. The string is then terminated | ||
444 | with a null character. | ||
445 | gzgets returns buf, or Z_NULL in case of error. | ||
446 | |||
447 | The current implementation is not optimized at all. | ||
448 | */ | ||
449 | char * ZEXPORT gzgets(file, buf, len) | ||
450 | gzFile file; | ||
451 | char *buf; | ||
452 | int len; | ||
453 | { | ||
454 | char *b = buf; | ||
455 | if (buf == Z_NULL || len <= 0) return Z_NULL; | ||
456 | |||
457 | while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ; | ||
458 | *buf = '\0'; | ||
459 | return b == buf && len > 0 ? Z_NULL : b; | ||
460 | } | ||
461 | |||
462 | |||
437 | #ifndef NO_DEFLATE | 463 | #ifndef NO_DEFLATE |
438 | /* =========================================================================== | 464 | /* =========================================================================== |
439 | Writes the given number of uncompressed bytes into the compressed file. | 465 | Writes the given number of uncompressed bytes into the compressed file. |
440 | gzwrite returns the number of bytes actually written (0 in case of error). | 466 | gzwrite returns the number of bytes actually written (0 in case of error). |
441 | */ | 467 | */ |
442 | int EXPORT gzwrite (file, buf, len) | 468 | int ZEXPORT gzwrite (file, buf, len) |
443 | gzFile file; | 469 | gzFile file; |
444 | const voidp buf; | 470 | const voidp buf; |
445 | unsigned len; | 471 | unsigned len; |
@@ -478,7 +504,7 @@ int EXPORT gzwrite (file, buf, len) | |||
478 | #ifdef STDC | 504 | #ifdef STDC |
479 | #include <stdarg.h> | 505 | #include <stdarg.h> |
480 | 506 | ||
481 | int EXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) | 507 | int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) |
482 | { | 508 | { |
483 | char buf[Z_BUFSIZE]; | 509 | char buf[Z_BUFSIZE]; |
484 | va_list va; | 510 | va_list va; |
@@ -486,18 +512,19 @@ int EXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) | |||
486 | 512 | ||
487 | va_start(va, format); | 513 | va_start(va, format); |
488 | #ifdef HAS_vsnprintf | 514 | #ifdef HAS_vsnprintf |
489 | len = vsnprintf(buf, sizeof(buf), format, va); | 515 | (void)vsnprintf(buf, sizeof(buf), format, va); |
490 | #else | 516 | #else |
491 | len = vsprintf(buf, format, va); | 517 | (void)vsprintf(buf, format, va); |
492 | #endif | 518 | #endif |
493 | va_end(va); | 519 | va_end(va); |
520 | len = strlen(buf); /* some *sprintf don't return the nb of bytes written */ | ||
494 | if (len <= 0) return 0; | 521 | if (len <= 0) return 0; |
495 | 522 | ||
496 | return gzwrite(file, buf, (unsigned)len); | 523 | return gzwrite(file, buf, (unsigned)len); |
497 | } | 524 | } |
498 | #else /* not ANSI C */ | 525 | #else /* not ANSI C */ |
499 | 526 | ||
500 | int EXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, | 527 | int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, |
501 | a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) | 528 | a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) |
502 | gzFile file; | 529 | gzFile file; |
503 | const char *format; | 530 | const char *format; |
@@ -525,7 +552,7 @@ int EXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, | |||
525 | Writes c, converted to an unsigned char, into the compressed file. | 552 | Writes c, converted to an unsigned char, into the compressed file. |
526 | gzputc returns the value that was written, or -1 in case of error. | 553 | gzputc returns the value that was written, or -1 in case of error. |
527 | */ | 554 | */ |
528 | int EXPORT gzputc(file, c) | 555 | int ZEXPORT gzputc(file, c) |
529 | gzFile file; | 556 | gzFile file; |
530 | int c; | 557 | int c; |
531 | { | 558 | { |
@@ -536,6 +563,19 @@ int EXPORT gzputc(file, c) | |||
536 | 563 | ||
537 | 564 | ||
538 | /* =========================================================================== | 565 | /* =========================================================================== |
566 | Writes the given null-terminated string to the compressed file, excluding | ||
567 | the terminating null character. | ||
568 | gzputs returns the number of characters written, or -1 in case of error. | ||
569 | */ | ||
570 | int ZEXPORT gzputs(file, s) | ||
571 | gzFile file; | ||
572 | const char *s; | ||
573 | { | ||
574 | return gzwrite(file, (const voidp)s, (unsigned)strlen(s)); | ||
575 | } | ||
576 | |||
577 | |||
578 | /* =========================================================================== | ||
539 | Flushes all pending output into the compressed file. The parameter | 579 | Flushes all pending output into the compressed file. The parameter |
540 | flush is as in the deflate() function. | 580 | flush is as in the deflate() function. |
541 | */ | 581 | */ |
@@ -578,7 +618,7 @@ local int do_flush (file, flush) | |||
578 | return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; | 618 | return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; |
579 | } | 619 | } |
580 | 620 | ||
581 | int EXPORT gzflush (file, flush) | 621 | int ZEXPORT gzflush (file, flush) |
582 | gzFile file; | 622 | gzFile file; |
583 | int flush; | 623 | int flush; |
584 | { | 624 | { |
@@ -599,17 +639,17 @@ int EXPORT gzflush (file, flush) | |||
599 | SEEK_END is not implemented, returns error. | 639 | SEEK_END is not implemented, returns error. |
600 | In this version of the library, gzseek can be extremely slow. | 640 | In this version of the library, gzseek can be extremely slow. |
601 | */ | 641 | */ |
602 | z_off_t EXPORT gzseek (file, offset, whence) | 642 | z_off_t ZEXPORT gzseek (file, offset, whence) |
603 | gzFile file; | 643 | gzFile file; |
604 | z_off_t offset; | 644 | z_off_t offset; |
605 | int whence; | 645 | int whence; |
606 | { | 646 | { |
607 | gz_stream *s = (gz_stream*)file; | 647 | gz_stream *s = (gz_stream*)file; |
608 | 648 | ||
609 | if (s == NULL || whence == SEEK_END || s->z_err == Z_ERRNO) return -1L; | 649 | if (s == NULL || whence == SEEK_END || |
610 | 650 | s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) { | |
611 | s->z_err = Z_OK; | 651 | return -1L; |
612 | s->z_eof = 0; | 652 | } |
613 | 653 | ||
614 | if (s->mode == 'w') { | 654 | if (s->mode == 'w') { |
615 | #ifdef NO_DEFLATE | 655 | #ifdef NO_DEFLATE |
@@ -639,8 +679,6 @@ z_off_t EXPORT gzseek (file, offset, whence) | |||
639 | } | 679 | } |
640 | /* Rest of function is for reading only */ | 680 | /* Rest of function is for reading only */ |
641 | 681 | ||
642 | if (s->z_err == Z_DATA_ERROR) return -1L; | ||
643 | |||
644 | /* compute absolute position */ | 682 | /* compute absolute position */ |
645 | if (whence == SEEK_CUR) { | 683 | if (whence == SEEK_CUR) { |
646 | offset += s->stream.total_out; | 684 | offset += s->stream.total_out; |
@@ -651,7 +689,9 @@ z_off_t EXPORT gzseek (file, offset, whence) | |||
651 | /* map to fseek */ | 689 | /* map to fseek */ |
652 | s->stream.avail_in = 0; | 690 | s->stream.avail_in = 0; |
653 | s->stream.next_in = s->inbuf; | 691 | s->stream.next_in = s->inbuf; |
654 | if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; | 692 | if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; |
693 | |||
694 | s->stream.total_in = s->stream.total_out = (uLong)offset; | ||
655 | return offset; | 695 | return offset; |
656 | } | 696 | } |
657 | 697 | ||
@@ -680,7 +720,7 @@ z_off_t EXPORT gzseek (file, offset, whence) | |||
680 | /* =========================================================================== | 720 | /* =========================================================================== |
681 | Rewinds input file. | 721 | Rewinds input file. |
682 | */ | 722 | */ |
683 | int EXPORT gzrewind (file) | 723 | int ZEXPORT gzrewind (file) |
684 | gzFile file; | 724 | gzFile file; |
685 | { | 725 | { |
686 | gz_stream *s = (gz_stream*)file; | 726 | gz_stream *s = (gz_stream*)file; |
@@ -706,7 +746,7 @@ int EXPORT gzrewind (file) | |||
706 | given compressed file. This position represents a number of bytes in the | 746 | given compressed file. This position represents a number of bytes in the |
707 | uncompressed data stream. | 747 | uncompressed data stream. |
708 | */ | 748 | */ |
709 | z_off_t EXPORT gztell (file) | 749 | z_off_t ZEXPORT gztell (file) |
710 | gzFile file; | 750 | gzFile file; |
711 | { | 751 | { |
712 | return gzseek(file, 0L, SEEK_CUR); | 752 | return gzseek(file, 0L, SEEK_CUR); |
@@ -716,7 +756,7 @@ z_off_t EXPORT gztell (file) | |||
716 | Returns 1 when EOF has previously been detected reading the given | 756 | Returns 1 when EOF has previously been detected reading the given |
717 | input stream, otherwise zero. | 757 | input stream, otherwise zero. |
718 | */ | 758 | */ |
719 | int EXPORT gzeof (file) | 759 | int ZEXPORT gzeof (file) |
720 | gzFile file; | 760 | gzFile file; |
721 | { | 761 | { |
722 | gz_stream *s = (gz_stream*)file; | 762 | gz_stream *s = (gz_stream*)file; |
@@ -759,7 +799,7 @@ local uLong getLong (s) | |||
759 | Flushes all pending output if necessary, closes the compressed file | 799 | Flushes all pending output if necessary, closes the compressed file |
760 | and deallocates all the (de)compression state. | 800 | and deallocates all the (de)compression state. |
761 | */ | 801 | */ |
762 | int EXPORT gzclose (file) | 802 | int ZEXPORT gzclose (file) |
763 | gzFile file; | 803 | gzFile file; |
764 | { | 804 | { |
765 | int err; | 805 | int err; |
@@ -788,7 +828,7 @@ int EXPORT gzclose (file) | |||
788 | errnum is set to Z_ERRNO and the application may consult errno | 828 | errnum is set to Z_ERRNO and the application may consult errno |
789 | to get the exact error code. | 829 | to get the exact error code. |
790 | */ | 830 | */ |
791 | const char* EXPORT gzerror (file, errnum) | 831 | const char* ZEXPORT gzerror (file, errnum) |
792 | gzFile file; | 832 | gzFile file; |
793 | int *errnum; | 833 | int *errnum; |
794 | { | 834 | { |
@@ -71,11 +71,7 @@ uLongf *c; | |||
71 | if (s->mode == BTREE || s->mode == DTREE) | 71 | if (s->mode == BTREE || s->mode == DTREE) |
72 | ZFREE(z, s->sub.trees.blens); | 72 | ZFREE(z, s->sub.trees.blens); |
73 | if (s->mode == CODES) | 73 | if (s->mode == CODES) |
74 | { | ||
75 | inflate_codes_free(s->sub.decode.codes, z); | 74 | inflate_codes_free(s->sub.decode.codes, z); |
76 | inflate_trees_free(s->sub.decode.td, z); | ||
77 | inflate_trees_free(s->sub.decode.tl, z); | ||
78 | } | ||
79 | s->mode = TYPE; | 75 | s->mode = TYPE; |
80 | s->bitk = 0; | 76 | s->bitk = 0; |
81 | s->bitb = 0; | 77 | s->bitb = 0; |
@@ -96,8 +92,15 @@ uInt w; | |||
96 | if ((s = (inflate_blocks_statef *)ZALLOC | 92 | if ((s = (inflate_blocks_statef *)ZALLOC |
97 | (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL) | 93 | (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL) |
98 | return s; | 94 | return s; |
95 | if ((s->hufts = | ||
96 | (inflate_huft *)ZALLOC(z, sizeof(inflate_huft), MANY)) == Z_NULL) | ||
97 | { | ||
98 | ZFREE(z, s); | ||
99 | return Z_NULL; | ||
100 | } | ||
99 | if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL) | 101 | if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL) |
100 | { | 102 | { |
103 | ZFREE(z, s->hufts); | ||
101 | ZFREE(z, s); | 104 | ZFREE(z, s); |
102 | return Z_NULL; | 105 | return Z_NULL; |
103 | } | 106 | } |
@@ -110,9 +113,6 @@ uInt w; | |||
110 | } | 113 | } |
111 | 114 | ||
112 | 115 | ||
113 | #ifdef DEBUG | ||
114 | extern uInt inflate_hufts; | ||
115 | #endif | ||
116 | int inflate_blocks(s, z, r) | 116 | int inflate_blocks(s, z, r) |
117 | inflate_blocks_statef *s; | 117 | inflate_blocks_statef *s; |
118 | z_streamp z; | 118 | z_streamp z; |
@@ -153,15 +153,13 @@ int r; | |||
153 | uInt bl, bd; | 153 | uInt bl, bd; |
154 | inflate_huft *tl, *td; | 154 | inflate_huft *tl, *td; |
155 | 155 | ||
156 | inflate_trees_fixed(&bl, &bd, &tl, &td); | 156 | inflate_trees_fixed(&bl, &bd, &tl, &td, z); |
157 | s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z); | 157 | s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z); |
158 | if (s->sub.decode.codes == Z_NULL) | 158 | if (s->sub.decode.codes == Z_NULL) |
159 | { | 159 | { |
160 | r = Z_MEM_ERROR; | 160 | r = Z_MEM_ERROR; |
161 | LEAVE | 161 | LEAVE |
162 | } | 162 | } |
163 | s->sub.decode.tl = Z_NULL; /* don't try to free these */ | ||
164 | s->sub.decode.td = Z_NULL; | ||
165 | } | 163 | } |
166 | DUMPBITS(3) | 164 | DUMPBITS(3) |
167 | s->mode = CODES; | 165 | s->mode = CODES; |
@@ -244,7 +242,7 @@ int r; | |||
244 | s->sub.trees.blens[border[s->sub.trees.index++]] = 0; | 242 | s->sub.trees.blens[border[s->sub.trees.index++]] = 0; |
245 | s->sub.trees.bb = 7; | 243 | s->sub.trees.bb = 7; |
246 | t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb, | 244 | t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb, |
247 | &s->sub.trees.tb, z); | 245 | &s->sub.trees.tb, s->hufts, z); |
248 | if (t != Z_OK) | 246 | if (t != Z_OK) |
249 | { | 247 | { |
250 | ZFREE(z, s->sub.trees.blens); | 248 | ZFREE(z, s->sub.trees.blens); |
@@ -286,7 +284,6 @@ int r; | |||
286 | if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || | 284 | if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || |
287 | (c == 16 && i < 1)) | 285 | (c == 16 && i < 1)) |
288 | { | 286 | { |
289 | inflate_trees_free(s->sub.trees.tb, z); | ||
290 | ZFREE(z, s->sub.trees.blens); | 287 | ZFREE(z, s->sub.trees.blens); |
291 | s->mode = BAD; | 288 | s->mode = BAD; |
292 | z->msg = (char*)"invalid bit length repeat"; | 289 | z->msg = (char*)"invalid bit length repeat"; |
@@ -300,7 +297,6 @@ int r; | |||
300 | s->sub.trees.index = i; | 297 | s->sub.trees.index = i; |
301 | } | 298 | } |
302 | } | 299 | } |
303 | inflate_trees_free(s->sub.trees.tb, z); | ||
304 | s->sub.trees.tb = Z_NULL; | 300 | s->sub.trees.tb = Z_NULL; |
305 | { | 301 | { |
306 | uInt bl, bd; | 302 | uInt bl, bd; |
@@ -310,11 +306,9 @@ int r; | |||
310 | bl = 9; /* must be <= 9 for lookahead assumptions */ | 306 | bl = 9; /* must be <= 9 for lookahead assumptions */ |
311 | bd = 6; /* must be <= 9 for lookahead assumptions */ | 307 | bd = 6; /* must be <= 9 for lookahead assumptions */ |
312 | t = s->sub.trees.table; | 308 | t = s->sub.trees.table; |
313 | #ifdef DEBUG | ||
314 | inflate_hufts = 0; | ||
315 | #endif | ||
316 | t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), | 309 | t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), |
317 | s->sub.trees.blens, &bl, &bd, &tl, &td, z); | 310 | s->sub.trees.blens, &bl, &bd, &tl, &td, |
311 | s->hufts, z); | ||
318 | ZFREE(z, s->sub.trees.blens); | 312 | ZFREE(z, s->sub.trees.blens); |
319 | if (t != Z_OK) | 313 | if (t != Z_OK) |
320 | { | 314 | { |
@@ -323,18 +317,13 @@ int r; | |||
323 | r = t; | 317 | r = t; |
324 | LEAVE | 318 | LEAVE |
325 | } | 319 | } |
326 | Tracev((stderr, "inflate: trees ok, %d * %d bytes used\n", | 320 | Tracev((stderr, "inflate: trees ok\n")); |
327 | inflate_hufts, sizeof(inflate_huft))); | ||
328 | if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL) | 321 | if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL) |
329 | { | 322 | { |
330 | inflate_trees_free(td, z); | ||
331 | inflate_trees_free(tl, z); | ||
332 | r = Z_MEM_ERROR; | 323 | r = Z_MEM_ERROR; |
333 | LEAVE | 324 | LEAVE |
334 | } | 325 | } |
335 | s->sub.decode.codes = c; | 326 | s->sub.decode.codes = c; |
336 | s->sub.decode.tl = tl; | ||
337 | s->sub.decode.td = td; | ||
338 | } | 327 | } |
339 | s->mode = CODES; | 328 | s->mode = CODES; |
340 | case CODES: | 329 | case CODES: |
@@ -343,8 +332,6 @@ int r; | |||
343 | return inflate_flush(s, z, r); | 332 | return inflate_flush(s, z, r); |
344 | r = Z_OK; | 333 | r = Z_OK; |
345 | inflate_codes_free(s->sub.decode.codes, z); | 334 | inflate_codes_free(s->sub.decode.codes, z); |
346 | inflate_trees_free(s->sub.decode.td, z); | ||
347 | inflate_trees_free(s->sub.decode.tl, z); | ||
348 | LOAD | 335 | LOAD |
349 | Tracev((stderr, "inflate: codes end, %lu total out\n", | 336 | Tracev((stderr, "inflate: codes end, %lu total out\n", |
350 | z->total_out + (q >= s->read ? q - s->read : | 337 | z->total_out + (q >= s->read ? q - s->read : |
@@ -386,6 +373,7 @@ z_streamp z; | |||
386 | { | 373 | { |
387 | inflate_blocks_reset(s, z, Z_NULL); | 374 | inflate_blocks_reset(s, z, Z_NULL); |
388 | ZFREE(z, s->window); | 375 | ZFREE(z, s->window); |
376 | ZFREE(z, s->hufts); | ||
389 | ZFREE(z, s); | 377 | ZFREE(z, s); |
390 | Tracev((stderr, "inflate: blocks freed\n")); | 378 | Tracev((stderr, "inflate: blocks freed\n")); |
391 | return Z_OK; | 379 | return Z_OK; |
@@ -397,7 +385,7 @@ inflate_blocks_statef *s; | |||
397 | const Bytef *d; | 385 | const Bytef *d; |
398 | uInt n; | 386 | uInt n; |
399 | { | 387 | { |
400 | zmemcpy((charf *)s->window, d, n); | 388 | zmemcpy(s->window, d, n); |
401 | s->read = s->write = s->window + n; | 389 | s->read = s->write = s->window + n; |
402 | } | 390 | } |
403 | 391 | ||
@@ -50,7 +50,7 @@ struct internal_state { | |||
50 | }; | 50 | }; |
51 | 51 | ||
52 | 52 | ||
53 | int EXPORT inflateReset(z) | 53 | int ZEXPORT inflateReset(z) |
54 | z_streamp z; | 54 | z_streamp z; |
55 | { | 55 | { |
56 | if (z == Z_NULL || z->state == Z_NULL) | 56 | if (z == Z_NULL || z->state == Z_NULL) |
@@ -64,7 +64,7 @@ z_streamp z; | |||
64 | } | 64 | } |
65 | 65 | ||
66 | 66 | ||
67 | int EXPORT inflateEnd(z) | 67 | int ZEXPORT inflateEnd(z) |
68 | z_streamp z; | 68 | z_streamp z; |
69 | { | 69 | { |
70 | if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL) | 70 | if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL) |
@@ -78,7 +78,7 @@ z_streamp z; | |||
78 | } | 78 | } |
79 | 79 | ||
80 | 80 | ||
81 | int EXPORT inflateInit2_(z, w, version, stream_size) | 81 | int ZEXPORT inflateInit2_(z, w, version, stream_size) |
82 | z_streamp z; | 82 | z_streamp z; |
83 | int w; | 83 | int w; |
84 | const char *version; | 84 | const char *version; |
@@ -135,7 +135,7 @@ int stream_size; | |||
135 | } | 135 | } |
136 | 136 | ||
137 | 137 | ||
138 | int EXPORT inflateInit_(z, version, stream_size) | 138 | int ZEXPORT inflateInit_(z, version, stream_size) |
139 | z_streamp z; | 139 | z_streamp z; |
140 | const char *version; | 140 | const char *version; |
141 | int stream_size; | 141 | int stream_size; |
@@ -144,18 +144,19 @@ int stream_size; | |||
144 | } | 144 | } |
145 | 145 | ||
146 | 146 | ||
147 | #define NEEDBYTE {if(z->avail_in==0)return r; if (f != Z_FINISH) r = Z_OK;} | 147 | #define NEEDBYTE {if(z->avail_in==0)return r;r=f;} |
148 | #define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++) | 148 | #define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++) |
149 | 149 | ||
150 | int EXPORT inflate(z, f) | 150 | int ZEXPORT inflate(z, f) |
151 | z_streamp z; | 151 | z_streamp z; |
152 | int f; | 152 | int f; |
153 | { | 153 | { |
154 | int r; | 154 | int r; |
155 | uInt b; | 155 | uInt b; |
156 | 156 | ||
157 | if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL || f < 0) | 157 | if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL) |
158 | return Z_STREAM_ERROR; | 158 | return Z_STREAM_ERROR; |
159 | f = f == Z_FINISH ? Z_BUF_ERROR : Z_OK; | ||
159 | r = Z_BUF_ERROR; | 160 | r = Z_BUF_ERROR; |
160 | while (1) switch (z->state->mode) | 161 | while (1) switch (z->state->mode) |
161 | { | 162 | { |
@@ -190,7 +191,7 @@ int f; | |||
190 | if (!(b & PRESET_DICT)) | 191 | if (!(b & PRESET_DICT)) |
191 | { | 192 | { |
192 | z->state->mode = BLOCKS; | 193 | z->state->mode = BLOCKS; |
193 | break; | 194 | break; |
194 | } | 195 | } |
195 | z->state->mode = DICT4; | 196 | z->state->mode = DICT4; |
196 | case DICT4: | 197 | case DICT4: |
@@ -224,9 +225,10 @@ int f; | |||
224 | z->state->sub.marker = 0; /* can try inflateSync */ | 225 | z->state->sub.marker = 0; /* can try inflateSync */ |
225 | break; | 226 | break; |
226 | } | 227 | } |
228 | if (r == Z_OK) | ||
229 | r = f; | ||
227 | if (r != Z_STREAM_END) | 230 | if (r != Z_STREAM_END) |
228 | return f == Z_FINISH && r == Z_OK ? Z_BUF_ERROR : r; | 231 | return r; |
229 | r = Z_OK; | ||
230 | inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was); | 232 | inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was); |
231 | if (z->state->nowrap) | 233 | if (z->state->nowrap) |
232 | { | 234 | { |
@@ -234,7 +236,6 @@ int f; | |||
234 | break; | 236 | break; |
235 | } | 237 | } |
236 | z->state->mode = CHECK4; | 238 | z->state->mode = CHECK4; |
237 | if (f == Z_FINISH) r = Z_BUF_ERROR; | ||
238 | case CHECK4: | 239 | case CHECK4: |
239 | NEEDBYTE | 240 | NEEDBYTE |
240 | z->state->sub.check.need = (uLong)NEXTBYTE << 24; | 241 | z->state->sub.check.need = (uLong)NEXTBYTE << 24; |
@@ -273,7 +274,7 @@ int f; | |||
273 | } | 274 | } |
274 | 275 | ||
275 | 276 | ||
276 | int EXPORT inflateSetDictionary(z, dictionary, dictLength) | 277 | int ZEXPORT inflateSetDictionary(z, dictionary, dictLength) |
277 | z_streamp z; | 278 | z_streamp z; |
278 | const Bytef *dictionary; | 279 | const Bytef *dictionary; |
279 | uInt dictLength; | 280 | uInt dictLength; |
@@ -297,7 +298,7 @@ uInt dictLength; | |||
297 | } | 298 | } |
298 | 299 | ||
299 | 300 | ||
300 | int EXPORT inflateSync(z) | 301 | int ZEXPORT inflateSync(z) |
301 | z_streamp z; | 302 | z_streamp z; |
302 | { | 303 | { |
303 | uInt n; /* number of bytes to look at */ | 304 | uInt n; /* number of bytes to look at */ |
@@ -321,8 +322,7 @@ z_streamp z; | |||
321 | /* search */ | 322 | /* search */ |
322 | while (n && m < 4) | 323 | while (n && m < 4) |
323 | { | 324 | { |
324 | static const Byte mark[4] = {0, 0, 0xff, 0xff}; | 325 | if (*p == (Byte)(m < 2 ? 0 : (Byte)0xff)) |
325 | if (*p == mark[m]) | ||
326 | m++; | 326 | m++; |
327 | else if (*p) | 327 | else if (*p) |
328 | m = 0; | 328 | m = 0; |
@@ -355,7 +355,7 @@ z_streamp z; | |||
355 | * decompressing, PPP checks that at the end of input packet, inflate is | 355 | * decompressing, PPP checks that at the end of input packet, inflate is |
356 | * waiting for these length bytes. | 356 | * waiting for these length bytes. |
357 | */ | 357 | */ |
358 | int EXPORT inflateSyncPoint(z) | 358 | int ZEXPORT inflateSyncPoint(z) |
359 | z_streamp z; | 359 | z_streamp z; |
360 | { | 360 | { |
361 | if (z == Z_NULL || z->state == Z_NULL || z->state->blocks == Z_NULL) | 361 | if (z == Z_NULL || z->state == Z_NULL || z->state->blocks == Z_NULL) |
@@ -7,7 +7,7 @@ | |||
7 | #include "inftrees.h" | 7 | #include "inftrees.h" |
8 | 8 | ||
9 | const char inflate_copyright[] = | 9 | const char inflate_copyright[] = |
10 | " inflate 1.0.8 Copyright 1995-1998 Mark Adler "; | 10 | " inflate 1.0.9 Copyright 1995-1998 Mark Adler "; |
11 | /* | 11 | /* |
12 | If you use the zlib library in a product, an acknowledgment is welcome | 12 | If you use the zlib library in a product, an acknowledgment is welcome |
13 | in the documentation of your product. If for some reason you cannot | 13 | in the documentation of your product. If for some reason you cannot |
@@ -31,12 +31,9 @@ local int huft_build OF(( | |||
31 | const uIntf *, /* list of extra bits for non-simple codes */ | 31 | const uIntf *, /* list of extra bits for non-simple codes */ |
32 | inflate_huft * FAR*,/* result: starting table */ | 32 | inflate_huft * FAR*,/* result: starting table */ |
33 | uIntf *, /* maximum lookup bits (returns actual) */ | 33 | uIntf *, /* maximum lookup bits (returns actual) */ |
34 | z_streamp )); /* for zalloc function */ | 34 | inflate_huft *, /* space for trees */ |
35 | 35 | uInt *, /* hufts used in space */ | |
36 | local voidpf falloc OF(( | 36 | uIntf * )); /* space for values */ |
37 | voidpf, /* opaque pointer (not used) */ | ||
38 | uInt, /* number of items */ | ||
39 | uInt)); /* size of item */ | ||
40 | 37 | ||
41 | /* Tables for deflate from PKZIP's appnote.txt. */ | 38 | /* Tables for deflate from PKZIP's appnote.txt. */ |
42 | local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */ | 39 | local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */ |
@@ -90,21 +87,18 @@ local const uInt cpdext[30] = { /* Extra bits for distance codes */ | |||
90 | 87 | ||
91 | /* If BMAX needs to be larger than 16, then h and x[] should be uLong. */ | 88 | /* If BMAX needs to be larger than 16, then h and x[] should be uLong. */ |
92 | #define BMAX 15 /* maximum bit length of any code */ | 89 | #define BMAX 15 /* maximum bit length of any code */ |
93 | #define N_MAX 288 /* maximum number of codes in any set */ | ||
94 | |||
95 | #ifdef DEBUG | ||
96 | uInt inflate_hufts; | ||
97 | #endif | ||
98 | 90 | ||
99 | local int huft_build(b, n, s, d, e, t, m, zs) | 91 | local int huft_build(b, n, s, d, e, t, m, hp, hn, v) |
100 | uIntf *b; /* code lengths in bits (all assumed <= BMAX) */ | 92 | uIntf *b; /* code lengths in bits (all assumed <= BMAX) */ |
101 | uInt n; /* number of codes (assumed <= N_MAX) */ | 93 | uInt n; /* number of codes (assumed <= 288) */ |
102 | uInt s; /* number of simple-valued codes (0..s-1) */ | 94 | uInt s; /* number of simple-valued codes (0..s-1) */ |
103 | const uIntf *d; /* list of base values for non-simple codes */ | 95 | const uIntf *d; /* list of base values for non-simple codes */ |
104 | const uIntf *e; /* list of extra bits for non-simple codes */ | 96 | const uIntf *e; /* list of extra bits for non-simple codes */ |
105 | inflate_huft * FAR *t; /* result: starting table */ | 97 | inflate_huft * FAR *t; /* result: starting table */ |
106 | uIntf *m; /* maximum lookup bits, returns actual */ | 98 | uIntf *m; /* maximum lookup bits, returns actual */ |
107 | z_streamp zs; /* for zalloc function */ | 99 | inflate_huft *hp; /* space for trees */ |
100 | uInt *hn; /* hufts used in space */ | ||
101 | uIntf *v; /* working area: values in order of bit length */ | ||
108 | /* Given a list of code lengths and a maximum table size, make a set of | 102 | /* Given a list of code lengths and a maximum table size, make a set of |
109 | tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR | 103 | tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR |
110 | if the given code set is incomplete (the tables are still built in this | 104 | if the given code set is incomplete (the tables are still built in this |
@@ -121,11 +115,11 @@ z_streamp zs; /* for zalloc function */ | |||
121 | register uInt j; /* counter */ | 115 | register uInt j; /* counter */ |
122 | register int k; /* number of bits in current code */ | 116 | register int k; /* number of bits in current code */ |
123 | int l; /* bits per table (returned in m) */ | 117 | int l; /* bits per table (returned in m) */ |
118 | uInt mask; /* (1 << w) - 1, to avoid cc -O bug on HP */ | ||
124 | register uIntf *p; /* pointer into c[], b[], or v[] */ | 119 | register uIntf *p; /* pointer into c[], b[], or v[] */ |
125 | inflate_huft *q; /* points to current table */ | 120 | inflate_huft *q; /* points to current table */ |
126 | struct inflate_huft_s r; /* table entry for structure assignment */ | 121 | struct inflate_huft_s r; /* table entry for structure assignment */ |
127 | inflate_huft *u[BMAX]; /* table stack */ | 122 | inflate_huft *u[BMAX]; /* table stack */ |
128 | uInt v[N_MAX]; /* values in order of bit length */ | ||
129 | register int w; /* bits before this table == (l * h) */ | 123 | register int w; /* bits before this table == (l * h) */ |
130 | uInt x[BMAX+1]; /* bit offsets, then code stack */ | 124 | uInt x[BMAX+1]; /* bit offsets, then code stack */ |
131 | uIntf *xp; /* pointer into x */ | 125 | uIntf *xp; /* pointer into x */ |
@@ -233,20 +227,16 @@ z_streamp zs; /* for zalloc function */ | |||
233 | } | 227 | } |
234 | z = 1 << j; /* table entries for j-bit table */ | 228 | z = 1 << j; /* table entries for j-bit table */ |
235 | 229 | ||
236 | /* allocate and link in new table */ | 230 | /* allocate new table */ |
237 | if ((q = (inflate_huft *)ZALLOC | 231 | if (*hn + z > MANY) /* (note: doesn't matter for fixed) */ |
238 | (zs,z + 1,sizeof(inflate_huft))) == Z_NULL) | ||
239 | { | ||
240 | if (h) | ||
241 | inflate_trees_free(u[0], zs); | ||
242 | return Z_MEM_ERROR; /* not enough memory */ | 232 | return Z_MEM_ERROR; /* not enough memory */ |
233 | u[h] = q = hp + *hn; | ||
234 | *hn += z; | ||
235 | if (t != Z_NULL) /* first table is returned result */ | ||
236 | { | ||
237 | *t = q; | ||
238 | t = Z_NULL; | ||
243 | } | 239 | } |
244 | #ifdef DEBUG | ||
245 | inflate_hufts += z + 1; | ||
246 | #endif | ||
247 | *t = q + 1; /* link to list for huft_free() */ | ||
248 | *(t = &(q->next)) = Z_NULL; | ||
249 | u[h] = ++q; /* table starts after link */ | ||
250 | 240 | ||
251 | /* connect to last table, if there is one */ | 241 | /* connect to last table, if there is one */ |
252 | if (h) | 242 | if (h) |
@@ -286,10 +276,12 @@ z_streamp zs; /* for zalloc function */ | |||
286 | i ^= j; | 276 | i ^= j; |
287 | 277 | ||
288 | /* backup over finished tables */ | 278 | /* backup over finished tables */ |
289 | while ((i & ((1 << w) - 1)) != x[h]) | 279 | mask = (1 << w) - 1; /* needed on HP, cc -O bug */ |
280 | while ((i & mask) != x[h]) | ||
290 | { | 281 | { |
291 | h--; /* don't need to update q */ | 282 | h--; /* don't need to update q */ |
292 | w -= l; | 283 | w -= l; |
284 | mask = (1 << w) - 1; | ||
293 | } | 285 | } |
294 | } | 286 | } |
295 | } | 287 | } |
@@ -300,28 +292,34 @@ z_streamp zs; /* for zalloc function */ | |||
300 | } | 292 | } |
301 | 293 | ||
302 | 294 | ||
303 | int inflate_trees_bits(c, bb, tb, z) | 295 | int inflate_trees_bits(c, bb, tb, hp, z) |
304 | uIntf *c; /* 19 code lengths */ | 296 | uIntf *c; /* 19 code lengths */ |
305 | uIntf *bb; /* bits tree desired/actual depth */ | 297 | uIntf *bb; /* bits tree desired/actual depth */ |
306 | inflate_huft * FAR *tb; /* bits tree result */ | 298 | inflate_huft * FAR *tb; /* bits tree result */ |
307 | z_streamp z; /* for zfree function */ | 299 | inflate_huft *hp; /* space for trees */ |
300 | z_streamp z; /* for messages */ | ||
308 | { | 301 | { |
309 | int r; | 302 | int r; |
303 | uInt hn = 0; /* hufts used in space */ | ||
304 | uIntf *v; /* work area for huft_build */ | ||
310 | 305 | ||
311 | r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, tb, bb, z); | 306 | if ((v = (uIntf*)ZALLOC(z, 19, sizeof(uInt))) == Z_NULL) |
307 | return Z_MEM_ERROR; | ||
308 | r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, | ||
309 | tb, bb, hp, &hn, v); | ||
312 | if (r == Z_DATA_ERROR) | 310 | if (r == Z_DATA_ERROR) |
313 | z->msg = (char*)"oversubscribed dynamic bit lengths tree"; | 311 | z->msg = (char*)"oversubscribed dynamic bit lengths tree"; |
314 | else if (r == Z_BUF_ERROR || *bb == 0) | 312 | else if (r == Z_BUF_ERROR || *bb == 0) |
315 | { | 313 | { |
316 | inflate_trees_free(*tb, z); | ||
317 | z->msg = (char*)"incomplete dynamic bit lengths tree"; | 314 | z->msg = (char*)"incomplete dynamic bit lengths tree"; |
318 | r = Z_DATA_ERROR; | 315 | r = Z_DATA_ERROR; |
319 | } | 316 | } |
317 | ZFREE(z, v); | ||
320 | return r; | 318 | return r; |
321 | } | 319 | } |
322 | 320 | ||
323 | 321 | ||
324 | int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, z) | 322 | int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, hp, z) |
325 | uInt nl; /* number of literal/length codes */ | 323 | uInt nl; /* number of literal/length codes */ |
326 | uInt nd; /* number of distance codes */ | 324 | uInt nd; /* number of distance codes */ |
327 | uIntf *c; /* that many (total) code lengths */ | 325 | uIntf *c; /* that many (total) code lengths */ |
@@ -329,27 +327,34 @@ uIntf *bl; /* literal desired/actual bit depth */ | |||
329 | uIntf *bd; /* distance desired/actual bit depth */ | 327 | uIntf *bd; /* distance desired/actual bit depth */ |
330 | inflate_huft * FAR *tl; /* literal/length tree result */ | 328 | inflate_huft * FAR *tl; /* literal/length tree result */ |
331 | inflate_huft * FAR *td; /* distance tree result */ | 329 | inflate_huft * FAR *td; /* distance tree result */ |
332 | z_streamp z; /* for zfree function */ | 330 | inflate_huft *hp; /* space for trees */ |
331 | z_streamp z; /* for messages */ | ||
333 | { | 332 | { |
334 | int r; | 333 | int r; |
334 | uInt hn = 0; /* hufts used in space */ | ||
335 | uIntf *v; /* work area for huft_build */ | ||
336 | |||
337 | /* allocate work area */ | ||
338 | if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) | ||
339 | return Z_MEM_ERROR; | ||
335 | 340 | ||
336 | /* build literal/length tree */ | 341 | /* build literal/length tree */ |
337 | r = huft_build(c, nl, 257, cplens, cplext, tl, bl, z); | 342 | r = huft_build(c, nl, 257, cplens, cplext, tl, bl, hp, &hn, v); |
338 | if (r != Z_OK || *bl == 0) | 343 | if (r != Z_OK || *bl == 0) |
339 | { | 344 | { |
340 | if (r == Z_DATA_ERROR) | 345 | if (r == Z_DATA_ERROR) |
341 | z->msg = (char*)"oversubscribed literal/length tree"; | 346 | z->msg = (char*)"oversubscribed literal/length tree"; |
342 | else if (r != Z_MEM_ERROR) | 347 | else if (r != Z_MEM_ERROR) |
343 | { | 348 | { |
344 | inflate_trees_free(*tl, z); | ||
345 | z->msg = (char*)"incomplete literal/length tree"; | 349 | z->msg = (char*)"incomplete literal/length tree"; |
346 | r = Z_DATA_ERROR; | 350 | r = Z_DATA_ERROR; |
347 | } | 351 | } |
352 | ZFREE(z, v); | ||
348 | return r; | 353 | return r; |
349 | } | 354 | } |
350 | 355 | ||
351 | /* build distance tree */ | 356 | /* build distance tree */ |
352 | r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, z); | 357 | r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, hp, &hn, v); |
353 | if (r != Z_OK || (*bd == 0 && nl > 257)) | 358 | if (r != Z_OK || (*bd == 0 && nl > 257)) |
354 | { | 359 | { |
355 | if (r == Z_DATA_ERROR) | 360 | if (r == Z_DATA_ERROR) |
@@ -359,7 +364,6 @@ z_streamp z; /* for zfree function */ | |||
359 | r = Z_OK; | 364 | r = Z_OK; |
360 | } | 365 | } |
361 | #else | 366 | #else |
362 | inflate_trees_free(*td, z); | ||
363 | z->msg = (char*)"incomplete distance tree"; | 367 | z->msg = (char*)"incomplete distance tree"; |
364 | r = Z_DATA_ERROR; | 368 | r = Z_DATA_ERROR; |
365 | } | 369 | } |
@@ -368,19 +372,20 @@ z_streamp z; /* for zfree function */ | |||
368 | z->msg = (char*)"empty distance tree with lengths"; | 372 | z->msg = (char*)"empty distance tree with lengths"; |
369 | r = Z_DATA_ERROR; | 373 | r = Z_DATA_ERROR; |
370 | } | 374 | } |
371 | inflate_trees_free(*tl, z); | 375 | ZFREE(z, v); |
372 | return r; | 376 | return r; |
373 | #endif | 377 | #endif |
374 | } | 378 | } |
375 | 379 | ||
376 | /* done */ | 380 | /* done */ |
381 | ZFREE(z, v); | ||
377 | return Z_OK; | 382 | return Z_OK; |
378 | } | 383 | } |
379 | 384 | ||
380 | 385 | ||
381 | /* build fixed tables only once--keep them here */ | 386 | /* build fixed tables only once--keep them here */ |
382 | local int fixed_built = 0; | 387 | local int fixed_built = 0; |
383 | #define FIXEDH 530 /* number of hufts used by fixed tables */ | 388 | #define FIXEDH 424 /* number of hufts used by fixed tables */ |
384 | local inflate_huft fixed_mem[FIXEDH]; | 389 | local inflate_huft fixed_mem[FIXEDH]; |
385 | local uInt fixed_bl; | 390 | local uInt fixed_bl; |
386 | local uInt fixed_bd; | 391 | local uInt fixed_bd; |
@@ -388,36 +393,29 @@ local inflate_huft *fixed_tl; | |||
388 | local inflate_huft *fixed_td; | 393 | local inflate_huft *fixed_td; |
389 | 394 | ||
390 | 395 | ||
391 | local voidpf falloc(q, n, s) | 396 | int inflate_trees_fixed(bl, bd, tl, td, z) |
392 | voidpf q; /* opaque pointer */ | ||
393 | uInt n; /* number of items */ | ||
394 | uInt s; /* size of item */ | ||
395 | { | ||
396 | Assert(s == sizeof(inflate_huft) && n <= *(intf *)q, | ||
397 | "inflate_trees falloc overflow"); | ||
398 | *(intf *)q -= n+s-s; /* s-s to avoid warning */ | ||
399 | return (voidpf)(fixed_mem + *(intf *)q); | ||
400 | } | ||
401 | |||
402 | |||
403 | int inflate_trees_fixed(bl, bd, tl, td) | ||
404 | uIntf *bl; /* literal desired/actual bit depth */ | 397 | uIntf *bl; /* literal desired/actual bit depth */ |
405 | uIntf *bd; /* distance desired/actual bit depth */ | 398 | uIntf *bd; /* distance desired/actual bit depth */ |
406 | inflate_huft * FAR *tl; /* literal/length tree result */ | 399 | inflate_huft * FAR *tl; /* literal/length tree result */ |
407 | inflate_huft * FAR *td; /* distance tree result */ | 400 | inflate_huft * FAR *td; /* distance tree result */ |
401 | z_streamp z; /* for memory allocation */ | ||
408 | { | 402 | { |
409 | /* build fixed tables if not already (multiple overlapped executions ok) */ | 403 | /* build fixed tables if not already (multiple overlapped executions ok) */ |
410 | if (!fixed_built) | 404 | if (!fixed_built) |
411 | { | 405 | { |
412 | int k; /* temporary variable */ | 406 | int k; /* temporary variable */ |
413 | unsigned c[288]; /* length list for huft_build */ | 407 | uInt f = 0; /* number of hufts used in fixed_mem */ |
414 | z_stream z; /* for falloc function */ | 408 | uIntf *c; /* length list for huft_build */ |
415 | int f = FIXEDH; /* number of hufts left in fixed_mem */ | 409 | uIntf *v; /* work area for huft_build */ |
416 | 410 | ||
417 | /* set up fake z_stream for memory routines */ | 411 | /* allocate memory */ |
418 | z.zalloc = falloc; | 412 | if ((c = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) |
419 | z.zfree = Z_NULL; | 413 | return Z_MEM_ERROR; |
420 | z.opaque = (voidpf)&f; | 414 | if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) |
415 | { | ||
416 | ZFREE(z, c); | ||
417 | return Z_MEM_ERROR; | ||
418 | } | ||
421 | 419 | ||
422 | /* literal table */ | 420 | /* literal table */ |
423 | for (k = 0; k < 144; k++) | 421 | for (k = 0; k < 144; k++) |
@@ -429,16 +427,19 @@ inflate_huft * FAR *td; /* distance tree result */ | |||
429 | for (; k < 288; k++) | 427 | for (; k < 288; k++) |
430 | c[k] = 8; | 428 | c[k] = 8; |
431 | fixed_bl = 7; | 429 | fixed_bl = 7; |
432 | huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, &z); | 430 | huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, |
431 | fixed_mem, &f, v); | ||
433 | 432 | ||
434 | /* distance table */ | 433 | /* distance table */ |
435 | for (k = 0; k < 30; k++) | 434 | for (k = 0; k < 30; k++) |
436 | c[k] = 5; | 435 | c[k] = 5; |
437 | fixed_bd = 5; | 436 | fixed_bd = 5; |
438 | huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, &z); | 437 | huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, |
438 | fixed_mem, &f, v); | ||
439 | 439 | ||
440 | /* done */ | 440 | /* done */ |
441 | Assert(f == 0, "invalid build of fixed tables"); | 441 | ZFREE(z, v); |
442 | ZFREE(z, c); | ||
442 | fixed_built = 1; | 443 | fixed_built = 1; |
443 | } | 444 | } |
444 | *bl = fixed_bl; | 445 | *bl = fixed_bl; |
@@ -447,33 +448,3 @@ inflate_huft * FAR *td; /* distance tree result */ | |||
447 | *td = fixed_td; | 448 | *td = fixed_td; |
448 | return Z_OK; | 449 | return Z_OK; |
449 | } | 450 | } |
450 | |||
451 | |||
452 | int inflate_trees_free(t, z) | ||
453 | inflate_huft *t; /* table to free */ | ||
454 | z_streamp z; /* for zfree function */ | ||
455 | /* Free the malloc'ed tables built by huft_build(), which makes a linked | ||
456 | list of the tables it made, with the links in a dummy first entry of | ||
457 | each table. */ | ||
458 | { | ||
459 | register inflate_huft *p, *q, *r; | ||
460 | |||
461 | /* Reverse linked list */ | ||
462 | p = Z_NULL; | ||
463 | q = t; | ||
464 | while (q != Z_NULL) | ||
465 | { | ||
466 | r = (q - 1)->next; | ||
467 | (q - 1)->next = p; | ||
468 | p = q; | ||
469 | q = r; | ||
470 | } | ||
471 | /* Go through linked list, freeing from the malloced (t[-1]) address. */ | ||
472 | while (p != Z_NULL) | ||
473 | { | ||
474 | q = (--p)->next; | ||
475 | ZFREE(z,p); | ||
476 | p = q; | ||
477 | } | ||
478 | return Z_OK; | ||
479 | } | ||
@@ -27,15 +27,19 @@ struct inflate_huft_s { | |||
27 | } more; | 27 | } more; |
28 | }; | 28 | }; |
29 | 29 | ||
30 | #ifdef DEBUG | 30 | /* Maximum size of dynamic tree. The maximum found in a long but non- |
31 | extern uInt inflate_hufts; | 31 | exhaustive search was 1041 huft structures (875 for length/literals |
32 | #endif | 32 | and 166 for distances, the latter actually the result of an |
33 | exhaustive search). The actual maximum is not known, but the | ||
34 | value below is more than safe. */ | ||
35 | #define MANY 1440 | ||
33 | 36 | ||
34 | extern int inflate_trees_bits OF(( | 37 | extern int inflate_trees_bits OF(( |
35 | uIntf *, /* 19 code lengths */ | 38 | uIntf *, /* 19 code lengths */ |
36 | uIntf *, /* bits tree desired/actual depth */ | 39 | uIntf *, /* bits tree desired/actual depth */ |
37 | inflate_huft * FAR *, /* bits tree result */ | 40 | inflate_huft * FAR *, /* bits tree result */ |
38 | z_streamp )); /* for zalloc, zfree functions */ | 41 | inflate_huft *, /* space for trees */ |
42 | z_streamp)); /* for messages */ | ||
39 | 43 | ||
40 | extern int inflate_trees_dynamic OF(( | 44 | extern int inflate_trees_dynamic OF(( |
41 | uInt, /* number of literal/length codes */ | 45 | uInt, /* number of literal/length codes */ |
@@ -45,15 +49,12 @@ extern int inflate_trees_dynamic OF(( | |||
45 | uIntf *, /* distance desired/actual bit depth */ | 49 | uIntf *, /* distance desired/actual bit depth */ |
46 | inflate_huft * FAR *, /* literal/length tree result */ | 50 | inflate_huft * FAR *, /* literal/length tree result */ |
47 | inflate_huft * FAR *, /* distance tree result */ | 51 | inflate_huft * FAR *, /* distance tree result */ |
48 | z_streamp )); /* for zalloc, zfree functions */ | 52 | inflate_huft *, /* space for trees */ |
53 | z_streamp)); /* for messages */ | ||
49 | 54 | ||
50 | extern int inflate_trees_fixed OF(( | 55 | extern int inflate_trees_fixed OF(( |
51 | uIntf *, /* literal desired/actual bit depth */ | 56 | uIntf *, /* literal desired/actual bit depth */ |
52 | uIntf *, /* distance desired/actual bit depth */ | 57 | uIntf *, /* distance desired/actual bit depth */ |
53 | inflate_huft * FAR *, /* literal/length tree result */ | 58 | inflate_huft * FAR *, /* literal/length tree result */ |
54 | inflate_huft * FAR *)); /* distance tree result */ | 59 | inflate_huft * FAR *, /* distance tree result */ |
55 | 60 | z_streamp)); /* for memory allocation */ | |
56 | extern int inflate_trees_free OF(( | ||
57 | inflate_huft *, /* tables to free */ | ||
58 | z_streamp )); /* for zfree function */ | ||
59 | |||
@@ -41,8 +41,6 @@ struct inflate_blocks_state { | |||
41 | inflate_huft *tb; /* bit length decoding tree */ | 41 | inflate_huft *tb; /* bit length decoding tree */ |
42 | } trees; /* if DTREE, decoding info for trees */ | 42 | } trees; /* if DTREE, decoding info for trees */ |
43 | struct { | 43 | struct { |
44 | inflate_huft *tl; | ||
45 | inflate_huft *td; /* trees to free */ | ||
46 | inflate_codes_statef | 44 | inflate_codes_statef |
47 | *codes; | 45 | *codes; |
48 | } decode; /* if CODES, current state */ | 46 | } decode; /* if CODES, current state */ |
@@ -52,6 +50,7 @@ struct inflate_blocks_state { | |||
52 | /* mode independent information */ | 50 | /* mode independent information */ |
53 | uInt bitk; /* bits in bit buffer */ | 51 | uInt bitk; /* bits in bit buffer */ |
54 | uLong bitb; /* bit buffer */ | 52 | uLong bitb; /* bit buffer */ |
53 | inflate_huft *hufts; /* single malloc for tree space */ | ||
55 | Bytef *window; /* sliding window */ | 54 | Bytef *window; /* sliding window */ |
56 | Bytef *end; /* one byte after sliding window */ | 55 | Bytef *end; /* one byte after sliding window */ |
57 | Bytef *read; /* window read pointer */ | 56 | Bytef *read; /* window read pointer */ |
@@ -44,13 +44,15 @@ | |||
44 | # define fileno(file) file->__file | 44 | # define fileno(file) file->__file |
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | #ifndef WIN32 /* unlink already in stdio.h for WIN32 */ | ||
48 | extern int unlink OF((const char *)); | ||
49 | #endif | ||
50 | |||
47 | #ifndef GZ_SUFFIX | 51 | #ifndef GZ_SUFFIX |
48 | # define GZ_SUFFIX ".gz" | 52 | # define GZ_SUFFIX ".gz" |
49 | #endif | 53 | #endif |
50 | #define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1) | 54 | #define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1) |
51 | 55 | ||
52 | extern int unlink OF((const char *)); | ||
53 | |||
54 | #define BUFLEN 4096 | 56 | #define BUFLEN 4096 |
55 | #define MAX_NAME_LEN 1024 | 57 | #define MAX_NAME_LEN 1024 |
56 | 58 | ||
diff --git a/msdos/zlib.def b/msdos/zlib.def index 9bcdea4..89e626c 100644 --- a/msdos/zlib.def +++ b/msdos/zlib.def | |||
@@ -8,7 +8,7 @@ SUBSYSTEM WINDOWS | |||
8 | 8 | ||
9 | STUB 'WINSTUB.EXE' | 9 | STUB 'WINSTUB.EXE' |
10 | 10 | ||
11 | VERSION 1.08 | 11 | VERSION 1.09 |
12 | 12 | ||
13 | CODE EXECUTE READ | 13 | CODE EXECUTE READ |
14 | 14 | ||
@@ -55,3 +55,6 @@ EXPORTS | |||
55 | zError @36 | 55 | zError @36 |
56 | inflateSyncPoint @37 | 56 | inflateSyncPoint @37 |
57 | get_crc_table @38 | 57 | get_crc_table @38 |
58 | compress2 @39 | ||
59 | gzputs @40 | ||
60 | gzgets @41 | ||
diff --git a/msdos/zlib.rc b/msdos/zlib.rc index cda7744..86690ec 100644 --- a/msdos/zlib.rc +++ b/msdos/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,0,8,0 | 5 | FILEVERSION 1,0,9,0 |
6 | PRODUCTVERSION 1,0,8,0 | 6 | PRODUCTVERSION 1,0,9,0 |
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 library\0" | 19 | VALUE "FileDescription", "zlib data compression library\0" |
20 | VALUE "FileVersion", "1.0.8\0" | 20 | VALUE "FileVersion", "1.0.9\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/nt/zlib.dnt b/nt/zlib.dnt index 18c990c..7f9475c 100644 --- a/nt/zlib.dnt +++ b/nt/zlib.dnt | |||
@@ -42,3 +42,6 @@ EXPORTS | |||
42 | zError @36 | 42 | zError @36 |
43 | inflateSyncPoint @37 | 43 | inflateSyncPoint @37 |
44 | get_crc_table @38 | 44 | get_crc_table @38 |
45 | compress2 @39 | ||
46 | gzputs @40 | ||
47 | gzgets @41 | ||
@@ -1,2 +0,0 @@ | |||
1 | extern int getchar(); | ||
2 | int hello() {return getchar();} | ||
@@ -22,7 +22,7 @@ | |||
22 | enough memory, Z_BUF_ERROR if there was not enough room in the output | 22 | enough memory, Z_BUF_ERROR if there was not enough room in the output |
23 | buffer, or Z_DATA_ERROR if the input data was corrupted. | 23 | buffer, or Z_DATA_ERROR if the input data was corrupted. |
24 | */ | 24 | */ |
25 | int EXPORT uncompress (dest, destLen, source, sourceLen) | 25 | int ZEXPORT uncompress (dest, destLen, source, sourceLen) |
26 | Bytef *dest; | 26 | Bytef *dest; |
27 | uLongf *destLen; | 27 | uLongf *destLen; |
28 | const Bytef *source; | 28 | const Bytef *source; |
@@ -30,6 +30,7 @@ | |||
30 | # define inflateSyncPoint z_inflateSyncPoint | 30 | # define inflateSyncPoint z_inflateSyncPoint |
31 | # define inflateReset z_inflateReset | 31 | # define inflateReset z_inflateReset |
32 | # define compress z_compress | 32 | # define compress z_compress |
33 | # define compress2 z_compress2 | ||
33 | # define uncompress z_uncompress | 34 | # define uncompress z_uncompress |
34 | # define adler32 z_adler32 | 35 | # define adler32 z_adler32 |
35 | # define crc32 z_crc32 | 36 | # define crc32 z_crc32 |
@@ -158,6 +159,29 @@ | |||
158 | # define FAR __far | 159 | # define FAR __far |
159 | # endif | 160 | # endif |
160 | #endif | 161 | #endif |
162 | |||
163 | /* Compile with -DZLIB_DLL for Windows DLL support */ | ||
164 | #if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL) | ||
165 | # ifdef FAR | ||
166 | # undef FAR | ||
167 | # endif | ||
168 | # include <windows.h> | ||
169 | # define ZEXPORT WINAPI | ||
170 | # ifdef WIN32 | ||
171 | # define ZEXPORTVA WINAPIV | ||
172 | # else | ||
173 | # define ZEXPORTVA FAR _cdecl _export | ||
174 | # endif | ||
175 | #else | ||
176 | # if defined (__BORLANDC__) && defined (_Windows) && defined (__DLL__) | ||
177 | # define ZEXPORT _export | ||
178 | # define ZEXPORTVA _export | ||
179 | # else | ||
180 | # define ZEXPORT | ||
181 | # define ZEXPORTVA | ||
182 | # endif | ||
183 | #endif | ||
184 | |||
161 | #ifndef FAR | 185 | #ifndef FAR |
162 | # define FAR | 186 | # define FAR |
163 | #endif | 187 | #endif |
@@ -198,26 +222,6 @@ typedef uLong FAR uLongf; | |||
198 | # define z_off_t long | 222 | # define z_off_t long |
199 | #endif | 223 | #endif |
200 | 224 | ||
201 | /* Compile with -DZLIB_DLL for Windows DLL support */ | ||
202 | #if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL) | ||
203 | # undef FAR | ||
204 | # include <windows.h> | ||
205 | # define EXPORT WINAPI | ||
206 | # ifdef WIN32 | ||
207 | # define EXPORTVA WINAPIV | ||
208 | # else | ||
209 | # define EXPORTVA FAR _cdecl _export | ||
210 | # endif | ||
211 | #else | ||
212 | # if defined (__BORLANDC__) && defined (_Windows) && defined (__DLL__) | ||
213 | # define EXPORT _export | ||
214 | # define EXPORTVA _export | ||
215 | # else | ||
216 | # define EXPORT | ||
217 | # define EXPORTVA | ||
218 | # endif | ||
219 | #endif | ||
220 | |||
221 | /* MVS linker does not support external names larger than 8 bytes */ | 225 | /* MVS linker does not support external names larger than 8 bytes */ |
222 | #if defined(__MVS__) | 226 | #if defined(__MVS__) |
223 | # pragma map(deflateInit_,"DEIN") | 227 | # pragma map(deflateInit_,"DEIN") |
@@ -1,10 +1,10 @@ | |||
1 | .TH ZLIB 3 "26 January 1998" | 1 | .TH ZLIB 3 "16 February 1998" |
2 | .SH NAME | 2 | .SH NAME |
3 | zlib \- compression/decompression library | 3 | zlib \- compression/decompression library |
4 | .SH SYNOPSIS | 4 | .SH SYNOPSIS |
5 | [see | 5 | [see |
6 | .I zlib.h | 6 | .I zlib.h |
7 | for full descripton] | 7 | for full description] |
8 | .SH DESCRIPTION | 8 | .SH DESCRIPTION |
9 | The | 9 | The |
10 | .I zlib | 10 | .I zlib |
@@ -81,7 +81,7 @@ These documents are also available in other formats from: | |||
81 | .IP | 81 | .IP |
82 | ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html | 82 | ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html |
83 | .SH AUTHORS | 83 | .SH AUTHORS |
84 | Version 1.0.8. | 84 | Version 1.0.9. |
85 | Copyright (C) 1995-1998 Jean-loup Gailly (jloup@gzip.org) | 85 | Copyright (C) 1995-1998 Jean-loup Gailly (jloup@gzip.org) |
86 | and Mark Adler (madler@alumni.caltech.edu). | 86 | and Mark Adler (madler@alumni.caltech.edu). |
87 | .LP | 87 | .LP |
@@ -1,5 +1,5 @@ | |||
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.0.8, Jan 27th, 1998 | 2 | version 1.0.9, Feb 16th, 1998 |
3 | 3 | ||
4 | Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler | 4 | Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler |
5 | 5 | ||
@@ -37,7 +37,7 @@ extern "C" { | |||
37 | 37 | ||
38 | #include "zconf.h" | 38 | #include "zconf.h" |
39 | 39 | ||
40 | #define ZLIB_VERSION "1.0.8" | 40 | #define ZLIB_VERSION "1.0.9" |
41 | 41 | ||
42 | /* | 42 | /* |
43 | The 'zlib' compression library provides in-memory compression and | 43 | The 'zlib' compression library provides in-memory compression and |
@@ -101,6 +101,9 @@ typedef z_stream FAR *z_streamp; | |||
101 | opaque value. | 101 | opaque value. |
102 | 102 | ||
103 | zalloc must return Z_NULL if there is not enough memory for the object. | 103 | zalloc must return Z_NULL if there is not enough memory for the object. |
104 | If zlib is used in a multi-threaded application, zalloc and zfree must be | ||
105 | thread safe. | ||
106 | |||
104 | On 16-bit systems, the functions zalloc and zfree must be able to allocate | 107 | On 16-bit systems, the functions zalloc and zfree must be able to allocate |
105 | exactly 65536 bytes, but will not be required to allocate more than this | 108 | exactly 65536 bytes, but will not be required to allocate more than this |
106 | if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, | 109 | if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, |
@@ -165,7 +168,7 @@ typedef z_stream FAR *z_streamp; | |||
165 | 168 | ||
166 | /* basic functions */ | 169 | /* basic functions */ |
167 | 170 | ||
168 | extern const char * EXPORT zlibVersion OF((void)); | 171 | extern const char * ZEXPORT zlibVersion OF((void)); |
169 | /* The application can compare zlibVersion and ZLIB_VERSION for consistency. | 172 | /* The application can compare zlibVersion and ZLIB_VERSION for consistency. |
170 | If the first character differs, the library code actually used is | 173 | If the first character differs, the library code actually used is |
171 | not compatible with the zlib.h header file used by the application. | 174 | not compatible with the zlib.h header file used by the application. |
@@ -173,7 +176,7 @@ extern const char * EXPORT zlibVersion OF((void)); | |||
173 | */ | 176 | */ |
174 | 177 | ||
175 | /* | 178 | /* |
176 | extern int EXPORT deflateInit OF((z_streamp strm, int level)); | 179 | extern int ZEXPORT deflateInit OF((z_streamp strm, int level)); |
177 | 180 | ||
178 | Initializes the internal stream state for compression. The fields | 181 | Initializes the internal stream state for compression. The fields |
179 | zalloc, zfree and opaque must be initialized before by the caller. | 182 | zalloc, zfree and opaque must be initialized before by the caller. |
@@ -195,7 +198,7 @@ extern int EXPORT deflateInit OF((z_streamp strm, int level)); | |||
195 | */ | 198 | */ |
196 | 199 | ||
197 | 200 | ||
198 | extern int EXPORT deflate OF((z_streamp strm, int flush)); | 201 | extern int ZEXPORT deflate OF((z_streamp strm, int flush)); |
199 | /* | 202 | /* |
200 | deflate compresses as much data as possible, and stops when the input | 203 | deflate compresses as much data as possible, and stops when the input |
201 | buffer becomes empty or the output buffer becomes full. It may introduce some | 204 | buffer becomes empty or the output buffer becomes full. It may introduce some |
@@ -272,7 +275,7 @@ extern int EXPORT deflate OF((z_streamp strm, int flush)); | |||
272 | */ | 275 | */ |
273 | 276 | ||
274 | 277 | ||
275 | extern int EXPORT deflateEnd OF((z_streamp strm)); | 278 | extern int ZEXPORT deflateEnd OF((z_streamp strm)); |
276 | /* | 279 | /* |
277 | All dynamically allocated data structures for this stream are freed. | 280 | All dynamically allocated data structures for this stream are freed. |
278 | This function discards any unprocessed input and does not flush any | 281 | This function discards any unprocessed input and does not flush any |
@@ -287,7 +290,7 @@ extern int EXPORT deflateEnd OF((z_streamp strm)); | |||
287 | 290 | ||
288 | 291 | ||
289 | /* | 292 | /* |
290 | extern int EXPORT inflateInit OF((z_streamp strm)); | 293 | extern int ZEXPORT inflateInit OF((z_streamp strm)); |
291 | 294 | ||
292 | Initializes the internal stream state for decompression. The fields | 295 | Initializes the internal stream state for decompression. The fields |
293 | next_in, avail_in, zalloc, zfree and opaque must be initialized before by | 296 | next_in, avail_in, zalloc, zfree and opaque must be initialized before by |
@@ -307,7 +310,7 @@ extern int EXPORT inflateInit OF((z_streamp strm)); | |||
307 | */ | 310 | */ |
308 | 311 | ||
309 | 312 | ||
310 | extern int EXPORT inflate OF((z_streamp strm, int flush)); | 313 | extern int ZEXPORT inflate OF((z_streamp strm, int flush)); |
311 | /* | 314 | /* |
312 | inflate decompresses as much data as possible, and stops when the input | 315 | inflate decompresses as much data as possible, and stops when the input |
313 | buffer becomes empty or the output buffer becomes full. It may some | 316 | buffer becomes empty or the output buffer becomes full. It may some |
@@ -376,7 +379,7 @@ extern int EXPORT inflate OF((z_streamp strm, int flush)); | |||
376 | */ | 379 | */ |
377 | 380 | ||
378 | 381 | ||
379 | extern int EXPORT inflateEnd OF((z_streamp strm)); | 382 | extern int ZEXPORT inflateEnd OF((z_streamp strm)); |
380 | /* | 383 | /* |
381 | All dynamically allocated data structures for this stream are freed. | 384 | All dynamically allocated data structures for this stream are freed. |
382 | This function discards any unprocessed input and does not flush any | 385 | This function discards any unprocessed input and does not flush any |
@@ -394,12 +397,12 @@ extern int EXPORT inflateEnd OF((z_streamp strm)); | |||
394 | */ | 397 | */ |
395 | 398 | ||
396 | /* | 399 | /* |
397 | extern int EXPORT deflateInit2 OF((z_streamp strm, | 400 | extern int ZEXPORT deflateInit2 OF((z_streamp strm, |
398 | int level, | 401 | int level, |
399 | int method, | 402 | int method, |
400 | int windowBits, | 403 | int windowBits, |
401 | int memLevel, | 404 | int memLevel, |
402 | int strategy)); | 405 | int strategy)); |
403 | 406 | ||
404 | This is another version of deflateInit with more compression options. The | 407 | This is another version of deflateInit with more compression options. The |
405 | fields next_in, zalloc, zfree and opaque must be initialized before by | 408 | fields next_in, zalloc, zfree and opaque must be initialized before by |
@@ -437,9 +440,9 @@ extern int EXPORT deflateInit2 OF((z_streamp strm, | |||
437 | not perform any compression: this will be done by deflate(). | 440 | not perform any compression: this will be done by deflate(). |
438 | */ | 441 | */ |
439 | 442 | ||
440 | extern int EXPORT deflateSetDictionary OF((z_streamp strm, | 443 | extern int ZEXPORT deflateSetDictionary OF((z_streamp strm, |
441 | const Bytef *dictionary, | 444 | const Bytef *dictionary, |
442 | uInt dictLength)); | 445 | uInt dictLength)); |
443 | /* | 446 | /* |
444 | Initializes the compression dictionary from the given byte sequence | 447 | Initializes the compression dictionary from the given byte sequence |
445 | without producing any compressed output. This function must be called | 448 | without producing any compressed output. This function must be called |
@@ -473,8 +476,8 @@ extern int EXPORT deflateSetDictionary OF((z_streamp strm, | |||
473 | perform any compression: this will be done by deflate(). | 476 | perform any compression: this will be done by deflate(). |
474 | */ | 477 | */ |
475 | 478 | ||
476 | extern int EXPORT deflateCopy OF((z_streamp dest, | 479 | extern int ZEXPORT deflateCopy OF((z_streamp dest, |
477 | z_streamp source)); | 480 | z_streamp source)); |
478 | /* | 481 | /* |
479 | Sets the destination stream as a complete copy of the source stream. | 482 | Sets the destination stream as a complete copy of the source stream. |
480 | 483 | ||
@@ -491,7 +494,7 @@ extern int EXPORT deflateCopy OF((z_streamp dest, | |||
491 | destination. | 494 | destination. |
492 | */ | 495 | */ |
493 | 496 | ||
494 | extern int EXPORT deflateReset OF((z_streamp strm)); | 497 | extern int ZEXPORT deflateReset OF((z_streamp strm)); |
495 | /* | 498 | /* |
496 | This function is equivalent to deflateEnd followed by deflateInit, | 499 | This function is equivalent to deflateEnd followed by deflateInit, |
497 | but does not free and reallocate all the internal compression state. | 500 | but does not free and reallocate all the internal compression state. |
@@ -502,7 +505,7 @@ extern int EXPORT deflateReset OF((z_streamp strm)); | |||
502 | stream state was inconsistent (such as zalloc or state being NULL). | 505 | stream state was inconsistent (such as zalloc or state being NULL). |
503 | */ | 506 | */ |
504 | 507 | ||
505 | extern int EXPORT deflateParams OF((z_streamp strm, int level, int strategy)); | 508 | extern int ZEXPORT deflateParams OF((z_streamp strm, int level, int strategy)); |
506 | /* | 509 | /* |
507 | Dynamically update the compression level and compression strategy. The | 510 | Dynamically update the compression level and compression strategy. The |
508 | interpretation of level and strategy is as in deflateInit2. This can be | 511 | interpretation of level and strategy is as in deflateInit2. This can be |
@@ -522,8 +525,8 @@ extern int EXPORT deflateParams OF((z_streamp strm, int level, int strategy)); | |||
522 | */ | 525 | */ |
523 | 526 | ||
524 | /* | 527 | /* |
525 | extern int EXPORT inflateInit2 OF((z_streamp strm, | 528 | extern int ZEXPORT inflateInit2 OF((z_streamp strm, |
526 | int windowBits)); | 529 | int windowBits)); |
527 | 530 | ||
528 | This is another version of inflateInit with an extra parameter. The | 531 | This is another version of inflateInit with an extra parameter. The |
529 | fields next_in, avail_in, zalloc, zfree and opaque must be initialized | 532 | fields next_in, avail_in, zalloc, zfree and opaque must be initialized |
@@ -544,9 +547,9 @@ extern int EXPORT inflateInit2 OF((z_streamp strm, | |||
544 | modified, but next_out and avail_out are unchanged.) | 547 | modified, but next_out and avail_out are unchanged.) |
545 | */ | 548 | */ |
546 | 549 | ||
547 | extern int EXPORT inflateSetDictionary OF((z_streamp strm, | 550 | extern int ZEXPORT inflateSetDictionary OF((z_streamp strm, |
548 | const Bytef *dictionary, | 551 | const Bytef *dictionary, |
549 | uInt dictLength)); | 552 | uInt dictLength)); |
550 | /* | 553 | /* |
551 | Initializes the decompression dictionary from the given uncompressed byte | 554 | Initializes the decompression dictionary from the given uncompressed byte |
552 | sequence. This function must be called immediately after a call of inflate | 555 | sequence. This function must be called immediately after a call of inflate |
@@ -563,7 +566,7 @@ extern int EXPORT inflateSetDictionary OF((z_streamp strm, | |||
563 | inflate(). | 566 | inflate(). |
564 | */ | 567 | */ |
565 | 568 | ||
566 | extern int EXPORT inflateSync OF((z_streamp strm)); | 569 | extern int ZEXPORT inflateSync OF((z_streamp strm)); |
567 | /* | 570 | /* |
568 | Skips invalid compressed data until a full flush point (see above the | 571 | Skips invalid compressed data until a full flush point (see above the |
569 | description of deflate with Z_FULL_FLUSH) can be found, or until all | 572 | description of deflate with Z_FULL_FLUSH) can be found, or until all |
@@ -578,7 +581,7 @@ extern int EXPORT inflateSync OF((z_streamp strm)); | |||
578 | until success or end of the input data. | 581 | until success or end of the input data. |
579 | */ | 582 | */ |
580 | 583 | ||
581 | extern int EXPORT inflateReset OF((z_streamp strm)); | 584 | extern int ZEXPORT inflateReset OF((z_streamp strm)); |
582 | /* | 585 | /* |
583 | This function is equivalent to inflateEnd followed by inflateInit, | 586 | This function is equivalent to inflateEnd followed by inflateInit, |
584 | but does not free and reallocate all the internal decompression state. | 587 | but does not free and reallocate all the internal decompression state. |
@@ -599,8 +602,8 @@ extern int EXPORT inflateReset OF((z_streamp strm)); | |||
599 | utility functions can easily be modified if you need special options. | 602 | utility functions can easily be modified if you need special options. |
600 | */ | 603 | */ |
601 | 604 | ||
602 | extern int EXPORT compress OF((Bytef *dest, uLongf *destLen, | 605 | extern int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, |
603 | const Bytef *source, uLong sourceLen)); | 606 | const Bytef *source, uLong sourceLen)); |
604 | /* | 607 | /* |
605 | Compresses the source buffer into the destination buffer. sourceLen is | 608 | Compresses the source buffer into the destination buffer. sourceLen is |
606 | the byte length of the source buffer. Upon entry, destLen is the total | 609 | the byte length of the source buffer. Upon entry, destLen is the total |
@@ -614,9 +617,9 @@ extern int EXPORT compress OF((Bytef *dest, uLongf *destLen, | |||
614 | buffer. | 617 | buffer. |
615 | */ | 618 | */ |
616 | 619 | ||
617 | extern int EXPORT compress2 OF((Bytef *dest, uLongf *destLen, | 620 | extern int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, |
618 | const Bytef *source, uLong sourceLen, | 621 | const Bytef *source, uLong sourceLen, |
619 | int level)); | 622 | int level)); |
620 | /* | 623 | /* |
621 | Compresses the source buffer into the destination buffer. The level | 624 | Compresses the source buffer into the destination buffer. The level |
622 | parameter has the same meaning as in deflateInit. sourceLen is the byte | 625 | parameter has the same meaning as in deflateInit. sourceLen is the byte |
@@ -629,8 +632,8 @@ extern int EXPORT compress2 OF((Bytef *dest, uLongf *destLen, | |||
629 | Z_STREAM_ERROR if the level parameter is invalid. | 632 | Z_STREAM_ERROR if the level parameter is invalid. |
630 | */ | 633 | */ |
631 | 634 | ||
632 | extern int EXPORT uncompress OF((Bytef *dest, uLongf *destLen, | 635 | extern int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, |
633 | const Bytef *source, uLong sourceLen)); | 636 | const Bytef *source, uLong sourceLen)); |
634 | /* | 637 | /* |
635 | Decompresses the source buffer into the destination buffer. sourceLen is | 638 | Decompresses the source buffer into the destination buffer. sourceLen is |
636 | the byte length of the source buffer. Upon entry, destLen is the total | 639 | the byte length of the source buffer. Upon entry, destLen is the total |
@@ -650,7 +653,7 @@ extern int EXPORT uncompress OF((Bytef *dest, uLongf *destLen, | |||
650 | 653 | ||
651 | typedef voidp gzFile; | 654 | typedef voidp gzFile; |
652 | 655 | ||
653 | extern gzFile EXPORT gzopen OF((const char *path, const char *mode)); | 656 | extern gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); |
654 | /* | 657 | /* |
655 | Opens a gzip (.gz) file for reading or writing. The mode parameter | 658 | Opens a gzip (.gz) file for reading or writing. The mode parameter |
656 | is as in fopen ("rb" or "wb") but can also include a compression level | 659 | is as in fopen ("rb" or "wb") but can also include a compression level |
@@ -666,7 +669,7 @@ extern gzFile EXPORT gzopen OF((const char *path, const char *mode)); | |||
666 | can be checked to distinguish the two cases (if errno is zero, the | 669 | can be checked to distinguish the two cases (if errno is zero, the |
667 | zlib error is Z_MEM_ERROR). */ | 670 | zlib error is Z_MEM_ERROR). */ |
668 | 671 | ||
669 | extern gzFile EXPORT gzdopen OF((int fd, const char *mode)); | 672 | extern gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); |
670 | /* | 673 | /* |
671 | gzdopen() associates a gzFile with the file descriptor fd. File | 674 | gzdopen() associates a gzFile with the file descriptor fd. File |
672 | descriptors are obtained from calls like open, dup, creat, pipe or | 675 | descriptors are obtained from calls like open, dup, creat, pipe or |
@@ -679,7 +682,7 @@ extern gzFile EXPORT gzdopen OF((int fd, const char *mode)); | |||
679 | the (de)compression state. | 682 | the (de)compression state. |
680 | */ | 683 | */ |
681 | 684 | ||
682 | extern int EXPORT gzsetparams OF((gzFile file, int level, int strategy)); | 685 | extern int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); |
683 | /* | 686 | /* |
684 | Dynamically update the compression level or strategy. See the description | 687 | Dynamically update the compression level or strategy. See the description |
685 | of deflateInit2 for the meaning of these parameters. | 688 | of deflateInit2 for the meaning of these parameters. |
@@ -687,7 +690,7 @@ extern int EXPORT gzsetparams OF((gzFile file, int level, int strategy)); | |||
687 | opened for writing. | 690 | opened for writing. |
688 | */ | 691 | */ |
689 | 692 | ||
690 | extern int EXPORT gzread OF((gzFile file, voidp buf, unsigned len)); | 693 | extern int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); |
691 | /* | 694 | /* |
692 | Reads the given number of uncompressed bytes from the compressed file. | 695 | Reads the given number of uncompressed bytes from the compressed file. |
693 | If the input file was not in gzip format, gzread copies the given number | 696 | If the input file was not in gzip format, gzread copies the given number |
@@ -695,33 +698,49 @@ extern int EXPORT gzread OF((gzFile file, voidp buf, unsigned len)); | |||
695 | gzread returns the number of uncompressed bytes actually read (0 for | 698 | gzread returns the number of uncompressed bytes actually read (0 for |
696 | end of file, -1 for error). */ | 699 | end of file, -1 for error). */ |
697 | 700 | ||
698 | extern int EXPORT gzwrite OF((gzFile file, const voidp buf, unsigned len)); | 701 | extern int ZEXPORT gzwrite OF((gzFile file, const voidp buf, unsigned len)); |
699 | /* | 702 | /* |
700 | Writes the given number of uncompressed bytes into the compressed file. | 703 | Writes the given number of uncompressed bytes into the compressed file. |
701 | gzwrite returns the number of uncompressed bytes actually written | 704 | gzwrite returns the number of uncompressed bytes actually written |
702 | (0 in case of error). | 705 | (0 in case of error). |
703 | */ | 706 | */ |
704 | 707 | ||
705 | extern int EXPORTVA gzprintf OF((gzFile file, const char *format, ...)); | 708 | extern int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); |
706 | /* | 709 | /* |
707 | Converts, formats, and writes the args to the compressed file under | 710 | Converts, formats, and writes the args to the compressed file under |
708 | control of the format string, as in fprintf. gzprintf returns the number of | 711 | control of the format string, as in fprintf. gzprintf returns the number of |
709 | uncompressed bytes actually written (0 in case of error). | 712 | uncompressed bytes actually written (0 in case of error). |
710 | */ | 713 | */ |
711 | 714 | ||
712 | extern int EXPORT gzputc OF((gzFile file, int c)); | 715 | extern int ZEXPORT gzputs OF((gzFile file, const char *s)); |
716 | /* | ||
717 | Writes the given null-terminated string to the compressed file, excluding | ||
718 | the terminating null character. | ||
719 | gzputs returns the number of characters written, or -1 in case of error. | ||
720 | */ | ||
721 | |||
722 | extern char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); | ||
723 | /* | ||
724 | Reads bytes from the compressed file until len-1 characters are read, or | ||
725 | a newline character is read and transferred to buf, or an end-of-file | ||
726 | condition is encountered. The string is then terminated with a null | ||
727 | character. | ||
728 | gzgets returns buf, or Z_NULL in case of error. | ||
729 | */ | ||
730 | |||
731 | extern int ZEXPORT gzputc OF((gzFile file, int c)); | ||
713 | /* | 732 | /* |
714 | Writes c, converted to an unsigned char, into the compressed file. | 733 | Writes c, converted to an unsigned char, into the compressed file. |
715 | gzputc returns the value that was written, or -1 in case of error. | 734 | gzputc returns the value that was written, or -1 in case of error. |
716 | */ | 735 | */ |
717 | 736 | ||
718 | extern int EXPORT gzgetc OF((gzFile file)); | 737 | extern int ZEXPORT gzgetc OF((gzFile file)); |
719 | /* | 738 | /* |
720 | Reads one byte from the compressed file. gzgetc returns this byte | 739 | Reads one byte from the compressed file. gzgetc returns this byte |
721 | or -1 in case of end of file or error. | 740 | or -1 in case of end of file or error. |
722 | */ | 741 | */ |
723 | 742 | ||
724 | extern int EXPORT gzflush OF((gzFile file, int flush)); | 743 | extern int ZEXPORT gzflush OF((gzFile file, int flush)); |
725 | /* | 744 | /* |
726 | Flushes all pending output into the compressed file. The parameter | 745 | Flushes all pending output into the compressed file. The parameter |
727 | flush is as in the deflate() function. The return value is the zlib | 746 | flush is as in the deflate() function. The return value is the zlib |
@@ -731,7 +750,7 @@ extern int EXPORT gzflush OF((gzFile file, int flush)); | |||
731 | degrade compression. | 750 | degrade compression. |
732 | */ | 751 | */ |
733 | 752 | ||
734 | extern z_off_t EXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); | 753 | extern z_off_t ZEXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); |
735 | /* | 754 | /* |
736 | Sets the starting position for the next gzread or gzwrite on the given | 755 | Sets the starting position for the next gzread or gzwrite on the given |
737 | compressed file. The offset represents a number of bytes in the | 756 | compressed file. The offset represents a number of bytes in the |
@@ -748,14 +767,14 @@ extern z_off_t EXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); | |||
748 | would be before the current position. | 767 | would be before the current position. |
749 | */ | 768 | */ |
750 | 769 | ||
751 | extern int EXPORT gzrewind OF((gzFile file)); | 770 | extern int ZEXPORT gzrewind OF((gzFile file)); |
752 | /* | 771 | /* |
753 | Rewinds the given file. This function is supported only for reading. | 772 | Rewinds the given file. This function is supported only for reading. |
754 | 773 | ||
755 | gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) | 774 | gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) |
756 | */ | 775 | */ |
757 | 776 | ||
758 | extern z_off_t EXPORT gztell OF((gzFile file)); | 777 | extern z_off_t ZEXPORT gztell OF((gzFile file)); |
759 | /* | 778 | /* |
760 | Returns the starting position for the next gzread or gzwrite on the | 779 | Returns the starting position for the next gzread or gzwrite on the |
761 | given compressed file. This position represents a number of bytes in the | 780 | given compressed file. This position represents a number of bytes in the |
@@ -764,20 +783,20 @@ extern z_off_t EXPORT gztell OF((gzFile file)); | |||
764 | gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) | 783 | gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) |
765 | */ | 784 | */ |
766 | 785 | ||
767 | extern int EXPORT gzeof OF((gzFile file)); | 786 | extern int ZEXPORT gzeof OF((gzFile file)); |
768 | /* | 787 | /* |
769 | Returns 1 when EOF has previously been detected reading the given | 788 | Returns 1 when EOF has previously been detected reading the given |
770 | input stream, otherwise zero. | 789 | input stream, otherwise zero. |
771 | */ | 790 | */ |
772 | 791 | ||
773 | extern int EXPORT gzclose OF((gzFile file)); | 792 | extern int ZEXPORT gzclose OF((gzFile file)); |
774 | /* | 793 | /* |
775 | Flushes all pending output if necessary, closes the compressed file | 794 | Flushes all pending output if necessary, closes the compressed file |
776 | and deallocates all the (de)compression state. The return value is the zlib | 795 | and deallocates all the (de)compression state. The return value is the zlib |
777 | error number (see function gzerror below). | 796 | error number (see function gzerror below). |
778 | */ | 797 | */ |
779 | 798 | ||
780 | extern const char * EXPORT gzerror OF((gzFile file, int *errnum)); | 799 | extern const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); |
781 | /* | 800 | /* |
782 | Returns the error message for the last error which occurred on the | 801 | Returns the error message for the last error which occurred on the |
783 | given compressed file. errnum is set to zlib error number. If an | 802 | given compressed file. errnum is set to zlib error number. If an |
@@ -794,7 +813,7 @@ extern const char * EXPORT gzerror OF((gzFile file, int *errnum)); | |||
794 | compression library. | 813 | compression library. |
795 | */ | 814 | */ |
796 | 815 | ||
797 | extern uLong EXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); | 816 | extern uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); |
798 | 817 | ||
799 | /* | 818 | /* |
800 | Update a running Adler-32 checksum with the bytes buf[0..len-1] and | 819 | Update a running Adler-32 checksum with the bytes buf[0..len-1] and |
@@ -811,7 +830,7 @@ extern uLong EXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); | |||
811 | if (adler != original_adler) error(); | 830 | if (adler != original_adler) error(); |
812 | */ | 831 | */ |
813 | 832 | ||
814 | extern uLong EXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); | 833 | extern uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); |
815 | /* | 834 | /* |
816 | Update a running crc with the bytes buf[0..len-1] and return the updated | 835 | Update a running crc with the bytes buf[0..len-1] and return the updated |
817 | crc. If buf is NULL, this function returns the required initial value | 836 | crc. If buf is NULL, this function returns the required initial value |
@@ -833,22 +852,23 @@ extern uLong EXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); | |||
833 | /* deflateInit and inflateInit are macros to allow checking the zlib version | 852 | /* deflateInit and inflateInit are macros to allow checking the zlib version |
834 | * and the compiler's view of z_stream: | 853 | * and the compiler's view of z_stream: |
835 | */ | 854 | */ |
836 | extern int EXPORT deflateInit_ OF((z_streamp strm, int level, | 855 | extern int ZEXPORT deflateInit_ OF((z_streamp strm, int level, |
837 | const char *version, int stream_size)); | 856 | const char *version, int stream_size)); |
838 | extern int EXPORT inflateInit_ OF((z_streamp strm, | 857 | extern int ZEXPORT inflateInit_ OF((z_streamp strm, |
839 | const char *version, int stream_size)); | 858 | const char *version, int stream_size)); |
840 | extern int EXPORT deflateInit2_ OF((z_streamp strm, int level, int method, | 859 | extern int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, |
841 | int windowBits, int memLevel, int strategy, | 860 | int windowBits, int memLevel, |
842 | const char *version, int stream_size)); | 861 | int strategy, const char *version, |
843 | extern int EXPORT inflateInit2_ OF((z_streamp strm, int windowBits, | 862 | int stream_size)); |
844 | const char *version, int stream_size)); | 863 | extern int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, |
864 | const char *version, int stream_size)); | ||
845 | #define deflateInit(strm, level) \ | 865 | #define deflateInit(strm, level) \ |
846 | deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) | 866 | deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) |
847 | #define inflateInit(strm) \ | 867 | #define inflateInit(strm) \ |
848 | inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) | 868 | inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) |
849 | #define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ | 869 | #define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ |
850 | deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ | 870 | deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ |
851 | (strategy), ZLIB_VERSION, sizeof(z_stream)) | 871 | (strategy), ZLIB_VERSION, sizeof(z_stream)) |
852 | #define inflateInit2(strm, windowBits) \ | 872 | #define inflateInit2(strm, windowBits) \ |
853 | inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) | 873 | inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) |
854 | 874 | ||
@@ -857,9 +877,9 @@ extern int EXPORT inflateInit2_ OF((z_streamp strm, int windowBits, | |||
857 | struct internal_state {int dummy;}; /* hack for buggy compilers */ | 877 | struct internal_state {int dummy;}; /* hack for buggy compilers */ |
858 | #endif | 878 | #endif |
859 | 879 | ||
860 | extern const char * EXPORT zError OF((int err)); | 880 | extern const char * ZEXPORT zError OF((int err)); |
861 | extern int EXPORT inflateSyncPoint OF((z_streamp z)); | 881 | extern int ZEXPORT inflateSyncPoint OF((z_streamp z)); |
862 | extern const uLongf * EXPORT get_crc_table OF((void)); | 882 | extern const uLongf * ZEXPORT get_crc_table OF((void)); |
863 | 883 | ||
864 | #ifdef __cplusplus | 884 | #ifdef __cplusplus |
865 | } | 885 | } |
diff --git a/ztest28975.c b/ztest28975.c deleted file mode 100644 index 6ecfc44..0000000 --- a/ztest28975.c +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | int hello() {return 0;} | ||
@@ -26,7 +26,7 @@ const char *z_errmsg[10] = { | |||
26 | ""}; | 26 | ""}; |
27 | 27 | ||
28 | 28 | ||
29 | const char * EXPORT zlibVersion() | 29 | const char * ZEXPORT zlibVersion() |
30 | { | 30 | { |
31 | return ZLIB_VERSION; | 31 | return ZLIB_VERSION; |
32 | } | 32 | } |
@@ -49,7 +49,7 @@ void z_error (m) | |||
49 | /* exported to allow conversion of error code to string for compress() and | 49 | /* exported to allow conversion of error code to string for compress() and |
50 | * uncompress() | 50 | * uncompress() |
51 | */ | 51 | */ |
52 | const char * EXPORT zError(err) | 52 | const char * ZEXPORT zError(err) |
53 | int err; | 53 | int err; |
54 | { | 54 | { |
55 | return ERR_MSG(err); | 55 | return ERR_MSG(err); |
@@ -208,7 +208,7 @@ extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */ | |||
208 | #endif | 208 | #endif |
209 | 209 | ||
210 | 210 | ||
211 | typedef uLong (EXPORT *check_func) OF((uLong check, const Bytef *buf, | 211 | typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf, |
212 | uInt len)); | 212 | uInt len)); |
213 | voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); | 213 | voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); |
214 | void zcfree OF((voidpf opaque, voidpf ptr)); | 214 | void zcfree OF((voidpf opaque, voidpf ptr)); |