Lines Matching refs:state
20 local int gz_init(state) in gz_init() argument
21 gz_statep state; in gz_init()
24 z_streamp strm = &(state.state->strm);
27 state.state->in = (unsigned char *)malloc(state.state->want << 1);
28 if (state.state->in == NULL) {
29 gz_error(state, Z_MEM_ERROR, "out of memory");
34 if (!state.state->direct) {
36 state.state->out = (unsigned char *)malloc(state.state->want);
37 if (state.state->out == NULL) {
38 free(state.state->in);
39 gz_error(state, Z_MEM_ERROR, "out of memory");
47 ret = deflateInit2(strm, state.state->level, Z_DEFLATED,
48 MAX_WBITS + 16, DEF_MEM_LEVEL, state.state->strategy);
50 free(state.state->out);
51 free(state.state->in);
52 gz_error(state, Z_MEM_ERROR, "out of memory");
59 state.state->size = state.state->want;
62 if (!state.state->direct) {
63 strm->avail_out = state.state->size;
64 strm->next_out = state.state->out;
65 state.state->x.next = strm->next_out;
76 local int gz_comp(state, flush) in gz_comp() argument
77 gz_statep state; in gz_comp()
82 z_streamp strm = &(state.state->strm);
85 if (state.state->size == 0 && gz_init(state) == -1)
89 if (state.state->direct) {
92 writ = (int)write(state.state->fd, strm->next_in, put);
94 gz_error(state, Z_ERRNO, zstrerror());
110 while (strm->next_out > state.state->x.next) {
111 put = strm->next_out - state.state->x.next > (int)max ? max :
112 (unsigned)(strm->next_out - state.state->x.next);
113 writ = (int)write(state.state->fd, state.state->x.next, put);
115 gz_error(state, Z_ERRNO, zstrerror());
118 state.state->x.next += writ;
121 strm->avail_out = state.state->size;
122 strm->next_out = state.state->out;
123 state.state->x.next = state.state->out;
131 gz_error(state, Z_STREAM_ERROR,
148 local int gz_zero(state, len) in gz_zero() argument
149 gz_statep state; in gz_zero()
154 z_streamp strm = &(state.state->strm);
157 if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
163 n = GT_OFF(state.state->size) || (z_off64_t)state.state->size > len ?
164 (unsigned)len : state.state->size;
166 memset(state.state->in, 0, n);
170 strm->next_in = state.state->in;
171 state.state->x.pos += n;
172 if (gz_comp(state, Z_NO_FLUSH) == -1)
181 local z_size_t gz_write(state, buf, len) in gz_write() argument
182 gz_statep state; in gz_write()
193 if (state.state->size == 0 && gz_init(state) == -1)
197 if (state.state->seek) {
198 state.state->seek = 0;
199 if (gz_zero(state, state.state->skip) == -1)
204 if (len < state.state->size) {
209 if (state.state->strm.avail_in == 0)
210 state.state->strm.next_in = state.state->in;
211 have = (unsigned)((state.state->strm.next_in + state.state->strm.avail_in) -
212 state.state->in);
213 copy = state.state->size - have;
216 memcpy(state.state->in + have, buf, copy);
217 state.state->strm.avail_in += copy;
218 state.state->x.pos += copy;
221 if (len && gz_comp(state, Z_NO_FLUSH) == -1)
227 if (state.state->strm.avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
231 state.state->strm.next_in = (z_const Bytef *)buf;
236 state.state->strm.avail_in = (z_uInt)n;
237 state.state->x.pos += n;
238 if (gz_comp(state, Z_NO_FLUSH) == -1)
254 gz_statep state; local
259 state = (gz_statep)file;
262 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
268 gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
273 return (int)gz_write(state, buf, len);
284 gz_statep state; local
289 state = (gz_statep)file;
292 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
298 gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
303 return len ? gz_write(state, buf, len) / size : 0;
313 gz_statep state; local
319 state = (gz_statep)file;
320 strm = &(state.state->strm);
323 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
327 if (state.state->seek) {
328 state.state->seek = 0;
329 if (gz_zero(state, state.state->skip) == -1)
335 if (state.state->size) {
337 strm->next_in = state.state->in;
338 have = (unsigned)((strm->next_in + strm->avail_in) - state.state->in);
339 if (have < state.state->size) {
340 state.state->in[have] = (unsigned char)c;
342 state.state->x.pos++;
349 if (gz_write(state, buf, 1) != 1)
361 gz_statep state; local
366 state = (gz_statep)file;
369 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
374 ret = (int)gz_write(state, str, len);
387 gz_statep state; in gzvprintf() local
393 state = (gz_statep)file; in gzvprintf()
394 strm = &(state.state->strm); in gzvprintf()
397 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK) in gzvprintf()
401 if (state.state->size == 0 && gz_init(state) == -1) in gzvprintf()
402 return state.state->err; in gzvprintf()
405 if (state.state->seek) { in gzvprintf()
406 state.state->seek = 0; in gzvprintf()
407 if (gz_zero(state, state.state->skip) == -1) in gzvprintf()
408 return state.state->err; in gzvprintf()
415 strm->next_in = state.state->in; in gzvprintf()
416 next = (char *)(state.state->in + (strm->next_in - state.state->in) + strm->avail_in); in gzvprintf()
417 next[state.state->size - 1] = 0; in gzvprintf()
421 for (len = 0; len < state.state->size; len++) in gzvprintf()
428 (void)vsnprintf(next, state.state->size, format, va); in gzvprintf()
431 len = vsnprintf(next, state.state->size, format, va); in gzvprintf()
436 if (len == 0 || (unsigned)len >= state.state->size || next[state.state->size - 1] != 0) in gzvprintf()
441 state.state->x.pos += len; in gzvprintf()
442 if (strm->avail_in >= state.state->size) { in gzvprintf()
443 left = strm->avail_in - state.state->size; in gzvprintf()
444 strm->avail_in = state.state->size; in gzvprintf()
445 if (gz_comp(state, Z_NO_FLUSH) == -1) in gzvprintf()
446 return state.state->err; in gzvprintf()
447 memcpy(state.state->in, state.state->in + state.state->size, left); in gzvprintf()
448 strm->next_in = state.state->in; in gzvprintf()
477 gz_statep state; local
483 state = (gz_statep)file;
484 strm = &(state.state->strm);
491 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
495 if (state.state->size == 0 && gz_init(state) == -1)
496 return state.state->error;
499 if (state.state->seek) {
500 state.state->seek = 0;
501 if (gz_zero(state, state.state->skip) == -1)
502 return state.state->error;
509 strm->next_in = state.state->in;
511 next[state.state->size - 1] = 0;
525 snprintf(next, state.state->size, format, a1, a2, a3, a4, a5, a6, a7, a8, a9,
529 len = snprintf(next, state.state->size, format, a1, a2, a3, a4, a5, a6, a7, a8,
535 if (len == 0 || len >= state.state->size || next[state.state->size - 1] != 0)
540 state.state->x.pos += len;
541 if (strm->avail_in >= state.state->size) {
542 left = strm->avail_in - state.state->size;
543 strm->avail_in = state.state->size;
544 if (gz_comp(state, Z_NO_FLUSH) == -1)
545 return state.state->err;
546 memcpy(state.state->in, state.state->in + state.state->size, left);
547 strm->next_in = state.state->in;
560 gz_statep state; local
565 state = (gz_statep)file;
568 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
576 if (state.state->seek) {
577 state.state->seek = 0;
578 if (gz_zero(state, state.state->skip) == -1)
579 return state.state->err;
583 (void)gz_comp(state, flush);
584 return state.state->err;
593 gz_statep state; local
599 state = (gz_statep)file;
600 strm = &(state.state->strm);
603 if (state.state->mode != GZ_WRITE || state.state->err != Z_OK)
607 if (level == state.state->level && strategy == state.state->strategy)
611 if (state.state->seek) {
612 state.state->seek = 0;
613 if (gz_zero(state, state.state->skip) == -1)
614 return state.state->err;
618 if (state.state->size) {
620 if (strm->avail_in && gz_comp(state, Z_BLOCK) == -1)
621 return state.state->err;
624 state.state->level = level;
625 state.state->strategy = strategy;
634 gz_statep state; local
639 state = (gz_statep)file;
642 if (state.state->mode != GZ_WRITE)
646 if (state.state->seek) {
647 state.state->seek = 0;
648 if (gz_zero(state, state.state->skip) == -1)
649 ret = state.state->err;
653 if (gz_comp(state, Z_FINISH) == -1)
654 ret = state.state->err;
655 if (state.state->size) {
656 if (!state.state->direct) {
657 (void)deflateEnd(&(state.state->strm));
658 free(state.state->out);
660 free(state.state->in);
662 gz_error(state, Z_OK, NULL);
663 free(state.state->path);
664 if (close(state.state->fd) == -1)
666 free(state.state);