# HG changeset patch # User John W. Eaton # Date 1713977722 14400 # Node ID f86b8eb0c654446c8c44fb36d995c71177fa2789 # Parent f428a432ed4ff25b706bba3023c91f12e054c525 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. diff -r f428a432ed4f -r f86b8eb0c654 libinterp/octave-value/ov-classdef.cc --- 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);