[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - 2 commits - sw/qa writerfilter/source

Miklos Vajna vmiklos at suse.cz
Mon May 27 04:47:28 PDT 2013


 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 <vmiklos at 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 <davian818 at 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 <vmiklos at 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))
         {


More information about the Libreoffice-commits mailing list