comparison src/evalfunc.c @ 32818:705d0e1329a5 v9.0.1723

patch 9.0.1723: Fix regression in {func} argument of reduce() Commit: https://github.com/vim/vim/commit/ad0c442f1fcc6fe9c433777ee3e5b9e6addc6d69 Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Aug 17 22:15:47 2023 +0200 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>
author Christian Brabandt <cb@256bit.org>
date Thu, 17 Aug 2023 22:30:02 +0200
parents 257ab4ee8e4a
children 656c54d276d5
comparison
equal deleted inserted replaced
32817:4fa5838c6952 32818:705d0e1329a5
6936 6936
6937 argv[0] = *get_vim_var_tv(VV_KEY); 6937 argv[0] = *get_vim_var_tv(VV_KEY);
6938 argv[1] = *get_vim_var_tv(VV_VAL); 6938 argv[1] = *get_vim_var_tv(VV_VAL);
6939 newtv.v_type = VAR_UNKNOWN; 6939 newtv.v_type = VAR_UNKNOWN;
6940 6940
6941 if (eval_expr_typval(expr, argv, 2, NULL, &newtv) == FAIL) 6941 if (eval_expr_typval(expr, FALSE, argv, 2, NULL, &newtv) == FAIL)
6942 return FALSE; 6942 return FALSE;
6943 6943
6944 found = tv_get_bool_chk(&newtv, &error); 6944 found = tv_get_bool_chk(&newtv, &error);
6945 clear_tv(&newtv); 6945 clear_tv(&newtv);
6946 6946