# HG changeset patch # User Bram Moolenaar # Date 1371157170 -7200 # Node ID dc78a26f6f64bb1330b9027559ce0c8fe54ba1de # Parent 2eea5ec69c67b926ecb34df54bf5fecb7f486efb updated for version 7.3.1189 Problem: Highlighting is still wrong sometimes. (Dominique Pelle) Solution: Also restore reginput properly. 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,7 @@ recursive_regmatch(state, pim, prog, sub regsubs_T *m; int **listids; { - char_u *save_reginput = reginput; + int save_reginput_col = (int)(reginput - regline); int save_reglnum = reglnum; int save_nfa_match = nfa_match; int save_nfa_listid = nfa_listid; @@ -4632,10 +4632,10 @@ recursive_regmatch(state, pim, prog, sub } /* restore position in input text */ - reginput = save_reginput; reglnum = save_reglnum; if (REG_MULTI) regline = reg_getline(reglnum); + reginput = regline + save_reginput_col; 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 */ /**/ + 1189, +/**/ 1188, /**/ 1187,