22 int ZEXPORT compress2 (dest, destLen, source, sourceLen,
level)
32 stream.next_in = (Bytef*)source;
33 stream.avail_in = (uInt)sourceLen;
36 if ((uLong)stream.avail_in != sourceLen)
return Z_BUF_ERROR;
38 stream.next_out = dest;
39 stream.avail_out = (uInt)*destLen;
40 if ((uLong)stream.avail_out != *destLen)
return Z_BUF_ERROR;
42 stream.zalloc = (alloc_func)0;
43 stream.zfree = (free_func)0;
44 stream.opaque = (voidpf)0;
46 err = deflateInit(&stream, level);
47 if (err != Z_OK)
return err;
49 err = deflate(&stream, Z_FINISH);
50 if (err != Z_STREAM_END) {
52 return err == Z_OK ? Z_BUF_ERROR : err;
54 *destLen = stream.total_out;
56 err = deflateEnd(&stream);
62 int ZEXPORT compress (dest, destLen, source, sourceLen)
68 return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
75 uLong ZEXPORT compressBound (sourceLen)
78 return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 11;