diff options
-rw-r--r-- | src/utils.c | 8 | ||||
-rw-r--r-- | src/utils.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index 5296332..9fa4d80 100644 --- a/src/utils.c +++ b/src/utils.c @@ -124,6 +124,14 @@ int collection_count(struct collection *col) return cnt; } +void collection_copy(struct collection *dest, struct collection *src) +{ + if (!dest || !src) return; + dest->capacity = src->capacity; + dest->list = malloc(sizeof(void*) * src->capacity); + memcpy(dest->list, src->list, sizeof(void*) * src->capacity); +} + #ifndef HAVE_STPCPY /** * Copy characters from one string into another diff --git a/src/utils.h b/src/utils.h index 730fbad..67477b5 100644 --- a/src/utils.h +++ b/src/utils.h @@ -54,6 +54,7 @@ void collection_add(struct collection *col, void *element); void collection_remove(struct collection *col, void *element); int collection_count(struct collection *col); void collection_free(struct collection *col); +void collection_copy(struct collection *dest, struct collection *src); #define MERGE_(a,b) a ## _ ## b #define LABEL_(a,b) MERGE_(a, b) |