[Libreoffice-commits] core.git: sw/qa sw/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Thu Nov 22 17:04:59 UTC 2018
sw/qa/extras/ooxmlexport/data/tdf121597.odt |binary
sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 15 +++++++++++++
sw/source/filter/ww8/ww8atr.cxx | 31 ++--------------------------
3 files changed, 18 insertions(+), 28 deletions(-)
New commits:
commit d1ee27cf9b83ad9b69d1ee00e2e8969fb35446c9
Author: László Németh <nemeth at numbertext.org>
AuthorDate: Wed Nov 21 17:18:39 2018 +0100
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Thu Nov 22 18:04:32 2018 +0100
tdf#121597 DOCX: don't export empty paragraphs at tracked deletion
of non-empty multiple paragraphs. Complete the fix for
"tdf#115521 DOCX export: keep empty paragraphs in tracked deletion"
in commit 2cdc870a7ee82d0faf35cdb5b2bf4e687cfd2b8d
Change-Id: Ic3446e2a2118e604a7a4d269c8fed1f9f157846f
Reviewed-on: https://gerrit.libreoffice.org/63731
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth at numbertext.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf121597.odt b/sw/qa/extras/ooxmlexport/data/tdf121597.odt
new file mode 100644
index 000000000000..760b46e76379
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf121597.odt differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
index 2728c75b51be..c7e6bac3a8ea 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
@@ -826,6 +826,21 @@ DECLARE_OOXMLEXPORT_TEST(testTdf58944RepeatingTableHeader, "tdf58944-repeating-t
parseDump("/root/page[2]/body/tab/row[2]/cell[1]/txt/text()"));
}
+DECLARE_OOXMLEXPORT_TEST(testTdf121597TrackedDeletionOfMultipleParagraphs, "tdf121597.odt")
+{
+ xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+ if (!pXmlDoc)
+ return;
+
+ // check paragraphs with removed paragraph mark
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:rPr/w:del");
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:pPr/w:rPr/w:del");
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:pPr/w:rPr/w:del");
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[5]/w:pPr/w:rPr/w:del");
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[7]/w:pPr/w:rPr/w:del");
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p[10]/w:pPr/w:rPr/w:del");
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index d8411eed8796..b911ef83b6a7 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -5505,37 +5505,12 @@ const SwRedlineData* AttributeOutputBase::GetParagraphMarkerRedline( const SwTex
if ( pRedl->GetRedlineData().GetType() != aRedlineType )
continue;
- const SwPosition* pCheckedEnd = pRedl->End();
- const SwPosition* pCheckedStt = pRedl->Start();
- sal_uLong uStartNodeIndex = pCheckedStt->nNode.GetIndex();
- sal_uLong uStartCharIndex = pCheckedStt->nContent.GetIndex();
- sal_uLong uEndNodeIndex = pCheckedEnd->nNode.GetIndex();
- sal_uLong uEndCharIndex = pCheckedEnd->nContent.GetIndex();
+ sal_uLong uStartNodeIndex = pRedl->Start()->nNode.GetIndex();
+ sal_uLong uEndNodeIndex = pRedl->End()->nNode.GetIndex();
sal_uLong uNodeIndex = rNode.GetIndex();
if( uStartNodeIndex <= uNodeIndex && uNodeIndex < uEndNodeIndex )
- {
- // Maybe add here a check that also the start & end of the redline is the entire paragraph
- if ( ( uStartNodeIndex < uEndNodeIndex ) &&
- // check start:
- // 1. start in the same node
- (( uStartNodeIndex == uNodeIndex &&
- uStartCharIndex == static_cast<sal_uLong>(rNode.Len()) ) ||
- // 2. or in a previous node
- uStartNodeIndex < uNodeIndex
- ) &&
- // check end:
- // 1. end in the same node
- (( uEndNodeIndex == (uNodeIndex + 1) &&
- uEndCharIndex == 0) ||
- // 2. or end in after that
- uEndNodeIndex > (uNodeIndex + 1)
- )
- )
- {
- return &( pRedl->GetRedlineData() );
- }
- }
+ return &( pRedl->GetRedlineData() );
}
return nullptr;
}
More information about the Libreoffice-commits
mailing list