diff src/oct-obj.cc @ 3195:7a5a5da64756

[project @ 1998-10-28 22:54:04 by jwe]
author jwe
date Wed, 28 Oct 1998 23:01:17 +0000
parents c17387059fd3
children 30770ba4457a
line wrap: on
line diff
--- a/src/oct-obj.cc	Wed Oct 28 17:51:09 1998 +0000
+++ b/src/oct-obj.cc	Wed Oct 28 23:01:17 1998 +0000
@@ -93,6 +93,46 @@
   return *this;
 }
 
+octave_value_list
+octave_value_list::splice (int offset, int rep_length,
+			   const octave_value_list& lst) const
+{ 
+  octave_value_list retval;
+
+  int len = length ();
+
+  if (offset < 0 || offset >= len)
+    {
+      error ("octave_value_list::splice: invalid OFFSET");
+      return retval;
+    }
+
+  if (rep_length < 0 || rep_length + offset > len)
+    {
+      error ("octave_value_list::splice: invalid LENGTH");
+      return retval;
+    }
+
+  int lst_len = lst.length ();
+
+  int new_len = len - rep_length + lst_len;
+
+  retval.resize (new_len);
+
+  int k = 0;
+
+  for (int i = 0; i < offset; i++)
+    retval(k++) = elem (i);
+
+  for (int i = 0; i < lst_len; i++)
+    retval(k++) = lst(i);
+
+  for (int i = offset + rep_length; i < len; i++)
+    retval(k++) = elem (i);
+
+  return retval;
+}
+
 bool
 octave_value_list::all_strings_p (void) const
 {