diff options
| -rw-r--r-- | mailinfo.c | 5 | ||||
| -rwxr-xr-x | t/t5100-mailinfo.sh | 15 |
2 files changed, 18 insertions, 2 deletions
diff --git a/mailinfo.c b/mailinfo.c index ee8d05e239..78f06da524 100644 --- a/mailinfo.c +++ b/mailinfo.c @@ -351,9 +351,10 @@ static inline int skip_header(const struct strbuf *line, const char *hdr, { const char *val; if (!skip_iprefix(line->buf, hdr, &val) || - *val++ != ':' || - !isspace(*val++)) + *val++ != ':') return 0; + while (isspace(*val)) + val++; *outval = val; return 1; } diff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh index 9690dcad4f..147e616533 100755 --- a/t/t5100-mailinfo.sh +++ b/t/t5100-mailinfo.sh @@ -213,4 +213,19 @@ test_expect_failure 'mailinfo -b separated double [PATCH]' ' test z"$subj" = z"Subject: [other] message" ' +test_expect_success 'mailinfo handles unusual header whitespace' ' + git mailinfo /dev/null /dev/null >actual <<-\EOF && + From:Real Name <user@example.com> + Subject: extra spaces + EOF + + cat >expect <<-\EOF && + Author: Real Name + Email: user@example.com + Subject: extra spaces + + EOF + test_cmp expect actual +' + test_done |
