X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=coreutils%2Fcat.c;h=aa8528d6ae53849930b4f7488d75cff5dadf53ef;hb=a6ce670a87ee77ccb9337ed6d87442134e1a48ed;hp=6c17ee620f728487cd0d3c3aef3aa74d1c4d1941;hpb=ac48461da9b04ecf8548f4a0497e3b622a0ae5f1;p=oweals%2Fbusybox.git diff --git a/coreutils/cat.c b/coreutils/cat.c index 6c17ee620..aa8528d6a 100644 --- a/coreutils/cat.c +++ b/coreutils/cat.c @@ -2,7 +2,7 @@ /* * Mini Cat implementation for busybox * - * Copyright (C) 1999,2000 by Lineo, inc. + * Copyright (C) 1999,2000,2001 by Lineo, inc. * Written by Erik Andersen , * * This program is free software; you can redistribute it and/or modify @@ -21,47 +21,27 @@ * */ -#include "internal.h" -#include - -static void print_file(FILE * file) -{ - int c; - - while ((c = getc(file)) != EOF) - putc(c, stdout); - fclose(file); - fflush(stdout); -} - -static const char cat_usage[] = - "cat [FILE]...\n" -#ifndef BB_FEATURE_TRIVIAL_HELP - "\nConcatenates FILE(s) and prints them to stdout.\n" -#endif - ; +#include +#include +#include "busybox.h" extern int cat_main(int argc, char **argv) { - FILE *file; + int status = EXIT_SUCCESS; if (argc == 1) { print_file(stdin); - exit(TRUE); + return status; } - if (**(argv + 1) == '-') - usage(cat_usage); - while (--argc > 0) { - file = fopen(*++argv, "r"); - if (file == NULL) { - perror(*argv); - exit(FALSE); + if(!(strcmp(*++argv, "-"))) { + print_file(stdin); + } else if (print_file_by_name(*argv) == FALSE) { + status = EXIT_FAILURE; } - print_file(file); } - return(TRUE); + return status; } /*