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