From 073005e677fbe947a4fdd57a282cebf07b6e961a Mon Sep 17 00:00:00 2001 From: David Given Date: Tue, 6 Dec 2016 00:11:40 +0100 Subject: [PATCH] Add array_replace(). --- modules/src/data/array.c | 12 ++++++++++++ modules/src/data/array.h | 1 + 2 files changed, 13 insertions(+) diff --git a/modules/src/data/array.c b/modules/src/data/array.c index 2847bbdd4..330944605 100644 --- a/modules/src/data/array.c +++ b/modules/src/data/array.c @@ -82,6 +82,18 @@ void array_remove(void* arrayp, void* value) } } +void array_replace(void* arrayp, void* from, void* to) +{ + struct array* array = arrayp; + int i; + + for (i=0; icount; i++) + { + if (array->item[i] == from) + array->item[i] = to; + } +} + void* array_pop(void* arrayp) { struct array* array = arrayp; diff --git a/modules/src/data/array.h b/modules/src/data/array.h index 6ec497566..014243dac 100644 --- a/modules/src/data/array.h +++ b/modules/src/data/array.h @@ -23,6 +23,7 @@ extern void array_insert(void* array, void* value, int before); extern void array_remove(void* array, void* value); extern bool array_contains(void* array, void* value); extern int array_indexof(void* array, void* value); +extern void array_replace(void* array, void* from, void* to); #define array_push(a, v) array_append(a, v) extern void* array_pop(void* array); -- 2.34.1