mailinfo: make is_scissors_line take plain char *

The is_scissors_line takes a struct strbuf * when a char * would suffice. Make it take char *. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Tan committed Sep 19, 2016 at 14:08 UTC 9c5681da88825c4320d3f7142ed320e6984c2377
1 file changed +18 -17
mailinfo.c
+18 -17
@@ -557,37 +557,35 @@ static inline int patchbreak(const struct strbuf *line)
557 return 0;
558 }
559
560 -static int is_scissors_line(const struct strbuf *line)
560 +static int is_scissors_line(const char *line)
561 {
562 - size_t i, len = line->len;
562 + const char *c;
563 int scissors = 0, gap = 0;
564 - int first_nonblank = -1;
565 - int last_nonblank = 0, visible, perforation = 0, in_perforation = 0;
566 - const char *buf = line->buf;
564 + const char *first_nonblank = NULL, *last_nonblank = NULL;
565 + int visible, perforation = 0, in_perforation = 0;
566
568 - for (i = 0; i < len; i++) {
569 - if (isspace(buf[i])) {
567 + for (c = line; *c; c++) {
568 + if (isspace(*c)) {
569 if (in_perforation) {
570 perforation++;
571 gap++;
572 }
573 continue;
574 }
576 - last_nonblank = i;
577 - if (first_nonblank < 0)
578 - first_nonblank = i;
579 - if (buf[i] == '-') {
575 + last_nonblank = c;
576 + if (first_nonblank == NULL)
577 + first_nonblank = c;
578 + if (*c == '-') {
579 in_perforation = 1;
580 perforation++;
581 continue;
582 }
584 - if (i + 1 < len &&
585 - (!memcmp(buf + i, ">8", 2) || !memcmp(buf + i, "8<", 2) ||
586 - !memcmp(buf + i, ">%", 2) || !memcmp(buf + i, "%<", 2))) {
583 + if ((!memcmp(c, ">8", 2) || !memcmp(c, "8<", 2) ||
584 + !memcmp(c, ">%", 2) || !memcmp(c, "%<", 2))) {
585 in_perforation = 1;
586 perforation += 2;
587 scissors += 2;
590 - i++;
588 + c++;
589 continue;
590 }
591 in_perforation = 0;
@@ -602,7 +600,10 @@ static int is_scissors_line(const struct strbuf *line)
600 * than half of the perforation.
601 */
602
605 - visible = last_nonblank - first_nonblank + 1;
603 + if (first_nonblank && last_nonblank)
604 + visible = last_nonblank - first_nonblank + 1;
605 + else
606 + visible = 0;
607 return (scissors && 8 <= visible &&
608 visible < perforation * 3 &&
609 gap * 2 < perforation);
@@ -647,7 +648,7 @@ static int handle_commit_msg(struct mailinfo *mi, struct strbuf *line)
648 if (convert_to_utf8(mi, line, mi->charset.buf))
649 return 0; /* mi->input_error already set */
650
650 - if (mi->use_scissors && is_scissors_line(line)) {
651 + if (mi->use_scissors && is_scissors_line(line->buf)) {
652 int i;
653
654 strbuf_setlen(&mi->log_message, 0);