shash: Introduce new macros SHASH_FOR_EACH, SHASH_FOR_EACH_SAFE.
[openvswitch] / lib / cfg.c
index a53e6e380da3e2783ddd07c51c5fed6dd22bf5bc..433d7a0fac56ba6cb47e402fe573ed909941e8ed 100644 (file)
--- a/lib/cfg.c
+++ b/lib/cfg.c
@@ -676,6 +676,25 @@ cfg_del_match(const char *pattern_, ...)
     free(pattern);
 }
 
+/* Fills 'svec' with all of the key-value pairs that match shell glob pattern
+ * 'pattern'.  The caller must first initialize 'svec'. */
+void
+cfg_get_matches(struct svec *svec, const char *pattern_, ...)
+{
+    char *pattern;
+    char **p;
+
+    FORMAT_KEY(pattern_, pattern);
+
+    for (p = cfg.names; *p; p++) {
+        if (!fnmatch(pattern, *p, 0)) {
+            svec_add(svec, *p);
+        }
+    }
+
+    free(pattern);
+}
+
 /* Fills 'svec' with all of the key-value pairs that have sections that
  * begin with 'section'.  The caller must first initialize 'svec'. */
 void