sequencer.c: rework search for start of footer to improve clarity

This code sequence is somewhat difficult to read. Let's rewrite it and add some comments to improve clarity. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Feb 12, 2013 at 02:17 UTC fa1727fb210bd8d0079af124222420d46fb70f81
1 file changed +6 -4
sequencer.c
+6 -4
@@ -1019,19 +1019,21 @@ int sequencer_pick_revisions(struct replay_opts *opts)
1019
1020 static int ends_rfc2822_footer(struct strbuf *sb, int ignore_footer)
1021 {
1022 - int ch;
1023 - int hit = 0;
1022 + char ch, prev;
1023 int i, j, k;
1024 int len = sb->len - ignore_footer;
1025 int first = 1;
1026 const char *buf = sb->buf;
1027
1028 + prev = '\0';
1029 for (i = len - 1; i > 0; i--) {
1030 - if (hit && buf[i] == '\n')
1030 + ch = buf[i];
1031 + if (prev == '\n' && ch == '\n') /* paragraph break */
1032 break;
1032 - hit = (buf[i] == '\n');
1033 + prev = ch;
1034 }
1035
1036 + /* advance to start of last paragraph */
1037 while (i < len - 1 && buf[i] == '\n')
1038 i++;
1039