patch 9.0.1723: Fix regression in {func} argument of reduce()
Problem: Fix regression in {func} argument of reduce()
Solution: pass function name as string again
Before patch 9.0.0548, passing a string as {func} argument of reduce()
is treated as a function name, but after patch 9.0.0548 it is treated as
an expression instead, which is useless as reduce() doesn't set any v:
variables. This PR restores the behavior of {func} before that patch.
Also correct an emsg() call, as e_string_list_or_blob_required doesn't
contain format specifiers.
closes: #12824
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 0903fa8..ab6606f 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6938,7 +6938,7 @@
argv[1] = *get_vim_var_tv(VV_VAL);
newtv.v_type = VAR_UNKNOWN;
- if (eval_expr_typval(expr, argv, 2, NULL, &newtv) == FAIL)
+ if (eval_expr_typval(expr, FALSE, argv, 2, NULL, &newtv) == FAIL)
return FALSE;
found = tv_get_bool_chk(&newtv, &error);