0
0
mirror of https://github.com/vim/vim.git synced 2025-10-22 08:34:29 -04:00

patch 9.1.0027: Vim is missing a foreach() func

Problem:  Vim is missing a foreach() func
Solution: Implement foreach({expr1}, {expr2}) function,
          which applies {expr2} for each item in {expr1}
          without changing it (Ernie Rael)

closes: #12166

Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Ernie Rael
2024-01-13 11:47:33 +01:00
committed by Christian Brabandt
parent d8cb1ddab7
commit e79e207760
12 changed files with 303 additions and 61 deletions

View File

@@ -1329,8 +1329,8 @@ dict_extend_func(
}
/*
* Implementation of map() and filter() for a Dict. Apply "expr" to every
* item in Dict "d" and return the result in "rettv".
* Implementation of map(), filter(), foreach() for a Dict. Apply "expr" to
* every item in Dict "d" and return the result in "rettv".
*/
void
dict_filter_map(
@@ -1392,7 +1392,6 @@ dict_filter_map(
arg_errmsg, TRUE)))
break;
set_vim_var_string(VV_KEY, di->di_key, -1);
newtv.v_type = VAR_UNKNOWN;
r = filter_map_one(&di->di_tv, expr, filtermap, fc, &newtv, &rem);
clear_tv(get_vim_var_tv(VV_KEY));
if (r == FAIL || did_emsg)