Lines Matching refs:pglob

186 __glob(const char *pattern, glob_t *pglob)  in __glob()  argument
197 if (!(pglob->gl_flags & GLOB_APPEND)) { in __glob()
198 pglob->gl_pathc = 0; in __glob()
199 pglob->gl_pathv = NULL; in __glob()
200 if (!(pglob->gl_flags & GLOB_DOOFFS)) in __glob()
201 pglob->gl_offs = 0; in __glob()
203 if (pglob->gl_flags & GLOB_LIMIT) { in __glob()
204 limit.l_path_lim = pglob->gl_matchc; in __glob()
208 pglob->gl_matchc = 0; in __glob()
213 if (pglob->gl_flags & GLOB_NOESCAPE) { in __glob()
218 return (err_nomatch(pglob, &limit, pattern)); in __glob()
240 return (err_nomatch(pglob, &limit, pattern)); in __glob()
250 return (err_nomatch(pglob, &limit, pattern)); in __glob()
253 if (pglob->gl_flags & GLOB_BRACE) in __glob()
254 return (globexp0(patbuf, pglob, &limit, pattern)); in __glob()
256 return (glob0(patbuf, pglob, &limit, pattern)); in __glob()
261 int (*errfunc)(const char *, int), glob_t * __restrict pglob) in glob() argument
265 pglob->gl_flags = flags & ~(GLOB_MAGCHAR | _GLOB_ERR_BLOCK); in glob()
266 pglob->gl_errfunc = errfunc; in glob()
267 rv = __glob(pattern, pglob); in glob()
268 pglob->gl_errfunc = NULL; in glob()
275 glob_b_block block, glob_t * __restrict pglob) in glob_b() argument
279 pglob->gl_flags = flags & ~GLOB_MAGCHAR; in glob_b()
280 pglob->gl_flags |= _GLOB_ERR_BLOCK; in glob_b()
281 pglob->gl_errblk = block; in glob_b()
282 rv = __glob(pattern, pglob); in glob_b()
283 pglob->gl_errblk = NULL; in glob_b()
289 globexp0(const Char *pattern, glob_t *pglob, struct glob_limit *limit, in globexp0() argument
297 if ((pglob->gl_flags & GLOB_LIMIT) && in globexp0()
302 return (glob0(pattern, pglob, limit, origpat)); in globexp0()
305 oldpathc = pglob->gl_pathc; in globexp0()
307 if ((rv = globexp1(pattern, pglob, limit)) != 0) in globexp0()
310 return (globfinal(pglob, limit, oldpathc, origpat)); in globexp0()
319 globexp1(const Char *pattern, glob_t *pglob, struct glob_limit *limit) in globexp1() argument
324 if ((pglob->gl_flags & GLOB_LIMIT) && in globexp1()
329 return (globexp2(ptr, pattern, pglob, limit)); in globexp1()
332 return (glob0(pattern, pglob, limit, NULL)); in globexp1()
342 globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, in globexp2() argument
380 return (glob0(pattern, pglob, limit, NULL)); in globexp2()
425 rv = globexp1(patbuf, pglob, limit); in globexp2()
446 globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob_t *pglob) in globtilde() argument
459 if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) in globtilde()
557 glob0(const Char *pattern, glob_t *pglob, struct glob_limit *limit, in glob0() argument
564 qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); in glob0()
569 oldpathc = pglob->gl_pathc; in glob0()
599 pglob->gl_flags |= GLOB_MAGCHAR; in glob0()
603 pglob->gl_flags |= GLOB_MAGCHAR; in glob0()
607 pglob->gl_flags |= GLOB_MAGCHAR; in glob0()
625 if ((err = glob1(patbuf, pglob, limit)) != 0) in glob0()
629 return (globfinal(pglob, limit, oldpathc, origpat)); in glob0()
635 globfinal(glob_t *pglob, struct glob_limit *limit, size_t oldpathc, in globfinal() argument
637 if (pglob->gl_pathc == oldpathc) in globfinal()
638 return (err_nomatch(pglob, limit, origpat)); in globfinal()
640 if (!(pglob->gl_flags & GLOB_NOSORT)) in globfinal()
641 qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, in globfinal()
642 pglob->gl_pathc - oldpathc, sizeof(char *), compare); in globfinal()
654 glob1(Char *pattern, glob_t *pglob, struct glob_limit *limit) in glob1() argument
662 pattern, pglob, limit)); in glob1()
672 glob_t *pglob, struct glob_limit *limit) in glob2() argument
685 if (g_lstat(pathbuf, &sb, pglob)) in glob2()
688 if ((pglob->gl_flags & GLOB_LIMIT) && in glob2()
693 if ((pglob->gl_flags & GLOB_MARK) && in glob2()
697 g_stat(pathbuf, &sb, pglob) == 0 && in glob2()
706 ++pglob->gl_matchc; in glob2()
707 return (globextend(pathbuf, pglob, limit, NULL)); in glob2()
735 p, pglob, limit)); in glob2()
743 glob_t *pglob, struct glob_limit *limit) in glob3() argument
757 if ((pglob->gl_errfunc != NULL || pglob->gl_errblk != NULL) && in glob3()
765 if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { in glob3()
768 err = err_aborted(pglob, errno, buf); in glob3()
777 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in glob3()
778 readdirfunc = (struct dirent *(*)(DIR *))pglob->gl_readdir; in glob3()
791 if ((pglob->gl_flags & GLOB_LIMIT) && in glob3()
821 if (too_long && (err = err_aborted(pglob, ENAMETOOLONG, in glob3()
834 pglob, limit); in glob3()
841 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in glob3()
842 (*pglob->gl_closedir)(dirp); in glob3()
851 (err = err_aborted(pglob, errno, buf))) in glob3()
875 globextend(const Char *path, glob_t *pglob, struct glob_limit *limit, in globextend() argument
883 if ((pglob->gl_flags & GLOB_LIMIT) && in globextend()
884 pglob->gl_matchc > limit->l_path_lim) { in globextend()
889 newn = 2 + pglob->gl_pathc + pglob->gl_offs; in globextend()
891 pathv = reallocarray(pglob->gl_pathv, newn, sizeof(*pathv)); in globextend()
895 if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { in globextend()
897 pathv += pglob->gl_offs; in globextend()
898 for (i = pglob->gl_offs + 1; --i > 0; ) in globextend()
901 pglob->gl_pathv = pathv; in globextend()
919 if ((pglob->gl_flags & GLOB_LIMIT) && in globextend()
925 pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; in globextend()
927 pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; in globextend()
1004 globfree(glob_t *pglob) in globfree() argument
1009 if (pglob->gl_pathv != NULL) { in globfree()
1010 pp = pglob->gl_pathv + pglob->gl_offs; in globfree()
1011 for (i = pglob->gl_pathc; i--; ++pp) in globfree()
1014 free(pglob->gl_pathv); in globfree()
1015 pglob->gl_pathv = NULL; in globfree()
1020 g_opendir(Char *str, glob_t *pglob) in g_opendir() argument
1033 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in g_opendir()
1034 return ((*pglob->gl_opendir)(buf)); in g_opendir()
1040 g_lstat(Char *fn, struct stat *sb, glob_t *pglob) in g_lstat() argument
1048 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in g_lstat()
1049 return((*pglob->gl_lstat)(buf, sb)); in g_lstat()
1054 g_stat(Char *fn, struct stat *sb, glob_t *pglob) in g_stat() argument
1062 if (pglob->gl_flags & GLOB_ALTDIRFUNC) in g_stat()
1063 return ((*pglob->gl_stat)(buf, sb)); in g_stat()
1103 err_nomatch(glob_t *pglob, struct glob_limit *limit, const char *origpat) { in err_nomatch() argument
1110 if ((pglob->gl_flags & GLOB_NOCHECK) || in err_nomatch()
1111 ((pglob->gl_flags & GLOB_NOMAGIC) && in err_nomatch()
1112 !(pglob->gl_flags & GLOB_MAGCHAR))) in err_nomatch()
1113 return (globextend(NULL, pglob, limit, origpat)); in err_nomatch()
1118 err_aborted(glob_t *pglob, int err, char *buf) in err_aborted() argument
1122 if ((pglob->gl_flags & _GLOB_ERR_BLOCK) != 0) { in err_aborted()
1123 if (pglob->gl_errblk != NULL) in err_aborted()
1124 rv = CALL_BLOCK((glob_b_block)pglob->gl_errblk, buf, in err_aborted()
1126 } else if (pglob->gl_errfunc != NULL) { in err_aborted()
1127 rv = pglob->gl_errfunc(buf, errno); in err_aborted()
1130 if (rv != 0 || pglob->gl_flags & GLOB_ERR) { in err_aborted()