2016-11-30 01:02:34 +08:00
|
|
|
/* gzclose.c contains minimal changes required to be compiled with zlibWrapper:
|
|
|
|
* - gz_statep was converted to union to work with -Wstrict-aliasing=1 */
|
|
|
|
|
2016-11-25 01:26:30 +08:00
|
|
|
/* gzclose.c -- zlib gzclose() function
|
|
|
|
* Copyright (C) 2004, 2010 Mark Adler
|
2016-12-14 02:44:07 +08:00
|
|
|
* For conditions of distribution and use, see http://www.zlib.net/zlib_license.html
|
2016-11-25 01:26:30 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "gzguts.h"
|
|
|
|
|
|
|
|
/* gzclose() is in a separate file so that it is linked in only if it is used.
|
|
|
|
That way the other gzclose functions can be used instead to avoid linking in
|
|
|
|
unneeded compression or decompression routines. */
|
|
|
|
int ZEXPORT gzclose(file)
|
|
|
|
gzFile file;
|
|
|
|
{
|
|
|
|
#ifndef NO_GZCOMPRESS
|
|
|
|
gz_statep state;
|
|
|
|
|
|
|
|
if (file == NULL)
|
|
|
|
return Z_STREAM_ERROR;
|
2019-09-25 08:50:58 +08:00
|
|
|
state.file = file;
|
2016-11-25 01:26:30 +08:00
|
|
|
|
2016-11-29 22:50:28 +08:00
|
|
|
return state.state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
|
2016-11-25 01:26:30 +08:00
|
|
|
#else
|
|
|
|
return gzclose_r(file);
|
|
|
|
#endif
|
|
|
|
}
|