From 78e69412acb481c7ad56e68c541f5c5383992d5b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 5 Nov 2022 15:51:26 +0800 Subject: vim-patch:8.2.4688: new regexp engine does not give an error for "\%v" Problem: New regexp engine does not give an error for "\%v". Solution: Check for a value argument. (issue vim/vim#10079) https://github.com/vim/vim/commit/91ff3d4f52a55a7c37a52aaad524cd9dd12efae4 Co-authored-by: Bram Moolenaar --- src/nvim/testdir/test_regexp_latin.vim | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim index 2a9a0e9d50..2671313997 100644 --- a/src/nvim/testdir/test_regexp_latin.vim +++ b/src/nvim/testdir/test_regexp_latin.vim @@ -105,6 +105,18 @@ func Test_multi_failure() set re=0 endfunc +func Test_column_failure() + set re=1 + call assert_fails('/\%v', 'E71:') + call assert_fails('/\%c', 'E71:') + call assert_fails('/\%l', 'E71:') + set re=2 + call assert_fails('/\%v', 'E1273:') + call assert_fails('/\%c', 'E1273:') + call assert_fails('/\%l', 'E1273:') + set re=0 +endfunc + func Test_recursive_addstate() throw 'skipped: TODO: ' " This will call addstate() recursively until it runs into the limit. -- cgit From 77e25e56d8ccc0c174305f9fe64ad06f0223ab2d Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 5 Nov 2022 15:56:15 +0800 Subject: vim-patch:8.2.4693: new regexp does not accept pattern "\%>0v" Problem: new regexp does not accept pattern "\%>0v". Solution: Do accept digit zero. https://github.com/vim/vim/commit/72bb10df1fb3eb69bc91f5babfb8881ce098cba1 Co-authored-by: Bram Moolenaar --- src/nvim/testdir/test_regexp_latin.vim | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim index 2671313997..5312c6f26a 100644 --- a/src/nvim/testdir/test_regexp_latin.vim +++ b/src/nvim/testdir/test_regexp_latin.vim @@ -105,16 +105,29 @@ func Test_multi_failure() set re=0 endfunc -func Test_column_failure() +func Test_column_success_failure() + new + call setline(1, 'xbar') + set re=1 + %s/\%>0v./A/ + call assert_equal('Abar', getline(1)) call assert_fails('/\%v', 'E71:') + call assert_fails('/\%>v', 'E71:') call assert_fails('/\%c', 'E71:') + call assert_fails('/\%0v./B/ + call assert_equal('Bbar', getline(1)) call assert_fails('/\%v', 'E1273:') + call assert_fails('/\%>v', 'E1273:') call assert_fails('/\%c', 'E1273:') + call assert_fails('/\% Date: Sat, 5 Nov 2022 15:59:17 +0800 Subject: vim-patch:8.2.4978: no error if engine selection atom is not at the start Problem: No error if engine selection atom is not at the start. Solution: Give an error. (Christian Brabandt, closes vim/vim#10439) https://github.com/vim/vim/commit/360da40b47a84ee8586c3b5d062f8c64a2ac9cc6 Co-authored-by: Christian Brabandt --- src/nvim/testdir/test_regexp_latin.vim | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim index 5312c6f26a..3a4a7ad910 100644 --- a/src/nvim/testdir/test_regexp_latin.vim +++ b/src/nvim/testdir/test_regexp_latin.vim @@ -1058,6 +1058,24 @@ func Test_using_invalid_visual_position() bwipe! endfunc +func Test_using_two_engines_pattern() + new + call setline(1, ['foobar=0', 'foobar=1', 'foobar=2']) + " \%#= at the end of the pattern + for i in range(0, 2) + call cursor( (i+1), 7) + call assert_fails("%s/foobar\\%#=" .. i, 'E1281:') + endfor + + " \%#= at the start of the pattern + for i in range(0, 2) + call cursor( (i+1), 7) + exe ":%s/\\%#=" .. i .. "foobar=" .. i .. "/xx" + endfor + call assert_equal(['xx', 'xx', 'xx'], getline(1, '$')) + bwipe! +endfunc + func Test_recursive_substitute_expr() new func Repl() -- cgit From e33ffab1a776518dbf59ba5fe82453fa019569eb Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 5 Nov 2022 16:03:00 +0800 Subject: vim-patch:9.0.0053: E1281 not tested with the old regexp engine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: E1281 not tested with the old regexp engine. Solution: Loop over the values of 'regexp'. (Dominique Pellé, closes vim/vim#10695) https://github.com/vim/vim/commit/3a393790a4fd7a5edcafbb55cd79438b6e641714 Co-authored-by: Dominique Pelle --- src/nvim/testdir/test_regexp_latin.vim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_regexp_latin.vim b/src/nvim/testdir/test_regexp_latin.vim index 3a4a7ad910..ece6ae518e 100644 --- a/src/nvim/testdir/test_regexp_latin.vim +++ b/src/nvim/testdir/test_regexp_latin.vim @@ -1063,13 +1063,17 @@ func Test_using_two_engines_pattern() call setline(1, ['foobar=0', 'foobar=1', 'foobar=2']) " \%#= at the end of the pattern for i in range(0, 2) - call cursor( (i+1), 7) - call assert_fails("%s/foobar\\%#=" .. i, 'E1281:') + for j in range(0, 2) + exe "set re=" .. i + call cursor(j + 1, 7) + call assert_fails("%s/foobar\\%#=" .. j, 'E1281:') + endfor endfor + set re=0 " \%#= at the start of the pattern for i in range(0, 2) - call cursor( (i+1), 7) + call cursor(i + 1, 7) exe ":%s/\\%#=" .. i .. "foobar=" .. i .. "/xx" endfor call assert_equal(['xx', 'xx', 'xx'], getline(1, '$')) -- cgit