diff options
author | Mark Adler <madler@alumni.caltech.edu> | 2011-12-14 04:21:00 -0800 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2011-12-14 04:21:00 -0800 |
commit | 2556706d67b471b45e0882ea4f32aa8b2efc14ec (patch) | |
tree | ed16d084027fa6726873eddfaa5187a64e05857e /gzread.c | |
parent | 850a198ff1879e506c961c91da30009539ed14b3 (diff) | |
download | zlib-2556706d67b471b45e0882ea4f32aa8b2efc14ec.tar.gz |
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.
Diffstat (limited to 'gzread.c')
-rw-r--r-- | gzread.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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; } |