summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-06 11:23:36 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-06 11:23:36 +0200
commitbbd3e3c357487f7a5bdc704a819f63a7dd0dd66e (patch)
treeff477038d7ad597c4ccf0d606c84d8c88ea7d600
parentb8d732e93e4b70ad992a12f761bc6a1279dd495b (diff)
patch 8.2.1378: cannot put space between function name and parenv8.2.1378
Problem: Cannot put space between function name and paren. Solution: Allow this for backwards compatibility.
-rw-r--r--src/eval.c5
-rw-r--r--src/testdir/test_expr.vim5
-rw-r--r--src/testdir/test_vim9_expr.vim4
-rw-r--r--src/version.c2
4 files changed, 15 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index a7f6086ef6..877b3bc0ff 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3198,9 +3198,12 @@ eval7(
{
int flags = evalarg == NULL ? 0 : evalarg->eval_flags;
- if (**arg == '(')
+ if ((in_vim9script() ? **arg : *skipwhite(*arg)) == '(')
+ {
// "name(..." recursive!
+ *arg = skipwhite(*arg);
ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL);
+ }
else if (flags & EVAL_CONSTANT)
ret = FAIL;
else if (evaluate)
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index b4eeea653b..cfae760d49 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -599,6 +599,11 @@ func Test_expr_eval_error()
call assert_fails("let v = -{}", 'E728:')
endfunc
+func Test_white_in_function_call()
+ let text = substitute ( 'some text' , 't' , 'T' , 'g' )
+ call assert_equal('some TexT', text)
+endfunc
+
" Test for float value comparison
func Test_float_compare()
CheckFeature float
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index aa705b2168..746983d14b 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1686,6 +1686,10 @@ def Test_expr7_call()
assert_equal([0, 1, 2], --3->range())
call CheckDefFailure(["let x = 'yes'->Echo"], 'E107:')
+ call CheckScriptFailure([
+ "vim9script",
+ "let x = substitute ('x', 'x', 'x', 'x')"
+ ], 'E121:')
enddef
diff --git a/src/version.c b/src/version.c
index f5eb42bcfa..ba24f693f5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1378,
+/**/
1377,
/**/
1376,