[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH] cmp: add support for -n
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2021-12-17 21:13:27
Message-ID: CAK1hOcNSc9r=WyK32u+UoU6T=U3urC4idRJaXBB8JgsGRcfLaw () mail ! gmail ! com
[Download RAW message or body]
Applied, thank you
On Thu, Nov 25, 2021 at 5:12 PM Walter Lozano
<walter.lozano@collabora.com> wrote:
>
> Add support to for "-n" to cmp in order to compare at most n bytes.
>
> Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
> ---
> editors/cmp.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/editors/cmp.c b/editors/cmp.c
> index e106d814e..e219f589a 100644
> --- a/editors/cmp.c
> +++ b/editors/cmp.c
> @@ -35,9 +35,10 @@ static const char fmt_differ[] ALIGN1 = "%s %s differ: char %"OFF_FMT"u, line %u
> // This fmt_l_opt uses gnu-isms. SUSv3 would be "%.0s%.0s%"OFF_FMT"u %o %o\n"
> static const char fmt_l_opt[] ALIGN1 = "%.0s%.0s%"OFF_FMT"u %3o %3o\n";
>
> -#define OPT_STR "sl"
> +#define OPT_STR "sln:"
> #define CMP_OPT_s (1<<0)
> #define CMP_OPT_l (1<<1)
> +#define CMP_OPT_n (1<<2)
>
> int cmp_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
> int cmp_main(int argc UNUSED_PARAM, char **argv)
> @@ -50,13 +51,16 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
> int c1, c2;
> unsigned opt;
> int retval = 0;
> + char * n_arg = NULL;
> + int max_count = -1;
>
> opt = getopt32(argv, "^"
> OPT_STR
> "\0" "-1"
> IF_DESKTOP(":?4")
> IF_NOT_DESKTOP(":?2")
> - ":l--s:s--l"
> + ":l--s:s--l",
> + &n_arg
> );
> argv += optind;
>
> @@ -90,6 +94,9 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
> else
> fmt = fmt_differ;
>
> + if (opt & CMP_OPT_n)
> + max_count = atoi(n_arg);
> +
> if (ENABLE_DESKTOP) {
> while (skip1) { getc(fp1); skip1--; }
> while (skip2) { getc(fp2); skip2--; }
> @@ -133,7 +140,7 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
> if (c1 == '\n') {
> ++line_pos;
> }
> - } while (c1 != EOF);
> + } while (c1 != EOF && (max_count == -1 || max_count >= 0 && char_pos < max_count));
>
> die_if_ferror(fp1, filename1);
> die_if_ferror(fp2, filename2);
> --
> 2.30.2
>
> _______________________________________________
> 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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic