summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2020-02-20 13:22:12 +0100
committerMichael Stahl <michael.stahl@cib.de>2020-02-20 14:12:29 +0100
commit796aeeb0f4c26824f3477b45e0d3bae9cf2c4648 (patch)
treeb72a25b01373e503cd230aae5abd0f3df16cbaa5 /sw
parent4e97fa0f4e73acdf522643aeec486b1395e63727 (diff)
tdf#129553 sw_redlinehide follow-up: simplify ReplaceBackReferences()
In the special case of bParaEnd the nStart/nEnd aren't actually used so it's pointless go to to all this trouble; refactor this so it's more obvious. Change-Id: I0328950e11d86a2313be64f6c662afd1898185e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89092 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/crsr/findtxt.cxx62
1 files changed, 29 insertions, 33 deletions
diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx
index 817091462d51..cda6ef6161b3 100644
--- a/sw/source/core/crsr/findtxt.cxx
+++ b/sw/source/core/crsr/findtxt.cxx
@@ -1117,45 +1117,41 @@ o3tl::optional<OUString> ReplaceBackReferences(const i18nutil::SearchOptions2& r
: pTextNode == pMarkTextNode))
{
utl::TextSearch aSText( utl::TextSearch::UpgradeToSearchOptions2( rSearchOpt) );
- OUString rStr = pLayout
- ? pFrame->GetText()
- : pTextNode->GetTextNode()->GetText();
- AmbiguousIndex nStart;
- AmbiguousIndex nEnd;
- if (pLayout)
+ SearchResult aResult;
+ OUString aReplaceStr( rSearchOpt.replaceString );
+ if (bParaEnd)
{
- SwTextFrame const*const pStartFrame(
- bParaEnd && *pPam->GetMark() < *pPam->GetPoint()
- ? static_cast<SwTextFrame const*>(pMarkTextNode->getLayoutFrame(pLayout))
- : pFrame);
- SwTextFrame const*const pEndFrame(
- bParaEnd && *pPam->GetPoint() <= *pPam->GetMark()
- ? static_cast<SwTextFrame const*>(pMarkTextNode->getLayoutFrame(pLayout))
- : pFrame);
- nStart.SetFrameIndex(pStartFrame->MapModelToViewPos(*pPam->Start()));
- nEnd.SetFrameIndex(pEndFrame->MapModelToViewPos(*pPam->End()));
+ OUString const aStr("\\n");
+ aResult.subRegExpressions = 1;
+ aResult.startOffset.realloc(1);
+ aResult.endOffset.realloc(1);
+ aResult.startOffset[0] = 0;
+ aResult.endOffset[0] = aStr.getLength();
+ aSText.ReplaceBackReferences( aReplaceStr, aStr, aResult );
+ xRet = aReplaceStr;
}
else
{
- nStart.SetModelIndex(pPam->Start()->nContent.GetIndex());
- nEnd.SetModelIndex(pPam->End()->nContent.GetIndex());
- }
- SearchResult aResult;
- if (bParaEnd ||
- aSText.SearchForward(rStr, &nStart.GetAnyIndex(), &nEnd.GetAnyIndex(), &aResult))
- {
- if ( bParaEnd )
+ OUString const aStr(pLayout
+ ? pFrame->GetText()
+ : pTextNode->GetTextNode()->GetText());
+ AmbiguousIndex nStart;
+ AmbiguousIndex nEnd;
+ if (pLayout)
{
- rStr = "\\n";
- aResult.subRegExpressions = 1;
- aResult.startOffset.realloc(1);
- aResult.endOffset.realloc(1);
- aResult.startOffset[0] = 0;
- aResult.endOffset[0] = rStr.getLength();
+ nStart.SetFrameIndex(pFrame->MapModelToViewPos(*pPam->Start()));
+ nEnd.SetFrameIndex(pFrame->MapModelToViewPos(*pPam->End()));
+ }
+ else
+ {
+ nStart.SetModelIndex(pPam->Start()->nContent.GetIndex());
+ nEnd.SetModelIndex(pPam->End()->nContent.GetIndex());
+ }
+ if (aSText.SearchForward(aStr, &nStart.GetAnyIndex(), &nEnd.GetAnyIndex(), &aResult))
+ {
+ aSText.ReplaceBackReferences( aReplaceStr, aStr, aResult );
+ xRet = aReplaceStr;
}
- OUString aReplaceStr( rSearchOpt.replaceString );
- aSText.ReplaceBackReferences( aReplaceStr, rStr, aResult );
- xRet = aReplaceStr;
}
}
}