aboutsummaryrefslogtreecommitdiff
path: root/gzread.c
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2011-12-14 04:21:00 -0800
committerMark Adler <madler@alumni.caltech.edu>2011-12-14 04:21:00 -0800
commit2556706d67b471b45e0882ea4f32aa8b2efc14ec (patch)
treeed16d084027fa6726873eddfaa5187a64e05857e /gzread.c
parent850a198ff1879e506c961c91da30009539ed14b3 (diff)
downloadzlib-2556706d67b471b45e0882ea4f32aa8b2efc14ec.tar.gz
zlib-2556706d67b471b45e0882ea4f32aa8b2efc14ec.tar.bz2
zlib-2556706d67b471b45e0882ea4f32aa8b2efc14ec.zip
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.c5
1 files changed, 3 insertions, 2 deletions
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)
553int ZEXPORT gzclose_r(file) 553int ZEXPORT gzclose_r(file)
554 gzFile file; 554 gzFile file;
555{ 555{
556 int ret; 556 int ret, err;
557 gz_statep state; 557 gz_statep state;
558 558
559 /* get internal structure */ 559 /* get internal structure */
@@ -571,9 +571,10 @@ int ZEXPORT gzclose_r(file)
571 free(state->out); 571 free(state->out);
572 free(state->in); 572 free(state->in);
573 } 573 }
574 err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK;
574 gz_error(state, Z_OK, NULL); 575 gz_error(state, Z_OK, NULL);
575 free(state->path); 576 free(state->path);
576 ret = close(state->fd); 577 ret = close(state->fd);
577 free(state); 578 free(state);
578 return ret ? Z_ERRNO : Z_OK; 579 return ret ? Z_ERRNO : err;
579} 580}