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