summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2007-12-05 15:41:26 +0000
committerVladimir Glazounov <vg@openoffice.org>2007-12-05 15:41:26 +0000
commita75c5cd452eb356727e32af4ed6a5a3e615fd18e (patch)
tree23e1c31fdebfdcba91720e9087399f03d5a3b87f
parent8d6dd5b28a5e225fe164cee46644351b466aedb2 (diff)
INTEGRATION: CWS regexp02 (1.14.116); FILE MERGED
2007/11/06 13:12:18 ama 1.14.116.1: Fix #i15666#: Backward references in regular expressions
-rw-r--r--sc/source/core/data/table6.cxx35
1 files changed, 6 insertions, 29 deletions
diff --git a/sc/source/core/data/table6.cxx b/sc/source/core/data/table6.cxx
index b1ed680d3760..db5da0b864b6 100644
--- a/sc/source/core/data/table6.cxx
+++ b/sc/source/core/data/table6.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: table6.cxx,v $
*
- * $Revision: 1.14 $
+ * $Revision: 1.15 $
*
- * last change: $Author: rt $ $Date: 2007-07-06 12:33:33 $
+ * last change: $Author: vg $ $Date: 2007-12-05 16:41:26 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -62,26 +62,6 @@
//--------------------------------------------------------------------------
-void ScTable::ScReplaceTabsStr( String& rStr, const String& rSrch, const String& rRepl )
- // von sw (docedt.cxx kopiert, Namen geaendert)
-{
- xub_StrLen nPos = 0;
- while( STRING_NOTFOUND != ( nPos = rStr.Search( rSrch, nPos )) )
- {
- // wurde das escaped?
- if( nPos && '\\' == rStr.GetChar(nPos-1) )
- {
- // noch nicht am Ende ??
- rStr.Erase( nPos-1,1 ); // den \\ noch loeschen
- if( nPos < rStr.Len() )
- continue;
- break;
- }
- rStr.Erase( nPos, rSrch.Len() );
- rStr.Insert( rRepl, nPos );
- nPos = sal::static_int_cast<xub_StrLen>( nPos + rRepl.Len() );
- }
-}
BOOL lcl_GetTextWithBreaks( const ScEditCell& rCell, ScDocument* pDoc, String& rVal )
{
@@ -145,19 +125,19 @@ BOOL ScTable::SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRo
}
xub_StrLen nStart = 0;
xub_StrLen nEnd = aString.Len();
-
+ ::com::sun::star::util::SearchResult aSearchResult;
if (pSearchText)
{
if ( bDoBack )
{
xub_StrLen nTemp=nStart; nStart=nEnd; nEnd=nTemp;
- bFound = (BOOL)(pSearchText->SearchBkwrd(aString, &nStart, &nEnd));
+ bFound = (BOOL)(pSearchText->SearchBkwrd(aString, &nStart, &nEnd, &aSearchResult));
// change results to definition before 614:
--nEnd;
}
else
{
- bFound = (BOOL)(pSearchText->SearchFrwrd(aString, &nStart, &nEnd));
+ bFound = (BOOL)(pSearchText->SearchFrwrd(aString, &nStart, &nEnd, &aSearchResult));
// change results to definition before 614:
--nEnd;
}
@@ -202,11 +182,8 @@ BOOL ScTable::SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRo
if (rSearchItem.GetRegExp())
{
String sFndStr = aString.Copy(nStart, nEnd-nStart+1);
+ pSearchText->ReplaceBackReferences( sReplStr, aString, aSearchResult );
aString.Erase(nStart, nEnd-nStart+1);
- ScReplaceTabsStr(sReplStr, '&', sFndStr );
- ScReplaceTabsStr(sReplStr,
- String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("\\t")),
- '\t' );
aString.Insert(sReplStr, nStart);
}
else