X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fmisc%2Fzfstream.cxx;h=0b75eb55fc54304ed676e52cdcded5f175efa48c;hb=619163d40e6beeaf08759944d80256692395ec9e;hp=f265665cbe7fc3a51e7a83bb25fe40ede73738fe;hpb=5173d709e090b953eaf800cbcd1bf897de332a12;p=simgear.git diff --git a/simgear/misc/zfstream.cxx b/simgear/misc/zfstream.cxx index f265665c..0b75eb55 100644 --- a/simgear/misc/zfstream.cxx +++ b/simgear/misc/zfstream.cxx @@ -5,23 +5,28 @@ // // 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. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $Id$ +#include + +#include #include +#include + #include "zfstream.hxx" // @@ -29,13 +34,9 @@ // Allocate memory for 'get' buffer and zero all buffer pointers. // gzfilebuf::gzfilebuf() - : streambuf(), + : std::streambuf(), file(NULL), -#if defined( __MWERKS__ ) mode(ios_openmode(0)), -#else - mode(0), -#endif own_file_descriptor(false), ibuf_size(0), ibuffer(0) @@ -105,8 +106,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 +125,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 +139,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; @@ -155,10 +166,10 @@ gzfilebuf::close() // } -streampos -gzfilebuf::seekoff( streamoff, ios_seekdir, int ) +std::streampos +gzfilebuf::seekoff( std::streamoff, ios_seekdir, ios_openmode ) { - return streampos(EOF); + return std::streampos(EOF); } gzfilebuf::int_type