]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: Add virStringGetFirstWithPrefix
authorMartin Kletzander <mkletzan@redhat.com>
Mon, 3 Aug 2015 12:03:23 +0000 (14:03 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 18 Aug 2015 23:16:37 +0000 (16:16 -0700)
That function takes string list and returns first string in that list
that starts with the @prefix parameter with that prefix being skipped as
the caller knows what it starts with (also for easier manipulation in
future).

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
src/libvirt_private.syms
src/util/virstring.c
src/util/virstring.h

index eb42bfa519e29a1713bf0b3b1ecda0a32169a08c..ef62a5be6bb12b18f358e257b871abda802bc612 100644 (file)
@@ -2177,6 +2177,7 @@ virStrdup;
 virStringArrayHasString;
 virStringFreeList;
 virStringFreeListCount;
+virStringGetFirstWithPrefix;
 virStringHasControlChars;
 virStringIsEmpty;
 virStringJoin;
index 4f0afe999baacef56e35c50217f101fc557d06ad..8cd4bdd16eceb08c28a152cd6c2cbd291971189c 100644 (file)
@@ -238,6 +238,23 @@ virStringArrayHasString(char **strings, const char *needle)
     return false;
 }
 
+char *
+virStringGetFirstWithPrefix(char **strings, const char *prefix)
+{
+    size_t i = 0;
+
+    if (!strings)
+        return NULL;
+
+    while (strings[i]) {
+        if (STRPREFIX(strings[i], prefix))
+            return strings[i] + strlen(prefix);
+        i++;
+    }
+
+    return NULL;
+}
+
 /* Like strtol, but produce an "int" result, and check more carefully.
    Return 0 upon success;  return -1 to indicate failure.
    When END_PTR is NULL, the byte after the final valid digit must be NUL.
index 9848fb622cec6c3926fb4be7cbeec09272e8740d..df5928fb1363e51e4c1ffc6961c3c2bf3c14f505 100644 (file)
@@ -47,6 +47,8 @@ void virStringFreeListCount(char **strings, size_t count);
 size_t virStringListLen(const char **strings);
 
 bool virStringArrayHasString(char **strings, const char *needle);
+char *virStringGetFirstWithPrefix(char **strings, const char *prefix)
+    ATTRIBUTE_NONNULL(2);
 
 char *virArgvToString(const char *const *argv);