diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-03-01 02:55:20 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-03-01 02:55:20 -0500 |
commit | 35858adbfca13678af99fb31618ef4428d6dedb0 (patch) | |
tree | 3336feaa61324486945816cb52c347733e7c0821 /tools/perf/util/string.c | |
parent | 197d4db752e67160d79fed09968c2140376a80a3 (diff) | |
parent | 4b70858ba8d4537daf782defebe5f2ff80ccef2b (diff) |
Merge branch 'next' into for-linus
Diffstat (limited to 'tools/perf/util/string.c')
-rw-r--r-- | tools/perf/util/string.c | 25 |
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: | |||
226 | argv_free(argv); | 226 | argv_free(argv); |
227 | return NULL; | 227 | return NULL; |
228 | } | 228 | } |
229 | |||
230 | /* Glob expression pattern matching */ | ||
231 | bool strglobmatch(const char *str, const char *pat) | ||
232 | { | ||
233 | while (*str && *pat && *pat != '*') { | ||
234 | if (*pat == '?') { | ||
235 | str++; | ||
236 | pat++; | ||
237 | } else | ||
238 | if (*str++ != *pat++) | ||
239 | return false; | ||
240 | } | ||
241 | /* Check wild card */ | ||
242 | if (*pat == '*') { | ||
243 | while (*pat == '*') | ||
244 | pat++; | ||
245 | if (!*pat) /* Tail wild card matches all */ | ||
246 | return true; | ||
247 | while (*str) | ||
248 | if (strglobmatch(str++, pat)) | ||
249 | return true; | ||
250 | } | ||
251 | return !*str && !*pat; | ||
252 | } | ||
253 | |||