aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-01-02 02:23:24 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-01-02 12:20:35 -0500
commitcb5ba225f870d421fb83b49c360218e9be34a80d (patch)
tree539ed7cf966f895b1713af6beb2b35c1ba95ac0c
parentffc3df51f1f9d9a66735c536fe6cfce55d439da0 (diff)
downloadrneovim-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.lua4
-rw-r--r--src/nvim/testdir/test_find_complete.vim8
-rw-r--r--src/nvim/testdir/test_findfile.vim43
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