aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-10-17 15:41:05 +0300
committerZyX <kp-pav@yandex.ru>2015-10-23 14:54:10 +0300
commit2e750973e936a04d9effea88f78f03a5a07ab282 (patch)
tree302e14ec5e20e2a9187357b0371cdf3663a2bc35
parent502a20a8feb80e7e12eb34231975257b915e3115 (diff)
downloadrneovim-2e750973e936a04d9effea88f78f03a5a07ab282.tar.gz
rneovim-2e750973e936a04d9effea88f78f03a5a07ab282.tar.bz2
rneovim-2e750973e936a04d9effea88f78f03a5a07ab282.zip
shada: Move shada file to a new location
-rw-r--r--src/nvim/main.c2
-rw-r--r--src/nvim/os/unix_defs.h3
-rw-r--r--src/nvim/os/win_defs.h1
-rw-r--r--src/nvim/shada.c18
4 files changed, 17 insertions, 7 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 6186d2e7e7..90d469b203 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -2028,7 +2028,7 @@ static void usage(void)
mch_msg(_(" -r, -L List swap files and exit\n"));
mch_msg(_(" -r <file> Recover crashed session\n"));
mch_msg(_(" -u <nvimrc> Use <nvimrc> instead of the default\n"));
- mch_msg(_(" -i <shada> Use <shada> instead of the default " SHADA_FILE "\n")); // NOLINT(whitespace/line_length)
+ mch_msg(_(" -i <shada> Use <shada> instead of the default\n"));
mch_msg(_(" --noplugin Don't load plugin scripts\n"));
mch_msg(_(" -o[N] Open N windows (default: one for each file)\n"));
mch_msg(_(" -O[N] Like -o but split vertically\n"));
diff --git a/src/nvim/os/unix_defs.h b/src/nvim/os/unix_defs.h
index 83c6752ff7..82a434cdf1 100644
--- a/src/nvim/os/unix_defs.h
+++ b/src/nvim/os/unix_defs.h
@@ -37,8 +37,5 @@
#ifndef VIMRC_FILE
# define VIMRC_FILE ".nvimrc"
#endif
-#ifndef SHADA_FILE
-# define SHADA_FILE "~/.nvim/shada/main.shada"
-#endif
#endif // NVIM_OS_UNIX_DEFS_H
diff --git a/src/nvim/os/win_defs.h b/src/nvim/os/win_defs.h
index 427e6a8481..585def7dd0 100644
--- a/src/nvim/os/win_defs.h
+++ b/src/nvim/os/win_defs.h
@@ -8,7 +8,6 @@
// Defines needed to fix the build on Windows:
// - USR_EXRC_FILE
-// - SHADA_FILE
// - DFLT_DIR
// - DFLT_BDIR
// - DFLT_VDIR
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index 523f8db6f0..6fd13a88b7 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");
+ 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
@@ -1608,11 +1622,11 @@ static char *shada_filename(const char *file)
if (STRCMP("$VIM", NameBuff) != 0) { // $VIM was expanded
file = SHADA_FILE2;
} else {
- file = SHADA_FILE;
+ file = shada_get_default_file();
}
} else {
#endif
- file = SHADA_FILE;
+ file = shada_get_default_file();
#ifdef SHADA_FILE2
}
#endif