reimplement ArchFile*::getSystemDirectory() as DataDirectories::systemconfig(). windows will now use ProgramData by default rather than C:\Windows

This commit is contained in:
walker0643
2018-03-30 14:39:12 -04:00
parent 6c5acdd552
commit 131a19d478
10 changed files with 41 additions and 40 deletions

View File

@@ -2,11 +2,6 @@
#include <Shlobj.h>
// static member
std::string DataDirectories::_personal;
std::string DataDirectories::_profile;
std::string DataDirectories::_global;
std::string unicode_to_mb(const WCHAR* utfStr)
{
int utfLength = lstrlenW(utfStr);
@@ -63,3 +58,19 @@ const std::string& DataDirectories::global(const std::string& path)
_global = path;
return _global;
}
const std::string& DataDirectories::systemconfig()
{
// systemconfig() is a special case in that it will track the current value
// of global() unless and until it is explictly set otherwise
// previously it would default to the windows folder which was horrible!
if (_systemconfig.empty())
return global();
return _systemconfig;
}
const std::string& DataDirectories::systemconfig(const std::string& path)
{
_systemconfig = path;
return _systemconfig;
}