diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-08-03 18:17:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-08-03 18:17:11 +0200 |
commit | c6538bcc1cdd1fb83732f22fdc69bd9bb66f968a (patch) | |
tree | 80b89c210388f6e038ccbdc346f72a31bffd8430 /src/regexp.c | |
parent | 749fa0af85232be1d44b77a09161f71cdbace62c (diff) | |
download | vim-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.c | 14 |
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 */ |