summaryrefslogtreecommitdiff
path: root/desktop/source/minidump/minidump_upload.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/source/minidump/minidump_upload.cxx')
-rw-r--r--desktop/source/minidump/minidump_upload.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/desktop/source/minidump/minidump_upload.cxx b/desktop/source/minidump/minidump_upload.cxx
index 15af26430764..0434fda68445 100644
--- a/desktop/source/minidump/minidump_upload.cxx
+++ b/desktop/source/minidump/minidump_upload.cxx
@@ -12,7 +12,14 @@
#include <iostream>
#include <string>
+#ifdef _WIN32
+#include <memory>
+#include <windows.h>
+
+int wmain(int argc, wchar_t** argv)
+#else
int main(int argc, char** argv)
+#endif
{
if (argc < 2)
{
@@ -20,7 +27,15 @@ int main(int argc, char** argv)
return EXIT_FAILURE;
}
+#ifdef _WIN32
+ const int nBytes = WideCharToMultiByte(CP_UTF8, 0, argv[1], -1, nullptr, 0, nullptr, nullptr);
+ auto buf = std::make_unique<char[]>(nBytes);
+ if (WideCharToMultiByte(CP_UTF8, 0, argv[1], -1, buf.get(), nBytes, nullptr, nullptr) == 0)
+ return EXIT_FAILURE;
+ std::string iniPath(buf.get());
+#else
std::string iniPath(argv[1]);
+#endif
std::string response;
if (!crashreport::readConfig(iniPath, &response))
return EXIT_FAILURE;