summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-10-17 21:53:58 +0100
committerBram Moolenaar <Bram@vim.org>2021-10-17 21:53:58 +0100
commite08aee60abc59f517d3e263fdb9ba4a0196d507c (patch)
treec3642a1a0df680560697deed56def42ef404445b
parent39c47c310487b72bc78ff197b5a068a0bcf830de (diff)
patch 8.2.3532: the previous '' mark is restored after moving the cursorv8.2.3532
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)
-rw-r--r--src/mark.c4
-rw-r--r--src/testdir/test_marks.vim10
-rw-r--r--src/version.c2
3 files changed, 13 insertions, 3 deletions
diff --git a/src/mark.c b/src/mark.c
index d606763121..c708e07e48 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 dcf4904d06..12501a3aba 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 fbae0194f8..53b902acac 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3532,
+/**/
3531,
/**/
3530,