- remove nested function. Saves ~30 bytes.
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 24 Jan 2007 21:38:10 +0000 (21:38 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 24 Jan 2007 21:38:10 +0000 (21:38 -0000)
coreutils/tail.c

index 4baffee..f1ba04e 100644 (file)
@@ -62,11 +62,17 @@ static ssize_t tail_read(int fd, char *buf, size_t count)
 
 static const char header_fmt[] = "\n==> %s <==\n";
 
+static unsigned eat_num(const char *p) {
+       if (*p == '-') p++;
+       else if (*p == '+') { p++; status = 1; }
+       return xatou_sfx(p, tail_suffixes);
+}
+
 int tail_main(int argc, char **argv)
 {
        unsigned count = 10;
        unsigned sleep_period = 1;
-       bool from_top = 0;
+       bool from_top;
        int header_threshhold = 1;
        const char *str_c, *str_n, *str_s;
 
@@ -80,13 +86,6 @@ int tail_main(int argc, char **argv)
        char *s, *buf;
        const char *fmt;
 
-       void eat_num(const char *p) {
-               if (*p == '-') p++;
-               else if (*p == '+') { p++; from_top = 1; }
-               count = xatou_sfx(p, tail_suffixes);
-       }
-
-
 #if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_TAIL
        /* Allow legacy syntax of an initial numeric option without -n. */
        if (argc >= 2 && (argv[1][0] == '+' || argv[1][0] == '-')
@@ -102,8 +101,8 @@ int tail_main(int argc, char **argv)
 #define FOLLOW (opt & 0x1)
 #define COUNT_BYTES (opt & 0x2)
        //if (opt & 0x1) // -f
-       if (opt & 0x2) eat_num(str_c); // -c
-       if (opt & 0x4) eat_num(str_n); // -n
+       if (opt & 0x2) count = eat_num(str_c); // -c
+       if (opt & 0x4) count = eat_num(str_n); // -n
 #if ENABLE_FEATURE_FANCY_TAIL
        if (opt & 0x8) header_threshhold = INT_MAX; // -q
        if (opt & 0x10) sleep_period = xatou(str_s); // -s
@@ -111,10 +110,11 @@ int tail_main(int argc, char **argv)
 #endif
        argc -= optind;
        argv += optind;
+       from_top = status;
 
        /* open all the files */
        fds = xmalloc(sizeof(int) * (argc + 1));
-       nfiles = i = 0;
+       status = nfiles = i = 0;
        if (argc == 0) {
                struct stat statbuf;