From 9ab0b38e95133dab720408cc2c80093b8a201c10 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 15 Feb 2012 15:26:43 +0100 Subject: Various string function clean up Added: * rtl::OString::matchL * rtl::OString::endsWith * rtl::OString::endsWithL * rtl::OString::indexOfL * rtl::OString::replaceFirst * rtl::OString::replaceAll * rtl::OString::getToken * rtl::OUString::endsWith * rtl::OUString::replaceFirst * rtl::OUString::replaceFirstAsciiL * rtl::OUString::replaceFirstAsciiLAsciiL * rtl::OUString::replaceAll * rtl::OUString::replaceAllAsciiL * rtl::OUString::replaceAllAsciiLAsciiL * rtl::OUString::getToken plus underlying C functions where necessary Deprecated: * comphelper::string::remove * comphelper::string::getToken Removed: * comphelper::string::searchAndReplaceAsciiL * comphelper::string::searchAndReplaceAllAsciiWithAscii * comphelper::string::searchAndReplaceAsciiI * comphelper::string::replace * comphelper::string::matchL * comphelper::string::matchIgnoreAsciiCaseL * comphelper::string::indexOfL Also fixed some apparent misuses of RTL_CONSTASCII_USTRINGPARAM -> RTL_CONSTASCII_STRINGPARAM. --- l10ntools/inc/export.hxx | 10 +- l10ntools/source/cfgmerge.cxx | 46 +++------ l10ntools/source/export.cxx | 215 +++++++++++++++++++---------------------- l10ntools/source/export2.cxx | 7 +- l10ntools/source/gsicheck.cxx | 2 +- l10ntools/source/helper.hxx | 78 --------------- l10ntools/source/helpmerge.cxx | 25 +++-- l10ntools/source/lngmerge.cxx | 26 ++--- l10ntools/source/localize.cxx | 8 +- l10ntools/source/merge.cxx | 3 +- l10ntools/source/xrmmerge.cxx | 39 ++++---- 11 files changed, 167 insertions(+), 292 deletions(-) (limited to 'l10ntools') diff --git a/l10ntools/inc/export.hxx b/l10ntools/inc/export.hxx index 5e08239316c0..2355f5b23e46 100644 --- a/l10ntools/inc/export.hxx +++ b/l10ntools/inc/export.hxx @@ -54,8 +54,6 @@ #include #endif -#include "helper.hxx" - #define NO_TRANSLATE_ISO "x-no-translate" class PFormEntrys; @@ -196,8 +194,8 @@ public: pPairedList( NULL ), sPForm( rPF ) { - helper::searchAndReplaceAll(&sGId, "\r", rtl::OString()); - helper::searchAndReplaceAll(&sPForm, "\r", rtl::OString()); + sGId = sGId.replaceAll("\r", rtl::OString()); + sPForm = sPForm.replaceAll("\r", rtl::OString()); } ResData(const rtl::OString &rPF, const rtl::OString &rGId , const rtl::OString &rFilename) @@ -227,8 +225,8 @@ public: pPairedList( NULL ), sPForm( rPF ) { - helper::searchAndReplaceAll(&sGId, "\r", rtl::OString()); - helper::searchAndReplaceAll(&sPForm, "\r", rtl::OString()); + sGId = sGId.replaceAll("\r", rtl::OString()); + sPForm = sPForm.replaceAll("\r", rtl::OString()); } }; diff --git a/l10ntools/source/cfgmerge.cxx b/l10ntools/source/cfgmerge.cxx index 1d15fc78bea7..2c39fc68ee52 100644 --- a/l10ntools/source/cfgmerge.cxx +++ b/l10ntools/source/cfgmerge.cxx @@ -37,7 +37,6 @@ #include "rtl/strbuf.hxx" #include "common.hxx" -#include "helper.hxx" #include "export.hxx" #include "cfgmerge.hxx" #include "tokens.h" @@ -235,18 +234,12 @@ void CfgParser::AddText( ) /*****************************************************************************/ { - sal_Int32 nTextLen = 0; - while ( rText.getLength() != nTextLen ) { - nTextLen = rText.getLength(); - rText = rText.replace( '\n', ' ' ); - rText = rText.replace( '\r', ' ' ); - rText = rText.replace( '\t', ' ' ); - while (helper::searchAndReplace(&rText, " ", " ") != -1) {} - } - pStackData->sResTyp = rResTyp; - WorkOnText( rText, rIsoLang ); - - pStackData->sText[ rIsoLang ] = rText; + rText = rText.replaceAll(rtl::OString('\n'), rtl::OString()). + replaceAll(rtl::OString('\r'), rtl::OString()). + replaceAll(rtl::OString('\t'), rtl::OString()); + pStackData->sResTyp = rResTyp; + WorkOnText( rText, rIsoLang ); + pStackData->sText[ rIsoLang ] = rText; } /*****************************************************************************/ @@ -274,12 +267,8 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) case ANYTOKEN: case CFG_TEXT_START: { - sal_Int32 n = 0; - rtl::OString t(sToken.getToken(1, '<', n)); - n = 0; - t = t.getToken(0, '>', n); - n = 0; - sTokenName = t.getToken(0, ' ', n); + sTokenName = sToken.getToken(1, '<').getToken(0, '>'). + getToken(0, ' '); if ( !IsTokenClosed( sToken )) { rtl::OString sSearch; @@ -315,8 +304,7 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) sCurrentResTyp = sTokenName; rtl::OString sTemp = sToken.copy( sToken.indexOf( "xml:lang=" )); - n = 0; - sCurrentIsoLang = sTemp.getToken(1, '"', n); + sCurrentIsoLang = sTemp.getToken(1, '"'); if ( sCurrentIsoLang == NO_TRANSLATE_ISO ) bLocalize = sal_False; @@ -330,8 +318,7 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) if ( !sSearch.isEmpty()) { rtl::OString sTemp = sToken.copy( sToken.indexOf( sSearch )); - n = 0; - sTokenId = sTemp.getToken(1, '"', n); + sTokenId = sTemp.getToken(1, '"'); } pStackData = aStack.Push( sTokenName, sTokenId ); @@ -356,12 +343,8 @@ int CfgParser::ExecuteAnalyzedToken( int nToken, char *pToken ) break; case CFG_CLOSETAG: { - sal_Int32 n = 0; - rtl::OString t(sToken.getToken(1, '/', n)); - n = 0; - t = t.getToken(0, '>', n); - n = 0; - sTokenName = t.getToken(0, ' ', n); + sTokenName = sToken.getToken(1, '/').getToken(0, '>'). + getToken(0, ' '); if ( aStack.GetStackData() && ( aStack.GetStackData()->GetTagType() == sTokenName )) { if (sCurrentText.isEmpty()) @@ -660,13 +643,12 @@ void CfgMerge::WorkOnRessourceEnd() sSearch += sTemp.getToken(0, '"', n); sSearch += "\""; - n = 0; - rtl::OString sReplace = sTemp.getToken(0, '"', n); + rtl::OString sReplace = sTemp.getToken(0, '"'); sReplace += "\""; sReplace += sCur; sReplace += "\""; - helper::searchAndReplace(&sTextTag, sSearch, sReplace); + sTextTag = sTextTag.replaceFirst(sSearch, sReplace); sAdditionalLine += sTextTag; sAdditionalLine += sText; diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx index c57591b3553e..6a43da8068b1 100644 --- a/l10ntools/source/export.cxx +++ b/l10ntools/source/export.cxx @@ -243,7 +243,7 @@ sal_Bool ResData::SetId( const rtl::OString& rId, sal_uInt16 nLevel ) if ( sId.getLength() > 255 ) { YYWarning( "LocalId > 255 chars, truncating..." ); - sId = helper::trimAscii(sId.copy(0, 255)); + sId = sId.copy(0, 255).trim(); } return sal_True; @@ -362,8 +362,8 @@ int Export::Execute( int nToken, const char * pToken ) if ( nToken == CONDITION ) { rtl::OString sTestToken(pToken); - helper::searchAndReplaceAll(&sTestToken, "\t", rtl::OString()); - helper::searchAndReplaceAll(&sTestToken, " ", rtl::OString()); + sTestToken = sTestToken.replaceAll("\t", rtl::OString()). + replaceAll(" ", rtl::OString()); if (( !bReadOver ) && ( sTestToken.indexOf("#ifndef__RSC_PARSER") == 0 )) bReadOver = sal_True; else if (( bReadOver ) && ( sTestToken.indexOf("#endif") == 0 )) @@ -456,9 +456,14 @@ int Export::Execute( int nToken, const char * pToken ) switch ( nToken ) { case NORMDEFINE: - while( helper::searchAndReplace(&sToken, "\r", " " ) != -1 ) {}; - while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; - while( helper::searchAndReplace(&sToken, " ", " " ) != -1 ) {}; + sToken = sToken.replace('\r', ' ').replace('\t', ' '); + for (;;) { + sal_Int32 n = 0; + sToken = sToken.replaceFirst(" ", " ", &n); + if (n == -1) { + break; + } + } if( sToken.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("#define NO_LOCALIZE_EXPORT")) ){ bSkipFile = true; return 0; @@ -487,13 +492,11 @@ int Export::Execute( int nToken, const char * pToken ) pResData = new ResData( sActPForm, FullId() , sFilename ); aResStack.push_back( pResData ); - helper::searchAndReplaceAll(&sToken, "\n", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "\r", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "{", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "\t", " "); - sToken = helper::trimAscii(sToken); - sal_Int32 n = 0; - rtl::OString sTLower = sToken.getToken(0, ' ', n).toAsciiLowerCase(); + sToken = sToken.replaceAll("\n", rtl::OString()). + replaceAll("\r", rtl::OString()). + replaceAll("{", rtl::OString()).replace('\t', ' '); + sToken = sToken.trim(); + rtl::OString sTLower = sToken.getToken(0, ' ').toAsciiLowerCase(); pResData->sResTyp = sTLower; rtl::OString sId( sToken.copy( pResData->sResTyp.getLength() + 1 )); rtl::OString sCondition; @@ -501,14 +504,13 @@ int Export::Execute( int nToken, const char * pToken ) { // between ResTyp, Id and paranthes is a precomp. condition sCondition = "#"; - n = 0; + sal_Int32 n = 0; sId = sId.getToken(0, '#', n); sCondition += sId.getToken(0, '#', n); } - n = 0; - sId = sId.getToken(0, '/', n); + sId = sId.getToken(0, '/'); CleanValue( sId ); - helper::searchAndReplaceAll(&sId, "\t", rtl::OString()); + sId = sId.replaceAll("\t", rtl::OString()); pResData->SetId( sId, ID_LEVEL_IDENTIFIER ); if (!sCondition.isEmpty()) { @@ -529,13 +531,12 @@ int Export::Execute( int nToken, const char * pToken ) pResData = new ResData( sActPForm, FullId() , sFilename ); aResStack.push_back( pResData ); - helper::searchAndReplaceAll(&sToken, "\n", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "\r", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "{", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "\t", rtl::OString()); - helper::searchAndReplaceAll(&sToken, " ", rtl::OString()); - helper::searchAndReplaceAll(&sToken, "\\", rtl::OString()); - sToken = sToken.toAsciiLowerCase(); + sToken = sToken.replaceAll("\n", rtl::OString()). + replaceAll("\r", rtl::OString()). + replaceAll("{", rtl::OString()). + replaceAll("\t", rtl::OString()). + replaceAll(" ", rtl::OString()). + replaceAll("\\", rtl::OString()).toAsciiLowerCase(); pResData->sResTyp = sToken; } break; @@ -595,17 +596,17 @@ int Export::Execute( int nToken, const char * pToken ) bDontWriteOutput = sal_False; // interpret different types of assignement sal_Int32 n = 0; - rtl::OString sKey = sToken.getToken(0, '=', n); - helper::searchAndReplaceAll(&sKey, " ", rtl::OString()); - helper::searchAndReplaceAll(&sKey, "\t", rtl::OString()); + rtl::OString sKey = sToken.getToken(0, '=', n). + replaceAll(" ", rtl::OString()). + replaceAll("\t", rtl::OString()); rtl::OString sValue = sToken.getToken(0, '=', n); CleanValue( sValue ); sKey = sKey.toAsciiUpperCase(); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("IDENTIFIER"))) { - rtl::OString sId(sValue); - helper::searchAndReplaceAll(&sId, "\t", rtl::OString()); - helper::searchAndReplaceAll(&sId, " ", rtl::OString()); + rtl::OString sId( + sValue.replaceAll("\t", rtl::OString()). + replaceAll(" ", rtl::OString())); pResData->SetId(sId, ID_LEVEL_IDENTIFIER); } else if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("HELPID"))) @@ -648,16 +649,14 @@ int Export::Execute( int nToken, const char * pToken ) case LISTASSIGNMENT: { bDontWriteOutput = sal_False; - rtl::OString sTmpToken(sToken); - helper::searchAndReplaceAll(&sTmpToken, " ", rtl::OString()); - sTmpToken = sTmpToken.toAsciiLowerCase(); + rtl::OString sTmpToken( + sToken.replaceAll(" ", rtl::OString()).toAsciiLowerCase()); sal_Int32 nPos = sTmpToken.indexOf("[en-us]="); if (nPos != -1) { - rtl::OString sKey(sTmpToken.copy(0 , nPos)); - helper::searchAndReplaceAll(&sKey, " ", rtl::OString()); - helper::searchAndReplaceAll(&sKey, "\t", rtl::OString()); - sal_Int32 n = 0; - rtl::OString sValue = sToken.getToken(1, '=', n); + rtl::OString sKey( + sTmpToken.copy(0 , nPos).replaceAll(" ", rtl::OString()). + replaceAll("\t", rtl::OString())); + rtl::OString sValue = sToken.getToken(1, '='); CleanValue( sValue ); sKey = sKey.toAsciiUpperCase(); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("STRINGLIST"))) @@ -706,10 +705,9 @@ int Export::Execute( int nToken, const char * pToken ) { // new res. is a String- or FilterList sal_Int32 n = 0; - rtl::OString sKey = sToken.getToken(0, '[', n); - helper::searchAndReplaceAll(&sKey, " ", rtl::OString()); - helper::searchAndReplaceAll(&sKey, "\t", rtl::OString()); - sKey = sKey.toAsciiUpperCase(); + rtl::OString sKey( + sToken.getToken(0, '[', n).replaceAll(" ", rtl::OString()). + replaceAll("\t", rtl::OString()).toAsciiUpperCase()); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("STRINGLIST"))) nList = LIST_STRING; else if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("FILTERLIST"))) @@ -758,23 +756,16 @@ int Export::Execute( int nToken, const char * pToken ) CutComment( sToken ); // this is a text line!!! - sal_Int32 n = 0; - rtl::OString t(sToken.getToken(0, '=', n)); - n = 0; - rtl::OString sKey = t.getToken(0, '[', n); - helper::searchAndReplaceAll(&sKey, " ", rtl::OString()); - helper::searchAndReplaceAll(&sKey, "\t", rtl::OString()); + rtl::OString t(sToken.getToken(0, '=')); + rtl::OString sKey( + t.getToken(0, '[').replaceAll(" ", rtl::OString()). + replaceAll("\t", rtl::OString())); rtl::OString sText( GetText( sToken, nToken )); rtl::OString sLang; - n = 0; - if ( sToken.getToken(0, '=', n).indexOf('[') != -1 ) + if ( sToken.getToken(0, '=').indexOf('[') != -1 ) { - n = 0; - t = sToken.getToken(0, '=', n); - n = 0; - t = t.getToken(1, '[', n); - n = 0; - sLang = t.getToken(0, ']', n); + sLang = sToken.getToken(0, '=').getToken(1, '['). + getToken(0, ']'); CleanValue( sLang ); } rtl::OString sLangIndex = sLang; @@ -879,25 +870,19 @@ int Export::Execute( int nToken, const char * pToken ) // this is a AppfontMapping, so look if its a definition // of field size sal_Int32 n = 0; - rtl::OString sKey = sToken.getToken(0, '=', n); - helper::searchAndReplaceAll(&sKey, " ", rtl::OString()); - helper::searchAndReplaceAll(&sKey, "\t", rtl::OString()); + rtl::OString sKey( + sToken.getToken(0, '=', n).replaceAll(" ", rtl::OString()). + replaceAll("\t", rtl::OString())); rtl::OString sMapping = sToken.getToken(0, '=', n); - n = 0; - sMapping = sMapping.getToken(1, '(', n); - n = 0; - sMapping = sMapping.getToken(0, ')', n); - helper::searchAndReplaceAll( - &sMapping, rtl::OString(' '), rtl::OString()); - helper::searchAndReplaceAll( - &sMapping, rtl::OString('\t'), rtl::OString()); - sKey = sKey.toAsciiUpperCase(); + sMapping = sMapping.getToken(1, '('); + sMapping = sMapping.getToken(0, ')'). + replaceAll(rtl::OString(' '), rtl::OString()). + replaceAll(rtl::OString('\t'), rtl::OString()). + toAsciiUpperCase(); if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("SIZE"))) { - n = 0; - pResData->nWidth = sMapping.getToken(0, ',', n).toInt32(); + pResData->nWidth = sMapping.getToken(0, ',').toInt32(); } else if (sKey.equalsL(RTL_CONSTASCII_STRINGPARAM("POSSIZE"))) { - n = 0; - pResData->nWidth = sMapping.getToken(2, ',', n).toInt32(); + pResData->nWidth = sMapping.getToken(2, ',').toInt32(); } } break; @@ -906,9 +891,14 @@ int Export::Execute( int nToken, const char * pToken ) break; case CONDITION: { bDontWriteOutput = sal_False; - while( helper::searchAndReplace(&sToken, "\r", " " ) != -1 ) {}; - while( helper::searchAndReplace(&sToken, "\t", " " ) != -1 ) {}; - while( helper::searchAndReplace(&sToken, " ", " " ) != -1 ) {}; + sToken = sToken.replace('\r', ' ').replace('\t', ' '); + for (;;) { + sal_Int32 n = 0; + sToken = sToken.replaceFirst(" ", " ", &n); + if (n == -1) { + break; + } + } sal_Int32 n = 0; rtl::OString sCondition(sToken.getToken(0, ' ', n)); if ( sCondition == "#ifndef" ) { @@ -920,12 +910,10 @@ int Export::Execute( int nToken, const char * pToken ) sActPForm += sToken.getToken(0, ' ', n); } else if ( sCondition == "#if" ) { - sActPForm = sToken.copy( 4 ); - while ( helper::searchAndReplace(&sActPForm, "||", "\\or" ) != -1 ) {}; + sActPForm = sToken.copy( 4 ).replaceAll("||", "\\or"); } else if ( sCondition == "#elif" ) { - sActPForm = sToken.copy( 6 ); - while ( helper::searchAndReplace(&sActPForm, "||", "\\or" ) != -1 ) {}; + sActPForm = sToken.copy( 6 ).replaceAll("||", "\\or"); } else if ( sCondition == "#else" ) { sActPForm = sCondition; @@ -985,8 +973,7 @@ void Export::CutComment( rtl::OString &rText ) /*****************************************************************************/ { if (rText.indexOf("//") != -1) { - rtl::OString sWork(rText); - helper::searchAndReplaceAll(&sWork, "\\\"", "XX"); + rtl::OString sWork(rText.replaceAll("\\\"", "XX")); bool bInner = false; for (sal_Int32 i = 0; i < sWork.getLength() - 1; ++i) { if (sWork[i] == '"') { @@ -1135,20 +1122,17 @@ sal_Bool Export::WriteData( ResData *pResData, sal_Bool bCreateNew ) rtl::OString Export::GetPairedListID(const rtl::OString& rText) { // < "STRING" ; IDENTIFIER ; > ; - sal_Int32 n = 0; - return helper::trimAscii( - rText.getToken(1, ';', n).toAsciiUpperCase().replace('\t', ' ')); + return rText.getToken(1, ';').toAsciiUpperCase().replace('\t', ' ').trim(); } rtl::OString Export::GetPairedListString(const rtl::OString& rText) { // < "STRING" ; IDENTIFIER ; > ; - sal_Int32 n = 0; - rtl::OString sString(rText.getToken(0, ';', n).replace('\t', ' ')); - sString = helper::trimAscii(sString); + rtl::OString sString(rText.getToken(0, ';').replace('\t', ' ')); + sString = sString.trim(); rtl::OString s1(sString.copy(sString.indexOf('"') + 1)); sString = s1.copy(0, s1.lastIndexOf('"')); - return helper::trimAscii(sString); + return sString.trim(); } rtl::OString Export::StripList(const rtl::OString & rText) @@ -1360,20 +1344,17 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken) { rtl::OString sTmp(rSource.copy(rSource.indexOf("="))); CleanValue( sTmp ); - helper::searchAndReplaceAll(&sTmp, "\n", rtl::OString()); - helper::searchAndReplaceAll(&sTmp, "\r", rtl::OString()); - - helper::searchAndReplaceAll( - &sTmp, "\\\\\"", "-=<[BSlashBSlashHKom]>=-\""); - helper::searchAndReplaceAll(&sTmp, "\\\"", "-=<[Hochkomma]>=-"); - helper::searchAndReplaceAll(&sTmp, "\\", "-=<[0x7F]>=-"); - helper::searchAndReplaceAll(&sTmp, "\\0x7F", "-=<[0x7F]>=-"); + sTmp = sTmp.replaceAll("\n", rtl::OString()). + replaceAll("\r", rtl::OString()). + replaceAll("\\\\\"", "-=<[BSlashBSlashHKom]>=-\""). + replaceAll("\\\"", "-=<[Hochkomma]>=-"). + replaceAll("\\", "-=<[0x7F]>=-"). + replaceAll("\\0x7F", "-=<[0x7F]>=-"); sal_uInt16 nState = TXT_STATE_TEXT; for (sal_Int32 i = 1; i <= helper::countOccurrences(sTmp, '"'); ++i) { - sal_Int32 n = 0; - rtl::OString sToken(sTmp.getToken(i, '"', n)); + rtl::OString sToken(sTmp.getToken(i, '"')); if (!sToken.isEmpty()) { if ( nState == TXT_STATE_TEXT ) { sReturn += sToken; @@ -1381,10 +1362,14 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken) } else { sToken = sToken.replace('\t', ' '); - while (helper::searchAndReplace(&sToken, " ", " ") - != -1) - {} - sToken = helper::trimAscii(sToken); + for (;;) { + sal_Int32 n = 0; + sToken = sToken.replaceFirst(" ", " ", &n); + if (n == -1) { + break; + } + } + sToken = sToken.trim(); if (!sToken.isEmpty()) { sReturn += "\\\" "; sReturn += sToken; @@ -1395,13 +1380,11 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken) } } - helper::searchAndReplaceAll(&sReturn, "-=<[0x7F]>=-", ""); - helper::searchAndReplaceAll(&sReturn, "-=<[Hochkomma]>=-", "\""); - helper::searchAndReplaceAll( - &sReturn, "-=<[BSlashBSlashHKom]>=-", "\\\\"); - helper::searchAndReplaceAll( - &sReturn, "\\\\", "-=<[BSlashBSlash]>=-"); - helper::searchAndReplaceAll(&sReturn, "-=<[BSlashBSlash]>=-", "\\"); + sReturn = sReturn.replaceAll("-=<[0x7F]>=-", ""). + replaceAll("-=<[Hochkomma]>=-", "\""). + replaceAll("-=<[BSlashBSlashHKom]>=-", "\\\\"). + replaceAll("\\\\", "-=<[BSlashBSlash]>=-"). + replaceAll("-=<[BSlashBSlash]>=-", "\\"); } break; } @@ -1411,7 +1394,13 @@ rtl::OString Export::GetText(const rtl::OString &rSource, int nToken) void Export::WriteToMerged(const rtl::OString &rText , bool bSDFContent) { rtl::OString sText(rText); - while (helper::searchAndReplace(&sText, " \n", "\n") != -1) {} + for (;;) { + sal_Int32 n = 0; + sText = sText.replaceFirst(" \n", "\n", &n); + if (n == -1) { + break; + } + } if (pParseQueue->bNextIsM && bSDFContent && sText.getLength() > 2) { for (sal_Int32 n = 0; n < sText.getLength(); ++n) { if (sText[n] == '\n' && sText[n - 1] != '\\') { @@ -1456,7 +1445,7 @@ void Export::ConvertMergeContent( rtl::OString &rText ) /*****************************************************************************/ { sal_Bool bNoOpen = ( rText.indexOf( "\\\"" ) != 0 ); - sal_Bool bNoClose = !helper::endsWith(rText, "\\\""); + sal_Bool bNoClose = !rText.endsWithL(RTL_CONSTASCII_STRINGPARAM("\\\"")); rtl::OStringBuffer sNew; for ( sal_Int32 i = 0; i < rText.getLength(); i++ ) { @@ -1886,7 +1875,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) (( sLine.indexOf( '<' ) == -1 ) || ( sLine.indexOf( '<' ) >= sLine.indexOf( '"' )))) { - helper::searchAndReplace(&sLine, "\"", "< \"" ); + sLine = sLine.replaceFirst("\"", "< \"" ); } } @@ -1992,7 +1981,7 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode ) (( sLine.indexOf( '<' ) == -1 ) || ( sLine.indexOf( '<' ) >= sLine.indexOf( '"' )))) { - helper::searchAndReplace(&sLine, "\"", "< \"" ); + sLine = sLine.replaceFirst("\"", "< \""); } } diff --git a/l10ntools/source/export2.cxx b/l10ntools/source/export2.cxx index 1a1ae9112ece..bad5964b2f6e 100644 --- a/l10ntools/source/export2.cxx +++ b/l10ntools/source/export2.cxx @@ -29,7 +29,6 @@ #include "sal/config.h" #include "export.hxx" -#include "helper.hxx" #include #include #include @@ -302,8 +301,7 @@ void Export::InitLanguages( bool bMergeMode ){ do { rtl::OString aToken = sLanguages.getToken(0, ',', nIndex); - sal_Int32 n = 0; - sTmp = helper::trimAscii(aToken.getToken(0, '=', n)); + sTmp = aToken.getToken(0, '=').trim(); if( bMergeMode && !isAllowed( sTmp ) ){} else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) ){ aLanguages.push_back( sTmp ); @@ -326,8 +324,7 @@ void Export::InitForcedLanguages( bool bMergeMode ){ { rtl::OString aToken = sForcedLanguages.getToken(0, ',', nIndex); - sal_Int32 n = 0; - sTmp = helper::trimAscii(aToken.getToken(0, '=', n)); + sTmp = aToken.getToken(0, '=').trim(); if( bMergeMode && isAllowed( sTmp ) ){} else if( !( (sTmp[0]=='x' || sTmp[0]=='X') && sTmp[1]=='-' ) ) aForcedLanguages.push_back( sTmp ); diff --git a/l10ntools/source/gsicheck.cxx b/l10ntools/source/gsicheck.cxx index 76b7928ff4b5..d1665ff0e720 100644 --- a/l10ntools/source/gsicheck.cxx +++ b/l10ntools/source/gsicheck.cxx @@ -363,7 +363,7 @@ void GSIBlock::PrintList( ParserMessageList *pList, rtl::OString const & aPrefix aContext = pLine->GetText().copy( 0, 300 ); else aContext = pLine->data_.copy( pMsg->GetTagBegin()-150, 300 ); - aContext = helper::trimAscii(aContext); + aContext = aContext.trim(); } PrintMessage( pMsg->Prefix(), pMsg->GetErrorText(), aPrefix, aContext, pLine->GetLineNumber(), pLine->GetUniqId() ); diff --git a/l10ntools/source/helper.hxx b/l10ntools/source/helper.hxx index b2ff952a675a..59f86287fd72 100644 --- a/l10ntools/source/helper.hxx +++ b/l10ntools/source/helper.hxx @@ -40,10 +40,6 @@ namespace helper { -inline bool isAsciiWhitespace(char c) { - return (c >= 0x09 && c <= 0x0D) || c == ' '; // HT, LF, VT, FF, CR -} - // cf. comphelper::string::isdigitAsciiString: inline bool isAllAsciiDigits(rtl::OString const & text) { for (sal_Int32 i = 0; i != text.getLength(); ++i) { @@ -74,19 +70,6 @@ inline bool isAllAsciiLowerCase(rtl::OString const & text) { return true; } -inline bool endsWith(rtl::OString const & text, rtl::OString const & search) { - return text.getLength() >= search.getLength() - && text.match(search, text.getLength() - search.getLength()); -} - -inline bool endsWithAsciiL( - rtl::OUString const & text, char const * search, sal_Int32 searchLength) -{ - return text.getLength() >= searchLength - && text.matchAsciiL( - search, searchLength, text.getLength() - searchLength); -} - inline sal_Int32 countOccurrences(rtl::OString const & text, char c) { sal_Int32 n = 0; for (sal_Int32 i = 0;; ++i) { @@ -99,67 +82,6 @@ inline sal_Int32 countOccurrences(rtl::OString const & text, char c) { return n; } -inline rtl::OString trimAscii(rtl::OString const & text) { - sal_Int32 i1 = 0; - while (i1 != text.getLength() && isAsciiWhitespace(text[i1])) { - ++i1; - } - sal_Int32 i2 = text.getLength(); - while (i2 != i1 && isAsciiWhitespace(text[i2 - 1])) { - --i2; - } - return text.copy(i1, i2 - i1); -} - -inline sal_Int32 searchAndReplace( - rtl::OString * text, rtl::OString const & search, - rtl::OString const & replace) -{ - assert(text != 0); - sal_Int32 i = text->indexOf(search); - if (i != -1) { - *text = text->replaceAt(i, search.getLength(), replace); - } - return i; -} - -inline void searchAndReplaceAll( - rtl::OString * text, rtl::OString const & search, - rtl::OString const & replace) -{ - assert(text != 0); - for (sal_Int32 i = 0;;) { - i = text->indexOf(search, i); - if (i == -1) { - break; - } - *text = text->replaceAt(i, search.getLength(), replace); - i += replace.getLength(); - } -} - -inline void searchAndReplaceAll( - rtl::OUString * text, rtl::OUString const & search, - rtl::OUString const & replace) -{ - assert(text != 0); - for (sal_Int32 i = 0;;) { - i = text->indexOf(search, i); - if (i == -1) { - break; - } - *text = text->replaceAt(i, search.getLength(), replace); - i += replace.getLength(); - } -} - -inline rtl::OString getToken( - rtl::OString const & text, sal_Int32 token, char separator) -{ - sal_Int32 i = 0; - return text.getToken(token, separator, i); -} - inline sal_Int32 indexOfAnyAsciiL( rtl::OUString const & text, char const * chars, sal_Int32 charsLen, sal_Int32 index = 0) diff --git a/l10ntools/source/helpmerge.cxx b/l10ntools/source/helpmerge.cxx index d3895e66c5fe..ceb0f1e27a29 100644 --- a/l10ntools/source/helpmerge.cxx +++ b/l10ntools/source/helpmerge.cxx @@ -143,13 +143,14 @@ bool HelpParser::CreateSDF( if( pXMLElement != NULL ) { - OUString data = pXMLElement->ToOUString(); - helper::searchAndReplaceAll( - &data, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")), - rtl::OUString()); // remove \n - helper::searchAndReplaceAll( - &data, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t")), - rtl::OUString()); // remove \t + OUString data( + pXMLElement->ToOUString(). + replaceAll( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")), + rtl::OUString()). + replaceAll( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t")), + rtl::OUString())); sBuffer.append( sOUPrj ); sBuffer.append('\t'); if ( !rRoot_in.isEmpty()) @@ -306,13 +307,13 @@ bool HelpParser::MergeSingleFile( XMLFile* file , MergeDataFile& aMergeDataFile rtl::OString HelpParser::GetOutpath( const rtl::OString& rPathX , const rtl::OString& sCur , const rtl::OString& rPathY ) { rtl::OString testpath = rPathX; - if (!helper::endsWith(testpath, "/")) { + if (!testpath.endsWithL(RTL_CONSTASCII_STRINGPARAM("/"))) { testpath += "/"; } testpath += sCur; testpath += "/"; rtl::OString sRelativePath( rPathY ); - if (sRelativePath.getLength() != 0 && sRelativePath[0] == '/') { + if (sRelativePath.matchL(RTL_CONSTASCII_STRINGPARAM("/"))) { sRelativePath = sRelativePath.copy(1); } testpath += sRelativePath; @@ -322,14 +323,12 @@ rtl::OString HelpParser::GetOutpath( const rtl::OString& rPathX , const rtl::OSt void HelpParser::MakeDir(const rtl::OString& rPath) { - rtl::OString sTPath(rPath); - helper::searchAndReplaceAll(&sTPath, "\\", "/"); + rtl::OString sTPath(rPath.replaceAll("\\", "/")); sal_Int32 cnt = helper::countOccurrences(sTPath, '/'); rtl::OStringBuffer sCreateDir; for (sal_uInt16 i = 0; i <= cnt; ++i) { - sal_Int32 n = 0; - sCreateDir.append(sTPath.getToken(i , '/', n)); + sCreateDir.append(sTPath.getToken(i , '/')); sCreateDir.append('/'); #ifdef WNT _mkdir( sCreateDir.getStr() ); diff --git a/l10ntools/source/lngmerge.cxx b/l10ntools/source/lngmerge.cxx index 00a997aa2fad..6541bd9ab2ba 100644 --- a/l10ntools/source/lngmerge.cxx +++ b/l10ntools/source/lngmerge.cxx @@ -34,16 +34,12 @@ #include #include "common.hxx" -#include "helper.hxx" #include "lngmerge.hxx" namespace { rtl::OString getBracketedContent(rtl::OString text) { - sal_Int32 n = 0; - rtl::OString t(text.getToken(1, '[', n)); - n = 0; - return t.getToken(0, ']', n); + return text.getToken(1, '[').getToken(0, ']'); } } @@ -162,10 +158,10 @@ void LngParser::WriteSDF(std::ofstream &aSDFStream, bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in) { - sLine_in = helper::trimAscii(sLine_in); + sLine_in = sLine_in.trim(); if ((sLine_in[0] == '[') && (sLine_in[sLine_in.getLength() - 1] == ']')) { - sGroup_out = helper::trimAscii(getBracketedContent(sLine_in)); + sGroup_out = getBracketedContent(sLine_in).trim(); return true; } return false; @@ -174,11 +170,9 @@ bool LngParser::isNextGroup(rtl::OString &sGroup_out, rtl::OString &sLine_in) void LngParser::ReadLine(const rtl::OString &rLine_in, OStringHashMap &rText_inout) { - sal_Int32 n = 0; - rtl::OString sLang(helper::trimAscii(rLine_in.getToken(0, '=', n))); + rtl::OString sLang(rLine_in.getToken(0, '=').trim()); if (!sLang.isEmpty()) { - n = 0; - rtl::OString sText(rLine_in.getToken(1, '"', n)); + rtl::OString sText(rLine_in.getToken(1, '"')); rText_inout[sLang] = sText; } } @@ -209,11 +203,11 @@ sal_Bool LngParser::Merge( while ( nPos < pLines->size() && !bGroup ) { rtl::OString sLine( *(*pLines)[ nPos ] ); - sLine = helper::trimAscii(sLine); + sLine = sLine.trim(); if (( sLine[0] == '[' ) && ( sLine[sLine.getLength() - 1] == ']' )) { - sGroup = helper::trimAscii(getBracketedContent(sLine)); + sGroup = getBracketedContent(sLine).trim(); bGroup = sal_True; } nPos ++; @@ -235,11 +229,11 @@ sal_Bool LngParser::Merge( while ( nPos < pLines->size() && !bGroup ) { rtl::OString sLine( *(*pLines)[ nPos ] ); - sLine = helper::trimAscii(sLine); + sLine = sLine.trim(); if (( sLine[0] == '[' ) && ( sLine[sLine.getLength() - 1] == ']' )) { - sGroup = helper::trimAscii(getBracketedContent(sLine)); + sGroup = getBracketedContent(sLine).trim(); bGroup = sal_True; nPos ++; sLanguagesDone = ""; @@ -254,7 +248,7 @@ sal_Bool LngParser::Merge( } else { - sLang = helper::trimAscii(sLang); + sLang = sLang.trim(); rtl::OString sSearch( ";" ); sSearch += sLang; diff --git a/l10ntools/source/localize.cxx b/l10ntools/source/localize.cxx index e259ef722dcf..6fb83e1a9bc4 100644 --- a/l10ntools/source/localize.cxx +++ b/l10ntools/source/localize.cxx @@ -50,8 +50,6 @@ #include "sal/main.h" #include "sal/types.h" -#include "helper.hxx" - using namespace std; namespace { @@ -104,7 +102,7 @@ bool matchList( rtl::OUString const & url, AsciiString const * list, std::size_t length) { for (std::size_t i = 0; i != length; ++i) { - if (helper::endsWithAsciiL(url, list[i].string, list[i].length)) { + if (url.endsWithAsciiL(list[i].string, list[i].length)) { return true; } } @@ -272,8 +270,8 @@ void handleFile( { RTL_CONSTASCII_STRINGPARAM(".xhp"), "helpex", false }, { RTL_CONSTASCII_STRINGPARAM(".properties"), "propex", false } }; for (std::size_t i = 0; i != SAL_N_ELEMENTS(commands); ++i) { - if (helper::endsWithAsciiL( - url, commands[i].extension, commands[i].extensionLength)) + if (url.endsWithAsciiL( + commands[i].extension, commands[i].extensionLength)) { handleCommand( project, projectRoot, url, diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx index c56bdafb0e4c..b9b8d400ec9b 100644 --- a/l10ntools/source/merge.cxx +++ b/l10ntools/source/merge.cxx @@ -34,7 +34,6 @@ #include #include "export.hxx" -#include "helper.hxx" namespace { @@ -201,7 +200,7 @@ MergeDataFile::MergeDataFile( rtl::OString sPFO = sLine.getToken( 1, '\t', n ); // token 7 sPFO = sHACK; rtl::OString nLANG = sLine.getToken( 1, '\t', n ); // token 9 - nLANG = helper::trimAscii(nLANG); + nLANG = nLANG.trim(); const rtl::OString sTEXT = sLine.getToken( 0, '\t', n ); // token 10 const rtl::OString sQHTEXT = sLine.getToken( 1, '\t', n ); // token 12 const rtl::OString sTITLE = sLine.getToken( 0, '\t', n ); // token 13 diff --git a/l10ntools/source/xrmmerge.cxx b/l10ntools/source/xrmmerge.cxx index 1e25534b4d4b..0f1e3e0d2fbf 100644 --- a/l10ntools/source/xrmmerge.cxx +++ b/l10ntools/source/xrmmerge.cxx @@ -34,7 +34,6 @@ #include "common.hxx" #include "export.hxx" -#include "helper.hxx" #include "xrmmerge.hxx" #include "tokens.h" #include @@ -390,11 +389,10 @@ rtl::OString XRMResParser::GetAttribute( const rtl::OString &rToken, const rtl:: if ( nPos != -1 ) { sTmp = sTmp.copy( nPos ); - sal_Int32 n = 0; - rtl::OString sId = sTmp.getToken(1, '"', n); + rtl::OString sId = sTmp.getToken(1, '"'); return sId; } - return ""; + return rtl::OString(); } @@ -409,15 +407,14 @@ void XRMResParser::Error( const rtl::OString &rError ) void XRMResParser::ConvertStringToDBFormat( rtl::OString &rString ) /*****************************************************************************/ { - rString = helper::trimAscii(rString); - helper::searchAndReplaceAll(&rString, "\t", "\\t"); + rString = rString.trim().replaceAll("\t", "\\t"); } /*****************************************************************************/ void XRMResParser::ConvertStringToXMLFormat( rtl::OString &rString ) /*****************************************************************************/ { - helper::searchAndReplaceAll(&rString, "\\t", "\t"); + rString = rString.replaceAll("\\t", "\t"); } @@ -480,8 +477,8 @@ void XRMResExport::WorkOnDesc( ) /*****************************************************************************/ { - rtl::OString sDescFileName(sInputFileName); - helper::searchAndReplaceAll(&sDescFileName, "description.xml", ""); + rtl::OString sDescFileName( + sInputFileName.replaceAll("description.xml", rtl::OString())); sDescFileName += GetAttribute( rOpenTag, "xlink:href" ); int size; char * memblock; @@ -493,8 +490,7 @@ void XRMResExport::WorkOnDesc( file.read (memblock, size); file.close(); memblock[size] = '\0'; - rText = rtl::OString(memblock); - helper::searchAndReplaceAll(&rText, "\n", "\\n"); + rText = rtl::OString(memblock).replaceAll("\n", "\\n"); delete[] memblock; } WorkOnText( rOpenTag, rText ); @@ -536,8 +532,8 @@ void XRMResExport::EndOfText( { sCur = aLanguages[ n ]; - rtl::OString sAct = pResData->sText[ sCur ]; - helper::searchAndReplaceAll(&sAct, "\x0A", rtl::OString()); + rtl::OString sAct( + pResData->sText[sCur].replaceAll("\x0A", rtl::OString())); rtl::OString sOutput( sPrj ); sOutput += "\t"; sOutput += sPath; @@ -629,19 +625,20 @@ void XRMResMerge::WorkOnDesc( sSearch += GetAttribute( rOpenTag, sLangAttribute ); sReplace += sCur; - helper::searchAndReplace( - &sAdditionalLine, sSearch, sReplace); + sAdditionalLine = sAdditionalLine.replaceFirst( + sSearch, sReplace); sSearch = rtl::OString("xlink:href=\""); sReplace = sSearch; rtl::OString sLocDescFilename = sDescFilename; - helper::searchAndReplace(&sLocDescFilename, "en-US", sCur); + sLocDescFilename = sLocDescFilename.replaceFirst( + "en-US", sCur); sSearch += sDescFilename; sReplace += sLocDescFilename; - helper::searchAndReplace( - &sAdditionalLine, sSearch, sReplace); + sAdditionalLine = sAdditionalLine.replaceFirst( + sSearch, sReplace); Output( sAdditionalLine ); @@ -654,7 +651,7 @@ void XRMResMerge::WorkOnDesc( } rtl::OString sOutputDescFile( sOutputFile.copy(0, i + 1) + sLocDescFilename); - helper::searchAndReplaceAll(&sText, "\\n", "\n"); + sText = sText.replaceAll("\\n", "\n"); ofstream file(sOutputDescFile.getStr()); if (file.is_open()) { file << sText.getStr(); @@ -745,8 +742,8 @@ void XRMResMerge::EndOfText( sSearch += GetAttribute( rOpenTag, sLangAttribute ); sReplace += sCur; - helper::searchAndReplace( - &sAdditionalLine, sSearch, sReplace); + sAdditionalLine = sAdditionalLine.replaceFirst( + sSearch, sReplace); sAdditionalLine += sText; sAdditionalLine += rCloseTag; -- cgit