projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
New module 'uninorm/nfd'.
[gnulib.git]
/
lib
/
fts.c
diff --git
a/lib/fts.c
b/lib/fts.c
index
f00db41
..
0cbb9fb
100644
(file)
--- a/
lib/fts.c
+++ b/
lib/fts.c
@@
-965,7
+965,10
@@
check_for_dir:
if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
{
FTSENT *parent = p->fts_parent;
if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
{
FTSENT *parent = p->fts_parent;
- if (parent->fts_n_dirs_remaining == 0
+ if (FTS_ROOTLEVEL < p->fts_level
+ /* ->fts_n_dirs_remaining is not valid
+ for command-line-specified names. */
+ && parent->fts_n_dirs_remaining == 0
&& ISSET(FTS_NOSTAT)
&& ISSET(FTS_PHYSICAL)
&& link_count_optimize_ok (parent))
&& ISSET(FTS_NOSTAT)
&& ISSET(FTS_PHYSICAL)
&& link_count_optimize_ok (parent))
@@
-975,11
+978,10
@@
check_for_dir:
else
{
p->fts_info = fts_stat(sp, p, false);
else
{
p->fts_info = fts_stat(sp, p, false);
- if (S_ISDIR(p->fts_statp->st_mode)
)
- {
-
if (
parent->fts_n_dirs_remaining)
+ if (S_ISDIR(p->fts_statp->st_mode)
+ && p->fts_level != FTS_ROOTLEVEL
+
&&
parent->fts_n_dirs_remaining)
parent->fts_n_dirs_remaining--;
parent->fts_n_dirs_remaining--;
- }
}
}
else
}
}
else