1
0
forked from aniani/vim

patch 8.2.3842: Vim9: can change locked list and list items

Problem:    Vim9: can change locked list and list items.
Solution:   Check that a list and list item isn't locked.
This commit is contained in:
Bram Moolenaar
2021-12-17 20:36:15 +00:00
parent 71b7685092
commit 422085f1c8
3 changed files with 31 additions and 9 deletions

View File

@@ -2898,18 +2898,26 @@ exec_instructions(ectx_T *ectx)
{
list_T *l = tv_dest->vval.v_list;
long n = (long)tv_idx->vval.v_number;
listitem_T *li = NULL;
li = list_find(l, n);
if (li == NULL)
{
SOURCING_LNUM = iptr->isn_lnum;
semsg(_(e_listidx), n);
if (l != NULL && value_check_lock(
l->lv_lock, NULL, FALSE))
status = FAIL;
}
else
// TODO: check for list or item locked
listitem_remove(l, li);
{
listitem_T *li = list_find(l, n);
if (li == NULL)
{
SOURCING_LNUM = iptr->isn_lnum;
semsg(_(e_listidx), n);
status = FAIL;
}
else if (value_check_lock(li->li_tv.v_lock,
NULL, FALSE))
status = FAIL;
else
listitem_remove(l, li);
}
}
}
else