Mercurial > vim
changeset 25842:196f75cf6983 v8.2.3455
patch 8.2.3455: using a count with "gp" leaves '] in wrong position
Commit: https://github.com/vim/vim/commit/56858e4ed4e338e15821767b8303b06099e40384
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Sep 22 16:43:59 2021 +0200
patch 8.2.3455: using a count with "gp" leaves '] in wrong position
Problem: Using a count with "gp" leaves '] in wrong position. (Naohiro Ono)
Solution: Correct the mark position. (closes https://github.com/vim/vim/issues/8899)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 22 Sep 2021 16:45:04 +0200 |
parents | f3fc9c20b2b3 |
children | 40b0027159bc |
files | src/register.c src/testdir/test_put.vim src/version.c |
diffstat | 3 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/register.c +++ b/src/register.c @@ -2205,6 +2205,9 @@ error: { curwin->w_cursor.lnum = new_lnum; curwin->w_cursor.col = col; + curbuf->b_op_end = curwin->w_cursor; + if (col > 1) + curbuf->b_op_end.col = col - 1; } } else if (y_type == MLINE)
--- a/src/testdir/test_put.vim +++ b/src/testdir/test_put.vim @@ -126,8 +126,10 @@ func Test_gp_with_count_leaves_cursor_at new call setline(1, '<---->') call setreg('@', "foo\nbar", 'c') - exe "normal 1G3|3gpix\<Esc>" - call assert_equal(['<--foo', 'barfoo', 'barfoo', 'barx-->'], getline(1, '$')) + normal 1G3|3gp + call assert_equal([0, 4, 4, 0], getpos(".")) + call assert_equal(['<--foo', 'barfoo', 'barfoo', 'bar-->'], getline(1, '$')) + call assert_equal([0, 4, 3, 0], getpos("']")) bwipe! endfunc