diff src/file-io.cc @ 11004:594adb99a25e

cache file id in octave_tstdiostream class
author John W. Eaton <jwe@octave.org>
date Mon, 20 Sep 2010 20:39:56 -0400
parents 89f4d7e294cc
children f9284142a060
line wrap: on
line diff
--- a/src/file-io.cc	Mon Sep 20 18:47:52 2010 -0400
+++ b/src/file-io.cc	Mon Sep 20 20:39:56 2010 -0400
@@ -492,10 +492,15 @@
                 {
                   tmode.erase (pos, 1);
 
-                  gzFile fptr = ::gzopen (fname.c_str (), tmode.c_str ());
+                  FILE *fptr = ::fopen (fname.c_str (), tmode.c_str ());
+
+                  int fd = ::fileno (fptr);
+
+                  gzFile gzf = ::gzdopen (fd, tmode.c_str ());
 
                   if (fptr)
-                    retval = octave_zstdiostream::create (fname, fptr, md, flt_fmt);
+                    retval = octave_zstdiostream::create (fname, gzf, fd,
+                                                          md, flt_fmt);
                   else
                     retval.error (gnulib::strerror (errno));
                 }