changeset 11389:934ed3e07542

dlmread: simplify file name/id logic
author John W. Eaton <jwe@octave.org>
date Sat, 18 Dec 2010 03:27:46 -0500
parents 027fbc389898
children 7ca273af4309
files src/ChangeLog src/DLD-FUNCTIONS/dlmread.cc
diffstat 2 files changed, 14 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Dec 17 22:20:54 2010 -0800
+++ b/src/ChangeLog	Sat Dec 18 03:27:46 2010 -0500
@@ -1,3 +1,8 @@
+2010-12-18  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Simplify file name/id logic.
+	Bug #31910.
+
 2010-12-17  Rik  <octave@nomad.inbox5.com>
 
 	* oct-parse.yy (builtin): Remove seealso reference to deprecated 
--- a/src/DLD-FUNCTIONS/dlmread.cc	Fri Dec 17 22:20:54 2010 -0800
+++ b/src/DLD-FUNCTIONS/dlmread.cc	Sat Dec 18 03:27:46 2010 -0500
@@ -206,8 +206,7 @@
     }
 
   std::istream *input = 0;
-  std::auto_ptr<std::ifstream> input_file;
-  octave_stream input_fid;
+  std::ifstream input_file;
 
   if (args(0).is_string ())
     {
@@ -218,22 +217,25 @@
 
       std::string tname = file_ops::tilde_expand (fname);
 
-      input_file = std::auto_ptr<std::ifstream> (new std::ifstream (tname.c_str ()));
-      if (input_file->bad ())
+      input_file.open (tname.c_str (), std::ios::in);
+
+      if (! input_file)
         {
           error ("dlmread: unable to open file `%s'", fname.c_str ());
           return retval;
         }
       else
-         input = input_file.get ();
+        input = &input_file;
     }
   else if (args(0).is_scalar_type ())
     {
-      input_fid = octave_stream_list::lookup (args(0), "dlmread");
+      octave_stream is = octave_stream_list::lookup (args(0), "dlmread");
+
       if (error_state)
          return retval;
 
-      input = input_fid.input_stream ();
+      input = is.input_stream ();
+
       if (! input)
         {
           error ("dlmread: stream not open for input");