commit, cherry-pick -s: remove broken support for multiline rfc2822 fields

Starting with c1e01b0c (commit: More generous accepting of RFC-2822 footer lines, 2009-10-28), "git commit -s" carefully parses the last paragraph of each commit message to check if it consists only of RFC2822-style headers, in which case the signoff will be added as a new line in the same list: Reported-by: Reporter <reporter@example.com> Signed-off-by: Author <author@example.com> Acked-by: Lieutenant <lt@example.com> It even included support for accepting indented continuation lines for multiline fields. Unfortunately the multiline field support is broken because it checks whether buf[k] (the first character of the *next* line) instead of buf[i] is a whitespace character. The result is that any footer with a continuation line is not accepted, since the last continuation line neither starts with an RFC2822 field name nor is followed by a continuation line. That this has remained broken for so long is good evidence that nobody actually needed multiline fields. Rip out the broken continuation support. There should be no functional change. [Thanks to Jonathan Nieder for the excellent commit message] Signed-off-by: Brandon Casey <bcasey@nvidia.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Brandon Casey committed Feb 12, 2013 at 02:17 UTC 9b1515220912b4e436145babf0b5887ecbfb0ac4
1 file changed -6
sequencer.c
-6
@@ -1022,7 +1022,6 @@ static int ends_rfc2822_footer(struct strbuf *sb, int ignore_footer)
1022 char ch, prev;
1023 int i, j, k;
1024 int len = sb->len - ignore_footer;
1025 - int first = 1;
1025 const char *buf = sb->buf;
1026
1027 prev = '\0';
@@ -1042,11 +1041,6 @@ static int ends_rfc2822_footer(struct strbuf *sb, int ignore_footer)
1041 ; /* do nothing */
1042 k++;
1043
1045 - if ((buf[k] == ' ' || buf[k] == '\t') && !first)
1046 - continue;
1047 -
1048 - first = 0;
1049 -
1044 for (j = 0; i + j < len; j++) {
1045 ch = buf[i + j];
1046 if (ch == ':')