mailinfo: fix in-body header continuations
An empty line should stop any pending in-body headers, and start the actual body parsing. This also modifies the original test for the in-body headers to actually have a real commit body that starts with spaces, and changes the test to check that the long line matches _exactly_, and doesn't get extra data from the body. Fixes:6b4b013f1884 ("mailinfo: handle in-body header continuations") Cc: Jonathan Tan <jonathantanmy@google.com> Cc: Jeff King <peff@peff.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4cff50b3fb
commit
fd1062e52e
@ -674,8 +674,13 @@ static int handle_commit_msg(struct mailinfo *mi, struct strbuf *line)
|
|||||||
assert(!mi->filter_stage);
|
assert(!mi->filter_stage);
|
||||||
|
|
||||||
if (mi->header_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;
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mi->use_inbody_headers && mi->header_stage) {
|
if (mi->use_inbody_headers && mi->header_stage) {
|
||||||
|
@ -983,7 +983,9 @@ test_expect_success 'am works with multi-line in-body headers' '
|
|||||||
rm -fr .git/rebase-apply &&
|
rm -fr .git/rebase-apply &&
|
||||||
git checkout -f first &&
|
git checkout -f first &&
|
||||||
echo one >> file &&
|
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 &&
|
git format-patch --stdout -1 >patch &&
|
||||||
# bump from, date, and subject down to in-body header
|
# bump from, date, and subject down to in-body header
|
||||||
perl -lpe "
|
perl -lpe "
|
||||||
@ -997,7 +999,7 @@ test_expect_success 'am works with multi-line in-body headers' '
|
|||||||
git am msg &&
|
git am msg &&
|
||||||
# Ensure that the author and full message are present
|
# 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 "^author.*long@example.com" &&
|
||||||
git cat-file commit HEAD | grep "^$LONG"
|
git cat-file commit HEAD | grep "^$LONG$"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user