diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-09-30 18:35:57 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-09-30 18:35:57 +0200 |
commit | 250912918e303cef57cfaa6e1c54aaaac32a9189 (patch) | |
tree | 91d95b7d26cd0e364a4c304bc5b01923a97d8449 /src | |
parent | 73dc59aad86cd3e191b148ac367bf86daa42241c (diff) | |
download | vim-250912918e303cef57cfaa6e1c54aaaac32a9189.zip |
updated for version 7.3.329
Problem: When skipping over code from ":for" to ":endfor" get an error for
calling a dict function. (Yasuhiro Matsumoto)
Solution: Ignore errors when skipping over :call command.
Diffstat (limited to 'src')
-rw-r--r-- | src/eval.c | 5 | ||||
-rw-r--r-- | src/ex_docmd.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c index 780ed9eca..efbcfaf51 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3377,7 +3377,10 @@ ex_call(eap) /* trans_function_name() doesn't work well when skipping, use eval0() * instead to skip to any following command, e.g. for: * :if 0 | call dict.foo().bar() | endif */ - eval0(eap->arg, &rettv, &eap->nextcmd, FALSE); + ++emsg_skip; + if (eval0(eap->arg, &rettv, &eap->nextcmd, FALSE) != FAIL) + clear_tv(&rettv); + --emsg_skip; return; } diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 9b5a5b164..3008a1d34 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -371,11 +371,9 @@ static void ex_tag_cmd __ARGS((exarg_T *eap, char_u *name)); # define ex_endif ex_ni # define ex_else ex_ni # define ex_while ex_ni -# define ex_for ex_ni # define ex_continue ex_ni # define ex_break ex_ni # define ex_endwhile ex_ni -# define ex_endfor ex_ni # define ex_throw ex_ni # define ex_try ex_ni # define ex_catch ex_ni diff --git a/src/version.c b/src/version.c index 3aa358f57..edf6aaab5 100644 --- a/src/version.c +++ b/src/version.c @@ -710,6 +710,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 329, +/**/ 328, /**/ 327, |