# HG changeset patch # User John W. Eaton # Date 1368485414 14400 # Node ID cf84ea2ba2d37bdfa21a99f3bf6e5f8f768b90c2 # Parent 8fa0b416f465007ee9fadcc4946f8c1808ee4bb0 require dynamic field names to be character strings * pt-idx.cc (tree_index_expression::get_struct_index): Require field names to be character strings. * orderfields.m: Index fieldnames with {} instead of (). diff -r 8fa0b416f465 -r cf84ea2ba2d3 libinterp/parse-tree/pt-idx.cc --- a/libinterp/parse-tree/pt-idx.cc Mon May 13 16:37:28 2013 -0400 +++ b/libinterp/parse-tree/pt-idx.cc Mon May 13 18:50:14 2013 -0400 @@ -216,7 +216,12 @@ octave_value t = df->rvalue1 (); if (! error_state) - fn = t.string_value (); + { + if (t.is_string ()) + fn = t.string_value (); + else + error ("dynamic structure field names must be character strings"); + } } else panic_impossible (); diff -r 8fa0b416f465 -r cf84ea2ba2d3 scripts/miscellaneous/orderfields.m --- a/scripts/miscellaneous/orderfields.m Mon May 13 16:37:28 2013 -0400 +++ b/scripts/miscellaneous/orderfields.m Mon May 13 18:50:14 2013 -0400 @@ -153,7 +153,7 @@ else n = numel (s1); for i = 1:numel (names) - el = names(i); + el = names{i}; [t(1:n).(el)] = s1(:).(el); endfor ## inherit dimensions