Mercurial > hg > octave-nkf
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 +++ b/src/ChangeLog @@ -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 +++ b/src/file-io.cc @@ -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 +++ b/test/octave.test/io/fopen-1.m @@ -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;