format.attach: allow empty value to disable multi-part messages

When a lower precedence configuration file (e.g. /etc/gitconfig)
defines format.attach in any way, there was no way to disable it in
a more specific configuration file (e.g. $HOME/.gitconfig).

Change the behaviour of setting it to an empty string.  It used to
mean that the result is still a multipart message with only dashes
used as a multi-part separator, but now it resets the setting to
the default (which would be to give an inline patch, unless other
command line options are in effect).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2023-02-17 15:33:37 -08:00
parent d9d677b2d8
commit 50bebf98d9
3 changed files with 22 additions and 1 deletions

View File

@ -1007,6 +1007,8 @@ static int git_format_config(const char *var, const char *value, void *cb)
if (!strcmp(var, "format.attach")) {
if (value && *value)
default_attach = xstrdup(value);
else if (value && !*value)
FREE_AND_NULL(default_attach);
else
default_attach = xstrdup(git_version_string);
return 0;