X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cat.c;h=151ce4e61fa79ede7c05582e1262628a192f8d4d;hb=05ebdd03d4507bb92bff395906a3076fecc1010d;hp=f7a6bfa7b8df122f86358feab8c5491506260998;hpb=61677feff7f549a48267c2c0c50a7420de6e2599;p=oweals%2Fbusybox.git diff --git a/cat.c b/cat.c index f7a6bfa7b..151ce4e61 100644 --- a/cat.c +++ b/cat.c @@ -21,43 +21,26 @@ * */ -#include "internal.h" +#include "busybox.h" #include - -static void print_file(FILE * file) -{ - int c; - - while ((c = getc(file)) != EOF) - putc(c, stdout); - fclose(file); - fflush(stdout); -} - extern int cat_main(int argc, char **argv) { - FILE *file; + int status = EXIT_SUCCESS; if (argc == 1) { print_file(stdin); - exit(TRUE); - } - - if (**(argv + 1) == '-') { - usage("cat [file ...]\n"); + return status; } - argc--; - while (argc-- > 0 && *(argv++) != '\0' && strlen(*argv)) { - file = fopen(*argv, "r"); - if (file == NULL) { - perror(*argv); - exit(FALSE); + while (--argc > 0) { + if(!(strcmp(*++argv, "-"))) { + print_file(stdin); + } else if (print_file_by_name(*argv) == FALSE) { + status = EXIT_FAILURE; } - print_file(file); } - exit(TRUE); + return status; } /*