patch 8.2.4719: ">" marker sometimes not displayed in the jumplist
Problem: ">" marker sometimes not displayed in the jumplist.
Solution: If the buffer no longer exists show "-invalid-". (Christian
Brabandt, closes #10131, closes #10100)
diff --git a/src/mark.c b/src/mark.c
index fbb4b9a..e7addbe 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -871,6 +871,10 @@
{
name = fm_getname(&curwin->w_jumplist[i].fmark, 16);
+ // Make sure to output the current indicator, even when on an wiped
+ // out buffer. ":filter" may still skip it.
+ if (name == NULL && i == curwin->w_jumplistidx)
+ name = vim_strsave((char_u *)"-invalid-");
// apply :filter /pat/ or file name not available
if (name == NULL || message_filtered(name))
{
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index ec12b6b..e1a786f 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -170,7 +170,6 @@
test_join \
test_json \
test_jumplist \
- test_jumps \
test_lambda \
test_langmap \
test_largefile \
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index f54e6f2..845c117 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -17,7 +17,6 @@
source test_ga.vim
source test_glob2regpat.vim
source test_global.vim
-source test_jumps.vim
source test_lispwords.vim
source test_move.vim
source test_put.vim
diff --git a/src/testdir/test_jumplist.vim b/src/testdir/test_jumplist.vim
index c838bb9..054fda0 100644
--- a/src/testdir/test_jumplist.vim
+++ b/src/testdir/test_jumplist.vim
@@ -61,4 +61,43 @@
call delete("Xtest")
endfunc
+func Test_jumplist_invalid()
+ new
+ clearjumps
+ " put some randome text
+ put ='a'
+ let prev = bufnr('%')
+ setl nomodified bufhidden=wipe
+ e XXJumpListBuffer
+ let bnr = bufnr('%')
+ " 1) empty jumplist
+ let expected = [[
+ \ {'lnum': 2, 'bufnr': prev, 'col': 0, 'coladd': 0}], 1]
+ call assert_equal(expected, getjumplist())
+ let jumps = execute(':jumps')
+ call assert_equal('>', jumps[-1:])
+ " now jump back
+ exe ":norm! \<c-o>"
+ let expected = [[
+ \ {'lnum': 2, 'bufnr': prev, 'col': 0, 'coladd': 0},
+ \ {'lnum': 1, 'bufnr': bnr, 'col': 0, 'coladd': 0}], 0]
+ call assert_equal(expected, getjumplist())
+ let jumps = execute(':jumps')
+ call assert_match('> 0 2 0 -invalid-', jumps)
+endfunc
+
+" Test for '' mark in an empty buffer
+
+func Test_empty_buffer()
+ new
+ insert
+a
+b
+c
+d
+.
+ call assert_equal(1, line("''"))
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_jumps.vim b/src/testdir/test_jumps.vim
deleted file mode 100644
index 5b46adc..0000000
--- a/src/testdir/test_jumps.vim
+++ /dev/null
@@ -1,15 +0,0 @@
-" Test for '' mark in an empty buffer
-
-func Test_empty_buffer()
- new
- insert
-a
-b
-c
-d
-.
- call assert_equal(1, line("''"))
- bwipe!
-endfunc
-
-" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index f4eb4d1..b71928a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4719,
+/**/
4718,
/**/
4717,