aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-04-15 16:36:19 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-04-15 17:09:41 +0800
commit700152fbf8e035e400e4bd86a2f629179b27e2ef (patch)
treefc60cb6e155daf0b8f694734564a3b4a825cead4
parent0a61cb60a633f05e3f05f8d5dae241910a92ee1f (diff)
downloadrneovim-700152fbf8e035e400e4bd86a2f629179b27e2ef.tar.gz
rneovim-700152fbf8e035e400e4bd86a2f629179b27e2ef.tar.bz2
rneovim-700152fbf8e035e400e4bd86a2f629179b27e2ef.zip
vim-patch:8.2.1378: cannot put space between function name and paren
Problem: Cannot put space between function name and paren. Solution: Allow this for backwards compatibility. https://github.com/vim/vim/commit/bbd3e3c357487f7a5bdc704a819f63a7dd0dd66e This fixes a regression from patch 8.2.1365, which isn't ported yet. Co-authored-by: Bram Moolenaar <Bram@vim.org>
-rw-r--r--src/nvim/eval.c3
-rw-r--r--test/old/testdir/test_expr.vim5
2 files changed, 7 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index bbe4fe055d..b240c36977 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -3149,8 +3149,9 @@ static int eval7(char **arg, typval_T *rettv, evalarg_T *const evalarg, bool wan
ret = FAIL;
} else {
const int flags = evalarg == NULL ? 0 : evalarg->eval_flags;
- if (**arg == '(') {
+ if (*skipwhite(*arg) == '(') {
// "name(..." recursive!
+ *arg = skipwhite(*arg);
ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL);
} else if (evaluate) {
// get value of variable
diff --git a/test/old/testdir/test_expr.vim b/test/old/testdir/test_expr.vim
index 1a00a85b0f..a860cf2970 100644
--- a/test/old/testdir/test_expr.vim
+++ b/test/old/testdir/test_expr.vim
@@ -717,6 +717,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