# HG changeset patch # User Bram Moolenaar # Date 1317400557 -7200 # Node ID ec901ddc84d5c66c5d0c1dcca093584598487f9f # Parent 906ea37adb23c58d59d4183bd4d9187d1d740afc 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. diff --git a/src/eval.c b/src/eval.c --- 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 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -371,11 +371,9 @@ static void ex_tag_cmd __ARGS((exarg_T * # 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 --- 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,