libreoffice/discard-more-header-footer-stuff.patch
Andras Timar d07df49824 - bnc#822625 - LO-L3: Table editing is a pain in Impress (performace issues)
* 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
2014-05-30 12:25:11 +00:00

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