about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--deflateCopy.352
2 files changed, 53 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 1ea4fb0..adc8089 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,7 @@ MAN += adler32.3
 MAN += compress.3
 MAN += crc32.3
 MAN += deflate.3
+MAN += deflateCopy.3
 MAN += deflateInit2.3
 MAN += deflateSetDictionary.3
 MAN += inflate.3
diff --git a/deflateCopy.3 b/deflateCopy.3
new file mode 100644
index 0000000..1281c36
--- /dev/null
+++ b/deflateCopy.3
@@ -0,0 +1,52 @@
+.Dd November 10, 2018
+.Dt DEFLATECOPY 3
+.Os
+.
+.Sh NAME
+.Nm deflateCopy
+.Nd copy deflate stream
+.
+.Sh LIBRARY
+.Lb libz
+.
+.Sh SYNOPSIS
+.Ft int
+.Fn deflateCopy "z_streamp dest" "z_streamp source"
+.
+.Sh DESCRIPTION
+Sets the destination stream
+as a complete copy of the source stream.
+.
+.Pp
+This function can be useful when
+several compression strategies will be tried,
+for example when there are several ways of
+pre-processing the input data with a filter.
+The streams that will be discarded
+should then be freed by calling
+.Xr deflateEnd 3 .
+Note that
+.Fn deflateCopy
+duplicates the internal compression state
+which can be quite large,
+so this strategy is slow
+and can consume lots of memory.
+.
+.Sh RETURN VALUES
+.Fn deflateCopy
+returns
+.Dv Z_OK
+if success,
+.Dv Z_MEM_ERROR
+if there was not enough memory,
+.Dv Z_STREAM_ERROR
+if the source stream state was inconsistent
+.Po
+such as
+.Fa zalloc
+being
+.Dv Z_NULL
+.Pc .
+.Fa msg
+is left unchanged
+in both source and destination.