diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2018-09-13 12:10:17 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2018-09-13 12:11:44 +0200 |
commit | 37b836ad09369d62244e79bf4ba806516f2344cc (patch) | |
tree | d2a7ebc9b35446f22c591d8ace8a0f8d2dbfd1de | |
parent | 477f258755265ce49bd56dfbd574616e2cd45584 (diff) | |
parent | d38bf9105d33147c899117a4c20ba7872733186f (diff) |
Merge #13888: Call unicode API on Windows
d38bf9105d33147c899117a4c20ba7872733186f Call unicode API on Windows (Chun Kuan Lee)
Pull request description:
Call Unicode API on Windows
Tree-SHA512: 93c290ee79c9d911fdada8ba45e184fc4f14d3cb56f33f39223286213878b08e8c4dd296a80099c57797d3b8589870e6cff622b22e76123d7452659d49dd8309
-rw-r--r-- | src/netbase.cpp | 10 | ||||
-rw-r--r-- | src/util.cpp | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/netbase.cpp b/src/netbase.cpp index 4b63757f3d..093fd0bdb7 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -17,6 +17,8 @@ #ifndef WIN32 #include <fcntl.h> +#else +#include <codecvt> #endif #if !defined(MSG_NOSIGNAL) @@ -649,13 +651,13 @@ bool LookupSubNet(const char* pszName, CSubNet& ret) #ifdef WIN32 std::string NetworkErrorString(int err) { - char buf[256]; + wchar_t buf[256]; buf[0] = 0; - if(FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK, + if(FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK, nullptr, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - buf, sizeof(buf), nullptr)) + buf, ARRAYSIZE(buf), nullptr)) { - return strprintf("%s (%d)", buf, err); + return strprintf("%s (%d)", std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>,wchar_t>().to_bytes(buf), err); } else { diff --git a/src/util.cpp b/src/util.cpp index 6331dc2111..ee8bc94584 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -998,7 +998,7 @@ void CreatePidFile(const fs::path &path, pid_t pid) bool RenameOver(fs::path src, fs::path dest) { #ifdef WIN32 - return MoveFileExA(src.string().c_str(), dest.string().c_str(), + return MoveFileExW(src.wstring().c_str(), dest.wstring().c_str(), MOVEFILE_REPLACE_EXISTING) != 0; #else int rc = std::rename(src.string().c_str(), dest.string().c_str()); |