From 22e27413eee9ff3bcbd3c7e8f3a8d1a40650e1b2 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 7 Dec 2023 02:24:49 -0500 Subject: git_xmerge_config(): prefer error() to die() When parsing merge config, a few code paths die on error. It's preferable for us to call error() here, because the resulting error message from the config parsing code contains much more detail. For example, before: fatal: unknown style 'bogus' given for 'merge.conflictstyle' and after: error: unknown style 'bogus' given for 'merge.conflictstyle' fatal: bad config variable 'merge.conflictstyle' in file '.git/config' at line 7 Since we're touching these lines, I also marked them for translation. There's no reason they shouldn't behave like most other config-parsing errors. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- xdiff-interface.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'xdiff-interface.c') diff --git a/xdiff-interface.c b/xdiff-interface.c index adcea109fa..05d6475a09 100644 --- a/xdiff-interface.c +++ b/xdiff-interface.c @@ -1,4 +1,5 @@ #include "git-compat-util.h" +#include "gettext.h" #include "config.h" #include "hex.h" #include "object-store-ll.h" @@ -313,7 +314,7 @@ int git_xmerge_config(const char *var, const char *value, { if (!strcmp(var, "merge.conflictstyle")) { if (!value) - die("'%s' is not a boolean", var); + return error(_("'%s' is not a boolean"), var); if (!strcmp(value, "diff3")) git_xmerge_style = XDL_MERGE_DIFF3; else if (!strcmp(value, "zdiff3")) @@ -325,8 +326,8 @@ int git_xmerge_config(const char *var, const char *value, * git-completion.bash when you add new merge config */ else - die("unknown style '%s' given for '%s'", - value, var); + return error(_("unknown style '%s' given for '%s'"), + value, var); return 0; } return git_default_config(var, value, ctx, cb); -- cgit v1.3-5-g9baa From 92cecce0de87aa8cc54c3a9671554cb64a7c72fa Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 7 Dec 2023 02:25:16 -0500 Subject: config: use config_error_nonbool() instead of custom messages A few config callbacks use their own custom messages to report an unexpected implicit bool like: [merge "foo"] driver These should just use config_error_nonbool(), so the user sees consistent messages. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- imap-send.c | 2 +- merge-ll.c | 2 +- xdiff-interface.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'xdiff-interface.c') diff --git a/imap-send.c b/imap-send.c index 5b0fe4f95a..9c4df7bbc8 100644 --- a/imap-send.c +++ b/imap-send.c @@ -1346,7 +1346,7 @@ static int git_imap_config(const char *var, const char *val, server.port = git_config_int(var, val, ctx->kvi); else if (!strcmp("imap.host", var)) { if (!val) { - return error("Missing value for 'imap.host'"); + return config_error_nonbool(var); } else { if (starts_with(val, "imap:")) val += 5; diff --git a/merge-ll.c b/merge-ll.c index 8fcf2d3710..1df58ebaac 100644 --- a/merge-ll.c +++ b/merge-ll.c @@ -301,7 +301,7 @@ static int read_merge_config(const char *var, const char *value, if (!strcmp("driver", key)) { if (!value) - return error("%s: lacks value", var); + return config_error_nonbool(var); /* * merge..driver specifies the command line: * diff --git a/xdiff-interface.c b/xdiff-interface.c index 05d6475a09..d788689d01 100644 --- a/xdiff-interface.c +++ b/xdiff-interface.c @@ -314,7 +314,7 @@ int git_xmerge_config(const char *var, const char *value, { if (!strcmp(var, "merge.conflictstyle")) { if (!value) - return error(_("'%s' is not a boolean"), var); + return config_error_nonbool(var); if (!strcmp(value, "diff3")) git_xmerge_style = XDL_MERGE_DIFF3; else if (!strcmp(value, "zdiff3")) -- cgit v1.3-5-g9baa