Compare commits
	
		
			1 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 9811b53dd9 | 
							
								
								
									
										20
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,6 +1,26 @@ | |||||||
|  |  | ||||||
|                 ChangeLog file for zlib |                 ChangeLog file for zlib | ||||||
|  |  | ||||||
|  | Changes in 1.2.2.1 (31 October 2004) | ||||||
|  | - Allow inflateSetDictionary() call for raw inflate | ||||||
|  | - Fix inflate header crc check bug for file names and comments | ||||||
|  | - Add deflateSetHeader() and gz_header structure for custom gzip headers | ||||||
|  | - Add inflateGetheader() to retrieve gzip headers | ||||||
|  | - Add crc32_combine() and adler32_combine() functions | ||||||
|  | - Add alloc_func, free_func, in_func, out_func to Z_PREFIX list | ||||||
|  | - Use zstreamp consistently in zlib.h (inflate_back functions) | ||||||
|  | - Remove GUNZIP condition from definition of inflate_mode in inflate.h | ||||||
|  |   and in contrib/inflate86/inffast.S [Truta, Anderson] | ||||||
|  | - Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson] | ||||||
|  | - Update projects/README.projects and projects/visualc6 [Truta] | ||||||
|  | - Update win32/DLL_FAQ.txt [Truta] | ||||||
|  | - Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta] | ||||||
|  | - Deprecate Z_ASCII; use Z_TEXT instead [Truta] | ||||||
|  | - Use a new algorithm for setting strm->data_type in trees.c [Truta] | ||||||
|  | - Do not define an exit() prototype in zutil.c unless DEBUG defined | ||||||
|  | - Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta] | ||||||
|  | - Add comment in zlib.h for Z_NO_FLUSH parameter to deflate() | ||||||
|  |  | ||||||
| Changes in 1.2.2 (3 October 2004) | Changes in 1.2.2 (3 October 2004) | ||||||
| - Update zlib.h comments on gzip in-memory processing | - Update zlib.h comments on gzip in-memory processing | ||||||
| - Set adler to 1 in inflateReset() to support Java test suite [Walles] | - Set adler to 1 in inflateReset() to support Java test suite [Walles] | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -30,7 +30,7 @@ CPP=$(CC) -E | |||||||
|  |  | ||||||
| LIBS=libz.a | LIBS=libz.a | ||||||
| SHAREDLIB=libz.so | SHAREDLIB=libz.so | ||||||
| SHAREDLIBV=libz.so.1.2.2 | SHAREDLIBV=libz.so.1.2.2.1 | ||||||
| SHAREDLIBM=libz.so.1 | SHAREDLIBM=libz.so.1 | ||||||
|  |  | ||||||
| AR=ar rc | AR=ar rc | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ CPP=$(CC) -E | |||||||
|  |  | ||||||
| LIBS=libz.a | LIBS=libz.a | ||||||
| SHAREDLIB=libz.so | SHAREDLIB=libz.so | ||||||
| SHAREDLIBV=libz.so.1.2.2 | SHAREDLIBV=libz.so.1.2.2.1 | ||||||
| SHAREDLIBM=libz.so.1 | SHAREDLIBM=libz.so.1 | ||||||
|  |  | ||||||
| AR=ar rc | AR=ar rc | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								README
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| ZLIB DATA COMPRESSION LIBRARY | ZLIB DATA COMPRESSION LIBRARY | ||||||
|  |  | ||||||
| zlib 1.2.2 is a general purpose data compression library.  All the code is | zlib 1.2.2.1 is a general purpose data compression library.  All the code is | ||||||
| thread safe.  The data format used by the zlib library is described by RFCs | thread safe.  The data format used by the zlib library is described by RFCs | ||||||
| (Request for Comments) 1950 to 1952 in the files | (Request for Comments) 1950 to 1952 in the files | ||||||
| http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) | http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) | ||||||
| @@ -34,7 +34,7 @@ Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997 | |||||||
| issue of  Dr. Dobb's Journal; a copy of the article is available in | issue of  Dr. Dobb's Journal; a copy of the article is available in | ||||||
| http://dogma.net/markn/articles/zlibtool/zlibtool.htm | http://dogma.net/markn/articles/zlibtool/zlibtool.htm | ||||||
|  |  | ||||||
| The changes made in version 1.2.2 are documented in the file ChangeLog. | The changes made in version 1.2.2.1 are documented in the file ChangeLog. | ||||||
|  |  | ||||||
| Unsupported third party contributions are provided in directory "contrib". | Unsupported third party contributions are provided in directory "contrib". | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								adler32.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								adler32.c
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* adler32.c -- compute the Adler-32 checksum of a data stream | /* adler32.c -- compute the Adler-32 checksum of a data stream | ||||||
|  * Copyright (C) 1995-2003 Mark Adler |  * Copyright (C) 1995-2004 Mark Adler | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -72,3 +72,25 @@ uLong ZEXPORT adler32(adler, buf, len) | |||||||
|     } |     } | ||||||
|     return (s2 << 16) | s1; |     return (s2 << 16) | s1; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* ========================================================================= */ | ||||||
|  | uLong ZEXPORT adler32_combine(adler1, adler2, len2) | ||||||
|  |     uLong adler1; | ||||||
|  |     uLong adler2; | ||||||
|  |     uLong len2; | ||||||
|  | { | ||||||
|  |     unsigned long s1; | ||||||
|  |     unsigned long s2; | ||||||
|  |  | ||||||
|  |     len2 %= BASE; | ||||||
|  |     s1 = adler1 & 0xffff; | ||||||
|  |     s2 = len2 * s1; | ||||||
|  |     MOD(s2); | ||||||
|  |     s1 += (adler2 & 0xffff) + BASE - 1; | ||||||
|  |     s2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - len2; | ||||||
|  |     if (s1 > BASE) s1 -= BASE; | ||||||
|  |     if (s1 > BASE) s1 -= BASE; | ||||||
|  |     if (s2 > (BASE << 1)) s2 -= (BASE << 1); | ||||||
|  |     if (s2 > BASE) s2 -= BASE; | ||||||
|  |     return (s2 << 16) | s1; | ||||||
|  | } | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
|       *  ZLIB.INC - Interface to the general purpose compression library |       *  ZLIB.INC - Interface to the general purpose compression library | ||||||
|       * |       * | ||||||
|       *  ILE RPG400 version by Patrick Monnerat, DATASPHERE. |       *  ILE RPG400 version by Patrick Monnerat, DATASPHERE. | ||||||
|       *  Version 1.2.2 |       *  Version 1.2.2.1 | ||||||
|       * |       * | ||||||
|       * |       * | ||||||
|       *  WARNING: |       *  WARNING: | ||||||
| @@ -20,8 +20,8 @@ | |||||||
|       *                               Constants |       *                               Constants | ||||||
|       ************************************************************************** |       ************************************************************************** | ||||||
|       * |       * | ||||||
|      D ZLIB_VERSION    C                   '1.2.2'                            Header's version |      D ZLIB_VERSION    C                   '1.2.2.1'                            Header's version | ||||||
|      D ZLIB_VERNUM     C                   X'1220' |      D ZLIB_VERNUM     C                   X'1221' | ||||||
|       * |       * | ||||||
|      D Z_NO_FLUSH      C                   0 |      D Z_NO_FLUSH      C                   0 | ||||||
|      D Z_SYNC_FLUSH    C                   2 |      D Z_SYNC_FLUSH    C                   2 | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* compress.c -- compress a memory buffer | /* compress.c -- compress a memory buffer | ||||||
|  * Copyright (C) 1995-2002 Jean-loup Gailly. |  * Copyright (C) 1995-2003 Jean-loup Gailly. | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
| #define MAXBITS 15 | #define MAXBITS 15 | ||||||
|  |  | ||||||
| const char inflate9_copyright[] = | const char inflate9_copyright[] = | ||||||
|    " inflate9 1.2.2 Copyright 1995-2004 Mark Adler "; |    " inflate9 1.2.2.1 Copyright 1995-2004 Mark Adler "; | ||||||
| /* | /* | ||||||
|   If you use the zlib library in a product, an acknowledgment is welcome |   If you use the zlib library in a product, an acknowledgment is welcome | ||||||
|   in the documentation of your product. If for some reason you cannot |   in the documentation of your product. If for some reason you cannot | ||||||
| @@ -64,7 +64,7 @@ unsigned short FAR *work; | |||||||
|     static const unsigned short lext[31] = { /* Length codes 257..285 extra */ |     static const unsigned short lext[31] = { /* Length codes 257..285 extra */ | ||||||
|         128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, |         128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, | ||||||
|         130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, |         130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, | ||||||
|         133, 133, 133, 133, 144, 199, 198}; |         133, 133, 133, 133, 144, 77, 207}; | ||||||
|     static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ |     static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ | ||||||
|         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, |         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, | ||||||
|         65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, |         65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -188,17 +188,8 @@ | |||||||
| /* | /* | ||||||
|  * typedef enum inflate_mode consts, in inflate.h |  * typedef enum inflate_mode consts, in inflate.h | ||||||
|  */ |  */ | ||||||
| #ifndef NO_GUNZIP |  | ||||||
| #define GUNZIP |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #ifdef GUNZIP |  | ||||||
| #define INFLATE_MODE_TYPE 11  /* state->mode flags enum-ed in inflate.h */ | #define INFLATE_MODE_TYPE 11  /* state->mode flags enum-ed in inflate.h */ | ||||||
| #define INFLATE_MODE_BAD  26 | #define INFLATE_MODE_BAD  26 | ||||||
| #else |  | ||||||
| #define INFLATE_MODE_TYPE 3 |  | ||||||
| #define INFLATE_MODE_BAD  17 |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #if ! defined( USE_MMX ) && ! defined( NO_MMX ) | #if ! defined( USE_MMX ) && ! defined( NO_MMX ) | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
|  |  | ||||||
| #define IDR_VERSION1  1 | #define IDR_VERSION1  1 | ||||||
| IDR_VERSION1	VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE | IDR_VERSION1	VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE | ||||||
|   FILEVERSION	 1,2,2 |   FILEVERSION	 1,2,2,1 | ||||||
|   PRODUCTVERSION 1,2,2 |   PRODUCTVERSION 1,2,2,1 | ||||||
|   FILEFLAGSMASK	VS_FFI_FILEFLAGSMASK |   FILEFLAGSMASK	VS_FFI_FILEFLAGSMASK | ||||||
|   FILEFLAGS	0 |   FILEFLAGS	0 | ||||||
|   FILEOS	VOS_DOS_WINDOWS32 |   FILEOS	VOS_DOS_WINDOWS32 | ||||||
| @@ -17,7 +17,7 @@ BEGIN | |||||||
|  |  | ||||||
|     BEGIN |     BEGIN | ||||||
|       VALUE "FileDescription", "zlib data compression library\0" |       VALUE "FileDescription", "zlib data compression library\0" | ||||||
|       VALUE "FileVersion",	"1.2.2\0" |       VALUE "FileVersion",	"1.2.2.1\0" | ||||||
|       VALUE "InternalName",	"zlib\0" |       VALUE "InternalName",	"zlib\0" | ||||||
|       VALUE "OriginalFilename",	"zlib.dll\0" |       VALUE "OriginalFilename",	"zlib.dll\0" | ||||||
|       VALUE "ProductName",	"ZLib.DLL\0" |       VALUE "ProductName",	"ZLib.DLL\0" | ||||||
|   | |||||||
							
								
								
									
										95
									
								
								crc32.c
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								crc32.c
									
									
									
									
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| /* crc32.c -- compute the CRC-32 of a data stream | /* crc32.c -- compute the CRC-32 of a data stream | ||||||
|  * Copyright (C) 1995-2003 Mark Adler |  * Copyright (C) 1995-2004 Mark Adler | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  * |  * | ||||||
|  * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster |  * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster | ||||||
|  * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing |  * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing | ||||||
|  * tables for updating the shift register in one step with three exclusive-ors |  * tables for updating the shift register in one step with three exclusive-ors | ||||||
|  * instead of four steps with four exclusive-ors.  This results about a factor |  * instead of four steps with four exclusive-ors.  This results in about a | ||||||
|  * of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. |  * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| /* @(#) $Id$ */ | /* @(#) $Id$ */ | ||||||
| @@ -72,6 +72,9 @@ local void make_crc_table OF((void)); | |||||||
| #ifdef MAKECRCH | #ifdef MAKECRCH | ||||||
|    local void write_table OF((FILE *, const unsigned long FAR *)); |    local void write_table OF((FILE *, const unsigned long FAR *)); | ||||||
| #endif /* MAKECRCH */ | #endif /* MAKECRCH */ | ||||||
|  | local unsigned long gf2_matrix_times OF((unsigned long *mat, | ||||||
|  |                                          unsigned long vec)); | ||||||
|  | local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: |   Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: | ||||||
| @@ -331,3 +334,89 @@ local unsigned long crc32_big(crc, buf, len) | |||||||
| } | } | ||||||
|  |  | ||||||
| #endif /* BYFOUR */ | #endif /* BYFOUR */ | ||||||
|  |  | ||||||
|  | #define GF2_DIM 32      /* dimension of GF(2) vectors (length of CRC) */ | ||||||
|  |  | ||||||
|  | /* ========================================================================= */ | ||||||
|  | local unsigned long gf2_matrix_times(mat, vec) | ||||||
|  |     unsigned long *mat; | ||||||
|  |     unsigned long vec; | ||||||
|  | { | ||||||
|  |     unsigned long sum; | ||||||
|  |  | ||||||
|  |     sum = 0; | ||||||
|  |     while (vec) { | ||||||
|  |         if (vec & 1) | ||||||
|  |             sum ^= *mat; | ||||||
|  |         vec >>= 1; | ||||||
|  |         mat++; | ||||||
|  |     } | ||||||
|  |     return sum; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* ========================================================================= */ | ||||||
|  | local void gf2_matrix_square(square, mat) | ||||||
|  |     unsigned long *square; | ||||||
|  |     unsigned long *mat; | ||||||
|  | { | ||||||
|  |     int n; | ||||||
|  |  | ||||||
|  |     for (n = 0; n < GF2_DIM; n++) | ||||||
|  |         square[n] = gf2_matrix_times(mat, mat[n]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* ========================================================================= */ | ||||||
|  | uLong ZEXPORT crc32_combine(crc1, crc2, len2) | ||||||
|  |     uLong crc1; | ||||||
|  |     uLong crc2; | ||||||
|  |     uLong len2; | ||||||
|  | { | ||||||
|  |     int n; | ||||||
|  |     unsigned long row; | ||||||
|  |     unsigned long even[GF2_DIM];    /* even-power-of-two zeros operator */ | ||||||
|  |     unsigned long odd[GF2_DIM];     /* odd-power-of-two zeros operator */ | ||||||
|  |  | ||||||
|  |     /* degenerate case */ | ||||||
|  |     if (len2 == 0) | ||||||
|  |         return crc1; | ||||||
|  |  | ||||||
|  |     /* put operator for one zero bit in odd */ | ||||||
|  |     odd[0] = 0xedb88320L;           /* CRC-32 polynomial */ | ||||||
|  |     row = 1; | ||||||
|  |     for (n = 1; n < GF2_DIM; n++) { | ||||||
|  |         odd[n] = row; | ||||||
|  |         row <<= 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /* put operator for two zero bits in even */ | ||||||
|  |     gf2_matrix_square(even, odd); | ||||||
|  |  | ||||||
|  |     /* put operator for four zero bits in odd */ | ||||||
|  |     gf2_matrix_square(odd, even); | ||||||
|  |  | ||||||
|  |     /* apply len2 zeros to crc1 (first square will put the operator for one | ||||||
|  |        zero byte, eight zero bits, in even) */ | ||||||
|  |     do { | ||||||
|  |         /* apply zeros operator for this bit of len2 */ | ||||||
|  |         gf2_matrix_square(even, odd); | ||||||
|  |         if (len2 & 1) | ||||||
|  |             crc1 = gf2_matrix_times(even, crc1); | ||||||
|  |         len2 >>= 1; | ||||||
|  |  | ||||||
|  |         /* if no more bits set, then done */ | ||||||
|  |         if (len2 == 0) | ||||||
|  |             break; | ||||||
|  |  | ||||||
|  |         /* another iteration of the loop with odd and even swapped */ | ||||||
|  |         gf2_matrix_square(odd, even); | ||||||
|  |         if (len2 & 1) | ||||||
|  |             crc1 = gf2_matrix_times(odd, crc1); | ||||||
|  |         len2 >>= 1; | ||||||
|  |  | ||||||
|  |         /* if no more bits set, then done */ | ||||||
|  |     } while (len2 != 0); | ||||||
|  |  | ||||||
|  |     /* return combined crc */ | ||||||
|  |     crc1 ^= crc2; | ||||||
|  |     return crc1; | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										174
									
								
								deflate.c
									
									
									
									
									
								
							
							
						
						
									
										174
									
								
								deflate.c
									
									
									
									
									
								
							| @@ -52,7 +52,7 @@ | |||||||
| #include "deflate.h" | #include "deflate.h" | ||||||
|  |  | ||||||
| const char deflate_copyright[] = | const char deflate_copyright[] = | ||||||
|    " deflate 1.2.2 Copyright 1995-2004 Jean-loup Gailly "; |    " deflate 1.2.2.1 Copyright 1995-2004 Jean-loup Gailly "; | ||||||
| /* | /* | ||||||
|   If you use the zlib library in a product, an acknowledgment is welcome |   If you use the zlib library in a product, an acknowledgment is welcome | ||||||
|   in the documentation of your product. If for some reason you cannot |   in the documentation of your product. If for some reason you cannot | ||||||
| @@ -274,6 +274,7 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, | |||||||
|     s->strm = strm; |     s->strm = strm; | ||||||
|  |  | ||||||
|     s->wrap = wrap; |     s->wrap = wrap; | ||||||
|  |     s->gzhead = Z_NULL; | ||||||
|     s->w_bits = windowBits; |     s->w_bits = windowBits; | ||||||
|     s->w_size = 1 << s->w_bits; |     s->w_size = 1 << s->w_bits; | ||||||
|     s->w_mask = s->w_size - 1; |     s->w_mask = s->w_size - 1; | ||||||
| @@ -390,6 +391,17 @@ int ZEXPORT deflateReset (strm) | |||||||
|     return Z_OK; |     return Z_OK; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /* ========================================================================= */ | ||||||
|  | int ZEXPORT deflateSetHeader (strm, head) | ||||||
|  |     z_streamp strm; | ||||||
|  |     gz_headerp head; | ||||||
|  | { | ||||||
|  |     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; | ||||||
|  |     if (strm->state->wrap != 2) return Z_STREAM_ERROR; | ||||||
|  |     strm->state->gzhead = head; | ||||||
|  |     return Z_OK; | ||||||
|  | } | ||||||
|  |  | ||||||
| /* ========================================================================= */ | /* ========================================================================= */ | ||||||
| int ZEXPORT deflatePrime (strm, bits, value) | int ZEXPORT deflatePrime (strm, bits, value) | ||||||
|     z_streamp strm; |     z_streamp strm; | ||||||
| @@ -548,20 +560,47 @@ int ZEXPORT deflate (strm, flush) | |||||||
|     if (s->status == INIT_STATE) { |     if (s->status == INIT_STATE) { | ||||||
| #ifdef GZIP | #ifdef GZIP | ||||||
|         if (s->wrap == 2) { |         if (s->wrap == 2) { | ||||||
|  |             strm->adler = crc32(0L, Z_NULL, 0); | ||||||
|             put_byte(s, 31); |             put_byte(s, 31); | ||||||
|             put_byte(s, 139); |             put_byte(s, 139); | ||||||
|             put_byte(s, 8); |             put_byte(s, 8); | ||||||
|             put_byte(s, 0); |             if (s->gzhead == NULL) { | ||||||
|             put_byte(s, 0); |                 put_byte(s, 0); | ||||||
|             put_byte(s, 0); |                 put_byte(s, 0); | ||||||
|             put_byte(s, 0); |                 put_byte(s, 0); | ||||||
|             put_byte(s, 0); |                 put_byte(s, 0); | ||||||
|             put_byte(s, s->level == 9 ? 2 : |                 put_byte(s, 0); | ||||||
|                         (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? |                 put_byte(s, s->level == 9 ? 2 : | ||||||
|                          4 : 0)); |                             (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? | ||||||
|             put_byte(s, 255); |                              4 : 0)); | ||||||
|             s->status = BUSY_STATE; |                 put_byte(s, 255); | ||||||
|             strm->adler = crc32(0L, Z_NULL, 0); |                 s->status = BUSY_STATE; | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 put_byte(s, (s->gzhead->text ? 1 : 0) + | ||||||
|  |                             (s->gzhead->hcrc ? 2 : 0) + | ||||||
|  |                             (s->gzhead->extra == Z_NULL ? 0 : 4) + | ||||||
|  |                             (s->gzhead->name == Z_NULL ? 0 : 8) + | ||||||
|  |                             (s->gzhead->comment == Z_NULL ? 0 : 16) | ||||||
|  |                         ); | ||||||
|  |                 put_byte(s, s->gzhead->time & 0xff); | ||||||
|  |                 put_byte(s, (s->gzhead->time >> 8) & 0xff); | ||||||
|  |                 put_byte(s, (s->gzhead->time >> 16) & 0xff); | ||||||
|  |                 put_byte(s, (s->gzhead->time >> 24) & 0xff); | ||||||
|  |                 put_byte(s, s->level == 9 ? 2 : | ||||||
|  |                             (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ? | ||||||
|  |                              4 : 0)); | ||||||
|  |                 put_byte(s, s->gzhead->os & 0xff); | ||||||
|  |                 if (s->gzhead->extra != NULL) { | ||||||
|  |                     put_byte(s, s->gzhead->extra_len & 0xff); | ||||||
|  |                     put_byte(s, (s->gzhead->extra_len >> 8) & 0xff); | ||||||
|  |                 } | ||||||
|  |                 if (s->gzhead->hcrc) | ||||||
|  |                     strm->adler = crc32(strm->adler, s->pending_buf, | ||||||
|  |                                         s->pending); | ||||||
|  |                 s->gzindex = 0; | ||||||
|  |                 s->status = EXTRA_STATE; | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|         else |         else | ||||||
| #endif | #endif | ||||||
| @@ -592,6 +631,110 @@ int ZEXPORT deflate (strm, flush) | |||||||
|             strm->adler = adler32(0L, Z_NULL, 0); |             strm->adler = adler32(0L, Z_NULL, 0); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | #ifdef GZIP | ||||||
|  |     if (s->status == EXTRA_STATE) { | ||||||
|  |         if (s->gzhead->extra != NULL) { | ||||||
|  |             int beg = s->pending;   /* start of bytes to update crc */ | ||||||
|  |  | ||||||
|  |             while (s->gzindex < (s->gzhead->extra_len & 0xffff)) { | ||||||
|  |                 if (s->pending == s->pending_buf_size) { | ||||||
|  |                     if (s->gzhead->hcrc && s->pending > beg) | ||||||
|  |                         strm->adler = crc32(strm->adler, s->pending_buf + beg, | ||||||
|  |                                             s->pending - beg); | ||||||
|  |                     flush_pending(strm); | ||||||
|  |                     beg = s->pending; | ||||||
|  |                     if (s->pending == s->pending_buf_size) | ||||||
|  |                         break; | ||||||
|  |                 } | ||||||
|  |                 put_byte(s, s->gzhead->extra[s->gzindex]); | ||||||
|  |                 s->gzindex++; | ||||||
|  |             } | ||||||
|  |             if (s->gzhead->hcrc && s->pending > beg) | ||||||
|  |                 strm->adler = crc32(strm->adler, s->pending_buf + beg, | ||||||
|  |                                     s->pending - beg); | ||||||
|  |             if (s->gzindex == s->gzhead->extra_len) { | ||||||
|  |                 s->gzindex = 0; | ||||||
|  |                 s->status = NAME_STATE; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |             s->status = NAME_STATE; | ||||||
|  |     } | ||||||
|  |     if (s->status == NAME_STATE) { | ||||||
|  |         if (s->gzhead->name != NULL) { | ||||||
|  |             int beg = s->pending;   /* start of bytes to update crc */ | ||||||
|  |             int val; | ||||||
|  |  | ||||||
|  |             do { | ||||||
|  |                 if (s->pending == s->pending_buf_size) { | ||||||
|  |                     if (s->gzhead->hcrc && s->pending > beg) | ||||||
|  |                         strm->adler = crc32(strm->adler, s->pending_buf + beg, | ||||||
|  |                                             s->pending - beg); | ||||||
|  |                     flush_pending(strm); | ||||||
|  |                     beg = s->pending; | ||||||
|  |                     if (s->pending == s->pending_buf_size) { | ||||||
|  |                         val = 1; | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 val = s->gzhead->name[s->gzindex++]; | ||||||
|  |                 put_byte(s, val); | ||||||
|  |             } while (val != 0); | ||||||
|  |             if (s->gzhead->hcrc && s->pending > beg) | ||||||
|  |                 strm->adler = crc32(strm->adler, s->pending_buf + beg, | ||||||
|  |                                     s->pending - beg); | ||||||
|  |             if (val == 0) { | ||||||
|  |                 s->gzindex = 0; | ||||||
|  |                 s->status = COMMENT_STATE; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |             s->status = COMMENT_STATE; | ||||||
|  |     } | ||||||
|  |     if (s->status == COMMENT_STATE) { | ||||||
|  |         if (s->gzhead->comment != NULL) { | ||||||
|  |             int beg = s->pending;   /* start of bytes to update crc */ | ||||||
|  |             int val; | ||||||
|  |  | ||||||
|  |             do { | ||||||
|  |                 if (s->pending == s->pending_buf_size) { | ||||||
|  |                     if (s->gzhead->hcrc && s->pending > beg) | ||||||
|  |                         strm->adler = crc32(strm->adler, s->pending_buf + beg, | ||||||
|  |                                             s->pending - beg); | ||||||
|  |                     flush_pending(strm); | ||||||
|  |                     beg = s->pending; | ||||||
|  |                     if (s->pending == s->pending_buf_size) { | ||||||
|  |                         val = 1; | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 val = s->gzhead->comment[s->gzindex++]; | ||||||
|  |                 put_byte(s, val); | ||||||
|  |             } while (val != 0); | ||||||
|  |             if (s->gzhead->hcrc && s->pending > beg) | ||||||
|  |                 strm->adler = crc32(strm->adler, s->pending_buf + beg, | ||||||
|  |                                     s->pending - beg); | ||||||
|  |             if (val == 0) | ||||||
|  |                 s->status = HCRC_STATE; | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |             s->status = HCRC_STATE; | ||||||
|  |     } | ||||||
|  |     if (s->status == HCRC_STATE) { | ||||||
|  |         if (s->gzhead->hcrc) { | ||||||
|  |             if (s->pending + 2 > s->pending_buf_size) | ||||||
|  |                 flush_pending(strm); | ||||||
|  |             if (s->pending + 2 <= s->pending_buf_size) { | ||||||
|  |                 put_byte(s, strm->adler & 0xff); | ||||||
|  |                 put_byte(s, (strm->adler >> 8) & 0xff); | ||||||
|  |                 strm->adler = crc32(0L, Z_NULL, 0); | ||||||
|  |                 s->status = BUSY_STATE; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |             s->status = BUSY_STATE; | ||||||
|  |     } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|     /* Flush as much pending output as possible */ |     /* Flush as much pending output as possible */ | ||||||
|     if (s->pending != 0) { |     if (s->pending != 0) { | ||||||
| @@ -704,7 +847,12 @@ int ZEXPORT deflateEnd (strm) | |||||||
|     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; |     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; | ||||||
|  |  | ||||||
|     status = strm->state->status; |     status = strm->state->status; | ||||||
|     if (status != INIT_STATE && status != BUSY_STATE && |     if (status != INIT_STATE && | ||||||
|  |         status != EXTRA_STATE && | ||||||
|  |         status != NAME_STATE && | ||||||
|  |         status != COMMENT_STATE && | ||||||
|  |         status != HCRC_STATE && | ||||||
|  |         status != BUSY_STATE && | ||||||
|         status != FINISH_STATE) { |         status != FINISH_STATE) { | ||||||
|       return Z_STREAM_ERROR; |       return Z_STREAM_ERROR; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* deflate.h -- internal compression state | /* deflate.h -- internal compression state | ||||||
|  * Copyright (C) 1995-2002 Jean-loup Gailly |  * Copyright (C) 1995-2004 Jean-loup Gailly | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -49,6 +49,10 @@ | |||||||
| /* All codes must not exceed MAX_BITS bits */ | /* All codes must not exceed MAX_BITS bits */ | ||||||
|  |  | ||||||
| #define INIT_STATE    42 | #define INIT_STATE    42 | ||||||
|  | #define EXTRA_STATE   69 | ||||||
|  | #define NAME_STATE    73 | ||||||
|  | #define COMMENT_STATE 91 | ||||||
|  | #define HCRC_STATE   103 | ||||||
| #define BUSY_STATE   113 | #define BUSY_STATE   113 | ||||||
| #define FINISH_STATE 666 | #define FINISH_STATE 666 | ||||||
| /* Stream status */ | /* Stream status */ | ||||||
| @@ -95,6 +99,8 @@ typedef struct internal_state { | |||||||
|     Bytef *pending_out;  /* next pending byte to output to the stream */ |     Bytef *pending_out;  /* next pending byte to output to the stream */ | ||||||
|     int   pending;       /* nb of bytes in the pending buffer */ |     int   pending;       /* nb of bytes in the pending buffer */ | ||||||
|     int   wrap;          /* bit 0 true for zlib, bit 1 true for gzip */ |     int   wrap;          /* bit 0 true for zlib, bit 1 true for gzip */ | ||||||
|  |     gz_headerp  gzhead;  /* gzip header information to write */ | ||||||
|  |     int   gzindex;       /* where in extra, name, or comment */ | ||||||
|     Byte  method;        /* STORED (for zip only) or DEFLATED */ |     Byte  method;        /* STORED (for zip only) or DEFLATED */ | ||||||
|     int   last_flush;    /* value of flush param for previous deflate call */ |     int   last_flush;    /* value of flush param for previous deflate call */ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* example.c -- usage example of the zlib compression library | /* example.c -- usage example of the zlib compression library | ||||||
|  * Copyright (C) 1995-2003 Jean-loup Gailly. |  * Copyright (C) 1995-2004 Jean-loup Gailly. | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -11,8 +11,6 @@ | |||||||
| #ifdef STDC | #ifdef STDC | ||||||
| #  include <string.h> | #  include <string.h> | ||||||
| #  include <stdlib.h> | #  include <stdlib.h> | ||||||
| #else |  | ||||||
|    extern void exit  OF((int)); |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #if defined(VMS) || defined(RISCOS) | #if defined(VMS) || defined(RISCOS) | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								gzio.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								gzio.c
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* gzio.c -- IO on .gz files | /* gzio.c -- IO on .gz files | ||||||
|  * Copyright (C) 1995-2003 Jean-loup Gailly. |  * Copyright (C) 1995-2004 Jean-loup Gailly. | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  * |  * | ||||||
|  * Compile this file with -DNO_GZCOMPRESS to avoid the compression code. |  * Compile this file with -DNO_GZCOMPRESS to avoid the compression code. | ||||||
| @@ -11,7 +11,7 @@ | |||||||
|  |  | ||||||
| #include "zutil.h" | #include "zutil.h" | ||||||
|  |  | ||||||
| #ifdef NO_DEFLATE       /* for compatiblity with old definition */ | #ifdef NO_DEFLATE       /* for compatibility with old definition */ | ||||||
| #  define NO_GZCOMPRESS | #  define NO_GZCOMPRESS | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -941,7 +941,6 @@ local uLong getLong (s) | |||||||
| int ZEXPORT gzclose (file) | int ZEXPORT gzclose (file) | ||||||
|     gzFile file; |     gzFile file; | ||||||
| { | { | ||||||
|     int err; |  | ||||||
|     gz_stream *s = (gz_stream*)file; |     gz_stream *s = (gz_stream*)file; | ||||||
|  |  | ||||||
|     if (s == NULL) return Z_STREAM_ERROR; |     if (s == NULL) return Z_STREAM_ERROR; | ||||||
| @@ -950,8 +949,8 @@ int ZEXPORT gzclose (file) | |||||||
| #ifdef NO_GZCOMPRESS | #ifdef NO_GZCOMPRESS | ||||||
|         return Z_STREAM_ERROR; |         return Z_STREAM_ERROR; | ||||||
| #else | #else | ||||||
|         err = do_flush (file, Z_FINISH); |         if (do_flush (file, Z_FINISH) != Z_OK) | ||||||
|         if (err != Z_OK) return destroy((gz_stream*)file); |             return destroy((gz_stream*)file); | ||||||
|  |  | ||||||
|         putLong (s->file, s->crc); |         putLong (s->file, s->crc); | ||||||
|         putLong (s->file, (uLong)(s->in & 0xffffffff)); |         putLong (s->file, (uLong)(s->in & 0xffffffff)); | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* infback.c -- inflate using a call-back interface | /* infback.c -- inflate using a call-back interface | ||||||
|  * Copyright (C) 1995-2003 Mark Adler |  * Copyright (C) 1995-2004 Mark Adler | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -26,7 +26,7 @@ local void fixedtables OF((struct inflate_state FAR *state)); | |||||||
|    window and output buffer that is 2**windowBits bytes. |    window and output buffer that is 2**windowBits bytes. | ||||||
|  */ |  */ | ||||||
| int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) | int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) | ||||||
| z_stream FAR *strm; | z_streamp strm; | ||||||
| int windowBits; | int windowBits; | ||||||
| unsigned char FAR *window; | unsigned char FAR *window; | ||||||
| const char *version; | const char *version; | ||||||
| @@ -238,7 +238,7 @@ struct inflate_state FAR *state; | |||||||
|    are not correct, i.e. strm is Z_NULL or the state was not initialized. |    are not correct, i.e. strm is Z_NULL or the state was not initialized. | ||||||
|  */ |  */ | ||||||
| int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) | int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) | ||||||
| z_stream FAR *strm; | z_streamp strm; | ||||||
| in_func in; | in_func in; | ||||||
| void FAR *in_desc; | void FAR *in_desc; | ||||||
| out_func out; | out_func out; | ||||||
| @@ -611,7 +611,7 @@ void FAR *out_desc; | |||||||
| } | } | ||||||
|  |  | ||||||
| int ZEXPORT inflateBackEnd(strm) | int ZEXPORT inflateBackEnd(strm) | ||||||
| z_stream FAR *strm; | z_streamp strm; | ||||||
| { | { | ||||||
|     if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) |     if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) | ||||||
|         return Z_STREAM_ERROR; |         return Z_STREAM_ERROR; | ||||||
|   | |||||||
							
								
								
									
										75
									
								
								inflate.c
									
									
									
									
									
								
							
							
						
						
									
										75
									
								
								inflate.c
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* inflate.c -- zlib decompression | /* inflate.c -- zlib decompression | ||||||
|  * Copyright (C) 1995-2003 Mark Adler |  * Copyright (C) 1995-2004 Mark Adler | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -113,6 +113,7 @@ z_streamp strm; | |||||||
|     state->mode = HEAD; |     state->mode = HEAD; | ||||||
|     state->last = 0; |     state->last = 0; | ||||||
|     state->havedict = 0; |     state->havedict = 0; | ||||||
|  |     state->head = Z_NULL; | ||||||
|     state->wsize = 0; |     state->wsize = 0; | ||||||
|     state->whave = 0; |     state->whave = 0; | ||||||
|     state->hold = 0; |     state->hold = 0; | ||||||
| @@ -582,6 +583,8 @@ int flush; | |||||||
|                 break; |                 break; | ||||||
|             } |             } | ||||||
|             state->flags = 0;           /* expect zlib header */ |             state->flags = 0;           /* expect zlib header */ | ||||||
|  |             if (state->head != Z_NULL) | ||||||
|  |                 state->head->done = -1; | ||||||
|             if (!(state->wrap & 1) ||   /* check if zlib header allowed */ |             if (!(state->wrap & 1) ||   /* check if zlib header allowed */ | ||||||
| #else | #else | ||||||
|             if ( |             if ( | ||||||
| @@ -621,16 +624,24 @@ int flush; | |||||||
|                 state->mode = BAD; |                 state->mode = BAD; | ||||||
|                 break; |                 break; | ||||||
|             } |             } | ||||||
|  |             if (state->head != Z_NULL) | ||||||
|  |                 state->head->text = (int)((hold >> 8) & 1); | ||||||
|             if (state->flags & 0x0200) CRC2(state->check, hold); |             if (state->flags & 0x0200) CRC2(state->check, hold); | ||||||
|             INITBITS(); |             INITBITS(); | ||||||
|             state->mode = TIME; |             state->mode = TIME; | ||||||
|         case TIME: |         case TIME: | ||||||
|             NEEDBITS(32); |             NEEDBITS(32); | ||||||
|  |             if (state->head != Z_NULL) | ||||||
|  |                 state->head->time = hold; | ||||||
|             if (state->flags & 0x0200) CRC4(state->check, hold); |             if (state->flags & 0x0200) CRC4(state->check, hold); | ||||||
|             INITBITS(); |             INITBITS(); | ||||||
|             state->mode = OS; |             state->mode = OS; | ||||||
|         case OS: |         case OS: | ||||||
|             NEEDBITS(16); |             NEEDBITS(16); | ||||||
|  |             if (state->head != Z_NULL) { | ||||||
|  |                 state->head->xflags = (int)(hold & 0xff); | ||||||
|  |                 state->head->os = (int)(hold >> 8); | ||||||
|  |             } | ||||||
|             if (state->flags & 0x0200) CRC2(state->check, hold); |             if (state->flags & 0x0200) CRC2(state->check, hold); | ||||||
|             INITBITS(); |             INITBITS(); | ||||||
|             state->mode = EXLEN; |             state->mode = EXLEN; | ||||||
| @@ -638,15 +649,26 @@ int flush; | |||||||
|             if (state->flags & 0x0400) { |             if (state->flags & 0x0400) { | ||||||
|                 NEEDBITS(16); |                 NEEDBITS(16); | ||||||
|                 state->length = (unsigned)(hold); |                 state->length = (unsigned)(hold); | ||||||
|  |                 if (state->head != Z_NULL) | ||||||
|  |                     state->head->extra_len = (unsigned)hold; | ||||||
|                 if (state->flags & 0x0200) CRC2(state->check, hold); |                 if (state->flags & 0x0200) CRC2(state->check, hold); | ||||||
|                 INITBITS(); |                 INITBITS(); | ||||||
|             } |             } | ||||||
|  |             else if (state->head != Z_NULL) | ||||||
|  |                 state->head->extra = Z_NULL; | ||||||
|             state->mode = EXTRA; |             state->mode = EXTRA; | ||||||
|         case EXTRA: |         case EXTRA: | ||||||
|             if (state->flags & 0x0400) { |             if (state->flags & 0x0400) { | ||||||
|                 copy = state->length; |                 copy = state->length; | ||||||
|                 if (copy > have) copy = have; |                 if (copy > have) copy = have; | ||||||
|                 if (copy) { |                 if (copy) { | ||||||
|  |                     if (state->head != Z_NULL && | ||||||
|  |                         state->head->extra != Z_NULL) { | ||||||
|  |                         len = state->head->extra_len - state->length; | ||||||
|  |                         zmemcpy(state->head->extra + len, next, | ||||||
|  |                                 len + copy > state->head->extra_max ? | ||||||
|  |                                 state->head->extra_max - len : copy); | ||||||
|  |                     } | ||||||
|                     if (state->flags & 0x0200) |                     if (state->flags & 0x0200) | ||||||
|                         state->check = crc32(state->check, next, copy); |                         state->check = crc32(state->check, next, copy); | ||||||
|                     have -= copy; |                     have -= copy; | ||||||
| @@ -655,6 +677,7 @@ int flush; | |||||||
|                 } |                 } | ||||||
|                 if (state->length) goto inf_leave; |                 if (state->length) goto inf_leave; | ||||||
|             } |             } | ||||||
|  |             state->length = 0; | ||||||
|             state->mode = NAME; |             state->mode = NAME; | ||||||
|         case NAME: |         case NAME: | ||||||
|             if (state->flags & 0x0800) { |             if (state->flags & 0x0800) { | ||||||
| @@ -662,13 +685,20 @@ int flush; | |||||||
|                 copy = 0; |                 copy = 0; | ||||||
|                 do { |                 do { | ||||||
|                     len = (unsigned)(next[copy++]); |                     len = (unsigned)(next[copy++]); | ||||||
|  |                     if (state->head != Z_NULL && | ||||||
|  |                             state->head->name != Z_NULL && | ||||||
|  |                             state->length < state->head->name_max) | ||||||
|  |                         state->head->name[state->length++] = len; | ||||||
|                 } while (len && copy < have); |                 } while (len && copy < have); | ||||||
|                 if (state->flags & 0x02000) |                 if (state->flags & 0x0200) | ||||||
|                     state->check = crc32(state->check, next, copy); |                     state->check = crc32(state->check, next, copy); | ||||||
|                 have -= copy; |                 have -= copy; | ||||||
|                 next += copy; |                 next += copy; | ||||||
|                 if (len) goto inf_leave; |                 if (len) goto inf_leave; | ||||||
|             } |             } | ||||||
|  |             else if (state->head != Z_NULL) | ||||||
|  |                 state->head->name = Z_NULL; | ||||||
|  |             state->length = 0; | ||||||
|             state->mode = COMMENT; |             state->mode = COMMENT; | ||||||
|         case COMMENT: |         case COMMENT: | ||||||
|             if (state->flags & 0x1000) { |             if (state->flags & 0x1000) { | ||||||
| @@ -676,13 +706,19 @@ int flush; | |||||||
|                 copy = 0; |                 copy = 0; | ||||||
|                 do { |                 do { | ||||||
|                     len = (unsigned)(next[copy++]); |                     len = (unsigned)(next[copy++]); | ||||||
|  |                     if (state->head != Z_NULL && | ||||||
|  |                             state->head->comment != Z_NULL && | ||||||
|  |                             state->length < state->head->comm_max) | ||||||
|  |                         state->head->comment[state->length++] = len; | ||||||
|                 } while (len && copy < have); |                 } while (len && copy < have); | ||||||
|                 if (state->flags & 0x02000) |                 if (state->flags & 0x0200) | ||||||
|                     state->check = crc32(state->check, next, copy); |                     state->check = crc32(state->check, next, copy); | ||||||
|                 have -= copy; |                 have -= copy; | ||||||
|                 next += copy; |                 next += copy; | ||||||
|                 if (len) goto inf_leave; |                 if (len) goto inf_leave; | ||||||
|             } |             } | ||||||
|  |             else if (state->head != Z_NULL) | ||||||
|  |                 state->head->comment = Z_NULL; | ||||||
|             state->mode = HCRC; |             state->mode = HCRC; | ||||||
|         case HCRC: |         case HCRC: | ||||||
|             if (state->flags & 0x0200) { |             if (state->flags & 0x0200) { | ||||||
| @@ -694,6 +730,10 @@ int flush; | |||||||
|                 } |                 } | ||||||
|                 INITBITS(); |                 INITBITS(); | ||||||
|             } |             } | ||||||
|  |             if (state->head != Z_NULL) { | ||||||
|  |                 state->head->hcrc = (int)((state->flags >> 9) & 1); | ||||||
|  |                 state->head->done = 1; | ||||||
|  |             } | ||||||
|             strm->adler = state->check = crc32(0L, Z_NULL, 0); |             strm->adler = state->check = crc32(0L, Z_NULL, 0); | ||||||
|             state->mode = TYPE; |             state->mode = TYPE; | ||||||
|             break; |             break; | ||||||
| @@ -1110,12 +1150,16 @@ uInt dictLength; | |||||||
|     /* check state */ |     /* check state */ | ||||||
|     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; |     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; | ||||||
|     state = (struct inflate_state FAR *)strm->state; |     state = (struct inflate_state FAR *)strm->state; | ||||||
|     if (state->mode != DICT) return Z_STREAM_ERROR; |     if (state->wrap != 0 && state->mode != DICT) | ||||||
|  |         return Z_STREAM_ERROR; | ||||||
|  |  | ||||||
|     /* check for correct dictionary id */ |     /* check for correct dictionary id */ | ||||||
|     id = adler32(0L, Z_NULL, 0); |     if (state->mode == DICT) { | ||||||
|     id = adler32(id, dictionary, dictLength); |         id = adler32(0L, Z_NULL, 0); | ||||||
|     if (id != state->check) return Z_DATA_ERROR; |         id = adler32(id, dictionary, dictLength); | ||||||
|  |         if (id != state->check) | ||||||
|  |             return Z_DATA_ERROR; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /* copy dictionary to window */ |     /* copy dictionary to window */ | ||||||
|     if (updatewindow(strm, strm->avail_out)) { |     if (updatewindow(strm, strm->avail_out)) { | ||||||
| @@ -1137,6 +1181,23 @@ uInt dictLength; | |||||||
|     return Z_OK; |     return Z_OK; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | int ZEXPORT inflateGetHeader(strm, head) | ||||||
|  | z_streamp strm; | ||||||
|  | gz_headerp head; | ||||||
|  | { | ||||||
|  |     struct inflate_state FAR *state; | ||||||
|  |  | ||||||
|  |     /* check state */ | ||||||
|  |     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; | ||||||
|  |     state = (struct inflate_state FAR *)strm->state; | ||||||
|  |     if ((state->wrap & 2) == 0) return Z_STREAM_ERROR; | ||||||
|  |  | ||||||
|  |     /* save header structure */ | ||||||
|  |     state->head = head; | ||||||
|  |     head->done = 0; | ||||||
|  |     return Z_OK; | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|    Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff.  Return when found |    Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff.  Return when found | ||||||
|    or when out of input.  When called, *have is the number of pattern bytes |    or when out of input.  When called, *have is the number of pattern bytes | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* inflate.h -- internal inflate state definition | /* inflate.h -- internal inflate state definition | ||||||
|  * Copyright (C) 1995-2003 Mark Adler |  * Copyright (C) 1995-2004 Mark Adler | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -19,7 +19,6 @@ | |||||||
| /* Possible inflate modes between inflate() calls */ | /* Possible inflate modes between inflate() calls */ | ||||||
| typedef enum { | typedef enum { | ||||||
|     HEAD,       /* i: waiting for magic header */ |     HEAD,       /* i: waiting for magic header */ | ||||||
| #ifdef GUNZIP |  | ||||||
|     FLAGS,      /* i: waiting for method and flags (gzip) */ |     FLAGS,      /* i: waiting for method and flags (gzip) */ | ||||||
|     TIME,       /* i: waiting for modification time (gzip) */ |     TIME,       /* i: waiting for modification time (gzip) */ | ||||||
|     OS,         /* i: waiting for extra flags and operating system (gzip) */ |     OS,         /* i: waiting for extra flags and operating system (gzip) */ | ||||||
| @@ -28,7 +27,6 @@ typedef enum { | |||||||
|     NAME,       /* i: waiting for end of file name (gzip) */ |     NAME,       /* i: waiting for end of file name (gzip) */ | ||||||
|     COMMENT,    /* i: waiting for end of comment (gzip) */ |     COMMENT,    /* i: waiting for end of comment (gzip) */ | ||||||
|     HCRC,       /* i: waiting for header crc (gzip) */ |     HCRC,       /* i: waiting for header crc (gzip) */ | ||||||
| #endif |  | ||||||
|     DICTID,     /* i: waiting for dictionary check value */ |     DICTID,     /* i: waiting for dictionary check value */ | ||||||
|     DICT,       /* waiting for inflateSetDictionary() call */ |     DICT,       /* waiting for inflateSetDictionary() call */ | ||||||
|         TYPE,       /* i: waiting for type bits, including last-flag bit */ |         TYPE,       /* i: waiting for type bits, including last-flag bit */ | ||||||
| @@ -45,9 +43,7 @@ typedef enum { | |||||||
|             MATCH,      /* o: waiting for output space to copy string */ |             MATCH,      /* o: waiting for output space to copy string */ | ||||||
|             LIT,        /* o: waiting for output space to write literal */ |             LIT,        /* o: waiting for output space to write literal */ | ||||||
|     CHECK,      /* i: waiting for 32-bit check value */ |     CHECK,      /* i: waiting for 32-bit check value */ | ||||||
| #ifdef GUNZIP |  | ||||||
|     LENGTH,     /* i: waiting for 32-bit length (gzip) */ |     LENGTH,     /* i: waiting for 32-bit length (gzip) */ | ||||||
| #endif |  | ||||||
|     DONE,       /* finished check, done -- remain here until reset */ |     DONE,       /* finished check, done -- remain here until reset */ | ||||||
|     BAD,        /* got a data error -- remain here until reset */ |     BAD,        /* got a data error -- remain here until reset */ | ||||||
|     MEM,        /* got an inflate() memory error -- remain here until reset */ |     MEM,        /* got an inflate() memory error -- remain here until reset */ | ||||||
| @@ -86,6 +82,7 @@ struct inflate_state { | |||||||
|     int flags;                  /* gzip header method and flags (0 if zlib) */ |     int flags;                  /* gzip header method and flags (0 if zlib) */ | ||||||
|     unsigned long check;        /* protected copy of check value */ |     unsigned long check;        /* protected copy of check value */ | ||||||
|     unsigned long total;        /* protected copy of output count */ |     unsigned long total;        /* protected copy of output count */ | ||||||
|  |     gz_headerp head;            /* where to save gzip header information */ | ||||||
|         /* sliding window */ |         /* sliding window */ | ||||||
|     unsigned wbits;             /* log base 2 of requested window size */ |     unsigned wbits;             /* log base 2 of requested window size */ | ||||||
|     unsigned wsize;             /* window size or zero if not using window */ |     unsigned wsize;             /* window size or zero if not using window */ | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
| #define MAXBITS 15 | #define MAXBITS 15 | ||||||
|  |  | ||||||
| const char inflate_copyright[] = | const char inflate_copyright[] = | ||||||
|    " inflate 1.2.2 Copyright 1995-2004 Mark Adler "; |    " inflate 1.2.2.1 Copyright 1995-2004 Mark Adler "; | ||||||
| /* | /* | ||||||
|   If you use the zlib library in a product, an acknowledgment is welcome |   If you use the zlib library in a product, an acknowledgment is welcome | ||||||
|   in the documentation of your product. If for some reason you cannot |   in the documentation of your product. If for some reason you cannot | ||||||
| @@ -62,7 +62,7 @@ unsigned short FAR *work; | |||||||
|         35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; |         35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; | ||||||
|     static const unsigned short lext[31] = { /* Length codes 257..285 extra */ |     static const unsigned short lext[31] = { /* Length codes 257..285 extra */ | ||||||
|         16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, |         16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, | ||||||
|         19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 199, 198}; |         19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 207}; | ||||||
|     static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ |     static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ | ||||||
|         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, |         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, | ||||||
|         257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, |         257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* minigzip.c -- simulate gzip using the zlib compression library | /* minigzip.c -- simulate gzip using the zlib compression library | ||||||
|  * Copyright (C) 1995-2002 Jean-loup Gailly. |  * Copyright (C) 1995-2004 Jean-loup Gailly. | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -21,8 +21,6 @@ | |||||||
| #ifdef STDC | #ifdef STDC | ||||||
| #  include <string.h> | #  include <string.h> | ||||||
| #  include <stdlib.h> | #  include <stdlib.h> | ||||||
| #else |  | ||||||
|    extern void exit  OF((int)); |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef USE_MMAP | #ifdef USE_MMAP | ||||||
|   | |||||||
| @@ -10,18 +10,21 @@ please consider submitting the project to the contrib directory. | |||||||
| Requirements | Requirements | ||||||
| ============ | ============ | ||||||
|  |  | ||||||
| - The project must build zlib using exclusively the source files from | - The project must build zlib using the source files from the official | ||||||
|   the official zlib distribution. |   zlib source distribution, exclusively. | ||||||
|  |  | ||||||
| - If there are "official" makefiles in the zlib distribution, the builds | - If the project produces redistributable builds (e.g. shared objects | ||||||
|   given by the makefiles must be compatible with the builds given by the |   or DLL files), these builds must be compatible to those produced by | ||||||
|   project.  These builds are called "official" builds. |   makefiles, if such makefiles exist in the zlib distribution. | ||||||
|  |   In particular, if the project produces a DLL build for the Win32 | ||||||
|  |   platform, this build must comply to the officially-ammended Win32 DLL | ||||||
|  |   Application Binary Interface (ABI), described in win32/DLL_FAQ.txt. | ||||||
|  |  | ||||||
| - It is possible to add non-official pieces of code to the project, | - The project may provide additional build targets, which depend on | ||||||
|   if the resulting build remains compatible with an official build. |   3rd-party (unofficially-supported) software, present in the contrib | ||||||
|   For example, it is possible to add an "ASM build" target besides |   directory.  For example, it is possible to provide an "ASM build", | ||||||
|   the regular target, by including ASM source files from the contrib |   besides the officially-supported build, and have ASM source files | ||||||
|   directory. |   among its dependencies. | ||||||
|  |  | ||||||
| - If there are significant differences between the project files created | - If there are significant differences between the project files created | ||||||
|   by different versions of an IDE (e.g. Visual C++ 6.0 vs. 7.0), the name |   by different versions of an IDE (e.g. Visual C++ 6.0 vs. 7.0), the name | ||||||
|   | |||||||
| @@ -5,23 +5,6 @@ Copyright (C) 2004 Cosmin Truta. | |||||||
| For conditions of distribution and use, see copyright notice in zlib.h. | For conditions of distribution and use, see copyright notice in zlib.h. | ||||||
|  |  | ||||||
|  |  | ||||||
| To use: |  | ||||||
|  |  | ||||||
| 1) On the main menu, select "File | Open Workspace". |  | ||||||
|    Open "zlib.dsw". |  | ||||||
|  |  | ||||||
| 2) Select "Build | Set Active Configuration". |  | ||||||
|    Choose the configuration you wish to build. |  | ||||||
|  |  | ||||||
| 3) Select "Build | Clean". |  | ||||||
|  |  | ||||||
| 4) Select "Build | Build ... (F7)".  Ignore warning messages about |  | ||||||
|    not being able to find certain include files (e.g. alloc.h). |  | ||||||
|  |  | ||||||
| 5) If you built one of the sample programs (example or minigzip), |  | ||||||
|    select "Build | Execute ... (Ctrl+F5)". |  | ||||||
|  |  | ||||||
|  |  | ||||||
| This project builds the zlib binaries as follows: | This project builds the zlib binaries as follows: | ||||||
|  |  | ||||||
| * Win32_DLL_Release\zlib1.dll       DLL build | * Win32_DLL_Release\zlib1.dll       DLL build | ||||||
| @@ -36,3 +19,55 @@ This project builds the zlib binaries as follows: | |||||||
|  |  | ||||||
| For more information regarding the DLL builds, please see the DLL FAQ | For more information regarding the DLL builds, please see the DLL FAQ | ||||||
| in ..\..\win32\DLL_FAQ.txt. | in ..\..\win32\DLL_FAQ.txt. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | To build and test: | ||||||
|  |  | ||||||
|  | 1) On the main menu, select "File | Open Workspace". | ||||||
|  |    Open "zlib.dsw". | ||||||
|  |  | ||||||
|  | 2) Select "Build | Set Active Configuration". | ||||||
|  |    Choose the configuration you wish to build. | ||||||
|  |  | ||||||
|  | 3) Select "Build | Clean". | ||||||
|  |  | ||||||
|  | 4) Select "Build | Build ... (F7)".  Ignore warning messages about | ||||||
|  |    not being able to find certain include files (e.g. alloc.h). | ||||||
|  |  | ||||||
|  | 5) If you built one of the sample programs (example or minigzip), | ||||||
|  |    select "Build | Execute ... (Ctrl+F5)". | ||||||
|  |  | ||||||
|  |  | ||||||
|  | To use: | ||||||
|  |  | ||||||
|  | 1) Select "Project | Settings (Alt+F7)". | ||||||
|  |    Make note of the configuration names used in your project. | ||||||
|  |    Usually, these names are "Win32 Release" and "Win32 Debug". | ||||||
|  |  | ||||||
|  | 2) In the Workspace window, select the "FileView" tab. | ||||||
|  |    Right-click on the root item "Workspace '...'". | ||||||
|  |    Select "Insert Project into Workspace". | ||||||
|  |    Switch on the checkbox "Dependency of:", and select the name | ||||||
|  |    of your project.  Open "zlib.dsp". | ||||||
|  |  | ||||||
|  | 3) Select "Build | Configurations". | ||||||
|  |    For each configuration of your project: | ||||||
|  |    3.1) Choose the zlib configuration you wish to use. | ||||||
|  |    3.2) Click on "Add". | ||||||
|  |    3.3) Set the new zlib configuration name to the name used by | ||||||
|  |         the configuration from the current iteration. | ||||||
|  |  | ||||||
|  | 4) Select "Build | Set Active Configuration". | ||||||
|  |    Choose the configuration you wish to build. | ||||||
|  |  | ||||||
|  | 5) Select "Build | Build ... (F7)". | ||||||
|  |  | ||||||
|  | 6) If you built an executable program, select | ||||||
|  |    "Build | Execute ... (Ctrl+F5)". | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Note: | ||||||
|  |  | ||||||
|  | To build the ASM-enabled code, you need Microsoft Assembler | ||||||
|  | (ML.EXE).  You can get it by downloading and installing the | ||||||
|  | latest Processor Pack for Visual C++ 6.0. | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ RSC=rc.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_Release" | # PROP Intermediate_Dir "Win32_DLL_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -58,7 +58,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib1.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_DLL_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 DLL Debug" | !ELSEIF  "$(CFG)" == "example - Win32 DLL Debug" | ||||||
|  |  | ||||||
| @@ -73,7 +73,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_Debug" | # PROP Intermediate_Dir "Win32_DLL_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -84,7 +84,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlib1d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_DLL_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 DLL ASM Release" | !ELSEIF  "$(CFG)" == "example - Win32 DLL ASM Release" | ||||||
|  |  | ||||||
| @@ -99,7 +99,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_ASM_Release" | # PROP Intermediate_Dir "Win32_DLL_ASM_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -110,7 +110,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib1.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_DLL_ASM_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 DLL ASM Debug" | !ELSEIF  "$(CFG)" == "example - Win32 DLL ASM Debug" | ||||||
|  |  | ||||||
| @@ -125,7 +125,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_ASM_Debug" | # PROP Intermediate_Dir "Win32_DLL_ASM_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -136,7 +136,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlib1d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_DLL_ASM_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 LIB Release" | !ELSEIF  "$(CFG)" == "example - Win32 LIB Release" | ||||||
|  |  | ||||||
| @@ -151,7 +151,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_Release" | # PROP Intermediate_Dir "Win32_LIB_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -162,7 +162,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_LIB_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 LIB Debug" | !ELSEIF  "$(CFG)" == "example - Win32 LIB Debug" | ||||||
|  |  | ||||||
| @@ -177,7 +177,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_Debug" | # PROP Intermediate_Dir "Win32_LIB_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -188,7 +188,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlibd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_LIB_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 LIB ASM Release" | !ELSEIF  "$(CFG)" == "example - Win32 LIB ASM Release" | ||||||
|  |  | ||||||
| @@ -203,7 +203,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_ASM_Release" | # PROP Intermediate_Dir "Win32_LIB_ASM_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -214,7 +214,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_LIB_ASM_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "example - Win32 LIB ASM Debug" | !ELSEIF  "$(CFG)" == "example - Win32 LIB ASM Debug" | ||||||
|  |  | ||||||
| @@ -229,7 +229,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_ASM_Debug" | # PROP Intermediate_Dir "Win32_LIB_ASM_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -240,7 +240,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlibd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_LIB_ASM_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ENDIF  | !ENDIF  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ RSC=rc.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_Release" | # PROP Intermediate_Dir "Win32_DLL_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -58,7 +58,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib1.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_DLL_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 DLL Debug" | !ELSEIF  "$(CFG)" == "minigzip - Win32 DLL Debug" | ||||||
|  |  | ||||||
| @@ -73,7 +73,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_Debug" | # PROP Intermediate_Dir "Win32_DLL_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -84,7 +84,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlib1d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_DLL_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 DLL ASM Release" | !ELSEIF  "$(CFG)" == "minigzip - Win32 DLL ASM Release" | ||||||
|  |  | ||||||
| @@ -99,7 +99,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_ASM_Release" | # PROP Intermediate_Dir "Win32_DLL_ASM_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -110,7 +110,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib1.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_DLL_ASM_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 DLL ASM Debug" | !ELSEIF  "$(CFG)" == "minigzip - Win32 DLL ASM Debug" | ||||||
|  |  | ||||||
| @@ -125,7 +125,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_DLL_ASM_Debug" | # PROP Intermediate_Dir "Win32_DLL_ASM_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -136,7 +136,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlib1d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_DLL_ASM_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB Release" | !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB Release" | ||||||
|  |  | ||||||
| @@ -151,7 +151,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_Release" | # PROP Intermediate_Dir "Win32_LIB_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -162,7 +162,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_LIB_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB Debug" | !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB Debug" | ||||||
|  |  | ||||||
| @@ -177,7 +177,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_Debug" | # PROP Intermediate_Dir "Win32_LIB_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -188,7 +188,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlibd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_LIB_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB ASM Release" | !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB ASM Release" | ||||||
|  |  | ||||||
| @@ -203,7 +203,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_ASM_Release" | # PROP Intermediate_Dir "Win32_LIB_ASM_Release" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | # ADD CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /FD /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -214,7 +214,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /machine:I386 | # 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:console /machine:I386 | ||||||
| # ADD LINK32 zlib.lib /nologo /subsystem:console /machine:I386 /libpath:"Win32_LIB_ASM_Release" | # ADD LINK32 /nologo /subsystem:console /machine:I386 | ||||||
|  |  | ||||||
| !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB ASM Debug" | !ELSEIF  "$(CFG)" == "minigzip - Win32 LIB ASM Debug" | ||||||
|  |  | ||||||
| @@ -229,7 +229,7 @@ LINK32=link.exe | |||||||
| # PROP Intermediate_Dir "Win32_LIB_ASM_Debug" | # PROP Intermediate_Dir "Win32_LIB_ASM_Debug" | ||||||
| # PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||||
| # PROP Target_Dir "" | # PROP Target_Dir "" | ||||||
| # ADD BASE CPP /nologo /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD BASE CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT BASE CPP /YX | # SUBTRACT BASE CPP /YX | ||||||
| # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | # ADD CPP /nologo /MDd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /FD /GZ /c | ||||||
| # SUBTRACT CPP /YX | # SUBTRACT CPP /YX | ||||||
| @@ -240,7 +240,7 @@ BSC32=bscmake.exe | |||||||
| # ADD BSC32 /nologo | # ADD BSC32 /nologo | ||||||
| LINK32=link.exe | LINK32=link.exe | ||||||
| # 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:console /debug /machine:I386 /pdbtype:sept | # 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:console /debug /machine:I386 /pdbtype:sept | ||||||
| # ADD LINK32 zlibd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"Win32_LIB_ASM_Debug" | # ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept | ||||||
|  |  | ||||||
| !ENDIF  | !ENDIF  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -435,7 +435,7 @@ InputPath=..\..\contrib\masmx86\gvmat32.asm | |||||||
| InputName=gvmat32 | InputName=gvmat32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -447,7 +447,7 @@ InputPath=..\..\contrib\masmx86\gvmat32.asm | |||||||
| InputName=gvmat32 | InputName=gvmat32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -467,7 +467,7 @@ InputPath=..\..\contrib\masmx86\gvmat32.asm | |||||||
| InputName=gvmat32 | InputName=gvmat32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -479,7 +479,7 @@ InputPath=..\..\contrib\masmx86\gvmat32.asm | |||||||
| InputName=gvmat32 | InputName=gvmat32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -549,7 +549,7 @@ InputPath=..\..\contrib\masmx86\inffas32.asm | |||||||
| InputName=inffas32 | InputName=inffas32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -561,7 +561,7 @@ InputPath=..\..\contrib\masmx86\inffas32.asm | |||||||
| InputName=inffas32 | InputName=inffas32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -581,7 +581,7 @@ InputPath=..\..\contrib\masmx86\inffas32.asm | |||||||
| InputName=inffas32 | InputName=inffas32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
| @@ -593,7 +593,7 @@ InputPath=..\..\contrib\masmx86\inffas32.asm | |||||||
| InputName=inffas32 | InputName=inffas32 | ||||||
|  |  | ||||||
| "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | "$(IntDir)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" | ||||||
| 	ml /nologo /c /Cx /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | 	ml.exe /nologo /c /coff /Cx /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)" | ||||||
|  |  | ||||||
| # End Custom Build | # End Custom Build | ||||||
|  |  | ||||||
|   | |||||||
| @@ -25,10 +25,10 @@ | |||||||
|       <QPG:Files> |       <QPG:Files> | ||||||
|          <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/> |          <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/> | ||||||
|          <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/> |          <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/> | ||||||
|          <QPG:Add file="../libz.so.1.2.2" install="/opt/lib/" user="root:bin" permission="644"/> |          <QPG:Add file="../libz.so.1.2.2.1" install="/opt/lib/" user="root:bin" permission="644"/> | ||||||
|          <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.2.2"/> |          <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.2.2.1"/> | ||||||
|          <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.2.2"/> |          <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.2.2.1"/> | ||||||
|          <QPG:Add file="../libz.so.1.2.2" install="/opt/lib/" component="slib"/> |          <QPG:Add file="../libz.so.1.2.2.1" install="/opt/lib/" component="slib"/> | ||||||
|       </QPG:Files> |       </QPG:Files> | ||||||
|  |  | ||||||
|       <QPG:PackageFilter> |       <QPG:PackageFilter> | ||||||
| @@ -63,7 +63,7 @@ | |||||||
|             </QPM:ProductDescription> |             </QPM:ProductDescription> | ||||||
|  |  | ||||||
|             <QPM:ReleaseDescription> |             <QPM:ReleaseDescription> | ||||||
|                <QPM:ReleaseVersion>1.2.2</QPM:ReleaseVersion> |                <QPM:ReleaseVersion>1.2.2.1</QPM:ReleaseVersion> | ||||||
|                <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency> |                <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency> | ||||||
|                <QPM:ReleaseStability>Stable</QPM:ReleaseStability> |                <QPM:ReleaseStability>Stable</QPM:ReleaseStability> | ||||||
|                <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor> |                <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor> | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								trees.c
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								trees.c
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* trees.c -- output deflated data using Huffman coding | /* trees.c -- output deflated data using Huffman coding | ||||||
|  * Copyright (C) 1995-2003 Jean-loup Gailly |  * Copyright (C) 1995-2004 Jean-loup Gailly | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -930,8 +930,25 @@ void _tr_flush_block(s, buf, stored_len, eof) | |||||||
|     /* Build the Huffman trees unless a stored block is forced */ |     /* Build the Huffman trees unless a stored block is forced */ | ||||||
|     if (s->level > 0) { |     if (s->level > 0) { | ||||||
|  |  | ||||||
|          /* Check if the file is ascii or binary */ |         /* Check if the file is binary or text */ | ||||||
|         if (s->strm->data_type == Z_UNKNOWN) set_data_type(s); |         if (stored_len > 0 && s->strm->data_type == Z_UNKNOWN) | ||||||
|  |             set_data_type(s); | ||||||
|  |  | ||||||
|  | #ifdef DEBUG | ||||||
|  |         /* Write out literal/length frequencies for benchmarking */ | ||||||
|  |         if (z_verbose) { | ||||||
|  |             FILE *freq; | ||||||
|  |             freq = fopen("defreq.txt", "a"); | ||||||
|  |             if (freq != NULL) { | ||||||
|  |                 int n; | ||||||
|  |                 fputs("ltree:", freq); | ||||||
|  |                 for (n = 0; n < L_CODES; n++) | ||||||
|  |                     fprintf(freq, " %d", s->dyn_ltree[n].Freq); | ||||||
|  |                 putc('\n', freq); | ||||||
|  |                 fclose(freq); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|         /* Construct the literal and distance trees */ |         /* Construct the literal and distance trees */ | ||||||
|         build_tree(s, (tree_desc *)(&(s->l_desc))); |         build_tree(s, (tree_desc *)(&(s->l_desc))); | ||||||
| @@ -1117,21 +1134,24 @@ local void compress_block(s, ltree, dtree) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* =========================================================================== | /* =========================================================================== | ||||||
|  * Set the data type to ASCII or BINARY, using a crude approximation: |  * Set the data type to BINARY or TEXT, using a crude approximation: | ||||||
|  * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise. |  * set it to Z_TEXT if all symbols are either printable characters (33 to 255) | ||||||
|  * IN assertion: the fields freq of dyn_ltree are set and the total of all |  * or white spaces (9 to 13, or 32); or set it to Z_BINARY otherwise. | ||||||
|  * frequencies does not exceed 64K (to fit in an int on 16 bit machines). |  * IN assertion: the fields Freq of dyn_ltree are set. | ||||||
|  */ |  */ | ||||||
| local void set_data_type(s) | local void set_data_type(s) | ||||||
|     deflate_state *s; |     deflate_state *s; | ||||||
| { | { | ||||||
|     int n = 0; |     int n; | ||||||
|     unsigned ascii_freq = 0; |  | ||||||
|     unsigned bin_freq = 0; |     for (n = 0; n < 9; n++) | ||||||
|     while (n < 7)        bin_freq += s->dyn_ltree[n++].Freq; |         if (s->dyn_ltree[n].Freq != 0) | ||||||
|     while (n < 128)    ascii_freq += s->dyn_ltree[n++].Freq; |             break; | ||||||
|     while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq; |     if (n == 9) | ||||||
|     s->strm->data_type = bin_freq > (ascii_freq >> 2) ? Z_BINARY : Z_ASCII; |         for (n = 14; n < 32; n++) | ||||||
|  |             if (s->dyn_ltree[n].Freq != 0) | ||||||
|  |                 break; | ||||||
|  |     s->strm->data_type = (n == 32) ? Z_TEXT : Z_BINARY; | ||||||
| } | } | ||||||
|  |  | ||||||
| /* =========================================================================== | /* =========================================================================== | ||||||
|   | |||||||
| @@ -175,7 +175,7 @@ in the zlib distribution, or at the following location: | |||||||
|     zlib in other programming languages.  Some of them, like Ada |     zlib in other programming languages.  Some of them, like Ada | ||||||
|     (GNAT) and Fortran (GNU G77), have C bindings implemented |     (GNAT) and Fortran (GNU G77), have C bindings implemented | ||||||
|     initially on Unix, and relying on the C calling convention. |     initially on Unix, and relying on the C calling convention. | ||||||
|     On the other hand, the pre- .Net versions of Microsoft Visual |     On the other hand, the pre- .NET versions of Microsoft Visual | ||||||
|     Basic require STDCALL, while Borland Delphi prefers, although |     Basic require STDCALL, while Borland Delphi prefers, although | ||||||
|     it does not require, FASTCALL. |     it does not require, FASTCALL. | ||||||
|  |  | ||||||
| @@ -203,10 +203,10 @@ in the zlib distribution, or at the following location: | |||||||
|     zlib distribution. |     zlib distribution. | ||||||
|  |  | ||||||
|  |  | ||||||
|  8. I need to use zlib in my Microsoft .Net project.  What can I |  8. I need to use zlib in my Microsoft .NET project.  What can I | ||||||
|     do? |     do? | ||||||
|  |  | ||||||
|   - Henrik Ravn has contributed a .Net wrapper around zlib.  Look |   - Henrik Ravn has contributed a .NET wrapper around zlib.  Look | ||||||
|     into contrib/dotzlib/, inside the zlib distribution. |     into contrib/dotzlib/, inside the zlib distribution. | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -225,8 +225,8 @@ in the zlib distribution, or at the following location: | |||||||
|     depend on it should also be linked to MSVCRT.DLL. |     depend on it should also be linked to MSVCRT.DLL. | ||||||
|  |  | ||||||
|  |  | ||||||
| 10. Why are you saying that ZLIB1.DLL and my application must be | 10. Why are you saying that ZLIB1.DLL and my application should | ||||||
|     linked to the same C run-time (CRT) library?  I linked my |     be linked to the same C run-time (CRT) library?  I linked my | ||||||
|     application and my DLLs to different C libraries (e.g. my |     application and my DLLs to different C libraries (e.g. my | ||||||
|     application to a static library, and my DLLs to MSVCRT.DLL), |     application to a static library, and my DLLs to MSVCRT.DLL), | ||||||
|     and everything works fine. |     and everything works fine. | ||||||
| @@ -277,12 +277,6 @@ in the zlib distribution, or at the following location: | |||||||
|     even run on it.  Furthermore, no serious user should run |     even run on it.  Furthermore, no serious user should run | ||||||
|     Windows 95 without a proper update installed. |     Windows 95 without a proper update installed. | ||||||
|  |  | ||||||
|     There is also the fact that the mainstream C compilers for |  | ||||||
|     Windows are Microsoft Visual C++ 6.0, and gcc/MinGW.  Both |  | ||||||
|     are producing executables that link to MSVCRT.DLL by default, |  | ||||||
|     without offering other dynamic CRTs as alternatives easy to |  | ||||||
|     select by users. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 12. Why are you not linking ZLIB1.DLL to | 12. Why are you not linking ZLIB1.DLL to | ||||||
|     <<my favorite C run-time library>> ? |     <<my favorite C run-time library>> ? | ||||||
| @@ -295,27 +289,60 @@ in the zlib distribution, or at the following location: | |||||||
|       to a static C library, you may as well consider linking zlib |       to a static C library, you may as well consider linking zlib | ||||||
|       in statically, too. |       in statically, too. | ||||||
|  |  | ||||||
|     * Linking ZLIB1.DLL to CRTDLL.DLL looks very appealing, |     * Linking ZLIB1.DLL to CRTDLL.DLL looks appealing, because | ||||||
|       because CRTDLL.DLL is present on every Win32 installation. |       CRTDLL.DLL is present on every Win32 installation. | ||||||
|       Unfortunately, it has a series of problems: it raises |       Unfortunately, it has a series of problems: it does not | ||||||
|       difficulties when using it with C++ code, it does not work |       work properly with Microsoft's C++ libraries, it does not | ||||||
|       with 64-bit file offsets, (and so on...), and Microsoft |       provide support for 64-bit file offsets, (and so on...), | ||||||
|       discontinued its support a long time ago. |       and Microsoft discontinued its support a long time ago. | ||||||
|  |  | ||||||
|     * Linking ZLIB1.DLL to MSVCR70.DLL, supplied with the |     * Linking ZLIB1.DLL to MSVCR70.DLL or MSVCR71.DLL, supplied | ||||||
|       Microsoft .NET platform and Visual C++ 7.0 or newer, is not |       with the Microsoft .NET platform, and Visual C++ 7.0/7.1, | ||||||
|       a good option.  Although it is available for free download |       raises problems related to the status of ZLIB1.DLL as a | ||||||
|       and distribution, its presence is scarce on today's Win32 |       system component.  According to the Microsoft Knowledge Base | ||||||
|       installations.  If it will ever become more popular than |       article KB326922 "INFO: Redistribution of the Shared C | ||||||
|       MSVCRT.DLL and will be pre-installed on the future Win32 |       Runtime Component in Visual C++ .NET", MSVCR70.DLL and | ||||||
|       systems, we will probably think again about it. |       MSVCR71.DLL are not supposed to function as system DLLs, | ||||||
|  |       because they may clash with MSVCRT.DLL.  Instead, the | ||||||
|  |       application's installer is supposed to put these DLLs | ||||||
|  |       (if needed) in the application's private directory. | ||||||
|  |       If ZLIB1.DLL depends on a non-system runtime, it cannot | ||||||
|  |       function as a redistributable system component. | ||||||
|  |  | ||||||
|     * Linking ZLIB1.DLL to NTDLL.DLL is not possible. |     * Linking ZLIB1.DLL to non-Microsoft runtimes, such as | ||||||
|       NTDLL.DLL exports only a part of the C library, and only on |       Borland's, or Cygwin's, raises problems related to the | ||||||
|       Windows NT systems. |       reliable presence of these runtimes on Win32 systems. | ||||||
|  |       It's easier to let the DLL build of zlib up to the people | ||||||
|  |       who distribute these runtimes, and who may proceed as | ||||||
|  |       explained in the answer to Question 14. | ||||||
|  |  | ||||||
|  |  | ||||||
| 13. I need to link my own DLL build to a CRT different than | 13. If ZLIB1.DLL cannot be linked to MSVCR70.DLL or MSVCR71.DLL, | ||||||
|  |     how can I build/use ZLIB1.DLL in Microsoft Visual C++ 7.0 | ||||||
|  |     (Visual Studio .NET) or newer? | ||||||
|  |  | ||||||
|  |   - Due to the problems explained in the Microsoft Knowledge Base | ||||||
|  |     article KB326922 (see the previous answer), the C runtime that | ||||||
|  |     comes with the VC7 environment is no longer considered a | ||||||
|  |     system component.  That is, it should not be assumed that this | ||||||
|  |     runtime exists, or may be installed in a system directory. | ||||||
|  |     Since ZLIB1.DLL is supposed to be a system component, it may | ||||||
|  |     not depend on a non-system component. | ||||||
|  |  | ||||||
|  |     In order to link ZLIB1.DLL and your application to MSVCRT.DLL | ||||||
|  |     in VC7, you need the library of Visual C++ 6.0 or older.  If | ||||||
|  |     you don't have this library at hand, it's probably best not to | ||||||
|  |     use ZLIB1.DLL. | ||||||
|  |  | ||||||
|  |     We are hoping that, in the future, Microsoft will provide a | ||||||
|  |     way to build applications linked to a proper system runtime, | ||||||
|  |     from the Visual C++ environment.  Until then, you have a | ||||||
|  |     couple of alternatives, such as linking zlib in statically. | ||||||
|  |     If your application requires dynamic linking, you may proceed | ||||||
|  |     as explained in the answer to Question 14. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 14. I need to link my own DLL build to a CRT different than | ||||||
|     MSVCRT.DLL.  What can I do? |     MSVCRT.DLL.  What can I do? | ||||||
|  |  | ||||||
|   - Feel free to rebuild the DLL from the zlib sources, and link |   - Feel free to rebuild the DLL from the zlib sources, and link | ||||||
| @@ -331,7 +358,7 @@ in the zlib distribution, or at the following location: | |||||||
|     CYGWIN1.DLL, and it is distributed under the name CYGZ.DLL. |     CYGWIN1.DLL, and it is distributed under the name CYGZ.DLL. | ||||||
|  |  | ||||||
|  |  | ||||||
| 14. May I include additional pieces of code that I find useful, | 15. May I include additional pieces of code that I find useful, | ||||||
|     link them in ZLIB1.DLL, and export them? |     link them in ZLIB1.DLL, and export them? | ||||||
|  |  | ||||||
|   - No.  A legitimate build of ZLIB1.DLL must not include code |   - No.  A legitimate build of ZLIB1.DLL must not include code | ||||||
| @@ -344,7 +371,7 @@ in the zlib distribution, or at the following location: | |||||||
|     is a redistributable file, named VCLxx.DLL. |     is a redistributable file, named VCLxx.DLL. | ||||||
|  |  | ||||||
|  |  | ||||||
| 15. May I remove some functionality out of ZLIB1.DLL, by enabling | 16. May I remove some functionality out of ZLIB1.DLL, by enabling | ||||||
|     macros like NO_GZCOMPRESS or NO_GZIP at compile time? |     macros like NO_GZCOMPRESS or NO_GZIP at compile time? | ||||||
|  |  | ||||||
|   - No.  A legitimate build of ZLIB1.DLL must provide the complete |   - No.  A legitimate build of ZLIB1.DLL must provide the complete | ||||||
| @@ -353,7 +380,7 @@ in the zlib distribution, or at the following location: | |||||||
|     different file name, as suggested in the previous answer. |     different file name, as suggested in the previous answer. | ||||||
|  |  | ||||||
|  |  | ||||||
| 16. I made my own ZLIB1.DLL build.  Can I test it for compliance? | 17. I made my own ZLIB1.DLL build.  Can I test it for compliance? | ||||||
|  |  | ||||||
|   - We prefer that you download the official DLL from the zlib |   - We prefer that you download the official DLL from the zlib | ||||||
|     web site.  If you need something peculiar from this DLL, you |     web site.  If you need something peculiar from this DLL, you | ||||||
|   | |||||||
| @@ -5,8 +5,8 @@ VS_VERSION_INFO		VERSIONINFO | |||||||
| #else | #else | ||||||
| VS_VERSION_INFO		VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE | VS_VERSION_INFO		VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE | ||||||
| #endif | #endif | ||||||
|   FILEVERSION		1,2,2 |   FILEVERSION		1,2,2,1 | ||||||
|   PRODUCTVERSION	1,2,2 |   PRODUCTVERSION	1,2,2,1 | ||||||
|   FILEFLAGSMASK		VS_FFI_FILEFLAGSMASK |   FILEFLAGSMASK		VS_FFI_FILEFLAGSMASK | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|   FILEFLAGS		1 |   FILEFLAGS		1 | ||||||
| @@ -23,12 +23,12 @@ BEGIN | |||||||
|     //language ID = U.S. English, char set = Windows, Multilingual |     //language ID = U.S. English, char set = Windows, Multilingual | ||||||
|     BEGIN |     BEGIN | ||||||
|       VALUE "FileDescription",	"zlib data compression library\0" |       VALUE "FileDescription",	"zlib data compression library\0" | ||||||
|       VALUE "FileVersion",	"1.2.2\0" |       VALUE "FileVersion",	"1.2.2.1\0" | ||||||
|       VALUE "InternalName",	"zlib1.dll\0" |       VALUE "InternalName",	"zlib1.dll\0" | ||||||
|       VALUE "LegalCopyright",	"(C) 1995-2004 Jean-loup Gailly & Mark Adler\0" |       VALUE "LegalCopyright",	"(C) 1995-2004 Jean-loup Gailly & Mark Adler\0" | ||||||
|       VALUE "OriginalFilename",	"zlib1.dll\0" |       VALUE "OriginalFilename",	"zlib1.dll\0" | ||||||
|       VALUE "ProductName",	"zlib\0" |       VALUE "ProductName",	"zlib\0" | ||||||
|       VALUE "ProductVersion",	"1.2.2\0" |       VALUE "ProductVersion",	"1.2.2.1\0" | ||||||
|       VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" |       VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" | ||||||
|     END |     END | ||||||
|   END |   END | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								zconf.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								zconf.h
									
									
									
									
									
								
							| @@ -43,6 +43,10 @@ | |||||||
| #  define get_crc_table         z_get_crc_table | #  define get_crc_table         z_get_crc_table | ||||||
| #  define zError                z_zError | #  define zError                z_zError | ||||||
|  |  | ||||||
|  | #  define alloc_func            z_alloc_func | ||||||
|  | #  define free_func             z_free_func | ||||||
|  | #  define in_func               z_in_func | ||||||
|  | #  define out_func              z_out_func | ||||||
| #  define Byte                  z_Byte | #  define Byte                  z_Byte | ||||||
| #  define uInt                  z_uInt | #  define uInt                  z_uInt | ||||||
| #  define uLong                 z_uLong | #  define uLong                 z_uLong | ||||||
|   | |||||||
| @@ -43,6 +43,10 @@ | |||||||
| #  define get_crc_table         z_get_crc_table | #  define get_crc_table         z_get_crc_table | ||||||
| #  define zError                z_zError | #  define zError                z_zError | ||||||
|  |  | ||||||
|  | #  define alloc_func            z_alloc_func | ||||||
|  | #  define free_func             z_free_func | ||||||
|  | #  define in_func               z_in_func | ||||||
|  | #  define out_func              z_out_func | ||||||
| #  define Byte                  z_Byte | #  define Byte                  z_Byte | ||||||
| #  define uInt                  z_uInt | #  define uInt                  z_uInt | ||||||
| #  define uLong                 z_uLong | #  define uLong                 z_uLong | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								zlib.3
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								zlib.3
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| .TH ZLIB 3 "3 October 2004" | .TH ZLIB 3 "31 October 2004" | ||||||
| .SH NAME | .SH NAME | ||||||
| zlib \- compression/decompression library | zlib \- compression/decompression library | ||||||
| .SH SYNOPSIS | .SH SYNOPSIS | ||||||
| @@ -133,7 +133,7 @@ before asking for help. | |||||||
| Send questions and/or comments to zlib@gzip.org, | Send questions and/or comments to zlib@gzip.org, | ||||||
| or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). | or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). | ||||||
| .SH AUTHORS | .SH AUTHORS | ||||||
| Version 1.2.2 | Version 1.2.2.1 | ||||||
| Copyright (C) 1995-2004 Jean-loup Gailly (jloup@gzip.org) | Copyright (C) 1995-2004 Jean-loup Gailly (jloup@gzip.org) | ||||||
| and Mark Adler (madler@alumni.caltech.edu). | and Mark Adler (madler@alumni.caltech.edu). | ||||||
| .LP | .LP | ||||||
|   | |||||||
							
								
								
									
										157
									
								
								zlib.h
									
									
									
									
									
								
							
							
						
						
									
										157
									
								
								zlib.h
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* zlib.h -- interface of the 'zlib' general purpose compression library | /* zlib.h -- interface of the 'zlib' general purpose compression library | ||||||
|   version 1.2.2, October 3rd, 2004 |   version 1.2.2.1, October 31st, 2004 | ||||||
|  |  | ||||||
|   Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler |   Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler | ||||||
|  |  | ||||||
| @@ -37,8 +37,8 @@ | |||||||
| extern "C" { | extern "C" { | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #define ZLIB_VERSION "1.2.2" | #define ZLIB_VERSION "1.2.2.1" | ||||||
| #define ZLIB_VERNUM 0x1220 | #define ZLIB_VERNUM 0x1221 | ||||||
|  |  | ||||||
| /* | /* | ||||||
|      The 'zlib' compression library provides in-memory compression and |      The 'zlib' compression library provides in-memory compression and | ||||||
| @@ -95,13 +95,36 @@ typedef struct z_stream_s { | |||||||
|     free_func  zfree;   /* used to free the internal state */ |     free_func  zfree;   /* used to free the internal state */ | ||||||
|     voidpf     opaque;  /* private data object passed to zalloc and zfree */ |     voidpf     opaque;  /* private data object passed to zalloc and zfree */ | ||||||
|  |  | ||||||
|     int     data_type;  /* best guess about the data type: ascii or binary */ |     int     data_type;  /* best guess about the data type: binary or text */ | ||||||
|     uLong   adler;      /* adler32 value of the uncompressed data */ |     uLong   adler;      /* adler32 value of the uncompressed data */ | ||||||
|     uLong   reserved;   /* reserved for future use */ |     uLong   reserved;   /* reserved for future use */ | ||||||
| } z_stream; | } z_stream; | ||||||
|  |  | ||||||
| typedef z_stream FAR *z_streamp; | typedef z_stream FAR *z_streamp; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |      gzip header information passed to and from zlib routines.  See RFC 1952 | ||||||
|  |   for more details on the meanings of these fields. | ||||||
|  | */ | ||||||
|  | typedef struct gz_header_s { | ||||||
|  |     int     text;       /* true if compressed data believed to be text */ | ||||||
|  |     uLong   time;       /* modification time */ | ||||||
|  |     int     xflags;     /* extra flags (not used when writing a gzip file) */ | ||||||
|  |     int     os;         /* operating system */ | ||||||
|  |     Bytef   *extra;     /* pointer to extra field or Z_NULL if none */ | ||||||
|  |     uInt    extra_len;  /* extra field length (valid if extra != Z_NULL) */ | ||||||
|  |     uInt    extra_max;  /* space at extra (only when reading header) */ | ||||||
|  |     Bytef   *name;      /* pointer to zero-terminated file name or Z_NULL */ | ||||||
|  |     uInt    name_max;   /* space at name (only when reading header) */ | ||||||
|  |     Bytef   *comment;   /* pointer to zero-terminated comment or Z_NULL */ | ||||||
|  |     uInt    comm_max;   /* space at comment (only when reading header) */ | ||||||
|  |     int     hcrc;       /* true if there was or will be a header crc */ | ||||||
|  |     int     done;       /* true when done reading gzip header (not used | ||||||
|  |                            when writing a gzip file) */ | ||||||
|  | } gz_header; | ||||||
|  |  | ||||||
|  | typedef gz_header FAR *gz_headerp; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|    The application must update next_in and avail_in when avail_in has |    The application must update next_in and avail_in when avail_in has | ||||||
|    dropped to zero. It must update next_out and avail_out when avail_out |    dropped to zero. It must update next_out and avail_out when avail_out | ||||||
| @@ -170,7 +193,8 @@ typedef z_stream FAR *z_streamp; | |||||||
| /* compression strategy; see deflateInit2() below for details */ | /* compression strategy; see deflateInit2() below for details */ | ||||||
|  |  | ||||||
| #define Z_BINARY   0 | #define Z_BINARY   0 | ||||||
| #define Z_ASCII    1 | #define Z_TEXT     1 | ||||||
|  | #define Z_ASCII    Z_TEXT   /* for compatibility with 1.2.2 and earlier */ | ||||||
| #define Z_UNKNOWN  2 | #define Z_UNKNOWN  2 | ||||||
| /* Possible values of the data_type field (though see inflate()) */ | /* Possible values of the data_type field (though see inflate()) */ | ||||||
|  |  | ||||||
| @@ -244,6 +268,10 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); | |||||||
|   and with zero avail_out, it must be called again after making room in the |   and with zero avail_out, it must be called again after making room in the | ||||||
|   output buffer because there might be more output pending. |   output buffer because there might be more output pending. | ||||||
|  |  | ||||||
|  |     Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to | ||||||
|  |   decide how much data to accumualte before producing output, in order to | ||||||
|  |   maximize compression. | ||||||
|  |  | ||||||
|     If the parameter flush is set to Z_SYNC_FLUSH, all pending output is |     If the parameter flush is set to Z_SYNC_FLUSH, all pending output is | ||||||
|   flushed to the output buffer and the output is aligned on a byte boundary, so |   flushed to the output buffer and the output is aligned on a byte boundary, so | ||||||
|   that the decompressor can get all input data available so far. (In particular |   that the decompressor can get all input data available so far. (In particular | ||||||
| @@ -255,7 +283,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); | |||||||
|   Z_SYNC_FLUSH, and the compression state is reset so that decompression can |   Z_SYNC_FLUSH, and the compression state is reset so that decompression can | ||||||
|   restart from this point if previous compressed data has been damaged or if |   restart from this point if previous compressed data has been damaged or if | ||||||
|   random access is desired. Using Z_FULL_FLUSH too often can seriously degrade |   random access is desired. Using Z_FULL_FLUSH too often can seriously degrade | ||||||
|   the compression. |   compression. | ||||||
|  |  | ||||||
|     If deflate returns with avail_out == 0, this function must be called again |     If deflate returns with avail_out == 0, this function must be called again | ||||||
|   with the same value of the flush parameter and more output space (updated |   with the same value of the flush parameter and more output space (updated | ||||||
| @@ -280,8 +308,8 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); | |||||||
|     deflate() sets strm->adler to the adler32 checksum of all input read |     deflate() sets strm->adler to the adler32 checksum of all input read | ||||||
|   so far (that is, total_in bytes). |   so far (that is, total_in bytes). | ||||||
|  |  | ||||||
|     deflate() may update data_type if it can make a good guess about |     deflate() may update strm->data_type if it can make a good guess about | ||||||
|   the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered |   the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered | ||||||
|   binary. This field is only for information purposes and does not affect |   binary. This field is only for information purposes and does not affect | ||||||
|   the compression algorithm in any manner. |   the compression algorithm in any manner. | ||||||
|  |  | ||||||
| @@ -616,6 +644,30 @@ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, | |||||||
|    stream state was inconsistent. |    stream state was inconsistent. | ||||||
| */ | */ | ||||||
|  |  | ||||||
|  | ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, | ||||||
|  |                                          gz_headerp head)); | ||||||
|  | /* | ||||||
|  |       deflateSetHeader() provides gzip header information for when a gzip | ||||||
|  |    stream is requested by deflateInit2().  deflateSetHeader() may be called | ||||||
|  |    after deflateInit2() or deflateReset() and before the first call of | ||||||
|  |    deflate().  The text, time, os, extra field, name, and comment information | ||||||
|  |    in the provided gz_header structure are written to the gzip header (xflag is | ||||||
|  |    ignored -- the extra flags are set according to the compression level).  The | ||||||
|  |    caller must assure that, if not Z_NULL, name and comment are terminated with | ||||||
|  |    a zero byte, and that if extra is not Z_NULL, that extra_len bytes are | ||||||
|  |    available there.  If hcrc is true, a gzip header crc is included.  Note that | ||||||
|  |    the current versions of the command-line version of gzip (up through version | ||||||
|  |    1.3.x) do not support header crc's, and will report that it is a "multi-part | ||||||
|  |    gzip file" and give up. | ||||||
|  |  | ||||||
|  |       If deflateSetHeader is not used, the default gzip header has text false, | ||||||
|  |    the time set to zero, and os set to 255, with no extra, name, or comment | ||||||
|  |    fields.  The gzip header is returned to the default state by deflateReset(). | ||||||
|  |  | ||||||
|  |       deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source | ||||||
|  |    stream state was inconsistent. | ||||||
|  | */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
| ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, | ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, | ||||||
|                                      int  windowBits)); |                                      int  windowBits)); | ||||||
| @@ -664,11 +716,14 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, | |||||||
|                                              uInt  dictLength)); |                                              uInt  dictLength)); | ||||||
| /* | /* | ||||||
|      Initializes the decompression dictionary from the given uncompressed byte |      Initializes the decompression dictionary from the given uncompressed byte | ||||||
|    sequence. This function must be called immediately after a call of inflate |    sequence. This function must be called immediately after a call of inflate, | ||||||
|    if this call returned Z_NEED_DICT. The dictionary chosen by the compressor |    if that call returned Z_NEED_DICT. The dictionary chosen by the compressor | ||||||
|    can be determined from the adler32 value returned by this call of |    can be determined from the adler32 value returned by that call of inflate. | ||||||
|    inflate. The compressor and decompressor must use exactly the same |    The compressor and decompressor must use exactly the same dictionary (see | ||||||
|    dictionary (see deflateSetDictionary). |    deflateSetDictionary).  For raw inflate, this function can be called | ||||||
|  |    immediately after inflateInit2() or inflateReset() and before any call of | ||||||
|  |    inflate() to set the dictionary.  The application must insure that the | ||||||
|  |    dictionary that was used for compression is provided. | ||||||
|  |  | ||||||
|      inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a |      inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a | ||||||
|    parameter is invalid (such as NULL dictionary) or the stream state is |    parameter is invalid (such as NULL dictionary) or the stream state is | ||||||
| @@ -719,8 +774,48 @@ ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); | |||||||
|    stream state was inconsistent (such as zalloc or state being NULL). |    stream state was inconsistent (such as zalloc or state being NULL). | ||||||
| */ | */ | ||||||
|  |  | ||||||
|  | ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, | ||||||
|  |                                          gz_headerp head)); | ||||||
| /* | /* | ||||||
| ZEXTERN int ZEXPORT inflateBackInit OF((z_stream FAR *strm, int windowBits, |       inflateGetHeader() requests that gzip header information be stored in the | ||||||
|  |    provided gz_header structure.  inflateGetHeader() may be called after | ||||||
|  |    inflateInit2() or inflateReset(), and before the first call of inflate(). | ||||||
|  |    As inflate() processes the gzip stream, head->done is zero until the header | ||||||
|  |    is completed, at which time head->done is set to one.  If a zlib stream is | ||||||
|  |    being decoded, then head->done is set to -1 to indicate that there will be | ||||||
|  |    no gzip header information forthcoming.  Note that Z_BLOCK can be used to | ||||||
|  |    force inflate() to return immediately after header processing is complete | ||||||
|  |    and before any actual data is decompressed. | ||||||
|  |  | ||||||
|  |       The text, time, xflags, and os fields are filled in with the gzip header | ||||||
|  |    contents.  hcrc is set to true if there is a header CRC.  (The header CRC | ||||||
|  |    was valid if done is set to one.)  If extra is not Z_NULL, then extra_max | ||||||
|  |    contains the maximum number of bytes to write to extra.  Once done is true, | ||||||
|  |    extra_len contains the actual extra field length, and extra contains the | ||||||
|  |    extra field, or that field truncated if extra_max is less than extra_len. | ||||||
|  |    If name is not Z_NULL, then up to name_max characters are written there, | ||||||
|  |    terminated with a zero unless the length is greater than name_max.  If | ||||||
|  |    comment is not Z_NULL, then up to comm_max characters are written there, | ||||||
|  |    terminated with a zero unless the length is greater than comm_max.  When | ||||||
|  |    any of extra, name, or comment are not Z_NULL and the respective field is | ||||||
|  |    not present in the header, then that field is set to Z_NULL to signal its | ||||||
|  |    absence.  This allows the use of deflateSetHeader() with the returned | ||||||
|  |    structure to duplicate the header.  However if those fields are set to | ||||||
|  |    allocated memory, then the application will need to save those pointers | ||||||
|  |    elsewhere so that they can be eventually freed. | ||||||
|  |  | ||||||
|  |       If inflateGetHeader is not used, then the header information is simply | ||||||
|  |    discarded.  The header is always checked for validity, including the header | ||||||
|  |    CRC if present.  inflateReset() will reset the process to discard the header | ||||||
|  |    information.  The application would need to call inflateGetHeader() again to | ||||||
|  |    retrieve the header from the next gzip stream. | ||||||
|  |  | ||||||
|  |       inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source | ||||||
|  |    stream state was inconsistent. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, | ||||||
|                                         unsigned char FAR *window)); |                                         unsigned char FAR *window)); | ||||||
|  |  | ||||||
|      Initialize the internal stream state for decompression using inflateBack() |      Initialize the internal stream state for decompression using inflateBack() | ||||||
| @@ -744,7 +839,7 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_stream FAR *strm, int windowBits, | |||||||
| typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); | typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); | ||||||
| typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); | typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); | ||||||
|  |  | ||||||
| ZEXTERN int ZEXPORT inflateBack OF((z_stream FAR *strm, | ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, | ||||||
|                                     in_func in, void FAR *in_desc, |                                     in_func in, void FAR *in_desc, | ||||||
|                                     out_func out, void FAR *out_desc)); |                                     out_func out, void FAR *out_desc)); | ||||||
| /* | /* | ||||||
| @@ -813,7 +908,7 @@ ZEXTERN int ZEXPORT inflateBack OF((z_stream FAR *strm, | |||||||
|    that inflateBack() cannot return Z_OK. |    that inflateBack() cannot return Z_OK. | ||||||
| */ | */ | ||||||
|  |  | ||||||
| ZEXTERN int ZEXPORT inflateBackEnd OF((z_stream FAR *strm)); | ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); | ||||||
| /* | /* | ||||||
|      All memory allocated by inflateBackInit() is freed. |      All memory allocated by inflateBackInit() is freed. | ||||||
|  |  | ||||||
| @@ -1119,7 +1214,6 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); | |||||||
| */ | */ | ||||||
|  |  | ||||||
| ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); | ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|      Update a running Adler-32 checksum with the bytes buf[0..len-1] and |      Update a running Adler-32 checksum with the bytes buf[0..len-1] and | ||||||
|    return the updated checksum. If buf is NULL, this function returns |    return the updated checksum. If buf is NULL, this function returns | ||||||
| @@ -1135,12 +1229,21 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); | |||||||
|      if (adler != original_adler) error(); |      if (adler != original_adler) error(); | ||||||
| */ | */ | ||||||
|  |  | ||||||
|  | ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, | ||||||
|  |                                           uLong len2)); | ||||||
|  | /* | ||||||
|  |      Combine two Adler-32 checksums into one.  For two sequences of bytes, seq1 | ||||||
|  |    and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for | ||||||
|  |    each, adler1 and adler2.  adler32_combine() returns the Adler-32 checksum of | ||||||
|  |    seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. | ||||||
|  | */ | ||||||
|  |  | ||||||
| ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len)); | ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len)); | ||||||
| /* | /* | ||||||
|      Update a running crc with the bytes buf[0..len-1] and return the updated |      Update a running CRC-32 with the bytes buf[0..len-1] and return the | ||||||
|    crc. If buf is NULL, this function returns the required initial value |    updated CRC-32. If buf is NULL, this function returns the required initial | ||||||
|    for the crc. Pre- and post-conditioning (one's complement) is performed |    value for the for the crc. Pre- and post-conditioning (one's complement) is | ||||||
|    within this function so it shouldn't be done by the application. |    performed within this function so it shouldn't be done by the application. | ||||||
|    Usage example: |    Usage example: | ||||||
|  |  | ||||||
|      uLong crc = crc32(0L, Z_NULL, 0); |      uLong crc = crc32(0L, Z_NULL, 0); | ||||||
| @@ -1151,6 +1254,16 @@ ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len)); | |||||||
|      if (crc != original_crc) error(); |      if (crc != original_crc) error(); | ||||||
| */ | */ | ||||||
|  |  | ||||||
|  | ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, uLong len2)); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |      Combine two CRC-32 check values into one.  For two sequences of bytes, | ||||||
|  |    seq1 and seq2 with lengths len1 and len2, CRC-32 check values were | ||||||
|  |    calculated for each, crc1 and crc2.  crc32_combine() returns the CRC-32 | ||||||
|  |    check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and | ||||||
|  |    len2. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  |  | ||||||
|                         /* various hacks, don't look :) */ |                         /* various hacks, don't look :) */ | ||||||
|  |  | ||||||
| @@ -1167,7 +1280,7 @@ ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method, | |||||||
|                                       int stream_size)); |                                       int stream_size)); | ||||||
| ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits, | ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits, | ||||||
|                                       const char *version, int stream_size)); |                                       const char *version, int stream_size)); | ||||||
| ZEXTERN int ZEXPORT inflateBackInit_ OF((z_stream FAR *strm, int windowBits, | ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, | ||||||
|                                          unsigned char FAR *window, |                                          unsigned char FAR *window, | ||||||
|                                          const char *version, |                                          const char *version, | ||||||
|                                          int stream_size)); |                                          int stream_size)); | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								zutil.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								zutil.c
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* zutil.c -- target dependent utility functions for the compression library | /* zutil.c -- target dependent utility functions for the compression library | ||||||
|  * Copyright (C) 1995-2003 Jean-loup Gailly. |  * Copyright (C) 1995-2004 Jean-loup Gailly. | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| @@ -11,10 +11,6 @@ | |||||||
| struct internal_state      {int dummy;}; /* for buggy compilers */ | struct internal_state      {int dummy;}; /* for buggy compilers */ | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifndef STDC |  | ||||||
| extern void exit OF((int)); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| const char * const z_errmsg[10] = { | const char * const z_errmsg[10] = { | ||||||
| "need dictionary",     /* Z_NEED_DICT       2  */ | "need dictionary",     /* Z_NEED_DICT       2  */ | ||||||
| "stream end",          /* Z_STREAM_END      1  */ | "stream end",          /* Z_STREAM_END      1  */ | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								zutil.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								zutil.h
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /* zutil.h -- internal interface and configuration of the compression library | /* zutil.h -- internal interface and configuration of the compression library | ||||||
|  * Copyright (C) 1995-2003 Jean-loup Gailly. |  * Copyright (C) 1995-2004 Jean-loup Gailly. | ||||||
|  * For conditions of distribution and use, see copyright notice in zlib.h |  * For conditions of distribution and use, see copyright notice in zlib.h | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user