Hi, On Tue, Nov 03, 2009 at 10:11:21PM -0800, Junio C Hamano wrote: > That looks overly convoluted. I figured that the function ends_rfc2822_footer() should tell us whether the message, well, ends with an rfc2822 _footer_. But since it may say so even if there is only a single line in the commit message, I thought this function should be fixed in the first place. But yeah, that solution was unnecessarily complicated, after a good night's sleep I would do it this way: diff --git a/builtin-commit.c b/builtin-commit.c index beddf01..c7dcbd0 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -428,6 +428,8 @@ static int ends_rfc2822_footer(struct strbuf *sb) break; hit = (buf[i] == '\n'); } + if (i == 0) /* one-line message */ + return 0; while (i < len - 1 && buf[i] == '\n') i++; > Why isn't the attached patch enough? > > - We inspected the last line of the message buffer, and 'i' is at the > beginning of that last line; > > - At the line that begins at 'i', we found something that does not match > the sob we are going to add; > > - We want a newline if it is a single liner (i.e. i == 0), or if that > last one is not sob/acked-by and friends. You are right in that there is no need to look for an rfc-2822 formatted footer when the commit message has only a single line. But ends_rfc2822_footer() still not completely behaves as its name would suggest (i.e. it might match even if there is no footer). Perhaps it could just be renamed to ends_rfc282(). Best, Gábor -- 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