Changeset 1770 in MondoRescue for branches/stable/mindi-busybox/coreutils/cat.c
- Timestamp:
- Nov 6, 2007, 11:01:53 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mindi-busybox/coreutils/cat.c
r821 r1770 5 5 * Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org> 6 6 * 7 * Licensed under GPLv2 or later, see file License in this tarball for details.7 * Licensed under GPLv2, see file License in this tarball for details. 8 8 */ 9 9 … … 11 11 /* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */ 12 12 13 #include "busybox.h" 14 #include <unistd.h> 13 #include "libbb.h" 15 14 16 int cat_main(int argc, char **argv) 15 /* This is a NOFORK applet. Be very careful! */ 16 17 18 int bb_cat(char **argv) 17 19 { 18 FILE *f; 20 static const char *const argv_dash[] = { "-", NULL }; 21 22 int fd; 19 23 int retval = EXIT_SUCCESS; 20 24 21 bb_getopt_ulflags(argc, argv, "u"); 22 23 argv += optind; 24 if (!*argv) { 25 *--argv = "-"; 26 } 25 if (!*argv) 26 argv = (char**) &argv_dash; 27 27 28 28 do { 29 if ((f = bb_wfopen_input(*argv)) != NULL) { 30 int r = bb_copyfd_eof(fileno(f), STDOUT_FILENO); 31 bb_fclose_nonstdin(f); 32 if (r >= 0) { 29 fd = STDIN_FILENO; 30 if (!LONE_DASH(*argv)) 31 fd = open_or_warn(*argv, O_RDONLY); 32 if (fd >= 0) { 33 /* This is not an xfunc - never exits */ 34 off_t r = bb_copyfd_eof(fd, STDOUT_FILENO); 35 if (fd != STDIN_FILENO) 36 close(fd); 37 if (r >= 0) 33 38 continue; 34 }35 39 } 36 40 retval = EXIT_FAILURE; … … 39 43 return retval; 40 44 } 45 46 int cat_main(int argc, char **argv); 47 int cat_main(int argc, char **argv) 48 { 49 getopt32(argv, "u"); 50 argv += optind; 51 return bb_cat(argv); 52 }
Note:
See TracChangeset
for help on using the changeset viewer.