summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/wc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/coreutils/wc.c b/coreutils/wc.c
index 94f1ee6..15c7692 100644
--- a/coreutils/wc.c
+++ b/coreutils/wc.c
@@ -143,11 +143,15 @@ int wc_main(int argc, char **argv)
return EXIT_SUCCESS;
} else {
while (optind < argc) {
- file = wfopen(argv[optind], "r");
- if (file != NULL)
+ if (print_type == print_chars) {
+ struct stat statbuf;
+ stat(argv[optind], &statbuf);
+ print_counts(0, 0, statbuf.st_size, 0, argv[optind]);
+ total_chars += statbuf.st_size;
+ } else {
+ file = xfopen(argv[optind], "r");
wc_file(file, argv[optind]);
- else
- status = EXIT_FAILURE;
+ }
num_files_counted++;
optind++;
}