|
@@ -677,18 +677,27 @@ String OS_Windows::get_data_path() const {
|
|
}
|
|
}
|
|
|
|
|
|
String OS_Windows::get_cache_path() const {
|
|
String OS_Windows::get_cache_path() const {
|
|
- // The XDG Base Directory specification technically only applies on Linux/*BSD, but it doesn't hurt to support it on Windows as well.
|
|
|
|
- if (has_environment("XDG_CACHE_HOME")) {
|
|
|
|
- if (get_environment("XDG_CACHE_HOME").is_absolute_path()) {
|
|
|
|
- return get_environment("XDG_CACHE_HOME").replace("\\", "/");
|
|
|
|
- } else {
|
|
|
|
- WARN_PRINT_ONCE("`XDG_CACHE_HOME` is a relative path. Ignoring its value and falling back to `%TEMP%` or `get_config_path()` per the XDG Base Directory specification.");
|
|
|
|
|
|
+ static String cache_path_cache;
|
|
|
|
+ if (cache_path_cache.is_empty()) {
|
|
|
|
+ // The XDG Base Directory specification technically only applies on Linux/*BSD, but it doesn't hurt to support it on Windows as well.
|
|
|
|
+ if (has_environment("XDG_CACHE_HOME")) {
|
|
|
|
+ if (get_environment("XDG_CACHE_HOME").is_absolute_path()) {
|
|
|
|
+ cache_path_cache = get_environment("XDG_CACHE_HOME").replace("\\", "/");
|
|
|
|
+ } else {
|
|
|
|
+ WARN_PRINT_ONCE("`XDG_CACHE_HOME` is a relative path. Ignoring its value and falling back to `%LOCALAPPDATA%\\cache`, `%TEMP%` or `get_config_path()` per the XDG Base Directory specification.");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (cache_path_cache.is_empty() && has_environment("LOCALAPPDATA")) {
|
|
|
|
+ cache_path_cache = get_environment("LOCALAPPDATA").replace("\\", "/");
|
|
|
|
+ }
|
|
|
|
+ if (cache_path_cache.is_empty() && has_environment("TEMP")) {
|
|
|
|
+ cache_path_cache = get_environment("TEMP").replace("\\", "/");
|
|
|
|
+ }
|
|
|
|
+ if (cache_path_cache.is_empty()) {
|
|
|
|
+ cache_path_cache = get_config_path();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (has_environment("TEMP")) {
|
|
|
|
- return get_environment("TEMP").replace("\\", "/");
|
|
|
|
- }
|
|
|
|
- return get_config_path();
|
|
|
|
|
|
+ return cache_path_cache;
|
|
}
|
|
}
|
|
|
|
|
|
// Get properly capitalized engine name for system paths
|
|
// Get properly capitalized engine name for system paths
|