# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1332860992 0 # Node ID 32b5fba0b00a058cff94cb2c3351b14df6933726 # Parent 4034562aee7f78b1ceff02fc9b75a3fddc436ae4 Must convert from UTF8 for the raw HTML on Windows regardless of the ANSI/UNICODE mode. This fixes incorrect encoding on raw HTML widgets. Also need to use the ANSI version of GetModuleFileName when converting the command line parameters, or maybe convert to UTF8? diff -r 4034562aee7f -r 32b5fba0b00a win/browser.c --- a/win/browser.c Tue Mar 27 14:51:24 2012 +0000 +++ b/win/browser.c Tue Mar 27 15:09:52 2012 +0000 @@ -1281,20 +1281,16 @@ if (!SafeArrayAccessData(sfArray, (void**)&pVar)) { pVar->vt = VT_BSTR; -#ifndef UNICODE { - wchar_t *buffer; - DWORD size; + wchar_t *buffer; + DWORD size; - size = MultiByteToWideChar(CP_ACP, 0, string, -1, 0, 0); - if (!(buffer = (wchar_t *)GlobalAlloc(GMEM_FIXED, sizeof(wchar_t) * size))) goto bad; - MultiByteToWideChar(CP_ACP, 0, string, -1, buffer, size); - bstr = SysAllocString(buffer); - GlobalFree(buffer); + size = MultiByteToWideChar(CP_UTF8, 0, string, -1, 0, 0); + if (!(buffer = (wchar_t *)GlobalAlloc(GMEM_FIXED, sizeof(wchar_t) * size))) goto bad; + MultiByteToWideChar(CP_UTF8, 0, string, -1, buffer, size); + bstr = SysAllocString(buffer); + GlobalFree(buffer); } -#else - bstr = SysAllocString(string); -#endif // Store our BSTR pointer in the VARIENT. if ((pVar->bstrVal = bstr)) { diff -r 4034562aee7f -r 32b5fba0b00a win/dw.c --- a/win/dw.c Tue Mar 27 14:51:24 2012 +0000 +++ b/win/dw.c Tue Mar 27 15:09:52 2012 +0000 @@ -374,7 +374,7 @@ argv = (char **)malloc(sizeof(char *) * ((*count)+1)); argv[0] = malloc(260); - GetModuleFileName(DWInstance, argv[0], 260); + GetModuleFileNameA(DWInstance, argv[0], 260); argstart = tmp = start; diff -r 4034562aee7f -r 32b5fba0b00a winmain.c --- a/winmain.c Tue Mar 27 14:51:24 2012 +0000 +++ b/winmain.c Tue Mar 27 15:09:52 2012 +0000 @@ -49,7 +49,7 @@ argv = (char **)malloc(sizeof(char *) * ((*count)+1)); argv[0] = malloc(260); - GetModuleFileName(DWInstance, argv[0], 260); + GetModuleFileNameA(DWInstance, argv[0], 260); argstart = tmp = start;