Olaf Dabrunz wrote:

> Fix summary:
> ------------
> 
> Some commands and functions interpret user locks (:lockvar) or internal
> locks (fixed / readonly vars as in the v: scope) differently than others
> or ignore some of them, so that a locked variable could be changed or
> deleted, or a variable that should be deletable is not deleted.
> 
> The following fixes make this more consistent with the docs in
> ':he :lockvar' and with other expectations.
> 
>     1. Fix :unlet removing items in locked dictionaries and lists.
> 
>        This also fixes user locks failing to protect a variable scope
>        against variable deletion, as in ':lockvar 1 b:'.
> 
>     2. Fix :unlet not removing locked items in unlocked user dicts or
>        lists.
> 
>     3. Fix extend() overwriting locked dictionary items.
> 
>     4. Fix remove() deleting a fixed scope-level variable, such as
>        a:<var> and l:self, which may crash vim.
> 
>     5. Fix filter() deleting a fixed scope-level variable, such as
>        l:self, which is likely to crash vim.
> 
>     6. Fix extend() and map() overwriting a write-protected scope-level
>        variable, such as a:this_is_a_loooooooooong_parameter_name.
> 
>     7. Review, but do not change the partial implementation around
>        internal flag DI_FLAGS_LOCK, which apparently was meant as a
>        means for the user to protect scope-level variables individually
>        against deletion.

[...]

Thanks!  That looks like a solid analysis.  I'll check out the patch
soon.


-- 
The MS-Windows registry is no more hostile than any other bunch of state
information... that is held in a binary format... a format that nobody
understands... and is replicated and cached in a complex and largely
undocumented way... and contains large amounts of duplicate and obfuscated
information...  (Ben Peterson)

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui