diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-01-02 02:23:24 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-01-02 12:20:35 -0500 |
commit | cb5ba225f870d421fb83b49c360218e9be34a80d (patch) | |
tree | 539ed7cf966f895b1713af6beb2b35c1ba95ac0c | |
parent | ffc3df51f1f9d9a66735c536fe6cfce55d439da0 (diff) | |
download | rneovim-cb5ba225f870d421fb83b49c360218e9be34a80d.tar.gz rneovim-cb5ba225f870d421fb83b49c360218e9be34a80d.tar.bz2 rneovim-cb5ba225f870d421fb83b49c360218e9be34a80d.zip |
vim-patch:8.2.0407: no early check if :find and :sfind have an argument
Problem: No early check if :find and :sfind have an argument.
Solution: Add EX_NEEDARG.
https://github.com/vim/vim/commit/2d10cd478047df8ba144d4b0fcc46480993af57f
Cherry-pick Test_find_cmd() from patch v8.2.0270.
Use "exe 'cd ' . save_dir" pattern
because patches v8.1.1291, v8.1.2278 are not ported yet.
Cherry-pick modeline from patch v8.1.1432.
-rw-r--r-- | src/nvim/ex_cmds.lua | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_find_complete.vim | 8 | ||||
-rw-r--r-- | src/nvim/testdir/test_findfile.vim | 43 |
3 files changed, 49 insertions, 6 deletions
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index dd2ad647f7..069d5d461b 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -971,7 +971,7 @@ module.cmds = { }, { command='find', - flags=bit.bor(RANGE, BANG, FILE1, CMDARG, ARGOPT, TRLBAR), + flags=bit.bor(RANGE, BANG, FILE1, CMDARG, ARGOPT, TRLBAR, NEEDARG), addr_type='ADDR_OTHER', func='ex_find', }, @@ -2425,7 +2425,7 @@ module.cmds = { }, { command='sfind', - flags=bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR), + flags=bit.bor(BANG, FILE1, RANGE, CMDARG, ARGOPT, TRLBAR, NEEDARG), addr_type='ADDR_OTHER', func='ex_splitview', }, diff --git a/src/nvim/testdir/test_find_complete.vim b/src/nvim/testdir/test_find_complete.vim index a7bc135d47..0a00d9432f 100644 --- a/src/nvim/testdir/test_find_complete.vim +++ b/src/nvim/testdir/test_find_complete.vim @@ -15,22 +15,22 @@ func Test_find_complete() new set path= - call assert_fails('call feedkeys(":find\t\n", "xt")', 'E345:') + call assert_fails('call feedkeys(":find \t\n", "xt")', 'E471:') close new set path=. - call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:') + call assert_fails('call feedkeys(":find \t\n", "xt")', 'E471:') close new set path=.,, - call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:') + call assert_fails('call feedkeys(":find \t\n", "xt")', 'E471:') close new set path=./** - call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:') + call assert_fails('call feedkeys(":find \t\n", "xt")', 'E471:') close " We shouldn't find any file till this point diff --git a/src/nvim/testdir/test_findfile.vim b/src/nvim/testdir/test_findfile.vim index f5488a6a27..2195bf527e 100644 --- a/src/nvim/testdir/test_findfile.vim +++ b/src/nvim/testdir/test_findfile.vim @@ -184,3 +184,46 @@ func Test_finddir_error() call assert_fails('call finddir("x", "**x")', 'E343:') call assert_fails('call finddir("x", repeat("x", 5000))', 'E854:') endfunc + +" Test for the :find, :sfind and :tabfind commands +func Test_find_cmd() + new + let save_path = &path + let save_dir = getcwd() + set path=.,./**/* + call CreateFiles() + cd Xdir1 + " Test for :find + find foo + call assert_equal('foo', expand('%:.')) + 2find foo + call assert_equal('Xdir2/foo', expand('%:.')) + call assert_fails('3find foo', 'E347:') + " Test for :sfind + enew + sfind barfoo + call assert_equal('Xdir2/Xdir3/barfoo', expand('%:.')) + call assert_equal(3, winnr('$')) + close + call assert_fails('sfind baz', 'E345:') + call assert_equal(2, winnr('$')) + " Test for :tabfind + enew + tabfind foobar + call assert_equal('Xdir2/foobar', expand('%:.')) + call assert_equal(2, tabpagenr('$')) + tabclose + call assert_fails('tabfind baz', 'E345:') + call assert_equal(1, tabpagenr('$')) + " call chdir(save_dir) + exe 'cd ' . save_dir + call CleanFiles() + let &path = save_path + close + + call assert_fails('find', 'E471:') + call assert_fails('sfind', 'E471:') + call assert_fails('tabfind', 'E471:') +endfunc + +" vim: shiftwidth=2 sts=2 expandtab |