forked from aniani/vim
patch 8.1.0192: executing regexp recursively fails with a crash
Problem: Executing regexp recursively fails with a crash. Solution: Move global variables into "rex".
This commit is contained in:
405
src/regexp.c
405
src/regexp.c
File diff suppressed because it is too large
Load Diff
11
src/regexp.h
11
src/regexp.h
@@ -50,8 +50,9 @@ typedef struct regprog
|
|||||||
{
|
{
|
||||||
regengine_T *engine;
|
regengine_T *engine;
|
||||||
unsigned regflags;
|
unsigned regflags;
|
||||||
unsigned re_engine; /* automatic, backtracking or nfa engine */
|
unsigned re_engine; // automatic, backtracking or nfa engine
|
||||||
unsigned re_flags; /* second argument for vim_regcomp() */
|
unsigned re_flags; // second argument for vim_regcomp()
|
||||||
|
int re_in_use; // prog is being executed
|
||||||
} regprog_T;
|
} regprog_T;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -65,7 +66,8 @@ typedef struct
|
|||||||
regengine_T *engine;
|
regengine_T *engine;
|
||||||
unsigned regflags;
|
unsigned regflags;
|
||||||
unsigned re_engine;
|
unsigned re_engine;
|
||||||
unsigned re_flags; /* second argument for vim_regcomp() */
|
unsigned re_flags;
|
||||||
|
int re_in_use;
|
||||||
|
|
||||||
int regstart;
|
int regstart;
|
||||||
char_u reganch;
|
char_u reganch;
|
||||||
@@ -101,7 +103,8 @@ typedef struct
|
|||||||
regengine_T *engine;
|
regengine_T *engine;
|
||||||
unsigned regflags;
|
unsigned regflags;
|
||||||
unsigned re_engine;
|
unsigned re_engine;
|
||||||
unsigned re_flags; /* second argument for vim_regcomp() */
|
unsigned re_flags;
|
||||||
|
int re_in_use;
|
||||||
|
|
||||||
nfa_state_T *start; /* points into state[] */
|
nfa_state_T *start; /* points into state[] */
|
||||||
|
|
||||||
|
419
src/regexp_nfa.c
419
src/regexp_nfa.c
File diff suppressed because it is too large
Load Diff
@@ -789,6 +789,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
192,
|
||||||
/**/
|
/**/
|
||||||
191,
|
191,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user