Revert "Merge pull request 'Fix logic/correctness bugs (#73, #68, #67, #66, #59, #58, #54, #48, #53)' (#82) from fix/logic-correctness into main"

This reverts commit 28d076fc28, reversing
changes made to df0f52ce39.
This commit is contained in:
2026-07-20 19:36:09 +02:00
parent 6831e7e6fb
commit e6e8679bfc
9 changed files with 55 additions and 159 deletions
+1 -27
View File
@@ -70,23 +70,6 @@ char* str_dup(const char* string) {
bool glob_match(const char* pattern, const char* str) {
while (*pattern) {
if (*pattern == '*') {
/* Check for double-star (globstar) pattern */
if (*(pattern + 1) == '*') {
pattern += 2;
/* Trailing double-star matches everything */
if (*pattern == '\0')
return true;
/* double-star slash: match at any depth */
if (*pattern == '/')
pattern++;
while (*str) {
if (glob_match(pattern, str))
return true;
str++;
}
return glob_match(pattern, str);
}
/* Single * — does not cross / boundaries */
pattern++;
while (*str && *str != '/') {
if (glob_match(pattern, str))
@@ -100,17 +83,8 @@ bool glob_match(const char* pattern, const char* str) {
pattern++;
str++;
} else {
if (*pattern != *str) {
/* If pattern has a '/' followed by '**', allow zero path components */
if (*pattern == '/' && *(pattern + 1) == '*' && *(pattern + 2) == '*') {
/* Skip over slash-double-star and try to match rest against current str */
const char* rest = pattern + 3;
if (*rest == '/')
rest++;
return glob_match(rest, str);
}
if (*pattern != *str)
return false;
}
pattern++;
str++;
}