Mercurial > octave
changeset 33450:f86b8eb0c654 stable
improve default display of classdef properties (bug #62432)
* ov-classdef.cc (octave_classdef::print_raw):
Use octave_value::short_disp to display numeric, logical, and string
values that have only two dimensions and one row.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 24 Apr 2024 12:55:22 -0400 |
parents | f428a432ed4f |
children | 35ecb8a019e3 317fa0e5c8de |
files | libinterp/octave-value/ov-classdef.cc |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-classdef.cc Mon Apr 22 17:28:23 2024 +0200 +++ b/libinterp/octave-value/ov-classdef.cc Wed Apr 24 12:55:22 2024 -0400 @@ -395,16 +395,17 @@ os << " " << nm; else { + os << std::setw (max_len+2) << nm << ": "; + octave_value val = prop.get_value (m_object, false); - dim_vector dims = val.dims (); - os << std::setw (max_len+2) << nm << ": "; - if (val.is_string ()) - os << val.string_value (); - else if (val.islogical ()) - os << val.bool_value (); + if (val.ndims () == 2 && val.rows () == 1 && (val.isnumeric () || val.islogical () || val.is_string ())) + val.short_disp (os); else - os << "[" << dims.str () << " " << val.class_name () << "]"; + { + dim_vector dims = val.dims (); + os << "[" << dims.str () << " " << val.class_name () << "]"; + } } newline (os);