diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-06-27 20:46:29 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-06-27 20:46:29 +0200 |
commit | 7a4981b93642b5b62018cd8150b3fb0dfa2417d4 (patch) | |
tree | 234824ae083f16be5bcccd8d534fc1b3715b1812 /src/eval.c | |
parent | a0a0c4147fd966e0cd923a2bbfb84b14b15a297e (diff) |
patch 8.2.1073: Vim9: no line break allowed in () expressionv8.2.1073
Problem: Vim9: no line break allowed in () expression.
Solution: Skip a line break.
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index e1a33df608..86d81fa09e 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2453,6 +2453,9 @@ eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg) if (op == '.' && *(*arg + 1) == '.') // .. string concatenation ++*arg; *arg = skipwhite(*arg + 1); + eval_next_non_blank(*arg, evalarg, &getnext); + if (getnext) + *arg = eval_next_line(evalarg); if (eval6(arg, &var2, evalarg, op == '.') == FAIL) { clear_tv(rettv); @@ -2890,8 +2893,18 @@ eval7( * nested expression: (expression). */ case '(': { + int getnext; + *arg = skipwhite(*arg + 1); + eval_next_non_blank(*arg, evalarg, &getnext); + if (getnext) + *arg = eval_next_line(evalarg); + ret = eval1(arg, rettv, evalarg); // recursive! + + eval_next_non_blank(*arg, evalarg, &getnext); + if (getnext) + *arg = eval_next_line(evalarg); if (**arg == ')') ++*arg; else if (ret == OK) |