From ee7d7b5dda25c111e61e19ac7b476c26aa6f3020 Mon Sep 17 00:00:00 2001 From: Mark Adler Date: Fri, 30 Dec 2016 16:29:56 -0800 Subject: Add deflateGetDictionary() function. Per request, but its utility is likely to be very limited. See the comments in zlib.h. --- zlib.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'zlib.h') diff --git a/zlib.h b/zlib.h index 053e6e2..6f4a049 100644 --- a/zlib.h +++ b/zlib.h @@ -651,6 +651,28 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, not perform any compression: this will be done by deflate(). */ +ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, + Bytef *dictionary, + uInt *dictLength)); +/* + Returns the sliding dictionary being maintained by deflate. dictLength is + set to the number of bytes in the dictionary, and that many bytes are copied + to dictionary. dictionary must have enough space, where 32768 bytes is + always enough. If deflateGetDictionary() is called with dictionary equal to + Z_NULL, then only the dictionary length is returned, and nothing is copied. + Similary, if dictLength is Z_NULL, then it is not set. + + deflateGetDictionary() may return a length less than the window size, even + when more than the window size in input has been provided. It may return up + to 258 bytes less in that case, due to how zlib's implementation of deflate + manages the sliding window and lookahead for matches, where matches can be + up to 258 bytes long. If the application needs the last window-size bytes of + input, then that would need to be saved by the application outside of zlib. + + deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the + stream state is inconsistent. +*/ + ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, z_streamp source)); /* -- cgit v1.2.3-55-g6feb