Mercurial > vim
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 |