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