changeset 32559:fb453aba3d2b v9.0.1611

patch 9.0.1611: v:maxcol can be changed in a :for loop Commit: https://github.com/vim/vim/commit/16d2c02c80e6d4822010816e085cabf91bf91423 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jun 5 19:46:18 2023 +0100 patch 9.0.1611: v:maxcol can be changed in a :for loop Problem: v:maxcol can be changed in a :for loop. Solution: Check for read-only loop variable. (closes https://github.com/vim/vim/issues/12470)
author Bram Moolenaar <Bram@vim.org>
date Mon, 05 Jun 2023 21:00:05 +0200
parents 34ebbd52be7e
children 87ba01df3614
files src/evalvars.c src/testdir/test_eval_stuff.vim src/version.c
diffstat 3 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -3842,7 +3842,8 @@ set_var_const(
 	    }
 
 	    if ((flags & ASSIGN_FOR_LOOP) == 0
-				 && var_check_permission(di, name) == FAIL)
+				 ? var_check_permission(di, name) == FAIL
+				 : var_check_ro(di->di_flags, name, FALSE))
 		goto failed;
 	}
 	else
index 46ec12df16a639a6aa7307f1c5488d1ee5ec9748..a346399eb513bbf2c45a4c98f5d823d206e7edbc
GIT binary patch
literal 26047
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
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1611,
+/**/
     1610,
 /**/
     1609,