projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use tmpfile() and revert my previous changes... convert() belongs here
[oweals/busybox.git]
/
coreutils
/
cat.c
diff --git
a/coreutils/cat.c
b/coreutils/cat.c
index 561b24f3f39f44ee12878e2865b059c1d5a597d1..aa8528d6ae53849930b4f7488d75cff5dadf53ef 100644
(file)
--- a/
coreutils/cat.c
+++ b/
coreutils/cat.c
@@
-2,7
+2,7
@@
/*
* Mini Cat implementation for busybox
*
/*
* Mini Cat implementation for busybox
*
- * Copyright (C) 1999,2000 by Lineo, inc.
+ * Copyright (C) 1999,2000
,2001
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
* Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
*
* This program is free software; you can redistribute it and/or modify
@@
-21,47
+21,27
@@
*
*/
*
*/
-#include "internal.h"
-#include <stdio.h>
-
-
-static void print_file(FILE * file)
-{
- int c;
-
- while ((c = getc(file)) != EOF)
- putc(c, stdout);
- fclose(file);
- fflush(stdout);
-}
+#include <stdlib.h>
+#include <string.h>
+#include "busybox.h"
extern int cat_main(int argc, char **argv)
{
extern int cat_main(int argc, char **argv)
{
-
FILE *file
;
+
int status = EXIT_SUCCESS
;
if (argc == 1) {
print_file(stdin);
if (argc == 1) {
print_file(stdin);
- exit(TRUE);
- }
-
- if (**(argv + 1) == '-') {
- usage("cat [FILE ...]\n"
-#ifndef BB_FEATURE_TRIVIAL_HELP
- "\nConcatenates FILE(s) and prints them to the standard output.\n"
-#endif
- );
+ return status;
}
}
- argc--;
- while (
argc-- > 0 && *(argv++) != '\0' && strlen(*argv)
) {
- 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);
}
}
-
exit(TRUE)
;
+
return status
;
}
/*
}
/*