Changeset 1765 in MondoRescue for branches/2.2.5/mindi-busybox/coreutils/cat.c


Ignore:
Timestamp:
Nov 4, 2007, 3:16:40 AM (16 years ago)
Author:
Bruno Cornec
Message:

Update to busybox 1.7.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.5/mindi-busybox/coreutils/cat.c

    r821 r1765  
    55 * Copyright (C) 2003  Manuel Novoa III  <mjn3@codepoet.org>
    66 *
    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.
    88 */
    99
     
    1111/* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */
    1212
    13 #include "busybox.h"
    14 #include <unistd.h>
     13#include "libbb.h"
    1514
    16 int cat_main(int argc, char **argv)
     15/* This is a NOFORK applet. Be very careful! */
     16
     17
     18int bb_cat(char **argv)
    1719{
    18     FILE *f;
     20    static const char *const argv_dash[] = { "-", NULL };
     21
     22    int fd;
    1923    int retval = EXIT_SUCCESS;
    2024
    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;
    2727
    2828    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)
    3338                continue;
    34             }
    3539        }
    3640        retval = EXIT_FAILURE;
     
    3943    return retval;
    4044}
     45
     46int cat_main(int argc, char **argv);
     47int 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.