aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-08-26 08:47:37 +0200
committerDaniel Hahler <git@thequod.de>2019-08-26 09:39:00 +0200
commitb2d6a6891e52254700ee2d81a8651c3e50466d84 (patch)
treed8b7939ac0e22274616f8729d58305b92143914d
parente3e0574cb3feac4f539383d47f82d0b6e04d8c9b (diff)
downloadrneovim-b2d6a6891e52254700ee2d81a8651c3e50466d84.tar.gz
rneovim-b2d6a6891e52254700ee2d81a8651c3e50466d84.tar.bz2
rneovim-b2d6a6891e52254700ee2d81a8651c3e50466d84.zip
findoption_len: treat viminfo/viminfofile as aliases
Ref: https://github.com/neovim/neovim/pull/10672#issuecomment-524716824
-rw-r--r--src/nvim/option.c9
-rw-r--r--src/nvim/options.lua15
-rw-r--r--test/functional/options/defaults_spec.lua6
3 files changed, 19 insertions, 11 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index c109e4e521..fae4507f1e 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -4643,6 +4643,15 @@ int findoption_len(const char *const arg, const size_t len)
}
if (s == NULL) {
opt_idx = -1;
+ } else {
+ // Nvim: handle option aliases.
+ if (STRNCMP(options[opt_idx].fullname, "viminfo", 7) == 0) {
+ if (STRLEN(options[opt_idx].fullname) == 7) {
+ return findoption_len("shada", 5);
+ }
+ assert(STRCMP(options[opt_idx].fullname, "viminfofile") == 0);
+ return findoption_len("shadafile", 9);
+ }
}
return opt_idx;
}
diff --git a/src/nvim/options.lua b/src/nvim/options.lua
index 3280c92b2d..52e788944b 100644
--- a/src/nvim/options.lua
+++ b/src/nvim/options.lua
@@ -2659,21 +2659,14 @@ return {
defaults={if_true={vi="folds,options,cursor,curdir"}}
},
{
+ -- Alias for "shada".
full_name='viminfo', abbreviation='vi',
- type='string', list='onecomma', scope={'global'},
- deny_duplicates=true,
- secure=true,
- varname='p_shada',
- defaults={if_true={vi="", vim="!,'100,<50,s10,h"}}
+ type='string', scope={'global'}, nodefault=true,
},
{
+ -- Alias for "shadafile".
full_name='viminfofile', abbreviation='vif',
- type='string', list='onecomma', scope={'global'},
- deny_duplicates=true,
- vi_def=true,
- secure=true,
- varname='p_shadafile',
- defaults={if_true={vi=""}}
+ type='string', scope={'global'}, nodefault=true,
},
{
full_name='virtualedit', abbreviation='ve',
diff --git a/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua
index 415b526051..490a04186d 100644
--- a/test/functional/options/defaults_spec.lua
+++ b/test/functional/options/defaults_spec.lua
@@ -178,6 +178,12 @@ describe('startup defaults', function()
eq({ f }, eval('v:oldfiles'))
os.remove('Xtest-foo')
rmdir('Xtest-userdata')
+
+ -- Handles viminfo/viminfofile as alias for shada/shadafile.
+ eq('\n shadafile=', eval('execute("set shadafile?")'))
+ eq('\n shadafile=', eval('execute("set viminfofile?")'))
+ eq("\n shada=!,'100,<50,s10,h", eval('execute("set shada?")'))
+ eq("\n shada=!,'100,<50,s10,h", eval('execute("set viminfo?")'))
end)
it("'packpath'", function()