From 2556706d67b471b45e0882ea4f32aa8b2efc14ec Mon Sep 17 00:00:00 2001 From: Mark Adler Date: Wed, 14 Dec 2011 04:21:00 -0800 Subject: Document gzread() capability to read concurrently written files. Also since gzread() will no longer return an error for an incomplete gzip file, have gzclose() return an error if the last gzread() ended in the middle of a gzip stream. --- gzread.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gzread.c') diff --git a/gzread.c b/gzread.c index 4bbbf52..09e5863 100644 --- a/gzread.c +++ b/gzread.c @@ -553,7 +553,7 @@ int ZEXPORT gzdirect(file) int ZEXPORT gzclose_r(file) gzFile file; { - int ret; + int ret, err; gz_statep state; /* get internal structure */ @@ -571,9 +571,10 @@ int ZEXPORT gzclose_r(file) free(state->out); free(state->in); } + err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK; gz_error(state, Z_OK, NULL); free(state->path); ret = close(state->fd); free(state); - return ret ? Z_ERRNO : Z_OK; + return ret ? Z_ERRNO : err; } -- cgit v1.2.1