# HG changeset patch # User Bram Moolenaar # Date 1371145627 -7200 # Node ID 9e36c6b1ebf4554a24bd879965f348b81ad5ca6a # Parent bbdfe0d44263f16785892a01f8cabd8bdb4ba006 updated for version 7.3.1184 Problem: Highlighting is sometimes wrong. (Axel Bender) Solution: Fetch regline again when returning from recursive regmatch. diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -4495,7 +4495,6 @@ recursive_regmatch(state, pim, prog, sub int **listids; { char_u *save_reginput = reginput; - char_u *save_regline = regline; int save_reglnum = reglnum; int save_nfa_match = nfa_match; int save_nfa_listid = nfa_listid; @@ -4633,8 +4632,9 @@ recursive_regmatch(state, pim, prog, sub /* restore position in input text */ reginput = save_reginput; - regline = save_regline; reglnum = save_reglnum; + if (REG_MULTI) + regline = reg_getline(reglnum); nfa_match = save_nfa_match; nfa_endp = save_nfa_endp; nfa_listid = save_nfa_listid; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1184, +/**/ 1183, /**/ 1182,