Lines Matching defs:string
50 #include <string.h>
116 fnmatch(const char *pattern, const char *string, int flags);
122 shortest_match(const char *pattern, const char *string);
538 shortest_match(const char *pattern, const char *string) {
539 const char *p = string;
544 while (p-- > string) {
550 if (fnmatch(pattern, string, FNM_CASEFOLD) == 0)
551 return (string);
571 fnmatch(const char *pattern, const char *string, int flags) {
576 for (stringstart = string;;)
579 if ((flags & FNM_LEADING_DIR) && *string == '/')
581 return (*string == EOS ? 0 : FNM_NOMATCH);
583 if (*string == EOS)
585 if (*string == '/' && (flags & FNM_PATHNAME))
587 if (*string == '.' && (flags & FNM_PERIOD) &&
588 (string == stringstart ||
589 ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
591 ++string;
599 if (*string == '.' && (flags & FNM_PERIOD) &&
600 (string == stringstart ||
601 ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
608 index(string, '/') == NULL ?
613 if ((string = index(string, '/')) == NULL)
619 while ((test = *string) != EOS) {
620 if (!fnmatch(pattern, string,
625 ++string;
629 if (*string == EOS)
631 if (*string == '/' && (flags & FNM_PATHNAME))
633 if (*string == '.' && (flags & FNM_PERIOD) &&
634 (string == stringstart ||
635 ((flags & FNM_PATHNAME) && *(string - 1) == '/')))
638 switch (rangematch(pattern, *string, flags, &newp)) {
647 ++string;
659 if (c == *string)
663 tolower((unsigned char)*string)))
667 string++;