diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-01-09 19:35:01 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-01-09 19:35:01 +0000 |
commit | 4306fc7aeea2855f3a70c50a1641a7664bd04054 (patch) | |
tree | 447631f47c9bef664746a0ad4bc620bddca61a79 /libs | |
parent | 51d422af5a68af05c9d1e4f5c0ea8eb313001c79 (diff) |
change config dir on OS X to ~/Library/Preferences/Ardour3
git-svn-id: svn://localhost/ardour2/branches/3.0@11210 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/directory_names.cc | 9 | ||||
-rw-r--r-- | libs/ardour/filesystem_paths.cc | 27 |
2 files changed, 34 insertions, 2 deletions
diff --git a/libs/ardour/directory_names.cc b/libs/ardour/directory_names.cc index 571600670c..1e2b08198f 100644 --- a/libs/ardour/directory_names.cc +++ b/libs/ardour/directory_names.cc @@ -16,7 +16,14 @@ const char* const export_formats_dir_name = X_("export"); const char* const templates_dir_name = X_("templates"); const char* const route_templates_dir_name = X_("route_templates"); const char* const surfaces_dir_name = X_("surfaces"); -const char* const user_config_dir_name = X_("ardour3"); const char* const panner_dir_name = X_("panners"); + +/* these should end up using variants of PROGRAM_NAME */ +#ifdef __APPLE__ +const char* const user_config_dir_name = X_("Ardour" "3"); +#else +const char* const user_config_dir_name = X_("ardour" "3"); +#endif + } diff --git a/libs/ardour/filesystem_paths.cc b/libs/ardour/filesystem_paths.cc index 5dc5e4dbde..11ddc88502 100644 --- a/libs/ardour/filesystem_paths.cc +++ b/libs/ardour/filesystem_paths.cc @@ -19,13 +19,17 @@ #include <cstdlib> #include "pbd/error.h" +#include "pbd/compose.h" #include "pbd/filesystem_paths.h" #include <glibmm/miscutils.h> +#include <glibmm/fileutils.h> #include "ardour/directory_names.h" #include "ardour/filesystem_paths.h" +#include "i18n.h" + #define WITH_STATIC_PATHS 1 using namespace PBD; @@ -37,9 +41,15 @@ using std::string; sys::path user_config_directory () { - const char* c = 0; sys::path p; +#ifdef __APPLE__ + p = Glib::get_home_dir(); + p /= "Library/Preferences"; + +#else + const char* c = 0; + /* adopt freedesktop standards, and put .ardour3 into $XDG_CONFIG_HOME or ~/.config */ @@ -60,9 +70,24 @@ user_config_directory () p = home_dir; p /= ".config"; } +#endif p /= user_config_dir_name; + std::string ps (p.to_string()); + + if (!Glib::file_test (ps, Glib::FILE_TEST_EXISTS)) { + if (g_mkdir_with_parents (ps.c_str(), 0755)) { + error << string_compose (_("Cannot create Configuration directory %1 - cannot run"), + ps) << endmsg; + exit (1); + } + } else if (!Glib::file_test (ps, Glib::FILE_TEST_IS_DIR)) { + error << string_compose (_("Configuration directory %1 already exists and is not a directory/folder - cannot run"), + ps) << endmsg; + exit (1); + } + return p; } |