diff options
-rw-r--r-- | gzwrite.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -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() */ |