diff options
-rw-r--r-- | src/nvim/shada.c | 2 | ||||
-rw-r--r-- | test/functional/shada/marks_spec.lua | 7 |
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() |