Lines Matching defs:ftw
325 Ftw_t* ftw; /* ftw info */
341 int comma; /* LS_COMMAS ftw.level crossing */
466 register Ftw_t* ftw;
483 ftw = lp->ftw;
484 st = &ftw->statb;
488 ftw = 0;
576 if (ftw != state.top)
609 if (ftw && (ftw->info & FTW_SL))
623 if (*ftw->name == '/' || !lp->dirnam)
624 dirnam = ftw->name;
627 sfprintf(state.tmp, "%s/%s", lp->dirnam + streq(lp->dirnam, "/"), ftw->name);
639 if (ftw && (ftw->info & FTW_SL))
689 if (ftw)
690 s = PRINTABLE(ftw->name);
697 if (ftw)
698 s = ftw->path ? PRINTABLE(ftw->path) : PRINTABLE(ftw->name);
802 pr(register List_t* lp, Ftw_t* ftw, register int fill)
806 ftw->statb.st_size <<= state.testsize;
807 ftw->statb.st_blocks = ftw->statb.st_size / LS_BLOCKSIZE;
817 if (ftw->level == 0 && (state.ftwflags & (FTW_META|FTW_PHYSICAL)) == (FTW_META|FTW_PHYSICAL) && !(ftw->info & FTW_D) && !lstat(ftw->path ? ftw->path : ftw->name, &ftw->statb) && S_ISLNK(ftw->statb.st_mode))
818 ftw->info = FTW_SL;
820 lp->ftw = ftw;
834 * pr() ftw directory child list in column order
841 col(register List_t* lp, register Ftw_t* ftw, int length)
851 lp->ftw = ftw;
852 if (keys[KEY_header].macro && ftw->level >= 0)
863 i = ftw->name[1];
864 ftw->name[1] = 0;
870 ftw->name[1] = i;
878 for (p = ftw->link; p; p = p->link)
909 for (p = ftw->link; p; p = p->link)
947 for (p = ftw->link; p; p = p->link)
1035 if (keys[KEY_trailer].macro && ftw->level >= 0)
1169 dir(register Ftw_t* ftw)
1176 if (ftw->status == FTW_NAME)
1178 list.dirlen = ftw->namelen;
1179 list.dirnam = ftw->path + ftw->pathlen - list.dirlen;
1183 list.dirlen = ftw->pathlen;
1184 list.dirnam = ftw->path;
1186 if (ftw->level >= 0)
1189 state.top = ftw;
1194 for (p = ftw->link; p; p = p->link)
1205 if (ftw->level < 0 || !(state.lsflags & LS_NOSTAT))
1207 if (ftw->path[0] == '.' && !ftw->path[1])
1210 error(2, "%s/%s: not found", ftw->path, p->name);
1235 col(&list, ftw, length);
1247 state.top = ftw->link;
1248 for (p = ftw->link; p; p = p->link)
1259 ls(register Ftw_t* ftw)
1261 if (!VISIBLE(ftw))
1263 ftw->status = FTW_SKIP;
1266 switch (ftw->info)
1269 if (ftw->parent->info == FTW_DNX)
1271 error(2, "%s: not found", ftw->path);
1276 error(2, "%s: directory causes cycle", ftw->path);
1281 error(2, "%s: cannot read directory", ftw->path);
1285 if ((state.lsflags & LS_DIRECTORY) && ftw->level >= 0)
1288 ftw->status = FTW_SKIP;
1289 else if (ftw->info == FTS_DNX)
1291 error(2, "%s: cannot search directory", ftw->path, ftw->level);
1292 ftw->status = FTW_SKIP;
1293 if (ftw->level > 0 && !(state.lsflags & LS_NOSTAT))
1296 dir(ftw);
1299 ftw->status = FTW_SKIP;
1300 if (!ftw->level)
1304 list.ftw = ftw;
1305 pr(&list, ftw, 0);