diff src/ov-scalar.cc @ 4100:ed0090ecf80f

[project @ 2002-10-11 16:37:45 by jwe]
author jwe
date Fri, 11 Oct 2002 16:37:45 +0000
parents 47d3baea432d
children 5719210fff4c
line wrap: on
line diff
--- a/src/ov-scalar.cc	Thu Oct 10 06:23:03 2002 +0000
+++ b/src/ov-scalar.cc	Fri Oct 11 16:37:45 2002 +0000
@@ -85,9 +85,18 @@
     ::error ("invalid conversion from NaN to character");
   else
     {
-      // XXX FIXME XXX -- warn about out of range conversions?
-      
-      retval = octave_value (std::string (1, char (NINT (scalar))));
+      int ival = NINT (scalar);
+
+      if (ival < 0 || ival > UCHAR_MAX)
+	{
+	  // XXX FIXME XXX -- is there something better we could do?
+
+	  ival = 0;
+
+	  ::warning ("range error for conversion to character value");
+	}
+
+      retval = octave_value (std::string (1, static_cast<char> (ival)));
     }
 
   return retval;