]> granicus.if.org Git - vim/commitdiff
patch 8.2.1075: Vim9: no line break allowed in :echo expression v8.2.1075
authorBram Moolenaar <Bram@vim.org>
Sat, 27 Jun 2020 19:56:17 +0000 (21:56 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 27 Jun 2020 19:56:17 +0000 (21:56 +0200)
Problem:    Vim9: no line break allowed in :echo expression.
Solution:   Skip linebreak.

src/eval.c
src/testdir/test_vim9_cmd.vim
src/version.c

index ca98d2eb0213d0fb60f760b782efb4edb7939758..736023930be2cd03c98434cb2198ed7b5a0a9045 100644 (file)
@@ -5190,6 +5190,7 @@ ex_echo(exarg_T *eap)
 
     CLEAR_FIELD(evalarg);
     evalarg.eval_flags = eap->skip ? 0 : EVAL_EVALUATE;
+    evalarg.eval_cookie = eap->getline == getsourceline ? eap->cookie : NULL;
 
     if (eap->skip)
        ++emsg_skip;
index 55d756a676b62c9840fd2a8c74245ce5217cce4b..2d5bf4516ecffc278825be0d6bfd33337d289558 100644 (file)
@@ -78,5 +78,28 @@ def Test_assign_dict()
   assert_equal({'0': 0, '1': 1, '2': 2}, nrd)
 enddef
 
+def Test_echo_linebreak()
+  let lines =<< trim END
+      vim9script
+      redir @a
+      echo 'one'
+            .. 'two'
+      redir END
+      assert_equal("\nonetwo", @a)
+  END
+  CheckScriptSuccess(lines)
+
+  lines =<< trim END
+      vim9script
+      redir @a
+      echo 11 +
+            77
+            - 22
+      redir END
+      assert_equal("\n66", @a)
+  END
+  CheckScriptSuccess(lines)
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
index dc05521890303200ab5d0953b0257853a13b4af2..c304fe5ccfe211222ee815f88050cfc219d4b770 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1075,
 /**/
     1074,
 /**/