diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index 91a1d04714..d60d40a68d 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -62,7 +62,7 @@ class Configuration : public PBD::Stateful int save_state (); /// calls Stateful::*instant_xml methods using - /// ARDOUR::get_user_ardour_path for the directory + /// ARDOUR::user_config_directory for the directory argument void add_instant_xml (XMLNode&); XMLNode * instant_xml (const std::string& str); diff --git a/libs/ardour/configuration.cc b/libs/ardour/configuration.cc index 25ff635556..655477e558 100644 --- a/libs/ardour/configuration.cc +++ b/libs/ardour/configuration.cc @@ -28,6 +28,7 @@ #include #include #include +#include #include "i18n.h" @@ -160,13 +161,13 @@ Configuration::save_state() void Configuration::add_instant_xml(XMLNode& node) { - Stateful::add_instant_xml (node, get_user_ardour_path()); + Stateful::add_instant_xml (node, user_config_directory ()); } XMLNode* Configuration::instant_xml(const string& node_name) { - return Stateful::instant_xml (node_name, get_user_ardour_path()); + return Stateful::instant_xml (node_name, user_config_directory ()); } diff --git a/libs/pbd/stateful.cc b/libs/pbd/stateful.cc index 691c03fbad..da014d738f 100644 --- a/libs/pbd/stateful.cc +++ b/libs/pbd/stateful.cc @@ -78,6 +78,8 @@ Stateful::extra_xml (const string& str) void Stateful::add_instant_xml (XMLNode& node, const sys::path& directory_path) { + sys::create_directories (directory_path); // may throw + if (_instant_xml == 0) { _instant_xml = new XMLNode ("instant"); }