From: David Given Date: Mon, 5 Dec 2016 23:11:40 +0000 (+0100) Subject: Add array_replace(). X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=073005e677fbe947a4fdd57a282cebf07b6e961a;p=ack.git Add array_replace(). --- 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);