mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-24 10:23:31 +08:00
* NEWS: Mention that df exits with nonzero status if it generates
no output. This change was in 6.0 but inadvertently unmentioned. * doc/coreutils.texi (df invocation): df exits nonzero if it outpus nothing. * src/df.c (file_systems_processed): Renamed from n_valid_args, and now a boolean. (show_dev): Don't set it until we actually output something. Print the header if this is the first output. (main): Don't print a header, as that is now show_dev's job. * tests/misc/Makefile.am (TESTS): Add df. * tests/misc/df: New file.
This commit is contained in:
parent
5ce0b45a43
commit
9e2b97bf35
18
ChangeLog
18
ChangeLog
@ -1,3 +1,21 @@
|
||||
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* NEWS: Mention that df exits with nonzero status if it generates
|
||||
no output. This change was in 6.0 but inadvertently unmentioned.
|
||||
* src/df.c (file_systems_processed): Renamed from n_valid_args, and now
|
||||
a boolean.
|
||||
(show_dev): Don't set it until we actually output something.
|
||||
Print the header if this is the first output.
|
||||
(main): Don't print a header, as that is now show_dev's job.
|
||||
* tests/misc/Makefile.am (TESTS): Add df.
|
||||
* tests/misc/df: New file.
|
||||
|
||||
2006-08-15 Eric Blake <ebb9@byu.net>
|
||||
|
||||
* src/stat.c (USE_STATVFS): Define to 0 if f_type is needed, but
|
||||
statvfs.f_type not present. See
|
||||
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=16325>.
|
||||
|
||||
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* src/dd.c (print_stats): Don't substitute "1" for number, as this
|
||||
|
14
NEWS
14
NEWS
@ -59,10 +59,16 @@ GNU coreutils NEWS -*- outline -*-
|
||||
date: a command like date -d '2006-04-23 21 days ago' would print
|
||||
the wrong date in some time zones. (see the test for an example)
|
||||
|
||||
df now considers "none" and "proc" file systems to be dummies and
|
||||
therefore does not normally display them. Also, inaccessible file
|
||||
systems (which can be caused by shadowed mount points or by chrooted
|
||||
bind mounts) are now dummies, too.
|
||||
df changes:
|
||||
|
||||
df now considers "none" and "proc" file systems to be dummies and
|
||||
therefore does not normally display them. Also, inaccessible file
|
||||
systems (which can be caused by shadowed mount points or by
|
||||
chrooted bind mounts) are now dummies, too.
|
||||
|
||||
df now fails if it generates no output, so you can inspect the
|
||||
exit status of a command like "df -t ext3 -t reiserfs DIR" to test
|
||||
whether DIR is on a file system of type "ext3" or "reiserfs".
|
||||
|
||||
expr no longer complains about leading ^ in a regular expression
|
||||
(the anchor is ignored), or about regular expressions like A** (the
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* coreutils.texi (df invocation): df exits nonzero if it outpus
|
||||
nothing.
|
||||
|
||||
2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* coreutils.texi (dd invocation): Warn about oflag=append without
|
||||
|
@ -9426,6 +9426,10 @@ Ignored; for compatibility with System V versions of @command{df}.
|
||||
@end table
|
||||
|
||||
@exitstatus
|
||||
Failure includes the case where no output is generated, so you can
|
||||
inspect the exit status of a command like @samp{df -t ext3 -t reiserfs
|
||||
@var{dir}} to test whether @var{dir} is on a file system of type
|
||||
@samp{ext3} or @samp{reiserfs}.
|
||||
|
||||
|
||||
@node du invocation
|
||||
|
23
src/df.c
23
src/df.c
@ -68,8 +68,8 @@ static uintmax_t output_block_size;
|
||||
/* If true, use the POSIX output format. */
|
||||
static bool posix_format;
|
||||
|
||||
/* Count the number of valid arguments. */
|
||||
static unsigned int n_valid_args;
|
||||
/* True if a file system has been processed for output. */
|
||||
static bool file_systems_processed;
|
||||
|
||||
/* If true, invoke the `sync' system call before getting any usage data.
|
||||
Using this option can make df very slow, especially with many or very
|
||||
@ -295,8 +295,6 @@ show_dev (char const *disk, char const *mount_point,
|
||||
if (!selected_fstype (fstype) || excluded_fstype (fstype))
|
||||
return;
|
||||
|
||||
++n_valid_args;
|
||||
|
||||
/* If MOUNT_POINT is NULL, then the file system is not mounted, and this
|
||||
program reports on the file system that the special file is on.
|
||||
It would be better to report on the unmounted file system,
|
||||
@ -314,6 +312,12 @@ show_dev (char const *disk, char const *mount_point,
|
||||
if (fsu.fsu_blocks == 0 && !show_all_fs && !show_listed_fs)
|
||||
return;
|
||||
|
||||
if (! file_systems_processed)
|
||||
{
|
||||
file_systems_processed = true;
|
||||
print_header ();
|
||||
}
|
||||
|
||||
if (! disk)
|
||||
disk = "-"; /* unknown */
|
||||
if (! fstype)
|
||||
@ -786,6 +790,7 @@ main (int argc, char **argv)
|
||||
&output_block_size);
|
||||
|
||||
print_type = false;
|
||||
file_systems_processed = false;
|
||||
posix_format = false;
|
||||
exit_status = EXIT_SUCCESS;
|
||||
|
||||
@ -928,20 +933,14 @@ main (int argc, char **argv)
|
||||
/* Display explicitly requested empty file systems. */
|
||||
show_listed_fs = true;
|
||||
|
||||
if (n_valid_args > 0)
|
||||
print_header ();
|
||||
|
||||
for (i = optind; i < argc; ++i)
|
||||
if (argv[i])
|
||||
show_entry (argv[i], &stats[i - optind]);
|
||||
}
|
||||
else
|
||||
{
|
||||
print_header ();
|
||||
show_all_entries ();
|
||||
}
|
||||
show_all_entries ();
|
||||
|
||||
if (n_valid_args == 0)
|
||||
if (! file_systems_processed)
|
||||
error (EXIT_FAILURE, 0, _("no file systems processed"));
|
||||
|
||||
exit (exit_status);
|
||||
|
@ -27,6 +27,7 @@ TESTS = \
|
||||
csplit \
|
||||
date \
|
||||
date-sec \
|
||||
df \
|
||||
dirname \
|
||||
expand \
|
||||
false-status \
|
||||
|
17
tests/misc/df
Executable file
17
tests/misc/df
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
# Ensure that "df ." outputs a header.
|
||||
|
||||
if test "$VERBOSE" = yes; then
|
||||
set -x
|
||||
df --version
|
||||
fi
|
||||
|
||||
case `df .` in
|
||||
*'
|
||||
'*)
|
||||
fail=0;;
|
||||
*)
|
||||
fail=1;;
|
||||
esac
|
||||
|
||||
(exit $fail); exit $fail
|
Loading…
Reference in New Issue
Block a user