7 #if !defined(__GNUC__) && !defined(_WIN32_WCE)
27 state->in = (
unsigned char *)
malloc(state->want);
28 if (state->in ==
NULL) {
36 state->out = (
unsigned char *)
malloc(state->want);
37 if (state->out ==
NULL) {
58 state->size = state->want;
62 strm->avail_out = state->size;
63 strm->next_out = state->out;
64 state->x.next = strm->next_out;
84 if (state->size == 0 &&
gz_init(state) == -1)
89 got = (int)write(state->fd, strm->next_in, strm->avail_in);
90 if (got < 0 || (
unsigned)got != strm->avail_in) {
103 if (strm->avail_out == 0 || (flush !=
Z_NO_FLUSH &&
105 have = (unsigned)(strm->next_out - state->x.next);
106 if (have && ((got = (
int)write(state->fd, state->x.next, have)) < 0 ||
107 (
unsigned)got != have)) {
111 if (strm->avail_out == 0) {
112 strm->avail_out = state->size;
113 strm->next_out = state->out;
115 state->x.next = strm->next_out;
119 have = strm->avail_out;
123 "internal error: deflate stream corrupt");
126 have -= strm->avail_out;
154 (
unsigned)len : state->size;
156 memset(state->in, 0, n);
160 strm->next_in = state->in;
183 strm = &(state->strm);
201 if (state->size == 0 &&
gz_init(state) == -1)
207 if (
gz_zero(state, state->skip) == -1)
212 if (len < state->
size) {
217 if (strm->avail_in == 0)
218 strm->next_in = state->in;
219 have = (unsigned)((strm->next_in + strm->avail_in) - state->in);
220 copy = state->size -
have;
223 memcpy(state->in + have, buf, copy);
224 strm->avail_in += copy;
225 state->x.pos += copy;
226 buf = (
const char *)buf + copy;
238 strm->avail_in = len;
255 unsigned char buf[1];
263 strm = &(state->strm);
272 if (
gz_zero(state, state->skip) == -1)
279 if (strm->avail_in == 0)
280 strm->next_in = state->in;
281 have = (unsigned)((strm->next_in + strm->avail_in) - state->in);
282 if (have < state->
size) {
292 if (
gzwrite(file, buf, 1) != 1)
306 len = (unsigned)strlen(str);
308 return ret == 0 && len != 0 ? -1 :
ret;
311 #if defined(STDC) || defined(Z_HAVE_STDARG_H)
325 strm = &(state->strm);
332 if (state->size == 0 &&
gz_init(state) == -1)
338 if (
gz_zero(state, state->skip) == -1)
347 size = (int)(state->size);
348 state->in[size - 1] = 0;
350 # ifdef HAS_vsprintf_void
351 (void)vsprintf((
char *)(state->in), format, va);
352 for (len = 0; len <
size; len++)
353 if (state->in[len] == 0)
break;
355 len = vsprintf((
char *)(state->in), format, va);
358 # ifdef HAS_vsnprintf_void
359 (void)vsnprintf((
char *)(state->in), size, format, va);
360 len = strlen((
char *)(state->in));
362 len = vsnprintf((
char *)(state->in), size, format, va);
367 if (len <= 0 || len >= (
int)size || state->in[size - 1] != 0)
371 strm->avail_in = (unsigned)len;
372 strm->next_in = state->in;
382 va_start(va, format);
383 ret = gzvprintf(file, format, va);
391 int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
392 a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
395 int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
396 a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
406 strm = &(state->strm);
409 if (
sizeof(
int) !=
sizeof(
void *))
417 if (state->size == 0 &&
gz_init(state) == -1)
423 if (
gz_zero(state, state->skip) == -1)
432 size = (int)(state->size);
433 state->in[size - 1] = 0;
435 # ifdef HAS_sprintf_void
436 sprintf((
char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8,
437 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
438 for (len = 0; len <
size; len++)
439 if (state->in[len] == 0)
break;
441 len = sprintf((
char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8,
442 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
445 # ifdef HAS_snprintf_void
446 snprintf((
char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, a7, a8,
447 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
448 len = strlen((
char *)(state->in));
450 len = snprintf((
char *)(state->in), size, format, a1, a2, a3, a4, a5, a6,
451 a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18,
457 if (len <= 0 || len >= (
int)size || state->in[size - 1] != 0)
461 strm->avail_in = (unsigned)len;
462 strm->next_in = state->in;
492 if (
gz_zero(state, state->skip) == -1)
514 strm = &(state->strm);
521 if (level == state->level && strategy == state->strategy)
527 if (
gz_zero(state, state->skip) == -1)
538 state->level = level;
539 state->strategy = strategy;
562 if (
gz_zero(state, state->skip) == -1)
570 if (!state->direct) {
578 if (close(state->fd) == -1)
int ZEXPORT deflateParams(z_streamp strm, int level, int strategy)
int ZEXPORT gzsetparams(gzFile file, int level, int strategy)
int ZEXPORT deflateEnd(z_streamp strm)
int ZEXPORT gzwrite(gzFile file, voidpc buf, unsigned len)
local int gz_init(gz_statep state)
int ZEXPORT gzputc(gzFile file, int c)
void ZLIB_INTERNAL gz_error(gz_statep state, int err, const char *msg)
#define deflateInit2(strm, level, method, windowBits, memLevel, strategy)
local int gz_zero(gz_statep state, z_off64_t len)
int ZEXPORT gzclose_w(gzFile file)
int ZEXPORT gzputs(gzFile file, const char *str)
local int gz_comp(gz_statep state, int flush)
int ZEXPORT deflate(z_streamp strm, int flush)
int ZEXPORTVA gzprintf(gzFile file, const char *format, int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20)
int ZEXPORT gzflush(gzFile file, int flush)
int ZEXPORT deflateReset(z_streamp strm)