Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > I bisected it, and this bug was introduced almost two years ago. In commit > 3b6121f69b2 ("git-mailinfo: use strbuf's instead of fixed buffers"), to be > exact. I'm pretty sure the bug is that handle_commit_msg() was changed to > use 'strbuf_ltrim()' for the 'still_looking' case. > > Before commit 3b6121f69b2, it would create a new variable that had the > trimmed results ("char *cp = line;"), after that commit it would just trim > the line itself. Which is correct for the case of it being a header, but > if it's the first non-header line, it's wrong. True; trimming the body is obviously wrong. But when is it correct to ltrim a header line? It means we are going to accept a header (or header-looking line in body) that is indented. I don't know why 87ab799 (builtin-mailinfo.c 2007-03-12) was coded that way. builtin-mailinfo.c | 3 +-- t/t5100/msg0015 | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c index a50ac22..ce2ef6b 100644 --- a/builtin-mailinfo.c +++ b/builtin-mailinfo.c @@ -779,8 +779,7 @@ static int handle_commit_msg(struct strbuf *line) return 0; if (still_looking) { - strbuf_ltrim(line); - if (!line->len) + if (!line->len || (line->len == 1 && line->buf[0] == '\n')) return 0; } diff --git a/t/t5100/msg0015 b/t/t5100/msg0015 index 9577238..4abb3d5 100644 --- a/t/t5100/msg0015 +++ b/t/t5100/msg0015 @@ -1,2 +1,2 @@ -- a list + - a list - of stuff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html