changeset 4036:1432e11733d1

[project @ 2002-08-12 18:38:40 by jwe]
author jwe
date Mon, 12 Aug 2002 18:38:40 +0000
parents 92776b806c55
children 7e0c73f17a5d
files src/ChangeLog src/file-io.cc test/octave.test/io/fopen-1.m
diffstat 3 files changed, 23 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Aug 10 08:04:07 2002 +0000
+++ b/src/ChangeLog	Mon Aug 12 18:38:40 2002 +0000
@@ -1,3 +1,8 @@
+2002-08-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (fopen_mode_to_ios_mode): Default value is std::ios::in.
+	Return std::ios::openmode instead of int.
+
 2002-08-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* DLD-FUNCTIONS/dasrt.cc (DASRT_ABORT1, DASRT_ABORT2):
--- a/src/file-io.cc	Sat Aug 10 08:04:07 2002 +0000
+++ b/src/file-io.cc	Mon Aug 12 18:38:40 2002 +0000
@@ -94,10 +94,10 @@
   octave_stream_list::clear ();
 }
 
-static int
+static std::ios::openmode
 fopen_mode_to_ios_mode (const std::string& mode)
 {
-  int retval = 0;
+  std::ios::openmode retval = std::ios::in;
 
   if (! mode.empty ())
     {
@@ -124,9 +124,11 @@
       else if (mode == "r+b")
 	retval = std::ios::in | std::ios::out | std::ios::binary;
       else if (mode == "w+b")
-	retval = std::ios::in | std::ios::out | std::ios::trunc | std::ios::binary; 
+	retval = (std::ios::in | std::ios::out | std::ios::trunc
+		  | std::ios::binary);
       else if (mode == "a+b")
-	retval = std::ios::in | std::ios::out | std::ios::app | std::ios::binary;
+	retval = (std::ios::in | std::ios::out | std::ios::app
+		  | std::ios::binary);
       else
 	::error ("invalid mode specified");
     }
@@ -310,7 +312,7 @@
 
   fid = -1;
 
-  int md = fopen_mode_to_ios_mode (mode);
+  std::ios::openmode md = fopen_mode_to_ios_mode (mode);
 
   if (! error_state)
     {
@@ -318,9 +320,7 @@
 	oct_mach_info::string_to_float_format (arch);
 
       if (! error_state)
-	retval = octave_fstream::create (name,
-	                                 static_cast<std::ios::openmode> (md), 
-					 flt_fmt);
+	retval = octave_fstream::create (name, md, flt_fmt);
     }
 
   return retval;
--- a/test/octave.test/io/fopen-1.m	Sat Aug 10 08:04:07 2002 +0000
+++ b/test/octave.test/io/fopen-1.m	Mon Aug 12 18:38:40 2002 +0000
@@ -15,15 +15,21 @@
       mode = deblank (mode_list (k,:));
       [id, err] = fopen (nm, mode, arch);
       if (id < 0)
-      	status = 0; break;
+	printf ("open failed: %s (%s, %s): %s\n", nm, mode, arch, err);
+      	status = 0;
+	break;
+      else
+	fclose (id);
       endif
-      fclose (id);
       mode = strcat (mode, "b");
       [id, err] = fopen (nm, mode, arch);
       if (id < 0)
-      	status = 0; break;
+	printf ("open failed: %s (%s, %s): %s\n", nm, mode, arch, err);
+      	status = 0;
+	break;
+      else
+	fclose (id);
       endif
-      fclose (id);
     endfor
     if (status == 0)
       break;