programs/regsvr32: Output strings as WCHAR to support non-ascii characters
Bruno Jesus
00cpxxx at gmail.com
Mon May 25 10:06:43 CDT 2015
Fixes https://bugs.winehq.org/show_bug.cgi?id=38638
-------------- next part --------------
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");
More information about the wine-patches
mailing list