summaryrefslogtreecommitdiff
path: root/src/librc/librc-stringlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/librc/librc-stringlist.c')
-rw-r--r--src/librc/librc-stringlist.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/librc/librc-stringlist.c b/src/librc/librc-stringlist.c
index 4dc0703..35889fb 100644
--- a/src/librc/librc-stringlist.c
+++ b/src/librc/librc-stringlist.c
@@ -80,6 +80,31 @@ bool rc_stringlist_delete(RC_STRINGLIST *list, const char *value)
}
librc_hidden_def(rc_stringlist_delete)
+RC_STRING *rc_stringlist_find(RC_STRINGLIST *list, const char *value)
+{
+ RC_STRING *s;
+
+ TAILQ_FOREACH(s, list, entries)
+ if (strcmp(s->value, value) == 0)
+ return s;
+ return NULL;
+}
+librc_hidden_def(rc_stringlist_find)
+
+RC_STRINGLIST *rc_stringlist_split(const char *value, const char *sep)
+{
+ RC_STRINGLIST *list = rc_stringlist_new();
+ char *d = xstrdup(value);
+ char *p = d, *token;
+
+ while ((token = strsep(&p, sep)))
+ rc_stringlist_add(list, token);
+ free(d);
+
+ return list;
+}
+librc_hidden_def(rc_stringlist_split)
+
void rc_stringlist_sort(RC_STRINGLIST **list)
{
RC_STRINGLIST *l = *list;