[Libreoffice-commits] .: sw/qa writerfilter/source

Miklos Vajna vmiklos at suse.cz
Sat Feb 2 06:39:10 PST 2013


 sw/qa/extras/rtfimport/data/fdo58646.rtf       |    7 +++++++
 sw/qa/extras/rtfimport/rtfimport.cxx           |    8 ++++++++
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |    4 +++-
 3 files changed, 18 insertions(+), 1 deletion(-)

New commits:
commit 3974e9952102dbfb4f004872768b1096133bd9a5
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Sat Feb 2 15:29:24 2013 +0100

    fdo#58646 fix import of RTF_PAGE in cont section when having titlepg
    
    Change-Id: Ia632edb24869ddfb76a029fdb460bcf24d9a2059

diff --git a/sw/qa/extras/rtfimport/data/fdo58646.rtf b/sw/qa/extras/rtfimport/data/fdo58646.rtf
new file mode 100644
index 0000000..4314272
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/fdo58646.rtf
@@ -0,0 +1,7 @@
+{\rtf1
+\sbknone
+\titlepg
+first page
+\page\par 
+second page
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index f1e9626..ab8ac50 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -138,6 +138,7 @@ public:
     void testFdo58933();
     void testFdo44053();
     void testFdo48440();
+    void testFdo58646();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -247,6 +248,7 @@ void Test::run()
         {"fdo58933.rtf", &Test::testFdo58933},
         {"fdo44053.rtf", &Test::testFdo44053},
         {"fdo48440.rtf", &Test::testFdo48440},
+        {"fdo58646.rtf", &Test::testFdo58646},
     };
     header();
     for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -1070,6 +1072,12 @@ void Test::testFdo48440()
     CPPUNIT_ASSERT_EQUAL(2, getPages());
 }
 
+void Test::testFdo58646()
+{
+    // Page break was ignored inside a continous section, on title page.
+    CPPUNIT_ASSERT_EQUAL(2, getPages());
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 4f47d9d..3aed3b4 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -1804,7 +1804,9 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword)
             {
                 // If we're inside a continous section, we should send a section break, not a page one.
                 RTFValue::Pointer_t pBreak = m_aStates.top().aSectionSprms.find(NS_sprm::LN_SBkc);
-                if (pBreak.get() && !pBreak->getInt())
+                // Unless we're on a title page.
+                RTFValue::Pointer_t pTitlePg = m_aStates.top().aSectionSprms.find(NS_ooxml::LN_EG_SectPrContents_titlePg);
+                if ((pBreak.get() && !pBreak->getInt()) && !(pTitlePg.get() && pTitlePg->getInt()))
                 {
                     if (m_bWasInFrame)
                     {


More information about the Libreoffice-commits mailing list