diff options
author | ZyX <kp-pav@yandex.ru> | 2016-07-17 15:28:14 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-01-04 16:34:06 +0300 |
commit | 81ef9f55aebb9572adac14779369b37a4569a59c (patch) | |
tree | 91ef373dd1d6f17ad56094c69d549ede80890e44 | |
parent | d8a97d7b7912ae981c3b904ccbd014b2f2da1832 (diff) | |
download | rneovim-81ef9f55aebb9572adac14779369b37a4569a59c.tar.gz rneovim-81ef9f55aebb9572adac14779369b37a4569a59c.tar.bz2 rneovim-81ef9f55aebb9572adac14779369b37a4569a59c.zip |
shada: Save current cursor position before saving jumps
-rw-r--r-- | src/nvim/shada.c | 5 | ||||
-rw-r--r-- | test/functional/shada/marks_spec.lua | 13 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c index 867c697a9a..0c710b3903 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -2591,9 +2591,12 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer, // Initialize jump list const void *jump_iter = NULL; do { - xfmark_T fm; + setpcmark(); cleanup_jumplist(); + + xfmark_T fm; jump_iter = mark_jumplist_iter(jump_iter, curwin, &fm); + const buf_T *const buf = (fm.fmark.fnum == 0 ? NULL : buflist_findnr(fm.fmark.fnum)); diff --git a/test/functional/shada/marks_spec.lua b/test/functional/shada/marks_spec.lua index b7c0f61f57..36d2c665d7 100644 --- a/test/functional/shada/marks_spec.lua +++ b/test/functional/shada/marks_spec.lua @@ -153,6 +153,19 @@ describe('ShaDa support code', function() eq(saved, redir_exec('jumps')) end) + it('when dumping jump list also dumps current position', function() + nvim_command('edit ' .. testfilename) + nvim_command('normal! G') + nvim_command('split ' .. testfilename_2) + nvim_command('normal! G') + nvim_command('wshada') + nvim_command('quit') + nvim_command('rshada') + nvim_command('normal! \15') -- <C-o> + eq(testfilename_2, funcs.bufname('%')) + eq({2, 0}, curwinmeths.get_cursor()) + end) + it('is able to dump and restore jump list with different times (slow!)', function() nvim_command('edit ' .. testfilename_2) |