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. Affects output from who and whos. Dimensions of matrices are written in any number of dimensions (controlled by whos_line_format). whos_line_format controls the output format for whos (who -long) only. (symbol_table::maybe_list): Headers to whos listing updated. A footer is added. (symbol_table::print_descriptor): Method printing the header of whos listings. (symbol_table::parse_whos_line_format): New method. Parses through whos_line_format and makes a list of parameters and their formatting. (whos_line_format, Vwhos_line_format): New built-in variables which sets layout from whos listings. It is a format string. (symbols_of_symtab): Added definition of whos_line_format. Also added "@end defvar" in texinfo to symbol definition to debug_symtab_lookups. * symtab.h (nelem, byte_size): New methods in symbol_record and symbol_record::symbol_def (whos_parameter): New struct. Container for one parameter in whos_line_format. Used by symbol_table::parse_whos_line_format, symbol_table::print_descriptor, symbol_record::print_symbol_info_line. (symbol_record::dimensions_string_req_first_space): New method. Calculates necessary space for first element in dimensions string. Used by parse_whos_line_format and print_symbol_info_line. (symbol_record::dimensions_string_req_total_space): New method. Calculates necessary space for first element in dimensions string. Used by parse_whos_line_format and print_symbol_info_line.