From d2713783c48ca9fbdd6f4ea3aab03fe856fdd52a Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 4 Nov 2008 23:24:42 +0000 Subject: big step forward for arrays in fype. --- src/data/array.c | 11 +++++++++-- src/data/array.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src/data') 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); } @@ -238,6 +238,13 @@ array_push(Array *p_array, void *p_void) { array_set(p_array, 0, 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) 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 *), -- cgit v1.2.3