From a3bf6dbe32214969972511f2731474cd344de3bc Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sun, 11 Nov 2018 23:40:30 -0500 Subject: Add inflateMark.3 --- Makefile | 1 + inflateMark.3 | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 inflateMark.3 diff --git a/Makefile b/Makefile index d6d81eb..8a4f334 100644 --- a/Makefile +++ b/Makefile @@ -24,6 +24,7 @@ MAN += inflateEnd.3 MAN += inflateGetDictionary.3 MAN += inflateInit.3 MAN += inflateInit2.3 +MAN += inflateMark.3 MAN += inflatePrime.3 MAN += inflateReset.3 MAN += inflateSetDictionary.3 diff --git a/inflateMark.3 b/inflateMark.3 new file mode 100644 index 0000000..ff7099c --- /dev/null +++ b/inflateMark.3 @@ -0,0 +1,75 @@ +.Dd November 11, 2018 +.Dt INFLATEMARK 3 +.Os +. +.Sh NAME +.Nm inflateMark +.Nd mark location for random access +. +.Sh LIBRARY +.Lb libz +. +.Sh SYNOPSIS +.In zlib.h +.Ft long +.Fn inflateMark "z_streamp strm" +. +.Sh DESCRIPTION +This function returns two values, +one in the lower 16 bits of the return value, +and the other in the remaining upper bits, +obtained by shifting the return value down 16 bits. +If the upper value is -1 +and the lower value is zero, +then +.Xr inflate 3 +is currently decoding information outside of a block. +If the upper value is -1 +and the lower value is non-zero, +then +.Xr inflate 3 +is in the middle of a stored block, +with the lower value equaling +the number of bytes from the input remaining to copy. +If the upper value is not -1, +then it is the number of bits +back from the current bit position +in the input of the code +(literal of length/distance pair) +currently being processed. +In that case the lower value +is the number of bytes +already emitted for that code. +. +.Pp +A code is being processed if +.Xr inflate 3 +is waiting for more input to complete +decoding of the code, +or if it has completed decoding +but is waiting for more output space +to write the literal or match data. +. +.Pp +.Fn inflateMark +is used to mark locations in the input data +for random access, +which may be at bit positions, +and to note those cases where +the output of a code may span boundaries +of random access blocks. +The current location in the input stream +can be determined from +.Fa avail_in +and +.Fa data_type +as noted in the description for the +.Dv Z_BLOCK +.Fa flush +parameter for +.Xr inflate 3 . +. +.Sh RETURN VALUES +.Fn inflateMark +returns the value noted above, +or -65536 if the provided source stream state was inconsistent. -- cgit 1.4.1