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