From 88c361d98175622a93cca38c824cea335435cfff Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Sun, 4 Jun 2023 03:18:32 +0200 Subject: Add strvec_find --- src/strvec.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src') diff --git a/src/strvec.c b/src/strvec.c index e668e35..5d140cf 100644 --- a/src/strvec.c +++ b/src/strvec.c @@ -2,6 +2,7 @@ #include "dvec.h" #include "allocator.h" +#include #include int @@ -229,6 +230,23 @@ strvec_remove_str(struct strvec *strvec, const char *str, return 0; } +ssize_t +strvec_find(struct strvec *strvec, size_t start, const char *str) +{ + const char **ent; + size_t i; + + LIBSTRVEC_ABORT_ON_ARGS(!strvec); + + for (i = start; i < strvec->vec.len; i++) { + ent = strvec_at(strvec, i); + if (!str && !*ent) return (ssize_t) i; + if (!strcmp(str, *ent)) return (ssize_t) i; + } + + return -1; +} + char * strvec_join(struct strvec *strvec, const char *sep, const struct allocator *allocator, int *_rc) -- cgit v1.2.3-71-gd317