Lines Matching refs:state

13 local int gz_load(gz_statep state, unsigned char *buf, unsigned len,  in gz_load()  argument
23 ret = read(state->fd, buf + *have, get); in gz_load()
29 gz_error(state, Z_ERRNO, zstrerror()); in gz_load()
33 state->eof = 1; in gz_load()
44 local int gz_avail(gz_statep state) { in gz_avail() argument
46 z_streamp strm = &(state->strm); in gz_avail()
48 if (state->err != Z_OK && state->err != Z_BUF_ERROR) in gz_avail()
50 if (state->eof == 0) { in gz_avail()
52 unsigned char *p = state->in; in gz_avail()
59 if (gz_load(state, state->in + strm->avail_in, in gz_avail()
60 state->size - strm->avail_in, &got) == -1) in gz_avail()
63 strm->next_in = state->in; in gz_avail()
77 local int gz_look(gz_statep state) { in gz_look() argument
78 z_streamp strm = &(state->strm); in gz_look()
81 if (state->size == 0) { in gz_look()
83 state->in = (unsigned char *)malloc(state->want); in gz_look()
84 state->out = (unsigned char *)malloc(state->want << 1); in gz_look()
85 if (state->in == NULL || state->out == NULL) { in gz_look()
86 free(state->out); in gz_look()
87 free(state->in); in gz_look()
88 gz_error(state, Z_MEM_ERROR, "out of memory"); in gz_look()
91 state->size = state->want; in gz_look()
94 state->strm.zalloc = Z_NULL; in gz_look()
95 state->strm.zfree = Z_NULL; in gz_look()
96 state->strm.opaque = Z_NULL; in gz_look()
97 state->strm.avail_in = 0; in gz_look()
98 state->strm.next_in = Z_NULL; in gz_look()
99 if (inflateInit2(&(state->strm), 15 + 16) != Z_OK) { /* gunzip */ in gz_look()
100 free(state->out); in gz_look()
101 free(state->in); in gz_look()
102 state->size = 0; in gz_look()
103 gz_error(state, Z_MEM_ERROR, "out of memory"); in gz_look()
110 if (gz_avail(state) == -1) in gz_look()
126 state->how = GZIP; in gz_look()
127 state->direct = 0; in gz_look()
133 if (state->direct == 0) { in gz_look()
135 state->eof = 1; in gz_look()
136 state->x.have = 0; in gz_look()
143 state->x.next = state->out; in gz_look()
144 memcpy(state->x.next, strm->next_in, strm->avail_in); in gz_look()
145 state->x.have = strm->avail_in; in gz_look()
147 state->how = COPY; in gz_look()
148 state->direct = 1; in gz_look()
157 local int gz_decomp(gz_statep state) { in gz_decomp() argument
160 z_streamp strm = &(state->strm); in gz_decomp()
166 if (strm->avail_in == 0 && gz_avail(state) == -1) in gz_decomp()
169 gz_error(state, Z_BUF_ERROR, "unexpected end of file"); in gz_decomp()
176 gz_error(state, Z_STREAM_ERROR, in gz_decomp()
181 gz_error(state, Z_MEM_ERROR, "out of memory"); in gz_decomp()
185 gz_error(state, Z_DATA_ERROR, in gz_decomp()
192 state->x.have = had - strm->avail_out; in gz_decomp()
193 state->x.next = strm->next_out - state->x.have; in gz_decomp()
197 state->how = LOOK; in gz_decomp()
209 local int gz_fetch(gz_statep state) { in gz_fetch() argument
210 z_streamp strm = &(state->strm); in gz_fetch()
213 switch(state->how) { in gz_fetch()
215 if (gz_look(state) == -1) in gz_fetch()
217 if (state->how == LOOK) in gz_fetch()
221 if (gz_load(state, state->out, state->size << 1, &(state->x.have)) in gz_fetch()
224 state->x.next = state->out; in gz_fetch()
227 strm->avail_out = state->size << 1; in gz_fetch()
228 strm->next_out = state->out; in gz_fetch()
229 if (gz_decomp(state) == -1) in gz_fetch()
232 } while (state->x.have == 0 && (!state->eof || strm->avail_in)); in gz_fetch()
237 local int gz_skip(gz_statep state, z_off64_t len) { in gz_skip() argument
243 if (state->x.have) { in gz_skip()
244 n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > len ? in gz_skip()
245 (unsigned)len : state->x.have; in gz_skip()
246 state->x.have -= n; in gz_skip()
247 state->x.next += n; in gz_skip()
248 state->x.pos += n; in gz_skip()
253 else if (state->eof && state->strm.avail_in == 0) in gz_skip()
259 if (gz_fetch(state) == -1) in gz_skip()
269 local z_size_t gz_read(gz_statep state, voidp buf, z_size_t len) { in gz_read() argument
278 if (state->seek) { in gz_read()
279 state->seek = 0; in gz_read()
280 if (gz_skip(state, state->skip) == -1) in gz_read()
293 if (state->x.have) { in gz_read()
294 if (state->x.have < n) in gz_read()
295 n = state->x.have; in gz_read()
296 memcpy(buf, state->x.next, n); in gz_read()
297 state->x.next += n; in gz_read()
298 state->x.have -= n; in gz_read()
302 else if (state->eof && state->strm.avail_in == 0) { in gz_read()
303 state->past = 1; /* tried to read past end */ in gz_read()
309 else if (state->how == LOOK || n < (state->size << 1)) { in gz_read()
311 if (gz_fetch(state) == -1) in gz_read()
319 else if (state->how == COPY) { /* read directly */ in gz_read()
320 if (gz_load(state, (unsigned char *)buf, n, &n) == -1) in gz_read()
326 state->strm.avail_out = n; in gz_read()
327 state->strm.next_out = (unsigned char *)buf; in gz_read()
328 if (gz_decomp(state) == -1) in gz_read()
330 n = state->x.have; in gz_read()
331 state->x.have = 0; in gz_read()
338 state->x.pos += n; in gz_read()
347 gz_statep state; in gzread() local
352 state = (gz_statep)file; in gzread()
355 if (state->mode != GZ_READ || in gzread()
356 (state->err != Z_OK && state->err != Z_BUF_ERROR)) in gzread()
362 gz_error(state, Z_STREAM_ERROR, "request does not fit in an int"); in gzread()
367 len = (unsigned)gz_read(state, buf, len); in gzread()
370 if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR) in gzread()
380 gz_statep state; in gzfread() local
385 state = (gz_statep)file; in gzfread()
388 if (state->mode != GZ_READ || in gzfread()
389 (state->err != Z_OK && state->err != Z_BUF_ERROR)) in gzfread()
395 gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t"); in gzfread()
400 return len ? gz_read(state, buf, len) / size : 0; in gzfread()
411 gz_statep state; in gzgetc() local
416 state = (gz_statep)file; in gzgetc()
419 if (state->mode != GZ_READ || in gzgetc()
420 (state->err != Z_OK && state->err != Z_BUF_ERROR)) in gzgetc()
424 if (state->x.have) { in gzgetc()
425 state->x.have--; in gzgetc()
426 state->x.pos++; in gzgetc()
427 return *(state->x.next)++; in gzgetc()
431 return gz_read(state, buf, 1) < 1 ? -1 : buf[0]; in gzgetc()
440 gz_statep state; in gzungetc() local
445 state = (gz_statep)file; in gzungetc()
448 if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0) in gzungetc()
449 (void)gz_look(state); in gzungetc()
452 if (state->mode != GZ_READ || in gzungetc()
453 (state->err != Z_OK && state->err != Z_BUF_ERROR)) in gzungetc()
457 if (state->seek) { in gzungetc()
458 state->seek = 0; in gzungetc()
459 if (gz_skip(state, state->skip) == -1) in gzungetc()
468 if (state->x.have == 0) { in gzungetc()
469 state->x.have = 1; in gzungetc()
470 state->x.next = state->out + (state->size << 1) - 1; in gzungetc()
471 state->x.next[0] = (unsigned char)c; in gzungetc()
472 state->x.pos--; in gzungetc()
473 state->past = 0; in gzungetc()
478 if (state->x.have == (state->size << 1)) { in gzungetc()
479 gz_error(state, Z_DATA_ERROR, "out of room to push characters"); in gzungetc()
484 if (state->x.next == state->out) { in gzungetc()
485 unsigned char *src = state->out + state->x.have; in gzungetc()
486 unsigned char *dest = state->out + (state->size << 1); in gzungetc()
487 while (src > state->out) in gzungetc()
489 state->x.next = dest; in gzungetc()
491 state->x.have++; in gzungetc()
492 state->x.next--; in gzungetc()
493 state->x.next[0] = (unsigned char)c; in gzungetc()
494 state->x.pos--; in gzungetc()
495 state->past = 0; in gzungetc()
504 gz_statep state; in gzgets() local
509 state = (gz_statep)file; in gzgets()
512 if (state->mode != GZ_READ || in gzgets()
513 (state->err != Z_OK && state->err != Z_BUF_ERROR)) in gzgets()
517 if (state->seek) { in gzgets()
518 state->seek = 0; in gzgets()
519 if (gz_skip(state, state->skip) == -1) in gzgets()
530 if (state->x.have == 0 && gz_fetch(state) == -1) in gzgets()
532 if (state->x.have == 0) { /* end of file */ in gzgets()
533 state->past = 1; /* read past end */ in gzgets()
538 n = state->x.have > left ? left : state->x.have; in gzgets()
539 eol = (unsigned char *)memchr(state->x.next, '\n', n); in gzgets()
541 n = (unsigned)(eol - state->x.next) + 1; in gzgets()
544 memcpy(buf, state->x.next, n); in gzgets()
545 state->x.have -= n; in gzgets()
546 state->x.next += n; in gzgets()
547 state->x.pos += n; in gzgets()
561 gz_statep state; in gzdirect() local
566 state = (gz_statep)file; in gzdirect()
570 if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0) in gzdirect()
571 (void)gz_look(state); in gzdirect()
574 return state->direct; in gzdirect()
580 gz_statep state; in gzclose_r() local
585 state = (gz_statep)file; in gzclose_r()
588 if (state->mode != GZ_READ) in gzclose_r()
592 if (state->size) { in gzclose_r()
593 inflateEnd(&(state->strm)); in gzclose_r()
594 free(state->out); in gzclose_r()
595 free(state->in); in gzclose_r()
597 err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK; in gzclose_r()
598 gz_error(state, Z_OK, NULL); in gzclose_r()
599 free(state->path); in gzclose_r()
600 ret = close(state->fd); in gzclose_r()
601 free(state); in gzclose_r()