diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2007-12-05 15:41:26 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2007-12-05 15:41:26 +0000 |
commit | a75c5cd452eb356727e32af4ed6a5a3e615fd18e (patch) | |
tree | 23e1c31fdebfdcba91720e9087399f03d5a3b87f | |
parent | 8d6dd5b28a5e225fe164cee46644351b466aedb2 (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.cxx | 35 |
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 |