about summary refs log tree commit diff homepage
path: root/inflateMark.3
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-11-11 23:40:30 -0500
committerJune McEnroe <june@causal.agency>2018-11-11 23:40:30 -0500
commita3bf6dbe32214969972511f2731474cd344de3bc (patch)
tree242a1d5703075cb47c358611c02c2d32a240c2dc /inflateMark.3
parentAdd inflatePrime.3 (diff)
downloadzlib-man-pages-a3bf6dbe32214969972511f2731474cd344de3bc.tar.gz
zlib-man-pages-a3bf6dbe32214969972511f2731474cd344de3bc.zip
Add inflateMark.3
Diffstat (limited to '')
-rw-r--r--inflateMark.375
1 files changed, 75 insertions, 0 deletions
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.