mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.2.2157: Vim9: can delete a Vim9 script variable from a function
Problem: Vim9: can delete a Vim9 script variable from a function. Solution: Check the variable is defined in Vim9 script. (closes #7483)
This commit is contained in:
@@ -1663,10 +1663,20 @@ do_unlet(char_u *name, int forceit)
|
||||
dict_T *d;
|
||||
dictitem_T *di;
|
||||
|
||||
// can't :unlet a script variable in Vim9 script
|
||||
if (in_vim9script() && check_vim9_unlet(name) == FAIL)
|
||||
return FAIL;
|
||||
|
||||
ht = find_var_ht(name, &varname);
|
||||
|
||||
// can't :unlet a script variable in Vim9 script from a function
|
||||
if (ht == get_script_local_ht()
|
||||
&& SCRIPT_ID_VALID(current_sctx.sc_sid)
|
||||
&& SCRIPT_ITEM(current_sctx.sc_sid)->sn_version
|
||||
== SCRIPT_VERSION_VIM9
|
||||
&& check_vim9_unlet(name) == FAIL)
|
||||
return FAIL;
|
||||
|
||||
if (ht != NULL && *varname != NUL)
|
||||
{
|
||||
d = get_current_funccal_dict(ht);
|
||||
|
Reference in New Issue
Block a user