This fixes console logs on Wine for me.
{
HANDLE h = (HANDLE)((uintptr_t)_get_osfhandle (fd));
DWORD out;
-
/* XXX: It is not clear whether WriteConsole() wants the number of
* Unicode characters or the size of the wchar_t array. */
- WriteConsoleW (h, wide, wcslen (wide), &out, NULL);
+ BOOL ok = WriteConsoleW (h, wide, wcslen (wide), &out, NULL);
free (wide);
+ if (ok)
+ goto out;
}
- else
- res = -1;
}
- else
# endif
+ char *ansi = ToANSI (str);
+ if (ansi != NULL)
{
- char *ansi = ToANSI (str);
- if (ansi != NULL)
- {
- fputs (ansi, stream);
- free (ansi);
- }
- else
- res = -1;
+ fputs (ansi, stream);
+ free (ansi);
}
+ else
+ res = -1;
+out:
free (str);
return res;
#endif