sw/qa/extras/uiwriter/uiwriter.cxx                      |   36 ++++++++++++++++
 sw/source/core/doc/DocumentContentOperationsManager.cxx |    2 
 2 files changed, 37 insertions(+), 1 deletion(-)

New commits:
commit cba73f04699592c7038156f91ed92be026ed2536
Author: Aron Budea <aron.bu...@collabora.com>
Date:   Sun Mar 25 08:33:16 2018 +0200

    tdf#106746: pDelPam is a bit special
    
    Regression from db17d3c17c40d6b0e92392cf3c6e343d1d17b771
    
    Change-Id: I17e2fef2eb16a900cc487b75c3b9dbba2764ac71
    Reviewed-on: https://gerrit.libreoffice.org/51814
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Reviewed-by: Aron Budea <aron.bu...@collabora.com>
    (cherry picked from commit 7b1d50e97eaa00855152e74f42b789fc643e0bac)
    Reviewed-on: https://gerrit.libreoffice.org/52017
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx 
b/sw/qa/extras/uiwriter/uiwriter.cxx
index d73a8aa083cb..972ce9f7dcc4 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -227,6 +227,7 @@ public:
     void testTdf84695NormalChar();
     void testTdf84695Tab();
     void testTableStyleUndo();
+    void testRedlineCopyPaste();
     void testRedlineParam();
     void testRedlineViewAuthor();
     void testTdf78727();
@@ -365,6 +366,7 @@ public:
     CPPUNIT_TEST(testTdf84695NormalChar);
     CPPUNIT_TEST(testTdf84695Tab);
     CPPUNIT_TEST(testTableStyleUndo);
+    CPPUNIT_TEST(testRedlineCopyPaste);
     CPPUNIT_TEST(testRedlineParam);
     CPPUNIT_TEST(testRedlineViewAuthor);
     CPPUNIT_TEST(testTdf78727);
@@ -4444,6 +4446,40 @@ void SwUiWriterTest::testTableStyleUndo()
     CPPUNIT_ASSERT(bool(pStyle->GetBoxFormat(0).GetBackground() == 
aBackground2));
 }
 
+void SwUiWriterTest::testRedlineCopyPaste()
+{
+    // regressed in tdf#106746
+    SwDoc* pDoc = createDoc();
+
+    SwNodeIndex aIdx(pDoc->GetNodes().GetEndOfContent(), -1);
+    SwPaM aPaM(aIdx);
+
+    pDoc->getIDocumentContentOperations().InsertString(aPaM, "abzdezgh");
+    SwTextNode* pTextNode = aPaM.GetNode().GetTextNode();
+
+    // Turn on track changes, make changes, turn off track changes
+    uno::Reference<beans::XPropertySet> xPropertySet(mxComponent, 
uno::UNO_QUERY);
+    xPropertySet->setPropertyValue("RecordChanges", uno::makeAny(true));
+    lcl_selectCharacters(aPaM, 2, 3);
+    pDoc->getIDocumentContentOperations().ReplaceRange(aPaM, "c", false);
+    lcl_selectCharacters(aPaM, 6, 7);
+    pDoc->getIDocumentContentOperations().ReplaceRange(aPaM, "f", false);
+    xPropertySet->setPropertyValue("RecordChanges", uno::makeAny(false));
+
+    // Create the clipboard document.
+    SwDoc aClipboard;
+    SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
+
+    // Select the whole content, copy, delete the original and paste the 
copied content
+    pWrtShell->SelAll();
+    pWrtShell->Copy(&aClipboard);
+    pWrtShell->Delete();
+    pWrtShell->Paste(&aClipboard);
+
+    // With the bug this is "abzcdefgh", ie. contains the first deleted piece, 
too
+    CPPUNIT_ASSERT_EQUAL(OUString("abcdefgh"), pTextNode->GetText());
+}
+
 void SwUiWriterTest::testRedlineParam()
 {
     // Create a document with minimal content.
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx 
b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index bb68c450575a..e20e5c5104f3 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -352,7 +352,7 @@ namespace
 
                     default:
                         {
-                            pDelPam.reset(new SwPaM( *pCpyStt, pDelPam.get() 
));
+                            pDelPam.reset(new SwPaM( *pCpyStt, 
pDelPam.release() ));
                             if( *pStt < *pRStt )
                             {
                                 lcl_NonCopyCount( rPam, aCorrIdx, 
pRStt->nNode.GetIndex(), nDelCount );
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to