From: Bram Moolenaar Date: Wed, 5 Jun 2013 14:33:10 +0000 (+0200) Subject: updated for version 7.3.1120 X-Git-Tag: v7.3.1120 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b84ddcceae72c14c3f608006d305f9a8e00fefc;p=vim updated for version 7.3.1120 Problem: Crash when regexp logging is enabled. Solution: Avoid using NULL pointers. Advance over count argument. --- diff --git a/src/regexp.c b/src/regexp.c index 853d25573..bf640fce2 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -6538,10 +6538,16 @@ regdump(pattern, r) end = next; if (op == BRACE_LIMITS) { - /* Two short ints */ + /* Two ints */ fprintf(f, " minval %ld, maxval %ld", OPERAND_MIN(s), OPERAND_MAX(s)); s += 8; } + else if (op == BEHIND || op == NOBEHIND) + { + /* one int */ + fprintf(f, " count %ld", OPERAND_MIN(s)); + s += 4; + } s += 3; if (op == ANYOF || op == ANYOF + ADD_NL || op == ANYBUT || op == ANYBUT + ADD_NL diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index 4dea47c77..5873cfcc1 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -2960,10 +2960,15 @@ log_subexpr(sub) sub->list.multi[j].end.col, (int)sub->list.multi[j].end.lnum); else + { + char *s = (char *)sub->list.line[j].start; + char *e = (char *)sub->list.line[j].end; + fprintf(log_fd, "\n *** group %d, start: \"%s\", end: \"%s\"", j, - (char *)sub->list.line[j].start, - (char *)sub->list.line[j].end); + s == NULL ? "NULL" : s, + e == NULL ? "NULL" : e); + } fprintf(log_fd, "\n"); } #endif diff --git a/src/version.c b/src/version.c index 8bb135a33..f6585e1f2 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1120, /**/ 1119, /**/