From a7e4428d06797f07d8d8fd7f68155e7ac15a5f41 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 20 May 2022 23:51:51 +0300
Subject: [PATCH] SL-17452 CEF not working in non-ASCII install path

Fix ASCII specific function
---
 indra/media_plugins/cef/media_plugin_cef.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp
index ea70e214145..042abcf80ee 100644
--- a/indra/media_plugins/cef/media_plugin_cef.cpp
+++ b/indra/media_plugins/cef/media_plugin_cef.cpp
@@ -34,6 +34,7 @@
 #include "llplugininstance.h"
 #include "llpluginmessage.h"
 #include "llpluginmessageclasses.h"
+#include "llstring.h"
 #include "volume_catcher.h"
 #include "media_plugin_base.h"
 
@@ -616,9 +617,9 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
                 // dir as the executable that loaded it (SLPlugin.exe). The code in 
                 // Dullahan that tried to figure out the location automatically uses 
                 // the location of the exe which isn't helpful so we tell it explicitly.
-                char cur_dir_str[MAX_PATH];
-                GetCurrentDirectoryA(MAX_PATH, cur_dir_str);
-                settings.host_process_path = std::string(cur_dir_str);
+                std::vector<wchar_t> buffer(MAX_PATH + 1);
+                GetCurrentDirectoryW(MAX_PATH, &buffer[0]);
+                settings.host_process_path = ll_convert_wide_to_string(&buffer[0]);
 #endif
                 settings.accept_language_list = mHostLanguage;
 
-- 
GitLab