| typedef struct ZRead ZRead; |
| int (*r)(void*, void*, int); |
| zlread(void *vzr, void *buf, int n) |
| n = (*zr->r)(zr->rr, buf, n); |
| zr->adler = adler32(zr->adler, buf, n); |
| deflatezlib(void *wr, int (*w)(void*, void*, int), void *rr, int (*r)(void*, void*, int), int level, int debug) |
| buf[0] = ZlibDeflate | ZlibWin32k; |
| /* bogus zlib encoding of compression level */ |
| buf[1] = ((level > 2) + (level > 5) + (level > 8)) << 6; |
| buf[1] |= 31 - ((buf[0] << 8) | buf[1]) % 31; |
| if((*w)(wr, buf, 2) != 2) |
| ok = deflate(wr, w, &zr, zlread, level, debug); |
| if((*w)(wr, buf, 4) != 4) |