24 state->in = (
unsigned char *)malloc(state->want << 1);
25 if (state->in == NULL) {
33 state->out = (
unsigned char *)malloc(state->want);
34 if (state->out == NULL) {
56 state->size = state->want;
60 strm->avail_out = state->size;
61 strm->next_out = state->out;
62 state->x.next = strm->next_out;
78 unsigned have, put, max = ((unsigned)-1 >> 2) + 1;
82 if (state->size == 0 &&
gz_init(state) == -1)
87 while (strm->avail_in) {
88 put = strm->avail_in > max ? max : strm->avail_in;
89 writ = write(state->fd, strm->next_in, put);
94 strm->avail_in -= (unsigned)writ;
95 strm->next_in += writ;
105 if (strm->avail_out == 0 || (flush !=
Z_NO_FLUSH &&
107 while (strm->next_out > state->x.next) {
108 put = strm->next_out - state->x.next > (int)max ? max :
109 (
unsigned)(strm->next_out - state->x.next);
110 writ = write(state->fd, state->x.next, put);
115 state->x.next += writ;
117 if (strm->avail_out == 0) {
118 strm->avail_out = state->size;
119 strm->next_out = state->out;
120 state->x.next = state->out;
125 have = strm->avail_out;
129 "internal error: deflate stream corrupt");
132 have -= strm->avail_out;
161 (
unsigned)len : state->size;
163 memset(state->in, 0, n);
167 strm->next_in = state->in;
190 if (state->size == 0 &&
gz_init(state) == -1)
196 if (
gz_zero(state, state->skip) == -1)
201 if (len < state->size) {
206 if (state->strm.avail_in == 0)
207 state->strm.next_in = state->in;
208 have = (unsigned)((state->strm.next_in + state->strm.avail_in) -
210 copy = state->size - have;
213 memcpy(state->in + have, buf, copy);
214 state->strm.avail_in += copy;
215 state->x.pos += copy;
216 buf = (
const char *)buf + copy;
230 unsigned n = (unsigned)-1;
233 state->strm.avail_in = n;
270 return (
int)
gz_write(state, buf, len);
294 if (size && len / size != nitems) {
300 return len ?
gz_write(state, buf, len) / size : 0;
309 unsigned char buf[1];
317 strm = &(state->strm);
326 if (
gz_zero(state, state->skip) == -1)
333 if (strm->avail_in == 0)
334 strm->next_in = state->in;
335 have = (unsigned)((strm->next_in + strm->avail_in) - state->in);
336 if (have < state->size) {
337 state->in[have] = (
unsigned char)c;
345 buf[0] = (
unsigned char)c;
372 return ret == 0 && len != 0 ? -1 : ret;
375#if defined(STDC) || defined(Z_HAVE_STDARG_H)
391 strm = &(state->strm);
398 if (state->size == 0 &&
gz_init(state) == -1)
404 if (
gz_zero(state, state->skip) == -1)
411 if (strm->avail_in == 0)
412 strm->next_in = state->in;
413 next = (
char *)(state->in + (strm->next_in - state->in) + strm->avail_in);
414 next[state->size - 1] = 0;
416# ifdef HAS_vsprintf_void
417 (void)vsprintf(next, format, va);
418 for (len = 0; len < state->size; len++)
419 if (next[len] == 0)
break;
421 len = vsprintf(next, format, va);
424# ifdef HAS_vsnprintf_void
425 (void)vsnprintf(next, state->size, format, va);
428 len = vsnprintf(next, state->size, format, va);
433 if (len == 0 || (
unsigned)len >= state->size || next[state->size - 1] != 0)
437 strm->avail_in += (unsigned)len;
439 if (strm->avail_in >= state->size) {
440 left = strm->avail_in - state->size;
441 strm->avail_in = state->size;
444 memcpy(state->in, state->in + state->size, left);
445 strm->next_in = state->in;
446 strm->avail_in = left;
456 va_start(va, format);
457 ret = gzvprintf(file, format, va);
465int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
466 a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
469 int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
470 a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
481 strm = &(state->strm);
484 if (
sizeof(
int) !=
sizeof(
void *))
492 if (state->size == 0 &&
gz_init(state) == -1)
498 if (
gz_zero(state, state->skip) == -1)
505 if (strm->avail_in == 0)
506 strm->next_in = state->in;
507 next = (
char *)(strm->next_in + strm->avail_in);
508 next[state->size - 1] = 0;
510# ifdef HAS_sprintf_void
511 sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
512 a13, a14, a15, a16, a17, a18, a19, a20);
513 for (len = 0; len < size; len++)
517 len = sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
518 a12, a13, a14, a15, a16, a17, a18, a19, a20);
521# ifdef HAS_snprintf_void
522 snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8, a9,
523 a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
526 len = snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8,
527 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
532 if (len == 0 || len >= state->size || next[state->size - 1] != 0)
536 strm->avail_in += len;
538 if (strm->avail_in >= state->size) {
539 left = strm->avail_in - state->size;
540 strm->avail_in = state->size;
543 memcpy(state->in, state->in + state->size, left);
544 strm->next_in = state->in;
545 strm->avail_in = left;
575 if (
gz_zero(state, state->skip) == -1)
597 strm = &(state->strm);
604 if (level == state->level && strategy == state->strategy)
610 if (
gz_zero(state, state->skip) == -1)
621 state->level = level;
622 state->strategy = strategy;
645 if (
gz_zero(state, state->skip) == -1)
653 if (!state->direct) {
661 if (close(state->fd) == -1)
int ZEXPORT deflateReset(z_streamp strm)
int ZEXPORT deflateParams(z_streamp strm, int level, int strategy)
int ZEXPORT deflateEnd(z_streamp strm)
int ZEXPORT deflate(z_streamp strm, int flush)
void ZLIB_INTERNAL gz_error(gz_statep state, int err, const char *msg)
int ZEXPORT gzsetparams(gzFile file, int level, int strategy)
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 gzputs(gzFile file, const char *str)
int ZEXPORT gzputc(gzFile file, int c)
int gz_comp(gz_statep state, int flush)
int ZEXPORT gzflush(gzFile file, int flush)
int ZEXPORT gzclose_w(gzFile file)
int ZEXPORT gzwrite(gzFile file, voidpc buf, unsigned len)
z_size_t gz_write(gz_statep state, voidpc buf, z_size_t len)
z_size_t ZEXPORT gzfwrite(voidpc buf, z_size_t size, z_size_t nitems, gzFile file)
int gz_init(gz_statep state)
int gz_zero(gz_statep state, z_off64_t len)
int gz_init OF((gz_statep))
#define deflateInit2(strm, level, method, windowBits, memLevel, strategy)