X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=cat.c;h=1f4ef4af8ddce911d66d54d038ff81051b86ee54;hb=d0246fb72b40320a74376af1bb944fef2c9b734f;hp=12faf55abb01ef32d3cd8fbc7b728f99cb117b36;hpb=cc8ed39b240180b58810784f844e253263594ac3;p=oweals%2Fbusybox.git diff --git a/cat.c b/cat.c index 12faf55ab..1f4ef4af8 100644 --- a/cat.c +++ b/cat.c @@ -1,7 +1,8 @@ /* * Mini Cat implementation for busybox * - * Copyright (C) 1998 by Erik Andersen + * Copyright (C) 1999 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 @@ -22,16 +23,27 @@ #include "internal.h" #include -const char cat_usage[] = "[file ...]"; -extern int cat_more_main(int argc, char **argv) +static void print_file( FILE *file) { int c; - FILE *file = stdin; + while ((c = getc(file)) != EOF) + putc(c, stdout); + fclose(file); + fflush(stdout); +} + +extern int cat_main(int argc, char **argv) +{ + FILE *file; - if (argc < 2) { - fprintf(stderr, "Usage: %s %s", *argv, cat_usage); - return 1; + if (argc==1) { + print_file( stdin); + exit( TRUE); + } + + if ( **(argv+1) == '-' ) { + usage ("cat [file ...]\n"); } argc--; argv++; @@ -39,16 +51,12 @@ extern int cat_more_main(int argc, char **argv) while (argc-- > 0) { file = fopen(*argv, "r"); if (file == NULL) { - name_and_error(*argv); - return 1; + perror(*argv); + exit(FALSE); } - while ((c = getc(file)) != EOF) - putc(c, stdout); - fclose(file); - fflush(stdout); - + print_file( file); argc--; argv++; } - return 0; + exit(TRUE); }