Re: [PATCH v3 05/11] sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Jan 28, 2013, 02:21 UTC
- Message-ID
- <20130128022148.GG8206@elie.Belkin>
- In-Reply-To
- <1359335515-13818-6-git-send-email-drafnel@gmail.com>
Brandon Casey wrote:
Show 13 quoted lines
> Let's detect "(cherry picked from...)" as part of the footer so that we > will produce this: > > Signed-off-by: A U Thor <author@example.com> > (cherry picked from da39a3ee5e6b4b0d3255bfef95601890afd80709) > Signed-off-by: C O Mmitter <committer@example.com> > > instead of this: > > Signed-off-by: A U Thor <author@example.com> > (cherry picked from da39a3ee5e6b4b0d3255bfef95601890afd80709) > > Signed-off-by: C O Mmitter <committer@example.com>
Here's the tweak I suggested last time. I think its behavior is slightly better in the "ends with incomplete line" case because it limits the characters examined by is_rfc2822_line() and is_cherry_picked_from_line() not to include buf[len] (which would presumably sometimes be '\0').
diff --git i/sequencer.c w/sequencer.c index 0b5cd18c..fa29c7c5 100644 --- i/sequencer.c +++ w/sequencer.c @@ -1043,9 +1043,7 @@ static int is_cherry_picked_from_line(const char *buf, int len) /* * We only care that it looks roughly like (cherry picked from ...) */ - return !prefixcmp(buf, cherry_picked_prefix) && - (buf[len - 1] == ')' || - (buf[len - 1] == '\n' && buf[len - 2] == ')')); + return !prefixcmp(buf, cherry_picked_prefix) && buf[len - 1] == ')'; } static int has_conforming_footer(struct strbuf *sb, int ignore_footer) @@ -1072,8 +1070,8 @@ static int has_conforming_footer(struct strbuf *sb, int ignore_footer) ; /* do nothing */ k++; - if (!(is_rfc2822_line(buf + i, k - i) || - is_cherry_picked_from_line(buf + i, k - i))) + if (!is_rfc2822_line(buf + i, k - i - 1) && + !is_cherry_picked_from_line(buf + i, k - i - 1)) return 0; } return 1;