mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 17:36:29 +00:00
vim-patch:8.2.4719: ">" marker sometimes not displayed in the jumplist (#18056)
Problem: ">" marker sometimes not displayed in the jumplist.
Solution: If the buffer no longer exists show "-invalid-". (Christian
Brabandt, closes vim/vim#10131, closes vim/vim#10100)
a0f659c76e
Add a modeline to test_jumplist.vim
This commit is contained in:
@@ -844,6 +844,11 @@ void ex_jumps(exarg_T *eap)
|
||||
if (curwin->w_jumplist[i].fmark.mark.lnum != 0) {
|
||||
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)) {
|
||||
xfree(name);
|
||||
|
@@ -16,7 +16,6 @@ source test_fnamemodify.vim
|
||||
source test_ga.vim
|
||||
source test_glob2regpat.vim
|
||||
source test_global.vim
|
||||
source test_jumps.vim
|
||||
source test_lispwords.vim
|
||||
source test_menu.vim
|
||||
source test_move.vim
|
||||
|
@@ -64,3 +64,44 @@ func Test_getjumplist()
|
||||
|
||||
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
|
||||
|
@@ -1,11 +0,0 @@
|
||||
func Test_empty_buffer()
|
||||
new
|
||||
insert
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
.
|
||||
call assert_equal(1, line("''"))
|
||||
bwipe!
|
||||
endfunc
|
Reference in New Issue
Block a user