use tmpfile() and revert my previous changes... convert() belongs here
[oweals/busybox.git] / coreutils / wc.c
index ca5b3680a70967b8b938faeef6e3d55b201049b3..695e7e7d4e4b765b1954d5ecb5d9ea11f1128a10 100644 (file)
  *
  */
 
-#include "internal.h"
 #include <stdio.h>
 #include <getopt.h>
+#include <string.h>
+#include <stdlib.h>
+#include "busybox.h"
 
 static int total_lines, total_words, total_chars, max_length;
 static int print_lines, print_words, print_chars, print_length;
 
-void print_counts(int lines, int words, int chars, int length,
-                                 const char *name)
+static void print_counts(int lines, int words, int chars, int length,
+                                                const char *name)
 {
        char const *space = "";
 
@@ -105,7 +107,7 @@ int wc_main(int argc, char **argv)
 {
        FILE *file;
        unsigned int num_files_counted = 0;
-       int opt;
+       int opt, status = EXIT_SUCCESS;
 
        total_lines = total_words = total_chars = max_length = 0;
        print_lines = print_words = print_chars = print_length = 0;
@@ -125,7 +127,7 @@ int wc_main(int argc, char **argv)
                                print_words = 1;
                                break;
                        default:
-                               usage(wc_usage);
+                               show_usage();
                        }
        }
 
@@ -134,14 +136,13 @@ int wc_main(int argc, char **argv)
 
        if (argv[optind] == NULL || strcmp(argv[optind], "-") == 0) {
                wc_file(stdin, "");
-               exit(TRUE);
+               return EXIT_SUCCESS;
        } else {
                while (optind < argc) {
-                       file = fopen(argv[optind], "r");
-                       if (file == NULL) {
-                               fatalError(argv[optind]);
-                       }
-                       wc_file(file, argv[optind]);
+                       if ((file = wfopen(argv[optind], "r")) != NULL)
+                               wc_file(file, argv[optind]);
+                       else
+                               status = EXIT_FAILURE;
                        num_files_counted++;
                        optind++;
                }
@@ -151,5 +152,5 @@ int wc_main(int argc, char **argv)
                print_counts(total_lines, total_words, total_chars,
                                         max_length, "total");
 
-       return ;
+       return status;
 }