diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-07-29 22:37:06 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-07-29 22:37:06 +0200 |
commit | 10ce39a0d52272a3dfff2feb8c631529f29e6740 (patch) | |
tree | 4e87632c06cd48950bf777c27be36cb309a8fcb4 /src/eval.c | |
parent | 1e96d9bf98f9ab84d5af7f98d6a961d91b17364f (diff) | |
download | vim-git-10ce39a0d52272a3dfff2feb8c631529f29e6740.tar.gz |
patch 7.4.2120v7.4.2120
Problem: User defined functions can't be a closure.
Solution: Add the "closure" argument. Allow using :unlet on a bound
variable. (Yasuhiro Matsumoto, Ken Takata)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c index 463c8927e..956f05cb1 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2837,7 +2837,9 @@ do_unlet(char_u *name, int forceit) } } hi = hash_find(ht, varname); - if (!HASHITEM_EMPTY(hi)) + if (HASHITEM_EMPTY(hi)) + hi = find_hi_in_scoped_ht(name, &varname, &ht); + if (hi != NULL && !HASHITEM_EMPTY(hi)) { di = HI2DI(hi); if (var_check_fixed(di->di_flags, name, FALSE) |