about summary refs log tree commit diff homepage
path: root/deflateParams.3
blob: ace0d35dfa016d80436d8cdfc4d12197cddf411f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.Dd November 10, 2018
.Dt DEFLATEPARAMS 3
.Os
.
.Sh NAME
.Nm deflateParams
.Nd update compression level and strategy
.
.Sh LIBRARY
.Lb libz
.
.Sh SYNOPSIS
.In zlib.h
.Ft int
.Fn deflateParams "z_streamp strm" "int level" "int strategy"
.
.Sh DESCRIPTION
Dynamically update the compression level
and compression strategy.
The interpretation of
.Fa level
and
.Fa strategy
is as in
.Xr deflateInit2 3 .
This can be used to switch between compression
and straight copy of the input data,
or to switch to a different kind of input data
requiring a different strategy.
If the compression approach
(which is a function of the level)
or the strategy is changed,
and if any input has been consumed
in a previous
.Xr deflate 3
call,
then the input available so far is compressed
with the old level and strategy using
.Fn deflate strm Z_BLOCK .
There are three approaches
for the compression levels
0, 1..3, and 4..9 respectively.
The new level and strategy
will take effect at the next call of
.Xr deflate 3 .
.
.Pp
If a
.Fn deflate strm Z_BLOCK
is performed by
.Fn deflateParams ,
and it does not have enough output space to complete,
then the parameter change will not take effect.
In this case,
.Fn deflateParams
can be called again
with the same parameters
and more output space
to try again.
.
.Pp
In order to assure a change in the parameters
on the first try,
the deflate stream should be flushed using
.Xr deflate 3
with
.Dv Z_BLOCK
or other flush request until
.Fa strm.avail_out
is not zero,
before calling
.Fn deflateParams .
Then no more input data
should be provided before the
.Fn deflateParams
call.
If this is done,
the old level and strategy
will be applied
to the data compressed before
.Fn deflateParams ,
and the new level and strategy
will be applied
to the data compressed after
.Fn deflateParams .
.
.Sh RETURN VALUES
.Fn deflateParams
returns
.Dv Z_OK
on success,
.Dv Z_STREAM_ERROR
if the source stream state was inconsistent
or if a parameter was invalid,
or
.Dv Z_BUF_ERROR
if there was not enough output space
to complete the compression
of the available input data
before a change in the strategy or approach.
Note that in the case of a
.Dv Z_BUF_ERROR ,
the parameters are not changed.
A return value of
.Dv Z_BUF_ERROR
is not fatal,
in which case
.Fn deflateParams
can be retried
with more output space.
nds check and compile pattends. 2019-02-07Add Escape class to hiJune McEnroe 2019-02-07Add Todo class and parent syntax constraintJune McEnroeddac372152c1046caf20703057347cebc5d5f0&follow=1'>Add htagml -iJune McEnroe 2021-01-12Render tag index in HTMLJune McEnroe 2021-01-12Add htagml -xJune McEnroe 2021-01-12Prevent matching the same tag twiceJune McEnroe 2021-01-12Process htagml file line by lineJune McEnroe This simplifies some things, adds support for line number tag definitions, and should enable combining htagml with other preprocessors in the future. 2021-01-12Split fields by tab onlyJune McEnroe Also don't fail hard on non-forward-search definitions. 2021-01-12List both Makefile and html.sh under README.7June McEnroe 2021-01-12Add htagml exampleJune McEnroe 2021-01-12Use mandoc and htagml for bin htmlJune McEnroe 2021-01-12Add htagmlJune McEnroe 2021-01-12Replace causal.agency with a simple mdoc pageJune McEnroe 2021-01-11Publish "Using vi"June McEnroe 2021-01-11Enable diff.colorMovedJune McEnroe 2021-01-10Set less search case-insensitiveJune McEnroe 2021-01-10Set EXINITJune McEnroe neovim is laggy as hell in my OpenBSD VM, so I switched to vi so I could type without getting frustrated. 2021-01-09Add c -t flag to print expression typeJune McEnroe Also add missing float case. 2021-01-05Update taglineJune McEnroe