[PATCH 3/9] imap-send: don't use git_die_config() inside callback
- From
Jeff King <peff@peff.net>
- Date
- Dec 7, 2023, 07:24 UTC
- Message-ID
- <20231207072458.GC1277973@coredump.intra.peff.net>
- In-Reply-To
- <20231207072338.GA1277727@coredump.intra.peff.net>
The point of git_die_config() is to let configset users mention the file/line info for invalid config, like:
if (!git_config_get_int("foo.bar", &value)) {
if (!is_ok(value))
git_die_config("foo.bar");
}Using it from within a config callback is unnecessary, because we can simply return an error, at which point the config machinery will mention the file/line of the offending variable. Worse, using git_die_config() can actually produce the wrong location when the key is found in multiple spots. For instance, with config like:
[imap] host host = foo
we'll report the line number of the "host = foo" line, but the problem is on the implicit-bool "host" line.
We can fix it by just returning an error code.
Signed-off-by: Jeff King <peff@peff.net> --- imap-send.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/imap-send.c b/imap-send.c index 996651e4f8..5b0fe4f95a 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) { - git_die_config("imap.host", "Missing value for 'imap.host'"); + return error("Missing value for 'imap.host'"); } else { if (starts_with(val, "imap:")) val += 5;
-- 2.43.0.664.ga12c899002