X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cat.c;h=aa8528d6ae53849930b4f7488d75cff5dadf53ef;hb=063c1f54eae3e1dcb8dd5c00ba9bf802357d3cb9;hp=8718c4d02d6078d6fdc5db6a34a231a771138ca8;hpb=2ce1edcf544ac675e6762c9861a6b918401ea716;p=oweals%2Fbusybox.git diff --git a/cat.c b/cat.c index 8718c4d02..aa8528d6a 100644 --- a/cat.c +++ b/cat.c @@ -1,7 +1,9 @@ +/* vi: set sw=4 ts=4: */ /* * Mini Cat implementation for busybox * - * Copyright (C) 1998 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 @@ -19,36 +21,33 @@ * */ -#include "internal.h" -#include +#include +#include +#include "busybox.h" -const char cat_usage[] = "[file ...]"; - -extern int cat_more_main(int argc, char **argv) +extern int cat_main(int argc, char **argv) { - int c; - FILE *file = stdin; - - if ( (argc < 2) || (**(argv+1) == '-') ) { - fprintf(stderr, "Usage: %s %s", *argv, cat_usage); - exit(FALSE); - } - argc--; - argv++; + int status = EXIT_SUCCESS; - while (argc-- > 0) { - file = fopen(*argv, "r"); - if (file == NULL) { - perror(*argv); - exit(FALSE); + if (argc == 1) { + print_file(stdin); + return status; } - while ((c = getc(file)) != EOF) - putc(c, stdout); - fclose(file); - fflush(stdout); - argc--; - argv++; - } - exit(TRUE); + while (--argc > 0) { + if(!(strcmp(*++argv, "-"))) { + print_file(stdin); + } else if (print_file_by_name(*argv) == FALSE) { + status = EXIT_FAILURE; + } + } + return status; } + +/* +Local Variables: +c-file-style: "linux" +c-basic-offset: 4 +tab-width: 4 +End: +*/