# HG changeset patch # User jwe # Date 1029177520 0 # Node ID 1432e11733d19608b892facdb2f2090a66566e10 # Parent 92776b806c5569b3901e17ba1a193e2a1630ab7a [project @ 2002-08-12 18:38:40 by jwe] diff -r 92776b806c55 -r 1432e11733d1 src/ChangeLog --- 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 + + * 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 * DLD-FUNCTIONS/dasrt.cc (DASRT_ABORT1, DASRT_ABORT2): diff -r 92776b806c55 -r 1432e11733d1 src/file-io.cc --- 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 (md), - flt_fmt); + retval = octave_fstream::create (name, md, flt_fmt); } return retval; diff -r 92776b806c55 -r 1432e11733d1 test/octave.test/io/fopen-1.m --- 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;