aboutsummaryrefslogtreecommitdiff
path: root/common/util.cpp
diff options
context:
space:
mode:
authorMax Horn2007-10-04 08:04:18 +0000
committerMax Horn2007-10-04 08:04:18 +0000
commit51f082dcde8c6f1b5036f81ae7b504bcc291bced (patch)
treecf55068fb49a8c9cbe2bd26d9af2ed71be7c571f /common/util.cpp
parent9e8167b10ce21d8286bcdd39a2de30f0da6d3aee (diff)
downloadscummvm-rg350-51f082dcde8c6f1b5036f81ae7b504bcc291bced.tar.gz
scummvm-rg350-51f082dcde8c6f1b5036f81ae7b504bcc291bced.tar.bz2
scummvm-rg350-51f082dcde8c6f1b5036f81ae7b504bcc291bced.zip
Patch #1805208: move matchString to Common::Util
svn-id: r29154
Diffstat (limited to 'common/util.cpp')
-rw-r--r--common/util.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/common/util.cpp b/common/util.cpp
index 8bf704456a..eaef9ce0b5 100644
--- a/common/util.cpp
+++ b/common/util.cpp
@@ -61,6 +61,39 @@ extern bool isSmartphone(void);
namespace Common {
+bool matchString(const char *str, const char *pat) {
+ const char *p = 0;
+ const char *q = 0;
+
+ for (;;) {
+ switch (*pat) {
+ case '*':
+ p = ++pat;
+ q = str;
+ break;
+
+ default:
+ if (*pat != *str) {
+ if (p) {
+ pat = p;
+ str = ++q;
+ if (!*str)
+ return !*pat;
+ break;
+ }
+ else
+ return false;
+ }
+ // fallthrough
+ case '?':
+ if (!*str)
+ return !*pat;
+ pat++;
+ str++;
+ }
+ }
+}
+
//
// Print hexdump of the data passed in
//