summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2017-04-19 21:37:15 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-04-19 21:37:15 -0700
commit74a74beee9676a21c089f569b75d386398a4867b (patch)
treebf55b5ff0285cea7c7c9599ea0507d19c6d3326d
parentMerge branch 'bw/push-options-recursively-to-submodules' (diff)
parentmailinfo: fix in-body header continuations (diff)
downloadtgif-74a74beee9676a21c089f569b75d386398a4867b.tar.xz
Merge branch 'lt/mailinfo-in-body-header-continuation'
If a patch e-mail had its first paragraph after an in-body header indented (even after a blank line after the in-body header line), the indented line was mistook as a continuation of the in-body header. This has been fixed. * lt/mailinfo-in-body-header-continuation: mailinfo: fix in-body header continuations
-rw-r--r--mailinfo.c7
-rwxr-xr-xt/t4150-am.sh6
2 files changed, 10 insertions, 3 deletions
diff --git a/mailinfo.c b/mailinfo.c
index a489d9d0fb..68037758f2 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -757,8 +757,13 @@ static int handle_commit_msg(struct mailinfo *mi, struct strbuf *line)
assert(!mi->filter_stage);
if (mi->header_stage) {
- if (!line->len || (line->len == 1 && line->buf[0] == '\n'))
+ if (!line->len || (line->len == 1 && line->buf[0] == '\n')) {
+ if (mi->inbody_header_accum.len) {
+ flush_inbody_header_accum(mi);
+ mi->header_stage = 0;
+ }
return 0;
+ }
}
if (mi->use_inbody_headers && mi->header_stage) {
diff --git a/t/t4150-am.sh b/t/t4150-am.sh
index 89a5bacac5..44807e218d 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -983,7 +983,9 @@ test_expect_success 'am works with multi-line in-body headers' '
rm -fr .git/rebase-apply &&
git checkout -f first &&
echo one >> file &&
- git commit -am "$LONG" --author="$LONG <long@example.com>" &&
+ git commit -am "$LONG
+
+ Body test" --author="$LONG <long@example.com>" &&
git format-patch --stdout -1 >patch &&
# bump from, date, and subject down to in-body header
perl -lpe "
@@ -997,7 +999,7 @@ test_expect_success 'am works with multi-line in-body headers' '
git am msg &&
# Ensure that the author and full message are present
git cat-file commit HEAD | grep "^author.*long@example.com" &&
- git cat-file commit HEAD | grep "^$LONG"
+ git cat-file commit HEAD | grep "^$LONG$"
'
test_done