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++ ***