sw/source/core/crsr/findtxt.cxx | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-)
New commits: commit b60ce8465c8f01242354abccebe00742d164af60 Author: Michael Stahl <[email protected]> Date: Sat Oct 12 01:54:37 2013 +0200 sw: fix regex search/replace of $ in selection SwView::Replace() nowadays first searches for the to-be-replaced text in the current selection, which does not work in the corner case of "$" when the selection starts at end of a paragraph, as it will when clicking "Find" to look for "$" and then clicking "Replace". The problem is that there is some antique code in SwPaM::Find() to move the cursor forward if it's at the end of a paragraph, which is presumably some pointless micro-optimization; the result is that "Replace" does not replace the selected paragraph break but the one in the following paragraph. (regression from 68a014dbca8bbd25056f75ef551fb81a0dbfb1b7) Change-Id: I5aae9c272d102a48166c63e01775dc6322f9f02d diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index c41be12..76b44c2 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -221,22 +221,6 @@ bool SwPaM::Find( const SearchOptions& rSearchOpt, bool bSearchInNotes , utl::Te SwNodeIndex& rNdIdx = pPam->GetPoint()->nNode; SwIndex& rCntntIdx = pPam->GetPoint()->nContent; - // If a beginning/end, from out of node; stop if empty node - if( bSrchForward - ? ( rCntntIdx.GetIndex() == pPam->GetCntntNode()->Len() && - rCntntIdx.GetIndex() ) - : !rCntntIdx.GetIndex() && pPam->GetCntntNode()->Len() ) - { - if( !(*fnMove->fnNds)( &rNdIdx, sal_False )) - { - delete pPam; - return false; - } - SwCntntNode *pNd = rNdIdx.GetNode().GetCntntNode(); - xub_StrLen nTmpPos = bSrchForward ? 0 : pNd->Len(); - rCntntIdx.Assign( pNd, nTmpPos ); - } - // If bFound is true then the string was found and is between nStart and nEnd bool bFound = false; // start position in text or initial position commit dca5163b6ef206ceb1f2d56feb7546c1929afe60 Author: Michael Stahl <[email protected]> Date: Sat Oct 12 01:53:51 2013 +0200 fdo#64495: sw: fix regex search for soft hyphen \xAD The problem is that the soft hyphen apparently needs special handling, and SwPaM::DoSearch() looked for the no longer supported legacy syntax, not for any of the unicode character syntax that ICU regex supports. Change-Id: I754296d2cf9286242e083cc7906ce3b8fda78dd5 diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index d4110e6..c41be12 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -416,9 +416,14 @@ bool SwPaM::DoSearch( const SearchOptions& rSearchOpt, utl::TextSearch& rSTxt, if ( bRegSearch ) { - const OUString a00AD("\\x00AD"); - if ( -1 != rSearchOpt.searchString.indexOf( a00AD ) ) + if ( -1 != rSearchOpt.searchString.indexOf("\\xAD") + || -1 != rSearchOpt.searchString.indexOf("\\x{00AD}") + || -1 != rSearchOpt.searchString.indexOf("\\u00AD") + || -1 != rSearchOpt.searchString.indexOf("\\U000000AD") + || -1 != rSearchOpt.searchString.indexOf("\\N{SOFT HYPHEN}")) + { bRemoveSoftHyphens = false; + } } else { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
