mailinfo: make ">From" in-body header check more robust
commit2da1f36671c3e3e28eba6a56d92249b6671c07d3
authorJeff King <peff@peff.net>
Sun, 14 Sep 2014 01:30:38 +0000 (13 21:30 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 16 Sep 2014 18:05:46 +0000 (16 11:05 -0700)
treebbb858c3e6190eed37c8ef9115c78e082707d645
parent96db324a73fdada6fbe7b63221986f8f18cc63b0
mailinfo: make ">From" in-body header check more robust

Since commit 81c5cf7 (mailinfo: skip bogus UNIX From line inside
body, 2006-05-21), we have treated lines like ">From" in the body as
headers. This makes "git am" work for people who erroneously paste
the whole output from format-patch:

  From 12345abcd...fedcba543210 Mon Sep 17 00:00:00 2001
  From: them
  Subject: [PATCH] whatever

into their email body (assuming that an mbox writer then quotes
"From" as ">From", as otherwise we would actually mailsplit on the
in-body line).

However, this has false positives if somebody actually has a commit
body that starts with "From "; in this case we erroneously remove
the line entirely from the commit message. We can make this check
more robust by making sure the line actually looks like a real mbox
"From" line.

Inspect the line that begins with ">From " a more carefully to only
skip lines that match the expected pattern (note that the datestamp
part of the format-patch output is designed to be kept constant to
help those who write magic(5) entries).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/mailinfo.c
t/t5100-mailinfo.sh
t/t5100/embed-from.expect [new file with mode: 0644]
t/t5100/embed-from.in [new file with mode: 0644]
t/t5100/quoted-from.expect [new file with mode: 0644]
t/t5100/quoted-from.in [new file with mode: 0644]