mailinfo: always clean up rfc822 header folding

Without the "-k" option, mailinfo will convert a folded
subject header like:

  Subject: this is a
    subject that doesn't
    fit on one line

into a single line. With "-k", however, we assumed that
these newlines were significant and represented something
that the sending side would want us to preserve.

For messages created by format-patch, this assumption was
broken by a1f6baa (format-patch: wrap long header lines,
2011-02-23).  For messages sent by arbitrary MUAs, this was
probably never a good assumption to make, as they may have
been folding subjects in accordance with rfc822's line
length recommendations all along.

This patch now joins folded lines with a single whitespace
character. This treats header folding purely as a syntactic
feature of the transport mechanism, not as something that
format-patch is trying to tell us about the original
subject.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2011-05-26 16:53:38 -04:00 committed by Junio C Hamano
parent 00ebc97748
commit 5b38456ec7
2 changed files with 2 additions and 2 deletions

View file

@ -400,7 +400,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
break;
if (strbuf_getline(&continuation, in, '\n'))
break;
continuation.buf[0] = '\n';
continuation.buf[0] = ' ';
strbuf_rtrim(&continuation);
strbuf_addbuf(line, &continuation);
}

View file

@ -58,7 +58,7 @@ test_expect_success 'long subject preserved (format-patch | am)' '
test_expect_success 'long subject preserved (format-patch -k | am)' '
check_subject long-k
'
test_expect_failure 'long subject preserved (format-patch -k | am -k)' '
test_expect_success 'long subject preserved (format-patch -k | am -k)' '
check_subject long-k -k
'