claenups for previous commit
[oweals/busybox.git] / coreutils / tail.c
index 39f87679e95db8523ddab7964269cd4786b3ebcc..7335ba11e2e51449bbe36fac307bafb36fde4945 100644 (file)
@@ -6,11 +6,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
-
-/* BB_AUDIT SUSv3 compliant (need fancy for -c) */
-/* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */
-/* http://www.opengroup.org/onlinepubs/007904975/utilities/tail.html */
-
 /* Mar 16, 2003      Manuel Novoa III   (mjn3@codepoet.org)
  *
  * Pretty much rewritten to fix numerous bugs and reduce realloc() calls.
  * 6) no check for lseek error
  * 7) lseek attempted when count==0 even if arg was +0 (from top)
  */
+//config:config TAIL
+//config:      bool "tail (7.1 kb)"
+//config:      default y
+//config:      help
+//config:      tail is used to print the last specified number of lines
+//config:      from files.
+//config:
+//config:config FEATURE_FANCY_TAIL
+//config:      bool "Enable -q, -s, -v, and -F options"
+//config:      default y
+//config:      depends on TAIL
+//config:      help
+//config:      These options are provided by GNU tail, but
+//config:      are not specified in the SUSv3 standard:
+//config:              -q      Never output headers giving file names
+//config:              -s SEC  Wait SEC seconds between reads with -f
+//config:              -v      Always output headers giving file names
+//config:              -F      Same as -f, but keep retrying
+
+//applet:IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
 
 //kbuild:lib-$(CONFIG_TAIL) += tail.o
 
+/* BB_AUDIT SUSv3 compliant (need fancy for -c) */
+/* BB_AUDIT GNU compatible -c, -q, and -v options in 'fancy' configuration. */
+/* http://www.opengroup.org/onlinepubs/007904975/utilities/tail.html */
+
 //usage:#define tail_trivial_usage
 //usage:       "[OPTIONS] [FILE]..."
 //usage:#define tail_full_usage "\n\n"
@@ -121,9 +140,11 @@ int tail_main(int argc, char **argv)
 #endif
 
        /* -s NUM, -F imlies -f */
-       IF_FEATURE_FANCY_TAIL(opt_complementary = "s+:Ff";)
-       opt = getopt32(argv, "fc:n:" IF_FEATURE_FANCY_TAIL("qs:vF"),
-                       &str_c, &str_n IF_FEATURE_FANCY_TAIL(,&sleep_period));
+       opt = getopt32(argv, IF_FEATURE_FANCY_TAIL("^")
+                       "fc:n:"IF_FEATURE_FANCY_TAIL("qs:+vF")
+                       IF_FEATURE_FANCY_TAIL("\0" "Ff"),
+                       &str_c, &str_n IF_FEATURE_FANCY_TAIL(,&sleep_period)
+       );
 #define FOLLOW (opt & 0x1)
 #define COUNT_BYTES (opt & 0x2)
        //if (opt & 0x1) // -f