]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff: simplify parsing of diff.colormovedws
authorJunio C Hamano <gitster@pobox.com>
Fri, 1 Aug 2025 22:04:21 +0000 (15:04 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 3 Aug 2025 05:34:45 +0000 (22:34 -0700)
The code to parse this configuration variable, whose value is a
comma-separated list of known tokens like "ignore-space-change" and
"ignore-all-space", uses string_list_split() to split the value into
pieces, and then places each piece of string in a strbuf to trim,
before comparing the result with the list of known tokens.

Thanks to the previous steps, now string_list_split() can trim the
resulting pieces before it places them in the string list.  Use it
to simplify the code.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c

diff --git a/diff.c b/diff.c
index a81949a422065526a9fff4625fabc2d4c4ffdc95..70666ad2cd1ca6bd15923587d374d8b0219b5745 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -327,29 +327,23 @@ static unsigned parse_color_moved_ws(const char *arg)
        struct string_list l = STRING_LIST_INIT_DUP;
        struct string_list_item *i;
 
-       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);
        }
 
        if ((ret & COLOR_MOVED_WS_ALLOW_INDENTATION_CHANGE) &&