]> git.ipfire.org Git - thirdparty/git.git/commit - http.c
config: pass kvi to die_bad_number()
authorGlen Choo <chooglen@google.com>
Wed, 28 Jun 2023 19:26:27 +0000 (19:26 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 28 Jun 2023 21:06:40 +0000 (14:06 -0700)
commit8868b1ebfb8274a3ef90e1ba69ed45be94f6c3fb
tree24c7285d318bc7573aa6e89efcc8edf3e1d74f0d
parentdc9020849773393e47c37c2834a5582374b55ecc
config: pass kvi to die_bad_number()

Plumb "struct key_value_info" through all code paths that end in
die_bad_number(), which lets us remove the helper functions that read
analogous values from "struct config_reader". As a result, nothing reads
config_reader.config_kvi any more, so remove that too.

In config.c, this requires changing the signature of
git_configset_get_value() to 'return' "kvi" in an out parameter so that
git_configset_get_<type>() can pass it to git_config_<type>(). Only
numeric types will use "kvi", so for non-numeric types (e.g.
git_configset_get_string()), pass NULL to indicate that the out
parameter isn't needed.

Outside of config.c, config callbacks now need to pass "ctx->kvi" to any
of the git_config_<type>() functions that parse a config string into a
number type. Included is a .cocci patch to make that refactor.

The only exceptional case is builtin/config.c, where git_config_<type>()
is called outside of a config callback (namely, on user-provided input),
so config source information has never been available. In this case,
die_bad_number() defaults to a generic, but perfectly descriptive
message. Let's provide a safe, non-NULL for "kvi" anyway, but make sure
not to change the message.

Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
27 files changed:
archive-tar.c
builtin/commit-graph.c
builtin/commit.c
builtin/config.c
builtin/fetch.c
builtin/fsmonitor--daemon.c
builtin/grep.c
builtin/index-pack.c
builtin/log.c
builtin/pack-objects.c
builtin/receive-pack.c
builtin/submodule--helper.c
config.c
config.h
contrib/coccinelle/git_config_number.cocci [new file with mode: 0644]
diff.c
fmt-merge-msg.c
help.c
http.c
imap-send.c
sequencer.c
setup.c
submodule-config.c
submodule-config.h
t/helper/test-config.c
upload-pack.c
worktree.c