diff src/list.c @ 21831:d8422de73113 v8.2.1465

patch 8.2.1465: Vim9: subscript not handled properly Commit: https://github.com/vim/vim/commit/56acb0943ede35cd9d2f6667cde2442819ccbf59 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 16 14:48:19 2020 +0200 patch 8.2.1465: Vim9: subscript not handled properly Problem: Vim9: subscript not handled properly. Solution: Adjust error message. Remove dead code. Disallow string to number conversion in scripts.
author Bram Moolenaar <Bram@vim.org>
date Sun, 16 Aug 2020 15:00:05 +0200
parents af5db9b6d210
children e3f9528bddda
line wrap: on
line diff
--- a/src/list.c
+++ b/src/list.c
@@ -1909,7 +1909,10 @@ filter_map_one(typval_T *tv, typval_T *e
 	int	    error = FALSE;
 
 	// filter(): when expr is zero remove the item
-	*remp = (tv_get_number_chk(&rettv, &error) == 0);
+	if (in_vim9script())
+	    *remp = !tv2bool(&rettv);
+	else
+	    *remp = (tv_get_number_chk(&rettv, &error) == 0);
 	clear_tv(&rettv);
 	// On type error, nothing has been removed; return FAIL to stop the
 	// loop.  The error message was given by tv_get_number_chk().