X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=coreutils%2Fcat.c;h=aa8528d6ae53849930b4f7488d75cff5dadf53ef;hb=a6ce670a87ee77ccb9337ed6d87442134e1a48ed;hp=da91d1db9dd63abd5b573505c0ce6149140e4650;hpb=887991c78a1e62beee123d58f6a47f93278f03c9;p=oweals%2Fbusybox.git diff --git a/coreutils/cat.c b/coreutils/cat.c index da91d1db9..aa8528d6a 100644 --- a/coreutils/cat.c +++ b/coreutils/cat.c @@ -1,8 +1,9 @@ +/* vi: set sw=4 ts=4: */ /* * Mini Cat implementation for busybox * - * Copyright (C) 1999 by Lineo, inc. - * Written by Erik Andersen , + * Copyright (C) 1999,2000,2001 by Lineo, inc. + * Written by Erik Andersen , * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,43 +21,33 @@ * */ -#include "internal.h" -#include - - -static void print_file( FILE *file) -{ - int c; - while ((c = getc(file)) != EOF) - putc(c, stdout); - fclose(file); - fflush(stdout); -} +#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); - } - - if ( **(argv+1) == '-' ) { - usage ("cat [file ...]\n"); - } - argc--; - argv++; + if (argc == 1) { + print_file(stdin); + return status; + } - while (argc-- > 0) { - 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); - argc--; - argv++; - } - exit(TRUE); + return status; } + +/* +Local Variables: +c-file-style: "linux" +c-basic-offset: 4 +tab-width: 4 +End: +*/