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;