diff options
-rw-r--r-- | src/strv.c | 13 | ||||
-rw-r--r-- | src/strv.h | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/strv.c b/src/strv.c index a749096f9a..2ebd0ee53a 100644 --- a/src/strv.c +++ b/src/strv.c @@ -31,7 +31,6 @@ char *strv_find(char **l, const char *name) { char **i; - assert(l); assert(name); STRV_FOREACH(i, l) @@ -41,6 +40,18 @@ char *strv_find(char **l, const char *name) { return NULL; } +char *strv_find_prefix(char **l, const char *name) { + char **i; + + assert(name); + + STRV_FOREACH(i, l) + if (startswith(*i, name)) + return *i; + + return NULL; +} + void strv_free(char **l) { char **k; diff --git a/src/strv.h b/src/strv.h index 11d2ea1207..2d24b4e392 100644 --- a/src/strv.h +++ b/src/strv.h @@ -28,6 +28,8 @@ #include "macro.h" char *strv_find(char **l, const char *name); +char *strv_find_prefix(char **l, const char *name); + void strv_free(char **l); char **strv_copy(char **l) _malloc_; unsigned strv_length(char **l); |