From 4f702470a2c5f5521209203f0d20f768ef274d67 Mon Sep 17 00:00:00 2001 From: Thomas Arnhold Date: Mon, 9 Sep 2013 18:50:22 +0200 Subject: Related: fdo#38838 Remove String::SearchChar() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ide40e0ef91aec04c2ae274aaf2a957dd5064854c Reviewed-on: https://gerrit.libreoffice.org/5894 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- editeng/source/misc/svxacorr.cxx | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'editeng') diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 014eefcc3797..71f70f40486c 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -1639,18 +1639,28 @@ OUString EncryptBlockName_Imp(const OUString& rName) } /* This code is copied from SwXMLTextBlocks::GeneratePackageName */ -static void GeneratePackageName ( const String& rShort, String& rPackageName ) +static void GeneratePackageName ( const OUString& rShort, OUString& rPackageName ) { - rPackageName = rShort; - xub_StrLen nPos = 0; - sal_Unicode pDelims[] = { '!', '/', ':', '.', '\\', 0 }; - OString sByte(OUStringToOString(rPackageName, RTL_TEXTENCODING_UTF7)); - rPackageName = OStringToOUString(sByte, RTL_TEXTENCODING_ASCII_US); - while( STRING_NOTFOUND != ( nPos = rPackageName.SearchChar( pDelims, nPos ))) + OString sByte(OUStringToOString(rShort, RTL_TEXTENCODING_UTF7)); + OUStringBuffer aBuf(OStringToOUString(sByte, RTL_TEXTENCODING_ASCII_US)); + + for (sal_Int32 nPos = 0; nPos < aBuf.getLength(); ++nPos) { - rPackageName.SetChar( nPos, '_' ); - ++nPos; + switch (aBuf[nPos]) + { + case '!': + case '/': + case ':': + case '.': + case '\\': + aBuf[nPos] = '_'; + break; + default: + break; + } } + + rPackageName = aBuf.makeStringAndClear(); } static const SvxAutocorrWord* lcl_SearchWordsInList( @@ -2436,7 +2446,7 @@ sal_Bool SvxAutoCorrectLanguageLists::MakeCombinedChanges( std::vectorIsTextOnly() ) { - String aName( aWordToDelete.GetShort() ); + OUString aName( aWordToDelete.GetShort() ); if (xStorage->IsOLEStorage()) aName = EncryptBlockName_Imp(aName); else @@ -2461,7 +2471,7 @@ sal_Bool SvxAutoCorrectLanguageLists::MakeCombinedChanges( std::vectorIsTextOnly() ) { // Still have to remove the Storage - String sStorageName( pWordToAdd->GetShort() ); + OUString sStorageName( pWordToAdd->GetShort() ); if (xStorage->IsOLEStorage()) sStorageName = EncryptBlockName_Imp(sStorageName); else @@ -2509,7 +2519,7 @@ sal_Bool SvxAutoCorrectLanguageLists::PutText( const OUString& rShort, const OUS if( !pRemove->IsTextOnly() ) { // Still have to remove the Storage - String sStgNm( rShort ); + OUString sStgNm( rShort ); if (xStg->IsOLEStorage()) sStgNm = EncryptBlockName_Imp(sStgNm); else @@ -2589,7 +2599,7 @@ sal_Bool SvxAutoCorrectLanguageLists::DeleteText( const OUString& rShort ) { if( !pFnd->IsTextOnly() ) { - String aName( rShort ); + OUString aName( rShort ); if (xStg->IsOLEStorage()) aName = EncryptBlockName_Imp(aName); else -- cgit