diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-08-06 11:23:36 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-08-06 11:23:36 +0200 |
commit | bbd3e3c357487f7a5bdc704a819f63a7dd0dd66e (patch) | |
tree | ff477038d7ad597c4ccf0d606c84d8c88ea7d600 | |
parent | b8d732e93e4b70ad992a12f761bc6a1279dd495b (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.c | 5 | ||||
-rw-r--r-- | src/testdir/test_expr.vim | 5 | ||||
-rw-r--r-- | src/testdir/test_vim9_expr.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |