]> git.ipfire.org Git - thirdparty/git.git/blobdiff - xdiff-interface.c
Start the 2.46 cycle
[thirdparty/git.git] / xdiff-interface.c
index 3162f517434353609e1fa45ab67ea3cf4623f8a3..16ed8ac492856f141165296d523a319dfd1b4108 100644 (file)
@@ -305,6 +305,22 @@ int xdiff_compare_lines(const char *l1, long s1,
        return xdl_recmatch(l1, s1, l2, s2, flags);
 }
 
+int parse_conflict_style_name(const char *value)
+{
+       if (!strcmp(value, "diff3"))
+               return XDL_MERGE_DIFF3;
+       else if (!strcmp(value, "zdiff3"))
+               return XDL_MERGE_ZEALOUS_DIFF3;
+       else if (!strcmp(value, "merge"))
+               return 0;
+       /*
+        * Please update _git_checkout() in git-completion.bash when
+        * you add new merge config
+        */
+       else
+               return -1;
+}
+
 int git_xmerge_style = -1;
 
 int git_xmerge_config(const char *var, const char *value,
@@ -313,17 +329,8 @@ int git_xmerge_config(const char *var, const char *value,
        if (!strcmp(var, "merge.conflictstyle")) {
                if (!value)
                        return config_error_nonbool(var);
-               if (!strcmp(value, "diff3"))
-                       git_xmerge_style = XDL_MERGE_DIFF3;
-               else if (!strcmp(value, "zdiff3"))
-                       git_xmerge_style = XDL_MERGE_ZEALOUS_DIFF3;
-               else if (!strcmp(value, "merge"))
-                       git_xmerge_style = 0;
-               /*
-                * Please update _git_checkout() in
-                * git-completion.bash when you add new merge config
-                */
-               else
+               git_xmerge_style = parse_conflict_style_name(value);
+               if (git_xmerge_style == -1)
                        return error(_("unknown style '%s' given for '%s'"),
                                     value, var);
                return 0;