diff options
Diffstat (limited to 'deflate.c')
-rw-r--r-- | deflate.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -441,6 +441,27 @@ int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) | |||
441 | } | 441 | } |
442 | 442 | ||
443 | /* ========================================================================= */ | 443 | /* ========================================================================= */ |
444 | int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength) | ||
445 | z_streamp strm; | ||
446 | Bytef *dictionary; | ||
447 | uInt *dictLength; | ||
448 | { | ||
449 | deflate_state *s; | ||
450 | |||
451 | if (deflateStateCheck(strm)) | ||
452 | return Z_STREAM_ERROR; | ||
453 | s = strm->state; | ||
454 | uInt len = s->strstart + s->lookahead; | ||
455 | if (len > s->w_size) | ||
456 | len = s->w_size; | ||
457 | if (dictionary != Z_NULL && len) | ||
458 | zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len); | ||
459 | if (dictLength != Z_NULL) | ||
460 | *dictLength = len; | ||
461 | return Z_OK; | ||
462 | } | ||
463 | |||
464 | /* ========================================================================= */ | ||
444 | int ZEXPORT deflateResetKeep (strm) | 465 | int ZEXPORT deflateResetKeep (strm) |
445 | z_streamp strm; | 466 | z_streamp strm; |
446 | { | 467 | { |