# HG changeset patch # User jwe # Date 1147883918 0 # Node ID 368ce5470c90f2777f8c352893d37f6606cd89de # Parent 6c7d28e816c8ef546a64d5ff550b5abf0d2836b4 [project @ 2006-05-17 16:38:38 by jwe] diff -r 6c7d28e816c8 -r 368ce5470c90 src/ChangeLog --- a/src/ChangeLog Fri May 12 15:43:38 2006 +0000 +++ b/src/ChangeLog Wed May 17 16:38:38 2006 +0000 @@ -1,3 +1,11 @@ +2006-05-17 John W. Eaton + + * symtab.cc (Vwhos_line_format): Show class instead of type. + (symbol_table::parse_whos_line_format): + Use 't' for "Type" and 'c' for "Class". + (symbol_record::print_symbol_info_line): Likewise. + (maybe_list_cmp_fcn): Fix casts. + 2006-05-11 John W. Eaton * octave.cc (IMAGE_PATH_OPTION): New macro. diff -r 6c7d28e816c8 -r 368ce5470c90 src/symtab.cc --- a/src/symtab.cc Fri May 12 15:43:38 2006 +0000 +++ b/src/symtab.cc Wed May 17 16:38:38 2006 +0000 @@ -63,7 +63,7 @@ // Defines layout for the whos/who -long command std::string Vwhos_line_format - = " %p:4; %ln:6; %cs:16:6:8:1; %rb:12; %lt:-1;\n"; + = " %p:4; %ln:6; %cs:16:6:8:1; %rb:12; %lc:-1;\n"; octave_allocator symbol_record::symbol_def::allocator (sizeof (symbol_record::symbol_def)); @@ -565,6 +565,10 @@ os << byte_size (); break; + case 'c': + os << class_name (); + break; + case 'e': os << capacity (); break; @@ -1162,8 +1166,8 @@ static int maybe_list_cmp_fcn (const void *a_arg, const void *b_arg) { - const symbol_record *a = static_cast (a_arg); - const symbol_record *b = static_cast (b_arg); + const symbol_record *a = *(static_cast (a_arg)); + const symbol_record *b = *(static_cast (b_arg)); std::string a_nm = a->name (); std::string b_nm = b->name (); @@ -1271,33 +1275,35 @@ size_t bytes1; int elements1; - int len = symbols.length (), i; + int len = symbols.length (); - std::string param_string = "benpst"; + std::string param_string = "bcenpst"; Array param_length (dim_vector (param_string.length (), 1)); Array param_names (dim_vector (param_string.length (), 1)); - size_t pos_b, pos_t, pos_e, pos_n, pos_p, pos_s; + size_t pos_b, pos_c, pos_e, pos_n, pos_p, pos_s, pos_t; pos_b = param_string.find ('b'); // Bytes - pos_t = param_string.find ('t'); // (Type aka) Class + pos_c = param_string.find ('c'); // Class pos_e = param_string.find ('e'); // Elements pos_n = param_string.find ('n'); // Name pos_p = param_string.find ('p'); // Protected pos_s = param_string.find ('s'); // Size + pos_t = param_string.find ('t'); // Type param_names(pos_b) = "Bytes"; - param_names(pos_t) = "Class"; + param_names(pos_c) = "Class"; param_names(pos_e) = "Elements"; param_names(pos_n) = "Name"; param_names(pos_p) = "Prot"; param_names(pos_s) = "Size"; + param_names(pos_t) = "Type"; - for (i = 0; i < 6; i++) + for (size_t i = 0; i < param_string.length (); i++) param_length(i) = param_names(i) . length (); // Calculating necessary spacing for name column, // bytes column, elements column and class column - for (i = 0; i < static_cast (len); i++) + for (int i = 0; i < static_cast (len); i++) { std::stringstream ss1, ss2; std::string str; @@ -1716,6 +1722,8 @@ @table @code\n\ @item %b\n\ Prints number of bytes occupied by variables.\n\ +@item %c\n\ +Prints class names of variables.\n\ @item %e\n\ Prints elements held by variables.\n\ @item %n\n\ @@ -1751,7 +1759,7 @@ dimensions whatsoever.\n\ balance specifies the offset for printing of the dimensions string.\n\ \n\ -The default format is \" %p:4; %ln:6; %cs:16:6:8:1; %rb:12; %lt:-1;\\n\".\n\ +The default format is \" %p:4; %ln:6; %cs:16:6:8:1; %rb:12; %lc:-1;\\n\".\n\ @end deftypefn") { return SET_INTERNAL_VARIABLE (whos_line_format);