[PATCH v2 09/13] config: format paths gently
- From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Feb 13, 2026, 23:55 UTC
- Message-ID
- <d1cfa0c5e1295d7b6655a0962bd47f8e89bc4a04.1771026918.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.2044.v2.git.1771026918.gitgitgadget@gmail.com>
From: Derrick Stolee <stolee@gmail.com>
Move the logic for formatting path config values into a helper method and use gentle parsing when needed.
Signed-off-by: Derrick Stolee <stolee@gmail.com> --- builtin/config.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/builtin/config.c b/builtin/config.c index 0c539ff98e..4664651dd2 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -314,6 +314,28 @@ static int format_config_bool_or_str(struct strbuf *buf, return 0; } +static int format_config_path(struct strbuf *buf, + const char *key_, + const char *value_, + int gently) +{ + char *v; + if (gently) { + if (git_parse_maybe_pathname(value_, &v) < 0) + return -1; + } else if (git_config_pathname(&v, key_, value_) < 0) { + return -1; + } + + if (v) + strbuf_addstr(buf, v); + else + return 1; /* :(optional)no-such-file */ + + free(v); + return 0; +} + /* * Format the configuration key-value pair (`key_`, `value_`) and * append it into strbuf `buf`. Returns a negative value on failure, @@ -347,16 +369,9 @@ static int format_config(const struct config_display_options *opts, res = format_config_bool_or_int(buf, key_, value_, kvi, gently); else if (opts->type == TYPE_BOOL_OR_STR) res = format_config_bool_or_str(buf, value_); - else if (opts->type == TYPE_PATH) { - char *v; - if (git_config_pathname(&v, key_, value_) < 0) - return -1; - if (v) - strbuf_addstr(buf, v); - else - return 1; /* :(optional)no-such-file */ - free((char *)v); - } else if (opts->type == TYPE_EXPIRY_DATE) { + else if (opts->type == TYPE_PATH) + res = format_config_path(buf, key_, value_, gently); + else if (opts->type == TYPE_EXPIRY_DATE) { timestamp_t t; if (git_config_expiry_date(&t, key_, value_) < 0) return -1;
-- gitgitgadget