summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/strv.c13
-rw-r--r--src/strv.h2
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);