mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 11:58:17 +00:00
Merge PR #3657 'Correct max numbers of args for some functions'
This commit is contained in:
@@ -7360,7 +7360,7 @@ static struct fst {
|
||||
{ "pathshorten", 1, 1, f_pathshorten },
|
||||
{ "pow", 2, 2, f_pow },
|
||||
{ "prevnonblank", 1, 1, f_prevnonblank },
|
||||
{ "printf", 2, 19, f_printf },
|
||||
{ "printf", 2, MAX_FUNC_ARGS, f_printf },
|
||||
{ "pumvisible", 0, 0, f_pumvisible },
|
||||
{ "py3eval", 1, 1, f_py3eval },
|
||||
{ "pyeval", 1, 1, f_pyeval },
|
||||
@@ -7374,8 +7374,8 @@ static struct fst {
|
||||
{ "resolve", 1, 1, f_resolve },
|
||||
{ "reverse", 1, 1, f_reverse },
|
||||
{ "round", 1, 1, f_round },
|
||||
{ "rpcnotify", 2, 64, f_rpcnotify },
|
||||
{ "rpcrequest", 2, 64, f_rpcrequest },
|
||||
{ "rpcnotify", 2, MAX_FUNC_ARGS, f_rpcnotify },
|
||||
{ "rpcrequest", 2, MAX_FUNC_ARGS, f_rpcrequest },
|
||||
{ "rpcstart", 1, 2, f_rpcstart },
|
||||
{ "rpcstop", 1, 1, f_rpcstop },
|
||||
{ "screenattr", 2, 2, f_screenattr },
|
||||
|
29
test/functional/viml/function_spec.lua
Normal file
29
test/functional/viml/function_spec.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
local helpers = require('test.functional.helpers')
|
||||
|
||||
local clear = helpers.clear
|
||||
local eq = helpers.eq
|
||||
local exc_exec = helpers.exc_exec
|
||||
|
||||
describe('Up to MAX_FUNC_ARGS arguments are handled by', function()
|
||||
local max_func_args = 20 -- from eval.h
|
||||
local range = helpers.funcs.range
|
||||
|
||||
before_each(clear)
|
||||
|
||||
it('printf()', function()
|
||||
local printf = helpers.funcs.printf
|
||||
local rep = helpers.funcs['repeat']
|
||||
local expected = '2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,'
|
||||
eq(expected, printf(rep('%d,', max_func_args-1), unpack(range(2, max_func_args))))
|
||||
local ret = exc_exec('call printf("", 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)')
|
||||
eq('Vim(call):E740: Too many arguments for function printf', ret)
|
||||
end)
|
||||
|
||||
it('rpcnotify()', function()
|
||||
local rpcnotify = helpers.funcs.rpcnotify
|
||||
local ret = rpcnotify(0, 'foo', unpack(range(3, max_func_args)))
|
||||
eq(1, ret)
|
||||
ret = exc_exec('call rpcnotify(0, "foo", 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)')
|
||||
eq('Vim(call):E740: Too many arguments for function rpcnotify', ret)
|
||||
end)
|
||||
end)
|
Reference in New Issue
Block a user