Lines Matching defs:pglob

171      glob_t *pglob)
179 pglob->gl_pathc = 0;
180 pglob->gl_pathv = NULL;
182 pglob->gl_offs = 0;
184 pglob->gl_flags = flags & ~GLOB_MAGCHAR;
185 pglob->gl_errfunc = errfunc;
186 pglob->gl_matchc = 0;
209 return globexp1(patbuf, pglob);
211 return glob0(patbuf, pglob);
219 static int globexp1(const Char *pattern, glob_t *pglob)
226 return glob0(pattern, pglob);
229 if (!globexp2(ptr, pattern, pglob, &rv))
232 return glob0(pattern, pglob);
242 glob_t *pglob, int *rv)
278 *rv = glob0(patbuf, pglob);
325 *rv = globexp1(patbuf, pglob);
345 globtilde(const Char *pattern, Char *patbuf, glob_t *pglob)
352 if (*pattern != CHAR_TILDE || !(pglob->gl_flags & GLOB_TILDE))
404 glob0(const Char *pattern, glob_t *pglob)
411 qpatnext = globtilde(pattern, patbuf, pglob);
412 oldpathc = pglob->gl_pathc;
442 pglob->gl_flags |= GLOB_MAGCHAR;
446 pglob->gl_flags |= GLOB_MAGCHAR;
450 pglob->gl_flags |= GLOB_MAGCHAR;
467 if ((err = glob1(patbuf, pglob, &limit)) != 0)
476 if (pglob->gl_pathc == oldpathc &&
477 ((pglob->gl_flags & GLOB_NOCHECK) ||
478 ((pglob->gl_flags & GLOB_NOMAGIC) &&
479 !(pglob->gl_flags & GLOB_MAGCHAR))))
480 return(globextend(pattern, pglob, &limit));
481 else if (!(pglob->gl_flags & GLOB_NOSORT))
482 qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc,
483 pglob->gl_pathc - oldpathc, sizeof(char *), compare);
494 glob1(Char *pattern, glob_t *pglob, size_t *limit)
501 return(glob2(pathbuf, pathbuf, pattern, pglob, limit));
519 glob2(Char *pathbuf, Char *pathend, Char *pattern, glob_t *pglob,
533 if (g_lstat(pathbuf, &sb, pglob))
536 if (((pglob->gl_flags & GLOB_MARK) &&
539 (g_stat(pathbuf, &sb, pglob) == 0) &&
544 ++pglob->gl_matchc;
545 return(globextend(pathbuf, pglob, limit));
563 return(glob3(pathbuf, pathend, pattern, p, pglob,
571 glob_t *pglob, size_t *limit)
589 if ((dirp = g_opendir(pathbuf, pglob)) == NULL) {
591 if (pglob->gl_errfunc) {
593 if (pglob->gl_errfunc(buf, errno) ||
594 pglob->gl_flags & GLOB_ERR)
603 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
604 readdirfunc = pglob->gl_readdir;
621 err = glob2(pathbuf, --dc, restpattern, pglob, limit);
626 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
627 (*pglob->gl_closedir)(dirp);
649 globextend(const Char *path, glob_t *pglob, size_t *limit)
657 newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs);
658 pathv = pglob->gl_pathv ?
659 realloc(pglob->gl_pathv, newsize) :
664 if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) {
666 pathv += pglob->gl_offs;
667 for (i = pglob->gl_offs; --i >= 0; )
670 pglob->gl_pathv = pathv;
678 pathv[pglob->gl_offs + pglob->gl_pathc++] = copy;
680 pathv[pglob->gl_offs + pglob->gl_pathc] = NULL;
682 if ((pglob->gl_flags & GLOB_LIMIT) && (newsize + *limit) >= ARG_MAX) {
743 globfree(glob_t *pglob)
748 if (pglob->gl_pathv != NULL) {
749 pp = pglob->gl_pathv + pglob->gl_offs;
750 for (i = pglob->gl_pathc; i--; ++pp)
753 free(pglob->gl_pathv);
754 pglob->gl_pathv = NULL;
759 g_opendir(Char *str, glob_t *pglob)
768 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
769 return((*pglob->gl_opendir)(buf));
775 g_lstat(Char *fn, struct stat *sb, glob_t *pglob)
780 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
781 return((*pglob->gl_lstat)(buf, sb));
786 g_stat(Char *fn, struct stat *sb, glob_t *pglob)
791 if (pglob->gl_flags & GLOB_ALTDIRFUNC)
792 return((*pglob->gl_stat)(buf, sb));