Mercurial > octave
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 {