Mercurial > hg > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
3144:fb9924282a3e | 3145:0d640dc625c7 |
---|---|
104 | 104 |
105 int nargin = args.length (); | 105 int nargin = args.length (); |
106 | 106 |
107 if (nargin == 2) | 107 if (nargin == 2) |
108 { | 108 { |
109 double d_old = args(0).double_value (); | 109 octave_stream *old_stream = octave_stream_list::lookup (args(0)); |
110 double d_new = args(1).double_value (); | 110 octave_stream *new_stream = octave_stream_list::lookup (args(1)); |
111 | 111 |
112 if (! error_state) | 112 if (! error_state) |
113 { | 113 { |
114 if (D_NINT (d_old) == d_old && D_NINT (d_new) == d_new) | 114 int i_old = old_stream->fileno (); |
115 { | 115 int i_new = new_stream->fileno (); |
116 int i_old = NINT (d_old); | 116 |
117 int i_new = NINT (d_new); | 117 if (i_old >= 0 && i_new >= 0) |
118 | 118 { |
119 // XXX FIXME XXX -- are these checks sufficient? | 119 string msg; |
120 if (i_old >= 0 && i_new >= 0) | 120 |
121 { | 121 int status = octave_syscalls::dup2 (i_old, i_new, msg); |
122 string msg; | 122 |
123 | 123 retval(0) = static_cast<double> (status); |
124 int status = octave_syscalls::dup2 (i_old, i_new, msg); | 124 retval(1) = msg; |
125 | |
126 retval(0) = static_cast<double> (status); | |
127 retval(1) = msg; | |
128 } | |
129 else | |
130 error ("dup2: invalid file id"); | |
131 } | 125 } |
132 else | 126 else |
133 error ("dup2: arguments must be integer values"); | 127 error ("dup2: invalid file id"); |
134 } | 128 } |
129 else | |
130 error ("dup2: invalid stream"); | |
135 } | 131 } |
136 else | 132 else |
137 print_usage ("dup2"); | 133 print_usage ("dup2"); |
138 | 134 |
139 return retval; | 135 return retval; |