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)