From a1d37630ae191f526cc83b0c964df9b9bcb7d41d Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Tue, 8 Oct 2013 18:37:35 +0200 Subject: fdo#70201: sw: eliminate no-extent RSID-only AUTOFMT hints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These are already filtered out in SwpHints::TryInsertHint(), but they can be produced by a SwTxtNode::Update() following some deletion like in SwTxtNode::ReplaceText() (or maybe CutImpl() and RstAttr() too?). So in order to prevent SwHistorySetTxt being created for these, filter them out in SwpHints::MergePortions(), which has the advantage that it's one location to change; probably filtering in Update() and RstAttr() both would work too. (regression from 6db39dbd7378351f6476f6db25eb7110c9cfb291) Change-Id: I597a9ab290dcc3fb1b624dd2dca241c462acf256 (cherry picked from commit 91159b1c31a7fd474ba0b97828f593604790ce3c) Reviewed-on: https://gerrit.libreoffice.org/6167 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sw/source/core/txtnode/thints.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx index 0893dac325a5..34dac0af8c44 100644 --- a/sw/source/core/txtnode/thints.cxx +++ b/sw/source/core/txtnode/thints.cxx @@ -2528,6 +2528,15 @@ bool SwpHints::MergePortions( SwTxtNode& rNode ) pHt->GetAutoFmt().GetStyleHandle()); if ((pSet->Count() == 1) && pSet->GetItem(RES_CHRATR_RSID, false)) { + // fdo#70201: eliminate no-extent RSID-only AUTOFMT + // could be produced by ReplaceText or (maybe?) RstAttr + if (*pHt->GetStart() == *pHt->GetEnd()) + { + SwpHintsArray::DeleteAtPos(i); // kill it without History! + SwTxtAttr::Destroy(pHt, rNode.GetDoc()->GetAttrPool()); + --i; + continue; + } // fdo#52028: this one has _only_ RSID => ignore it completely if (!pHt->IsFormatIgnoreStart() || !pHt->IsFormatIgnoreEnd()) { -- cgit v1.2.3