i18npool/source/search/textsearch.cxx | 2 +- sw/source/core/crsr/findtxt.cxx | 29 ++++++----------------------- 2 files changed, 7 insertions(+), 24 deletions(-)
New commits: commit 9a93475d6eba53b2e1fba1585dbd11c94ea4b4a3 Author: Herbert Dürr <[email protected]> Date: Wed May 9 12:57:20 2012 +0000 i#118925# enhance textsearch's match-group references to work for look-ahead/look-behind (cherry picked from commit 3b83c404c56e5db5bab29ffee41f02822410d625) Conflicts: sw/source/core/crsr/findtxt.cxx Change-Id: Ia5b31628b0f2af8f93132afa4b2eabd2f533bb91 diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx index cdca853..075cd21 100644 --- a/i18npool/source/search/textsearch.cxx +++ b/i18npool/source/search/textsearch.cxx @@ -710,7 +710,7 @@ SearchResult TextSearch::RESrchFrwrd( const OUString& searchStr, // use the ICU RegexMatcher to find the matches UErrorCode nIcuErr = U_ZERO_ERROR; - const IcuUniString aSearchTargetStr( (const UChar*)searchStr.getStr(), endPos); + const IcuUniString aSearchTargetStr( (const UChar*)searchStr.getStr(), searchStr.getLength()); pRegexMatcher->reset( aSearchTargetStr); // search until there is a valid match for(;;) diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index e251ee6..b2fbea8 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -659,31 +659,14 @@ String *ReplaceBackReferences( const SearchOptions& rSearchOpt, SwPaM* pPam ) if( pTxtNode && pTxtNode->IsTxtNode() && pTxtNode == pPam->GetCntntNode( sal_False ) ) { utl::TextSearch aSTxt( rSearchOpt ); - String aStr( pPam->GetTxt() ); - String aReplaceStr( rSearchOpt.replaceString ); - aStr = comphelper::string::remove(aStr, CH_TXTATR_BREAKWORD); - aStr = comphelper::string::remove(aStr, CH_TXTATR_INWORD); - xub_StrLen nStart = 0; - OUString sX( 'x' ); - if( pPam->Start()->nContent > 0 ) - { - aStr.Insert( sX, 0 ); - ++nStart; - } - xub_StrLen nEnd = aStr.Len(); - bool bDeleteLastX = false; - if (pPam->End()->nContent < - static_cast<const SwTxtNode*>(pTxtNode)->GetTxt().getLength()) - { - aStr.Insert( sX ); - bDeleteLastX = true; - } + const String& rStr = static_cast<const SwTxtNode*>(pTxtNode)->GetTxt(); + xub_StrLen nStart = pPam->Start()->nContent.GetIndex(); + xub_StrLen nEnd = pPam->End()->nContent.GetIndex(); SearchResult aResult; - if( aSTxt.SearchFrwrd( aStr, &nStart, &nEnd, &aResult ) ) + if( aSTxt.SearchFrwrd( rStr, &nStart, &nEnd, &aResult ) ) { - if( bDeleteLastX ) - aStr.Erase( aStr.Len() - 1 ); - aSTxt.ReplaceBackReferences( aReplaceStr, aStr, aResult ); + String aReplaceStr( rSearchOpt.replaceString ); + aSTxt.ReplaceBackReferences( aReplaceStr, rStr, aResult ); pRet = new String( aReplaceStr ); } }
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
