sw/qa/extras/rtfimport/data/fdo64671.rtf | 3 +++ sw/qa/extras/rtfimport/rtfimport.cxx | 8 ++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-)
New commits: commit c95cf9d8e07c37c9cdbc01c40532e77f742066f2 Author: Miklos Vajna <vmik...@suse.cz> Date: Mon May 27 10:44:01 2013 +0200 testcase for bfb93ffc6d72d22a833acf9d8c9d166153dad7c0 Change-Id: If61739d54cb2572f20b118a2cf56ab2bd0f306e5 (cherry picked from commit ec8e012e980c88c8f24a7de44e44d0319bae2801) diff --git a/sw/qa/extras/rtfimport/data/fdo64671.rtf b/sw/qa/extras/rtfimport/data/fdo64671.rtf new file mode 100644 index 0000000..385dca4 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo64671.rtf @@ -0,0 +1,3 @@ +{\rtf1 +\u381\'7d +\par} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index c0ceabc..5aadfa6 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -136,6 +136,7 @@ public: void testFdo42109(); void testFdo62977(); void testN818997(); + void testFdo64671(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -261,6 +262,7 @@ void Test::run() {"fdo42109.rtf", &Test::testFdo42109}, {"fdo62977.rtf", &Test::testFdo62977}, {"n818997.rtf", &Test::testN818997}, + {"fdo64671.rtf", &Test::testFdo64671}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -1240,6 +1242,12 @@ void Test::testN818997() CPPUNIT_ASSERT_EQUAL(2, getPages()); } +void Test::testFdo64671() +{ + // Additional '}' was inserted before the special character. + getRun(getParagraph(1), 1, OUString("\xC5\xBD", 2, RTL_TEXTENCODING_UTF8)); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); commit 25f70433aa0f1c9d98fc92cb2d896e8e887bfb4b Author: Urmas <davian...@gmail.com> Date: Mon May 27 09:49:55 2013 +0200 fdo#64671 Some special RTF characters were not skipped correctly Some special characters, like { and }, were not skipped when they occured as a replacement character for \uN keyword. Change-Id: I19b66a290cd9880924774fa89bb29df280e44a3c (cherry picked from commit bfb93ffc6d72d22a833acf9d8c9d166153dad7c0) Signed-off-by: Miklos Vajna <vmik...@suse.cz> diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index a5e3f75..fcd0ef5 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -887,7 +887,7 @@ int RTFDocumentImpl::resolveChars(char ch) bool bUnicodeChecked = false; bool bSkipped = false; - while(!Strm().IsEof() && ch != '{' && ch != '}' && ch != '\\') + while(!Strm().IsEof() && (m_aStates.top().nInternalState == INTERNAL_HEX || (ch != '{' && ch != '}' && ch != '\\'))) { if (m_aStates.top().nInternalState == INTERNAL_HEX || (ch != 0x0d && ch != 0x0a)) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits