diff --git a/terminal.c b/terminal.c index 0329df85..d025a448 100644 --- a/terminal.c +++ b/terminal.c @@ -461,9 +461,10 @@ static void makerle(strbuf *b, termline *ldata, oldstate = state; makeliteral(b, c, &state); tmplen = b->len - tmppos; + bool match = tmplen == thislen && + !memcmp(b->u + runpos+1, b->u + tmppos, tmplen); strbuf_shrink_to(b, tmppos); - if (tmplen != thislen || - memcmp(b->u + runpos+1, b->u + tmppos, tmplen)) { + if (!match) { state = oldstate; break; /* run over */ }