30 #define LENGTH_CODES 29
36 #define L_CODES (LITERALS+1+LENGTH_CODES)
45 #define HEAP_SIZE (2*L_CODES+1)
56 # define GZIP_STATE 57
58 #define EXTRA_STATE 69
60 #define COMMENT_STATE 91
61 #define HCRC_STATE 103
62 #define BUSY_STATE 113
63 #define FINISH_STATE 666
182 # define max_insert_length max_lazy_match
281 #define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
284 #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
289 #define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
294 #define WIN_INIT MAX_MATCH
302 ulg stored_len,
int last));
306 ulg stored_len,
int last));
308 #define d_code(dist) \
309 ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
318 #if defined(GEN_TREES_H) || !defined(STDC)
326 # define _tr_tally_lit(s, c, flush) \
328 s->d_buf[s->last_lit] = 0; \
329 s->l_buf[s->last_lit++] = cc; \
330 s->dyn_ltree[cc].Freq++; \
331 flush = (s->last_lit == s->lit_bufsize-1); \
333 # define _tr_tally_dist(s, distance, length, flush) \
334 { uch len = (uch)(length); \
335 ush dist = (ush)(distance); \
336 s->d_buf[s->last_lit] = dist; \
337 s->l_buf[s->last_lit++] = len; \
339 s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
340 s->dyn_dtree[d_code(dist)].Freq++; \
341 flush = (s->last_lit == s->lit_bufsize-1); \
344 # define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
345 # define _tr_tally_dist(s, distance, length, flush) \
346 flush = _tr_tally(s, distance, length)
struct static_tree_desc_s static_tree_desc
struct ct_data_s dyn_ltree[HEAP_SIZE]
gz_header FAR * gz_headerp
uch ZLIB_INTERNAL _dist_code[]
struct tree_desc_s bl_desc
struct tree_desc_s d_desc
const static_tree_desc * stat_desc
struct ct_data_s dyn_dtree[2 *D_CODES+1]
struct tree_desc_s l_desc
struct internal_state deflate_state
uch ZLIB_INTERNAL _length_code[]
struct ct_data_s bl_tree[2 *BL_CODES+1]
voidpf alloc_func OF((voidpf opaque, uInt items, uInt size))
struct tree_desc_s tree_desc