Mercurial > vim
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 == '=') {