patch 7.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)
diff --git a/src/eval.c b/src/eval.c
index 463c892..956f05c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2837,7 +2837,9 @@
}
}
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)