11
11
const char inflate_copyright[] =
12
" inflate 1.2.5 Copyright 1995-2010 Mark Adler ";
12
" inflate 1.2.6 Copyright 1995-2012 Mark Adler ";
14
14
If you use the zlib library in a product, an acknowledgment is welcome
15
15
in the documentation of your product. If for some reason you cannot
62
62
35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
63
63
static const unsigned short lext[31] = { /* Length codes 257..285 extra */
64
64
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
65
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 73, 195};
65
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 203, 69};
66
66
static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
67
67
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
68
68
257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
293
Fill in rest of table for incomplete codes. This loop is similar to the
294
loop above in incrementing huff for table indices. It is assumed that
295
len is equal to curr + drop, so there is no loop needed to increment
296
through high index bits. When the current sub-table is filled, the loop
297
drops back to the root table to fill in any remaining entries there.
299
here.op = (unsigned char)64; /* invalid code marker */
300
here.bits = (unsigned char)(len - drop);
301
here.val = (unsigned short)0;
303
/* when done with sub-table, drop back to root table */
304
if (drop != 0 && (huff & mask) != low) {
308
here.bits = (unsigned char)len;
311
/* put invalid code marker in table */
312
next[huff >> drop] = here;
314
/* backwards increment the len-bit code huff */
315
incr = 1U << (len - 1);
292
/* fill in remaining table entry if code is incomplete (guaranteed to have
293
at most one remaining entry, since if the code is incomplete, the
294
maximum code length that was allowed to get this far is one bit) */
296
here.op = (unsigned char)64; /* invalid code marker */
297
here.bits = (unsigned char)(len - drop);
298
here.val = (unsigned short)0;
326
302
/* set return parameters */