From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/mxwriter.c | 4 +++- dlls/msxml3/tests/saxreader.c | 2 +- dlls/msxml4/tests/saxreader.c | 1 - dlls/msxml6/tests/saxreader.c | 1 - 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/msxml3/mxwriter.c b/dlls/msxml3/mxwriter.c index c2dda9e89c9..947777e6fb4 100644 --- a/dlls/msxml3/mxwriter.c +++ b/dlls/msxml3/mxwriter.c @@ -1382,7 +1382,9 @@ static HRESULT WINAPI SAXContentHandler_characters(ISAXContentHandler *iface, co if (nchars) { - if (writer->cdata || writer->props[MXWriter_DisableEscaping] == VARIANT_TRUE) + if (writer->cdata) + write_string_with_crlf(writer, chars, nchars); + else if (writer->props[MXWriter_DisableEscaping] == VARIANT_TRUE) write_output_buffer(writer, chars, nchars); else write_escaped_string(writer, chars, nchars, EscapeText); diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c index 7ea4629cb79..53c5702fc39 100644 --- a/dlls/msxml3/tests/saxreader.c +++ b/dlls/msxml3/tests/saxreader.c @@ -5393,7 +5393,7 @@ static void test_mxwriter_cdata(void) hr = ISAXLexicalHandler_endCDATA(lexical); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - check_writer_output_todo(writer, L"<![CDATA[<![CDATA[< > & \"\r\na\r\nb\r\n]]>"); + check_writer_output(writer, L"<![CDATA[<![CDATA[< > & \"\r\na\r\nb\r\n]]>"); ISAXContentHandler_Release(content); ISAXLexicalHandler_Release(lexical); diff --git a/dlls/msxml4/tests/saxreader.c b/dlls/msxml4/tests/saxreader.c index 196208c8d75..3dc185d723b 100644 --- a/dlls/msxml4/tests/saxreader.c +++ b/dlls/msxml4/tests/saxreader.c @@ -4847,7 +4847,6 @@ static void test_mxwriter_cdata(void) hr = IMXWriter_get_output(writer, &dest); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - todo_wine ok(!lstrcmpW(L"<![CDATA[<![CDATA[< > & \"\r\na\r\nb\r\n]]>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); VariantClear(&dest); diff --git a/dlls/msxml6/tests/saxreader.c b/dlls/msxml6/tests/saxreader.c index ad11ea29945..27e6e8c688b 100644 --- a/dlls/msxml6/tests/saxreader.c +++ b/dlls/msxml6/tests/saxreader.c @@ -2855,7 +2855,6 @@ static void test_mxwriter_cdata(void) hr = IMXWriter_get_output(writer, &dest); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - todo_wine ok(!lstrcmpW(L"<![CDATA[<![CDATA[< > & \"\r\na\r\nb\r\n]]>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); VariantClear(&dest); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11066