aboutsummaryrefslogtreecommitdiff
path: root/src/shared/Util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/Util.cpp')
-rw-r--r--src/shared/Util.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/Util.cpp b/src/shared/Util.cpp
index 644769f2069..3d3b205209a 100644
--- a/src/shared/Util.cpp
+++ b/src/shared/Util.cpp
@@ -478,3 +478,28 @@ bool Utf8FitTo(const std::string& str, std::wstring search)
return true;
}
+void utf8printf(FILE *out, const char *str, ...)
+{
+ va_list ap;
+
+#if PLATFORM == PLATFORM_WINDOWS
+ char temp_buf[32*1024];
+ wchar_t wtemp_buf[32*1024];
+ size_t temp_len;
+ size_t wtemp_len;
+
+ va_start(ap, str);
+ temp_len = vsnprintf(temp_buf, 32*1024, str, ap);
+ va_end(ap);
+
+ wtemp_len = 32*1024-1;
+ Utf8toWStr(temp_buf, temp_len, wtemp_buf, wtemp_len);
+
+ CharToOemBuffW(&wtemp_buf[0], &temp_buf[0], wtemp_len+1);
+ fprintf(out, temp_buf);
+#else
+ va_start(ap, str);
+ vfprintf(out, str, ap);
+ va_end(ap);
+#endif
+}