• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/lib/libc/gen/

Lines Matching refs:pglob

157 	 int (*errfunc)(const char *, int), glob11_t * __restrict pglob)
169 pglob->gl_pathc = 0;
170 pglob->gl_pathv = NULL;
172 pglob->gl_offs = 0;
175 limit.l_path_lim = pglob->gl_matchc;
179 pglob->gl_flags = flags & ~GLOB_MAGCHAR;
180 pglob->gl_errfunc = errfunc;
181 pglob->gl_matchc = 0;
191 return (err_nomatch(pglob, &limit, pattern));
213 return (err_nomatch(pglob, &limit, pattern));
223 return (err_nomatch(pglob, &limit, pattern));
227 return (globexp0(patbuf, pglob, &limit, pattern));
229 return (glob0(patbuf, pglob, &limit, pattern));
233 globexp0(const Char *pattern, glob11_t *pglob, struct glob_limit *limit,
240 if ((pglob->gl_flags & GLOB_LIMIT) &&
245 return (glob0(pattern, pglob, limit, origpat));
248 oldpathc = pglob->gl_pathc;
250 if ((rv = globexp1(pattern, pglob, limit)) != 0)
253 return (globfinal(pglob, limit, oldpathc, origpat));
262 globexp1(const Char *pattern, glob11_t *pglob, struct glob_limit *limit)
267 if ((pglob->gl_flags & GLOB_LIMIT) &&
272 return (globexp2(ptr, pattern, pglob, limit));
275 return (glob0(pattern, pglob, limit, NULL));
285 globexp2(const Char *ptr, const Char *pattern, glob11_t *pglob,
323 return (glob0(pattern, pglob, limit, NULL));
368 rv = globexp1(patbuf, pglob, limit);
389 globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob11_t *pglob)
402 if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE))
501 glob0(const Char *pattern, glob11_t *pglob, struct glob_limit *limit,
508 qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob);
513 oldpathc = pglob->gl_pathc;
543 pglob->gl_flags |= GLOB_MAGCHAR;
547 pglob->gl_flags |= GLOB_MAGCHAR;
551 pglob->gl_flags |= GLOB_MAGCHAR;
568 if ((err = glob1(patbuf, pglob, limit)) != 0)
572 return (globfinal(pglob, limit, oldpathc, origpat));
578 globfinal(glob11_t *pglob, struct glob_limit *limit, size_t oldpathc,
580 if (pglob->gl_pathc == oldpathc)
581 return (err_nomatch(pglob, limit, origpat));
583 if (!(pglob->gl_flags & GLOB_NOSORT))
584 qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc,
585 pglob->gl_pathc - oldpathc, sizeof(char *), compare);
597 glob1(Char *pattern, glob11_t *pglob, struct glob_limit *limit)
605 pattern, pglob, limit));
615 glob11_t *pglob, struct glob_limit *limit)
628 if (g_lstat(pathbuf, &sb, pglob))
631 if ((pglob->gl_flags & GLOB_LIMIT) &&
636 if ((pglob->gl_flags & GLOB_MARK) &&
640 g_stat(pathbuf, &sb, pglob) == 0 &&
649 ++pglob->gl_matchc;
650 return (globextend(pathbuf, pglob, limit, NULL));
678 p, pglob, limit));
686 glob11_t *pglob, struct glob_limit *limit)
700 if (pglob->gl_errfunc != NULL &&
708 if ((dirp = g_opendir(pathbuf, pglob)) == NULL) {
711 err = err_aborted(pglob, errno, buf);
719 /* pglob->gl_readdir takes a void *, fix this manually */
720 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
722 (struct freebsd11_dirent *(*)(DIR *))pglob->gl_readdir;
735 if ((pglob->gl_flags & GLOB_LIMIT) &&
765 if (too_long && (err = err_aborted(pglob, ENAMETOOLONG,
778 pglob, limit);
785 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
786 (*pglob->gl_closedir)(dirp);
795 (err = err_aborted(pglob, errno, buf)))
819 globextend(const Char *path, glob11_t *pglob, struct glob_limit *limit,
827 if ((pglob->gl_flags & GLOB_LIMIT) &&
828 pglob->gl_matchc > limit->l_path_lim) {
833 newn = 2 + pglob->gl_pathc + pglob->gl_offs;
835 pathv = reallocarray(pglob->gl_pathv, newn, sizeof(*pathv));
839 if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) {
841 pathv += pglob->gl_offs;
842 for (i = pglob->gl_offs + 1; --i > 0; )
845 pglob->gl_pathv = pathv;
863 if ((pglob->gl_flags & GLOB_LIMIT) &&
869 pathv[pglob->gl_offs + pglob->gl_pathc++] = copy;
871 pathv[pglob->gl_offs + pglob->gl_pathc] = NULL;
948 freebsd11_globfree(glob11_t *pglob)
953 if (pglob->gl_pathv != NULL) {
954 pp = pglob->gl_pathv + pglob->gl_offs;
955 for (i = pglob->gl_pathc; i--; ++pp)
958 free(pglob->gl_pathv);
959 pglob->gl_pathv = NULL;
964 g_opendir(Char *str, glob11_t *pglob)
977 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
978 return ((*pglob->gl_opendir)(buf));
984 g_lstat(Char *fn, struct freebsd11_stat *sb, glob11_t *pglob)
992 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
993 return((*pglob->gl_lstat)(buf, sb));
998 g_stat(Char *fn, struct freebsd11_stat *sb, glob11_t *pglob)
1006 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
1007 return ((*pglob->gl_stat)(buf, sb));
1047 err_nomatch(glob11_t *pglob, struct glob_limit *limit, const char *origpat) {
1054 if ((pglob->gl_flags & GLOB_NOCHECK) ||
1055 ((pglob->gl_flags & GLOB_NOMAGIC) &&
1056 !(pglob->gl_flags & GLOB_MAGCHAR)))
1057 return (globextend(NULL, pglob, limit, origpat));
1062 err_aborted(glob11_t *pglob, int err, char *buf) {
1063 if ((pglob->gl_errfunc != NULL && pglob->gl_errfunc(buf, err)) ||
1064 (pglob->gl_flags & GLOB_ERR))