Mercurial > vim
diff src/dict.c @ 21046:0ca7e04d39e3 v8.2.1074
patch 8.2.1074: Vim9: no line break allowed after some operators
Commit: https://github.com/vim/vim/commit/9215f01218b2ed2cfe49c1f43fcf342bd9ffdded
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jun 27 21:18:00 2020 +0200
patch 8.2.1074: Vim9: no line break allowed after some operators
Problem: Vim9: no line break allowed after some operators.
Solution: Skip a line break after the operator. Add
eval_may_get_next_line() to simplify checking for a line break.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 27 Jun 2020 21:30:04 +0200 |
parents | 6ad5f0c99ee9 |
children | b0baa80cb53f |
line wrap: on
line diff
--- a/src/dict.c +++ b/src/dict.c @@ -805,7 +805,6 @@ eval_dict(char_u **arg, typval_T *rettv, char_u buf[NUMBUFLEN]; int vim9script = current_sctx.sc_version == SCRIPT_VERSION_VIM9; int had_comma; - int getnext; /* * First check if it's not a curly-braces thing: {expr}. @@ -831,10 +830,7 @@ eval_dict(char_u **arg, typval_T *rettv, tvkey.v_type = VAR_UNKNOWN; tv.v_type = VAR_UNKNOWN; - *arg = skipwhite(*arg + 1); - eval_next_non_blank(*arg, evalarg, &getnext); - if (getnext) - *arg = eval_next_line(evalarg); + *arg = skipwhite_and_linebreak(*arg + 1, evalarg); while (**arg != '}' && **arg != NUL) { if ((literal @@ -866,10 +862,7 @@ eval_dict(char_u **arg, typval_T *rettv, goto failret; } - *arg = skipwhite(*arg + 1); - eval_next_non_blank(*arg, evalarg, &getnext); - if (getnext) - *arg = eval_next_line(evalarg); + *arg = skipwhite_and_linebreak(*arg + 1, evalarg); if (eval1(arg, &tv, evalarg) == FAIL) // recursive! { if (evaluate) @@ -911,9 +904,7 @@ eval_dict(char_u **arg, typval_T *rettv, } // the "}" can be on the next line - eval_next_non_blank(*arg, evalarg, &getnext); - if (getnext) - *arg = eval_next_line(evalarg); + *arg = skipwhite_and_linebreak(*arg, evalarg); if (**arg == '}') break; if (!had_comma)