summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-06-07 09:38:48 -0400
committerAndrew Opalach <andrew@akon.city> 2025-06-07 09:38:48 -0400
commitb403770e7eb6e0a5a8ca14a24f91dbf214ffe917 (patch)
tree505c47bd0be142b861fb6a8cb9ec80ed676f05a5
parentec99011aca3a9b92964c653d74d693e693ac052f (diff)
downloadlibalabaster-b403770e7eb6e0a5a8ca14a24f91dbf214ffe917.tar.gz
libalabaster-b403770e7eb6e0a5a8ca14a24f91dbf214ffe917.tar.bz2
libalabaster-b403770e7eb6e0a5a8ca14a24f91dbf214ffe917.zip
array: add array_contains()
Signed-off-by: Andrew Opalach <andrew@akon.city>
-rw-r--r--src/array.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c
index 46d7951..37ae7b4 100644
--- a/src/array.c
+++ b/src/array.c
@@ -74,6 +74,18 @@
} while (0)
#ifdef AL_HAVE_GNU_EXTENSIONS
+#define al_array_contains(array, needle) \
+ ({ \
+ bool contains = false; \
+ for (u32 i = 0; i < (array).count; i++) { \
+ if (al_array_at(array, i) == needle) { \
+ contains = true; \
+ break; \
+ } \
+ } \
+ contains; \
+ })
+
#define al_array_remove(array, elem) \
({ \
bool removed = false; \