From 9d139bb5420bd90902bce09fdc0661040e3bf7cb Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 20 Mar 2021 15:26:53 +0200 Subject: [PATCH] delete zlib files --- deps/zlib/include/zconf.h | 534 --------- deps/zlib/include/zlib.h | 1912 ------------------------------- deps/zlib/lib/libz.a | Bin 287592 -> 0 bytes deps/zlib/lib/pkgconfig/zlib.pc | 13 - 4 files changed, 2459 deletions(-) delete mode 100644 deps/zlib/include/zconf.h delete mode 100644 deps/zlib/include/zlib.h delete mode 100644 deps/zlib/lib/libz.a delete mode 100644 deps/zlib/lib/pkgconfig/zlib.pc diff --git a/deps/zlib/include/zconf.h b/deps/zlib/include/zconf.h deleted file mode 100644 index 77398c11..00000000 --- a/deps/zlib/include/zconf.h +++ /dev/null @@ -1,534 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef ZCONF_H -#define ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - * Even better than compiling with -DZ_PREFIX would be to use configure to set - * this permanently in zconf.h using "./configure --zprefix". - */ -#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ -# define Z_PREFIX_SET - -/* all linked symbols and init macros */ -# define _dist_code z__dist_code -# define _length_code z__length_code -# define _tr_align z__tr_align -# define _tr_flush_bits z__tr_flush_bits -# define _tr_flush_block z__tr_flush_block -# define _tr_init z__tr_init -# define _tr_stored_block z__tr_stored_block -# define _tr_tally z__tr_tally -# define adler32 z_adler32 -# define adler32_combine z_adler32_combine -# define adler32_combine64 z_adler32_combine64 -# define adler32_z z_adler32_z -# ifndef Z_SOLO -# define compress z_compress -# define compress2 z_compress2 -# define compressBound z_compressBound -# endif -# define crc32 z_crc32 -# define crc32_combine z_crc32_combine -# define crc32_combine64 z_crc32_combine64 -# define crc32_z z_crc32_z -# define deflate z_deflate -# define deflateBound z_deflateBound -# define deflateCopy z_deflateCopy -# define deflateEnd z_deflateEnd -# define deflateGetDictionary z_deflateGetDictionary -# define deflateInit z_deflateInit -# define deflateInit2 z_deflateInit2 -# define deflateInit2_ z_deflateInit2_ -# define deflateInit_ z_deflateInit_ -# define deflateParams z_deflateParams -# define deflatePending z_deflatePending -# define deflatePrime z_deflatePrime -# define deflateReset z_deflateReset -# define deflateResetKeep z_deflateResetKeep -# define deflateSetDictionary z_deflateSetDictionary -# define deflateSetHeader z_deflateSetHeader -# define deflateTune z_deflateTune -# define deflate_copyright z_deflate_copyright -# define get_crc_table z_get_crc_table -# ifndef Z_SOLO -# define gz_error z_gz_error -# define gz_intmax z_gz_intmax -# define gz_strwinerror z_gz_strwinerror -# define gzbuffer z_gzbuffer -# define gzclearerr z_gzclearerr -# define gzclose z_gzclose -# define gzclose_r z_gzclose_r -# define gzclose_w z_gzclose_w -# define gzdirect z_gzdirect -# define gzdopen z_gzdopen -# define gzeof z_gzeof -# define gzerror z_gzerror -# define gzflush z_gzflush -# define gzfread z_gzfread -# define gzfwrite z_gzfwrite -# define gzgetc z_gzgetc -# define gzgetc_ z_gzgetc_ -# define gzgets z_gzgets -# define gzoffset z_gzoffset -# define gzoffset64 z_gzoffset64 -# define gzopen z_gzopen -# define gzopen64 z_gzopen64 -# ifdef _WIN32 -# define gzopen_w z_gzopen_w -# endif -# define gzprintf z_gzprintf -# define gzputc z_gzputc -# define gzputs z_gzputs -# define gzread z_gzread -# define gzrewind z_gzrewind -# define gzseek z_gzseek -# define gzseek64 z_gzseek64 -# define gzsetparams z_gzsetparams -# define gztell z_gztell -# define gztell64 z_gztell64 -# define gzungetc z_gzungetc -# define gzvprintf z_gzvprintf -# define gzwrite z_gzwrite -# endif -# define inflate z_inflate -# define inflateBack z_inflateBack -# define inflateBackEnd z_inflateBackEnd -# define inflateBackInit z_inflateBackInit -# define inflateBackInit_ z_inflateBackInit_ -# define inflateCodesUsed z_inflateCodesUsed -# define inflateCopy z_inflateCopy -# define inflateEnd z_inflateEnd -# define inflateGetDictionary z_inflateGetDictionary -# define inflateGetHeader z_inflateGetHeader -# define inflateInit z_inflateInit -# define inflateInit2 z_inflateInit2 -# define inflateInit2_ z_inflateInit2_ -# define inflateInit_ z_inflateInit_ -# define inflateMark z_inflateMark -# define inflatePrime z_inflatePrime -# define inflateReset z_inflateReset -# define inflateReset2 z_inflateReset2 -# define inflateResetKeep z_inflateResetKeep -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateUndermine z_inflateUndermine -# define inflateValidate z_inflateValidate -# define inflate_copyright z_inflate_copyright -# define inflate_fast z_inflate_fast -# define inflate_table z_inflate_table -# ifndef Z_SOLO -# define uncompress z_uncompress -# define uncompress2 z_uncompress2 -# endif -# define zError z_zError -# ifndef Z_SOLO -# define zcalloc z_zcalloc -# define zcfree z_zcfree -# endif -# define zlibCompileFlags z_zlibCompileFlags -# define zlibVersion z_zlibVersion - -/* all zlib typedefs in zlib.h and zconf.h */ -# define Byte z_Byte -# define Bytef z_Bytef -# define alloc_func z_alloc_func -# define charf z_charf -# define free_func z_free_func -# ifndef Z_SOLO -# define gzFile z_gzFile -# endif -# define gz_header z_gz_header -# define gz_headerp z_gz_headerp -# define in_func z_in_func -# define intf z_intf -# define out_func z_out_func -# define uInt z_uInt -# define uIntf z_uIntf -# define uLong z_uLong -# define uLongf z_uLongf -# define voidp z_voidp -# define voidpc z_voidpc -# define voidpf z_voidpf - -/* all zlib structs in zlib.h and zconf.h */ -# define gz_header_s z_gz_header_s -# define internal_state z_internal_state - -#endif - -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif -#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) -# define OS2 -#endif -#if defined(_WINDOWS) && !defined(WINDOWS) -# define WINDOWS -#endif -#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) -# ifndef WIN32 -# define WIN32 -# endif -#endif -#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) -# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) -# ifndef SYS16BIT -# define SYS16BIT -# endif -# endif -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#ifdef SYS16BIT -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#ifdef __STDC_VERSION__ -# ifndef STDC -# define STDC -# endif -# if __STDC_VERSION__ >= 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 - -#ifdef Z_SOLO - typedef unsigned long z_size_t; -#else -# define z_longlong long long -# if defined(NO_SIZE_T) - typedef unsigned NO_SIZE_T z_size_t; -# elif defined(STDC) -# include - typedef size_t z_size_t; -# else - typedef unsigned long z_size_t; -# endif -# undef z_longlong -#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 about 7 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 - -#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) -# include -# if (UINT_MAX == 0xffffffffUL) -# define Z_U4 unsigned -# elif (ULONG_MAX == 0xffffffffUL) -# define Z_U4 unsigned long -# elif (USHRT_MAX == 0xffffffffUL) -# define Z_U4 unsigned short -# endif -#endif - -#ifdef Z_U4 - typedef Z_U4 z_crc_t; -#else - typedef unsigned long z_crc_t; -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H -#endif - -#if 1 /* was set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H -#endif - -#ifdef STDC -# ifndef Z_SOLO -# include /* for off_t */ -# endif -#endif - -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -# include /* for va_list */ -# endif -#endif - -#ifdef _WIN32 -# ifndef Z_SOLO -# include /* for wchar_t */ -# endif -#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/deps/zlib/include/zlib.h b/deps/zlib/include/zlib.h deleted file mode 100644 index f09cdaf1..00000000 --- a/deps/zlib/include/zlib.h +++ /dev/null @@ -1,1912 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 - - Copyright (C) 1995-2017 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.11" -#define ZLIB_VERNUM 0x12b0 -#define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 -#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 and raw deflate 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 the 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 will go here */ - 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 - for deflate, or the decoding state for inflate */ - uLong adler; /* Adler-32 or CRC-32 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. In that case, zlib is thread-safe. When zalloc and zfree are - Z_NULL on entry to the initialization function, they are set to internal - routines that use the standard library functions malloc() and free(). - - 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 by 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 for deflate() */ - -#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(). - - - Generate 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. Some output may be provided even if - flush is zero. - - 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. See deflatePending(), - which can be used if desired to determine whether or not there is more ouput - in that case. - - 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 - codes 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 or Z_BUF_ERROR, 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 in the first deflate call after deflateInit if all the - compression is to be done in a single step. In order to complete in one - call, 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 Adler-32 checksum of all input read - so far (that is, total_in bytes). If a gzip stream is being generated, then - strm->adler will be the CRC-32 checksum of the input read so far. (See - deflateInit2 below.) - - deflate() may update strm->data_type if it can make a good guess about - the input data type (Z_BINARY or Z_TEXT). If 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 or the state was inadvertently written over - by the application), or 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. In the current version of inflate, the provided input is not - read or consumed. The allocation of a sliding window will be deferred to - the first call of inflate (if the decompression does not complete on the - first call). 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. - Actual decompression will be done by inflate(). So next_in, and avail_in, - 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), then next_in and avail_in are updated - accordingly, and processing will resume at this point for the next call of - inflate(). - - - Generate 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. If the - caller of inflate() does not provide both available input and available - output space, it is possible that there will be no progress made. 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. - To assist in this, on return inflate() always sets 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 Adler-32 - 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 unless inflateGetHeader() is used. When processing - gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output - produced so far. The CRC-32 is checked against the gzip trailer, as is the - uncompressed length, modulo 2^32. - - 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, in which case strm->msg points to a string with a more specific - error), Z_STREAM_ERROR if the stream structure was inconsistent (for example - next_in or next_out was Z_NULL, or the state was inadvertently written over - by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR - if no progress was 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 to be attempted. -*/ - - -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, or Z_STREAM_ERROR if the stream state - was inconsistent. -*/ - - - /* 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. - - For the current implementation of deflate(), a windowBits value of 8 (a - window size of 256 bytes) is not supported. As a result, a request for 8 - will result in 9 (a 512-byte window). In that case, providing 8 to - inflateInit2() will result in an error when the zlib header with 9 is - checked against the initialization of inflate(). The remedy is to not use 8 - with deflateInit2() with this initialization, or at least in that case use 9 - with inflateInit2(). - - 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 a 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 the appropriate value, - if the operating system was determined at compile time. If a gzip stream is - being written, strm->adler is a CRC-32 instead of an Adler-32. - - For raw deflate or gzip encoding, a request for a 256-byte window is - rejected as invalid, since only the zlib header provides a means of - transmitting the window size to the decompressor. - - 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 Adler-32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The Adler-32 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 - Adler-32 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 deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by deflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If deflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - deflateGetDictionary() may return a length less than the window size, even - when more than the window size in input has been provided. It may return up - to 258 bytes less in that case, due to how zlib's implementation of deflate - manages the sliding window and lookahead for matches, where matches can be - up to 258 bytes long. If the application needs the last window-size bytes of - input, then that would need to be saved by the application outside of zlib. - - deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -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 the internal compression state. The stream - will leave the compression level and any other attributes that may have been - set unchanged. - - 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 approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). - - If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does - not have enough output space to complete, then the parameter change will not - take effect. In this case, deflateParams() can be called again with the - same parameters and more output space to try again. - - In order to assure a change in the parameters on the first try, the - deflate stream should be flushed using deflate() with Z_BLOCK or other flush - request until strm.avail_out is not zero, before calling deflateParams(). - Then no more input data should be provided before the deflateParams() call. - If this is done, the old level and strategy will be applied to the data - compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). - - deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream - state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if - there was not enough output space to complete the compression of the - available input data before a change in the strategy or approach. Note that - in the case of a Z_BUF_ERROR, the parameters are not changed. A return - value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be - retried with more output space. -*/ - -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 Adler-32 or a CRC-32 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 - CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. - - 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 Adler-32 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 Adler-32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); -/* - Returns the sliding dictionary being maintained by inflate. dictLength is - set to the number of bytes in the dictionary, and that many bytes are copied - to dictionary. dictionary must have enough space, where 32768 bytes is - always enough. If inflateGetDictionary() is called with dictionary equal to - Z_NULL, then only the dictionary length is returned, and nothing is copied. - Similary, if dictLength is Z_NULL, then it is not set. - - inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the - stream state is inconsistent. -*/ - -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 occurrences 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 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. If the window size is changed, then the - memory allocated for the window is freed, and the window will be reallocated - by inflate() if needed. - - 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 -65536 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 *, - z_const 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 potentially 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. inflate() can be faster on modern CPUs when used with large - buffers. inflateBack() 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 default - behavior of inflate(), which expects a zlib 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: ZLIB_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 data. compress() is equivalent to compress2() with a level - parameter of Z_DEFAULT_COMPRESSION. - - 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 data. - - 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 data. - - 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. -*/ - -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); -/* - Same as uncompress, except that sourceLen is a pointer, where the - length of the source is *sourceLen. On return, *sourceLen is the number of - source bytes consumed. -*/ - - /* 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. Three times that size in buffer space is allocated. 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. Previously provided - data is flushed before the parameter change. - - gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not - opened for writing, Z_ERRNO if there is an error writing the flushed data, - or Z_MEM_ERROR if there is a memory allocation error. -*/ - -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. If len is too large to fit in an int, - then nothing is read, -1 is returned, and the error state is set to - Z_STREAM_ERROR. -*/ - -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); -/* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. - - gzfread() returns the number of full items read of size size, or zero if - the end of the file was reached and a full item could not be read, or if - there was an error. gzerror() must be consulted if zero is returned in - order to determine if there was an error. If the multiplication of size and - nitems overflows, i.e. the product does not fit in a z_size_t, then nothing - is read, zero is returned, and the error state is set to Z_STREAM_ERROR. - - In the event that the end of file is reached and only a partial item is - available at the end, i.e. the remaining uncompressed data length is not a - multiple of size, then the final partial item is nevetheless read into buf - and the end-of-file flag is set. The length of the partial item read is not - provided, but could be inferred from the result of gztell(). This behavior - is the same as the behavior of fread() implementations in common libraries, - but it prevents the direct use of gzfread() to read a concurrently written - file, reseting and retrying on end-of-file, when size is not 1. -*/ - -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 z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); -/* - gzfwrite() writes nitems items of size size from buf to file, duplicating - the interface of stdio's fwrite(), with size_t request and return types. If - the library defines size_t, then z_size_t is identical to size_t. If not, - then z_size_t is an unsigned integer type that can contain a pointer. - - gzfwrite() returns the number of full items written of size size, or zero - if there was an error. If the multiplication of size and nitems overflows, - i.e. the product does not fit in a z_size_t, then nothing is written, zero - is returned, and the error state is set to Z_STREAM_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 a negative zlib error code 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 - concatenated 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 CRC-32 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_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as adler32(), but with a size_t length. -*/ - -/* -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_z OF((uLong adler, const Bytef *buf, - z_size_t len)); -/* - Same as crc32(), but with a size_t length. -*/ - -/* -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)); -#ifdef Z_PREFIX_SET -# define z_deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, (int)sizeof(z_stream)) -# define z_inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, \ - (int)sizeof(z_stream)) -# define z_inflateBackInit(strm, windowBits, window) \ - inflateBackInit_((strm), (windowBits), (window), \ - ZLIB_VERSION, (int)sizeof(z_stream)) -#else -# 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)) -#endif - -#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 */ - -/* 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 inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); -#endif -#if defined(STDC) || defined(Z_HAVE_STDARG_H) -# ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); -# endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ZLIB_H */ diff --git a/deps/zlib/lib/libz.a b/deps/zlib/lib/libz.a deleted file mode 100644 index e92a8ad0c9320277d6427f37523d9792b178cae4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287592 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

*bA~K5NZhe++x8yEi_N{!8$^@z4p@-5dY>*qXiZ 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

%zPM(^5w9WM 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