changeset 27585:a31dd0a3cb39 v8.2.4319

patch 8.2.4319: :put does not work properly in compiled function Commit: https://github.com/vim/vim/commit/4e713bafc0ae191b1830e3cd3c323ebd695bc3a1 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Feb 7 15:31:37 2022 +0000 patch 8.2.4319: :put does not work properly in compiled function Problem: :put does not work properly in compiled function. (John Beckett) Solution: Adjust the direction when using line zero.
author Bram Moolenaar <Bram@vim.org>
date Mon, 07 Feb 2022 16:45:03 +0100
parents becde709128e
children aac8ffd95aea
files src/testdir/test_vim9_cmd.vim src/version.c src/vim9execute.c
diffstat 3 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1156,7 +1156,13 @@ def Test_put_command()
   :2put =['a', 'b', 'c']
   assert_equal(['ppp', 'a', 'b', 'c', 'above'], getline(2, 6))
 
+  :0put ='first'
+  assert_equal('first', getline(1))
+  :1put! ='first again'
+  assert_equal('first again', getline(1))
+
   # compute range at runtime
+  :%del
   setline(1, range(1, 8))
   @a = 'aaa'
   :$-2put a
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4319,
+/**/
     4318,
 /**/
     4317,
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -4617,7 +4617,12 @@ exec_instructions(ectx_T *ectx)
 			// :put! above cursor
 			dir = BACKWARD;
 		    else if (lnum >= 0)
-			curwin->w_cursor.lnum = iptr->isn_arg.put.put_lnum;
+		    {
+			curwin->w_cursor.lnum = lnum;
+			if (lnum == 0)
+			    // check_cursor() below will move to line 1
+			    dir = BACKWARD;
+		    }
 
 		    if (regname == '=')
 		    {