Lines Matching refs:pat
35 static int do_glob(char *buf, size_t pos, int type, char *pat, int flags, int (*errfunc)(const char *path, int err), struct match **tail)
42 if (*pat && type!=DT_DIR) type = 0;
43 while (pos+1 < PATH_MAX && *pat=='/') buf[pos++] = *pat++;
49 for (; pat[i]!='*' && pat[i]!='?' && (!in_bracket || pat[i]!=']'); i++) {
50 if (!pat[i]) {
52 pat += i;
56 } else if (pat[i] == '[') {
58 } else if (pat[i] == '\\' && !(flags & GLOB_NOESCAPE)) {
62 if (in_bracket && pat[i+1]==']') break;
64 if (!pat[i+1]) return 0;
67 if (pat[i] == '/') {
70 pat += i+1;
81 buf[pos+j++] = pat[i];
92 if (!*pat) {
116 char *p2 = strchr(pat, '/'), saved_sep = '/';
121 for (p=p2; p>pat && p[-1]=='\\'; p--);
148 if (fnmatch(pat, de->d_name, fnm_flags))
155 && fnmatch(pat, de->d_name, fnm_flags | FNM_PERIOD))
194 static int expand_tilde(char **pat, char *buf, size_t *pos)
196 char *p = *pat + 1;
201 *pat = name_end;
227 int glob(const char *restrict pat, int flags, int (*errfunc)(const char *path, int err), glob_t *restrict g)
243 if (*pat) {
244 char *p = strdup(pat);
265 if (append(&tail, pat, strlen(pat), 0))