Applied, thanks

On Thu, Jul 13, 2017 at 3:35 PM, Kang-Che Sung <explore...@gmail.com> wrote:
> When these options were introduced in d88f94a5df3a2edb8ba56fab5c13674b452f87ab
> it provides no config options to compile them out. Now provide one.
>
> Introduce config FEATURE_CATN.
>
> Signed-off-by: Kang-Che Sung <explore...@gmail.com>
> ---
>  coreutils/cat.c | 57 
> +++++++++++++++++++++++++++++++++++++--------------------
>  1 file changed, 37 insertions(+), 20 deletions(-)
>
> diff --git a/coreutils/cat.c b/coreutils/cat.c
> index 4d9147f8a..2510ae501 100644
> --- a/coreutils/cat.c
> +++ b/coreutils/cat.c
> @@ -13,6 +13,13 @@
>  //config:        cat is used to concatenate files and print them to the 
> standard
>  //config:        output. Enable this option if you wish to enable the 'cat' 
> utility.
>  //config:
> +//config:config FEATURE_CATN
> +//config:      bool "Enable -n and -b options"
> +//config:      default y
> +//config:      depends on CAT
> +//config:      help
> +//config:        -n numbers all output lines while -b numbers nonempty 
> output lines.
> +//config:
>  //config:config FEATURE_CATV
>  //config:      bool "cat -v[etA]"
>  //config:      default y
> @@ -27,12 +34,19 @@
>  /* BB_AUDIT SUSv3 compliant */
>  /* http://www.opengroup.org/onlinepubs/007904975/utilities/cat.html */
>
> +//usage:#if ENABLE_FEATURE_CATN || ENABLE_FEATURE_CATV
> +//usage:#define cat_trivial_usage
> +//usage:       "[-" IF_FEATURE_CATN("nb") IF_FEATURE_CATV("vteA") "] 
> [FILE]..."
> +//usage:#else
>  //usage:#define cat_trivial_usage
> -//usage:       "[-nb"IF_FEATURE_CATV("vteA")"] [FILE]..."
> +//usage:       "[FILE]..."
> +//usage:#endif
>  //usage:#define cat_full_usage "\n\n"
>  //usage:       "Print FILEs to stdout\n"
> +//usage:       IF_FEATURE_CATN(
>  //usage:     "\n       -n      Number output lines"
>  //usage:     "\n       -b      Number nonempty lines"
> +//usage:       )
>  //usage:       IF_FEATURE_CATV(
>  //usage:     "\n       -v      Show nonprinting characters as ^x or M-x"
>  //usage:     "\n       -t      ...and tabs as ^I"
> @@ -147,7 +161,7 @@ int cat_main(int argc UNUSED_PARAM, char **argv)
>
>         IF_FEATURE_CATV(opt_complementary = "Aetv"; /* -A == -vet */)
>         /* -u is ignored ("unbuffered") */
> -       opts = getopt32(argv, IF_FEATURE_CATV("etvA")"nbu");
> +       opts = getopt32(argv, IF_FEATURE_CATV("etvA") IF_FEATURE_CATN("nb") 
> "u");
>         argv += optind;
>
>  #if ENABLE_FEATURE_CATV
> @@ -157,23 +171,26 @@ int cat_main(int argc UNUSED_PARAM, char **argv)
>         opts >>= 4;
>  #endif
>
> -#define CAT_OPT_n (1<<0)
> -#define CAT_OPT_b (1<<1)
> -#define CAT_OPT_u (1<<2)
> -       if (!(opts & (CAT_OPT_n|CAT_OPT_b))) /* no -n or -b */
> -               return bb_cat(argv);
> +#if ENABLE_FEATURE_CATN
> +# define CAT_OPT_n (1<<0)
> +# define CAT_OPT_b (1<<1)
> +       if (opts & (CAT_OPT_n|CAT_OPT_b)) { /* -n or -b */
> +               if (!*argv)
> +                       *--argv = (char*)"-";
> +               ns.width = 6;
> +               ns.start = 1;
> +               ns.inc = 1;
> +               ns.sep = "\t";
> +               ns.empty_str = "\n";
> +               ns.all = !(opts & CAT_OPT_b); /* -n without -b */
> +               ns.nonempty = (opts & CAT_OPT_b); /* -b (with or without -n) 
> */
> +               do {
> +                       print_numbered_lines(&ns, *argv);
> +               } while (*++argv);
> +               fflush_stdout_and_exit(EXIT_SUCCESS);
> +       }
> +       opts >>= 2;
> +#endif
>
> -       if (!*argv)
> -               *--argv = (char*)"-";
> -       ns.width = 6;
> -       ns.start = 1;
> -       ns.inc = 1;
> -       ns.sep = "\t";
> -       ns.empty_str = "\n";
> -       ns.all = !(opts & CAT_OPT_b); /* -n without -b */
> -       ns.nonempty = (opts & CAT_OPT_b); /* -b (with or without -n) */
> -       do {
> -               print_numbered_lines(&ns, *argv);
> -       } while (*++argv);
> -       fflush_stdout_and_exit(EXIT_SUCCESS);
> +       return bb_cat(argv);
>  }
> --
> 2.13.0
>
> _______________________________________________
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to