提交 dca9e1d6 编写于 作者: M Mark Adler

Add inflateGetDictionary() function.

上级 eb90f6a5
...@@ -67,6 +67,7 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB') ...@@ -67,6 +67,7 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
EXPORT SYMBOL("inflate") EXPORT SYMBOL("inflate")
EXPORT SYMBOL("inflateEnd") EXPORT SYMBOL("inflateEnd")
EXPORT SYMBOL("inflateSetDictionary") EXPORT SYMBOL("inflateSetDictionary")
EXPORT SYMBOL("inflateGetDictionary")
EXPORT SYMBOL("inflateSync") EXPORT SYMBOL("inflateSync")
EXPORT SYMBOL("inflateReset") EXPORT SYMBOL("inflateReset")
EXPORT SYMBOL("inflateInit_") EXPORT SYMBOL("inflateInit_")
......
...@@ -359,6 +359,12 @@ ...@@ -359,6 +359,12 @@
D dictionary 65535 const options(*varsize) Dictionary bytes D dictionary 65535 const options(*varsize) Dictionary bytes
D dictLength 10U 0 value Dictionary length D dictLength 10U 0 value Dictionary length
* *
D inflateGetDictionary...
D PR 10I 0 extproc('inflateGetDictionary') Get dictionary
D strm like(z_stream) Expansion stream
D dictionary 65535 options(*varsize) Dictionary bytes
D dictLength 10U 0 Dictionary length
*
D inflateSync PR 10I 0 extproc('inflateSync') Sync. expansion D inflateSync PR 10I 0 extproc('inflateSync') Sync. expansion
D strm like(z_stream) Expansion stream D strm like(z_stream) Expansion stream
* *
......
...@@ -137,3 +137,6 @@ EXPORTS ...@@ -137,3 +137,6 @@ EXPORTS
; zlib1 v1.2.7 added: ; zlib1 v1.2.7 added:
gzopen_w @165 gzopen_w @165
; zlib1 v1.2.8 added:
inflateGetDictionary @166
...@@ -137,3 +137,6 @@ EXPORTS ...@@ -137,3 +137,6 @@ EXPORTS
; zlib1 v1.2.7 added: ; zlib1 v1.2.7 added:
gzopen_w @165 gzopen_w @165
; zlib1 v1.2.8 added:
inflateGetDictionary @166
...@@ -1264,6 +1264,29 @@ z_streamp strm; ...@@ -1264,6 +1264,29 @@ z_streamp strm;
return Z_OK; return Z_OK;
} }
int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength)
z_streamp strm;
Bytef *dictionary;
uInt *dictLength;
{
struct inflate_state FAR *state;
/* check state */
if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
/* copy dictionary */
if (state->whave && dictionary != Z_NULL) {
zmemcpy(dictionary, state->window + state->wnext,
state->whave - state->wnext);
zmemcpy(dictionary + state->whave - state->wnext,
state->window, state->wnext);
}
if (dictLength != Z_NULL)
*dictLength = state->whave;
return Z_OK;
}
int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)
z_streamp strm; z_streamp strm;
const Bytef *dictionary; const Bytef *dictionary;
......
...@@ -17,6 +17,7 @@ EXPORTS ...@@ -17,6 +17,7 @@ EXPORTS
deflatePrime deflatePrime
deflateSetHeader deflateSetHeader
inflateSetDictionary inflateSetDictionary
inflateGetDictionary
inflateSync inflateSync
inflateCopy inflateCopy
inflateReset inflateReset
......
...@@ -103,6 +103,7 @@ ...@@ -103,6 +103,7 @@
# define inflateReset z_inflateReset # define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2 # define inflateReset2 z_inflateReset2
# define inflateSetDictionary z_inflateSetDictionary # define inflateSetDictionary z_inflateSetDictionary
# define inflateGetDictionary z_inflateGetDictionary
# define inflateSync z_inflateSync # define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint # define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine # define inflateUndermine z_inflateUndermine
......
...@@ -105,6 +105,7 @@ ...@@ -105,6 +105,7 @@
# define inflateReset z_inflateReset # define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2 # define inflateReset2 z_inflateReset2
# define inflateSetDictionary z_inflateSetDictionary # define inflateSetDictionary z_inflateSetDictionary
# define inflateGetDictionary z_inflateGetDictionary
# define inflateSync z_inflateSync # define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint # define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine # define inflateUndermine z_inflateUndermine
......
...@@ -103,6 +103,7 @@ ...@@ -103,6 +103,7 @@
# define inflateReset z_inflateReset # define inflateReset z_inflateReset
# define inflateReset2 z_inflateReset2 # define inflateReset2 z_inflateReset2
# define inflateSetDictionary z_inflateSetDictionary # define inflateSetDictionary z_inflateSetDictionary
# define inflateGetDictionary z_inflateGetDictionary
# define inflateSync z_inflateSync # define inflateSync z_inflateSync
# define inflateSyncPoint z_inflateSyncPoint # define inflateSyncPoint z_inflateSyncPoint
# define inflateUndermine z_inflateUndermine # define inflateUndermine z_inflateUndermine
......
...@@ -839,6 +839,21 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, ...@@ -839,6 +839,21 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
inflate(). inflate().
*/ */
ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm,
Bytef *dictionary,
uInt *dictLength));
/*
Returns the sliding dictionary being maintained by inflate. 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 inflateGetDictionary() 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.
inflateSetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
stream state is inconsistent.
*/
ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
/* /*
Skips invalid compressed data until a possible full flush point (see above Skips invalid compressed data until a possible full flush point (see above
......
...@@ -76,3 +76,7 @@ ZLIB_1.2.5.2 { ...@@ -76,3 +76,7 @@ ZLIB_1.2.5.2 {
gzgetc_; gzgetc_;
inflateResetKeep; inflateResetKeep;
} ZLIB_1.2.5.1; } ZLIB_1.2.5.1;
ZLIB_1.2.7.1 {
inflateSetDictionary;
} ZLIB_1.2.7;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册