aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/regexp.c2
-rw-r--r--src/nvim/testdir/test_regexp_latin.vim16
2 files changed, 18 insertions, 0 deletions
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 3b3ca29dad..c043d4a173 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -7116,6 +7116,8 @@ regprog_T *vim_regcomp(char_u *expr_arg, int re_flags)
}
bt_regengine.expr = expr;
nfa_regengine.expr = expr;
+ // reg_iswordc() uses rex.reg_buf
+ rex.reg_buf = curbuf;
//
// First try the NFA engine, unless backtracking was requested.
diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim
index eb8f69ef15..8f9b1eb7ca 100644
--- a/src/nvim/testdir/test_regexp_latin.vim
+++ b/src/nvim/testdir/test_regexp_latin.vim
@@ -47,3 +47,19 @@ func Test_get_equi_class()
s/.*/[[.
call assert_equal(1, search(getline(1)))
endfunc
+
+func Test_rex_init()
+ set noincsearch
+ set re=1
+ new
+ setlocal iskeyword=a-z
+ call setline(1, ['abc', 'ABC'])
+ call assert_equal(1, search('[[:keyword:]]'))
+ new
+ setlocal iskeyword=A-Z
+ call setline(1, ['abc', 'ABC'])
+ call assert_equal(2, search('[[:keyword:]]'))
+ bwipe!
+ bwipe!
+ set re=0
+endfunc