# HG changeset patch # User jwe # Date 1035344051 0 # Node ID a0c710c20da585bed79032782bd0a3c50d20ebfb # Parent 29f648e1cd467674fedb281aff18cb850f824eb0 [project @ 2002-10-23 03:34:11 by jwe] diff -r 29f648e1cd46 -r a0c710c20da5 src/ChangeLog --- a/src/ChangeLog Wed Oct 23 02:12:50 2002 +0000 +++ b/src/ChangeLog Wed Oct 23 03:34:11 2002 +0000 @@ -1,5 +1,16 @@ 2002-10-22 John W. Eaton + * oct-map.cc (Octave_map::assign): Fix typo in resizing. + + * pt-loop.cc (tree_complex_for_command::eval): Only return list + for val if struct array has more than one element. + (tree_simple_for_command::eval): Likewise. + + * ov-struct.cc (octave_struct::print_raw): Don't create + octave_list directly, use octave_value (const octave_value_list&) + constructor instead. + Call print_with_name for tmp, not val(0). + * version.h (OCTAVE_VERSION): Now 2.1.37. (OCTAVE_CONTRIB_STATEMENT): New macro. (OCTAVE_STARTUP_MESSAGE): Use it. diff -r 29f648e1cd46 -r a0c710c20da5 src/oct-map.cc --- a/src/oct-map.cc Wed Oct 23 02:12:50 2002 +0000 +++ b/src/oct-map.cc Wed Oct 23 03:34:11 2002 +0000 @@ -56,6 +56,7 @@ Pix p = first (); array_len = contents(p).length (); } + return array_len; } @@ -82,9 +83,9 @@ else if (rhs_len > len) { for (Pix p = first (); p != 0; next (p)) - contents(p).resize (len, fill_value); + contents(p).resize (rhs_len, fill_value); - array_len = len; + array_len = rhs_len; } map[key] = tmp; diff -r 29f648e1cd46 -r a0c710c20da5 src/ov-struct.cc --- a/src/ov-struct.cc Wed Oct 23 02:12:50 2002 +0000 +++ b/src/ov-struct.cc Wed Oct 23 03:34:11 2002 +0000 @@ -402,7 +402,7 @@ std::string key = map.key (p); octave_value_list val = map.contents (p); - octave_value tmp = (n == 1) ? val(0) : octave_list (val); + octave_value tmp = (n == 1) ? val(0) : octave_value (val); if (print_keys_only) { @@ -411,7 +411,7 @@ newline (os); } else - val(0).print_with_name (os, key); + tmp.print_with_name (os, key); } decrement_indent_level (); diff -r 29f648e1cd46 -r a0c710c20da5 src/pt-loop.cc --- a/src/pt-loop.cc Wed Oct 23 02:12:50 2002 +0000 +++ b/src/pt-loop.cc Wed Oct 23 03:34:11 2002 +0000 @@ -373,7 +373,10 @@ { MAYBE_DO_BREAKPOINT; - octave_value val = tmp_val.contents (p); + octave_value_list val_lst = tmp_val.contents (p); + + octave_value val + = (val_lst.length () == 1) ? val_lst(0) : octave_value (val_lst); bool quit = false; @@ -482,7 +485,12 @@ for (p = tmp_val.first (); p != 0; tmp_val.next (p)) { octave_value key = tmp_val.key (p); - octave_value val = tmp_val.contents (p); + + octave_value_list val_lst = tmp_val.contents (p); + + int n = tmp_val.array_length (); + + octave_value val = (n == 1) ? val_lst(0) : octave_value (val_lst); MAYBE_DO_BREAKPOINT;