From: Walter Lozano
> Sent: 26 January 2022 14:14
>
> In order to improve compatibility with GNU grep improve support for long
> options to busybox grep.
You've broken backwards compatibility by removing --color from
default builds.
There is also unnecessary duplication of source code.
Just use a #define and C string concatenation to add the extra
long option strings.
David
>
> Signed-off-by: Walter Lozano <[email protected]>
>
> ---
>
> Changes in v2:
> - Decouple FEATURE_GREP_CONTEXT from LONG_OPTS.
>
> findutils/grep.c | 43 +++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 41 insertions(+), 2 deletions(-)
>
> diff --git a/findutils/grep.c b/findutils/grep.c
> index 0b72812f1..4ae070a01 100644
> --- a/findutils/grep.c
> +++ b/findutils/grep.c
> @@ -720,17 +720,56 @@ int grep_main(int argc UNUSED_PARAM, char **argv)
>
> /* do normal option parsing */
> #if ENABLE_FEATURE_GREP_CONTEXT
> +#if !ENABLE_LONG_OPTS
> /* -H unsets -h; -C unsets -A,-B */
> - opts = getopt32long(argv, "^"
> + opts = getopt32(argv, "^"
> OPTSTR_GREP
> "\0"
> "H-h:C-AB",
> - "color\0" Optional_argument "\xff",
> &pattern_head, &fopt, &max_matches,
> &lines_after, &lines_before, &Copt
> , NULL
> );
> +#else
> + static const char grep_longopts[] ALIGN1 =
> + "with-filename\0" No_argument "H"
> + "no-filename\0" No_argument "h"
> + "line-number\0" No_argument "n"
> + "files-without-match\0" No_argument "L"
> + "files-with-matches\0" No_argument "l"
> + "count\0" No_argument "c"
> + "only-matching\0" No_argument "o"
> + "quiet\0" No_argument "q"
> + "silent\0" No_argument "q"
> + "invert-match\0" No_argument "v"
> + "no-messages\0" No_argument "s"
> + "recursive\0" No_argument "r"
> + "ignore-case\0" No_argument "i"
> + "word-regexp\0" No_argument "w"
> + "line-regexp\0" No_argument "x"
> + "fixed-strings\0" No_argument "F"
> + "extended-regexp\0" No_argument "E"
> + "null-data\0" No_argument "z"
> + "max-count\0" Required_argument "m"
> + "after-context\0" Required_argument "A"
> + "before-context\0" Required_argument "B"
> + "context\0" Required_argument "C"
> + "regexp\0" Required_argument "e"
> + "file\0" Required_argument "f"
> + "color\0" Optional_argument "\xff"
> + ;
>
> + /* -H unsets -h; -C unsets -A,-B */
> + opts = getopt32long(argv, "^"
> + OPTSTR_GREP
> + "\0"
> + "H-h:C-AB",
> + grep_longopts,
> + &pattern_head, &fopt, &max_matches,
> + &lines_after, &lines_before, &Copt
> + , NULL
> + );
> +#endif
> if (opts & OPT_C) {
> /* -C unsets prev -A and -B, but following -A or -B
> * may override it */
> --
> 2.25.1
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT,
UK
Registration No: 1397386 (Wales)
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox