Changelog: Fix output console to output with console encoding. static void output(const char *message) Index: programs/start/start.c =================================================================== RCS file: /home/wine/wine/programs/start/start.c,v retrieving revision 1.5 diff -u -p -u -r1.5 start.c --- programs/start/start.c 23 May 2006 12:49:22 -0000 1.5 +++ programs/start/start.c 30 Jan 2007 09:47:52 -0000 @@ -33,7 +33,20 @@ { DWORD count;
- WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), message, strlen(message), &count, NULL);
WCHAR *bufW;
char *bufC;
int len = strlen(message);
bufW = calloc(len+1,sizeof(WCHAR));
bufC = calloc(len+1,sizeof(CHAR));
MultiByteToWideChar( CP_ACP, 0, message, len, bufW, len );
WideCharToMultiByte( GetConsoleOutputCP(), 0, bufW, len, bufC, len, NULL, NULL );
bufC[len] = '\0';
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), bufC, len, &count, NULL);
free(bufW);
free(bufC);
}
This is not correct. This function and everything else, using it should be rewritten as unicode, not ansi. Also you should use HeapAlloc/HeapFree.
Vitaliy.