local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf,
unsigned len));
-int ZEXPORT inflateReset(strm)
+int ZEXPORT inflateReset2(strm, flags)
z_streamp strm;
+unsigned flags;
{
struct inflate_state FAR *state;
state->havedict = 0;
state->dmax = 32768U;
state->head = Z_NULL;
- state->wsize = 0;
- state->whave = 0;
+ if (!(flags & Z_RESET_KEEP_WINDOW)) {
+ state->wsize = 0;
+ state->whave = 0;
+ }
state->write = 0;
state->hold = 0;
state->bits = 0;
return Z_OK;
}
+int ZEXPORT inflateReset(strm)
+z_streamp strm;
+{
+ return inflateReset2(strm, 0);
+}
+
int ZEXPORT inflatePrime(strm, bits, value)
z_streamp strm;
int bits;
# define inflateSyncPoint z_inflateSyncPoint
# define inflateCopy z_inflateCopy
# define inflateReset z_inflateReset
+# define inflateReset2 z_inflateReset2
# define inflateBack z_inflateBack
# define inflateBackEnd z_inflateBackEnd
# define compress z_compress
#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
+#define Z_RESET_KEEP_WINDOW 0x0001
+/* This flag can be passed to inflateReset2 and deflateReset2 */
+
#define zlib_version zlibVersion()
/* for compatibility with versions < 1.0.2 */
destination.
*/
+ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, unsigned flags));
+
ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
/*
This function is equivalent to inflateEnd followed by inflateInit,
stream state was inconsistent (such as zalloc or state being NULL).
*/
+ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, unsigned flags));
+/*
+ This function is like inflateReset, but you can pass some flags
+ to have further control over the behavior. If you pass Z_RESET_KEEP_WINDOW
+ the window will be untouched and will be reused in the next runs of inflate()
+
+ inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent (such as zalloc or state being NULL).
+*/
+
ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
int bits,
int value));