* impress-table-performance.patch - bnc#863018 - LO-L3: Missing text in imported .doc file * WW8-import-fix-upper-margin-of-multi-page.patch - bnc#875717 - LO-L3: DOCX import: font size of numbering is bigger * direct-format-numbering.patch - bnc#875718 - LO-L3: DOCX import: extra page numbers * discard-more-header-footer-stuff.patch - Security update CVE-2014-0247 * Use-varying-aElement-name.patch OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=157
81 lines
3.1 KiB
Diff
81 lines
3.1 KiB
Diff
From b6e5b90899f9adb62556538583763871999aa544 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com>
|
|
Date: Sat, 24 May 2014 00:36:06 +0200
|
|
Subject: [PATCH] discard more header/footer stuff when discarding
|
|
headers/footers (bnc#875718)
|
|
|
|
782adba4d436c65cdf85d48f28486321873b15ed discards unneeded headers/footers,
|
|
but only the text, not e.g. frames or fields. The test document therefore
|
|
ends up with a frame with a page number inside the body text, because the text
|
|
in the footer it should be anchored to was discarded. This commit fixes
|
|
this by discarding more (although probably the whole header/footer
|
|
shouldn't even be parsed to begin with).
|
|
|
|
The test from b349d2483e1fe64316d87b55d0b3b4c8f2293e2e actually checked
|
|
for this incorrect frame, so change that (the whole test is suspicious, as
|
|
the end result is quite far away from what the original doc looks like).
|
|
|
|
(cherry picked from commit 5510f563502168defa4ccfc54214d781a7c92868)
|
|
Signed-off-by: Andras Timar <andras.timar@collabora.com>
|
|
|
|
Change-Id: I2e7192e00237db1f030d0524c5667fe92c9e496b
|
|
---
|
|
|
|
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
|
|
index 7f61328..2e6538a 100644
|
|
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
|
|
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
|
|
@@ -2293,6 +2293,8 @@ uno::Reference< beans::XPropertySet > DomainMapper_Impl::FindOrCreateFieldMaster
|
|
-----------------------------------------------------------------------*/
|
|
void DomainMapper_Impl::PushFieldContext()
|
|
{
|
|
+ if(m_bDiscardHeaderFooter)
|
|
+ return;
|
|
#ifdef DEBUG_DOMAINMAPPER
|
|
dmapper_logger->element("pushFieldContext");
|
|
#endif
|
|
@@ -2980,6 +2982,8 @@ void DomainMapper_Impl::handleToc
|
|
-----------------------------------------------------------------------*/
|
|
void DomainMapper_Impl::CloseFieldCommand()
|
|
{
|
|
+ if(m_bDiscardHeaderFooter)
|
|
+ return;
|
|
#ifdef DEBUG_DOMAINMAPPER
|
|
dmapper_logger->element("closeFieldCommand");
|
|
#endif
|
|
@@ -3660,6 +3664,8 @@ void DomainMapper_Impl::SetFieldFFData(FFDataHandler::Pointer_t pFFDataHandler)
|
|
-----------------------------------------------------------------------*/
|
|
void DomainMapper_Impl::PopFieldContext()
|
|
{
|
|
+ if(m_bDiscardHeaderFooter)
|
|
+ return;
|
|
#ifdef DEBUG_DOMAINMAPPER
|
|
dmapper_logger->element("popFieldContext");
|
|
#endif
|
|
@@ -3955,7 +3961,7 @@ void DomainMapper_Impl::RegisterFrameConversion(
|
|
bool DomainMapper_Impl::ExecuteFrameConversion()
|
|
{
|
|
bool bRet = false;
|
|
- if( m_xFrameStartRange.is() && m_xFrameEndRange.is() )
|
|
+ if( m_xFrameStartRange.is() && m_xFrameEndRange.is() && !m_bDiscardHeaderFooter )
|
|
{
|
|
bRet = true;
|
|
try
|
|
@@ -3971,10 +3977,10 @@ bool DomainMapper_Impl::ExecuteFrameConversion()
|
|
SAL_WARN( "writerfilter", "Exception caught when converting to frame: " + rEx.Message );
|
|
bRet = false;
|
|
}
|
|
- m_xFrameStartRange = 0;
|
|
- m_xFrameEndRange = 0;
|
|
- m_aFrameProperties.realloc( 0 );
|
|
}
|
|
+ m_xFrameStartRange = 0;
|
|
+ m_xFrameEndRange = 0;
|
|
+ m_aFrameProperties.realloc( 0 );
|
|
return bRet;
|
|
}
|
|
|
|
--
|
|
1.8.4.5
|
|
|