Mercurial > vim
comparison src/eval.c @ 21044:dc2ca403a217 v8.2.1073
patch 8.2.1073: Vim9: no line break allowed in () expression
Commit: https://github.com/vim/vim/commit/7a4981b93642b5b62018cd8150b3fb0dfa2417d4
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jun 27 20:46:29 2020 +0200
patch 8.2.1073: Vim9: no line break allowed in () expression
Problem: Vim9: no line break allowed in () expression.
Solution: Skip a line break.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 27 Jun 2020 21:00:03 +0200 |
parents | d9e0db9b2b99 |
children | 0ca7e04d39e3 |
comparison
equal
deleted
inserted
replaced
21043:94932e8b7716 | 21044:dc2ca403a217 |
---|---|
2451 * Get the second variable. | 2451 * Get the second variable. |
2452 */ | 2452 */ |
2453 if (op == '.' && *(*arg + 1) == '.') // .. string concatenation | 2453 if (op == '.' && *(*arg + 1) == '.') // .. string concatenation |
2454 ++*arg; | 2454 ++*arg; |
2455 *arg = skipwhite(*arg + 1); | 2455 *arg = skipwhite(*arg + 1); |
2456 eval_next_non_blank(*arg, evalarg, &getnext); | |
2457 if (getnext) | |
2458 *arg = eval_next_line(evalarg); | |
2456 if (eval6(arg, &var2, evalarg, op == '.') == FAIL) | 2459 if (eval6(arg, &var2, evalarg, op == '.') == FAIL) |
2457 { | 2460 { |
2458 clear_tv(rettv); | 2461 clear_tv(rettv); |
2459 return FAIL; | 2462 return FAIL; |
2460 } | 2463 } |
2888 | 2891 |
2889 /* | 2892 /* |
2890 * nested expression: (expression). | 2893 * nested expression: (expression). |
2891 */ | 2894 */ |
2892 case '(': { | 2895 case '(': { |
2896 int getnext; | |
2897 | |
2893 *arg = skipwhite(*arg + 1); | 2898 *arg = skipwhite(*arg + 1); |
2899 eval_next_non_blank(*arg, evalarg, &getnext); | |
2900 if (getnext) | |
2901 *arg = eval_next_line(evalarg); | |
2902 | |
2894 ret = eval1(arg, rettv, evalarg); // recursive! | 2903 ret = eval1(arg, rettv, evalarg); // recursive! |
2904 | |
2905 eval_next_non_blank(*arg, evalarg, &getnext); | |
2906 if (getnext) | |
2907 *arg = eval_next_line(evalarg); | |
2895 if (**arg == ')') | 2908 if (**arg == ')') |
2896 ++*arg; | 2909 ++*arg; |
2897 else if (ret == OK) | 2910 else if (ret == OK) |
2898 { | 2911 { |
2899 emsg(_(e_missing_close)); | 2912 emsg(_(e_missing_close)); |