1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* gzclose.c -- zlib gzclose() function
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Copyright (C) 2004, 2010 Mark Adler
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * For conditions of distribution and use, see copyright notice in zlib.h
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "gzguts.h"
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* gzclose() is in a separate file so that it is linked in only if it is used.
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   That way the other gzclose functions can be used instead to avoid linking in
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov   unneeded compression or decompression routines. */
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovint ZEXPORT gzclose(
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    gzFile file)
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef NO_GZCOMPRESS
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    gz_statep state;
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    if (file == NULL)
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov        return Z_STREAM_ERROR;
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    state = (gz_statep)file;
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#else
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    return gzclose_r(file);
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
26