[Base] Match exactly when no pattern in wildcard

This commit is contained in:
Radosław Gliński 2022-02-18 00:38:04 +01:00 committed by GitHub
parent ba28ef9717
commit 6b45cf8447
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 1 deletions

View File

@ -19,6 +19,7 @@ namespace xe::filesystem {
WildcardFlags WildcardFlags::FIRST(true, false, false);
WildcardFlags WildcardFlags::LAST(false, true, false);
WildcardFlags WildcardFlags::ANY(false, false, true);
WildcardFlags WildcardFlags::FIRST_AND_LAST(true, true, false);
WildcardFlags::WildcardFlags()
: FromStart(false), ToEnd(false), ExactLength(false) {}
@ -89,7 +90,8 @@ void WildcardEngine::PreparePattern(const std::string_view pattern) {
}
if (last != pattern.size()) {
std::string str_str(pattern.substr(last));
rules_.push_back(WildcardRule(str_str, WildcardFlags::LAST));
rules_.push_back(WildcardRule(
str_str, last ? WildcardFlags::LAST : WildcardFlags::FIRST_AND_LAST));
}
}

View File

@ -30,6 +30,7 @@ class WildcardFlags {
static WildcardFlags FIRST;
static WildcardFlags LAST;
static WildcardFlags ANY;
static WildcardFlags FIRST_AND_LAST;
};
class WildcardRule {