diff options
Diffstat (limited to 'src/shared/Util.cpp')
-rw-r--r-- | src/shared/Util.cpp | 25 |
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 +} |