summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gzwrite.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/gzwrite.c b/gzwrite.c
index bf57913..f53aace 100644
--- a/gzwrite.c
+++ b/gzwrite.c
@@ -270,14 +270,16 @@ int ZEXPORT gzputc(file, c)
270 270
271 /* try writing to input buffer for speed (state->size == 0 if buffer not 271 /* try writing to input buffer for speed (state->size == 0 if buffer not
272 initialized) */ 272 initialized) */
273 if (strm->avail_in == 0) 273 if (state->size) {
274 strm->next_in = state->in; 274 if (strm->avail_in == 0)
275 have = strm->next_in + strm->avail_in - state->in; 275 strm->next_in = state->in;
276 if (have < state->size) { 276 have = strm->next_in + strm->avail_in - state->in;
277 state->in[have] = c; 277 if (have < state->size) {
278 strm->avail_in++; 278 state->in[have] = c;
279 state->x.pos++; 279 strm->avail_in++;
280 return c & 0xff; 280 state->x.pos++;
281 return c & 0xff;
282 }
281 } 283 }
282 284
283 /* no room in buffer or not initialized, use gz_write() */ 285 /* no room in buffer or not initialized, use gz_write() */