summaryrefslogtreecommitdiff
path: root/src/regexp.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-08-03 18:17:11 +0200
committerBram Moolenaar <Bram@vim.org>2019-08-03 18:17:11 +0200
commitc6538bcc1cdd1fb83732f22fdc69bd9bb66f968a (patch)
tree80b89c210388f6e038ccbdc346f72a31bffd8430 /src/regexp.c
parent749fa0af85232be1d44b77a09161f71cdbace62c (diff)
downloadvim-git-c6538bcc1cdd1fb83732f22fdc69bd9bb66f968a.tar.gz
patch 8.1.1800: function call functions have too many argumentsv8.1.1800
Problem: Function call functions have too many arguments. Solution: Pass values in a funcexe_T struct.
Diffstat (limited to 'src/regexp.c')
-rw-r--r--src/regexp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/regexp.c b/src/regexp.c
index 7d0ac6068..c95795d0c 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -7416,31 +7416,31 @@ vim_regsub_both(
if (expr != NULL)
{
typval_T argv[2];
- int dummy;
char_u buf[NUMBUFLEN];
typval_T rettv;
staticList10_T matchList;
+ funcexe_T funcexe;
rettv.v_type = VAR_STRING;
rettv.vval.v_string = NULL;
argv[0].v_type = VAR_LIST;
argv[0].vval.v_list = &matchList.sl_list;
matchList.sl_list.lv_len = 0;
+ vim_memset(&funcexe, 0, sizeof(funcexe));
+ funcexe.argv_func = fill_submatch_list;
+ funcexe.evaluate = TRUE;
if (expr->v_type == VAR_FUNC)
{
s = expr->vval.v_string;
- call_func(s, -1, &rettv,
- 1, argv, fill_submatch_list,
- 0L, 0L, &dummy, TRUE, NULL, NULL);
+ call_func(s, -1, &rettv, 1, argv, &funcexe);
}
else if (expr->v_type == VAR_PARTIAL)
{
partial_T *partial = expr->vval.v_partial;
s = partial_name(partial);
- call_func(s, -1, &rettv,
- 1, argv, fill_submatch_list,
- 0L, 0L, &dummy, TRUE, partial, NULL);
+ funcexe.partial = partial;
+ call_func(s, -1, &rettv, 1, argv, &funcexe);
}
if (matchList.sl_list.lv_len > 0)
/* fill_submatch_list() was called */