summaryrefslogtreecommitdiff
path: root/src/proto
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-29 22:15:09 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-29 22:15:09 +0200
commit1e96d9bf98f9ab84d5af7f98d6a961d91b17364f (patch)
treedd81c13eb8896eb9b5c3a5f311eefdd39829c907 /src/proto
parent83a2a80d6f699ad9a236431170038698e355c025 (diff)
downloadvim-git-1e96d9bf98f9ab84d5af7f98d6a961d91b17364f.tar.gz
patch 7.4.2119v7.4.2119
Problem: Closures are not supported. Solution: Capture variables in lambdas from the outer scope. (Yasuhiro Matsumoto, Ken Takata)
Diffstat (limited to 'src/proto')
-rw-r--r--src/proto/eval.pro1
-rw-r--r--src/proto/userfunc.pro2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index 5d9b35c62..56f0b4927 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -87,6 +87,7 @@ char_u *get_tv_string_chk(typval_T *varp);
char_u *get_tv_string_buf_chk(typval_T *varp, char_u *buf);
dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload);
dictitem_T *find_var_in_ht(hashtab_T *ht, int htname, char_u *varname, int no_autoload);
+hashtab_T *find_var_ht(char_u *name, char_u **varname);
char_u *get_var_value(char_u *name);
void new_script_vars(scid_T id);
void init_var_dict(dict_T *dict, dictitem_T *dict_var, int scope);
diff --git a/src/proto/userfunc.pro b/src/proto/userfunc.pro
index feacd4c00..e503bcdcc 100644
--- a/src/proto/userfunc.pro
+++ b/src/proto/userfunc.pro
@@ -46,7 +46,9 @@ void *clear_current_funccal(void);
void restore_current_funccal(void *f);
void list_func_vars(int *first);
dict_T *get_current_funccal_dict(hashtab_T *ht);
+dictitem_T *find_var_in_scoped_ht(char_u *name, char_u **varname, int no_autoload);
int set_ref_in_previous_funccal(int copyID);
int set_ref_in_call_stack(int copyID);
int set_ref_in_func_args(int copyID);
+int set_ref_in_func(char_u *name, int copyID);
/* vim: set ft=c : */