aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/shada.c2
-rw-r--r--test/functional/shada/marks_spec.lua7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index 7ec954080b..8f731e7eda 100644
--- a/src/nvim/shada.c
+++ b/src/nvim/shada.c
@@ -1208,7 +1208,7 @@ static void shada_read(ShaDaReadDef *const sd_reader, const int flags)
khash_t(bufset) cl_bufs = KHASH_EMPTY_TABLE(bufset);
khash_t(fnamebufs) fname_bufs = KHASH_EMPTY_TABLE(fnamebufs);
khash_t(strset) oldfiles_set = KHASH_EMPTY_TABLE(strset);
- if (get_old_files && oldfiles_list == NULL) {
+ if (get_old_files && (oldfiles_list == NULL || force)) {
oldfiles_list = list_alloc();
set_vim_var_list(VV_OLDFILES, oldfiles_list);
}
diff --git a/test/functional/shada/marks_spec.lua b/test/functional/shada/marks_spec.lua
index 341ca2d647..8b9e70045c 100644
--- a/test/functional/shada/marks_spec.lua
+++ b/test/functional/shada/marks_spec.lua
@@ -102,6 +102,13 @@ describe('ShaDa support code', function()
eq(testfilename_2, oldfiles[2]:sub(-#testfilename_2))
eq(tf_full, oldfiles[1])
eq(tf_full_2, oldfiles[2])
+ nvim_command('rshada!')
+ local oldfiles = nvim('get_vvar', 'oldfiles')
+ eq(2, #oldfiles)
+ eq(testfilename, oldfiles[1]:sub(-#testfilename))
+ eq(testfilename_2, oldfiles[2]:sub(-#testfilename_2))
+ eq(tf_full, oldfiles[1])
+ eq(tf_full_2, oldfiles[2])
end)
it('is able to dump and restore jump list', function()