From 2971887bbdd34813c86bd3e2f1959e4f608eb4f0 Mon Sep 17 00:00:00 2001 From: Jeff Kowalski Date: Wed, 16 Sep 2015 21:31:08 -0700 Subject: Access fish_history from $XDG_DATA_HOME Add new functions path_get_data and path_create_data which parallel existing functions path_get_config and path_create_data. The new functions refer to XDG_DATA_HOME, if it is defined, or ./local/share if not. Modify history_filename to use the new function path_get_data. As a consequence, fish_history will now be located in XDG_DATA_HOME, not XDG_CONFIG_HOME. Note that these changes mirror what is already used in fish-shell/share/tools/create_manpage_completions.py, which stores the completions in XDG_DATA_HOME This change matches recommendations in the xdg basedir spec at http://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html ($XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.) It addresses suggestions from the following issues: 1. Don't put history in $XDG_CONFIG_HOME (closes #744) https://github.com/fish-shell/fish-shell/issues/744 2. Fish is placing non-config files in $XDG_CONFIG_HOME #1257 https://github.com/fish-shell/fish-shell/issues/1257 3. Move non-config data out of $XDG_CONFIG_HOME #1669 https://github.com/fish-shell/fish-shell/issues/1669 --- src/path.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/path.h') diff --git a/src/path.h b/src/path.h index eb79ee8a..973e8a3a 100644 --- a/src/path.h +++ b/src/path.h @@ -20,13 +20,26 @@ /** Returns the user configuration directory for fish. If the directory - or one of it's parents doesn't exist, they are first created. + or one of its parents doesn't exist, they are first created. \param path The directory as an out param \return whether the directory was returned successfully */ bool path_get_config(wcstring &path); +/** + Returns the user data directory for fish. If the directory + or one of its parents doesn't exist, they are first created. + + Volatile files presumed to be local to the machine, + such as the fish_history and all the generated_completions, + will be stored in this directory. + + \param path The directory as an out param + \return whether the directory was returned successfully +*/ +bool path_get_data(wcstring &path); + /** Finds the full path of an executable. Returns YES if successful. -- cgit v1.2.3