]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.329 v7.3.329
authorBram Moolenaar <Bram@vim.org>
Fri, 30 Sep 2011 16:35:57 +0000 (18:35 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 30 Sep 2011 16:35:57 +0000 (18:35 +0200)
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.

src/eval.c
src/ex_docmd.c
src/version.c

index 780ed9eca0f7ffd99d6e599a10dabff9b52de808..efbcfaf51f7fef4655a3260fa31c1202577f8f20 100644 (file)
@@ -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;
     }
 
index 9b5a5b164dd6b010915cb729868ec767ecde8637..3008a1d347b82e8ce8b26b689f2f4c20e932bbc6 100644 (file)
@@ -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
index 3aa358f57218cca370be42e8926bf205f0510b39..edf6aaab5bdee57b6f2a8701136f52c7e4edbf00 100644 (file)
@@ -709,6 +709,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    329,
 /**/
     328,
 /**/