mirror of
https://github.com/vim/vim.git
synced 2025-07-25 10:54:51 -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;
|
int failed = FALSE;
|
||||||
funcdict_T fudi;
|
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);
|
tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
|
||||||
if (fudi.fd_newkey != NULL)
|
if (fudi.fd_newkey != NULL)
|
||||||
{
|
{
|
||||||
|
@ -714,6 +714,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
97,
|
||||||
/**/
|
/**/
|
||||||
96,
|
96,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user