Mercurial > hg > octave-lyh > gnulib-hg
changeset 11171:5be124843f38
fts: avoid used-uninitialized error due to recent change
* lib/fts.c (fts_read): Guard uses of the new member,
parent->fts_n_dirs_remaining, since it's not relevant for
the parent of a directory specified on the command-line.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Wed, 18 Feb 2009 08:37:24 +0100 |
parents | 2d75ece3de5b |
children | 06f09c5ed316 |
files | ChangeLog lib/fts.c |
diffstat | 2 files changed, 14 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-02-18 Jim Meyering <meyering@redhat.com> + + fts: avoid used-uninitialized error due to recent change + * lib/fts.c (fts_read): Guard uses of the new member, + parent->fts_n_dirs_remaining, since it's not relevant for + the parent of a directory specified on the command-line. + 2009-02-17 James Youngman <jay@gnu.org> Bruno Haible <bruno@clisp.org>
--- a/lib/fts.c +++ b/lib/fts.c @@ -965,7 +965,10 @@ 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)) @@ -975,11 +978,10 @@ 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--; - } } } else