[Libreoffice-commits] core.git: sw/qa sw/source

László Németh (via logerrit) logerrit at kemper.freedesktop.org
Sat Jun 12 10:25:39 UTC 2021


 sw/qa/extras/ooxmlexport/data/tdf142387.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport11.cxx   |    7 +++++++
 sw/source/filter/ww8/docxattributeoutput.cxx |    6 +++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

New commits:
commit eeee19b3fcf8b0374c361c7f6c285fd5c89b5a2f
Author:     László Németh <nemeth at numbertext.org>
AuthorDate: Fri Jun 11 19:31:43 2021 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Sat Jun 12 12:25:03 2021 +0200

    tdf#142387 DOCX track changes: export w:del in w:ins
    
    by processing stack (revision history) of redline ranges,
    see GetStackCount() and GetRedlineData().
    
    Change-Id: I7a9085bc1598f0a5e3ab4de6887a12e81738d4f2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117069
    Tested-by: Jenkins
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/sw/qa/extras/ooxmlexport/data/tdf142387.docx b/sw/qa/extras/ooxmlexport/data/tdf142387.docx
new file mode 100644
index 000000000000..c4dc0d280cdc
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf142387.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
index 0dd8614cf156..548558bd6eed 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
@@ -1369,6 +1369,13 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf128913, "tdf128913.docx")
     assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:del/w:r/w:drawing/wp:inline/a:graphic");
 }
 
+DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf142387, "tdf142387.docx")
+{
+    xmlDocUniquePtr pXmlDoc = parseExport();
+    // w:del in w:ins is exported correctly (only w:del was exported)
+    assertXPathContent(pXmlDoc, "/w:document/w:body/w:p/w:ins/w:del/w:r/w:delText", "inserts ");
+}
+
 DECLARE_OOXMLEXPORT_TEST(testTdf123054, "tdf123054.docx")
 {
     CPPUNIT_ASSERT_EQUAL(OUString("No Spacing"),
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index c0faa7a00fff..7cbf2a8a0df0 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -3238,7 +3238,8 @@ void DocxAttributeOutput::StartRedline( const SwRedlineData * pRedlineData )
     if ( !pRedlineData )
         return;
 
-    // FIXME check if it's necessary to travel over the Next()'s in pRedlineData
+    // write out stack of this redline recursively (first the oldest)
+    StartRedline( pRedlineData->Next() );
 
     OString aId( OString::number( m_nRedlineId++ ) );
 
@@ -3292,6 +3293,9 @@ void DocxAttributeOutput::EndRedline( const SwRedlineData * pRedlineData )
         default:
             break;
     }
+
+    // write out stack of this redline recursively (first the newest)
+    EndRedline( pRedlineData->Next() );
 }
 
 void DocxAttributeOutput::FormatDrop( const SwTextNode& /*rNode*/, const SwFormatDrop& /*rSwFormatDrop*/, sal_uInt16 /*nStyle*/, ww8::WW8TableNodeInfo::Pointer_t /*pTextNodeInfo*/, ww8::WW8TableNodeInfoInner::Pointer_t )


More information about the Libreoffice-commits mailing list