diff libinterp/octave-value/ov-ch-mat.cc @ 20252:7fa170cc14fe stable

Return correct hex value for printf when used with string inputs (bug #45263). * oct-stream.cc (ok_for_signed_int_conv): Return true for strings. * ov-ch-mat.cc (int64_scalar_value, uint64_scalar_value): New functions to return int64 or uint64 values from a character matrix octave_value. ov-ch-mat.h: (int64_scalar_value, uint64_scalar_value): Declare new functions in header file.
author John W. Eaton <jwe@octave.org>
date Tue, 09 Jun 2015 16:25:45 -0700
parents 4197fc428c7d
children 7b608fadc663
line wrap: on
line diff
--- a/libinterp/octave-value/ov-ch-mat.cc	Tue Jun 09 16:16:44 2015 -0700
+++ b/libinterp/octave-value/ov-ch-mat.cc	Tue Jun 09 16:25:45 2015 -0700
@@ -87,6 +87,42 @@
   return retval;
 }
 
+octave_int64
+octave_char_matrix::int64_scalar_value () const
+{
+  octave_int64 retval = 0;
+
+  if (rows () > 0 && columns () > 0)
+    {
+      gripe_implicit_conversion ("Octave:array-to-scalar",
+                                 "character matrix", "int64 scalar");
+
+      retval = octave_int64 (matrix (0, 0));
+    }
+  else
+    gripe_invalid_conversion ("character matrix", "int64 scalar");
+
+  return retval;
+}
+
+octave_uint64
+octave_char_matrix::uint64_scalar_value () const
+{
+  octave_uint64 retval = 0;
+
+  if (rows () > 0 && columns () > 0)
+    {
+      gripe_implicit_conversion ("Octave:array-to-scalar",
+                                 "character matrix", "uint64 scalar");
+
+      retval = octave_uint64 (matrix (0, 0));
+    }
+  else
+    gripe_invalid_conversion ("character matrix", "uint64 scalar");
+
+  return retval;
+}
+
 Complex
 octave_char_matrix::complex_value (bool) const
 {