patch 7.4.2090
Problem: Using submatch() in a lambda passed to substitute() is verbose.
Solution: Use a static list and pass it as an optional argument to the
function. Fix memory leak.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 54b5a53..61dce74 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -10101,7 +10101,7 @@
rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
res = call_func(func_name, (int)STRLEN(func_name),
- &rettv, 2, argv, 0L, 0L, &dummy, TRUE,
+ &rettv, 2, argv, NULL, 0L, 0L, &dummy, TRUE,
partial, sortinfo->item_compare_selfdict);
clear_tv(&argv[0]);
clear_tv(&argv[1]);