Mercurial > vim
changeset 25998:902aab6dc499 v8.2.3532
patch 8.2.3532: the previous '' mark is restored after moving the cursor
Commit: https://github.com/vim/vim/commit/e08aee60abc59f517d3e263fdb9ba4a0196d507c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Oct 17 21:53:58 2021 +0100
patch 8.2.3532: the previous '' mark is restored after moving the cursor
Problem: The previous '' mark is restored after moving the cursor to the
original jump position. (Tony Chen)
Solution: Forget the previous position after checking. (closes #8985)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 17 Oct 2021 23:00:06 +0200 |
parents | 847b1374b39e |
children | 5080aec1406b |
files | src/mark.c src/testdir/test_marks.vim src/version.c |
diffstat | 3 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/mark.c +++ b/src/mark.c @@ -181,10 +181,8 @@ checkpcmark(void) if (curwin->w_prev_pcmark.lnum != 0 && (EQUAL_POS(curwin->w_pcmark, curwin->w_cursor) || curwin->w_pcmark.lnum == 0)) - { curwin->w_pcmark = curwin->w_prev_pcmark; - curwin->w_prev_pcmark.lnum = 0; // Show it has been checked - } + curwin->w_prev_pcmark.lnum = 0; // it has been checked } #if defined(FEAT_JUMPLIST) || defined(PROTO)
--- a/src/testdir/test_marks.vim +++ b/src/testdir/test_marks.vim @@ -26,6 +26,16 @@ func Test_Incr_Marks() enew! endfunc +func Test_previous_jump_mark() + new + call setline(1, ['']->repeat(6)) + normal Ggg + call assert_equal(6, getpos("''")[1]) + normal jjjjj + call assert_equal(6, getpos("''")[1]) + bwipe! +endfunc + func Test_setpos() new Xone let onebuf = bufnr('%')