sw/qa/extras/ww8export/data/tdf119232_startEvenPage.doc |binary
 sw/qa/extras/ww8export/ww8export2.cxx                   |    5 +++++
 sw/source/filter/ww8/ww8par6.cxx                        |   12 +++++++++---
 3 files changed, 14 insertions(+), 3 deletions(-)

New commits:
commit 2127581728ae61eca7470b288c21d1c02754fb5b
Author:     Justin Luth <justin_l...@sil.org>
AuthorDate: Thu Aug 16 15:49:37 2018 +0300
Commit:     Miklos Vajna <vmik...@collabora.co.uk>
CommitDate: Wed Aug 29 11:20:15 2018 +0200

    tdf#119232 ww8import: even page means default to start on page 2
    
    I didn't see this mentioned in the sprm documentation,
    but that is how MS Word seems to implement it.
    
    Change-Id: I5b86ecf99a884e768877cdb0e71f43cdb9f2ad76
    Reviewed-on: https://gerrit.libreoffice.org/59221
    Reviewed-by: Justin Luth <justin_l...@sil.org>
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk>

diff --git a/sw/qa/extras/ww8export/data/tdf119232_startEvenPage.doc 
b/sw/qa/extras/ww8export/data/tdf119232_startEvenPage.doc
new file mode 100644
index 000000000000..c50bf46c0b58
Binary files /dev/null and 
b/sw/qa/extras/ww8export/data/tdf119232_startEvenPage.doc differ
diff --git a/sw/qa/extras/ww8export/ww8export2.cxx 
b/sw/qa/extras/ww8export/ww8export2.cxx
index d540cece3c6d..078079f969ec 100644
--- a/sw/qa/extras/ww8export/ww8export2.cxx
+++ b/sw/qa/extras/ww8export/ww8export2.cxx
@@ -282,6 +282,11 @@ DECLARE_WW8EXPORT_TEST(testTdf106174_rtlParaAlign, 
"tdf106174_rtlParaAlign.docx"
     CPPUNIT_ASSERT_EQUAL(sal_Int16(style::ParagraphAdjust_RIGHT), 
getProperty<sal_Int16>(getParagraph(14), "ParaAdjust"));
 }
 
+DECLARE_WW8EXPORT_TEST(testTdf119232_startEvenPage, 
"tdf119232_startEvenPage.doc")
+{
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(2), getProperty<sal_Int16>(getParagraph(1), 
"PageNumberOffset"));
+}
+
 DECLARE_WW8EXPORT_TEST(testTdf104805, "tdf104805.doc")
 {
     uno::Reference<beans::XPropertySet> 
xPropertySet(getStyles("NumberingStyles")->getByName("WW8Num1"), 
uno::UNO_QUERY);
diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx
index cc43a90d4077..7844ef2a07e9 100644
--- a/sw/source/filter/ww8/ww8par6.cxx
+++ b/sw/source/filter/ww8/ww8par6.cxx
@@ -874,6 +874,8 @@ void wwSectionManager::CreateSep(const long nTextPos)
 
     const sal_uInt16* pIds = eVer <= ww::eWW2 ? aVer2Ids0 : eVer <= ww::eWW7 ? 
aVer67Ids0 : aVer8Ids0;
 
+    SprmResult aRes = pSep->HasSprm(pIds[0]);
+    const sal_uInt8* pSprmBkc = aRes.pSprm;
     if (!maSegments.empty())
     {
         // Type of break: break codes are:
@@ -882,8 +884,6 @@ void wwSectionManager::CreateSep(const long nTextPos)
         // 2 New page
         // 3 Even page
         // 4 Odd page
-        SprmResult aRes = pSep->HasSprm(pIds[0]);
-        const sal_uInt8* pSprmBkc = aRes.pSprm;
         if (pSprmBkc && aRes.nRemainingData >= 1)
             aNewSection.maSep.bkc = *pSprmBkc;
     }
@@ -1036,7 +1036,13 @@ void wwSectionManager::CreateSep(const long nTextPos)
 
     aNewSection.maSep.pgnStart = ReadUSprm( pSep, pIds[7], 0 );
 
-    SprmResult aRes;
+    // if the document's first page number is unspecified, but it starts with 
an even page break,
+    // then set the first page number to two
+    if ( maSegments.empty() && !aNewSection.maSep.fPgnRestart && pSprmBkc && 
*pSprmBkc == 3 )
+    {
+        aNewSection.maSep.pgnStart = 2;
+        aNewSection.maSep.fPgnRestart = 1;
+    }
 
     if (eVer >= ww::eWW6)
     {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to