diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/cross_windows.cc | 14 | ||||
| -rw-r--r-- | src/lib/wscript | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/cross_windows.cc b/src/lib/cross_windows.cc index a425186f1..4990f53ee 100644 --- a/src/lib/cross_windows.cc +++ b/src/lib/cross_windows.cc @@ -44,7 +44,9 @@ extern "C" { #include <fileapi.h> #undef DATADIR #include <shlwapi.h> +#include <shlobj.h> #include <shellapi.h> +#include <knownfolders.h> #include <fcntl.h> #include <fstream> #include <map> @@ -397,7 +399,17 @@ maybe_open_console () boost::filesystem::path home_directory () { - return boost::filesystem::path(getenv("userprofile")); + PWSTR wide_path; + auto result = SHGetKnownFolderPath(FOLDERID_Documents, 0, nullptr, &wide_path); + + if (result != S_OK) { + CoTaskMemFree(wide_path); + return boost::filesystem::path("c:\\"); + } + + auto path = wchar_to_utf8(wide_path); + CoTaskMemFree(wide_path); + return path; } diff --git a/src/lib/wscript b/src/lib/wscript index 2bf740c34..914fc69f9 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -217,7 +217,7 @@ def build(bld): obj.uselib += ' POLKIT' if bld.env.TARGET_WINDOWS_64 or bld.env.TARGET_WINDOWS_32: - obj.uselib += ' WINSOCK2 DBGHELP SHLWAPI MSWSOCK BOOST_LOCALE SETUPAPI' + obj.uselib += ' WINSOCK2 DBGHELP SHLWAPI MSWSOCK BOOST_LOCALE SETUPAPI OLE32 UUID' obj.source += ' cross_windows.cc' if bld.env.TARGET_OSX: obj.source += ' cross_osx.cc' |
