diff options
Diffstat (limited to 'src/zenutil/wildcard.cpp')
| -rw-r--r-- | src/zenutil/wildcard.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/zenutil/wildcard.cpp b/src/zenutil/wildcard.cpp index df69f6a5e..d9d5b384f 100644 --- a/src/zenutil/wildcard.cpp +++ b/src/zenutil/wildcard.cpp @@ -43,11 +43,16 @@ MatchWildcard(std::string_view::const_iterator WildcardIt, return false; } default: + if (StringIt == StringEnd) + { + return false; + } if (*StringIt != *WildcardIt) { return false; } ++StringIt; + break; } } return StringIt == StringEnd; @@ -106,6 +111,11 @@ TEST_CASE("Wildcard") CHECK(!MatchWildcard("*/?ormal.TXT", "hey/normal.txt", true)); CHECK(!MatchWildcard("*/?ORMAL.*", "hey/normal.txt", true)); CHECK(!MatchWildcard("*/?ormal", "hey/normaL", true)); + + CHECK(MatchWildcard("*.dll", "dir/path.dll", true)); + CHECK(!MatchWildcard("*.dll", "dir/path.d", true)); + CHECK(!MatchWildcard("*.d", "dir/path.dll", true)); + CHECK(MatchWildcard("*.d", "dir/path.d", true)); } #endif |