diff options
author | Bram Moolenaar <bram@vim.org> | 2013-06-13 19:47:07 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2013-06-13 19:47:07 +0200 |
commit | f69dbcd99e740187ceeca7ab9b8e1f19616b8991 (patch) | |
tree | 942f68bb961889ef4ba6e0b2bebbc6c8e3565882 | |
parent | 9cdffe81449ec8c13af9993bc81527aa0dcb1f10 (diff) | |
download | vim-f69dbcd99e740187ceeca7ab9b8e1f19616b8991.tar.gz |
Problem: Highlighting is sometimes wrong. (Axel Bender)
Solution: Fetch regline again when returning from recursive regmatch.
-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 5ad7a071..780653f0 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -4495,7 +4495,6 @@ recursive_regmatch(state, pim, prog, submatch, m, listids) 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, submatch, m, listids) /* 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 index 82569243..f003bbc0 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 */ /**/ + 1184, +/**/ 1183, /**/ 1182, |