From ff122d0fe8fde6a8a4edc71f9dbba5d161036300 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 8 Nov 2009 16:28:21 +0000 Subject: monster commit: transport mgmt changes from 2.X (omnibus edition); make slave use nframes64_t ; avoid crashes in Drags when commiting reversible transactions that do not exist git-svn-id: svn://localhost/ardour2/branches/3.0@6034 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/filesystem_paths.cc | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'libs/ardour/filesystem_paths.cc') diff --git a/libs/ardour/filesystem_paths.cc b/libs/ardour/filesystem_paths.cc index 2f2afe3c7b..932416ef41 100644 --- a/libs/ardour/filesystem_paths.cc +++ b/libs/ardour/filesystem_paths.cc @@ -16,6 +16,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include #include "pbd/error.h" #include "pbd/filesystem_paths.h" @@ -36,18 +37,30 @@ using std::string; sys::path user_config_directory () { - const string home_dir = Glib::get_home_dir (); - - if (home_dir.empty ()) { - const string error_msg = "Unable to determine home directory"; - - // log the error - error << error_msg << endmsg; - - throw sys::filesystem_error(error_msg); + const char* c = 0; + sys::path p; + + /* adopt freedesktop standards, and put .ardour3 into $XDG_CONFIG_HOME or ~/.config + */ + + if ((c = getenv ("XDG_CONFIG_HOME")) != 0) { + p = c; + } else { + const string home_dir = Glib::get_home_dir(); + + if (home_dir.empty ()) { + const string error_msg = "Unable to determine home directory"; + + // log the error + error << error_msg << endmsg; + + throw sys::filesystem_error(error_msg); + } + + p = home_dir; + p /= ".config"; } - - sys::path p(home_dir); + p /= user_config_dir_name; return p; -- cgit v1.2.3