Lines Matching full:pattern
42 * Compares a filename or pathname to a pattern.
76 fnmatch(const char *pattern, const char *string, int flags) in fnmatch() argument
80 return (fnmatch1(pattern, string, string, flags, initial, initial)); in fnmatch()
84 fnmatch1(const char *pattern, const char *string, const char *stringstart, in fnmatch1() argument
96 pclen = mbrtowc(&pc, pattern, MB_LEN_MAX, &patmbs); in fnmatch1()
99 pattern += pclen; in fnmatch1()
125 c = *pattern; in fnmatch1()
128 c = *++pattern; in fnmatch1()
135 /* Optimize for pattern with * at end or before /. */ in fnmatch1()
155 bt_pattern = pattern; in fnmatch1()
170 switch (rangematch(pattern, sc, string + sclen, flags, in fnmatch1()
175 pattern = newp; in fnmatch1()
184 pclen = mbrtowc(&pc, pattern, MB_LEN_MAX, in fnmatch1()
189 pattern += pclen; in fnmatch1()
224 pattern = bt_pattern; in fnmatch1()
236 rangematch(const char *pattern, wchar_t test, const char *string, int flags, in rangematch() argument
258 if ((negate = (*pattern == '!' || *pattern == '^'))) in rangematch()
259 ++pattern; in rangematch()
270 origpat = pattern; in rangematch()
273 if (*pattern == ']' && pattern > origpat) { in rangematch()
275 } else if (*pattern == '\0') { in rangematch()
277 } else if (*pattern == '/' && (flags & FNM_PATHNAME)) { in rangematch()
279 } else if (*pattern == '\\' && !(flags & FNM_NOESCAPE)) { in rangematch()
280 pattern++; in rangematch()
281 } else if (*pattern == '[' && in rangematch()
282 ((special = *(pattern + 1)) == '.' || in rangematch()
284 cp = (pattern += 2); in rangematch()
295 COLLATE_STR_LEN, pattern, in rangematch()
296 cp - pattern, patmbs); in rangematch()
299 pattern = cp + 2; in rangematch()
348 ec = __collate_equiv_class(pattern, in rangematch()
349 cp - pattern, patmbs); in rangematch()
356 pattern = cp + 2; in rangematch()
379 if (cp - pattern > CHARCLASS_NAME_MAX) in rangematch()
381 strlcpy(name, pattern, cp - pattern + 1); in rangematch()
382 pattern = cp + 2; in rangematch()
393 pclen = mbrtowc(&c, pattern, MB_LEN_MAX, patmbs); in rangematch()
396 pattern += pclen; in rangematch()
401 if (*pattern == '-' && *(pattern + 1) != EOS && in rangematch()
402 *(pattern + 1) != ']') { in rangematch()
403 if (*++pattern == '\\' && !(flags & FNM_NOESCAPE)) in rangematch()
404 if (*pattern != EOS) in rangematch()
405 pattern++; in rangematch()
406 pclen = mbrtowc(&c2, pattern, MB_LEN_MAX, patmbs); in rangematch()
409 pattern += pclen; in rangematch()
413 if ((c2 == '[' && (special = *pattern) == '.') || in rangematch()
422 cp = ++pattern; in rangematch()
431 COLLATE_STR_LEN, pattern, in rangematch()
432 cp - pattern, patmbs); in rangematch()
440 pattern = cp + 2; in rangematch()
463 while (*pattern != ']') { in rangematch()
464 if (*pattern == 0) in rangematch()
466 if (*pattern == special) { in rangematch()
467 if (*++pattern == ']') { in rangematch()
469 pattern++; in rangematch()
473 if (!special && *pattern == '[') { in rangematch()
474 special = *++pattern; in rangematch()
478 pattern++; in rangematch()
481 pclen = mbrtowc(&c, pattern, MB_LEN_MAX, patmbs); in rangematch()
484 pattern += pclen; in rangematch()
487 *newp = (char *)++pattern; in rangematch()