diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-04-20 07:37:15 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-04-20 07:37:15 +0300 |
commit | 74a74beee9676a21c089f569b75d386398a4867b (patch) | |
tree | bf55b5ff0285cea7c7c9599ea0507d19c6d3326d | |
parent | 872e2cf00a570e9d83e40343579a7bb092307d53 (diff) | |
parent | fd1062e52e1a7ed3be443a320708ed849958c1bf (diff) |
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.c | 7 | ||||
-rwxr-xr-x | t/t4150-am.sh | 6 |
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 |