diff options
author | Sean Dewar <seandewar@users.noreply.github.com> | 2021-05-21 15:12:35 +0100 |
---|---|---|
committer | Sean Dewar <seandewar@users.noreply.github.com> | 2021-08-12 22:31:18 +0100 |
commit | 4042ae5a2bc4bbca608ebb196a3d54a78d6c100c (patch) | |
tree | 6da940b00ff0f62ef3a2ebdeb730726e0f69755b /src/nvim/api/vim.c | |
parent | 60dd76c7e29e75dee641f93483eb6e5c2afb28e4 (diff) | |
download | rneovim-4042ae5a2bc4bbca608ebb196a3d54a78d6c100c.tar.gz rneovim-4042ae5a2bc4bbca608ebb196a3d54a78d6c100c.tar.bz2 rneovim-4042ae5a2bc4bbca608ebb196a3d54a78d6c100c.zip |
vim-patch:8.1.1800: function call functions have too many arguments
Problem: Function call functions have too many arguments.
Solution: Pass values in a funcexe_T struct.
https://github.com/vim/vim/commit/c6538bcc1cdd1fb83732f22fdc69bd9bb66f968a
Use FUNCEXE_INIT to initialize funcexe_T instances.
call_callback() and other Vim listener related stuff is N/A.
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r-- | src/nvim/api/vim.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 400dbb126c..ec13bdd0e2 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -614,12 +614,15 @@ static Object _call_function(String fn, Array args, dict_T *self, Error *err) recursive++; try_start(); typval_T rettv; - int dummy; + funcexe_T funcexe = FUNCEXE_INIT; + funcexe.firstline = curwin->w_cursor.lnum; + funcexe.lastline = curwin->w_cursor.lnum; + funcexe.evaluate = true; + funcexe.selfdict = self; // call_func() retval is deceptive, ignore it. Instead we set `msg_list` // (see above) to capture abort-causing non-exception errors. (void)call_func((char_u *)fn.data, (int)fn.size, &rettv, (int)args.size, - vim_args, NULL, curwin->w_cursor.lnum, curwin->w_cursor.lnum, - &dummy, true, NULL, self); + vim_args, &funcexe); if (!try_end(err)) { rv = vim_to_object(&rettv); } |