aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/regexp_nfa.c3
-rw-r--r--src/nvim/testdir/test_regexp_latin.vim8
2 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c
index 08ef7da9c1..4e5f855e7f 100644
--- a/src/nvim/regexp_nfa.c
+++ b/src/nvim/regexp_nfa.c
@@ -1692,7 +1692,8 @@ collection:
MB_PTR_ADV(regparse);
if (*regparse == 'n')
- startc = reg_string ? NL : NFA_NEWL;
+ startc = (reg_string || emit_range || regparse[1] == '-')
+ ? NL : NFA_NEWL;
else if (*regparse == 'd'
|| *regparse == 'o'
|| *regparse == 'x'
diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim
index 8528412806..e31bb08b19 100644
--- a/src/nvim/testdir/test_regexp_latin.vim
+++ b/src/nvim/testdir/test_regexp_latin.vim
@@ -30,3 +30,11 @@ func Test_equivalence_re2()
set re=2
call s:equivalence_test()
endfunc
+
+func Test_range_with_newline()
+ new
+ call setline(1, "a")
+ call assert_equal(0, search("[ -*\\n- ]"))
+ call assert_equal(0, search("[ -*\\t-\\n]"))
+ bwipe!
+endfunc