changeset 1620:32b5fba0b00a

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?
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 27 Mar 2012 15:09:52 +0000
parents 4034562aee7f
children 0e8c80209c4b
files win/browser.c win/dw.c winmain.c
diffstat 3 files changed, 9 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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))
 						{
--- 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;
 
--- 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;