Lines Matching refs:pattern
64 classmatch(const char *pattern, char test, const char **ep) in classmatch() argument
66 const char *mismatch = pattern; in classmatch()
72 if (*pattern++ != ':') { in classmatch()
76 if ((colon = strchr(pattern, ':')) == NULL || colon[1] != ']') { in classmatch()
81 len = (size_t)(colon - pattern); in classmatch()
84 if (!strncmp(pattern, cc->name, len) && cc->name[len] == '\0') { in classmatch()
99 const char *pattern = *pp; in rangematch() local
110 if ((negate = (*pattern == '!' || *pattern == '^'))) in rangematch()
111 ++pattern; in rangematch()
119 c = *pattern++; in rangematch()
122 switch (classmatch(pattern, test, &pattern)) { in rangematch()
134 c = *pattern++; in rangematch()
140 if (*pattern == '-' in rangematch()
141 && (c2 = *(pattern + 1)) != '\0' && c2 != ']') { in rangematch()
142 pattern += 2; in rangematch()
144 c2 = *pattern++; in rangematch()
151 } while ((c = *pattern++) != ']'); in rangematch()
153 *pp = pattern; in rangematch()
165 const char *pattern = *pp; in matchchar() local
169 switch (c = *pattern++) { in matchchar()
184 switch (rangematch(&pattern, in)) { in matchchar()
195 if ((c = *pattern++) == '\0') { in matchchar()
197 --pattern; in matchchar()
207 *pp = pattern; in matchchar()
220 const char *pattern = *pp; in matchsub() local
221 const char *p = pattern; in matchsub()
259 while (*pattern != '\0' && *pattern != '*') { in matchsub()
261 if (pattern[0] == '\\' && pattern[1] == '/') in matchsub()
262 pattern++; in matchsub()
263 if (pattern[0] == '/') { in matchsub()
274 if (!matchchar(&pattern, *string++)) in matchsub()
279 pattern = *pp; in matchsub()
289 *pp = pattern; in matchsub()
299 rmatch(const char *pattern, const char *string, int leading_dir) in rmatch() argument
304 while (*pattern && *string) { in rmatch()
307 if (pattern[0] == '\\' && pattern[1] == '/') in rmatch()
308 pattern++; in rmatch()
309 if (*string == '/' && *pattern == '/') { in rmatch()
311 pattern++; in rmatch()
319 while (*pattern) { in rmatch()
329 for ( ; *pattern == '*' || *pattern == '?'; pattern++) { in rmatch()
330 if (pattern[0] == '*') { in rmatch()
331 if (pattern[1] == '*') { in rmatch()
333 pattern++; in rmatch()
347 if (starstar && *pattern == '\0') in rmatch()
352 mismatch = pattern; in rmatch()
356 if (matchsub(&pattern, &string, segend, wild)) { in rmatch()
363 pattern = mismatch; in rmatch()
383 if (string >= segend && *pattern != '*') in rmatch()
388 if (*pattern != '\0' && *pattern != '/') in rmatch()
393 if (*pattern == '\0' && *string == '\0') in rmatch()
396 if (leading_dir && *pattern == '\0' && *string == '/') in rmatch()