octave/liboctave * Array.h, Array.cc (Array::compute_size): New method. Calculates size of Array in bytes occupied and elements in array. Invoked by who/whos. octave/src * symtab.cc (symbol_record::make_dimensions_string): New method used by print_symbol_info_line and maybe_list for printing dimensions of variables. (symbol_record::print_symbol_info_line): Changes related to built-in variables whos_line_format and whos_print_dims. Affects output from who and whos. Dimensions of matrices are written in any number of dimensions (controlled by whos_print_dims). whos_line_format controls the output format for whos (who -long) (symbol_record::maybe_list): Headers to whos listing updated. A footer is added. (symbol_record::print_descriptor): Method printing the header of whos listings. (whos_line_format, Vwhos_line_format): New built-in variables which sets layout from whos listings. It is a format string. (whos_print_dims, Vwhos_print_dims): New built-in variable which sets layout for dimension string in whos. (symbols_of_symtab): Added definition of whos_line_format and whos_print_dims. Also added "@end defvar" in texinfo to symbol definition to debug_symtab_lookups. * symtab.h (is_matrix_type, compute_size): New methods in symbol_record and symbol_record::symbol_def (whos_line_format, Vwhos_line_format, who_print_dims, Vwho_print_dims): See symtab.cc * Cell.cc, Cell.h (Cell::compute_size): New method. Calculates size of cell in bytes and elements. * ov-base.h (octave_base_value::compute_size): New method. Calculates size of variable in bytes and elements. * ov-base-mat.cc, ov-base-mat.h (octave_base_matrix::compute_size): New method. Calculates size of variable in bytes and elements. * ov-base-nd-array.h (octave_base_nd_array::compute_size): New method. Calculates size of variable in bytes and elements. * ov-base-scalar.cc, ov-base_scalar.h (octave_base_scalar::compute_size): New method. Calculates size of variable in bytes and elements. * ov-cell.cc, ov-cell.h (octave_cell::compute_size): New method. Calculates size of variable in bytes and elements. * ov-colon.h (octave_magic_colon::compute_size): New method. Calculates size of variable in bytes and elements. * ov-cs-list.cc, ov-cs-list.h (octave_cs_list::compute_size): New method. Calculates size of variable in bytes and elements. * ov-fcn.h (octave_function::compute_size): New method. Calculates size of variable in bytes and elements. * ov-file.cc, ov-file.h (octave_file::compute_size): New method. Calculates size of variable in bytes and elements. * ov-range.h (octave_range::compute_size): New method. Calculates size of variable in bytes and elements. * ov-struct.cc, ov-struct.h (octave_struct::compute_size): New method. Calculates size of variable in bytes and elements. * ov-va-args.h (octave_all_va_args::compute_size): New method. Calculates size of variable in bytes and elements. * ov.cc, ov.h (octave_value::compute_size): New method. Calculates size of variable in bytes and elements.