From 9d9c04b0448e33b104f6e5b5cb1aea3df63bca9d Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
Date: Wed, 30 Aug 2017 17:44:21 +0300
Subject: [PATCH] MAINT-7691 One more crashreported issue with unicode in
 windows

---
 indra/llcrashlogger/llcrashlock.cpp   | 14 ++++++++++++--
 indra/llcrashlogger/llcrashlogger.cpp |  2 +-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/indra/llcrashlogger/llcrashlock.cpp b/indra/llcrashlogger/llcrashlock.cpp
index 7dde1fcd69f..77abfbcf0f7 100644
--- a/indra/llcrashlogger/llcrashlock.cpp
+++ b/indra/llcrashlogger/llcrashlock.cpp
@@ -188,12 +188,22 @@ LLSD LLCrashLock::getProcessList()
 //static
 bool LLCrashLock::fileExists(std::string filename)
 {
-	return boost::filesystem::exists(filename.c_str());
+#ifdef LL_WINDOWS // or BOOST_WINDOWS_API
+	boost::filesystem::path file_path(utf8str_to_utf16str(filename));
+#else
+	boost::filesystem::path file_path(filename);
+#endif
+	return boost::filesystem::exists(file_path);
 }
 
 void LLCrashLock::cleanupProcess(std::string proc_dir)
 {
-    boost::filesystem::remove_all(proc_dir);
+#ifdef LL_WINDOWS // or BOOST_WINDOWS_API
+	boost::filesystem::path dir_path(utf8str_to_utf16str(proc_dir));
+#else
+	boost::filesystem::path dir_path(proc_dir);
+#endif
+	boost::filesystem::remove_all(dir_path);
 }
 
 bool LLCrashLock::putProcessList(const LLSD& proc_sd)
diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp
index d8365eed947..1d58dba9ab3 100644
--- a/indra/llcrashlogger/llcrashlogger.cpp
+++ b/indra/llcrashlogger/llcrashlogger.cpp
@@ -462,7 +462,7 @@ bool LLCrashLogger::sendCrashLog(std::string dump_dir)
     
 	updateApplication("Sending reports...");
 
-	std::ofstream out_file(report_file.c_str());
+	llofstream out_file(report_file.c_str());
 	LLSDSerialize::toPrettyXML(post_data, out_file);
     out_file.flush();
 	out_file.close();
-- 
GitLab