about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--inflateMark.375
2 files changed, 76 insertions, 0 deletions
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.