/*
* Mini Cat implementation for busybox
*
- * Copyright (C) 1998 by Erik Andersen <andersee@debian.org>
+ * Copyright (C) 1999 by Lineo, inc.
+ * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
*
* 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
#include "internal.h"
#include <stdio.h>
-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++;
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);
}