diff options
author | Bram Moolenaar <bram@vim.org> | 2013-06-13 22:59:30 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2013-06-13 22:59:30 +0200 |
commit | 969b9f6d44b87356dd65424b177e35bbaae3b37e (patch) | |
tree | 9c7aa09db7af669886d78b14c1acf9efb6eb86cd | |
parent | 01f2f15ffb24ac08df6f2002605b184abed9aeb6 (diff) | |
download | vim-969b9f6d44b87356dd65424b177e35bbaae3b37e.tar.gz |
Problem: Highlighting is still wrong sometimes. (Dominique Pelle)
Solution: Also restore reginput properly.
-rw-r--r-- | src/regexp_nfa.c | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index 20f7aa31..e843cd74 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -4495,7 +4495,7 @@ recursive_regmatch(state, pim, prog, submatch, m, listids) 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, submatch, m, listids) } /* 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 index 4519fbe6..2c2a00eb 100644 --- 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, |