sw/source/core/crsr/findtxt.cxx | 62 ++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 33 deletions(-)
New commits: commit 796aeeb0f4c26824f3477b45e0d3bae9cf2c4648 Author: Michael Stahl <michael.st...@cib.de> AuthorDate: Thu Feb 20 13:22:12 2020 +0100 Commit: Michael Stahl <michael.st...@cib.de> CommitDate: Thu Feb 20 14:12:29 2020 +0100 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.st...@cib.de> 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; } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits