summaryrefslogtreecommitdiff
path: root/src/data
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-11-04 23:24:42 +0000
committerPaul Buetow <paul@buetow.org>2008-11-04 23:24:42 +0000
commitd2713783c48ca9fbdd6f4ea3aab03fe856fdd52a (patch)
tree3d78a409ab9949319285d26403dd6b9d8bf2067f /src/data
parentf0b2170a9c769425082604c9e9252ba422902f3e (diff)
big step forward for arrays in fype.
Diffstat (limited to 'src/data')
-rw-r--r--src/data/array.c11
-rw-r--r--src/data/array.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/data/array.c b/src/data/array.c
index 8e3419a..9bd0101 100644
--- a/src/data/array.c
+++ b/src/data/array.c
@@ -56,14 +56,14 @@ array_new_size(int i_size) {
}
void
-_array_new_copy_cb(void *p_array, void *p_void) {
+_unshift_cb(void *p_array, void *p_void) {
array_unshift(p_array, p_void);
}
Array*
array_new_copy(Array *p_array) {
Array *p_array_cpy = array_new_size(array_get_size(p_array));
- array_iterate2(p_array, _array_new_copy_cb, p_array_cpy);
+ array_iterate2(p_array, _unshift_cb, p_array_cpy);
return (p_array_cpy);
}
@@ -239,6 +239,13 @@ array_push(Array *p_array, void *p_void) {
}
void
+array_append(Array *p_array, Array *p_array_append) {
+ int i_size = array_get_size(p_array) + array_get_size(p_array_append);
+ array_resize(p_array, i_size);
+ array_iterate2(p_array_append, _unshift_cb, p_array);
+}
+
+void
array_iterate(Array *p_array, void (*func)(void *)) {
if (!p_array)
return;
diff --git a/src/data/array.h b/src/data/array.h
index 63d8cc9..a6648bf 100644
--- a/src/data/array.h
+++ b/src/data/array.h
@@ -74,6 +74,7 @@ _Bool array_defined(Array *p_array, int i_index);
void array_print_int(Array *p_array);
void array_splice(Array *p_array, int i_index, Array *p_array2);
void array_push(Array *p_array, void *p_void);
+void array_append(Array *p_array, Array *p_array_append);
void array_unshift(Array *p_array, void *p_void);
void array_iterate(Array *p_array, void (*func)(void *));
void array_iterate2(Array *p_array, void (*func)(void *, void *),