Re: [PATCH 5/5] diff: simplify parsing of diff.colormovedws

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 31, 2025 at 2:40 AM Junio C Hamano <gitster@xxxxxxxxx> wrote:
> The code to parse this configuration variable, whose value is a
> comma separated known tokens like "ignore-space-change" and
> "ignore-all-space", uses string_list_split() to split the value int
> pieces, and then places each piece of string in a strbuf to trim,
> before comparing the result with the list of known tokens.

s/int/into/

> Thanks to the previous steps, now string_list_split() knows to trim
> the resulting pieces in the string list.  Use it to simplify the
> code.
>
> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx>
> ---
> diff --git a/diff.c b/diff.c
> @@ -327,29 +327,23 @@ static unsigned parse_color_moved_ws(const char *arg)
> -       string_list_split(&l, arg, ",", -1);
> +       string_list_split_f(&l, arg, ",", -1, STRING_LIST_SPLIT_TRIM);
>
>         for_each_string_list_item(i, &l) {
> -               struct strbuf sb = STRBUF_INIT;
> -               strbuf_addstr(&sb, i->string);
> -               strbuf_trim(&sb);
> -
> -               if (!strcmp(sb.buf, "no"))
> +               if (!strcmp(i->string, "no"))
>                         ret = 0;
> -               else if (!strcmp(sb.buf, "ignore-space-change"))
> +               else if (!strcmp(i->string, "ignore-space-change"))
>                         ret |= XDF_IGNORE_WHITESPACE_CHANGE;
> -               else if (!strcmp(sb.buf, "ignore-space-at-eol"))
> +               else if (!strcmp(i->string, "ignore-space-at-eol"))
>                         ret |= XDF_IGNORE_WHITESPACE_AT_EOL;
> -               else if (!strcmp(sb.buf, "ignore-all-space"))
> +               else if (!strcmp(i->string, "ignore-all-space"))
>                         ret |= XDF_IGNORE_WHITESPACE;
> -               else if (!strcmp(sb.buf, "allow-indentation-change"))
> +               else if (!strcmp(i->string, "allow-indentation-change"))
>                         ret |= COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE;
>                 else {
>                         ret |= COLOR_MOVED_WS_ERROR;
> -                       error(_("unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-change'"), sb.buf);
> +                       error(_("unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-change'"), i->string);
>                 }
> -
> -               strbuf_release(&sb);
>         }

An unfortunately noisy diff, but it can't be helped. The end result is
a pleasant improvement.





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux