From 4144cd5a851466778004af9de98dbcfb019067bb Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 6 May 2013 13:01:27 +0200 Subject: fdo#42144 WW8 export: avoid writing pointless empty footers Regression from 1348288905ffa75d3634eee4392ba4660d28cdb9 (mismerge, I guess), when header was enabled, actually empty footer was exported, even in case footer was disabled. Change-Id: Ied55dc2a9f0faef87689c07935a47db384d37e1a --- sw/qa/extras/ww8export/data/fdo42144.odt | Bin 0 -> 9425 bytes sw/qa/extras/ww8export/ww8export.cxx | 9 +++++++++ sw/source/filter/ww8/wrtw8sty.cxx | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 sw/qa/extras/ww8export/data/fdo42144.odt diff --git a/sw/qa/extras/ww8export/data/fdo42144.odt b/sw/qa/extras/ww8export/data/fdo42144.odt new file mode 100644 index 000000000000..be9490079e72 Binary files /dev/null and b/sw/qa/extras/ww8export/data/fdo42144.odt differ diff --git a/sw/qa/extras/ww8export/ww8export.cxx b/sw/qa/extras/ww8export/ww8export.cxx index 65fcfe2e0f95..0c2f7698b3c5 100644 --- a/sw/qa/extras/ww8export/ww8export.cxx +++ b/sw/qa/extras/ww8export/ww8export.cxx @@ -25,6 +25,7 @@ public: void testZoom(); void test56513(); void testNewPageStylesTable(); + void testFdo42144(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -46,6 +47,7 @@ void Test::run() {"zoom.doc", &Test::testZoom}, {"fdo56513.doc", &Test::test56513}, {"new-page-styles.doc", &Test::testNewPageStylesTable}, + {"fdo42144.odt", &Test::testFdo42144}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -140,6 +142,13 @@ void Test::testNewPageStylesTable() CPPUNIT_ASSERT_EQUAL(OUString("Sigma Space Performance Goals: Next Year (Page 3)*******"), parseDump("/root/page[3]/header/txt/text()")); } +void Test::testFdo42144() +{ + // Footer wasn't disabled -- instead empty footer was exported. + uno::Reference xStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(false, bool(getProperty(xStyle, "FooterIsOn"))); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx index 17fb01c50706..83970930809a 100644 --- a/sw/source/filter/ww8/wrtw8sty.cxx +++ b/sw/source/filter/ww8/wrtw8sty.cxx @@ -1183,7 +1183,7 @@ void WW8_WrPlcSepx::OutHeaderFooter( WW8Export& rWrt, bool bHeader, else if ( rWrt.bWrtWW8 ) { pTxtPos->Append( rCpPos ); - if (rWrt.bHasHdr && nBreakCode!=0) + if ((bHeader? rWrt.bHasHdr : rWrt.bHasFtr) && nBreakCode!=0) { rWrt.WriteStringAsPara( aEmptyStr ); // Empty paragraph for empty header/footer rWrt.WriteStringAsPara( aEmptyStr ); // a CR that WW8 needs for end of the stream -- cgit v1.2.3