Module: wine Branch: master Commit: ac6671b7f3186aedbe6cbe16dee4bb7d7964ef18 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ac6671b7f3186aedbe6cbe16de...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Oct 13 02:49:22 2010 +0400
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 98372ff..b016016 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 4cb9abe..fd56c61 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); }