#include "simple_fnmatch.h" int simple_fnmatch(const char *pattern, const char *string) { if (!pattern || !string) return FNM_NOMATCH; if (*pattern == '*' && pattern[1] == '\0') return 0; while (*pattern && *string) { if (*pattern == '?') { pattern++; string++; } else if (*pattern == '\\') { pattern++; if (!pattern || *pattern != *string) return FNM_NOMATCH; string++; pattern++; } else if (*pattern == '*') { pattern++; while (*string && simple_fnmatch(pattern, string)) string++; if (*string) return 0; } else if (*pattern != *string) return FNM_NOMATCH; else { string++; pattern++; } } if (*pattern == '*' && pattern[1] == '\0') return 0; if (*string || *pattern) return FNM_NOMATCH; return 0; }