From f5085b2f39c91ed0103c79d95f8d18a4ef2a6371 Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 19 Aug 2009 17:02:29 -0500 Subject: [8388] Replaced UTF8PRINT macro by a function Should also fix possible color leak on Windows CLI. Signed-off-by: freghar --HG-- branch : trunk --- src/shared/Util.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/shared/Util.cpp') 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 +} -- cgit v1.2.3