diff options
-rw-r--r-- | src/nvim/regexp_nfa.c | 3 | ||||
-rw-r--r-- | src/nvim/testdir/test_regexp_latin.vim | 8 |
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 |