diff --git a/src/du.c b/src/du.c index a8fb2ed10..df5088e30 100644 --- a/src/du.c +++ b/src/du.c @@ -928,8 +928,6 @@ main (int argc, char **argv) if (files_from) { - FILE *istream; - /* When using --files0-from=F, you may not specify any files on the command-line. */ if (optind < argc) @@ -940,14 +938,13 @@ main (int argc, char **argv) usage (EXIT_FAILURE); } - istream = (STREQ (files_from, "-") ? stdin : fopen (files_from, "r")); - if (istream == NULL) + if (! (STREQ (files_from, "-") || freopen (files_from, "r", stdin))) error (EXIT_FAILURE, errno, _("cannot open %s for reading"), quote (files_from)); readtokens0_init (&tok); - if (! readtokens0 (istream, &tok) || fclose (istream) != 0) + if (! readtokens0 (stdin, &tok) || fclose (stdin) != 0) error (EXIT_FAILURE, 0, _("cannot read file names from %s"), quote (files_from));