du: fix -x: don't ignore non-directory arguments
commitf7f398a1d91ca6b09e5282423711a7c785be2789
authorJim Meyering <meyering@redhat.com>
Thu, 8 Mar 2012 09:33:50 +0000 (8 10:33 +0100)
committerJim Meyering <meyering@redhat.com>
Thu, 8 Mar 2012 12:04:09 +0000 (8 13:04 +0100)
tree0057a3c52fb5cf4369e861b0d6aa1238aecf3b5d
parentc1d07237a82a9eeebb6911c1ebb63957dac0c148
du: fix -x: don't ignore non-directory arguments

Surprise!  "du -x non-DIR" would print nothing.
Note that the problem arises only when processing a non-directory
specified on the command line.  Not surprisingly, "du -x" still
works as expected for any directory argument.

When performing its same-file-system check, du may skip an entry
only if it is at fts_level 1 or greater.  Command-line arguments
are at fts_level == 0 (FTS_ROOTLEVEL).

* src/du.c (process_file): Don't use the top-level FTS->fts_dev
when testing for --one-file-system (-x).  It happens to be valid
for directories, but it is always 0 for a non-directory.
* tests/du/one-file-system: Add tests for this.
* NEWS (Bug fixes): Mention it.
Reported by Daniel Stavrovski in http://bugs.gnu.org/10967.
Introduced by commit v8.14-95-gcfe1040.
NEWS
THANKS.in
src/du.c
tests/du/one-file-system