summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Daniel Barkalow <barkalow@iabervon.org>2008-02-19 02:40:31 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-02-19 21:49:38 -0800
commit7d22708b254d4ec28cd865dc5489d175ee6d65c2 (patch)
tree378316b8f3dd966c90d8889de5fd1cb5c23a323d
parentAdd tests for extra headers in format-patch (diff)
downloadtgif-7d22708b254d4ec28cd865dc5489d175ee6d65c2.tar.xz
Fix format.headers not ending with a newline
Now each value of format.headers will always be treated as a single valid header, and newlines will be inserted between them as needed. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-log.c8
-rwxr-xr-xt/t4014-format-patch.sh2
2 files changed, 7 insertions, 3 deletions
diff --git a/builtin-log.c b/builtin-log.c
index 3dc765011c..fe1a2d78eb 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -425,10 +425,14 @@ static int git_format_config(const char *var, const char *value)
if (!value)
die("format.headers without value");
len = strlen(value);
- extra_headers_size += len + 1;
+ while (value[len - 1] == '\n')
+ len--;
+ extra_headers_size += len + 2;
extra_headers = xrealloc(extra_headers, extra_headers_size);
- extra_headers[extra_headers_size - len - 1] = 0;
+ extra_headers[extra_headers_size - len - 2] = 0;
strcat(extra_headers, value);
+ extra_headers[extra_headers_size - 2] = '\n';
+ extra_headers[extra_headers_size - 1] = 0;
return 0;
}
if (!strcmp(var, "format.suffix")) {
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 28ab7b9a53..755fe6dfa6 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -101,7 +101,7 @@ test_expect_success 'extra headers' '
'
-test_expect_failure 'extra headers without newlines' '
+test_expect_success 'extra headers without newlines' '
git config --replace-all format.headers "To: R. E. Cipient <rcipient@example.com>" &&
git config --add format.headers "Cc: S. E. Cipient <scipient@example.com>" &&