From: Paul Eggert Date: Wed, 11 Apr 2018 23:27:03 +0000 (-0700) Subject: fts: add comment X-Git-Tag: v1.0~5680 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=1b47cef69f585d3b0fd2120419c0c9eb40fe0ceb;p=gnulib.git fts: add comment * lib/fts.c (fts_build): Explain why ==, not >. See remark by Bernhard Voelker in: https://lists.gnu.org/r/bug-gnulib/2018-04/msg00041.html --- diff --git a/ChangeLog b/ChangeLog index 3702f75c18..f5752a2179 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2018-04-11 Paul Eggert + fts: add comment + * lib/fts.c (fts_build): Explain why ==, not >. + See remark by Bernhard Voelker in: + https://lists.gnu.org/r/bug-gnulib/2018-04/msg00041.html + fts: fix bug in find across filesystems This fixes a bug I introduced last summer. Problem reported by Kamil Dudka in: diff --git a/lib/fts.c b/lib/fts.c index a26c6824a0..d543510595 100644 --- a/lib/fts.c +++ b/lib/fts.c @@ -1597,7 +1597,11 @@ mem1: saved_errno = errno; /* If there are many entries, no sorting function has been specified, and this file system is of a type that may be slow with a large number of entries, arrange to sort the - directory entries on increasing inode numbers. */ + directory entries on increasing inode numbers. + + The NITEMS comparison uses ==, not >, because the test + needs to be tried at most once once, and NITEMS will exceed + the threshold after it is incremented below. */ if (nitems == _FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD && !sp->fts_compar) sort_by_inode = dirent_inode_sort_may_be_useful (cur, dir_fd);