Mercurial > octave-nkf
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 {