summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2011-09-30 18:35:57 +0200
committerBram Moolenaar <Bram@vim.org>2011-09-30 18:35:57 +0200
commit250912918e303cef57cfaa6e1c54aaaac32a9189 (patch)
tree91d95b7d26cd0e364a4c304bc5b01923a97d8449
parent73dc59aad86cd3e191b148ac367bf86daa42241c (diff)
downloadvim-git-7.3.329.tar.gz
updated for version 7.3.329v7.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.
-rw-r--r--src/eval.c5
-rw-r--r--src/ex_docmd.c2
-rw-r--r--src/version.c2
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,