SCCS-vsn: lib/libc/gen/fts.c 5.8
*/
#if defined(LIBC_SCCS) && !defined(lint)
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)fts.c 5.7 (Berkeley) %G%";
+static char sccsid[] = "@(#)fts.c 5.8 (Berkeley) %G%";
#endif /* LIBC_SCCS and not lint */
#include <sys/param.h>
#endif /* LIBC_SCCS and not lint */
#include <sys/param.h>
/* directory in pre-order */
if (p->fts_info == FTS_D) {
/* directory in pre-order */
if (p->fts_info == FTS_D) {
- /* may have been skipped or crossed mount point */
+ /* if skipped or crossed mount point, do post-order visit */
if (instr == FTS_SKIP || sp->fts_options & FTS_XDEV &&
p->fts_statb.st_dev != sp->sdev) {
if (sp->fts_child) {
fts_lfree(sp->fts_child);
sp->fts_child = NULL;
}
if (instr == FTS_SKIP || sp->fts_options & FTS_XDEV &&
p->fts_statb.st_dev != sp->sdev) {
if (sp->fts_child) {
fts_lfree(sp->fts_child);
sp->fts_child = NULL;
}
+ p->fts_info = FTS_DP;
+ return(p);
}
/* read the directory if necessary, and return first entry */
}
/* read the directory if necessary, and return first entry */