From bdd209fb677b5d8acbf1e709570ae1e750ce47ef Mon Sep 17 00:00:00 2001 From: dhewg Date: Wed, 4 Jul 2012 17:28:19 +0200 Subject: [PATCH] Add zlib-1.2.7 for i686-w64-mingw32 PREFIX=i686-w64-mingw32- \ DESTDIR=$HOME/devel/games/dhewm3-libs/i686-w64-mingw32 \ SHARED_MODE=1 make -f win32/Makefile.gcc --- i686-w64-mingw32/bin/zlib1.dll | Bin 0 -> 90624 bytes i686-w64-mingw32/include/zconf.h | 506 +++++++++ i686-w64-mingw32/include/zlib.h | 1744 ++++++++++++++++++++++++++++++ i686-w64-mingw32/lib/libz.a | Bin 0 -> 94318 bytes i686-w64-mingw32/lib/libz.dll.a | Bin 0 -> 46912 bytes 5 files changed, 2250 insertions(+) create mode 100755 i686-w64-mingw32/bin/zlib1.dll create mode 100644 i686-w64-mingw32/include/zconf.h create mode 100644 i686-w64-mingw32/include/zlib.h create mode 100644 i686-w64-mingw32/lib/libz.a create mode 100644 i686-w64-mingw32/lib/libz.dll.a diff --git a/i686-w64-mingw32/bin/zlib1.dll b/i686-w64-mingw32/bin/zlib1.dll new file mode 100755 index 0000000000000000000000000000000000000000..162d5c17bd0797689e8f12c86d07420cebd27e7f GIT binary patch literal 90624 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 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +#if defined(ZLIB_CONST) && !defined(z_const) +# define z_const const +#else +# define z_const +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +#ifndef Z_ARG /* function prototypes for stdarg */ +# if defined(STDC) || defined(Z_HAVE_STDARG_H) +# define Z_ARG(args) args +# else +# define Z_ARG(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +/* ./configure may #define Z_U4 here */ + +#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) +# include +# if (UINT_MAX == 0xffffffffUL) +# define Z_U4 unsigned +# else +# if (ULONG_MAX == 0xffffffffUL) +# define Z_U4 unsigned long +# else +# if (USHRT_MAX == 0xffffffffUL) +# define Z_U4 unsigned short +# endif +# endif +# endif +#endif + +#ifdef Z_U4 + typedef Z_U4 z_crc_t; +#else + typedef unsigned long z_crc_t; +#endif + +#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ +# define Z_HAVE_UNISTD_H +#endif + +#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ +# define Z_HAVE_STDARG_H +#endif + +#ifdef STDC +# ifndef Z_SOLO +# include /* for off_t */ +# endif +#endif + +#ifdef _WIN32 +# include /* for wchar_t */ +#endif + +/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and + * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even + * though the former does not conform to the LFS document), but considering + * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as + * equivalently requesting no 64-bit operations + */ +#if defined(LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 +# undef _LARGEFILE64_SOURCE +#endif + +#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H) +# define Z_HAVE_UNISTD_H +#endif +#ifndef Z_SOLO +# if defined(Z_HAVE_UNISTD_H) || defined(LARGEFILE64_SOURCE) +# include /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ +# ifdef VMS +# include /* for off_t */ +# endif +# ifndef z_off_t +# define z_off_t off_t +# endif +# endif +#endif + +#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 +# define Z_LFS64 +#endif + +#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) +# define Z_LARGE64 +#endif + +#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) +# define Z_WANT64 +#endif + +#if !defined(SEEK_SET) && !defined(Z_SOLO) +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif + +#ifndef z_off_t +# define z_off_t long +#endif + +#if !defined(_WIN32) && defined(Z_LARGE64) +# define z_off64_t off64_t +#else +# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) +# define z_off64_t __int64 +# else +# define z_off64_t z_off_t +# endif +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) + #pragma map(deflateInit_,"DEIN") + #pragma map(deflateInit2_,"DEIN2") + #pragma map(deflateEnd,"DEEND") + #pragma map(deflateBound,"DEBND") + #pragma map(inflateInit_,"ININ") + #pragma map(inflateInit2_,"ININ2") + #pragma map(inflateEnd,"INEND") + #pragma map(inflateSync,"INSY") + #pragma map(inflateSetDictionary,"INSEDI") + #pragma map(compressBound,"CMBND") + #pragma map(inflate_table,"INTABL") + #pragma map(inflate_fast,"INFA") + #pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/i686-w64-mingw32/include/zlib.h b/i686-w64-mingw32/include/zlib.h new file mode 100644 index 0000000..3edf3ac --- /dev/null +++ b/i686-w64-mingw32/include/zlib.h @@ -0,0 +1,1744 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.7, May 2nd, 2012 + + Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 + (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.7" +#define ZLIB_VERNUM 0x1270 +#define ZLIB_VER_MAJOR 1 +#define ZLIB_VER_MINOR 2 +#define ZLIB_VER_REVISION 7 +#define ZLIB_VER_SUBREVISION 0 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed data. + This version of the library supports only one compression method (deflation) + but other algorithms will be added later and will have the same stream + interface. + + Compression can be done in a single step if the buffers are large enough, + or can be done by repeated calls of the compression function. In the latter + case, the application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never crash + even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + z_const Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total number of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total number of bytes output so far */ + + z_const char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +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 dropped + to zero. It must update next_out and avail_out when avail_out has dropped + to zero. The application must initialize zalloc, zfree and opaque before + calling the init function. All other fields are set by the compression + library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this if + the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers + returned by zalloc for objects of exactly 65536 bytes *must* have their + offset normalized to zero. The default allocation function provided by this + library ensures this (see zutil.c). To reduce memory requirements and avoid + any allocation of 64K objects, at the expense of compression ratio, compile + the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or progress + reports. After compression, total_in holds the total size of the + uncompressed data and may be saved for use in the decompressor (particularly + if the decompressor wants to decompress everything in a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +#define Z_TREES 6 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is not + compatible with the zlib.h header file used by the application. This check + is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. If + zalloc and zfree are set to Z_NULL, deflateInit updates them to use default + allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at all + (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION + requests a default compromise between speed and compression (currently + equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if level is not a valid compression level, or + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). msg is set to null + if there is no error message. deflateInit does not perform any compression: + this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). Some + output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating avail_in or avail_out accordingly; avail_out should + never be zero before the call. The application can consume the compressed + output when it wants, for example when the output buffer is full (avail_out + == 0), or after each call of deflate(). If deflate returns Z_OK and with + zero avail_out, it must be called again after making room in the 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 accumulate before producing output, in order to + maximize compression. + + 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 + that the decompressor can get all input data available so far. (In + particular avail_in is zero after the call if enough output space has been + provided before the call.) Flushing may degrade compression for some + compression algorithms and so it should be used only when necessary. This + completes the current deflate block and follows it with an empty stored block + that is three bits plus filler bits to the next byte, followed by four bytes + (00 00 ff ff). + + If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the + output buffer, but the output is not aligned to a byte boundary. All of the + input data so far will be available to the decompressor, as for Z_SYNC_FLUSH. + This completes the current deflate block and follows it with an empty fixed + codes block that is 10 bits long. This assures that enough bytes are output + in order for the decompressor to finish the block before the empty fixed code + block. + + If flush is set to Z_BLOCK, a deflate block is completed and emitted, as + for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to + seven bits of the current block are held to be written as the next byte after + the next deflate block is completed. In this case, the decompressor may not + be provided enough bits at this point in order to complete decompression of + the data provided so far to the compressor. It may need to wait for the next + block to be emitted. This is for advanced applications that need to control + the emission of deflate blocks. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + 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 + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + 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 + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there was + enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the stream + are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least the + value returned by deflateBound (see below). Then deflate is guaranteed to + return Z_STREAM_END. If not enough output space is provided, deflate will + not return Z_STREAM_END, and it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + 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 the + compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was Z_NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, msg + may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the + exact value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit() does not process any header information -- that is deferred + until inflate() is called. +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing will + resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there is + no more input data or no more space in the output buffer (see below about + the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming more + output, and updating the next_* and avail_* values accordingly. The + application can consume the uncompressed output when it wants, for example + when the output buffer is full (avail_out == 0), or after each call of + inflate(). If inflate returns Z_OK and with zero avail_out, it must be + called again after making room in the output buffer because there might be + more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH, + Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() + stop if and when it gets to the next deflate block boundary. When decoding + the zlib or gzip format, this will cause inflate() to return immediately + after the header and before the first block. When doing a raw inflate, + inflate() will go ahead and process the first block, and will return when it + gets to the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 if + inflate() is currently decoding the last block in the deflate stream, plus + 128 if inflate() returned immediately after decoding an end-of-block code or + decoding the complete header up to just before the first byte of the deflate + stream. The end-of-block will not be indicated until all of the uncompressed + data from that block has been written to strm->next_out. The number of + unused bits may in general be greater than seven, except when bit 7 of + data_type is set, in which case the number of unused bits will be less than + eight. data_type is set as noted here every time inflate() returns for all + flush options, and so can be used to determine the amount of currently + consumed input in bits. + + The Z_TREES option behaves as Z_BLOCK does, but it also returns when the + end of each deflate block header is reached, before any actual data in that + block is decoded. This allows the caller to determine the length of the + deflate block header for later use in random access within a deflate block. + 256 is added to the value of strm->data_type when inflate() returns + immediately after reaching the end of the deflate block header. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step (a + single call of inflate), the parameter flush should be set to Z_FINISH. In + this case all pending input is processed and all pending output is flushed; + avail_out must be large enough to hold all of the uncompressed data for the + operation to complete. (The size of the uncompressed data may have been + saved by the compressor for this purpose.) The use of Z_FINISH is not + required to perform an inflation in one step. However it may be used to + inform inflate that a faster approach can be used for the single inflate() + call. Z_FINISH also informs inflate to not maintain a sliding window if the + stream completes, which reduces inflate's memory footprint. If the stream + does not complete, either because not all of the stream is provided or not + enough output space is provided, then a sliding window will be allocated and + inflate() can be called again to continue the operation as if Z_NO_FLUSH had + been used. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the effects of the flush parameter in this implementation are + on the return value of inflate() as noted below, when inflate() returns early + when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of + memory for a sliding window when Z_FINISH is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the Adler-32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the Adler-32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() can decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically, if requested when + initializing with inflateInit2(). Any information contained in the gzip + header is not retained, so applications that need that information should + instead use raw inflate, see inflateInit2() below, or inflateBack() and + perform their own processing of the gzip header and trailer. When processing + gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output + producted so far. The CRC-32 is checked against the gzip trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may + then call inflateSync() to look for a good compression block if a partial + recovery of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any pending + output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by the + caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), no + header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but is + slow and reduces compression ratio; memLevel=9 uses maximum memory for + optimal speed. The default value is 8. See zconf.h for total memory usage + as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as + fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The + strategy parameter only affects the compression ratio but not the + correctness of the compressed output even if it is not set appropriately. + Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler + decoder for special applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid + method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is + incompatible with the version assumed by the caller (ZLIB_VERSION). msg is + set to null if there is no error message. deflateInit2 does not perform any + compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. When using the zlib format, this + function must be called immediately after deflateInit, deflateInit2 or + deflateReset, and before any call of deflate. When doing raw deflate, this + function must be called either before any call of deflate, or immediately + after the completion of a deflate block, i.e. after all input has been + consumed and all output has been delivered when using any of the flush + options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The + compressor and decompressor must use exactly the same dictionary (see + inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size + provided in deflateInit or deflateInit2. Thus the strings most likely to be + useful should be put at the end of the dictionary, not at the front. In + addition, the current implementation of deflate will use at most the window + size minus 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if not at a block boundary for raw deflate). deflateSetDictionary does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and can + consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. The + stream will keep the same compression level and any other attributes that + may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different strategy. + If the compression level is changed, the input available so far is + compressed with the old level (and may be flushed); the new level will take + effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to be + compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if + strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() or + deflateInit2(), and after deflateSetHeader(), if used. This would be used + to allocate an output buffer for deflation in a single pass, and so would be + called before deflate(). If that first deflate() call is provided the + sourceLen input bytes, an output buffer allocated to the size returned by + deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed + to return Z_STREAM_END. Note that it is possible for the compressed size to + be larger than the value returned by deflateBound() if flush options other + than Z_FINISH or Z_NO_FLUSH are used. +*/ + +ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, + unsigned *pending, + int *bits)); +/* + deflatePending() returns the number of bytes and bits of output that have + been generated, but not yet provided in the available output. The bytes not + provided would be due to the available output space having being consumed. + The number of bits of output not provided are between 0 and 7, where they + await more bits to join them in order to fill out a full byte. If pending + or bits are Z_NULL, then those values are not set. + + deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. + */ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the bits + leftover from a previous deflate stream when appending to it. As such, this + function can only be used for raw deflate, and must be used before the first + deflate() call after a deflateInit2() or deflateReset(). bits must be less + than or equal to 16, and that many of the least significant bits of value + will be inserted in the output. + + deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough + room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the + source 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, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be zero to request that inflate use the window size in + the zlib header of the compressed stream. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a + crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller, or Z_STREAM_ERROR if the parameters are + invalid, such as a null pointer to the structure. msg is set to null if + there is no error message. inflateInit2 does not perform any decompression + apart from possibly reading the zlib header if present: actual decompression + will be done by inflate(). (So next_in and avail_in may be modified, but + next_out and avail_out are unused and unchanged.) The current implementation + of inflateInit2() does not process any header information -- that is + deferred until inflate() is called. +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called at any + time to set the dictionary. If the provided dictionary is smaller than the + window and there is already data in the window, then the provided dictionary + will amend what's there. 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 + parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a possible full flush point (see above + for the description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync searches for a 00 00 FF FF pattern in the compressed data. + All full flush points have this pattern, but not all occurences of this + pattern are full flush points. + + inflateSync returns Z_OK if a possible full flush point has been found, + Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point + has been found, or Z_STREAM_ERROR if the stream structure was inconsistent. + In the success case, the application may save the current current value of + total_in which indicates where valid compressed data was found. In the + error case, the application may repeatedly call inflateSync, providing more + input each time, until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being Z_NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. The + stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL). +*/ + +ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, + int windowBits)); +/* + This function is the same as inflateReset, but it also permits changing + the wrap and window size requests. The windowBits parameter is interpreted + the same as it is for inflateInit2. + + inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being Z_NULL), or if + the windowBits parameter is invalid. +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + If bits is negative, then the input stream bit buffer is emptied. Then + inflatePrime() can be called again to put bits in the buffer. This is used + to clear out bits leftover after feeding inflate a block description prior + to feeding inflate codes. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +/* + This function returns two values, one in the lower 16 bits of the return + value, and the other in the remaining upper bits, obtained by shifting the + return value down 16 bits. If the upper value is -1 and the lower value is + zero, then inflate() is currently decoding information outside of a block. + If the upper value is -1 and the lower value is non-zero, then inflate is in + the middle of a stored block, with the lower value equaling the number of + bytes from the input remaining to copy. If the upper value is not -1, then + it is the number of bits back from the current bit position in the input of + the code (literal or length/distance pair) currently being processed. In + that case the lower value is the number of bytes already emitted for that + code. + + A code is being processed if inflate is waiting for more input to complete + decoding of the code, or if it has completed decoding but is waiting for + more output space to write the literal or match data. + + inflateMark() is used to mark locations in the input data for random + access, which may be at bit positions, and to note those cases where the + output of a code may span boundaries of random access blocks. The current + location in the input stream can be determined from avail_in and data_type + as noted in the description for the Z_BLOCK flush parameter for inflate. + + inflateMark returns the value noted above or -1 << 16 if the provided + source stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + 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 or Z_TREES 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)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the parameters are invalid, Z_MEM_ERROR if the internal state could not be + allocated, or Z_VERSION_ERROR if the version of the library does not match + the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free the + allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects only + the raw deflate stream to decompress. This is different from the normal + behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format error + in the deflate stream (in which case strm->msg is set to indicate the nature + of the error), or Z_STREAM_ERROR if the stream was not properly initialized. + In the case of Z_BUF_ERROR, an input or output error can be distinguished + using strm->next_in which will be Z_NULL only if in() returned an error. If + strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning + non-zero. (in() will always be called before out(), so strm->next_in is + assured to be defined if out() returns non-zero.) Note that inflateBack() + cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + +#ifndef Z_SOLO + + /* utility functions */ + +/* + The following utility functions are implemented on top of the basic + stream-oriented functions. To simplify the interface, some default options + are assumed (compression level and memory usage, standard memory allocation + functions). The source code of these utility functions can be modified if + you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before a + compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total size + of the destination buffer, which must be large enough to hold the entire + uncompressed data. (The size of the uncompressed data must have been saved + previously by the compressor and transmitted to the decompressor by some + mechanism outside the scope of this compression library.) Upon exit, destLen + is the actual size of the uncompressed buffer. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In + the case where there is not enough room, uncompress() will fill the output + buffer with the uncompressed data up to that point. +*/ + + /* gzip file access functions */ + +/* + This library supports reading and writing files in gzip (.gz) format with + an interface similar to that of stdio, using the functions that start with + "gz". The gzip format is different from the zlib format. gzip is a gzip + wrapper, documented in RFC 1952, wrapped around a deflate stream. +*/ + +typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ + +/* +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); + + Opens a gzip (.gz) file for reading or writing. The mode parameter is as + in fopen ("rb" or "wb") but can also include a compression level ("wb9") or + a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only + compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' + for fixed code compression as in "wb9F". (See the description of + deflateInit2 for more information about the strategy parameter.) 'T' will + request transparent writing or appending with no compression and not using + the gzip format. + + "a" can be used instead of "w" to request that the gzip stream that will + be written be appended to the file. "+" will result in an error, since + reading and writing to the same gzip file is not supported. The addition of + "x" when writing will create the file exclusively, which fails if the file + already exists. On systems that support it, the addition of "e" when + reading or writing will set the flag to close the file on an execve() call. + + These functions, as well as gzip, will read and decode a sequence of gzip + streams in a file. The append function of gzopen() can be used to create + such a file. (Also see gzflush() for another way to do this.) When + appending, gzopen does not test whether the file begins with a gzip stream, + nor does it look for the end of the gzip streams to begin appending. gzopen + will simply append a gzip stream to the existing file. + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. When + reading, this will be detected automatically by looking for the magic two- + byte gzip header. + + gzopen returns NULL if the file could not be opened, if there was + insufficient memory to allocate the gzFile state, or if an invalid mode was + specified (an 'r', 'w', or 'a' was not provided, or '+' was provided). + errno can be checked to determine if the reason gzopen failed was that the + file could not be opened. +*/ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen associates a gzFile with the file descriptor fd. File descriptors + are obtained from calls like open, dup, creat, pipe or fileno (if the file + has been previously opened with fopen). The mode parameter is as in gzopen. + + The next call of gzclose on the returned gzFile will also close the file + descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor + fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd, + mode);. The duplicated descriptor should be saved to avoid a leak, since + gzdopen does not close fd if it fails. If you are using fileno() to get the + file descriptor from a FILE *, then you will have to use dup() to avoid + double-close()ing the file descriptor. Both gzclose() and fclose() will + close the associated file descriptor, so they need to have different file + descriptors. + + gzdopen returns NULL if there was insufficient memory to allocate the + gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not + provided, or '+' was provided), or if fd is -1. The file descriptor is not + used until the next gz* read, write, seek, or close operation, so gzdopen + will not detect if fd is invalid (unless fd is -1). +*/ + +ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +/* + Set the internal buffer size used by this library's functions. The + default buffer size is 8192 bytes. This function must be called after + gzopen() or gzdopen(), and before any other calls that read or write the + file. The buffer memory allocation is always deferred to the first read or + write. Two buffers are allocated, either both of the specified size when + writing, or one of the specified size and the other twice that size when + reading. A larger buffer size of, for example, 64K or 128K bytes will + noticeably increase the speed of decompression (reading). + + The new buffer size also affects the maximum length for gzprintf(). + + gzbuffer() returns 0 on success, or -1 on failure, such as being called + too late. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. If + the input file is not in gzip format, gzread copies the given number of + bytes into the buffer directly from the file. + + After reaching the end of a gzip stream in the input, gzread will continue + to read, looking for another gzip stream. Any number of gzip streams may be + concatenated in the input file, and will all be decompressed by gzread(). + If something other than a gzip stream is encountered after a gzip stream, + that remaining trailing garbage is ignored (and no error is returned). + + gzread can be used to read a gzip file that is being concurrently written. + Upon reaching the end of the input, gzread will return with the available + data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then + gzclearerr can be used to clear the end of file indicator in order to permit + gzread to be tried again. Z_OK indicates that a gzip stream was completed + on the last gzread. Z_BUF_ERROR indicates that the input file ended in the + middle of a gzip stream. Note that gzread does not return -1 in the event + of an incomplete gzip stream. This error is deferred until gzclose(), which + will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip + stream. Alternatively, gzerror can be used before gzclose to detect this + case. + + gzread returns the number of uncompressed bytes actually read, less than + len for end of file, or -1 for error. +*/ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes written or 0 in case of + error. +*/ + +ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the arguments to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written, or 0 in case of error. The number of + uncompressed bytes written is limited to 8191, or one less than the buffer + size given to gzbuffer(). The caller should assure that this limit is not + exceeded. If it is exceeded, then gzprintf() will return an error (0) with + nothing written. In this case, there may also be a buffer overflow with + unpredictable consequences, which is possible only if zlib was compiled with + the insecure functions sprintf() or vsprintf() because the secure snprintf() + or vsnprintf() functions were not available. This can be determined using + zlibCompileFlags(). +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or a + newline character is read and transferred to buf, or an end-of-file + condition is encountered. If any characters are read or if len == 1, the + string is terminated with a null character. If no characters are read due + to an end-of-file or len < 1, then the buffer is left untouched. + + gzgets returns buf which is a null-terminated string, or it returns NULL + for end-of-file or in case of error. If there was an error, the contents at + buf are indeterminate. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. gzputc + returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte or -1 + in case of end of file or error. This is implemented as a macro for speed. + As such, it does not do all of the checking the other functions do. I.e. + it does not check to see if file is NULL, nor whether the structure file + points to has been clobbered or not. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read as the first character + on the next read. At least one character of push-back is allowed. + gzungetc() returns the character pushed, or -1 on failure. gzungetc() will + fail if c is -1, and may fail if a character has been pushed but not read + yet. If gzungetc is used immediately after gzopen or gzdopen, at least the + output buffer size of pushed characters is allowed. (See gzbuffer above.) + The pushed character will be discarded if the stream is repositioned with + gzseek() or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter flush + is as in the deflate() function. The return value is the zlib error number + (see function gzerror below). gzflush is only permitted when writing. + + If the flush parameter is Z_FINISH, the remaining data is written and the + gzip stream is completed in the output. If gzwrite() is called again, a new + gzip stream will be started in the output. gzread() is able to read such + concatented gzip streams. + + gzflush should be called only when strictly necessary because it will + degrade compression if called too often. +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); + + Sets the starting position for the next gzread or gzwrite on the given + compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); + + Returns the starting position for the next gzread or gzwrite on the given + compressed file. This position represents a number of bytes in the + uncompressed data stream, and is zero when starting, even if appending or + reading a gzip stream from the middle of a file using gzdopen(). + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +/* +ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); + + Returns the current offset in the file being read or written. This offset + includes the count of bytes that precede the gzip stream, for example when + appending or when using gzdopen() for reading. When reading, the offset + does not include as yet unused buffered input. This information can be used + for a progress indicator. On error, gzoffset() returns -1. +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns true (1) if the end-of-file indicator has been set while reading, + false (0) otherwise. Note that the end-of-file indicator is set only if the + read tried to go past the end of the input, but came up short. Therefore, + just like feof(), gzeof() may return false even if there is no more data to + read, in the event that the last read request was for the exact number of + bytes remaining in the input file. This will happen if the input file size + is an exact multiple of the buffer size. + + If gzeof() returns true, then the read functions will return no more data, + unless the end-of-file indicator is reset by gzclearerr() and the input file + has grown since the previous end of file was detected. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns true (1) if file is being copied directly while reading, or false + (0) if file is a gzip stream being decompressed. + + If the input file is empty, gzdirect() will return true, since the input + does not contain a gzip stream. + + If gzdirect() is used immediately after gzopen() or gzdopen() it will + cause buffers to be allocated to allow reading the file to determine if it + is a gzip file. Therefore if gzbuffer() is used, it should be called before + gzdirect(). + + When writing, gzdirect() returns true (1) if transparent writing was + requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note: + gzdirect() is not needed when writing. Transparent writing must be + explicitly requested, so the application already knows the answer. When + linking statically, using gzdirect() will include all of the zlib code for + gzip file reading and decompression, which may not be desired.) +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file and + deallocates the (de)compression state. Note that once file is closed, you + cannot call gzerror with file, since its structures have been deallocated. + gzclose must not be called more than once on the same file, just as free + must not be called more than once on the same allocation. + + gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a + file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the + last read ended in the middle of a gzip stream, or Z_OK on success. +*/ + +ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +/* + Same as gzclose(), but gzclose_r() is only for use when reading, and + gzclose_w() is only for use when writing or appending. The advantage to + using these instead of gzclose() is that they avoid linking in zlib + compression or decompression code that is not used when only reading or only + writing respectively. If gzclose() is used, then both compression and + decompression code will be included the application when linking to a static + zlib library. +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the given + compressed file. errnum is set to zlib error number. If an error occurred + in the file system and not in the compression library, errnum is set to + Z_ERRNO and the application may consult errno to get the exact error code. + + The application must not modify the returned string. Future calls to + this function may invalidate the previously returned string. If file is + closed, then the string previously returned by gzerror will no longer be + available. + + gzerror() should be used to distinguish errors from end-of-file for those + functions above that do not distinguish those cases in their return values. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + +#endif /* !Z_SOLO */ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the compression + library. +*/ + +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 + return the updated checksum. If buf is Z_NULL, this function returns the + required initial value for the checksum. + + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. + + Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t 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. Note + that the z_off_t type (like off_t) is a signed integer. If len2 is + negative, the result has no meaning or utility. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is Z_NULL, this function returns the required + initial value for the crc. Pre- and post-conditioning (one's complement) is + performed within this function so it shouldn't be done by the application. + + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +/* +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t 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 :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ + (int)sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, (int)sizeof(z_stream)) + +#ifndef Z_SOLO + +/* gzgetc() macro and its supporting function and exposed data structure. Note + * that the real internal state is much larger than the exposed structure. + * This abbreviated structure exposes just enough for the gzgetc() macro. The + * user should not mess with these exposed elements, since their names or + * behavior could change in the future, perhaps even capriciously. They can + * only be used by the gzgetc() macro. You have been warned. + */ +struct gzFile_s { + unsigned have; + unsigned char *next; + z_off64_t pos; +}; +ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ +#ifdef Z_PREFIX_SET +# undef z_gzgetc +# define z_gzgetc(g) \ + ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) +#else +# define gzgetc(g) \ + ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : gzgetc(g)) +#endif + +/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or + * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if + * both are true, the application gets the *64 functions, and the regular + * functions are changed to 64 bits) -- in case these are set on systems + * without large file support, _LFS64_LARGEFILE must also be true + */ +#ifdef Z_LARGE64 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); + ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); +#endif + +#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) +# ifdef Z_PREFIX_SET +# define z_gzopen z_gzopen64 +# define z_gzseek z_gzseek64 +# define z_gztell z_gztell64 +# define z_gzoffset z_gzoffset64 +# define z_adler32_combine z_adler32_combine64 +# define z_crc32_combine z_crc32_combine64 +# else +# define gzopen gzopen64 +# define gzseek gzseek64 +# define gztell gztell64 +# define gzoffset gzoffset64 +# define adler32_combine adler32_combine64 +# define crc32_combine crc32_combine64 +# endif +# ifndef Z_LARGE64 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); +# endif +#else + ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +#endif + +#else /* Z_SOLO */ + + ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + +#endif /* !Z_SOLO */ + +/* hack for buggy compilers */ +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; +#endif + +/* undocumented functions */ +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); +ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); +ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); +ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); +ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); +#if defined(_WIN32) && !defined(Z_SOLO) +ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, + const char *mode)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/i686-w64-mingw32/lib/libz.a b/i686-w64-mingw32/lib/libz.a new file mode 100644 index 0000000000000000000000000000000000000000..08cd197d38c39a4fd09d79324592025de75b684e GIT binary patch literal 94318 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 literal 0 HcmV?d00001