blob: 25d3789b128a7405e21a7a30a2baf7db2273f168 [file] [log] [blame]
Przemyslaw Skibinskif0d7da72016-11-29 18:02:34 +01001/* gzclose.c contains minimal changes required to be compiled with zlibWrapper:
2 * - gz_statep was converted to union to work with -Wstrict-aliasing=1 */
3
Przemyslaw Skibinski3bf9a722016-11-24 18:26:30 +01004/* gzclose.c -- zlib gzclose() function
5 * Copyright (C) 2004, 2010 Mark Adler
Przemyslaw Skibinski622d7412016-12-13 19:44:07 +01006 * For conditions of distribution and use, see http://www.zlib.net/zlib_license.html
Przemyslaw Skibinski3bf9a722016-11-24 18:26:30 +01007 */
8
9#include "gzguts.h"
10
11/* gzclose() is in a separate file so that it is linked in only if it is used.
12 That way the other gzclose functions can be used instead to avoid linking in
13 unneeded compression or decompression routines. */
14int ZEXPORT gzclose(file)
15 gzFile file;
16{
17#ifndef NO_GZCOMPRESS
18 gz_statep state;
19
20 if (file == NULL)
21 return Z_STREAM_ERROR;
Yann Colletcb18fff2019-09-24 17:50:58 -070022 state.file = file;
Przemyslaw Skibinski3bf9a722016-11-24 18:26:30 +010023
Przemyslaw Skibinskia1f60632016-11-29 15:50:28 +010024 return state.state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
Przemyslaw Skibinski3bf9a722016-11-24 18:26:30 +010025#else
26 return gzclose_r(file);
27#endif
28}