Mercurial > hg > octave-nkf
diff src/syscalls.cc @ 3145:0d640dc625c7
[project @ 1998-02-05 08:44:59 by jwe]
author | jwe |
---|---|
date | Thu, 05 Feb 1998 08:45:07 +0000 |
parents | 292ff0bf484b |
children | 894d516b4a00 |
line wrap: on
line diff
--- a/src/syscalls.cc +++ b/src/syscalls.cc @@ -106,32 +106,28 @@ if (nargin == 2) { - double d_old = args(0).double_value (); - double d_new = args(1).double_value (); + octave_stream *old_stream = octave_stream_list::lookup (args(0)); + octave_stream *new_stream = octave_stream_list::lookup (args(1)); if (! error_state) { - if (D_NINT (d_old) == d_old && D_NINT (d_new) == d_new) - { - int i_old = NINT (d_old); - int i_new = NINT (d_new); + int i_old = old_stream->fileno (); + int i_new = new_stream->fileno (); - // XXX FIXME XXX -- are these checks sufficient? - if (i_old >= 0 && i_new >= 0) - { - string msg; + if (i_old >= 0 && i_new >= 0) + { + string msg; - int status = octave_syscalls::dup2 (i_old, i_new, msg); + int status = octave_syscalls::dup2 (i_old, i_new, msg); - retval(0) = static_cast<double> (status); - retval(1) = msg; - } - else - error ("dup2: invalid file id"); + retval(0) = static_cast<double> (status); + retval(1) = msg; } else - error ("dup2: arguments must be integer values"); + error ("dup2: invalid file id"); } + else + error ("dup2: invalid stream"); } else print_usage ("dup2");