diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-09-04 14:49:56 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-09-04 14:49:56 +0200 |
commit | 10c83dde554b57ab4db71b96a0a02a5b6d1798e9 (patch) | |
tree | e44dd73fc8eeadec413682e604252a35352218c0 | |
parent | 7f2dd1e90c1d4a30c791fae20014594641769a1e (diff) |
patch 8.2.3401: Vim9: cannot use negative count with finddir() and findfile()v8.2.3401
Problem: Vim9: cannot use a negative count with finddir() and findfile().
Solution: Adjust the return type. (closes #8776)
-rw-r--r-- | src/evalfunc.c | 4 | ||||
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 18 insertions, 2 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index fd385fea37..b3f69c1f3b 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -1354,9 +1354,9 @@ static funcentry_T global_functions[] = {"filter", 2, 2, FEARG_1, arg2_mapfilter, ret_first_arg, f_filter}, {"finddir", 1, 3, FEARG_1, arg3_string_string_number, - ret_string, f_finddir}, + ret_any, f_finddir}, {"findfile", 1, 3, FEARG_1, arg3_string_string_number, - ret_string, f_findfile}, + ret_any, f_findfile}, {"flatten", 1, 2, FEARG_1, arg2_list_any_number, ret_list_any, f_flatten}, {"flattennew", 1, 2, FEARG_1, arg2_list_any_number, diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index c166a43a6b..d39a5e22ec 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -1027,6 +1027,14 @@ def Test_filewritable() enddef def Test_finddir() + mkdir('Xtestdir') + finddir('Xtestdir', '**', -1)->assert_equal(['Xtestdir']) + var lines =<< trim END + var l: list<string> = finddir('nothing', '*;', -1) + END + CheckDefAndScriptSuccess(lines) + delete('Xtestdir', 'rf') + CheckDefAndScriptFailure2(['finddir(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1') CheckDefAndScriptFailure2(['finddir(v:null)'], 'E1013: Argument 1: type mismatch, expected string but got special', 'E1174: String required for argument 1') CheckDefExecFailure(['echo finddir("")'], 'E1175:') @@ -1035,6 +1043,12 @@ def Test_finddir() enddef def Test_findfile() + findfile('runtest.vim', '**', -1)->assert_equal(['runtest.vim']) + var lines =<< trim END + var l: list<string> = findfile('nothing', '*;', -1) + END + CheckDefAndScriptSuccess(lines) + CheckDefExecFailure(['findfile(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool') CheckDefExecFailure(['findfile(v:null)'], 'E1013: Argument 1: type mismatch, expected string but got special') CheckDefExecFailure(['findfile("")'], 'E1175:') diff --git a/src/version.c b/src/version.c index 7482d3f7fd..8f502cc9c6 100644 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3401, +/**/ 3400, /**/ 3399, |