X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmisc%2Fzfstream.cxx;h=d470ec35e525251de29cd0af562189a10edc48f3;hb=5bab565cfe4c30d6cf08ecaba50af74d5e4f0c98;hp=f265665cbe7fc3a51e7a83bb25fe40ede73738fe;hpb=5173d709e090b953eaf800cbcd1bf897de332a12;p=simgear.git diff --git a/simgear/misc/zfstream.cxx b/simgear/misc/zfstream.cxx index f265665c..d470ec35 100644 --- a/simgear/misc/zfstream.cxx +++ b/simgear/misc/zfstream.cxx @@ -5,23 +5,33 @@ // // Copyright (C) 1998 Bernie Bright - bbright@c031.aone.net.au // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of the -// License, or (at your option) any later version. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. // -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. +// Library General Public License for more details. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// You should have received a copy of the GNU Library General Public +// License along with this library; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. // // $Id$ +#include + +#ifdef SG_HAVE_STD_INCLUDES +# include +#else +# include +#endif #include +#include + #include "zfstream.hxx" // @@ -31,7 +41,7 @@ gzfilebuf::gzfilebuf() : streambuf(), file(NULL), -#if defined( __MWERKS__ ) +#if defined( __MWERKS__ ) || __GNUC__ > 2 mode(ios_openmode(0)), #else mode(0), @@ -105,8 +115,11 @@ gzfilebuf::open( const char *name, ios_openmode io_mode ) char char_mode[10]; cvt_iomode( char_mode, io_mode ); - if ( (file = gzopen(name, char_mode)) == NULL ) + if ( (file = gzopen(name, char_mode)) == NULL ) { + // perror( "gzfilebuf::open(): " ); + errno = 0; return NULL; + } own_file_descriptor = true; @@ -121,8 +134,11 @@ gzfilebuf::attach( int file_descriptor, ios_openmode io_mode ) char char_mode[10]; cvt_iomode( char_mode, io_mode ); - if ( (file = gzdopen(file_descriptor, char_mode)) == NULL ) + if ( (file = gzdopen(file_descriptor, char_mode)) == NULL ) { + perror( "gzfilebuf::attach(): " ); + errno = 0; return NULL; + } own_file_descriptor = false; @@ -132,11 +148,15 @@ gzfilebuf::attach( int file_descriptor, ios_openmode io_mode ) gzfilebuf* gzfilebuf::close() { + // cout << "closing ..." ; if ( is_open() ) { sync(); gzclose( file ); file = NULL; + // cout << "done" << endl; + } else { + // cout << "error" << endl; } return this;