From 6475fe4ec76533e64ac73d8f0b3798b929a173f0 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Mon, 17 Nov 2025 12:17:29 +0100 Subject: fix wildcard matching (#650) --- src/zenutil/wildcard.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/zenutil/wildcard.cpp') 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 -- cgit v1.2.3