summaryrefslogtreecommitdiff
path: root/libs/ardour/filesystem_paths.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-01-05 18:29:33 +0100
committerRobin Gareus <robin@gareus.org>2015-01-05 18:29:33 +0100
commit5584f46003e6ac49432ab772b9ee1ad1dc9c797f (patch)
treea7e258440d3c36e10a861aa509789ca3cf9afbf1 /libs/ardour/filesystem_paths.cc
parent6e3e1738ddc4cefdf81641bf4b28696db1ecd338 (diff)
update windows user_cache_directory(): same pattern as config dir
Diffstat (limited to 'libs/ardour/filesystem_paths.cc')
-rw-r--r--libs/ardour/filesystem_paths.cc20
1 files changed, 16 insertions, 4 deletions
diff --git a/libs/ardour/filesystem_paths.cc b/libs/ardour/filesystem_paths.cc
index 37104b01a1..ded481c54d 100644
--- a/libs/ardour/filesystem_paths.cc
+++ b/libs/ardour/filesystem_paths.cc
@@ -114,9 +114,10 @@ user_cache_directory ()
if ((c = getenv ("XDG_CACHE_HOME")) != 0) {
p = c;
} else {
+
#ifdef PLATFORM_WINDOWS
// Not technically the home dir (since it needs to be a writable folder)
- const string home_dir = Glib::build_filename (Glib::get_user_data_dir(), user_config_dir_name);
+ const string home_dir = Glib::get_user_data_dir();
#else
const string home_dir = Glib::get_home_dir();
#endif
@@ -124,14 +125,25 @@ user_cache_directory ()
error << "Unable to determine home directory" << endmsg;
exit (1);
}
-
p = home_dir;
+
+#ifndef PLATFORM_WINDOWS
p = Glib::build_filename (p, ".cache");
- }
#endif
-#ifndef PLATFORM_WINDOWS
+ }
+#endif // end not __APPLE__
+
p = Glib::build_filename (p, user_config_dir_name);
+
+#ifdef PLATFORM_WINDOWS
+ /* On Windows Glib::get_user_data_dir is the folder to use for local
+ * (as opposed to roaming) application data.
+ * See documentation for CSIDL_LOCAL_APPDATA.
+ * Glib::get_user_data_dir() == GLib::get_user_config_dir()
+ * so we add an extra subdir *below* the config dir.
+ */
+ p = Glib::build_filename (p, "cache");
#endif
if (!Glib::file_test (p, Glib::FILE_TEST_EXISTS)) {