From e08aee60abc59f517d3e263fdb9ba4a0196d507c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 17 Oct 2021 21:53:58 +0100 Subject: [PATCH] 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) --- src/mark.c | 4 +--- src/testdir/test_marks.vim | 10 ++++++++++ src/version.c | 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mark.c b/src/mark.c index d60676312..c708e07e4 100644 --- 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) diff --git a/src/testdir/test_marks.vim b/src/testdir/test_marks.vim index dcf4904d0..12501a3ab 100644 --- 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('%') diff --git a/src/version.c b/src/version.c index fbae0194f..53b902aca 100644 --- a/src/version.c +++ b/src/version.c @@ -757,6 +757,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3532, /**/ 3531, /**/ -- 2.50.1