Mercurial > hg > octave-nkf
diff src/oct-stream.cc @ 2341:6ee55c0f25a9
[project @ 1996-07-24 10:33:09 by jwe]
author | jwe |
---|---|
date | Wed, 24 Jul 1996 10:33:10 +0000 |
parents | 8c09c04f7747 |
children | 3be97fe02051 |
line wrap: on
line diff
--- a/src/oct-stream.cc +++ b/src/oct-stream.cc @@ -2025,27 +2025,37 @@ if (! conv_err) { - int xorigin = convert_to_valid_int (tc_origin, conv_err); - ios::seek_dir origin = ios::beg; - // XXX FIXME XXX -- matlab allows origin to be: - // - // "bof" or -1 == ios::beg - // "cof" or 0 == ios::cur - // "eof" or 1 == ios::end - - if (! conv_err) + if (tc_origin.is_string ()) { - if (xorigin == 0) + string xorigin = tc_origin.string_value (); + + if (xorigin == "bof") origin = ios::beg; - else if (xorigin == 1) + else if (xorigin == "cof") origin = ios::cur; - else if (xorigin == 2) + else if (xorigin == "eof") origin = ios::end; else conv_err = -1; } + else + { + int xorigin = convert_to_valid_int (tc_origin, conv_err); + + if (! conv_err) + { + if (xorigin == -1) + origin = ios::beg; + else if (xorigin == 0) + origin = ios::cur; + else if (xorigin == 1) + origin = ios::end; + else + conv_err = -1; + } + } if (! conv_err) retval = seek (xoffset, origin);