diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-06-01 13:28:35 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-06-01 13:28:35 +0200 |
commit | 3a97bb3f0f8bd118ae23f1c97e55d84ff42eef20 (patch) | |
tree | b7013f43afaaba6ba20b356a7a80fe55add24f1a /src/userfunc.c | |
parent | 7dd64a3e57d296fdee3b3ffe6d938f634b59848c (diff) | |
download | vim-git-3a97bb3f0f8bd118ae23f1c97e55d84ff42eef20.tar.gz |
patch 8.1.1437: code to handle callbacks is duplicatedv8.1.1437
Problem: Code to handle callbacks is duplicated.
Solution: Add callback_T and functions to deal with it.
Diffstat (limited to 'src/userfunc.c')
-rw-r--r-- | src/userfunc.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/userfunc.c b/src/userfunc.c index 06d2ecff6..7abde07e3 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -1447,6 +1447,30 @@ func_call( } /* + * Invoke call_func() with a callback. + */ + int +call_callback( + callback_T *callback, + int len, // length of "name" or -1 to use strlen() + typval_T *rettv, // return value goes here + int argcount, // number of "argvars" + typval_T *argvars, // vars for arguments, must have "argcount" + // PLUS ONE elements! + int (* argv_func)(int, typval_T *, int), + // function to fill in argvars + linenr_T firstline, // first line of range + linenr_T lastline, // last line of range + int *doesrange, // return: function handled range + int evaluate, + dict_T *selfdict) // Dictionary for "self" +{ + return call_func(callback->cb_name, len, rettv, argcount, argvars, + argv_func, firstline, lastline, doesrange, evaluate, + callback->cb_partial, selfdict); +} + +/* * Call a function with its resolved parameters * * "argv_func", when not NULL, can be used to fill in arguments only when the |