From e4efd9faf24d07d72ff8338cc502446d950e48bc Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Tue, 29 Sep 2026 18:03:21 +0500 Subject: [PATCH] sw: compare positions, not pointers, when looking for a format redline When a paragraph had a tracked format change before the selection, formatting another author's tracked format change and rejecting the new change kept the other author's formatting. Since commit ee3171adb24a3d720466fa43bec869910333f892 (tdf#143918 sw: fix reject of multiple changes, 2021-08-19), lcl_SetRedline looked for an existing redline over the range, and continued while "pRStt <= rRg.Start()", which compared the addresses of the two positions, not the positions themselves. Compare the positions, and go on while the redline does not start after the end of the range, because since commit b5d0868ef42135beb0329ecb9302ce48b08fa2a8 (cool#15941 sw interdependent redlines: fix creating a fmt on top of ins-then-fmt, 2026-06-17) a redline inside the range counts as well. For some reason, the added unit test fails without the fix only on Windows; on Linux on my system, it passes without the fix. Signed-off-by: Mike Kaganski Change-Id: I396567d8507e800fefcdc643a63ee6ad91b8b8ee Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13802 Tested-by: Jenkins CPCI Reviewed-by: Miklos Vajna (cherry picked from commit 2da0c4fa2e5284b25f0dca85243a1f8ef5e9506b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211602 Tested-by: Jenkins Reviewed-by: Xisco Fauli --- sw/qa/core/doc/DocumentRedlineManager.cxx | 53 ++++++++++++++++++ sw/qa/core/doc/data/fmt-twice.docx | Bin 0 -> 12221 bytes .../doc/DocumentContentOperationsManager.cxx | 3 +- 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 sw/qa/core/doc/data/fmt-twice.docx diff --git a/sw/qa/core/doc/DocumentRedlineManager.cxx b/sw/qa/core/doc/DocumentRedlineManager.cxx index 3ed6784a1190..a89f8a3c4032 100644 --- a/sw/qa/core/doc/DocumentRedlineManager.cxx +++ b/sw/qa/core/doc/DocumentRedlineManager.cxx @@ -620,6 +620,59 @@ CPPUNIT_TEST_FIXTURE(Test, testFormatThenFormatOther) CPPUNIT_ASSERT_EQUAL(WEIGHT_NORMAL, aSet.Get(RES_CHRATR_WEIGHT).GetValue()); CPPUNIT_ASSERT_EQUAL(ITALIC_NONE, aSet.Get(RES_CHRATR_POSTURE).GetValue()); } + +CPPUNIT_TEST_FIXTURE(Test, testFormatThenFormatAfterOtherFormat) +{ + // Given a "AAA BBB CCC DDD EEE" document with bold format + // redlines authored by Alice: + createSwDoc("fmt-twice.docx"); + SwDocShell* pDocShell = getSwDocShell(); + SwWrtShell* pWrtShell = pDocShell->GetWrtShell(); + SwDoc* pDoc = pDocShell->GetDoc(); + IDocumentRedlineAccess& rIDRA = pDoc->getIDocumentRedlineAccess(); + SwRedlineTable& rRedlines = rIDRA.GetRedlineTable(); + CPPUNIT_ASSERT_EQUAL(static_cast(2), rRedlines.size()); + CPPUNIT_ASSERT_EQUAL(u"Alice"_ustr, rRedlines[1]->GetAuthorString()); + + // When a different author selects the second range and applies italic: + SwModule* pModule = SwModule::get(); + pModule->SetRedlineAuthor(u"Bob"_ustr); + comphelper::ScopeGuard g( + [pModule] { pModule->SetRedlineAuthor(SwResId(STR_REDLINE_UNKNOWN_AUTHOR)); }); + pWrtShell->SttEndDoc(/*bStt=*/true); + // Skip "AAA ". + pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/false, 4, /*bBasicCall=*/false); + // Select "BBB CCC DDD". + pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/true, 11, /*bBasicCall=*/false); + SwView& rView = pWrtShell->GetView(); + { + SvxPostureItem aPostureItem(ITALIC_NORMAL, RES_CHRATR_POSTURE); + SfxItemSet aSet( + SfxItemSet::makeFixedSfxItemSet(rView.GetPool())); + aSet.Put(aPostureItem); + pWrtShell->SetAttrSet(aSet); + } + + // Then make sure Bob's redline replaced Alice's on "BBB CCC DDD": + CPPUNIT_ASSERT_EQUAL(static_cast(2), rRedlines.size()); + CPPUNIT_ASSERT_EQUAL(u"Bob"_ustr, rRedlines[1]->GetAuthorString()); + + // And when rejecting Bob's redline: + pWrtShell->RejectRedline(1, /*bDirect=*/false); + + // Then make sure both Alice's bold and Bob's italic are gone from "BBB CCC DDD": + pWrtShell->SttEndDoc(/*bStt=*/true); + pWrtShell->Right(SwCursorSkipMode::Chars, /*bSelect=*/false, 5, /*bBasicCall=*/false); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet( + pDoc->GetAttrPool())); + pWrtShell->GetCurAttr(aSet); + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 5 (WEIGHT_NORMAL) + // - Actual : 8 (WEIGHT_BOLD) + // i.e. Alice's bold survived the reject. + CPPUNIT_ASSERT_EQUAL(WEIGHT_NORMAL, aSet.Get(RES_CHRATR_WEIGHT).GetValue()); + CPPUNIT_ASSERT_EQUAL(ITALIC_NONE, aSet.Get(RES_CHRATR_POSTURE).GetValue()); +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/core/doc/data/fmt-twice.docx b/sw/qa/core/doc/data/fmt-twice.docx new file mode 100644 index 0000000000000000000000000000000000000000..53e68d550d6453329c82d51d77bccdfff4352054 GIT binary patch literal 12221 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 literal 0 HcmV?d00001 diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx index e3ec6f13bd30..bf81bb73ca9a 100644 --- a/sw/source/core/doc/DocumentContentOperationsManager.cxx +++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx @@ -1293,7 +1293,8 @@ namespace //local functions originally from docfmt.cxx } } } - } while( pRStt <= rRg.Start() && ++nRedlPos < rDoc.getIDocumentRedlineAccess().GetRedlineTable().size()); + } while (*pRStt <= *rRg.End() + && ++nRedlPos < rDoc.getIDocumentRedlineAccess().GetRedlineTable().size()); } if (!xExtra && bExistingFormatRedlineAtRange) {