Mercurial > hg > octave-lyh
diff src/data.cc @ 1402:6550c74777b9
[project @ 1995-09-15 04:27:57 by jwe]
author | jwe |
---|---|
date | Fri, 15 Sep 1995 04:32:14 +0000 |
parents | ed5757e3333b |
children | 89c587478067 |
line wrap: on
line diff
--- a/src/data.cc +++ b/src/data.cc @@ -741,6 +741,41 @@ return retval; } +DEFUN ("struct_elements", Fstruct_elements, Sstruct_elements, 1, 1, + "struct_elements (S)\n\ +\n\ +Return a list of the names of the elements of the structure S.") +{ + Octave_object retval; + + int nargin = args.length (); + + if (nargin == 1) + { + if (args (0).is_map ()) + { + Octave_map m = args(0).map_value (); + char **names = m.make_name_list (); + Octave_str_obj list (m.length ()); + char **ptr = names; + int i = 0; + while (*ptr) + { + list(i++) = *ptr; + delete [] *ptr++; + } + delete [] names; + retval(0) = list; + } + else + gripe_wrong_type_arg ("struct_elements", args (0)); + } + else + print_usage ("struct_elements"); + + return retval; +} + DEFUN ("struct_contains", Fstruct_contains, Sstruct_contains, 1, 2, "struct_contains (S, NAME)\n\ \n\