summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-29 22:37:06 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-29 22:37:06 +0200
commit10ce39a0d52272a3dfff2feb8c631529f29e6740 (patch)
tree4e87632c06cd48950bf777c27be36cb309a8fcb4 /src/eval.c
parent1e96d9bf98f9ab84d5af7f98d6a961d91b17364f (diff)
downloadvim-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.c4
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)