diff src/oct-stream.cc @ 2902:c5b7a019b9ed

[project @ 1997-04-30 03:46:53 by jwe]
author jwe
date Wed, 30 Apr 1997 03:49:42 +0000
parents 5c1b9e545dd1
children 649549662cf6
line wrap: on
line diff
--- a/src/oct-stream.cc
+++ b/src/oct-stream.cc
@@ -42,9 +42,8 @@
 // Possible values for conv_err:
 //
 //   1 : not a real scalar
-//   2 : error extracting scalar value (should not happen)
-//   3 : value is NaN
-//   4 : value is not an integer
+//   2 : value is NaN
+//   3 : value is not an integer
 
 static int
 convert_to_valid_int (const octave_value& tc, int& conv_err)
@@ -53,21 +52,16 @@
 
   conv_err = 0;
 
-  if (tc.is_real_scalar ())
+  double dval = tc.double_value ();
+
+  if (! error_state)
     {
-      double dval = tc.double_value ();
-
-      if (! error_state)
+      if (! xisnan (dval))
 	{
-	  if (! xisnan (dval))
-	    {
-	      int ival = NINT (dval);
-
-	      if (ival == dval)
-		retval = ival;
-	      else
-		conv_err = 4;
-	    }
+	  int ival = NINT (dval);
+
+	  if (ival == dval)
+	    retval = ival;
 	  else
 	    conv_err = 3;
 	}
@@ -2372,14 +2366,16 @@
 
 octave_stream_list *octave_stream_list::instance = 0;
 
-int
+octave_value
 octave_stream_list::do_insert (octave_base_stream *obs)
 {
-  int retval = -1;
+  int stream_number = -1;
+
+  octave_stream *os = 0;
 
   if (obs)
     {
-      octave_stream *os = new octave_stream (obs);
+      os = new octave_stream (obs);
 
       // Insert item in first open slot, increasing size of list if
       // necessary.
@@ -2391,12 +2387,12 @@
 	  if (! tmp)
 	    {
 	      list (i) = os;
-	      retval = i;
+	      stream_number = i;
 	      break;
 	    }
 	}
 
-      if (retval < 0)
+      if (stream_number < 0)
 	{
 	  int total_len = list.length ();
 
@@ -2404,20 +2400,20 @@
 	    list.resize (total_len * 2);
 
 	  list (curr_len) = os;
-	  retval = curr_len;
+	  stream_number = curr_len;
 	  curr_len++;
 	}
     }
   else
     ::error ("octave_stream_list: attempt to insert invalid stream");
 
-  return retval;
+  return octave_value (os, stream_number);
 }
 
-int
+octave_value
 octave_stream_list::insert (octave_base_stream *obs)
 {
-  int retval = -1;
+  octave_value retval = -1.0;
 
   if (! instance)
     instance = new octave_stream_list ();