From: Bram Moolenaar Date: Mon, 20 May 2013 19:57:03 +0000 (+0200) Subject: updated for version 7.3.979 X-Git-Tag: v7.3.979 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e3c7b86aab8882a0c185c5e62c9f9f264e967a52;p=vim updated for version 7.3.979 Problem: Complex NFA regexp doesn't work. Solution: Set actual state stack end instead of using an arbitrary number. (Yasuhiro Matsumoto) --- diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index 142e1abe6..ef0148cf0 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -17,8 +17,6 @@ #define NFA_BRACES_MAXLIMIT 10 /* For allocating space for the postfix representation */ #define NFA_POSTFIX_MULTIPLIER (NFA_BRACES_MAXLIMIT + 2)*2 -/* Size of stack, used when converting the postfix regexp into NFA */ -#define NFA_STACK_SIZE 1024 enum { @@ -2160,9 +2158,9 @@ post2nfa(postfix, end, nfa_calc_size) if (nfa_calc_size == FALSE) { /* Allocate space for the stack. Max states on the stack : nstate */ - stack = (Frag_T *) lalloc((nstate + 1)*sizeof(Frag_T), TRUE); + stack = (Frag_T *) lalloc((nstate + 1) * sizeof(Frag_T), TRUE); stackp = stack; - stack_end = stack + NFA_STACK_SIZE; + stack_end = stack + (nstate + 1); } for (p = postfix; p < end; ++p) diff --git a/src/version.c b/src/version.c index 3b4353d93..6dc7e7ee5 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 */ +/**/ + 979, /**/ 978, /**/