From: Bruno Jesus <00cpxxx@gmail.com> Subject: programs/regsvr32: Output strings as WCHAR to support non-ascii characters Message-Id: Date: Mon, 25 May 2015 12:06:43 -0300 Fixes https://bugs.winehq.org/show_bug.cgi?id=38638 diff --git a/programs/regsvr32/regsvr32.c b/programs/regsvr32/regsvr32.c index 624acd6..94a9a02 100644 --- a/programs/regsvr32/regsvr32.c +++ b/programs/regsvr32/regsvr32.c @@ -67,14 +67,14 @@ static BOOL Silent = FALSE; static void __cdecl output_write(UINT id, ...) { - char fmt[1024]; + WCHAR fmt[1024]; __ms_va_list va_args; - char *str; + WCHAR *str; DWORD len, nOut, ret; if (Silent) return; - if (!LoadStringA(GetModuleHandleA(NULL), id, fmt, sizeof(fmt)/sizeof(fmt[0]))) + if (!LoadStringW(GetModuleHandleW(NULL), id, fmt, sizeof(fmt)/sizeof(fmt[0]))) { WINE_FIXME("LoadString failed with %d\n", GetLastError()); return; @@ -82,16 +82,16 @@ static void __cdecl output_write(UINT id, ...) __ms_va_start(va_args, id); SetLastError(NO_ERROR); - len = FormatMessageA(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER, - fmt, 0, 0, (LPSTR)&str, 0, &va_args); + len = FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER, + fmt, 0, 0, (LPWSTR) &str, 0, &va_args); __ms_va_end(va_args); if (len == 0 && GetLastError() != NO_ERROR) { - WINE_FIXME("Could not format string: le=%u, fmt=%s\n", GetLastError(), wine_dbgstr_a(fmt)); + WINE_FIXME("Could not format string: le=%u, fmt=%s\n", GetLastError(), wine_dbgstr_w(fmt)); return; } - ret = WriteConsoleA(GetStdHandle(STD_OUTPUT_HANDLE), str, len, &nOut, NULL); + ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), str, len, &nOut, NULL); if (!ret) WINE_WARN("regsvr32: WriteConsoleA() failed.\n");