From ac6671b7f3186aedbe6cbe16dee4bb7d7964ef18 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Wed, 13 Oct 2010 02:49:22 +0400 Subject: [PATCH] msxml3: Fix response text conversion to WCHAR string. --- dlls/msxml3/httprequest.c | 6 +++++- dlls/msxml3/tests/domdoc.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c index 98372ff2aae..b01601681dd 100644 --- a/dlls/msxml3/httprequest.c +++ b/dlls/msxml3/httprequest.c @@ -865,7 +865,11 @@ static HRESULT WINAPI httprequest_get_responseText(IXMLHTTPRequest *iface, BSTR if (encoding == XML_CHAR_ENCODING_UTF8 || encoding == XML_CHAR_ENCODING_NONE ) { - *body = bstr_from_xmlChar(ptr); + DWORD length = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)ptr, size, NULL, 0); + + *body = SysAllocStringLen(NULL, length); + if (*body) + MultiByteToWideChar( CP_UTF8, 0, (LPCSTR)ptr, size, *body, length); } else *body = SysAllocStringByteLen((LPCSTR)ptr, size); diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 4cb9abe5a69..fd56c611642 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -3354,7 +3354,7 @@ if (0) * not what the server expects */ if(hr == S_OK) { - todo_wine ok(!memcmp(bstrResponse, wszExpectedResponse, sizeof(wszExpectedResponse)), + ok(!memcmp(bstrResponse, wszExpectedResponse, sizeof(wszExpectedResponse)), "expected %s, got %s\n", wine_dbgstr_w(wszExpectedResponse), wine_dbgstr_w(bstrResponse)); SysFreeString(bstrResponse); } -- 2.11.4.GIT