Move the tail -c option from FANCY_TAIL to the default tail, this makes
authorGlenn L McGrath <bug1@ihug.co.nz>
Fri, 31 Oct 2003 00:35:59 +0000 (00:35 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Fri, 31 Oct 2003 00:35:59 +0000 (00:35 -0000)
the default tail options conform to SUSv3, with the non-SUS
option all in FANCY_TAIL

coreutils/Config.in
coreutils/tail.c

index 54bdc68..90f681c 100644 (file)
@@ -420,11 +420,12 @@ config CONFIG_TAIL
          from files.
 
 config CONFIG_FEATURE_FANCY_TAIL
-       bool "  Enable extra tail options (-c, -q, -s, and -v)"
+       bool "  Enable extra tail options (-q, -s, and -v)"
        default y
        depends on CONFIG_TAIL
        help
-         Enable tail options (-c, -q, -s, and -v).
+         The options (-q, -s, and -v) are provided by GNU tail, but
+         are not specific in the SUSv3 standard.
 
 config CONFIG_TEE
        bool "tee"
index 10b5cd7..d588ccd 100644 (file)
@@ -89,9 +89,9 @@ static ssize_t tail_read(int fd, char *buf, size_t count)
 }
 
 static const char tail_opts[] =
-       "fn:"
+       "fn:c:"
 #ifdef CONFIG_FEATURE_FANCY_TAIL
-       "c:qs:v"
+       "qs:v"
 #endif
        ;
 
@@ -104,9 +104,7 @@ int tail_main(int argc, char **argv)
        int from_top = 0;
        int follow = 0;
        int header_threshhold = 1;
-#ifdef CONFIG_FEATURE_FANCY_TAIL
        int count_bytes = 0;
-#endif
 
        char *tailbuf;
        size_t tailbufsize;
@@ -132,11 +130,9 @@ int tail_main(int argc, char **argv)
                        case 'f':
                                follow = 1;
                                break;
-#ifdef CONFIG_FEATURE_FANCY_TAIL
                        case 'c':
                                count_bytes = 1;
                                /* FALLS THROUGH */
-#endif
                        case 'n':
                        GET_COUNT:
                                count = bb_xgetlarg10_sfx(optarg, tail_suffixes);
@@ -201,7 +197,7 @@ int tail_main(int argc, char **argv)
        }
 
        tailbufsize = BUFSIZ;
-#ifdef CONFIG_FEATURE_FANCY_TAIL
+
        /* tail the files */
        if (from_top < count_bytes) {   /* Each is 0 or 1, so true iff 0 < 1. */
                /* Hence, !from_top && count_bytes */
@@ -209,7 +205,7 @@ int tail_main(int argc, char **argv)
                        tailbufsize = count + BUFSIZ;
                }
        }
-#endif
+
        buf = tailbuf = xmalloc(tailbufsize);
 
        fmt = header_fmt + 1;   /* Skip header leading newline on first output. */
@@ -237,13 +233,10 @@ int tail_main(int argc, char **argv)
                        if (from_top) {
                                nwrite = nread;
                                if (seen < count) {
-#ifdef CONFIG_FEATURE_FANCY_TAIL
                                        if (count_bytes) {
                                                nwrite -= (count - seen);
                                                seen = count;
-                                       } else
-#endif
-                                       {
+                                       } else {
                                                s = buf;
                                                do {
                                                        --nwrite;
@@ -255,16 +248,13 @@ int tail_main(int argc, char **argv)
                                }
                                tail_xbb_full_write(buf + nread - nwrite, nwrite);
                        } else if (count) {
-#ifdef CONFIG_FEATURE_FANCY_TAIL
                                if (count_bytes) {
                                        taillen += nread;
                                        if (taillen > count) {
                                                memmove(tailbuf, tailbuf + taillen - count, count);
                                                taillen = count;
                                        }
-                               } else
-#endif
-                               {
+                               } else {
                                        int k = nread;
                                        int nbuf = 0;