diff options
author | Max Horn | 2007-10-04 08:04:18 +0000 |
---|---|---|
committer | Max Horn | 2007-10-04 08:04:18 +0000 |
commit | 51f082dcde8c6f1b5036f81ae7b504bcc291bced (patch) | |
tree | cf55068fb49a8c9cbe2bd26d9af2ed71be7c571f /common/util.cpp | |
parent | 9e8167b10ce21d8286bcdd39a2de30f0da6d3aee (diff) | |
download | scummvm-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.cpp | 33 |
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 // |