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>

Jeff King committed May 26, 2011 at 16:53 UTC 5b38456ec7bd0229bb35146ab8a905c4b63daeec
2 files changed +2 -2
builtin/mailinfo.c
+1 -1
@@ -400,7 +400,7 @@ static int read_one_header_line(struct strbuf *line, FILE *in)
400 break;
401 if (strbuf_getline(&continuation, in, '\n'))
402 break;
403 - continuation.buf[0] = '\n';
403 + continuation.buf[0] = ' ';
404 strbuf_rtrim(&continuation);
405 strbuf_addbuf(line, &continuation);
406 }
t/t4152-am-subjects.sh
+1 -1
@@ -58,7 +58,7 @@ test_expect_success 'long subject preserved (format-patch | am)' '
58 test_expect_success 'long subject preserved (format-patch -k | am)' '
59 check_subject long-k
60 '
61 -test_expect_failure 'long subject preserved (format-patch -k | am -k)' '
61 +test_expect_success 'long subject preserved (format-patch -k | am -k)' '
62 check_subject long-k -k
63 '
64