Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/util/util_string.cpp')
-rw-r--r--intern/cycles/util/util_string.cpp44
1 files changed, 40 insertions, 4 deletions
diff --git a/intern/cycles/util/util_string.cpp b/intern/cycles/util/util_string.cpp
index 51306a249cd..b3a8c6d7c2e 100644
--- a/intern/cycles/util/util_string.cpp
+++ b/intern/cycles/util/util_string.cpp
@@ -165,14 +165,14 @@ string string_from_bool(bool var)
wstring string_to_wstring(const string& str)
{
- const int length_wc = MultiByteToWideChar(CP_ACP,
+ const int length_wc = MultiByteToWideChar(CP_UTF8,
0,
str.c_str(),
str.length(),
NULL,
0);
wstring str_wc(length_wc, 0);
- MultiByteToWideChar(CP_ACP,
+ MultiByteToWideChar(CP_UTF8,
0,
str.c_str(),
str.length(),
@@ -183,7 +183,7 @@ wstring string_to_wstring(const string& str)
string string_from_wstring(const wstring& str)
{
- int length_mb = WideCharToMultiByte(CP_ACP,
+ int length_mb = WideCharToMultiByte(CP_UTF8,
0,
str.c_str(),
str.size(),
@@ -191,7 +191,7 @@ string string_from_wstring(const wstring& str)
0,
NULL, NULL);
string str_mb(length_mb, 0);
- WideCharToMultiByte(CP_ACP,
+ WideCharToMultiByte(CP_UTF8,
0,
str.c_str(),
str.size(),
@@ -201,6 +201,42 @@ string string_from_wstring(const wstring& str)
return str_mb;
}
+string string_to_ansi(const string& str)
+{
+ const int length_wc = MultiByteToWideChar(CP_UTF8,
+ 0,
+ str.c_str(),
+ str.length(),
+ NULL,
+ 0);
+ wstring str_wc(length_wc, 0);
+ MultiByteToWideChar(CP_UTF8,
+ 0,
+ str.c_str(),
+ str.length(),
+ &str_wc[0],
+ length_wc);
+
+ int length_mb = WideCharToMultiByte(CP_ACP,
+ 0,
+ str_wc.c_str(),
+ str_wc.size(),
+ NULL,
+ 0,
+ NULL, NULL);
+
+ string str_mb(length_mb, 0);
+ WideCharToMultiByte(CP_ACP,
+ 0,
+ str_wc.c_str(),
+ str_wc.size(),
+ &str_mb[0],
+ length_mb,
+ NULL, NULL);
+
+ return str_mb;
+}
+
#endif /* _WIN32 */
CCL_NAMESPACE_END