Lines Matching refs:pglob

152 	 int (*errfunc)(const char *, int), glob11_t * __restrict pglob)  in freebsd11_glob()  argument
164 pglob->gl_pathc = 0; in freebsd11_glob()
165 pglob->gl_pathv = NULL; in freebsd11_glob()
167 pglob->gl_offs = 0; in freebsd11_glob()
170 limit.l_path_lim = pglob->gl_matchc; in freebsd11_glob()
174 pglob->gl_flags = flags & ~GLOB_MAGCHAR; in freebsd11_glob()
175 pglob->gl_errfunc = errfunc; in freebsd11_glob()
176 pglob->gl_matchc = 0; in freebsd11_glob()
186 return (err_nomatch(pglob, &limit, pattern)); in freebsd11_glob()
208 return (err_nomatch(pglob, &limit, pattern)); in freebsd11_glob()
218 return (err_nomatch(pglob, &limit, pattern)); in freebsd11_glob()
222 return (globexp0(patbuf, pglob, &limit, pattern)); in freebsd11_glob()
224 return (glob0(patbuf, pglob, &limit, pattern)); in freebsd11_glob()
228 globexp0(const Char *pattern, glob11_t *pglob, struct glob_limit *limit, in globexp0() argument
235 if ((pglob->gl_flags & GLOB_LIMIT) && in globexp0()
240 return (glob0(pattern, pglob, limit, origpat)); in globexp0()
243 oldpathc = pglob->gl_pathc; in globexp0()
245 if ((rv = globexp1(pattern, pglob, limit)) != 0) in globexp0()
248 return (globfinal(pglob, limit, oldpathc, origpat)); in globexp0()
257 globexp1(const Char *pattern, glob11_t *pglob, struct glob_limit *limit) in globexp1() argument
262 if ((pglob->gl_flags & GLOB_LIMIT) && in globexp1()
267 return (globexp2(ptr, pattern, pglob, limit)); in globexp1()
270 return (glob0(pattern, pglob, limit, NULL)); in globexp1()
280 globexp2(const Char *ptr, const Char *pattern, glob11_t *pglob, in globexp2() argument
318 return (glob0(pattern, pglob, limit, NULL)); in globexp2()
363 rv = globexp1(patbuf, pglob, limit); in globexp2()
384 globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob11_t *pglob) in globtilde() argument
397 if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) in globtilde()
495 glob0(const Char *pattern, glob11_t *pglob, struct glob_limit *limit, in glob0() argument
502 qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); in glob0()
507 oldpathc = pglob->gl_pathc; in glob0()
537 pglob->gl_flags |= GLOB_MAGCHAR; in glob0()
541 pglob->gl_flags |= GLOB_MAGCHAR; in glob0()
545 pglob->gl_flags |= GLOB_MAGCHAR; in glob0()
562 if ((err = glob1(patbuf, pglob, limit)) != 0) in glob0()
566 return (globfinal(pglob, limit, oldpathc, origpat)); in glob0()
572 globfinal(glob11_t *pglob, struct glob_limit *limit, size_t oldpathc, in globfinal() argument
574 if (pglob->gl_pathc == oldpathc) in globfinal()
575 return (err_nomatch(pglob, limit, origpat)); in globfinal()
577 if (!(pglob->gl_flags & GLOB_NOSORT)) in globfinal()
578 qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, in globfinal()
579 pglob->gl_pathc - oldpathc, sizeof(char *), compare); in globfinal()
591 glob1(Char *pattern, glob11_t *pglob, struct glob_limit *limit) in glob1() argument
599 pattern, pglob, limit)); in glob1()
609 glob11_t *pglob, struct glob_limit *limit) in glob2() argument
622 if (g_lstat(pathbuf, &sb, pglob)) in glob2()
625 if ((pglob->gl_flags & GLOB_LIMIT) && in glob2()
630 if ((pglob->gl_flags & GLOB_MARK) && in glob2()
634 g_stat(pathbuf, &sb, pglob) == 0 && in glob2()
643 ++pglob->gl_matchc; in glob2()
644 return (globextend(pathbuf, pglob, limit, NULL)); in glob2()
672 p, pglob, limit)); in glob2()
680 glob11_t *pglob, struct glob_limit *limit) in glob3() argument
694 if (pglob->gl_errfunc != NULL && in glob3()
702 if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { in glob3()
705 err = err_aborted(pglob, errno, buf); in glob3()
714 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in glob3()
716 (struct freebsd11_dirent *(*)(DIR *))pglob->gl_readdir; in glob3()
729 if ((pglob->gl_flags & GLOB_LIMIT) && in glob3()
759 if (too_long && (err = err_aborted(pglob, ENAMETOOLONG, in glob3()
772 pglob, limit); in glob3()
779 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in glob3()
780 (*pglob->gl_closedir)(dirp); in glob3()
789 (err = err_aborted(pglob, errno, buf))) in glob3()
813 globextend(const Char *path, glob11_t *pglob, struct glob_limit *limit, in globextend() argument
821 if ((pglob->gl_flags & GLOB_LIMIT) && in globextend()
822 pglob->gl_matchc > limit->l_path_lim) { in globextend()
827 newn = 2 + pglob->gl_pathc + pglob->gl_offs; in globextend()
829 pathv = reallocarray(pglob->gl_pathv, newn, sizeof(*pathv)); in globextend()
833 if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { in globextend()
835 pathv += pglob->gl_offs; in globextend()
836 for (i = pglob->gl_offs + 1; --i > 0; ) in globextend()
839 pglob->gl_pathv = pathv; in globextend()
857 if ((pglob->gl_flags & GLOB_LIMIT) && in globextend()
863 pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; in globextend()
865 pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; in globextend()
942 freebsd11_globfree(glob11_t *pglob) in freebsd11_globfree() argument
947 if (pglob->gl_pathv != NULL) { in freebsd11_globfree()
948 pp = pglob->gl_pathv + pglob->gl_offs; in freebsd11_globfree()
949 for (i = pglob->gl_pathc; i--; ++pp) in freebsd11_globfree()
952 free(pglob->gl_pathv); in freebsd11_globfree()
953 pglob->gl_pathv = NULL; in freebsd11_globfree()
958 g_opendir(Char *str, glob11_t *pglob) in g_opendir() argument
971 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in g_opendir()
972 return ((*pglob->gl_opendir)(buf)); in g_opendir()
978 g_lstat(Char *fn, struct freebsd11_stat *sb, glob11_t *pglob) in g_lstat() argument
986 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in g_lstat()
987 return((*pglob->gl_lstat)(buf, sb)); in g_lstat()
992 g_stat(Char *fn, struct freebsd11_stat *sb, glob11_t *pglob) in g_stat() argument
1000 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in g_stat()
1001 return ((*pglob->gl_stat)(buf, sb)); in g_stat()
1041 err_nomatch(glob11_t *pglob, struct glob_limit *limit, const char *origpat) { in err_nomatch() argument
1048 if ((pglob->gl_flags & GLOB_NOCHECK) || in err_nomatch()
1049 ((pglob->gl_flags & GLOB_NOMAGIC) && in err_nomatch()
1050 !(pglob->gl_flags & GLOB_MAGCHAR))) in err_nomatch()
1051 return (globextend(NULL, pglob, limit, origpat)); in err_nomatch()
1056 err_aborted(glob11_t *pglob, int err, char *buf) { in err_aborted() argument
1057 if ((pglob->gl_errfunc != NULL && pglob->gl_errfunc(buf, err)) || in err_aborted()
1058 (pglob->gl_flags & GLOB_ERR)) in err_aborted()