aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-08-10 01:39:50 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 22:00:37 +0300
commit4dc3bc8fc1d94f9f97ab06d030b9279e7e3b5934 (patch)
tree0d34715b3053f21223412a2b1546b978346f8730
parentc9963872ef11f536e9728bf3e709ab39fe5056ec (diff)
downloadrneovim-4dc3bc8fc1d94f9f97ab06d030b9279e7e3b5934.tar.gz
rneovim-4dc3bc8fc1d94f9f97ab06d030b9279e7e3b5934.tar.bz2
rneovim-4dc3bc8fc1d94f9f97ab06d030b9279e7e3b5934.zip
shada,functests: Make sure that v:oldfiles list is reset on :rshada!
-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()