summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/string.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-12-28 09:23:13 +0100
committerIngo Molnar <mingo@elte.hu>2009-12-28 09:23:13 +0100
commit605c1a187f3ce82fbc243e2163c5ca8d1926df8e (patch)
treec8065a8c5606a66f81dc494ce22a5baa5e0dfe7e /tools/perf/util/string.c
parentx86, compress: Force i386 instructions for the decompressor (diff)
parentMerge branches 'dma-debug/fixes' and 'amd-iommu/fixes' into iommu/fixes (diff)
downloadlinux-605c1a187f3ce82fbc243e2163c5ca8d1926df8e.tar.xz
linux-605c1a187f3ce82fbc243e2163c5ca8d1926df8e.zip
Merge branch 'iommu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into x86/urgent
Diffstat (limited to 'tools/perf/util/string.c')
-rw-r--r--tools/perf/util/string.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c
index f24a8cc933d5..5352d7dccc61 100644
--- a/tools/perf/util/string.c
+++ b/tools/perf/util/string.c
@@ -226,3 +226,28 @@ fail:
argv_free(argv);
return NULL;
}
+
+/* Glob expression pattern matching */
+bool strglobmatch(const char *str, const char *pat)
+{
+ while (*str && *pat && *pat != '*') {
+ if (*pat == '?') {
+ str++;
+ pat++;
+ } else
+ if (*str++ != *pat++)
+ return false;
+ }
+ /* Check wild card */
+ if (*pat == '*') {
+ while (*pat == '*')
+ pat++;
+ if (!*pat) /* Tail wild card matches all */
+ return true;
+ while (*str)
+ if (strglobmatch(str++, pat))
+ return true;
+ }
+ return !*str && !*pat;
+}
+