diff options
| author | pixel <pixel> | 2004-11-27 21:46:02 +0000 | 
|---|---|---|
| committer | pixel <pixel> | 2004-11-27 21:46:02 +0000 | 
| commit | ae2779e504ca5ae11a87e047b4536a5f428cce4d (patch) | |
| tree | 19604ce1873e9cc98be9b840b894cb7eae341532 /lib/zlib/include | |
| parent | 583964f9f8e954eb57b31663065c5b9e833d045e (diff) | |
Large dos2unix commit...
Diffstat (limited to 'lib/zlib/include')
| -rw-r--r-- | lib/zlib/include/deflate.h | 636 | ||||
| -rw-r--r-- | lib/zlib/include/infblock.h | 78 | ||||
| -rw-r--r-- | lib/zlib/include/infcodes.h | 54 | ||||
| -rw-r--r-- | lib/zlib/include/inffast.h | 34 | ||||
| -rw-r--r-- | lib/zlib/include/inffixed.h | 302 | ||||
| -rw-r--r-- | lib/zlib/include/inftrees.h | 116 | ||||
| -rw-r--r-- | lib/zlib/include/infutil.h | 196 | ||||
| -rw-r--r-- | lib/zlib/include/trees.h | 256 | ||||
| -rw-r--r-- | lib/zlib/include/zconf.h | 566 | ||||
| -rw-r--r-- | lib/zlib/include/zlib.h | 1786 | ||||
| -rw-r--r-- | lib/zlib/include/zutil.h | 440 | 
11 files changed, 2232 insertions, 2232 deletions
| diff --git a/lib/zlib/include/deflate.h b/lib/zlib/include/deflate.h index 0630d9f..3259981 100644 --- a/lib/zlib/include/deflate.h +++ b/lib/zlib/include/deflate.h @@ -1,318 +1,318 @@ -/* deflate.h -- internal compression state
 - * Copyright (C) 1995-2002 Jean-loup Gailly
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -/* @(#) $Id: deflate.h,v 1.2 2004-11-27 21:43:51 pixel Exp $ */
 -
 -#ifndef _DEFLATE_H
 -#define _DEFLATE_H
 -
 -#include "zutil.h"
 -
 -/* ===========================================================================
 - * Internal compression state.
 - */
 -
 -#define LENGTH_CODES 29
 -/* number of length codes, not counting the special END_BLOCK code */
 -
 -#define LITERALS  256
 -/* number of literal bytes 0..255 */
 -
 -#define L_CODES (LITERALS+1+LENGTH_CODES)
 -/* number of Literal or Length codes, including the END_BLOCK code */
 -
 -#define D_CODES   30
 -/* number of distance codes */
 -
 -#define BL_CODES  19
 -/* number of codes used to transfer the bit lengths */
 -
 -#define HEAP_SIZE (2*L_CODES+1)
 -/* maximum heap size */
 -
 -#define MAX_BITS 15
 -/* All codes must not exceed MAX_BITS bits */
 -
 -#define INIT_STATE    42
 -#define BUSY_STATE   113
 -#define FINISH_STATE 666
 -/* Stream status */
 -
 -
 -/* Data structure describing a single value and its code string. */
 -typedef struct ct_data_s {
 -    union {
 -        ush  freq;       /* frequency count */
 -        ush  code;       /* bit string */
 -    } fc;
 -    union {
 -        ush  dad;        /* father node in Huffman tree */
 -        ush  len;        /* length of bit string */
 -    } dl;
 -} FAR ct_data;
 -
 -#define Freq fc.freq
 -#define Code fc.code
 -#define Dad  dl.dad
 -#define Len  dl.len
 -
 -typedef struct static_tree_desc_s  static_tree_desc;
 -
 -typedef struct tree_desc_s {
 -    ct_data *dyn_tree;           /* the dynamic tree */
 -    int     max_code;            /* largest code with non zero frequency */
 -    static_tree_desc *stat_desc; /* the corresponding static tree */
 -} FAR tree_desc;
 -
 -typedef ush Pos;
 -typedef Pos FAR Posf;
 -typedef unsigned IPos;
 -
 -/* A Pos is an index in the character window. We use short instead of int to
 - * save space in the various tables. IPos is used only for parameter passing.
 - */
 -
 -typedef struct internal_state {
 -    z_streamp strm;      /* pointer back to this zlib stream */
 -    int   status;        /* as the name implies */
 -    Bytef *pending_buf;  /* output still pending */
 -    ulg   pending_buf_size; /* size of pending_buf */
 -    Bytef *pending_out;  /* next pending byte to output to the stream */
 -    int   pending;       /* nb of bytes in the pending buffer */
 -    int   noheader;      /* suppress zlib header and adler32 */
 -    Byte  data_type;     /* UNKNOWN, BINARY or ASCII */
 -    Byte  method;        /* STORED (for zip only) or DEFLATED */
 -    int   last_flush;    /* value of flush param for previous deflate call */
 -
 -                /* used by deflate.c: */
 -
 -    uInt  w_size;        /* LZ77 window size (32K by default) */
 -    uInt  w_bits;        /* log2(w_size)  (8..16) */
 -    uInt  w_mask;        /* w_size - 1 */
 -
 -    Bytef *window;
 -    /* Sliding window. Input bytes are read into the second half of the window,
 -     * and move to the first half later to keep a dictionary of at least wSize
 -     * bytes. With this organization, matches are limited to a distance of
 -     * wSize-MAX_MATCH bytes, but this ensures that IO is always
 -     * performed with a length multiple of the block size. Also, it limits
 -     * the window size to 64K, which is quite useful on MSDOS.
 -     * To do: use the user input buffer as sliding window.
 -     */
 -
 -    ulg window_size;
 -    /* Actual size of window: 2*wSize, except when the user input buffer
 -     * is directly used as sliding window.
 -     */
 -
 -    Posf *prev;
 -    /* Link to older string with same hash index. To limit the size of this
 -     * array to 64K, this link is maintained only for the last 32K strings.
 -     * An index in this array is thus a window index modulo 32K.
 -     */
 -
 -    Posf *head; /* Heads of the hash chains or NIL. */
 -
 -    uInt  ins_h;          /* hash index of string to be inserted */
 -    uInt  hash_size;      /* number of elements in hash table */
 -    uInt  hash_bits;      /* log2(hash_size) */
 -    uInt  hash_mask;      /* hash_size-1 */
 -
 -    uInt  hash_shift;
 -    /* Number of bits by which ins_h must be shifted at each input
 -     * step. It must be such that after MIN_MATCH steps, the oldest
 -     * byte no longer takes part in the hash key, that is:
 -     *   hash_shift * MIN_MATCH >= hash_bits
 -     */
 -
 -    long block_start;
 -    /* Window position at the beginning of the current output block. Gets
 -     * negative when the window is moved backwards.
 -     */
 -
 -    uInt match_length;           /* length of best match */
 -    IPos prev_match;             /* previous match */
 -    int match_available;         /* set if previous match exists */
 -    uInt strstart;               /* start of string to insert */
 -    uInt match_start;            /* start of matching string */
 -    uInt lookahead;              /* number of valid bytes ahead in window */
 -
 -    uInt prev_length;
 -    /* Length of the best match at previous step. Matches not greater than this
 -     * are discarded. This is used in the lazy match evaluation.
 -     */
 -
 -    uInt max_chain_length;
 -    /* To speed up deflation, hash chains are never searched beyond this
 -     * length.  A higher limit improves compression ratio but degrades the
 -     * speed.
 -     */
 -
 -    uInt max_lazy_match;
 -    /* Attempt to find a better match only when the current match is strictly
 -     * smaller than this value. This mechanism is used only for compression
 -     * levels >= 4.
 -     */
 -#   define max_insert_length  max_lazy_match
 -    /* Insert new strings in the hash table only if the match length is not
 -     * greater than this length. This saves time but degrades compression.
 -     * max_insert_length is used only for compression levels <= 3.
 -     */
 -
 -    int level;    /* compression level (1..9) */
 -    int strategy; /* favor or force Huffman coding*/
 -
 -    uInt good_match;
 -    /* Use a faster search when the previous match is longer than this */
 -
 -    int nice_match; /* Stop searching when current match exceeds this */
 -
 -                /* used by trees.c: */
 -    /* Didn't use ct_data typedef below to supress compiler warning */
 -    struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
 -    struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
 -    struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
 -
 -    struct tree_desc_s l_desc;               /* desc. for literal tree */
 -    struct tree_desc_s d_desc;               /* desc. for distance tree */
 -    struct tree_desc_s bl_desc;              /* desc. for bit length tree */
 -
 -    ush bl_count[MAX_BITS+1];
 -    /* number of codes at each bit length for an optimal tree */
 -
 -    int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
 -    int heap_len;               /* number of elements in the heap */
 -    int heap_max;               /* element of largest frequency */
 -    /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
 -     * The same heap array is used to build all trees.
 -     */
 -
 -    uch depth[2*L_CODES+1];
 -    /* Depth of each subtree used as tie breaker for trees of equal frequency
 -     */
 -
 -    uchf *l_buf;          /* buffer for literals or lengths */
 -
 -    uInt  lit_bufsize;
 -    /* Size of match buffer for literals/lengths.  There are 4 reasons for
 -     * limiting lit_bufsize to 64K:
 -     *   - frequencies can be kept in 16 bit counters
 -     *   - if compression is not successful for the first block, all input
 -     *     data is still in the window so we can still emit a stored block even
 -     *     when input comes from standard input.  (This can also be done for
 -     *     all blocks if lit_bufsize is not greater than 32K.)
 -     *   - if compression is not successful for a file smaller than 64K, we can
 -     *     even emit a stored file instead of a stored block (saving 5 bytes).
 -     *     This is applicable only for zip (not gzip or zlib).
 -     *   - creating new Huffman trees less frequently may not provide fast
 -     *     adaptation to changes in the input data statistics. (Take for
 -     *     example a binary file with poorly compressible code followed by
 -     *     a highly compressible string table.) Smaller buffer sizes give
 -     *     fast adaptation but have of course the overhead of transmitting
 -     *     trees more frequently.
 -     *   - I can't count above 4
 -     */
 -
 -    uInt last_lit;      /* running index in l_buf */
 -
 -    ushf *d_buf;
 -    /* Buffer for distances. To simplify the code, d_buf and l_buf have
 -     * the same number of elements. To use different lengths, an extra flag
 -     * array would be necessary.
 -     */
 -
 -    ulg opt_len;        /* bit length of current block with optimal trees */
 -    ulg static_len;     /* bit length of current block with static trees */
 -    uInt matches;       /* number of string matches in current block */
 -    int last_eob_len;   /* bit length of EOB code for last block */
 -
 -#ifdef DEBUG
 -    ulg compressed_len; /* total bit length of compressed file mod 2^32 */
 -    ulg bits_sent;      /* bit length of compressed data sent mod 2^32 */
 -#endif
 -
 -    ush bi_buf;
 -    /* Output buffer. bits are inserted starting at the bottom (least
 -     * significant bits).
 -     */
 -    int bi_valid;
 -    /* Number of valid bits in bi_buf.  All bits above the last valid bit
 -     * are always zero.
 -     */
 -
 -} FAR deflate_state;
 -
 -/* Output a byte on the stream.
 - * IN assertion: there is enough room in pending_buf.
 - */
 -#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
 -
 -
 -#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
 -/* Minimum amount of lookahead, except at the end of the input file.
 - * See deflate.c for comments about the MIN_MATCH+1.
 - */
 -
 -#define MAX_DIST(s)  ((s)->w_size-MIN_LOOKAHEAD)
 -/* In order to simplify the code, particularly on 16 bit machines, match
 - * distances are limited to MAX_DIST instead of WSIZE.
 - */
 -
 -        /* in trees.c */
 -void _tr_init         OF((deflate_state *s));
 -int  _tr_tally        OF((deflate_state *s, unsigned dist, unsigned lc));
 -void _tr_flush_block  OF((deflate_state *s, charf *buf, ulg stored_len,
 -			  int eof));
 -void _tr_align        OF((deflate_state *s));
 -void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
 -                          int eof));
 -
 -#define d_code(dist) \
 -   ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
 -/* Mapping from a distance to a distance code. dist is the distance - 1 and
 - * must not have side effects. _dist_code[256] and _dist_code[257] are never
 - * used.
 - */
 -
 -#ifndef DEBUG
 -/* Inline versions of _tr_tally for speed: */
 -
 -#if defined(GEN_TREES_H) || !defined(STDC)
 -  extern uch _length_code[];
 -  extern uch _dist_code[];
 -#else
 -  extern const uch _length_code[];
 -  extern const uch _dist_code[];
 -#endif
 -
 -# define _tr_tally_lit(s, c, flush) \
 -  { uch cc = (c); \
 -    s->d_buf[s->last_lit] = 0; \
 -    s->l_buf[s->last_lit++] = cc; \
 -    s->dyn_ltree[cc].Freq++; \
 -    flush = (s->last_lit == s->lit_bufsize-1); \
 -   }
 -# define _tr_tally_dist(s, distance, length, flush) \
 -  { uch len = (length); \
 -    ush dist = (distance); \
 -    s->d_buf[s->last_lit] = dist; \
 -    s->l_buf[s->last_lit++] = len; \
 -    dist--; \
 -    s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
 -    s->dyn_dtree[d_code(dist)].Freq++; \
 -    flush = (s->last_lit == s->lit_bufsize-1); \
 -  }
 -#else
 -# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
 -# define _tr_tally_dist(s, distance, length, flush) \
 -              flush = _tr_tally(s, distance, length) 
 -#endif
 -
 -#endif
 +/* deflate.h -- internal compression state + * Copyright (C) 1995-2002 Jean-loup Gailly + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id: deflate.h,v 1.3 2004-11-27 21:46:12 pixel Exp $ */ + +#ifndef _DEFLATE_H +#define _DEFLATE_H + +#include "zutil.h" + +/* =========================================================================== + * Internal compression state. + */ + +#define LENGTH_CODES 29 +/* number of length codes, not counting the special END_BLOCK code */ + +#define LITERALS  256 +/* number of literal bytes 0..255 */ + +#define L_CODES (LITERALS+1+LENGTH_CODES) +/* number of Literal or Length codes, including the END_BLOCK code */ + +#define D_CODES   30 +/* number of distance codes */ + +#define BL_CODES  19 +/* number of codes used to transfer the bit lengths */ + +#define HEAP_SIZE (2*L_CODES+1) +/* maximum heap size */ + +#define MAX_BITS 15 +/* All codes must not exceed MAX_BITS bits */ + +#define INIT_STATE    42 +#define BUSY_STATE   113 +#define FINISH_STATE 666 +/* Stream status */ + + +/* Data structure describing a single value and its code string. */ +typedef struct ct_data_s { +    union { +        ush  freq;       /* frequency count */ +        ush  code;       /* bit string */ +    } fc; +    union { +        ush  dad;        /* father node in Huffman tree */ +        ush  len;        /* length of bit string */ +    } dl; +} FAR ct_data; + +#define Freq fc.freq +#define Code fc.code +#define Dad  dl.dad +#define Len  dl.len + +typedef struct static_tree_desc_s  static_tree_desc; + +typedef struct tree_desc_s { +    ct_data *dyn_tree;           /* the dynamic tree */ +    int     max_code;            /* largest code with non zero frequency */ +    static_tree_desc *stat_desc; /* the corresponding static tree */ +} FAR tree_desc; + +typedef ush Pos; +typedef Pos FAR Posf; +typedef unsigned IPos; + +/* A Pos is an index in the character window. We use short instead of int to + * save space in the various tables. IPos is used only for parameter passing. + */ + +typedef struct internal_state { +    z_streamp strm;      /* pointer back to this zlib stream */ +    int   status;        /* as the name implies */ +    Bytef *pending_buf;  /* output still pending */ +    ulg   pending_buf_size; /* size of pending_buf */ +    Bytef *pending_out;  /* next pending byte to output to the stream */ +    int   pending;       /* nb of bytes in the pending buffer */ +    int   noheader;      /* suppress zlib header and adler32 */ +    Byte  data_type;     /* UNKNOWN, BINARY or ASCII */ +    Byte  method;        /* STORED (for zip only) or DEFLATED */ +    int   last_flush;    /* value of flush param for previous deflate call */ + +                /* used by deflate.c: */ + +    uInt  w_size;        /* LZ77 window size (32K by default) */ +    uInt  w_bits;        /* log2(w_size)  (8..16) */ +    uInt  w_mask;        /* w_size - 1 */ + +    Bytef *window; +    /* Sliding window. Input bytes are read into the second half of the window, +     * and move to the first half later to keep a dictionary of at least wSize +     * bytes. With this organization, matches are limited to a distance of +     * wSize-MAX_MATCH bytes, but this ensures that IO is always +     * performed with a length multiple of the block size. Also, it limits +     * the window size to 64K, which is quite useful on MSDOS. +     * To do: use the user input buffer as sliding window. +     */ + +    ulg window_size; +    /* Actual size of window: 2*wSize, except when the user input buffer +     * is directly used as sliding window. +     */ + +    Posf *prev; +    /* Link to older string with same hash index. To limit the size of this +     * array to 64K, this link is maintained only for the last 32K strings. +     * An index in this array is thus a window index modulo 32K. +     */ + +    Posf *head; /* Heads of the hash chains or NIL. */ + +    uInt  ins_h;          /* hash index of string to be inserted */ +    uInt  hash_size;      /* number of elements in hash table */ +    uInt  hash_bits;      /* log2(hash_size) */ +    uInt  hash_mask;      /* hash_size-1 */ + +    uInt  hash_shift; +    /* Number of bits by which ins_h must be shifted at each input +     * step. It must be such that after MIN_MATCH steps, the oldest +     * byte no longer takes part in the hash key, that is: +     *   hash_shift * MIN_MATCH >= hash_bits +     */ + +    long block_start; +    /* Window position at the beginning of the current output block. Gets +     * negative when the window is moved backwards. +     */ + +    uInt match_length;           /* length of best match */ +    IPos prev_match;             /* previous match */ +    int match_available;         /* set if previous match exists */ +    uInt strstart;               /* start of string to insert */ +    uInt match_start;            /* start of matching string */ +    uInt lookahead;              /* number of valid bytes ahead in window */ + +    uInt prev_length; +    /* Length of the best match at previous step. Matches not greater than this +     * are discarded. This is used in the lazy match evaluation. +     */ + +    uInt max_chain_length; +    /* To speed up deflation, hash chains are never searched beyond this +     * length.  A higher limit improves compression ratio but degrades the +     * speed. +     */ + +    uInt max_lazy_match; +    /* Attempt to find a better match only when the current match is strictly +     * smaller than this value. This mechanism is used only for compression +     * levels >= 4. +     */ +#   define max_insert_length  max_lazy_match +    /* Insert new strings in the hash table only if the match length is not +     * greater than this length. This saves time but degrades compression. +     * max_insert_length is used only for compression levels <= 3. +     */ + +    int level;    /* compression level (1..9) */ +    int strategy; /* favor or force Huffman coding*/ + +    uInt good_match; +    /* Use a faster search when the previous match is longer than this */ + +    int nice_match; /* Stop searching when current match exceeds this */ + +                /* used by trees.c: */ +    /* Didn't use ct_data typedef below to supress compiler warning */ +    struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */ +    struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ +    struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */ + +    struct tree_desc_s l_desc;               /* desc. for literal tree */ +    struct tree_desc_s d_desc;               /* desc. for distance tree */ +    struct tree_desc_s bl_desc;              /* desc. for bit length tree */ + +    ush bl_count[MAX_BITS+1]; +    /* number of codes at each bit length for an optimal tree */ + +    int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */ +    int heap_len;               /* number of elements in the heap */ +    int heap_max;               /* element of largest frequency */ +    /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. +     * The same heap array is used to build all trees. +     */ + +    uch depth[2*L_CODES+1]; +    /* Depth of each subtree used as tie breaker for trees of equal frequency +     */ + +    uchf *l_buf;          /* buffer for literals or lengths */ + +    uInt  lit_bufsize; +    /* Size of match buffer for literals/lengths.  There are 4 reasons for +     * limiting lit_bufsize to 64K: +     *   - frequencies can be kept in 16 bit counters +     *   - if compression is not successful for the first block, all input +     *     data is still in the window so we can still emit a stored block even +     *     when input comes from standard input.  (This can also be done for +     *     all blocks if lit_bufsize is not greater than 32K.) +     *   - if compression is not successful for a file smaller than 64K, we can +     *     even emit a stored file instead of a stored block (saving 5 bytes). +     *     This is applicable only for zip (not gzip or zlib). +     *   - creating new Huffman trees less frequently may not provide fast +     *     adaptation to changes in the input data statistics. (Take for +     *     example a binary file with poorly compressible code followed by +     *     a highly compressible string table.) Smaller buffer sizes give +     *     fast adaptation but have of course the overhead of transmitting +     *     trees more frequently. +     *   - I can't count above 4 +     */ + +    uInt last_lit;      /* running index in l_buf */ + +    ushf *d_buf; +    /* Buffer for distances. To simplify the code, d_buf and l_buf have +     * the same number of elements. To use different lengths, an extra flag +     * array would be necessary. +     */ + +    ulg opt_len;        /* bit length of current block with optimal trees */ +    ulg static_len;     /* bit length of current block with static trees */ +    uInt matches;       /* number of string matches in current block */ +    int last_eob_len;   /* bit length of EOB code for last block */ + +#ifdef DEBUG +    ulg compressed_len; /* total bit length of compressed file mod 2^32 */ +    ulg bits_sent;      /* bit length of compressed data sent mod 2^32 */ +#endif + +    ush bi_buf; +    /* Output buffer. bits are inserted starting at the bottom (least +     * significant bits). +     */ +    int bi_valid; +    /* Number of valid bits in bi_buf.  All bits above the last valid bit +     * are always zero. +     */ + +} FAR deflate_state; + +/* Output a byte on the stream. + * IN assertion: there is enough room in pending_buf. + */ +#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} + + +#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) +/* Minimum amount of lookahead, except at the end of the input file. + * See deflate.c for comments about the MIN_MATCH+1. + */ + +#define MAX_DIST(s)  ((s)->w_size-MIN_LOOKAHEAD) +/* In order to simplify the code, particularly on 16 bit machines, match + * distances are limited to MAX_DIST instead of WSIZE. + */ + +        /* in trees.c */ +void _tr_init         OF((deflate_state *s)); +int  _tr_tally        OF((deflate_state *s, unsigned dist, unsigned lc)); +void _tr_flush_block  OF((deflate_state *s, charf *buf, ulg stored_len, +			  int eof)); +void _tr_align        OF((deflate_state *s)); +void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, +                          int eof)); + +#define d_code(dist) \ +   ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) +/* Mapping from a distance to a distance code. dist is the distance - 1 and + * must not have side effects. _dist_code[256] and _dist_code[257] are never + * used. + */ + +#ifndef DEBUG +/* Inline versions of _tr_tally for speed: */ + +#if defined(GEN_TREES_H) || !defined(STDC) +  extern uch _length_code[]; +  extern uch _dist_code[]; +#else +  extern const uch _length_code[]; +  extern const uch _dist_code[]; +#endif + +# define _tr_tally_lit(s, c, flush) \ +  { uch cc = (c); \ +    s->d_buf[s->last_lit] = 0; \ +    s->l_buf[s->last_lit++] = cc; \ +    s->dyn_ltree[cc].Freq++; \ +    flush = (s->last_lit == s->lit_bufsize-1); \ +   } +# define _tr_tally_dist(s, distance, length, flush) \ +  { uch len = (length); \ +    ush dist = (distance); \ +    s->d_buf[s->last_lit] = dist; \ +    s->l_buf[s->last_lit++] = len; \ +    dist--; \ +    s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ +    s->dyn_dtree[d_code(dist)].Freq++; \ +    flush = (s->last_lit == s->lit_bufsize-1); \ +  } +#else +# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) +# define _tr_tally_dist(s, distance, length, flush) \ +              flush = _tr_tally(s, distance, length)  +#endif + +#endif diff --git a/lib/zlib/include/infblock.h b/lib/zlib/include/infblock.h index 4cf0fa9..173b226 100644 --- a/lib/zlib/include/infblock.h +++ b/lib/zlib/include/infblock.h @@ -1,39 +1,39 @@ -/* infblock.h -- header to use infblock.c
 - * Copyright (C) 1995-2002 Mark Adler
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -struct inflate_blocks_state;
 -typedef struct inflate_blocks_state FAR inflate_blocks_statef;
 -
 -extern inflate_blocks_statef * inflate_blocks_new OF((
 -    z_streamp z,
 -    check_func c,               /* check function */
 -    uInt w));                   /* window size */
 -
 -extern int inflate_blocks OF((
 -    inflate_blocks_statef *,
 -    z_streamp ,
 -    int));                      /* initial return code */
 -
 -extern void inflate_blocks_reset OF((
 -    inflate_blocks_statef *,
 -    z_streamp ,
 -    uLongf *));                  /* check value on output */
 -
 -extern int inflate_blocks_free OF((
 -    inflate_blocks_statef *,
 -    z_streamp));
 -
 -extern void inflate_set_dictionary OF((
 -    inflate_blocks_statef *s,
 -    const Bytef *d,  /* dictionary */
 -    uInt  n));       /* dictionary length */
 -
 -extern int inflate_blocks_sync_point OF((
 -    inflate_blocks_statef *s));
 +/* infblock.h -- header to use infblock.c + * Copyright (C) 1995-2002 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +struct inflate_blocks_state; +typedef struct inflate_blocks_state FAR inflate_blocks_statef; + +extern inflate_blocks_statef * inflate_blocks_new OF(( +    z_streamp z, +    check_func c,               /* check function */ +    uInt w));                   /* window size */ + +extern int inflate_blocks OF(( +    inflate_blocks_statef *, +    z_streamp , +    int));                      /* initial return code */ + +extern void inflate_blocks_reset OF(( +    inflate_blocks_statef *, +    z_streamp , +    uLongf *));                  /* check value on output */ + +extern int inflate_blocks_free OF(( +    inflate_blocks_statef *, +    z_streamp)); + +extern void inflate_set_dictionary OF(( +    inflate_blocks_statef *s, +    const Bytef *d,  /* dictionary */ +    uInt  n));       /* dictionary length */ + +extern int inflate_blocks_sync_point OF(( +    inflate_blocks_statef *s)); diff --git a/lib/zlib/include/infcodes.h b/lib/zlib/include/infcodes.h index 531d419..46821a0 100644 --- a/lib/zlib/include/infcodes.h +++ b/lib/zlib/include/infcodes.h @@ -1,27 +1,27 @@ -/* infcodes.h -- header to use infcodes.c
 - * Copyright (C) 1995-2002 Mark Adler
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -struct inflate_codes_state;
 -typedef struct inflate_codes_state FAR inflate_codes_statef;
 -
 -extern inflate_codes_statef *inflate_codes_new OF((
 -    uInt, uInt,
 -    inflate_huft *, inflate_huft *,
 -    z_streamp ));
 -
 -extern int inflate_codes OF((
 -    inflate_blocks_statef *,
 -    z_streamp ,
 -    int));
 -
 -extern void inflate_codes_free OF((
 -    inflate_codes_statef *,
 -    z_streamp ));
 -
 +/* infcodes.h -- header to use infcodes.c + * Copyright (C) 1995-2002 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +struct inflate_codes_state; +typedef struct inflate_codes_state FAR inflate_codes_statef; + +extern inflate_codes_statef *inflate_codes_new OF(( +    uInt, uInt, +    inflate_huft *, inflate_huft *, +    z_streamp )); + +extern int inflate_codes OF(( +    inflate_blocks_statef *, +    z_streamp , +    int)); + +extern void inflate_codes_free OF(( +    inflate_codes_statef *, +    z_streamp )); + diff --git a/lib/zlib/include/inffast.h b/lib/zlib/include/inffast.h index ac643b3..a31a4bb 100644 --- a/lib/zlib/include/inffast.h +++ b/lib/zlib/include/inffast.h @@ -1,17 +1,17 @@ -/* inffast.h -- header to use inffast.c
 - * Copyright (C) 1995-2002 Mark Adler
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -extern int inflate_fast OF((
 -    uInt,
 -    uInt,
 -    inflate_huft *,
 -    inflate_huft *,
 -    inflate_blocks_statef *,
 -    z_streamp ));
 +/* inffast.h -- header to use inffast.c + * Copyright (C) 1995-2002 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +extern int inflate_fast OF(( +    uInt, +    uInt, +    inflate_huft *, +    inflate_huft *, +    inflate_blocks_statef *, +    z_streamp )); diff --git a/lib/zlib/include/inffixed.h b/lib/zlib/include/inffixed.h index e997507..77f7e76 100644 --- a/lib/zlib/include/inffixed.h +++ b/lib/zlib/include/inffixed.h @@ -1,151 +1,151 @@ -/* inffixed.h -- table for decoding fixed codes
 - * Generated automatically by the maketree.c program
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -local uInt fixed_bl = 9;
 -local uInt fixed_bd = 5;
 -local inflate_huft fixed_tl[] = {
 -    {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115},
 -    {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},192},
 -    {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},160},
 -    {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},224},
 -    {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},144},
 -    {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},208},
 -    {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},176},
 -    {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},240},
 -    {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227},
 -    {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},200},
 -    {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},168},
 -    {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},232},
 -    {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},152},
 -    {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},216},
 -    {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},184},
 -    {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},248},
 -    {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163},
 -    {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},196},
 -    {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},164},
 -    {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},228},
 -    {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},148},
 -    {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},212},
 -    {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},180},
 -    {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},244},
 -    {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0},
 -    {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},204},
 -    {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},172},
 -    {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},236},
 -    {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},156},
 -    {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},220},
 -    {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},188},
 -    {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},252},
 -    {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131},
 -    {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},194},
 -    {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},162},
 -    {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},226},
 -    {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},146},
 -    {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},210},
 -    {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},178},
 -    {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},242},
 -    {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258},
 -    {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},202},
 -    {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},170},
 -    {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},234},
 -    {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},154},
 -    {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},218},
 -    {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},186},
 -    {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},250},
 -    {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195},
 -    {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},198},
 -    {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},166},
 -    {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},230},
 -    {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},150},
 -    {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},214},
 -    {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},182},
 -    {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},246},
 -    {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0},
 -    {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},206},
 -    {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},174},
 -    {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},238},
 -    {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},158},
 -    {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},222},
 -    {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},190},
 -    {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},254},
 -    {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115},
 -    {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},193},
 -    {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},161},
 -    {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},225},
 -    {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},145},
 -    {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},209},
 -    {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},177},
 -    {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},241},
 -    {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227},
 -    {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},201},
 -    {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},169},
 -    {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},233},
 -    {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},153},
 -    {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},217},
 -    {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},185},
 -    {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},249},
 -    {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163},
 -    {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},197},
 -    {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},165},
 -    {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},229},
 -    {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},149},
 -    {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},213},
 -    {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},181},
 -    {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},245},
 -    {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0},
 -    {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},205},
 -    {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},173},
 -    {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},237},
 -    {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},157},
 -    {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},221},
 -    {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},189},
 -    {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},253},
 -    {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131},
 -    {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},195},
 -    {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},163},
 -    {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},227},
 -    {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},147},
 -    {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},211},
 -    {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},179},
 -    {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},243},
 -    {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258},
 -    {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},203},
 -    {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},171},
 -    {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},235},
 -    {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},155},
 -    {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},219},
 -    {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},187},
 -    {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},251},
 -    {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195},
 -    {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},199},
 -    {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},167},
 -    {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},231},
 -    {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},151},
 -    {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},215},
 -    {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},183},
 -    {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},247},
 -    {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0},
 -    {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},207},
 -    {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},175},
 -    {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},239},
 -    {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},159},
 -    {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},223},
 -    {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},191},
 -    {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},255}
 -  };
 -local inflate_huft fixed_td[] = {
 -    {{{80,5}},1}, {{{87,5}},257}, {{{83,5}},17}, {{{91,5}},4097},
 -    {{{81,5}},5}, {{{89,5}},1025}, {{{85,5}},65}, {{{93,5}},16385},
 -    {{{80,5}},3}, {{{88,5}},513}, {{{84,5}},33}, {{{92,5}},8193},
 -    {{{82,5}},9}, {{{90,5}},2049}, {{{86,5}},129}, {{{192,5}},24577},
 -    {{{80,5}},2}, {{{87,5}},385}, {{{83,5}},25}, {{{91,5}},6145},
 -    {{{81,5}},7}, {{{89,5}},1537}, {{{85,5}},97}, {{{93,5}},24577},
 -    {{{80,5}},4}, {{{88,5}},769}, {{{84,5}},49}, {{{92,5}},12289},
 -    {{{82,5}},13}, {{{90,5}},3073}, {{{86,5}},193}, {{{192,5}},24577}
 -  };
 +/* inffixed.h -- table for decoding fixed codes + * Generated automatically by the maketree.c program + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +local uInt fixed_bl = 9; +local uInt fixed_bd = 5; +local inflate_huft fixed_tl[] = { +    {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115}, +    {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},192}, +    {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},160}, +    {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},224}, +    {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},144}, +    {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},208}, +    {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},176}, +    {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},240}, +    {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227}, +    {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},200}, +    {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},168}, +    {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},232}, +    {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},152}, +    {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},216}, +    {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},184}, +    {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},248}, +    {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163}, +    {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},196}, +    {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},164}, +    {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},228}, +    {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},148}, +    {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},212}, +    {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},180}, +    {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},244}, +    {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0}, +    {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},204}, +    {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},172}, +    {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},236}, +    {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},156}, +    {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},220}, +    {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},188}, +    {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},252}, +    {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131}, +    {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},194}, +    {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},162}, +    {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},226}, +    {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},146}, +    {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},210}, +    {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},178}, +    {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},242}, +    {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258}, +    {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},202}, +    {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},170}, +    {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},234}, +    {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},154}, +    {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},218}, +    {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},186}, +    {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},250}, +    {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195}, +    {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},198}, +    {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},166}, +    {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},230}, +    {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},150}, +    {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},214}, +    {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},182}, +    {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},246}, +    {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0}, +    {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},206}, +    {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},174}, +    {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},238}, +    {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},158}, +    {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},222}, +    {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},190}, +    {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},254}, +    {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115}, +    {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},193}, +    {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},161}, +    {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},225}, +    {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},145}, +    {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},209}, +    {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},177}, +    {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},241}, +    {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227}, +    {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},201}, +    {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},169}, +    {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},233}, +    {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},153}, +    {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},217}, +    {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},185}, +    {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},249}, +    {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163}, +    {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},197}, +    {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},165}, +    {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},229}, +    {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},149}, +    {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},213}, +    {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},181}, +    {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},245}, +    {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0}, +    {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},205}, +    {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},173}, +    {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},237}, +    {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},157}, +    {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},221}, +    {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},189}, +    {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},253}, +    {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131}, +    {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},195}, +    {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},163}, +    {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},227}, +    {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},147}, +    {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},211}, +    {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},179}, +    {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},243}, +    {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258}, +    {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},203}, +    {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},171}, +    {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},235}, +    {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},155}, +    {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},219}, +    {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},187}, +    {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},251}, +    {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195}, +    {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},199}, +    {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},167}, +    {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},231}, +    {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},151}, +    {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},215}, +    {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},183}, +    {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},247}, +    {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0}, +    {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},207}, +    {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},175}, +    {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},239}, +    {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},159}, +    {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},223}, +    {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},191}, +    {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},255} +  }; +local inflate_huft fixed_td[] = { +    {{{80,5}},1}, {{{87,5}},257}, {{{83,5}},17}, {{{91,5}},4097}, +    {{{81,5}},5}, {{{89,5}},1025}, {{{85,5}},65}, {{{93,5}},16385}, +    {{{80,5}},3}, {{{88,5}},513}, {{{84,5}},33}, {{{92,5}},8193}, +    {{{82,5}},9}, {{{90,5}},2049}, {{{86,5}},129}, {{{192,5}},24577}, +    {{{80,5}},2}, {{{87,5}},385}, {{{83,5}},25}, {{{91,5}},6145}, +    {{{81,5}},7}, {{{89,5}},1537}, {{{85,5}},97}, {{{93,5}},24577}, +    {{{80,5}},4}, {{{88,5}},769}, {{{84,5}},49}, {{{92,5}},12289}, +    {{{82,5}},13}, {{{90,5}},3073}, {{{86,5}},193}, {{{192,5}},24577} +  }; diff --git a/lib/zlib/include/inftrees.h b/lib/zlib/include/inftrees.h index affbb3b..04b73b7 100644 --- a/lib/zlib/include/inftrees.h +++ b/lib/zlib/include/inftrees.h @@ -1,58 +1,58 @@ -/* inftrees.h -- header to use inftrees.c
 - * Copyright (C) 1995-2002 Mark Adler
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -/* Huffman code lookup table entry--this entry is four bytes for machines
 -   that have 16-bit pointers (e.g. PC's in the small or medium model). */
 -
 -typedef struct inflate_huft_s FAR inflate_huft;
 -
 -struct inflate_huft_s {
 -  union {
 -    struct {
 -      Byte Exop;        /* number of extra bits or operation */
 -      Byte Bits;        /* number of bits in this code or subcode */
 -    } what;
 -    uInt pad;           /* pad structure to a power of 2 (4 bytes for */
 -  } word;               /*  16-bit, 8 bytes for 32-bit int's) */
 -  uInt base;            /* literal, length base, distance base,
 -                           or table offset */
 -};
 -
 -/* Maximum size of dynamic tree.  The maximum found in a long but non-
 -   exhaustive search was 1004 huft structures (850 for length/literals
 -   and 154 for distances, the latter actually the result of an
 -   exhaustive search).  The actual maximum is not known, but the
 -   value below is more than safe. */
 -#define MANY 1440
 -
 -extern int inflate_trees_bits OF((
 -    uIntf *,                    /* 19 code lengths */
 -    uIntf *,                    /* bits tree desired/actual depth */
 -    inflate_huft * FAR *,       /* bits tree result */
 -    inflate_huft *,             /* space for trees */
 -    z_streamp));                /* for messages */
 -
 -extern int inflate_trees_dynamic OF((
 -    uInt,                       /* number of literal/length codes */
 -    uInt,                       /* number of distance codes */
 -    uIntf *,                    /* that many (total) code lengths */
 -    uIntf *,                    /* literal desired/actual bit depth */
 -    uIntf *,                    /* distance desired/actual bit depth */
 -    inflate_huft * FAR *,       /* literal/length tree result */
 -    inflate_huft * FAR *,       /* distance tree result */
 -    inflate_huft *,             /* space for trees */
 -    z_streamp));                /* for messages */
 -
 -extern int inflate_trees_fixed OF((
 -    uIntf *,                    /* literal desired/actual bit depth */
 -    uIntf *,                    /* distance desired/actual bit depth */
 -    inflate_huft * FAR *,       /* literal/length tree result */
 -    inflate_huft * FAR *,       /* distance tree result */
 -    z_streamp));                /* for memory allocation */
 +/* inftrees.h -- header to use inftrees.c + * Copyright (C) 1995-2002 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +/* Huffman code lookup table entry--this entry is four bytes for machines +   that have 16-bit pointers (e.g. PC's in the small or medium model). */ + +typedef struct inflate_huft_s FAR inflate_huft; + +struct inflate_huft_s { +  union { +    struct { +      Byte Exop;        /* number of extra bits or operation */ +      Byte Bits;        /* number of bits in this code or subcode */ +    } what; +    uInt pad;           /* pad structure to a power of 2 (4 bytes for */ +  } word;               /*  16-bit, 8 bytes for 32-bit int's) */ +  uInt base;            /* literal, length base, distance base, +                           or table offset */ +}; + +/* Maximum size of dynamic tree.  The maximum found in a long but non- +   exhaustive search was 1004 huft structures (850 for length/literals +   and 154 for distances, the latter actually the result of an +   exhaustive search).  The actual maximum is not known, but the +   value below is more than safe. */ +#define MANY 1440 + +extern int inflate_trees_bits OF(( +    uIntf *,                    /* 19 code lengths */ +    uIntf *,                    /* bits tree desired/actual depth */ +    inflate_huft * FAR *,       /* bits tree result */ +    inflate_huft *,             /* space for trees */ +    z_streamp));                /* for messages */ + +extern int inflate_trees_dynamic OF(( +    uInt,                       /* number of literal/length codes */ +    uInt,                       /* number of distance codes */ +    uIntf *,                    /* that many (total) code lengths */ +    uIntf *,                    /* literal desired/actual bit depth */ +    uIntf *,                    /* distance desired/actual bit depth */ +    inflate_huft * FAR *,       /* literal/length tree result */ +    inflate_huft * FAR *,       /* distance tree result */ +    inflate_huft *,             /* space for trees */ +    z_streamp));                /* for messages */ + +extern int inflate_trees_fixed OF(( +    uIntf *,                    /* literal desired/actual bit depth */ +    uIntf *,                    /* distance desired/actual bit depth */ +    inflate_huft * FAR *,       /* literal/length tree result */ +    inflate_huft * FAR *,       /* distance tree result */ +    z_streamp));                /* for memory allocation */ diff --git a/lib/zlib/include/infutil.h b/lib/zlib/include/infutil.h index 0c0ace3..4401df8 100644 --- a/lib/zlib/include/infutil.h +++ b/lib/zlib/include/infutil.h @@ -1,98 +1,98 @@ -/* infutil.h -- types and macros common to blocks and codes
 - * Copyright (C) 1995-2002 Mark Adler
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -#ifndef _INFUTIL_H
 -#define _INFUTIL_H
 -
 -typedef enum {
 -      TYPE,     /* get type bits (3, including end bit) */
 -      LENS,     /* get lengths for stored */
 -      STORED,   /* processing stored block */
 -      TABLE,    /* get table lengths */
 -      BTREE,    /* get bit lengths tree for a dynamic block */
 -      DTREE,    /* get length, distance trees for a dynamic block */
 -      CODES,    /* processing fixed or dynamic block */
 -      DRY,      /* output remaining window bytes */
 -      DONE,     /* finished last block, done */
 -      BAD}      /* got a data error--stuck here */
 -inflate_block_mode;
 -
 -/* inflate blocks semi-private state */
 -struct inflate_blocks_state {
 -
 -  /* mode */
 -  inflate_block_mode  mode;     /* current inflate_block mode */
 -
 -  /* mode dependent information */
 -  union {
 -    uInt left;          /* if STORED, bytes left to copy */
 -    struct {
 -      uInt table;               /* table lengths (14 bits) */
 -      uInt index;               /* index into blens (or border) */
 -      uIntf *blens;             /* bit lengths of codes */
 -      uInt bb;                  /* bit length tree depth */
 -      inflate_huft *tb;         /* bit length decoding tree */
 -    } trees;            /* if DTREE, decoding info for trees */
 -    struct {
 -      inflate_codes_statef 
 -         *codes;
 -    } decode;           /* if CODES, current state */
 -  } sub;                /* submode */
 -  uInt last;            /* true if this block is the last block */
 -
 -  /* mode independent information */
 -  uInt bitk;            /* bits in bit buffer */
 -  uLong bitb;           /* bit buffer */
 -  inflate_huft *hufts;  /* single malloc for tree space */
 -  Bytef *window;        /* sliding window */
 -  Bytef *end;           /* one byte after sliding window */
 -  Bytef *read;          /* window read pointer */
 -  Bytef *write;         /* window write pointer */
 -  check_func checkfn;   /* check function */
 -  uLong check;          /* check on output */
 -
 -};
 -
 -
 -/* defines for inflate input/output */
 -/*   update pointers and return */
 -#define UPDBITS {s->bitb=b;s->bitk=k;}
 -#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;}
 -#define UPDOUT {s->write=q;}
 -#define UPDATE {UPDBITS UPDIN UPDOUT}
 -#define LEAVE {UPDATE return inflate_flush(s,z,r);}
 -/*   get bytes and bits */
 -#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
 -#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
 -#define NEXTBYTE (n--,*p++)
 -#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
 -#define DUMPBITS(j) {b>>=(j);k-=(j);}
 -/*   output bytes */
 -#define WAVAIL (uInt)(q<s->read?s->read-q-1:s->end-q)
 -#define LOADOUT {q=s->write;m=(uInt)WAVAIL;}
 -#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}}
 -#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
 -#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;}
 -#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
 -/*   load local pointers */
 -#define LOAD {LOADIN LOADOUT}
 -
 -/* masks for lower bits (size given to avoid silly warnings with Visual C++) */
 -extern uInt inflate_mask[17];
 -
 -/* copy as much as possible from the sliding window to the output area */
 -extern int inflate_flush OF((
 -    inflate_blocks_statef *,
 -    z_streamp ,
 -    int));
 -
 -struct internal_state      {int dummy;}; /* for buggy compilers */
 -
 -#endif
 +/* infutil.h -- types and macros common to blocks and codes + * Copyright (C) 1995-2002 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +#ifndef _INFUTIL_H +#define _INFUTIL_H + +typedef enum { +      TYPE,     /* get type bits (3, including end bit) */ +      LENS,     /* get lengths for stored */ +      STORED,   /* processing stored block */ +      TABLE,    /* get table lengths */ +      BTREE,    /* get bit lengths tree for a dynamic block */ +      DTREE,    /* get length, distance trees for a dynamic block */ +      CODES,    /* processing fixed or dynamic block */ +      DRY,      /* output remaining window bytes */ +      DONE,     /* finished last block, done */ +      BAD}      /* got a data error--stuck here */ +inflate_block_mode; + +/* inflate blocks semi-private state */ +struct inflate_blocks_state { + +  /* mode */ +  inflate_block_mode  mode;     /* current inflate_block mode */ + +  /* mode dependent information */ +  union { +    uInt left;          /* if STORED, bytes left to copy */ +    struct { +      uInt table;               /* table lengths (14 bits) */ +      uInt index;               /* index into blens (or border) */ +      uIntf *blens;             /* bit lengths of codes */ +      uInt bb;                  /* bit length tree depth */ +      inflate_huft *tb;         /* bit length decoding tree */ +    } trees;            /* if DTREE, decoding info for trees */ +    struct { +      inflate_codes_statef  +         *codes; +    } decode;           /* if CODES, current state */ +  } sub;                /* submode */ +  uInt last;            /* true if this block is the last block */ + +  /* mode independent information */ +  uInt bitk;            /* bits in bit buffer */ +  uLong bitb;           /* bit buffer */ +  inflate_huft *hufts;  /* single malloc for tree space */ +  Bytef *window;        /* sliding window */ +  Bytef *end;           /* one byte after sliding window */ +  Bytef *read;          /* window read pointer */ +  Bytef *write;         /* window write pointer */ +  check_func checkfn;   /* check function */ +  uLong check;          /* check on output */ + +}; + + +/* defines for inflate input/output */ +/*   update pointers and return */ +#define UPDBITS {s->bitb=b;s->bitk=k;} +#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;} +#define UPDOUT {s->write=q;} +#define UPDATE {UPDBITS UPDIN UPDOUT} +#define LEAVE {UPDATE return inflate_flush(s,z,r);} +/*   get bytes and bits */ +#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;} +#define NEEDBYTE {if(n)r=Z_OK;else LEAVE} +#define NEXTBYTE (n--,*p++) +#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}} +#define DUMPBITS(j) {b>>=(j);k-=(j);} +/*   output bytes */ +#define WAVAIL (uInt)(q<s->read?s->read-q-1:s->end-q) +#define LOADOUT {q=s->write;m=(uInt)WAVAIL;} +#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}} +#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT} +#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;} +#define OUTBYTE(a) {*q++=(Byte)(a);m--;} +/*   load local pointers */ +#define LOAD {LOADIN LOADOUT} + +/* masks for lower bits (size given to avoid silly warnings with Visual C++) */ +extern uInt inflate_mask[17]; + +/* copy as much as possible from the sliding window to the output area */ +extern int inflate_flush OF(( +    inflate_blocks_statef *, +    z_streamp , +    int)); + +struct internal_state      {int dummy;}; /* for buggy compilers */ + +#endif diff --git a/lib/zlib/include/trees.h b/lib/zlib/include/trees.h index 1ca868b..72facf9 100644 --- a/lib/zlib/include/trees.h +++ b/lib/zlib/include/trees.h @@ -1,128 +1,128 @@ -/* header created automatically with -DGEN_TREES_H */
 -
 -local const ct_data static_ltree[L_CODES+2] = {
 -{{ 12},{  8}}, {{140},{  8}}, {{ 76},{  8}}, {{204},{  8}}, {{ 44},{  8}},
 -{{172},{  8}}, {{108},{  8}}, {{236},{  8}}, {{ 28},{  8}}, {{156},{  8}},
 -{{ 92},{  8}}, {{220},{  8}}, {{ 60},{  8}}, {{188},{  8}}, {{124},{  8}},
 -{{252},{  8}}, {{  2},{  8}}, {{130},{  8}}, {{ 66},{  8}}, {{194},{  8}},
 -{{ 34},{  8}}, {{162},{  8}}, {{ 98},{  8}}, {{226},{  8}}, {{ 18},{  8}},
 -{{146},{  8}}, {{ 82},{  8}}, {{210},{  8}}, {{ 50},{  8}}, {{178},{  8}},
 -{{114},{  8}}, {{242},{  8}}, {{ 10},{  8}}, {{138},{  8}}, {{ 74},{  8}},
 -{{202},{  8}}, {{ 42},{  8}}, {{170},{  8}}, {{106},{  8}}, {{234},{  8}},
 -{{ 26},{  8}}, {{154},{  8}}, {{ 90},{  8}}, {{218},{  8}}, {{ 58},{  8}},
 -{{186},{  8}}, {{122},{  8}}, {{250},{  8}}, {{  6},{  8}}, {{134},{  8}},
 -{{ 70},{  8}}, {{198},{  8}}, {{ 38},{  8}}, {{166},{  8}}, {{102},{  8}},
 -{{230},{  8}}, {{ 22},{  8}}, {{150},{  8}}, {{ 86},{  8}}, {{214},{  8}},
 -{{ 54},{  8}}, {{182},{  8}}, {{118},{  8}}, {{246},{  8}}, {{ 14},{  8}},
 -{{142},{  8}}, {{ 78},{  8}}, {{206},{  8}}, {{ 46},{  8}}, {{174},{  8}},
 -{{110},{  8}}, {{238},{  8}}, {{ 30},{  8}}, {{158},{  8}}, {{ 94},{  8}},
 -{{222},{  8}}, {{ 62},{  8}}, {{190},{  8}}, {{126},{  8}}, {{254},{  8}},
 -{{  1},{  8}}, {{129},{  8}}, {{ 65},{  8}}, {{193},{  8}}, {{ 33},{  8}},
 -{{161},{  8}}, {{ 97},{  8}}, {{225},{  8}}, {{ 17},{  8}}, {{145},{  8}},
 -{{ 81},{  8}}, {{209},{  8}}, {{ 49},{  8}}, {{177},{  8}}, {{113},{  8}},
 -{{241},{  8}}, {{  9},{  8}}, {{137},{  8}}, {{ 73},{  8}}, {{201},{  8}},
 -{{ 41},{  8}}, {{169},{  8}}, {{105},{  8}}, {{233},{  8}}, {{ 25},{  8}},
 -{{153},{  8}}, {{ 89},{  8}}, {{217},{  8}}, {{ 57},{  8}}, {{185},{  8}},
 -{{121},{  8}}, {{249},{  8}}, {{  5},{  8}}, {{133},{  8}}, {{ 69},{  8}},
 -{{197},{  8}}, {{ 37},{  8}}, {{165},{  8}}, {{101},{  8}}, {{229},{  8}},
 -{{ 21},{  8}}, {{149},{  8}}, {{ 85},{  8}}, {{213},{  8}}, {{ 53},{  8}},
 -{{181},{  8}}, {{117},{  8}}, {{245},{  8}}, {{ 13},{  8}}, {{141},{  8}},
 -{{ 77},{  8}}, {{205},{  8}}, {{ 45},{  8}}, {{173},{  8}}, {{109},{  8}},
 -{{237},{  8}}, {{ 29},{  8}}, {{157},{  8}}, {{ 93},{  8}}, {{221},{  8}},
 -{{ 61},{  8}}, {{189},{  8}}, {{125},{  8}}, {{253},{  8}}, {{ 19},{  9}},
 -{{275},{  9}}, {{147},{  9}}, {{403},{  9}}, {{ 83},{  9}}, {{339},{  9}},
 -{{211},{  9}}, {{467},{  9}}, {{ 51},{  9}}, {{307},{  9}}, {{179},{  9}},
 -{{435},{  9}}, {{115},{  9}}, {{371},{  9}}, {{243},{  9}}, {{499},{  9}},
 -{{ 11},{  9}}, {{267},{  9}}, {{139},{  9}}, {{395},{  9}}, {{ 75},{  9}},
 -{{331},{  9}}, {{203},{  9}}, {{459},{  9}}, {{ 43},{  9}}, {{299},{  9}},
 -{{171},{  9}}, {{427},{  9}}, {{107},{  9}}, {{363},{  9}}, {{235},{  9}},
 -{{491},{  9}}, {{ 27},{  9}}, {{283},{  9}}, {{155},{  9}}, {{411},{  9}},
 -{{ 91},{  9}}, {{347},{  9}}, {{219},{  9}}, {{475},{  9}}, {{ 59},{  9}},
 -{{315},{  9}}, {{187},{  9}}, {{443},{  9}}, {{123},{  9}}, {{379},{  9}},
 -{{251},{  9}}, {{507},{  9}}, {{  7},{  9}}, {{263},{  9}}, {{135},{  9}},
 -{{391},{  9}}, {{ 71},{  9}}, {{327},{  9}}, {{199},{  9}}, {{455},{  9}},
 -{{ 39},{  9}}, {{295},{  9}}, {{167},{  9}}, {{423},{  9}}, {{103},{  9}},
 -{{359},{  9}}, {{231},{  9}}, {{487},{  9}}, {{ 23},{  9}}, {{279},{  9}},
 -{{151},{  9}}, {{407},{  9}}, {{ 87},{  9}}, {{343},{  9}}, {{215},{  9}},
 -{{471},{  9}}, {{ 55},{  9}}, {{311},{  9}}, {{183},{  9}}, {{439},{  9}},
 -{{119},{  9}}, {{375},{  9}}, {{247},{  9}}, {{503},{  9}}, {{ 15},{  9}},
 -{{271},{  9}}, {{143},{  9}}, {{399},{  9}}, {{ 79},{  9}}, {{335},{  9}},
 -{{207},{  9}}, {{463},{  9}}, {{ 47},{  9}}, {{303},{  9}}, {{175},{  9}},
 -{{431},{  9}}, {{111},{  9}}, {{367},{  9}}, {{239},{  9}}, {{495},{  9}},
 -{{ 31},{  9}}, {{287},{  9}}, {{159},{  9}}, {{415},{  9}}, {{ 95},{  9}},
 -{{351},{  9}}, {{223},{  9}}, {{479},{  9}}, {{ 63},{  9}}, {{319},{  9}},
 -{{191},{  9}}, {{447},{  9}}, {{127},{  9}}, {{383},{  9}}, {{255},{  9}},
 -{{511},{  9}}, {{  0},{  7}}, {{ 64},{  7}}, {{ 32},{  7}}, {{ 96},{  7}},
 -{{ 16},{  7}}, {{ 80},{  7}}, {{ 48},{  7}}, {{112},{  7}}, {{  8},{  7}},
 -{{ 72},{  7}}, {{ 40},{  7}}, {{104},{  7}}, {{ 24},{  7}}, {{ 88},{  7}},
 -{{ 56},{  7}}, {{120},{  7}}, {{  4},{  7}}, {{ 68},{  7}}, {{ 36},{  7}},
 -{{100},{  7}}, {{ 20},{  7}}, {{ 84},{  7}}, {{ 52},{  7}}, {{116},{  7}},
 -{{  3},{  8}}, {{131},{  8}}, {{ 67},{  8}}, {{195},{  8}}, {{ 35},{  8}},
 -{{163},{  8}}, {{ 99},{  8}}, {{227},{  8}}
 -};
 -
 -local const ct_data static_dtree[D_CODES] = {
 -{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
 -{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
 -{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
 -{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
 -{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
 -{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
 -};
 -
 -const uch _dist_code[DIST_CODE_LEN] = {
 - 0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,
 - 8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10,
 -10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
 -11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
 -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
 -13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
 -13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
 -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
 -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
 -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
 -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17,
 -18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
 -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
 -24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
 -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
 -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
 -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
 -27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
 -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
 -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
 -28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
 -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
 -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
 -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
 -};
 -
 -const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {
 - 0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12,
 -13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
 -17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
 -19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
 -21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
 -22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
 -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
 -24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
 -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
 -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
 -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
 -26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
 -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
 -};
 -
 -local const int base_length[LENGTH_CODES] = {
 -0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
 -64, 80, 96, 112, 128, 160, 192, 224, 0
 -};
 -
 -local const int base_dist[D_CODES] = {
 -    0,     1,     2,     3,     4,     6,     8,    12,    16,    24,
 -   32,    48,    64,    96,   128,   192,   256,   384,   512,   768,
 - 1024,  1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576
 -};
 -
 +/* header created automatically with -DGEN_TREES_H */ + +local const ct_data static_ltree[L_CODES+2] = { +{{ 12},{  8}}, {{140},{  8}}, {{ 76},{  8}}, {{204},{  8}}, {{ 44},{  8}}, +{{172},{  8}}, {{108},{  8}}, {{236},{  8}}, {{ 28},{  8}}, {{156},{  8}}, +{{ 92},{  8}}, {{220},{  8}}, {{ 60},{  8}}, {{188},{  8}}, {{124},{  8}}, +{{252},{  8}}, {{  2},{  8}}, {{130},{  8}}, {{ 66},{  8}}, {{194},{  8}}, +{{ 34},{  8}}, {{162},{  8}}, {{ 98},{  8}}, {{226},{  8}}, {{ 18},{  8}}, +{{146},{  8}}, {{ 82},{  8}}, {{210},{  8}}, {{ 50},{  8}}, {{178},{  8}}, +{{114},{  8}}, {{242},{  8}}, {{ 10},{  8}}, {{138},{  8}}, {{ 74},{  8}}, +{{202},{  8}}, {{ 42},{  8}}, {{170},{  8}}, {{106},{  8}}, {{234},{  8}}, +{{ 26},{  8}}, {{154},{  8}}, {{ 90},{  8}}, {{218},{  8}}, {{ 58},{  8}}, +{{186},{  8}}, {{122},{  8}}, {{250},{  8}}, {{  6},{  8}}, {{134},{  8}}, +{{ 70},{  8}}, {{198},{  8}}, {{ 38},{  8}}, {{166},{  8}}, {{102},{  8}}, +{{230},{  8}}, {{ 22},{  8}}, {{150},{  8}}, {{ 86},{  8}}, {{214},{  8}}, +{{ 54},{  8}}, {{182},{  8}}, {{118},{  8}}, {{246},{  8}}, {{ 14},{  8}}, +{{142},{  8}}, {{ 78},{  8}}, {{206},{  8}}, {{ 46},{  8}}, {{174},{  8}}, +{{110},{  8}}, {{238},{  8}}, {{ 30},{  8}}, {{158},{  8}}, {{ 94},{  8}}, +{{222},{  8}}, {{ 62},{  8}}, {{190},{  8}}, {{126},{  8}}, {{254},{  8}}, +{{  1},{  8}}, {{129},{  8}}, {{ 65},{  8}}, {{193},{  8}}, {{ 33},{  8}}, +{{161},{  8}}, {{ 97},{  8}}, {{225},{  8}}, {{ 17},{  8}}, {{145},{  8}}, +{{ 81},{  8}}, {{209},{  8}}, {{ 49},{  8}}, {{177},{  8}}, {{113},{  8}}, +{{241},{  8}}, {{  9},{  8}}, {{137},{  8}}, {{ 73},{  8}}, {{201},{  8}}, +{{ 41},{  8}}, {{169},{  8}}, {{105},{  8}}, {{233},{  8}}, {{ 25},{  8}}, +{{153},{  8}}, {{ 89},{  8}}, {{217},{  8}}, {{ 57},{  8}}, {{185},{  8}}, +{{121},{  8}}, {{249},{  8}}, {{  5},{  8}}, {{133},{  8}}, {{ 69},{  8}}, +{{197},{  8}}, {{ 37},{  8}}, {{165},{  8}}, {{101},{  8}}, {{229},{  8}}, +{{ 21},{  8}}, {{149},{  8}}, {{ 85},{  8}}, {{213},{  8}}, {{ 53},{  8}}, +{{181},{  8}}, {{117},{  8}}, {{245},{  8}}, {{ 13},{  8}}, {{141},{  8}}, +{{ 77},{  8}}, {{205},{  8}}, {{ 45},{  8}}, {{173},{  8}}, {{109},{  8}}, +{{237},{  8}}, {{ 29},{  8}}, {{157},{  8}}, {{ 93},{  8}}, {{221},{  8}}, +{{ 61},{  8}}, {{189},{  8}}, {{125},{  8}}, {{253},{  8}}, {{ 19},{  9}}, +{{275},{  9}}, {{147},{  9}}, {{403},{  9}}, {{ 83},{  9}}, {{339},{  9}}, +{{211},{  9}}, {{467},{  9}}, {{ 51},{  9}}, {{307},{  9}}, {{179},{  9}}, +{{435},{  9}}, {{115},{  9}}, {{371},{  9}}, {{243},{  9}}, {{499},{  9}}, +{{ 11},{  9}}, {{267},{  9}}, {{139},{  9}}, {{395},{  9}}, {{ 75},{  9}}, +{{331},{  9}}, {{203},{  9}}, {{459},{  9}}, {{ 43},{  9}}, {{299},{  9}}, +{{171},{  9}}, {{427},{  9}}, {{107},{  9}}, {{363},{  9}}, {{235},{  9}}, +{{491},{  9}}, {{ 27},{  9}}, {{283},{  9}}, {{155},{  9}}, {{411},{  9}}, +{{ 91},{  9}}, {{347},{  9}}, {{219},{  9}}, {{475},{  9}}, {{ 59},{  9}}, +{{315},{  9}}, {{187},{  9}}, {{443},{  9}}, {{123},{  9}}, {{379},{  9}}, +{{251},{  9}}, {{507},{  9}}, {{  7},{  9}}, {{263},{  9}}, {{135},{  9}}, +{{391},{  9}}, {{ 71},{  9}}, {{327},{  9}}, {{199},{  9}}, {{455},{  9}}, +{{ 39},{  9}}, {{295},{  9}}, {{167},{  9}}, {{423},{  9}}, {{103},{  9}}, +{{359},{  9}}, {{231},{  9}}, {{487},{  9}}, {{ 23},{  9}}, {{279},{  9}}, +{{151},{  9}}, {{407},{  9}}, {{ 87},{  9}}, {{343},{  9}}, {{215},{  9}}, +{{471},{  9}}, {{ 55},{  9}}, {{311},{  9}}, {{183},{  9}}, {{439},{  9}}, +{{119},{  9}}, {{375},{  9}}, {{247},{  9}}, {{503},{  9}}, {{ 15},{  9}}, +{{271},{  9}}, {{143},{  9}}, {{399},{  9}}, {{ 79},{  9}}, {{335},{  9}}, +{{207},{  9}}, {{463},{  9}}, {{ 47},{  9}}, {{303},{  9}}, {{175},{  9}}, +{{431},{  9}}, {{111},{  9}}, {{367},{  9}}, {{239},{  9}}, {{495},{  9}}, +{{ 31},{  9}}, {{287},{  9}}, {{159},{  9}}, {{415},{  9}}, {{ 95},{  9}}, +{{351},{  9}}, {{223},{  9}}, {{479},{  9}}, {{ 63},{  9}}, {{319},{  9}}, +{{191},{  9}}, {{447},{  9}}, {{127},{  9}}, {{383},{  9}}, {{255},{  9}}, +{{511},{  9}}, {{  0},{  7}}, {{ 64},{  7}}, {{ 32},{  7}}, {{ 96},{  7}}, +{{ 16},{  7}}, {{ 80},{  7}}, {{ 48},{  7}}, {{112},{  7}}, {{  8},{  7}}, +{{ 72},{  7}}, {{ 40},{  7}}, {{104},{  7}}, {{ 24},{  7}}, {{ 88},{  7}}, +{{ 56},{  7}}, {{120},{  7}}, {{  4},{  7}}, {{ 68},{  7}}, {{ 36},{  7}}, +{{100},{  7}}, {{ 20},{  7}}, {{ 84},{  7}}, {{ 52},{  7}}, {{116},{  7}}, +{{  3},{  8}}, {{131},{  8}}, {{ 67},{  8}}, {{195},{  8}}, {{ 35},{  8}}, +{{163},{  8}}, {{ 99},{  8}}, {{227},{  8}} +}; + +local const ct_data static_dtree[D_CODES] = { +{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, +{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, +{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, +{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, +{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, +{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} +}; + +const uch _dist_code[DIST_CODE_LEN] = { + 0,  1,  2,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8, + 8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 10, +10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, +11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, +12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  0,  0, 16, 17, +18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 +}; + +const uch _length_code[MAX_MATCH-MIN_MATCH+1]= { + 0,  1,  2,  3,  4,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 12, 12, +13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, +17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, +19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, +21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, +22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 +}; + +local const int base_length[LENGTH_CODES] = { +0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, +64, 80, 96, 112, 128, 160, 192, 224, 0 +}; + +local const int base_dist[D_CODES] = { +    0,     1,     2,     3,     4,     6,     8,    12,    16,    24, +   32,    48,    64,    96,   128,   192,   256,   384,   512,   768, + 1024,  1536,  2048,  3072,  4096,  6144,  8192, 12288, 16384, 24576 +}; + diff --git a/lib/zlib/include/zconf.h b/lib/zlib/include/zconf.h index 0a87ed0..458a72b 100644 --- a/lib/zlib/include/zconf.h +++ b/lib/zlib/include/zconf.h @@ -1,283 +1,283 @@ -/* zconf.h -- configuration of the zlib compression library
 - * Copyright (C) 1995-2002 Jean-loup Gailly.
 - * For conditions of distribution and use, see copyright notice in zlib.h 
 - */
 -
 -/* @(#) $Id: zconf.h,v 1.2 2004-11-27 21:43:51 pixel Exp $ */
 -
 -#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.
 - */
 -#ifdef Z_PREFIX
 -#  define deflateInit_	z_deflateInit_
 -#  define deflate	z_deflate
 -#  define deflateEnd	z_deflateEnd
 -#  define inflateInit_ 	z_inflateInit_
 -#  define inflate	z_inflate
 -#  define inflateEnd	z_inflateEnd
 -#  define deflateInit2_	z_deflateInit2_
 -#  define deflateSetDictionary z_deflateSetDictionary
 -#  define deflateCopy	z_deflateCopy
 -#  define deflateReset	z_deflateReset
 -#  define deflateParams	z_deflateParams
 -#  define inflateInit2_	z_inflateInit2_
 -#  define inflateSetDictionary z_inflateSetDictionary
 -#  define inflateSync	z_inflateSync
 -#  define inflateSyncPoint z_inflateSyncPoint
 -#  define inflateReset	z_inflateReset
 -#  define compress	z_compress
 -#  define compress2	z_compress2
 -#  define uncompress	z_uncompress
 -#  define adler32	z_adler32
 -#  define crc32		z_crc32
 -#  define get_crc_table z_get_crc_table
 -
 -#  define Byte		z_Byte
 -#  define uInt		z_uInt
 -#  define uLong		z_uLong
 -#  define Bytef	        z_Bytef
 -#  define charf		z_charf
 -#  define intf		z_intf
 -#  define uIntf		z_uIntf
 -#  define uLongf	z_uLongf
 -#  define voidpf	z_voidpf
 -#  define voidp		z_voidp
 -#endif
 -
 -#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
 -#  define WIN32
 -#endif
 -#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
 -#  ifndef __32BIT__
 -#    define __32BIT__
 -#  endif
 -#endif
 -#if defined(__MSDOS__) && !defined(MSDOS)
 -#  define MSDOS
 -#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).
 - */
 -#if defined(MSDOS) && !defined(__32BIT__)
 -#  define MAXSEG_64K
 -#endif
 -#ifdef MSDOS
 -#  define UNALIGNED_OK
 -#endif
 -
 -#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32))  && !defined(STDC)
 -#  define STDC
 -#endif
 -#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
 -#  ifndef STDC
 -#    define STDC
 -#  endif
 -#endif
 -
 -#ifndef STDC
 -#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
 -#    define const
 -#  endif
 -#endif
 -
 -/* Some Mac compilers merge all .h files incorrectly: */
 -#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
 -#  define NO_DUMMY_DECL
 -#endif
 -
 -/* Old Borland C incorrectly complains about missing returns: */
 -#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
 -#  define NEED_DUMMY_RETURN
 -#endif
 -
 -
 -/* Maximum value for memLevel in deflateInit2 */
 -#ifndef MAX_MEM_LEVEL
 -#  ifdef MAXSEG_64K
 -#    define MAX_MEM_LEVEL 8
 -#  else
 -#    define MAX_MEM_LEVEL 9
 -#  endif
 -#endif
 -
 -/* Maximum value for windowBits in deflateInit2 and inflateInit2.
 - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
 - * created by gzip. (Files created by minigzip can still be extracted by
 - * gzip.)
 - */
 -#ifndef MAX_WBITS
 -#  define MAX_WBITS   15 /* 32K LZ77 window */
 -#endif
 -
 -/* The memory requirements for deflate are (in bytes):
 -            (1 << (windowBits+2)) +  (1 << (memLevel+9))
 - that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
 - plus a few kilobytes for small objects. For example, if you want to reduce
 - the default memory requirements from 256K to 128K, compile with
 -     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
 - Of course this will generally degrade compression (there's no free lunch).
 -
 -   The memory requirements for inflate are (in bytes) 1 << windowBits
 - that is, 32K for windowBits=15 (default value) plus a few kilobytes
 - for small objects.
 -*/
 -
 -                        /* Type declarations */
 -
 -#ifndef OF /* function prototypes */
 -#  ifdef STDC
 -#    define OF(args)  args
 -#  else
 -#    define OF(args)  ()
 -#  endif
 -#endif
 -
 -/* 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.
 - */
 -#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
 -   /* MSC small or medium model */
 -#  define SMALL_MEDIUM
 -#  ifdef _MSC_VER
 -#    define FAR _far
 -#  else
 -#    define FAR far
 -#  endif
 -#endif
 -#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
 -#  ifndef __32BIT__
 -#    define SMALL_MEDIUM
 -#    define FAR _far
 -#  endif
 -#endif
 -
 -/* Compile with -DZLIB_DLL for Windows DLL support */
 -#if defined(ZLIB_DLL)
 -#  if defined(_WINDOWS) || defined(WINDOWS)
 -#    ifdef FAR
 -#      undef FAR
 -#    endif
 -#    include <windows.h>
 -#    define ZEXPORT  WINAPI
 -#    ifdef WIN32
 -#      define ZEXPORTVA  WINAPIV
 -#    else
 -#      define ZEXPORTVA  FAR _cdecl _export
 -#    endif
 -#  endif
 -#  if defined (__BORLANDC__)
 -#    if (__BORLANDC__ >= 0x0500) && defined (WIN32)
 -#      include <windows.h>
 -#      define ZEXPORT __declspec(dllexport) WINAPI
 -#      define ZEXPORTRVA __declspec(dllexport) WINAPIV
 -#    else
 -#      if defined (_Windows) && defined (__DLL__)
 -#        define ZEXPORT _export
 -#        define ZEXPORTVA _export
 -#      endif
 -#    endif
 -#  endif
 -#endif
 -
 -#if defined (__BEOS__)
 -#  if defined (ZLIB_DLL)
 -#    define ZEXTERN extern __declspec(dllexport)
 -#  else
 -#    define ZEXTERN extern __declspec(dllimport)
 -#  endif
 -#endif
 -
 -#ifndef ZEXPORT
 -#  define ZEXPORT
 -#endif
 -#ifndef ZEXPORTVA
 -#  define ZEXPORTVA
 -#endif
 -#ifndef ZEXTERN
 -#  define ZEXTERN extern
 -#endif
 -
 -#ifndef FAR
 -#   define FAR
 -#endif
 -
 -#if !defined(MACOS) && !defined(TARGET_OS_MAC)
 -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 FAR *voidpf;
 -   typedef void     *voidp;
 -   typedef const void FAR *cvoidpf;
 -   typedef const void     *cvoidp;
 -#else
 -   typedef Byte FAR *voidpf;
 -   typedef Byte     *voidp;
 -   typedef const Byte FAR *cvoidpf;
 -   typedef const Byte     *cvoidp;
 -#endif
 -
 -#ifdef HAVE_UNISTD_H
 -#  include <sys/types.h> /* for off_t */
 -#  include <unistd.h>    /* for SEEK_* and off_t */
 -#  define z_off_t  off_t
 -#endif
 -#ifndef SEEK_SET
 -#  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
 -
 -/* 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(inflateInit_,"ININ")
 -#   pragma map(inflateInit2_,"ININ2")
 -#   pragma map(inflateEnd,"INEND")
 -#   pragma map(inflateSync,"INSY")
 -#   pragma map(inflateSetDictionary,"INSEDI")
 -#   pragma map(inflate_blocks,"INBL")
 -#   pragma map(inflate_blocks_new,"INBLNE")
 -#   pragma map(inflate_blocks_free,"INBLFR")
 -#   pragma map(inflate_blocks_reset,"INBLRE")
 -#   pragma map(inflate_codes_free,"INCOFR")
 -#   pragma map(inflate_codes,"INCO")
 -#   pragma map(inflate_fast,"INFA")
 -#   pragma map(inflate_flush,"INFLU")
 -#   pragma map(inflate_mask,"INMA")
 -#   pragma map(inflate_set_dictionary,"INSEDI2")
 -#   pragma map(inflate_copyright,"INCOPY")
 -#   pragma map(inflate_trees_bits,"INTRBI")
 -#   pragma map(inflate_trees_dynamic,"INTRDY")
 -#   pragma map(inflate_trees_fixed,"INTRFI")
 -#   pragma map(inflate_trees_free,"INTRFR")
 -#endif
 -
 -#endif /* _ZCONF_H */
 +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2002 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h  + */ + +/* @(#) $Id: zconf.h,v 1.3 2004-11-27 21:46:12 pixel Exp $ */ + +#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. + */ +#ifdef Z_PREFIX +#  define deflateInit_	z_deflateInit_ +#  define deflate	z_deflate +#  define deflateEnd	z_deflateEnd +#  define inflateInit_ 	z_inflateInit_ +#  define inflate	z_inflate +#  define inflateEnd	z_inflateEnd +#  define deflateInit2_	z_deflateInit2_ +#  define deflateSetDictionary z_deflateSetDictionary +#  define deflateCopy	z_deflateCopy +#  define deflateReset	z_deflateReset +#  define deflateParams	z_deflateParams +#  define inflateInit2_	z_inflateInit2_ +#  define inflateSetDictionary z_inflateSetDictionary +#  define inflateSync	z_inflateSync +#  define inflateSyncPoint z_inflateSyncPoint +#  define inflateReset	z_inflateReset +#  define compress	z_compress +#  define compress2	z_compress2 +#  define uncompress	z_uncompress +#  define adler32	z_adler32 +#  define crc32		z_crc32 +#  define get_crc_table z_get_crc_table + +#  define Byte		z_Byte +#  define uInt		z_uInt +#  define uLong		z_uLong +#  define Bytef	        z_Bytef +#  define charf		z_charf +#  define intf		z_intf +#  define uIntf		z_uIntf +#  define uLongf	z_uLongf +#  define voidpf	z_voidpf +#  define voidp		z_voidp +#endif + +#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) +#  define WIN32 +#endif +#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) +#  ifndef __32BIT__ +#    define __32BIT__ +#  endif +#endif +#if defined(__MSDOS__) && !defined(MSDOS) +#  define MSDOS +#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). + */ +#if defined(MSDOS) && !defined(__32BIT__) +#  define MAXSEG_64K +#endif +#ifdef MSDOS +#  define UNALIGNED_OK +#endif + +#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32))  && !defined(STDC) +#  define STDC +#endif +#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__) +#  ifndef STDC +#    define STDC +#  endif +#endif + +#ifndef STDC +#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +#    define const +#  endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__) +#  define NO_DUMMY_DECL +#endif + +/* Old Borland C incorrectly complains about missing returns: */ +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) +#  define NEED_DUMMY_RETURN +#endif + + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +#  ifdef MAXSEG_64K +#    define MAX_MEM_LEVEL 8 +#  else +#    define MAX_MEM_LEVEL 9 +#  endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +#  define MAX_WBITS   15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): +            (1 << (windowBits+2)) +  (1 << (memLevel+9)) + that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with +     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + +   The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + +                        /* Type declarations */ + +#ifndef OF /* function prototypes */ +#  ifdef STDC +#    define OF(args)  args +#  else +#    define OF(args)  () +#  endif +#endif + +/* 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. + */ +#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) +   /* MSC small or medium model */ +#  define SMALL_MEDIUM +#  ifdef _MSC_VER +#    define FAR _far +#  else +#    define FAR far +#  endif +#endif +#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) +#  ifndef __32BIT__ +#    define SMALL_MEDIUM +#    define FAR _far +#  endif +#endif + +/* Compile with -DZLIB_DLL for Windows DLL support */ +#if defined(ZLIB_DLL) +#  if defined(_WINDOWS) || defined(WINDOWS) +#    ifdef FAR +#      undef FAR +#    endif +#    include <windows.h> +#    define ZEXPORT  WINAPI +#    ifdef WIN32 +#      define ZEXPORTVA  WINAPIV +#    else +#      define ZEXPORTVA  FAR _cdecl _export +#    endif +#  endif +#  if defined (__BORLANDC__) +#    if (__BORLANDC__ >= 0x0500) && defined (WIN32) +#      include <windows.h> +#      define ZEXPORT __declspec(dllexport) WINAPI +#      define ZEXPORTRVA __declspec(dllexport) WINAPIV +#    else +#      if defined (_Windows) && defined (__DLL__) +#        define ZEXPORT _export +#        define ZEXPORTVA _export +#      endif +#    endif +#  endif +#endif + +#if defined (__BEOS__) +#  if defined (ZLIB_DLL) +#    define ZEXTERN extern __declspec(dllexport) +#  else +#    define ZEXTERN extern __declspec(dllimport) +#  endif +#endif + +#ifndef ZEXPORT +#  define ZEXPORT +#endif +#ifndef ZEXPORTVA +#  define ZEXPORTVA +#endif +#ifndef ZEXTERN +#  define ZEXTERN extern +#endif + +#ifndef FAR +#   define FAR +#endif + +#if !defined(MACOS) && !defined(TARGET_OS_MAC) +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 FAR *voidpf; +   typedef void     *voidp; +   typedef const void FAR *cvoidpf; +   typedef const void     *cvoidp; +#else +   typedef Byte FAR *voidpf; +   typedef Byte     *voidp; +   typedef const Byte FAR *cvoidpf; +   typedef const Byte     *cvoidp; +#endif + +#ifdef HAVE_UNISTD_H +#  include <sys/types.h> /* for off_t */ +#  include <unistd.h>    /* for SEEK_* and off_t */ +#  define z_off_t  off_t +#endif +#ifndef SEEK_SET +#  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 + +/* 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(inflateInit_,"ININ") +#   pragma map(inflateInit2_,"ININ2") +#   pragma map(inflateEnd,"INEND") +#   pragma map(inflateSync,"INSY") +#   pragma map(inflateSetDictionary,"INSEDI") +#   pragma map(inflate_blocks,"INBL") +#   pragma map(inflate_blocks_new,"INBLNE") +#   pragma map(inflate_blocks_free,"INBLFR") +#   pragma map(inflate_blocks_reset,"INBLRE") +#   pragma map(inflate_codes_free,"INCOFR") +#   pragma map(inflate_codes,"INCO") +#   pragma map(inflate_fast,"INFA") +#   pragma map(inflate_flush,"INFLU") +#   pragma map(inflate_mask,"INMA") +#   pragma map(inflate_set_dictionary,"INSEDI2") +#   pragma map(inflate_copyright,"INCOPY") +#   pragma map(inflate_trees_bits,"INTRBI") +#   pragma map(inflate_trees_dynamic,"INTRDY") +#   pragma map(inflate_trees_fixed,"INTRFI") +#   pragma map(inflate_trees_free,"INTRFR") +#endif + +#endif /* _ZCONF_H */ diff --git a/lib/zlib/include/zlib.h b/lib/zlib/include/zlib.h index fc81811..b2f0ef0 100644 --- a/lib/zlib/include/zlib.h +++ b/lib/zlib/include/zlib.h @@ -1,893 +1,893 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library
 -  version 1.1.4, March 11th, 2002
 -
 -  Copyright (C) 1995-2002 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 ftp://ds.internic.net/rfc/rfc1950.txt
 -  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
 -*/
 -
 -#ifndef _ZLIB_H
 -#define _ZLIB_H
 -
 -#include "zconf.h"
 -
 -#ifdef __cplusplus
 -extern "C" {
 -#endif
 -
 -#define ZLIB_VERSION "1.1.4"
 -
 -/* 
 -     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 (for example if an input file is mmap'ed), 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 library also supports reading and writing files in gzip (.gz) format
 -  with an interface similar to that of stdio.
 -
 -     The library does not install any signal handler. The decoder checks
 -  the consistency of the compressed data, so the library should never
 -  crash even in case of corrupted input.
 -*/
 -
 -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
 -typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
 -
 -struct internal_state;
 -
 -typedef struct z_stream_s {
 -    Bytef    *next_in;  /* next input byte */
 -    uInt     avail_in;  /* number of bytes available at next_in */
 -    uLong    total_in;  /* total nb of input bytes read so far */
 -
 -    Bytef    *next_out; /* next output byte should be put there */
 -    uInt     avail_out; /* remaining free space at next_out */
 -    uLong    total_out; /* total nb of bytes output so far */
 -
 -    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: ascii or binary */
 -    uLong   adler;      /* adler32 value of the uncompressed data */
 -    uLong   reserved;   /* reserved for future use */
 -} z_stream;
 -
 -typedef z_stream FAR *z_streamp;
 -
 -/*
 -   The application must update next_in and avail_in when avail_in has
 -   dropped to zero. It must update next_out and avail_out when avail_out
 -   has dropped to zero. The application must initialize zalloc, zfree and
 -   opaque before calling the init function. All other fields are set by the
 -   compression library and must not be updated by the application.
 -
 -   The opaque value provided by the application will be passed as the first
 -   parameter for calls of zalloc and zfree. This can be useful for custom
 -   memory management. The compression library attaches no meaning to the
 -   opaque value.
 -
 -   zalloc must return Z_NULL if there is not enough memory for the object.
 -   If zlib is used in a multi-threaded application, zalloc and zfree must be
 -   thread safe.
 -
 -   On 16-bit systems, the functions zalloc and zfree must be able to allocate
 -   exactly 65536 bytes, but will not be required to allocate more than this
 -   if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
 -   pointers returned by zalloc for objects of exactly 65536 bytes *must*
 -   have their offset normalized to zero. The default allocation function
 -   provided by this library ensures this (see zutil.c). To reduce memory
 -   requirements and avoid any allocation of 64K objects, at the expense of
 -   compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
 -
 -   The fields total_in and total_out can be used for statistics or
 -   progress reports. After compression, total_in holds the total size of
 -   the uncompressed data and may be saved for use in the decompressor
 -   (particularly if the decompressor wants to decompress everything in
 -   a single step).
 -*/
 -
 -                        /* constants */
 -
 -#define Z_NO_FLUSH      0
 -#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
 -#define Z_SYNC_FLUSH    2
 -#define Z_FULL_FLUSH    3
 -#define Z_FINISH        4
 -/* Allowed flush values; see deflate() 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_DEFAULT_STRATEGY    0
 -/* compression strategy; see deflateInit2() below for details */
 -
 -#define Z_BINARY   0
 -#define Z_ASCII    1
 -#define Z_UNKNOWN  2
 -/* Possible values of the data_type field */
 -
 -#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,
 -   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
 -   with the version assumed by the caller (ZLIB_VERSION).
 -   msg is set to null if there is no error message.  deflateInit does not
 -   perform any compression: this will be done by deflate().
 -*/
 -
 -
 -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
 -/*
 -    deflate compresses as much data as possible, and stops when the input
 -  buffer becomes empty or the output buffer becomes full. It may introduce some
 -  output latency (reading input without producing any output) except when
 -  forced to flush.
 -
 -    The detailed semantics are as follows. deflate performs one or both of the
 -  following actions:
 -
 -  - Compress more input starting at next_in and update next_in and avail_in
 -    accordingly. If not all input can be processed (because there is not
 -    enough room in the output buffer), next_in and avail_in are updated and
 -    processing will resume at this point for the next call of deflate().
 -
 -  - Provide more output starting at next_out and update next_out and avail_out
 -    accordingly. This action is forced if the parameter flush is non zero.
 -    Forcing flush frequently degrades the compression ratio, so this parameter
 -    should be set only when necessary (in interactive applications).
 -    Some output may be provided even if flush is not set.
 -
 -  Before the call of deflate(), the application should ensure that at least
 -  one of the actions is possible, by providing more input and/or consuming
 -  more output, and updating avail_in or avail_out accordingly; avail_out
 -  should never be zero before the call. The application can consume the
 -  compressed output when it wants, for example when the output buffer is full
 -  (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
 -  and with zero avail_out, it must be called again after making room in the
 -  output buffer because there might be more output pending.
 -
 -    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.
 -
 -    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
 -  the 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).
 -
 -    If the parameter flush is set to Z_FINISH, pending input is processed,
 -  pending output is flushed and deflate returns with Z_STREAM_END if there
 -  was enough output space; if deflate returns with Z_OK, this function must be
 -  called again with Z_FINISH and more output space (updated avail_out) but no
 -  more input data, until it returns with Z_STREAM_END or an error. After
 -  deflate has returned Z_STREAM_END, the only possible operations on the
 -  stream are deflateReset or deflateEnd.
 -  
 -    Z_FINISH can be used immediately after deflateInit if all the compression
 -  is to be done in a single step. In this case, avail_out must be at least
 -  0.1% larger than avail_in plus 12 bytes.  If deflate does not return
 -  Z_STREAM_END, then it must be called again as described above.
 -
 -    deflate() sets strm->adler to the adler32 checksum of all input read
 -  so far (that is, total_in bytes).
 -
 -    deflate() may update data_type if it can make a good guess about
 -  the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
 -  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 NULL), Z_BUF_ERROR if no progress is possible
 -  (for example avail_in or avail_out was zero).
 -*/
 -
 -
 -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
 -/*
 -     All dynamically allocated data structures for this stream are freed.
 -   This function discards any unprocessed input and does not flush any
 -   pending output.
 -
 -     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
 -   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
 -   prematurely (some input or output was discarded). In the error case,
 -   msg may be set but then points to a static string (which must not be
 -   deallocated).
 -*/
 -
 -
 -/* 
 -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
 -
 -     Initializes the internal stream state for decompression. The fields
 -   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
 -   the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
 -   value depends on the compression method), inflateInit determines the
 -   compression method from the zlib header and allocates all data structures
 -   accordingly; otherwise the allocation will be deferred to the first call of
 -   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
 -   use default allocation functions.
 -
 -     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
 -   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
 -   version assumed by the caller.  msg is set to null if there is no error
 -   message. inflateInit does not perform any decompression apart from reading
 -   the zlib header if present: this will be done by inflate().  (So next_in and
 -   avail_in may be modified, but next_out and avail_out are unchanged.)
 -*/
 -
 -
 -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 some
 -  introduce some output latency (reading input without producing any output)
 -  except when forced to flush.
 -
 -  The detailed semantics are as follows. inflate performs one or both of the
 -  following actions:
 -
 -  - Decompress more input starting at next_in and update next_in and avail_in
 -    accordingly. If not all input can be processed (because there is not
 -    enough room in the output buffer), next_in is updated and processing
 -    will resume at this point for the next call of inflate().
 -
 -  - Provide more output starting at next_out and update next_out and avail_out
 -    accordingly.  inflate() provides as much output as possible, until there
 -    is no more input data or no more space in the output buffer (see below
 -    about the flush parameter).
 -
 -  Before the call of inflate(), the application should ensure that at least
 -  one of the actions is possible, by providing more input and/or consuming
 -  more output, and updating the next_* and avail_* values accordingly.
 -  The application can consume the uncompressed output when it wants, for
 -  example when the output buffer is full (avail_out == 0), or after each
 -  call of inflate(). If inflate returns Z_OK and with zero avail_out, it
 -  must be called again after making room in the output buffer because there
 -  might be more output pending.
 -
 -    If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
 -  output as possible to the output buffer. The flushing behavior of inflate is
 -  not specified for values of the flush parameter other than Z_SYNC_FLUSH
 -  and Z_FINISH, but the current implementation actually flushes as much output
 -  as possible anyway.
 -
 -    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 the
 -  uncompressed data. (The size of the uncompressed data may have been saved
 -  by the compressor for this purpose.) The next operation on this stream must
 -  be inflateEnd to deallocate the decompression state. The use of Z_FINISH
 -  is never required, but can be used to inform inflate that a faster routine
 -  may be used for the single inflate() call.
 -
 -     If a preset dictionary is needed at this point (see inflateSetDictionary
 -  below), inflate sets strm-adler to the adler32 checksum of the
 -  dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise 
 -  it sets strm->adler to the adler32 checksum of all output produced
 -  so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
 -  an error code as described below. At the end of the stream, inflate()
 -  checks that its computed adler32 checksum is equal to that saved by the
 -  compressor and returns Z_STREAM_END only if the checksum is correct.
 -
 -    inflate() 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
 -  adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
 -  (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
 -  enough memory, Z_BUF_ERROR if no progress is possible or if there was not
 -  enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
 -  case, the application may then call inflateSync to look for a good
 -  compression block.
 -*/
 -
 -
 -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
 -/*
 -     All dynamically allocated data structures for this stream are freed.
 -   This function discards any unprocessed input and does not flush any
 -   pending output.
 -
 -     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
 -   was inconsistent. In the error case, msg may be set but then points to a
 -   static string (which must not be deallocated).
 -*/
 -
 -                        /* Advanced functions */
 -
 -/*
 -    The following functions are needed only in some special applications.
 -*/
 -
 -/*   
 -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
 -                                     int  level,
 -                                     int  method,
 -                                     int  windowBits,
 -                                     int  memLevel,
 -                                     int  strategy));
 -
 -     This is another version of deflateInit with more compression options. The
 -   fields next_in, zalloc, zfree and opaque must be initialized before by
 -   the caller.
 -
 -     The method parameter is the compression method. It must be Z_DEFLATED in
 -   this version of the library.
 -
 -     The windowBits parameter is the base two logarithm of the window size
 -   (the size of the history buffer).  It should be in the range 8..15 for this
 -   version of the library. Larger values of this parameter result in better
 -   compression at the expense of memory usage. The default value is 15 if
 -   deflateInit is used instead.
 -
 -     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), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
 -   string match).  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 and Z_HUFFMAN_ONLY. The strategy parameter only affects
 -   the compression ratio but not the correctness of the compressed output even
 -   if it is not set appropriately.
 -
 -      deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
 -   memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
 -   method). 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. This function must be called
 -   immediately after deflateInit, deflateInit2 or deflateReset, before any
 -   call of deflate. 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 in
 -   deflate or deflate2. Thus the strings most likely to be useful should be
 -   put at the end of the dictionary, not at the front.
 -
 -     Upon return of this function, strm->adler is set to the Adler32 value
 -   of the dictionary; the decompressor may later use this value to determine
 -   which dictionary has been used by the compressor. (The Adler32 value
 -   applies to the whole dictionary even if only a subset of the dictionary is
 -   actually used by the compressor.)
 -
 -     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
 -   parameter is invalid (such as NULL dictionary) or the stream state is
 -   inconsistent (for example if deflate has already been called for this stream
 -   or if the compression method is bsort). deflateSetDictionary does not
 -   perform any compression: this will be done by deflate().
 -*/
 -
 -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
 -                                    z_streamp source));
 -/*
 -     Sets the destination stream as a complete copy of the source stream.
 -
 -     This function can be useful when several compression strategies will be
 -   tried, for example when there are several ways of pre-processing the input
 -   data with a filter. The streams that will be discarded should then be freed
 -   by calling deflateEnd.  Note that deflateCopy duplicates the internal
 -   compression state which can be quite large, so this strategy is slow and
 -   can consume lots of memory.
 -
 -     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
 -   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
 -   (such as zalloc being NULL). msg is left unchanged in both source and
 -   destination.
 -*/
 -
 -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
 -/*
 -     This function is equivalent to deflateEnd followed by deflateInit,
 -   but does not free and reallocate all the internal compression state.
 -   The stream will keep the same compression level and any other attributes
 -   that may have been set by deflateInit2.
 -
 -      deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
 -   stream state was inconsistent (such as zalloc or state being NULL).
 -*/
 -
 -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
 -				      int level,
 -				      int strategy));
 -/*
 -     Dynamically update the compression level and compression strategy.  The
 -   interpretation of level and strategy is as in deflateInit2.  This can be
 -   used to switch between compression and straight copy of the input data, or
 -   to switch to a different kind of input data requiring a different
 -   strategy. If the compression level is changed, the input available so far
 -   is compressed with the old level (and may be flushed); the new level will
 -   take effect only at the next call of deflate().
 -
 -     Before the call of deflateParams, the stream state must be set as for
 -   a call of deflate(), since the currently available input may have to
 -   be compressed and flushed. In particular, strm->avail_out must be non-zero.
 -
 -     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
 -   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
 -   if strm->avail_out was zero.
 -*/
 -
 -/*   
 -ZEXTERN int ZEXPORT 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. 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.
 -
 -      inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
 -   memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
 -   memLevel). msg is set to null if there is no error message.  inflateInit2
 -   does not perform any decompression apart from reading the zlib header if
 -   present: this will be done by inflate(). (So next_in and avail_in may be
 -   modified, but next_out and avail_out are unchanged.)
 -*/
 -
 -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 this call returned Z_NEED_DICT. The dictionary chosen by the compressor
 -   can be determined from the Adler32 value returned by this call of
 -   inflate. The compressor and decompressor must use exactly the same
 -   dictionary (see deflateSetDictionary).
 -
 -     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
 -   parameter is invalid (such as NULL dictionary) or the stream state is
 -   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
 -   expected one (incorrect Adler32 value). inflateSetDictionary does not
 -   perform any decompression: this will be done by subsequent calls of
 -   inflate().
 -*/
 -
 -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
 -/* 
 -    Skips invalid compressed data until a full flush point (see above the
 -  description of deflate with Z_FULL_FLUSH) can be found, or until all
 -  available input is skipped. No output is provided.
 -
 -    inflateSync returns Z_OK if a 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 inflateReset OF((z_streamp strm));
 -/*
 -     This function is equivalent to inflateEnd followed by inflateInit,
 -   but does not free and reallocate all the internal decompression state.
 -   The stream will keep attributes that may have been set by inflateInit2.
 -
 -      inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
 -   stream state was inconsistent (such as zalloc or state being NULL).
 -*/
 -
 -
 -                        /* 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 easily 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 0.1% larger than
 -   sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
 -   compressed buffer.
 -     This function can be used to compress a whole file at once if the
 -   input file is mmap'ed.
 -     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 0.1% larger than sourceLen plus
 -   12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
 -
 -     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
 -   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
 -   Z_STREAM_ERROR if the level parameter is invalid.
 -*/
 -
 -ZEXTERN 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 compressed buffer.
 -     This function can be used to decompress a whole file at once if the
 -   input file is mmap'ed.
 -
 -     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.
 -*/
 -
 -
 -typedef voidp gzFile;
 -
 -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". (See the description
 -   of deflateInit2 for more information about the strategy parameter.)
 -
 -     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.
 -
 -     gzopen returns NULL if the file could not be opened or if there was
 -   insufficient memory to allocate the (de)compression state; errno
 -   can be checked to distinguish the two cases (if errno is zero, the
 -   zlib error is Z_MEM_ERROR).  */
 -
 -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 (in 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 gzdopen(dup(fd), mode).
 -     gzdopen returns NULL if there was insufficient memory to allocate
 -   the (de)compression state.
 -*/
 -
 -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
 -/*
 -     Dynamically update the compression level or strategy. See the description
 -   of deflateInit2 for the meaning of these parameters.
 -     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
 -   opened for writing.
 -*/
 -
 -ZEXTERN int ZEXPORT    gzread  OF((gzFile file, voidp buf, unsigned len));
 -/*
 -     Reads the given number of uncompressed bytes from the compressed file.
 -   If the input file was not in gzip format, gzread copies the given number
 -   of bytes into the buffer.
 -     gzread returns the number of uncompressed bytes actually read (0 for
 -   end of file, -1 for error). */
 -
 -ZEXTERN int ZEXPORT    gzwrite OF((gzFile file, 
 -				   cvoidp buf, unsigned len));
 -/*
 -     Writes the given number of uncompressed bytes into the compressed file.
 -   gzwrite returns the number of uncompressed bytes actually written
 -   (0 in case of error).
 -*/
 -
 -ZEXTERN int ZEXPORTVA   gzprintf OF((gzFile file, const char *format, ...));
 -/*
 -     Converts, formats, and writes the args to the compressed file under
 -   control of the format string, as in fprintf. gzprintf returns the number of
 -   uncompressed bytes actually written (0 in case of error).
 -*/
 -
 -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.  The string is then terminated with a null
 -   character.
 -      gzgets returns buf, or Z_NULL in case of error.
 -*/
 -
 -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.
 -*/
 -
 -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 returns Z_OK if
 -   the flush parameter is Z_FINISH and all output could be flushed.
 -     gzflush should be called only when strictly necessary because it can
 -   degrade compression.
 -*/
 -
 -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.
 -
 -   gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
 -*/
 -
 -ZEXTERN int ZEXPORT gzeof OF((gzFile file));
 -/*
 -     Returns 1 when EOF has previously been detected reading the given
 -   input stream, otherwise zero.
 -*/
 -
 -ZEXTERN int ZEXPORT    gzclose OF((gzFile file));
 -/*
 -     Flushes all pending output if necessary, closes the compressed file
 -   and deallocates all the (de)compression state. The return value is the zlib
 -   error number (see function gzerror below).
 -*/
 -
 -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.
 -*/
 -
 -                        /* 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 NULL, this function returns
 -   the required initial value for the checksum.
 -   An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
 -   much faster. Usage example:
 -
 -     uLong adler = adler32(0L, Z_NULL, 0);
 -
 -     while (read_buffer(buffer, length) != EOF) {
 -       adler = adler32(adler, buffer, length);
 -     }
 -     if (adler != original_adler) error();
 -*/
 -
 -ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));
 -/*
 -     Update a running crc with the bytes buf[0..len-1] and return the updated
 -   crc. If buf is 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();
 -*/
 -
 -
 -                        /* 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));
 -#define deflateInit(strm, level) \
 -        deflateInit_((strm), (level),       ZLIB_VERSION, sizeof(z_stream))
 -#define inflateInit(strm) \
 -        inflateInit_((strm),                ZLIB_VERSION, sizeof(z_stream))
 -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
 -        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
 -                      (strategy),           ZLIB_VERSION, sizeof(z_stream))
 -#define inflateInit2(strm, windowBits) \
 -        inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
 -
 -
 -#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL)
 -    struct internal_state {int dummy;}; /* hack for buggy compilers */
 -#endif
 -
 -ZEXTERN const char   * ZEXPORT zError           OF((int err));
 -ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp z));
 -ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
 -
 -#ifdef __cplusplus
 -}
 -#endif
 -
 -#endif /* _ZLIB_H */
 +/* zlib.h -- interface of the 'zlib' general purpose compression library +  version 1.1.4, March 11th, 2002 + +  Copyright (C) 1995-2002 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 ftp://ds.internic.net/rfc/rfc1950.txt +  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef _ZLIB_H +#define _ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.1.4" + +/*  +     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 (for example if an input file is mmap'ed), 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 library also supports reading and writing files in gzip (.gz) format +  with an interface similar to that of stdio. + +     The library does not install any signal handler. The decoder checks +  the consistency of the compressed data, so the library should never +  crash even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void   (*free_func)  OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { +    Bytef    *next_in;  /* next input byte */ +    uInt     avail_in;  /* number of bytes available at next_in */ +    uLong    total_in;  /* total nb of input bytes read so far */ + +    Bytef    *next_out; /* next output byte should be put there */ +    uInt     avail_out; /* remaining free space at next_out */ +    uLong    total_out; /* total nb of bytes output so far */ + +    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: ascii or binary */ +    uLong   adler;      /* adler32 value of the uncompressed data */ +    uLong   reserved;   /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* +   The application must update next_in and avail_in when avail_in has +   dropped to zero. It must update next_out and avail_out when avail_out +   has dropped to zero. The application must initialize zalloc, zfree and +   opaque before calling the init function. All other fields are set by the +   compression library and must not be updated by the application. + +   The opaque value provided by the application will be passed as the first +   parameter for calls of zalloc and zfree. This can be useful for custom +   memory management. The compression library attaches no meaning to the +   opaque value. + +   zalloc must return Z_NULL if there is not enough memory for the object. +   If zlib is used in a multi-threaded application, zalloc and zfree must be +   thread safe. + +   On 16-bit systems, the functions zalloc and zfree must be able to allocate +   exactly 65536 bytes, but will not be required to allocate more than this +   if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, +   pointers returned by zalloc for objects of exactly 65536 bytes *must* +   have their offset normalized to zero. The default allocation function +   provided by this library ensures this (see zutil.c). To reduce memory +   requirements and avoid any allocation of 64K objects, at the expense of +   compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + +   The fields total_in and total_out can be used for statistics or +   progress reports. After compression, total_in holds the total size of +   the uncompressed data and may be saved for use in the decompressor +   (particularly if the decompressor wants to decompress everything in +   a single step). +*/ + +                        /* constants */ + +#define Z_NO_FLUSH      0 +#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ +#define Z_SYNC_FLUSH    2 +#define Z_FULL_FLUSH    3 +#define Z_FINISH        4 +/* Allowed flush values; see deflate() 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_DEFAULT_STRATEGY    0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY   0 +#define Z_ASCII    1 +#define Z_UNKNOWN  2 +/* Possible values of the data_type field */ + +#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, +   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible +   with the version assumed by the caller (ZLIB_VERSION). +   msg is set to null if there is no error message.  deflateInit does not +   perform any compression: this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* +    deflate compresses as much data as possible, and stops when the input +  buffer becomes empty or the output buffer becomes full. It may introduce some +  output latency (reading input without producing any output) except when +  forced to flush. + +    The detailed semantics are as follows. deflate performs one or both of the +  following actions: + +  - Compress more input starting at next_in and update next_in and avail_in +    accordingly. If not all input can be processed (because there is not +    enough room in the output buffer), next_in and avail_in are updated and +    processing will resume at this point for the next call of deflate(). + +  - Provide more output starting at next_out and update next_out and avail_out +    accordingly. This action is forced if the parameter flush is non zero. +    Forcing flush frequently degrades the compression ratio, so this parameter +    should be set only when necessary (in interactive applications). +    Some output may be provided even if flush is not set. + +  Before the call of deflate(), the application should ensure that at least +  one of the actions is possible, by providing more input and/or consuming +  more output, and updating avail_in or avail_out accordingly; avail_out +  should never be zero before the call. The application can consume the +  compressed output when it wants, for example when the output buffer is full +  (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK +  and with zero avail_out, it must be called again after making room in the +  output buffer because there might be more output pending. + +    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. + +    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 +  the 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). + +    If the parameter flush is set to Z_FINISH, pending input is processed, +  pending output is flushed and deflate returns with Z_STREAM_END if there +  was enough output space; if deflate returns with Z_OK, this function must be +  called again with Z_FINISH and more output space (updated avail_out) but no +  more input data, until it returns with Z_STREAM_END or an error. After +  deflate has returned Z_STREAM_END, the only possible operations on the +  stream are deflateReset or deflateEnd. +   +    Z_FINISH can be used immediately after deflateInit if all the compression +  is to be done in a single step. In this case, avail_out must be at least +  0.1% larger than avail_in plus 12 bytes.  If deflate does not return +  Z_STREAM_END, then it must be called again as described above. + +    deflate() sets strm->adler to the adler32 checksum of all input read +  so far (that is, total_in bytes). + +    deflate() may update data_type if it can make a good guess about +  the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered +  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 NULL), Z_BUF_ERROR if no progress is possible +  (for example avail_in or avail_out was zero). +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* +     All dynamically allocated data structures for this stream are freed. +   This function discards any unprocessed input and does not flush any +   pending output. + +     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the +   stream state was inconsistent, Z_DATA_ERROR if the stream was freed +   prematurely (some input or output was discarded). In the error case, +   msg may be set but then points to a static string (which must not be +   deallocated). +*/ + + +/*  +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + +     Initializes the internal stream state for decompression. The fields +   next_in, avail_in, zalloc, zfree and opaque must be initialized before by +   the caller. If next_in is not Z_NULL and avail_in is large enough (the exact +   value depends on the compression method), inflateInit determines the +   compression method from the zlib header and allocates all data structures +   accordingly; otherwise the allocation will be deferred to the first call of +   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to +   use default allocation functions. + +     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough +   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the +   version assumed by the caller.  msg is set to null if there is no error +   message. inflateInit does not perform any decompression apart from reading +   the zlib header if present: this will be done by inflate().  (So next_in and +   avail_in may be modified, but next_out and avail_out are unchanged.) +*/ + + +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 some +  introduce some output latency (reading input without producing any output) +  except when forced to flush. + +  The detailed semantics are as follows. inflate performs one or both of the +  following actions: + +  - Decompress more input starting at next_in and update next_in and avail_in +    accordingly. If not all input can be processed (because there is not +    enough room in the output buffer), next_in is updated and processing +    will resume at this point for the next call of inflate(). + +  - Provide more output starting at next_out and update next_out and avail_out +    accordingly.  inflate() provides as much output as possible, until there +    is no more input data or no more space in the output buffer (see below +    about the flush parameter). + +  Before the call of inflate(), the application should ensure that at least +  one of the actions is possible, by providing more input and/or consuming +  more output, and updating the next_* and avail_* values accordingly. +  The application can consume the uncompressed output when it wants, for +  example when the output buffer is full (avail_out == 0), or after each +  call of inflate(). If inflate returns Z_OK and with zero avail_out, it +  must be called again after making room in the output buffer because there +  might be more output pending. + +    If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much +  output as possible to the output buffer. The flushing behavior of inflate is +  not specified for values of the flush parameter other than Z_SYNC_FLUSH +  and Z_FINISH, but the current implementation actually flushes as much output +  as possible anyway. + +    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 the +  uncompressed data. (The size of the uncompressed data may have been saved +  by the compressor for this purpose.) The next operation on this stream must +  be inflateEnd to deallocate the decompression state. The use of Z_FINISH +  is never required, but can be used to inform inflate that a faster routine +  may be used for the single inflate() call. + +     If a preset dictionary is needed at this point (see inflateSetDictionary +  below), inflate sets strm-adler to the adler32 checksum of the +  dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise  +  it sets strm->adler to the adler32 checksum of all output produced +  so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or +  an error code as described below. At the end of the stream, inflate() +  checks that its computed adler32 checksum is equal to that saved by the +  compressor and returns Z_STREAM_END only if the checksum is correct. + +    inflate() 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 +  adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent +  (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not +  enough memory, Z_BUF_ERROR if no progress is possible or if there was not +  enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR +  case, the application may then call inflateSync to look for a good +  compression block. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* +     All dynamically allocated data structures for this stream are freed. +   This function discards any unprocessed input and does not flush any +   pending output. + +     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state +   was inconsistent. In the error case, msg may be set but then points to a +   static string (which must not be deallocated). +*/ + +                        /* Advanced functions */ + +/* +    The following functions are needed only in some special applications. +*/ + +/*    +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, +                                     int  level, +                                     int  method, +                                     int  windowBits, +                                     int  memLevel, +                                     int  strategy)); + +     This is another version of deflateInit with more compression options. The +   fields next_in, zalloc, zfree and opaque must be initialized before by +   the caller. + +     The method parameter is the compression method. It must be Z_DEFLATED in +   this version of the library. + +     The windowBits parameter is the base two logarithm of the window size +   (the size of the history buffer).  It should be in the range 8..15 for this +   version of the library. Larger values of this parameter result in better +   compression at the expense of memory usage. The default value is 15 if +   deflateInit is used instead. + +     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), or Z_HUFFMAN_ONLY to force Huffman encoding only (no +   string match).  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 and Z_HUFFMAN_ONLY. The strategy parameter only affects +   the compression ratio but not the correctness of the compressed output even +   if it is not set appropriately. + +      deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough +   memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid +   method). 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. This function must be called +   immediately after deflateInit, deflateInit2 or deflateReset, before any +   call of deflate. 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 in +   deflate or deflate2. Thus the strings most likely to be useful should be +   put at the end of the dictionary, not at the front. + +     Upon return of this function, strm->adler is set to the Adler32 value +   of the dictionary; the decompressor may later use this value to determine +   which dictionary has been used by the compressor. (The Adler32 value +   applies to the whole dictionary even if only a subset of the dictionary is +   actually used by the compressor.) + +     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a +   parameter is invalid (such as NULL dictionary) or the stream state is +   inconsistent (for example if deflate has already been called for this stream +   or if the compression method is bsort). deflateSetDictionary does not +   perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, +                                    z_streamp source)); +/* +     Sets the destination stream as a complete copy of the source stream. + +     This function can be useful when several compression strategies will be +   tried, for example when there are several ways of pre-processing the input +   data with a filter. The streams that will be discarded should then be freed +   by calling deflateEnd.  Note that deflateCopy duplicates the internal +   compression state which can be quite large, so this strategy is slow and +   can consume lots of memory. + +     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not +   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent +   (such as zalloc being NULL). msg is left unchanged in both source and +   destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* +     This function is equivalent to deflateEnd followed by deflateInit, +   but does not free and reallocate all the internal compression state. +   The stream will keep the same compression level and any other attributes +   that may have been set by deflateInit2. + +      deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source +   stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, +				      int level, +				      int strategy)); +/* +     Dynamically update the compression level and compression strategy.  The +   interpretation of level and strategy is as in deflateInit2.  This can be +   used to switch between compression and straight copy of the input data, or +   to switch to a different kind of input data requiring a different +   strategy. If the compression level is changed, the input available so far +   is compressed with the old level (and may be flushed); the new level will +   take effect only at the next call of deflate(). + +     Before the call of deflateParams, the stream state must be set as for +   a call of deflate(), since the currently available input may have to +   be compressed and flushed. In particular, strm->avail_out must be non-zero. + +     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source +   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR +   if strm->avail_out was zero. +*/ + +/*    +ZEXTERN int ZEXPORT 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. 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. + +      inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough +   memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative +   memLevel). msg is set to null if there is no error message.  inflateInit2 +   does not perform any decompression apart from reading the zlib header if +   present: this will be done by inflate(). (So next_in and avail_in may be +   modified, but next_out and avail_out are unchanged.) +*/ + +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 this call returned Z_NEED_DICT. The dictionary chosen by the compressor +   can be determined from the Adler32 value returned by this call of +   inflate. The compressor and decompressor must use exactly the same +   dictionary (see deflateSetDictionary). + +     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a +   parameter is invalid (such as NULL dictionary) or the stream state is +   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the +   expected one (incorrect Adler32 value). inflateSetDictionary does not +   perform any decompression: this will be done by subsequent calls of +   inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/*  +    Skips invalid compressed data until a full flush point (see above the +  description of deflate with Z_FULL_FLUSH) can be found, or until all +  available input is skipped. No output is provided. + +    inflateSync returns Z_OK if a 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 inflateReset OF((z_streamp strm)); +/* +     This function is equivalent to inflateEnd followed by inflateInit, +   but does not free and reallocate all the internal decompression state. +   The stream will keep attributes that may have been set by inflateInit2. + +      inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source +   stream state was inconsistent (such as zalloc or state being NULL). +*/ + + +                        /* 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 easily 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 0.1% larger than +   sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the +   compressed buffer. +     This function can be used to compress a whole file at once if the +   input file is mmap'ed. +     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 0.1% larger than sourceLen plus +   12 bytes. Upon exit, destLen is the actual size of the compressed buffer. + +     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough +   memory, Z_BUF_ERROR if there was not enough room in the output buffer, +   Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN 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 compressed buffer. +     This function can be used to decompress a whole file at once if the +   input file is mmap'ed. + +     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. +*/ + + +typedef voidp gzFile; + +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". (See the description +   of deflateInit2 for more information about the strategy parameter.) + +     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. + +     gzopen returns NULL if the file could not be opened or if there was +   insufficient memory to allocate the (de)compression state; errno +   can be checked to distinguish the two cases (if errno is zero, the +   zlib error is Z_MEM_ERROR).  */ + +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 (in 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 gzdopen(dup(fd), mode). +     gzdopen returns NULL if there was insufficient memory to allocate +   the (de)compression state. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* +     Dynamically update the compression level or strategy. See the description +   of deflateInit2 for the meaning of these parameters. +     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not +   opened for writing. +*/ + +ZEXTERN int ZEXPORT    gzread  OF((gzFile file, voidp buf, unsigned len)); +/* +     Reads the given number of uncompressed bytes from the compressed file. +   If the input file was not in gzip format, gzread copies the given number +   of bytes into the buffer. +     gzread returns the number of uncompressed bytes actually read (0 for +   end of file, -1 for error). */ + +ZEXTERN int ZEXPORT    gzwrite OF((gzFile file,  +				   cvoidp buf, unsigned len)); +/* +     Writes the given number of uncompressed bytes into the compressed file. +   gzwrite returns the number of uncompressed bytes actually written +   (0 in case of error). +*/ + +ZEXTERN int ZEXPORTVA   gzprintf OF((gzFile file, const char *format, ...)); +/* +     Converts, formats, and writes the args to the compressed file under +   control of the format string, as in fprintf. gzprintf returns the number of +   uncompressed bytes actually written (0 in case of error). +*/ + +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.  The string is then terminated with a null +   character. +      gzgets returns buf, or Z_NULL in case of error. +*/ + +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. +*/ + +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 returns Z_OK if +   the flush parameter is Z_FINISH and all output could be flushed. +     gzflush should be called only when strictly necessary because it can +   degrade compression. +*/ + +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. + +   gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* +     Returns 1 when EOF has previously been detected reading the given +   input stream, otherwise zero. +*/ + +ZEXTERN int ZEXPORT    gzclose OF((gzFile file)); +/* +     Flushes all pending output if necessary, closes the compressed file +   and deallocates all the (de)compression state. The return value is the zlib +   error number (see function gzerror below). +*/ + +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. +*/ + +                        /* 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 NULL, this function returns +   the required initial value for the checksum. +   An Adler-32 checksum is almost as reliable as a CRC32 but can be computed +   much faster. Usage example: + +     uLong adler = adler32(0L, Z_NULL, 0); + +     while (read_buffer(buffer, length) != EOF) { +       adler = adler32(adler, buffer, length); +     } +     if (adler != original_adler) error(); +*/ + +ZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len)); +/* +     Update a running crc with the bytes buf[0..len-1] and return the updated +   crc. If buf is 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(); +*/ + + +                        /* 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)); +#define deflateInit(strm, level) \ +        deflateInit_((strm), (level),       ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ +        inflateInit_((strm),                ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ +        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ +                      (strategy),           ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ +        inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) + + +#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL) +    struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char   * ZEXPORT zError           OF((int err)); +ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp z)); +ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void)); + +#ifdef __cplusplus +} +#endif + +#endif /* _ZLIB_H */ diff --git a/lib/zlib/include/zutil.h b/lib/zlib/include/zutil.h index 300a4c1..eed3624 100644 --- a/lib/zlib/include/zutil.h +++ b/lib/zlib/include/zutil.h @@ -1,220 +1,220 @@ -/* zutil.h -- internal interface and configuration of the compression library
 - * Copyright (C) 1995-2002 Jean-loup Gailly.
 - * For conditions of distribution and use, see copyright notice in zlib.h
 - */
 -
 -/* WARNING: this file should *not* be used by applications. It is
 -   part of the implementation of the compression library and is
 -   subject to change. Applications should only use zlib.h.
 - */
 -
 -/* @(#) $Id: zutil.h,v 1.2 2004-11-27 21:43:51 pixel Exp $ */
 -
 -#ifndef _Z_UTIL_H
 -#define _Z_UTIL_H
 -
 -#include "zlib.h"
 -
 -#ifdef STDC
 -#  include <stddef.h>
 -#  include <string.h>
 -#  include <stdlib.h>
 -#endif
 -#ifdef NO_ERRNO_H
 -    extern int errno;
 -#else
 -#   include <errno.h>
 -#endif
 -
 -#ifndef local
 -#  define local static
 -#endif
 -/* compile with -Dlocal if your debugger can't find static symbols */
 -
 -typedef unsigned char  uch;
 -typedef uch FAR uchf;
 -typedef unsigned short ush;
 -typedef ush FAR ushf;
 -typedef unsigned long  ulg;
 -
 -extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
 -/* (size given to avoid silly warnings with Visual C++) */
 -
 -#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
 -
 -#define ERR_RETURN(strm,err) \
 -  return (strm->msg = (char*)ERR_MSG(err), (err))
 -/* To be used only when the state is known to be valid */
 -
 -        /* common constants */
 -
 -#ifndef DEF_WBITS
 -#  define DEF_WBITS MAX_WBITS
 -#endif
 -/* default windowBits for decompression. MAX_WBITS is for compression only */
 -
 -#if MAX_MEM_LEVEL >= 8
 -#  define DEF_MEM_LEVEL 8
 -#else
 -#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
 -#endif
 -/* default memLevel */
 -
 -#define STORED_BLOCK 0
 -#define STATIC_TREES 1
 -#define DYN_TREES    2
 -/* The three kinds of block type */
 -
 -#define MIN_MATCH  3
 -#define MAX_MATCH  258
 -/* The minimum and maximum match lengths */
 -
 -#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
 -
 -        /* target dependencies */
 -
 -#ifdef MSDOS
 -#  define OS_CODE  0x00
 -#  if defined(__TURBOC__) || defined(__BORLANDC__)
 -#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
 -       /* Allow compilation with ANSI keywords only enabled */
 -       void _Cdecl farfree( void *block );
 -       void *_Cdecl farmalloc( unsigned long nbytes );
 -#    else
 -#     include <alloc.h>
 -#    endif
 -#  else /* MSC or DJGPP */
 -#    include <malloc.h>
 -#  endif
 -#endif
 -
 -#ifdef OS2
 -#  define OS_CODE  0x06
 -#endif
 -
 -#ifdef WIN32 /* Window 95 & Windows NT */
 -#  define OS_CODE  0x0b
 -#endif
 -
 -#if defined(VAXC) || defined(VMS)
 -#  define OS_CODE  0x02
 -#  define F_OPEN(name, mode) \
 -     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
 -#endif
 -
 -#ifdef AMIGA
 -#  define OS_CODE  0x01
 -#endif
 -
 -#if defined(ATARI) || defined(atarist)
 -#  define OS_CODE  0x05
 -#endif
 -
 -#if defined(MACOS) || defined(TARGET_OS_MAC)
 -#  define OS_CODE  0x07
 -#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
 -#    include <unix.h> /* for fdopen */
 -#  else
 -#    ifndef fdopen
 -#      define fdopen(fd,mode) NULL /* No fdopen() */
 -#    endif
 -#  endif
 -#endif
 -
 -#ifdef __50SERIES /* Prime/PRIMOS */
 -#  define OS_CODE  0x0F
 -#endif
 -
 -#ifdef TOPS20
 -#  define OS_CODE  0x0a
 -#endif
 -
 -#if defined(_BEOS_) || defined(RISCOS)
 -#  define fdopen(fd,mode) NULL /* No fdopen() */
 -#endif
 -
 -#if (defined(_MSC_VER) && (_MSC_VER > 600))
 -#  define fdopen(fd,type)  _fdopen(fd,type)
 -#endif
 -
 -
 -        /* Common defaults */
 -
 -#ifndef OS_CODE
 -#  define OS_CODE  0x03  /* assume Unix */
 -#endif
 -
 -#ifndef F_OPEN
 -#  define F_OPEN(name, mode) fopen((name), (mode))
 -#endif
 -
 -         /* functions */
 -
 -#ifdef HAVE_STRERROR
 -   extern char *strerror OF((int));
 -#  define zstrerror(errnum) strerror(errnum)
 -#else
 -#  define zstrerror(errnum) ""
 -#endif
 -
 -#if defined(pyr)
 -#  define NO_MEMCPY
 -#endif
 -#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
 - /* Use our own functions for small and medium model with MSC <= 5.0.
 -  * You may have to use the same strategy for Borland C (untested).
 -  * The __SC__ check is for Symantec.
 -  */
 -#  define NO_MEMCPY
 -#endif
 -#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
 -#  define HAVE_MEMCPY
 -#endif
 -#ifdef HAVE_MEMCPY
 -#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
 -#    define zmemcpy _fmemcpy
 -#    define zmemcmp _fmemcmp
 -#    define zmemzero(dest, len) _fmemset(dest, 0, len)
 -#  else
 -#    define zmemcpy memcpy
 -#    define zmemcmp memcmp
 -#    define zmemzero(dest, len) memset(dest, 0, len)
 -#  endif
 -#else
 -   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len));
 -   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len));
 -   extern void zmemzero OF((Bytef* dest, uInt len));
 -#endif
 -
 -/* Diagnostic functions */
 -#ifdef DEBUG
 -#  include <stdio.h>
 -   extern int z_verbose;
 -   extern void z_error    OF((char *m));
 -#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
 -#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
 -#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
 -#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
 -#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
 -#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
 -#else
 -#  define Assert(cond,msg)
 -#  define Trace(x)
 -#  define Tracev(x)
 -#  define Tracevv(x)
 -#  define Tracec(c,x)
 -#  define Tracecv(c,x)
 -#endif
 -
 -
 -typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf,
 -				       uInt len));
 -voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
 -void   zcfree  OF((voidpf opaque, voidpf ptr));
 -
 -#define ZALLOC(strm, items, size) \
 -           (*((strm)->zalloc))((strm)->opaque, (items), (size))
 -#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
 -#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
 -
 -#endif /* _Z_UTIL_H */
 +/* zutil.h -- internal interface and configuration of the compression library + * Copyright (C) 1995-2002 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is +   part of the implementation of the compression library and is +   subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id: zutil.h,v 1.3 2004-11-27 21:46:12 pixel Exp $ */ + +#ifndef _Z_UTIL_H +#define _Z_UTIL_H + +#include "zlib.h" + +#ifdef STDC +#  include <stddef.h> +#  include <string.h> +#  include <stdlib.h> +#endif +#ifdef NO_ERRNO_H +    extern int errno; +#else +#   include <errno.h> +#endif + +#ifndef local +#  define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + +typedef unsigned char  uch; +typedef uch FAR uchf; +typedef unsigned short ush; +typedef ush FAR ushf; +typedef unsigned long  ulg; + +extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */ +/* (size given to avoid silly warnings with Visual C++) */ + +#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] + +#define ERR_RETURN(strm,err) \ +  return (strm->msg = (char*)ERR_MSG(err), (err)) +/* To be used only when the state is known to be valid */ + +        /* common constants */ + +#ifndef DEF_WBITS +#  define DEF_WBITS MAX_WBITS +#endif +/* default windowBits for decompression. MAX_WBITS is for compression only */ + +#if MAX_MEM_LEVEL >= 8 +#  define DEF_MEM_LEVEL 8 +#else +#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL +#endif +/* default memLevel */ + +#define STORED_BLOCK 0 +#define STATIC_TREES 1 +#define DYN_TREES    2 +/* The three kinds of block type */ + +#define MIN_MATCH  3 +#define MAX_MATCH  258 +/* The minimum and maximum match lengths */ + +#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ + +        /* target dependencies */ + +#ifdef MSDOS +#  define OS_CODE  0x00 +#  if defined(__TURBOC__) || defined(__BORLANDC__) +#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) +       /* Allow compilation with ANSI keywords only enabled */ +       void _Cdecl farfree( void *block ); +       void *_Cdecl farmalloc( unsigned long nbytes ); +#    else +#     include <alloc.h> +#    endif +#  else /* MSC or DJGPP */ +#    include <malloc.h> +#  endif +#endif + +#ifdef OS2 +#  define OS_CODE  0x06 +#endif + +#ifdef WIN32 /* Window 95 & Windows NT */ +#  define OS_CODE  0x0b +#endif + +#if defined(VAXC) || defined(VMS) +#  define OS_CODE  0x02 +#  define F_OPEN(name, mode) \ +     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") +#endif + +#ifdef AMIGA +#  define OS_CODE  0x01 +#endif + +#if defined(ATARI) || defined(atarist) +#  define OS_CODE  0x05 +#endif + +#if defined(MACOS) || defined(TARGET_OS_MAC) +#  define OS_CODE  0x07 +#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +#    include <unix.h> /* for fdopen */ +#  else +#    ifndef fdopen +#      define fdopen(fd,mode) NULL /* No fdopen() */ +#    endif +#  endif +#endif + +#ifdef __50SERIES /* Prime/PRIMOS */ +#  define OS_CODE  0x0F +#endif + +#ifdef TOPS20 +#  define OS_CODE  0x0a +#endif + +#if defined(_BEOS_) || defined(RISCOS) +#  define fdopen(fd,mode) NULL /* No fdopen() */ +#endif + +#if (defined(_MSC_VER) && (_MSC_VER > 600)) +#  define fdopen(fd,type)  _fdopen(fd,type) +#endif + + +        /* Common defaults */ + +#ifndef OS_CODE +#  define OS_CODE  0x03  /* assume Unix */ +#endif + +#ifndef F_OPEN +#  define F_OPEN(name, mode) fopen((name), (mode)) +#endif + +         /* functions */ + +#ifdef HAVE_STRERROR +   extern char *strerror OF((int)); +#  define zstrerror(errnum) strerror(errnum) +#else +#  define zstrerror(errnum) "" +#endif + +#if defined(pyr) +#  define NO_MEMCPY +#endif +#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) + /* Use our own functions for small and medium model with MSC <= 5.0. +  * You may have to use the same strategy for Borland C (untested). +  * The __SC__ check is for Symantec. +  */ +#  define NO_MEMCPY +#endif +#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) +#  define HAVE_MEMCPY +#endif +#ifdef HAVE_MEMCPY +#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */ +#    define zmemcpy _fmemcpy +#    define zmemcmp _fmemcmp +#    define zmemzero(dest, len) _fmemset(dest, 0, len) +#  else +#    define zmemcpy memcpy +#    define zmemcmp memcmp +#    define zmemzero(dest, len) memset(dest, 0, len) +#  endif +#else +   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len)); +   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len)); +   extern void zmemzero OF((Bytef* dest, uInt len)); +#endif + +/* Diagnostic functions */ +#ifdef DEBUG +#  include <stdio.h> +   extern int z_verbose; +   extern void z_error    OF((char *m)); +#  define Assert(cond,msg) {if(!(cond)) z_error(msg);} +#  define Trace(x) {if (z_verbose>=0) fprintf x ;} +#  define Tracev(x) {if (z_verbose>0) fprintf x ;} +#  define Tracevv(x) {if (z_verbose>1) fprintf x ;} +#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} +#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} +#else +#  define Assert(cond,msg) +#  define Trace(x) +#  define Tracev(x) +#  define Tracevv(x) +#  define Tracec(c,x) +#  define Tracecv(c,x) +#endif + + +typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf, +				       uInt len)); +voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); +void   zcfree  OF((voidpf opaque, voidpf ptr)); + +#define ZALLOC(strm, items, size) \ +           (*((strm)->zalloc))((strm)->opaque, (items), (size)) +#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) +#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} + +#endif /* _Z_UTIL_H */ | 
