You can tell whether an item already exists in the array when calling
authorDavid Given <dg@cowlark.com>
Wed, 28 Sep 2016 21:39:00 +0000 (23:39 +0200)
committerDavid Given <dg@cowlark.com>
Wed, 28 Sep 2016 21:39:00 +0000 (23:39 +0200)
array_appendu() now.

modules/src/data/array.c
modules/src/data/array.h

index 68fad1f..8943323 100644 (file)
@@ -31,10 +31,13 @@ bool array_contains(void* arrayp, void* value)
        return false;
 }
 
-void array_appendu(void* arrayp, void* value)
+bool array_appendu(void* arrayp, void* value)
 {
-       if (!array_contains(arrayp, value))
-               array_append(arrayp, value);
+       if (array_contains(arrayp, value))
+        return true;
+
+    array_append(arrayp, value);
+    return false;
 }
 
 void array_remove(void* arrayp, void* value)
index 156bad1..6018735 100644 (file)
@@ -18,7 +18,7 @@ struct array
        }
 
 extern void array_append(void* array, void* value);
-extern void array_appendu(void* array, void* value);
+extern bool array_appendu(void* array, void* value);
 extern void array_remove(void* array, void* value);
 extern bool array_contains(void* array, void* value);