1
0
forked from aniani/vim

updated for version 7.3.1132

Problem:    Crash when debugging regexp.
Solution:   Do not try to dump subexpr that were not set.  Skip over count of
            \% items.
This commit is contained in:
Bram Moolenaar
2013-06-06 18:04:51 +02:00
parent 188c57bcd1
commit 6d3a5d755a
3 changed files with 11 additions and 2 deletions

View File

@@ -6548,6 +6548,12 @@ regdump(pattern, r)
fprintf(f, " count %ld", OPERAND_MIN(s)); fprintf(f, " count %ld", OPERAND_MIN(s));
s += 4; s += 4;
} }
else if (op == RE_LNUM || op == RE_COL || op == RE_VCOL)
{
/* one int plus comperator */
fprintf(f, " count %ld", OPERAND_MIN(s));
s += 5;
}
s += 3; s += 3;
if (op == ANYOF || op == ANYOF + ADD_NL if (op == ANYOF || op == ANYOF + ADD_NL
|| op == ANYBUT || op == ANYBUT + ADD_NL || op == ANYBUT || op == ANYBUT + ADD_NL

View File

@@ -256,7 +256,7 @@ static int nfa_alt_listid;
/* 0 for first call to nfa_regmatch(), 1 for recursive call. */ /* 0 for first call to nfa_regmatch(), 1 for recursive call. */
static int nfa_ll_index = 0; static int nfa_ll_index = 0;
static int nfa_regcomp_start __ARGS((char_u*expr, int re_flags)); static int nfa_regcomp_start __ARGS((char_u *expr, int re_flags));
static int nfa_recognize_char_class __ARGS((char_u *start, char_u *end, int extra_newl)); static int nfa_recognize_char_class __ARGS((char_u *start, char_u *end, int extra_newl));
static int nfa_emit_equi_class __ARGS((int c, int neg)); static int nfa_emit_equi_class __ARGS((int c, int neg));
static int nfa_regatom __ARGS((void)); static int nfa_regatom __ARGS((void));
@@ -2927,7 +2927,8 @@ log_subsexpr(subs)
{ {
log_subexpr(&subs->norm); log_subexpr(&subs->norm);
# ifdef FEAT_SYN_HL # ifdef FEAT_SYN_HL
log_subexpr(&subs->synt); if (nfa_has_zsubexpr)
log_subexpr(&subs->synt);
# endif # endif
} }

View File

@@ -728,6 +728,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 */
/**/
1132,
/**/ /**/
1131, 1131,
/**/ /**/