Mercurial > octave-nkf
diff libinterp/octave-value/ov-str-mat.cc @ 20611:40ed9b46a800
new octave_value::string_value method with optional error message
* ov.h (octave_value::string_vector): New method.
ov-base.cc, ov-base.h (octave_base_value::string_vector):
New default method.
ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::string_value):
New method.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 08 Oct 2015 16:43:22 -0400 |
parents | f90c8372b7ba |
children |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-str-mat.cc Thu Oct 08 20:15:19 2015 +0100 +++ b/libinterp/octave-value/ov-str-mat.cc Thu Oct 08 16:43:22 2015 -0400 @@ -252,6 +252,38 @@ return retval; } +std::string +octave_char_matrix_str::string_value (const char *fmt, va_list args) const +{ + std::string retval; + + if (! fmt) + return string_value (); + + bool conversion_error = false; + + if (matrix.ndims () == 2) + { + charMatrix chm (matrix); + + try + { + retval = chm.row_as_string (0); // FIXME? + } + catch (const octave_execution_exception&) + { + conversion_error = true; + } + } + else + conversion_error = true; + + if (conversion_error) + verror (fmt, args); + + return retval; +} + Array<std::string> octave_char_matrix_str::cellstr_value (void) const {