71#define FNM_PATHNAME (1 << 0)
72#define FNM_NOESCAPE (1 << 1)
73#define FNM_PERIOD (1 << 2)
75static const char *rangematch (
const char *,
int,
int);
80 const char *stringstart;
83 for (stringstart =
string;;)
84 switch (
c = *pattern++) {
93 (
string == stringstart ||
105 (
string == stringstart ||
112 return (strchr(
string,
'/') ==
NULL ?
117 if ((
string = strchr(
string,
'/')) ==
NULL)
123 while ((
test = *
string) !=
EOS) {
137 rangematch(pattern, *
string,
flags)) ==
NULL)
143 if ((
c = *pattern++) ==
EOS) {
172 if ((negate = (*pattern ==
'!' || *pattern ==
'^')))
175 for (ok = 0; (
c = *pattern++) !=
']';) {
181 && (c2 = *(pattern+1)) !=
EOS && c2 !=
']') {
189 }
else if (
c ==
test)
192 return (ok == negate ?
NULL : pattern);
int fnmatch(const char *pattern, const char *string, int flags)
Definition fnmatch_arp.c:78
#define FNM_NOESCAPE
Definition fnmatch_arp.c:72
#define FNM_PERIOD
Definition fnmatch_arp.c:73
#define EOS
Definition fnmatch_arp.c:68
#define FNM_PATHNAME
Definition fnmatch_arp.c:71
#define FNM_NOMATCH
Definition fnmatch_arp.c:70
#define c(i)
Definition sha256.c:43
uint32_t flags
Definition container.h:628
#define NULL
Definition getopt1.c:37