Mercurial > octave-nkf
comparison src/file-io.cc @ 4036:1432e11733d1
[project @ 2002-08-12 18:38:40 by jwe]
author | jwe |
---|---|
date | Mon, 12 Aug 2002 18:38:40 +0000 |
parents | ef75c970c8f5 |
children | e0e95e9aad7b |
comparison
equal
deleted
inserted
replaced
4035:92776b806c55 | 4036:1432e11733d1 |
---|---|
92 close_files (void) | 92 close_files (void) |
93 { | 93 { |
94 octave_stream_list::clear (); | 94 octave_stream_list::clear (); |
95 } | 95 } |
96 | 96 |
97 static int | 97 static std::ios::openmode |
98 fopen_mode_to_ios_mode (const std::string& mode) | 98 fopen_mode_to_ios_mode (const std::string& mode) |
99 { | 99 { |
100 int retval = 0; | 100 std::ios::openmode retval = std::ios::in; |
101 | 101 |
102 if (! mode.empty ()) | 102 if (! mode.empty ()) |
103 { | 103 { |
104 // Could probably be faster, but does it really matter? | 104 // Could probably be faster, but does it really matter? |
105 | 105 |
122 else if (mode == "ab") | 122 else if (mode == "ab") |
123 retval = std::ios::out | std::ios::app | std::ios::binary; | 123 retval = std::ios::out | std::ios::app | std::ios::binary; |
124 else if (mode == "r+b") | 124 else if (mode == "r+b") |
125 retval = std::ios::in | std::ios::out | std::ios::binary; | 125 retval = std::ios::in | std::ios::out | std::ios::binary; |
126 else if (mode == "w+b") | 126 else if (mode == "w+b") |
127 retval = std::ios::in | std::ios::out | std::ios::trunc | std::ios::binary; | 127 retval = (std::ios::in | std::ios::out | std::ios::trunc |
128 | std::ios::binary); | |
128 else if (mode == "a+b") | 129 else if (mode == "a+b") |
129 retval = std::ios::in | std::ios::out | std::ios::app | std::ios::binary; | 130 retval = (std::ios::in | std::ios::out | std::ios::app |
131 | std::ios::binary); | |
130 else | 132 else |
131 ::error ("invalid mode specified"); | 133 ::error ("invalid mode specified"); |
132 } | 134 } |
133 | 135 |
134 return retval; | 136 return retval; |
308 { | 310 { |
309 octave_stream retval; | 311 octave_stream retval; |
310 | 312 |
311 fid = -1; | 313 fid = -1; |
312 | 314 |
313 int md = fopen_mode_to_ios_mode (mode); | 315 std::ios::openmode md = fopen_mode_to_ios_mode (mode); |
314 | 316 |
315 if (! error_state) | 317 if (! error_state) |
316 { | 318 { |
317 oct_mach_info::float_format flt_fmt = | 319 oct_mach_info::float_format flt_fmt = |
318 oct_mach_info::string_to_float_format (arch); | 320 oct_mach_info::string_to_float_format (arch); |
319 | 321 |
320 if (! error_state) | 322 if (! error_state) |
321 retval = octave_fstream::create (name, | 323 retval = octave_fstream::create (name, md, flt_fmt); |
322 static_cast<std::ios::openmode> (md), | |
323 flt_fmt); | |
324 } | 324 } |
325 | 325 |
326 return retval; | 326 return retval; |
327 } | 327 } |
328 | 328 |