summaryrefslogtreecommitdiff
path: root/libs/ardour/configuration.cc
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2007-06-27 12:12:07 +0000
committerTim Mayberry <mojofunk@gmail.com>2007-06-27 12:12:07 +0000
commit7459379ec42e5807a9134bf448b7cdd7c2d1ce53 (patch)
tree60cd5465de2141407f7d49a06fd1a2a6a0a20369 /libs/ardour/configuration.cc
parent4b0a20583015a9a6a0820f980f49f019d2dcd0b5 (diff)
Use sys::path and ARDOUR::user_config_directory in Configuration::save_state for portability
git-svn-id: svn://localhost/ardour2/trunk@2044 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/configuration.cc')
-rw-r--r--libs/ardour/configuration.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/libs/ardour/configuration.cc b/libs/ardour/configuration.cc
index 655477e558..2c0143cdba 100644
--- a/libs/ardour/configuration.cc
+++ b/libs/ardour/configuration.cc
@@ -142,11 +142,23 @@ int
Configuration::save_state()
{
XMLTree tree;
- string rcfile;
- rcfile = get_user_ardour_path ();
- rcfile += "ardour.rc";
+ try
+ {
+ sys::create_directories (user_config_directory ());
+ }
+ catch (const sys::filesystem_error& ex)
+ {
+ error << "Could not create user configuration directory" << endmsg;
+ return -1;
+ }
+
+ sys::path rcfile_path(user_config_directory());
+
+ rcfile_path /= "ardour.rc";
+ const string rcfile = rcfile_path.to_string();
+ // this test seems bogus?
if (rcfile.length()) {
tree.set_root (&get_state());
if (!tree.write (rcfile.c_str())){