Mercurial > octave-nkf
diff src/oct-map.cc @ 3933:f9ea3dcf58ee
[project @ 2002-05-15 03:21:00 by jwe]
author | jwe |
---|---|
date | Wed, 15 May 2002 03:21:01 +0000 |
parents | 2e2e32198722 |
children | a10df4059532 |
line wrap: on
line diff
--- a/src/oct-map.cc Tue May 07 18:10:44 2002 +0000 +++ b/src/oct-map.cc Wed May 15 03:21:01 2002 +0000 @@ -35,7 +35,7 @@ #include "utils.h" string_vector -Octave_map::make_name_list (void) +Octave_map::keys (void) const { int len = length (); @@ -87,6 +87,42 @@ return *this; } +Octave_map& +Octave_map::assign (const std::string& key, const octave_value_list& rhs) +{ + if (map.empty ()) + map[key] = rhs; + else + { + octave_value_list tmp = map.contents (map.first ()); + + if (tmp.length () == rhs.length ()) + map[key] = rhs; + else + error ("invalid structure assignment"); + } + + return *this; +} + +Octave_map +Octave_map::index (idx_vector& idx) +{ + Octave_map retval; + + for (Pix p = first (); p != 0; next (p)) + { + octave_value_list tmp = contents(p).index (idx); + + if (error_state) + break; + + retval[key(p)] = tmp; + } + + return error_state ? Octave_map () : retval; +} + /* ;;; Local Variables: *** ;;; mode: C++ ***