0
0
mirror of https://github.com/vim/vim.git synced 2025-07-24 10:45:12 -04:00

updated for version 7.3.097

Problem:    Using ":call" inside "if 0" does not see that a function returns a
            Dict and gives error for "." as string concatenation.
Solution:   Use eval0() to skip over the expression.  (Yasuhiro Matsumoto)
This commit is contained in:
Bram Moolenaar 2011-01-04 19:03:27 +01:00
parent 870b05c4c0
commit 6d0efdaab5
2 changed files with 11 additions and 0 deletions

View File

@ -3335,6 +3335,15 @@ ex_call(eap)
int failed = FALSE;
funcdict_T fudi;
if (eap->skip)
{
/* 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);
return;
}
tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
if (fudi.fd_newkey != NULL)
{

View File

@ -714,6 +714,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
97,
/**/
96,
/**/