]> git.mxchange.org Git - simgear.git/blobdiff - simgear/misc/zfstream.cxx
Fixed mingw build.
[simgear.git] / simgear / misc / zfstream.cxx
index f265665cbe7fc3a51e7a83bb25fe40ede73738fe..0b75eb55fc54304ed676e52cdcded5f175efa48c 100644 (file)
@@ -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 <simgear/compiler.h>
+
+#include <cerrno>
 #include <memory.h>
+#include <stdio.h>
+
 #include "zfstream.hxx"
 
 //
 // 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