Lines Matching defs:sp

72 #define	CLR(opt)	(sp->fts_options &= ~(opt))
73 #define ISSET(opt) (sp->fts_options & (opt))
74 #define SET(opt) (sp->fts_options |= (opt))
79 FTS *sp;
92 if ((sp = calloc(1, sizeof(FTS))) == NULL)
94 sp->fts_options = options;
100 if (fts_palloc(sp, MAXIMUM(fts_maxarglen(argv), PATH_MAX)))
104 if ((parent = fts_alloc(sp, "", 0)) == NULL)
116 if ((p = fts_alloc(sp, *argv, len)) == NULL)
121 p->fts_info = fts_stat(sp, p);
141 if ((sp->fts_cur = fts_alloc(sp, "", 0)) == NULL)
143 sp->fts_cur->fts_link = root;
144 sp->fts_cur->fts_info = FTS_INIT;
149 return (sp);
153 mem2: free(sp->fts_path);
154 mem1: free(sp);
159 fts_load(FTS *sp, FTSENT *p)
172 memmove(sp->fts_path, p->fts_name, len + 1);
178 p->fts_accpath = p->fts_path = sp->fts_path;
179 sp->fts_dev = p->fts_dev;
183 fts_close(FTS *sp)
192 if (sp->fts_cur) {
193 for (p = sp->fts_cur; p->fts_level >= FTS_ROOTLEVEL;) {
202 if (sp->fts_child)
203 fts_lfree(sp->fts_child);
204 free(sp->fts_path);
205 free(sp);
219 fts_read(FTS *sp)
226 if (sp->fts_cur == NULL || ISSET(FTS_STOP))
230 p = sp->fts_cur;
240 (ISSET(FTS_XDEV) && p->fts_dev != sp->fts_dev)) {
241 if (sp->fts_child) {
242 fts_lfree(sp->fts_child);
243 sp->fts_child = NULL;
253 if (sp->fts_child) {
255 } else if ((sp->fts_child = fts_build(sp)) == NULL) {
260 p = sp->fts_child;
261 sp->fts_child = NULL;
275 fts_load(sp, p);
276 return (sp->fts_cur = p);
287 name: t = sp->fts_path + NAPPEND(p->fts_parent);
290 return (sp->fts_cur = p);
304 return (sp->fts_cur = NULL);
308 sp->fts_path[p->fts_pathlen] = '\0';
311 return (sp->fts_cur = p);
322 fts_set(FTS *sp, FTSENT *p, int instr)
347 fts_build(FTS *sp)
360 cur = sp->fts_cur;
383 cp = sp->fts_path + len;
386 maxlen = sp->fts_pathlen - len;
408 if (!(p = fts_alloc(sp, dp->d_name, dlen)))
411 oldaddr = sp->fts_path;
412 if (fts_palloc(sp, dlen + len + 1)) {
429 if (oldaddr != sp->fts_path) {
431 cp = sp->fts_path + len;
433 maxlen = sp->fts_pathlen - len;
437 p->fts_parent = sp->fts_cur;
458 p->fts_info = fts_stat(sp, p);
478 fts_padjust(sp, head);
484 if (len == sp->fts_pathlen || nitems == 0)
497 fts_stat(FTS *sp, FTSENT *p)
550 fts_alloc(FTS *sp, const char *name, size_t namelen)
559 p->fts_path = sp->fts_path;
591 fts_palloc(FTS *sp, size_t more)
599 if (sp->fts_pathlen + more < sp->fts_pathlen) {
600 if (sp->fts_path)
601 free(sp->fts_path);
602 sp->fts_path = NULL;
606 sp->fts_pathlen += more;
607 p = realloc(sp->fts_path, sp->fts_pathlen);
609 if (sp->fts_path)
610 free(sp->fts_path);
611 sp->fts_path = NULL;
614 sp->fts_path = p;
623 fts_padjust(FTS *sp, FTSENT *head)
626 char *addr = sp->fts_path;
636 for (p = sp->fts_child; p; p = p->fts_link)