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:
parent
870b05c4c0
commit
6d0efdaab5
@ -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)
|
||||
{
|
||||
|
@ -714,6 +714,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
97,
|
||||
/**/
|
||||
96,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user