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));