mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.2.1698: cannot lock a variable in legacy Vim script like in Vim9
Problem: Cannot lock a variable in legacy Vim script like in Vim9. Solution: Make ":lockvar 0" work.
This commit is contained in:
@@ -1055,7 +1055,8 @@ get_lval(
|
||||
}
|
||||
// existing variable, need to check if it can be changed
|
||||
else if ((flags & GLV_READ_ONLY) == 0
|
||||
&& var_check_ro(lp->ll_di->di_flags, name, FALSE))
|
||||
&& (var_check_ro(lp->ll_di->di_flags, name, FALSE)
|
||||
|| var_check_lock(lp->ll_di->di_flags, name, FALSE)))
|
||||
{
|
||||
clear_tv(&var1);
|
||||
return NULL;
|
||||
@@ -1220,7 +1221,7 @@ set_var_lval(
|
||||
semsg(_(e_letwrong), op);
|
||||
return;
|
||||
}
|
||||
if (var_check_lock(lp->ll_blob->bv_lock, lp->ll_name, FALSE))
|
||||
if (value_check_lock(lp->ll_blob->bv_lock, lp->ll_name, FALSE))
|
||||
return;
|
||||
|
||||
if (lp->ll_range && rettv->v_type == VAR_BLOB)
|
||||
@@ -1297,7 +1298,7 @@ set_var_lval(
|
||||
}
|
||||
*endp = cc;
|
||||
}
|
||||
else if (var_check_lock(lp->ll_newkey == NULL
|
||||
else if (value_check_lock(lp->ll_newkey == NULL
|
||||
? lp->ll_tv->v_lock
|
||||
: lp->ll_tv->vval.v_dict->dv_lock, lp->ll_name, FALSE))
|
||||
;
|
||||
@@ -1317,7 +1318,7 @@ set_var_lval(
|
||||
*/
|
||||
for (ri = rettv->vval.v_list->lv_first; ri != NULL && ll_li != NULL; )
|
||||
{
|
||||
if (var_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE))
|
||||
if (value_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE))
|
||||
return;
|
||||
ri = ri->li_next;
|
||||
if (ri == NULL || (!lp->ll_empty2 && lp->ll_n2 == ll_n1))
|
||||
|
Reference in New Issue
Block a user