diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2015-10-25 22:38:23 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2015-10-25 22:38:23 -0400 |
commit | 1ca5646bb52ec5c23b28f45bb7bc5d25cffad9b0 (patch) | |
tree | 7495d3f50b897e74fc4597d061d427a4e9b1ae36 /src/nvim/shada.c | |
parent | de4cb766ca381c09fd3f938136c1932ebf008f63 (diff) | |
parent | 42047acb4f07c689936b051864c6b4448b1b6aa1 (diff) | |
download | rneovim-1ca5646bb52ec5c23b28f45bb7bc5d25cffad9b0.tar.gz rneovim-1ca5646bb52ec5c23b28f45bb7bc5d25cffad9b0.tar.bz2 rneovim-1ca5646bb52ec5c23b28f45bb7bc5d25cffad9b0.zip |
Merge pull request #3470 from ZyX-I/pr-3198
XDG base directory specification support
Diffstat (limited to 'src/nvim/shada.c')
-rw-r--r-- | src/nvim/shada.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c index 93a40fa736..f8643fe655 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -1583,6 +1583,20 @@ shada_read_main_cycle_end: kh_dealloc(strset, &oldfiles_set); } +/// Default shada file location: cached path +static char *default_shada_file = NULL; + +/// Get the default ShaDa file +static const char *shada_get_default_file(void) + FUNC_ATTR_WARN_UNUSED_RESULT +{ + if (default_shada_file == NULL) { + char *shada_dir = stdpaths_user_data_subpath("shada", 0); + default_shada_file = concat_fnames_realloc(shada_dir, "main.shada", true); + } + return default_shada_file; +} + /// Get the ShaDa file name to use /// /// If "file" is given and not empty, use it (has already been expanded by @@ -1600,22 +1614,7 @@ static char *shada_filename(const char *file) file = used_shada_file; } else { if ((file = find_shada_parameter('n')) == NULL || *file == NUL) { -#ifdef SHADA_FILE2 - // don't use $HOME when not defined (turned into "c:/"!). - if (os_getenv((char_u *)"HOME") == NULL) { - // don't use $VIM when not available. - expand_env((char_u *)"$VIM", NameBuff, MAXPATHL); - if (STRCMP("$VIM", NameBuff) != 0) { // $VIM was expanded - file = SHADA_FILE2; - } else { - file = SHADA_FILE; - } - } else { -#endif - file = SHADA_FILE; -#ifdef SHADA_FILE2 - } -#endif + file = shada_get_default_file(); } // XXX It used to be one level lower, so that whatever is in // `used_shada_file` was expanded. I intentionally moved it here |