Lines Matching refs:p

57 #define	ALIGN(p)	(((unsigned long)(p) + ALIGNBYTES) & ~ALIGNBYTES)  argument
88 FTSENT *p, *root; in fts_open() local
128 if ((p = fts_alloc(sp, *argv, strlen(*argv))) == NULL) in fts_open()
130 p->fts_level = FTS_ROOTLEVEL; in fts_open()
131 p->fts_parent = parent; in fts_open()
132 p->fts_accpath = p->fts_name; in fts_open()
133 p->fts_info = fts_stat(sp, p, ISSET(FTS_COMFOLLOW), -1); in fts_open()
136 if (p->fts_info == FTS_DOT) in fts_open()
137 p->fts_info = FTS_D; in fts_open()
144 p->fts_link = root; in fts_open()
145 root = p; in fts_open()
147 p->fts_link = NULL; in fts_open()
149 root = p; in fts_open()
151 prev->fts_link = p; in fts_open()
152 prev = p; in fts_open()
192 fts_load(FTS *sp, FTSENT *p) in fts_load() argument
204 len = p->fts_pathlen = p->fts_namelen; in fts_load()
205 (void) memmove(sp->fts_path, p->fts_name, len + 1); in fts_load()
206 if (((cp = strrchr(p->fts_name, '/')) != NULL) && in fts_load()
207 (cp != p->fts_name || cp[1])) { in fts_load()
209 (void) memmove(p->fts_name, cp, len + 1); in fts_load()
210 p->fts_namelen = len; in fts_load()
212 p->fts_accpath = p->fts_path = sp->fts_path; in fts_load()
213 sp->fts_dev = p->fts_dev; in fts_load()
219 FTSENT *freep, *p; in fts_close() local
228 for (p = sp->fts_cur; p->fts_level >= FTS_ROOTLEVEL; ) { in fts_close()
229 freep = p; in fts_close()
230 p = p->fts_link ? p->fts_link : p->fts_parent; in fts_close()
233 free(p); in fts_close()
262 #define NAPPEND(p) \ argument
263 (p->fts_path[p->fts_pathlen - 1] == '/' \
264 ? p->fts_pathlen - 1 : p->fts_pathlen)
269 FTSENT *p, *tmp; in fts_read() local
279 p = sp->fts_cur; in fts_read()
282 instr = p->fts_instr; in fts_read()
283 p->fts_instr = FTS_NOINSTR; in fts_read()
287 p->fts_info = fts_stat(sp, p, 0, -1); in fts_read()
288 return (p); in fts_read()
298 (p->fts_info == FTS_SL || p->fts_info == FTS_SLNONE)) { in fts_read()
299 p->fts_info = fts_stat(sp, p, 1, -1); in fts_read()
300 if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) { in fts_read()
301 if ((p->fts_symfd = in fts_read()
303 p->fts_errno = errno; in fts_read()
304 p->fts_info = FTS_ERR; in fts_read()
306 p->fts_flags |= FTS_SYMFOLLOW; in fts_read()
308 return (p); in fts_read()
312 if (p->fts_info == FTS_D) { in fts_read()
315 (ISSET(FTS_XDEV) && p->fts_dev != sp->fts_dev)) { in fts_read()
316 if (p->fts_flags & FTS_SYMFOLLOW) in fts_read()
317 (void) close(p->fts_symfd); in fts_read()
322 p->fts_info = FTS_DP; in fts_read()
323 return (p); in fts_read()
346 if (fts_safe_changedir(sp, p, -1, p->fts_accpath)) { in fts_read()
347 p->fts_errno = errno; in fts_read()
348 p->fts_flags |= FTS_DONTCHDIR; in fts_read()
349 for (p = sp->fts_child; p; p = p->fts_link) in fts_read()
350 p->fts_accpath = in fts_read()
351 p->fts_parent->fts_accpath; in fts_read()
356 return (p); in fts_read()
358 p = sp->fts_child; in fts_read()
364 next: tmp = p; in fts_read()
365 if ((p = p->fts_link) != NULL) { in fts_read()
372 if (p->fts_level == FTS_ROOTLEVEL) { in fts_read()
377 fts_load(sp, p); in fts_read()
378 return (sp->fts_cur = p); in fts_read()
386 if (p->fts_instr == FTS_SKIP) in fts_read()
388 if (p->fts_instr == FTS_FOLLOW) { in fts_read()
389 p->fts_info = fts_stat(sp, p, 1, -1); in fts_read()
390 if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) { in fts_read()
391 if ((p->fts_symfd = in fts_read()
393 p->fts_errno = errno; in fts_read()
394 p->fts_info = FTS_ERR; in fts_read()
396 p->fts_flags |= FTS_SYMFOLLOW; in fts_read()
398 p->fts_instr = FTS_NOINSTR; in fts_read()
401 name: t = sp->fts_path + NAPPEND(p->fts_parent); in fts_read()
403 (void) memmove(t, p->fts_name, p->fts_namelen + 1); in fts_read()
404 return (sp->fts_cur = p); in fts_read()
408 p = tmp->fts_parent; in fts_read()
411 if (p->fts_level == FTS_ROOTPARENTLEVEL) { in fts_read()
416 free(p); in fts_read()
422 sp->fts_path[p->fts_pathlen] = '\0'; in fts_read()
429 if (p->fts_level == FTS_ROOTLEVEL) { in fts_read()
432 sp->fts_cur = p; in fts_read()
435 } else if (p->fts_flags & FTS_SYMFOLLOW) { in fts_read()
436 if (FCHDIR(sp, p->fts_symfd)) { in fts_read()
438 (void) close(p->fts_symfd); in fts_read()
441 sp->fts_cur = p; in fts_read()
444 (void) close(p->fts_symfd); in fts_read()
445 } else if (!(p->fts_flags & FTS_DONTCHDIR) && in fts_read()
446 fts_safe_changedir(sp, p->fts_parent, -1, "..")) { in fts_read()
448 sp->fts_cur = p; in fts_read()
451 p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP; in fts_read()
452 return (sp->fts_cur = p); in fts_read()
462 fts_set(FTS *sp __unused, FTSENT *p, int instr) in fts_set() argument
469 p->fts_instr = instr; in fts_set()
476 FTSENT *p; in fts_children() local
485 p = sp->fts_cur; in fts_children()
498 if (p->fts_info == FTS_INIT) in fts_children()
499 return (p->fts_link); in fts_children()
506 if (p->fts_info != FTS_D /* && p->fts_info != FTS_DNR */) in fts_children()
526 if (p->fts_level != FTS_ROOTLEVEL || p->fts_accpath[0] == '/' || in fts_children()
559 FTSENT *p, *head; in fts_build() local
657 if (!(p = fts_alloc(sp, dp->d_name, strlen(dp->d_name)))) in fts_build()
668 free(p); in fts_build()
685 p->fts_level = level; in fts_build()
686 p->fts_parent = sp->fts_cur; in fts_build()
687 p->fts_pathlen = len + strlen(dp->d_name); in fts_build()
688 if (p->fts_pathlen < len) { in fts_build()
694 free(p); in fts_build()
705 p->fts_info = FTS_NS; in fts_build()
706 p->fts_errno = cderrno; in fts_build()
708 p->fts_info = FTS_NSOK; in fts_build()
709 p->fts_accpath = cur->fts_accpath; in fts_build()
711 p->fts_accpath = in fts_build()
712 ISSET(FTS_NOCHDIR) ? p->fts_path : p->fts_name; in fts_build()
713 p->fts_info = FTS_NSOK; in fts_build()
717 p->fts_accpath = p->fts_path; in fts_build()
718 (void) memmove(cp, p->fts_name, in fts_build()
719 p->fts_namelen + 1); in fts_build()
720 p->fts_info = fts_stat(sp, p, 0, dirfd(dirp)); in fts_build()
722 p->fts_accpath = p->fts_name; in fts_build()
723 p->fts_info = fts_stat(sp, p, 0, -1); in fts_build()
727 if (nlinks > 0 && (p->fts_info == FTS_D || in fts_build()
728 p->fts_info == FTS_DC || p->fts_info == FTS_DOT)) in fts_build()
733 p->fts_link = NULL; in fts_build()
735 head = tail = p; in fts_build()
737 tail->fts_link = p; in fts_build()
738 tail = p; in fts_build()
791 fts_stat(FTS *sp, FTSENT *p, int follow, int dfd) in fts_stat() argument
801 path = p->fts_accpath; in fts_stat()
804 path = p->fts_name; in fts_stat()
807 sbp = ISSET(FTS_NOSTAT) ? &sb : p->fts_statp; in fts_stat()
821 p->fts_errno = saved_errno; in fts_stat()
825 p->fts_errno = errno; in fts_stat()
838 dev = p->fts_dev = sbp->st_dev; in fts_stat()
839 ino = p->fts_ino = sbp->st_ino; in fts_stat()
840 p->fts_nlink = sbp->st_nlink; in fts_stat()
842 if (ISDOT(p->fts_name)) in fts_stat()
851 for (t = p->fts_parent; in fts_stat()
854 p->fts_cycle = t; in fts_stat()
869 FTSENT **ap, *p; in fts_sort() local
891 for (ap = sp->fts_array, p = head; p; p = p->fts_link) in fts_sort()
892 *ap++ = p; in fts_sort()
903 FTSENT *p; in fts_alloc() local
917 if ((p = calloc(1, len)) == NULL) in fts_alloc()
920 p->fts_path = sp->fts_path; in fts_alloc()
921 p->fts_namelen = namelen; in fts_alloc()
922 p->fts_instr = FTS_NOINSTR; in fts_alloc()
924 p->fts_statp = (struct stat *)ALIGN(p->fts_name + namelen + 2); in fts_alloc()
925 (void) memcpy(p->fts_name, name, namelen); in fts_alloc()
927 return (p); in fts_alloc()
933 FTSENT *p; in fts_lfree() local
936 while ((p = head) != NULL) { in fts_lfree()
938 free(p); in fts_lfree()
951 char *p; in fts_palloc() local
964 p = realloc(sp->fts_path, sp->fts_pathlen); in fts_palloc()
965 if (p == NULL) { in fts_palloc()
970 sp->fts_path = p; in fts_palloc()
981 FTSENT *p; in fts_padjust() local
984 #define ADJUST(p) { \ in fts_padjust() argument
985 if ((p)->fts_accpath != (p)->fts_name) { \ in fts_padjust()
986 (p)->fts_accpath = \ in fts_padjust()
987 (char *)addr + ((p)->fts_accpath - (p)->fts_path); \ in fts_padjust()
989 (p)->fts_path = addr; \ in fts_padjust()
992 for (p = sp->fts_child; p; p = p->fts_link) in fts_padjust()
993 ADJUST(p); in fts_padjust()
996 for (p = head; p->fts_level >= FTS_ROOTLEVEL; ) { in fts_padjust()
997 ADJUST(p); in fts_padjust()
998 p = p->fts_link ? p->fts_link : p->fts_parent; in fts_padjust()
1019 fts_safe_changedir(FTS *sp, FTSENT *p, int fd, char *path) in fts_safe_changedir() argument
1037 if (p->fts_dev != sb.st_dev || p->fts_ino != sb.st_ino) { in fts_safe_changedir()