diff options
40 files changed, 212 insertions, 121 deletions
diff --git a/chart2/qa/extras/chart2dump/chart2dump.cxx b/chart2/qa/extras/chart2dump/chart2dump.cxx index ceb818c70e0f..e06ce2f76415 100644 --- a/chart2/qa/extras/chart2dump/chart2dump.cxx +++ b/chart2/qa/extras/chart2dump/chart2dump.cxx @@ -230,7 +230,7 @@ protected: OUStringBuffer aBufer; for (const OUString& seqItem : rSeq) { - aBufer.append(seqItem + ";"); + aBufer.append(seqItem).append(";"); } return aBufer.makeStringAndClear(); } @@ -240,7 +240,7 @@ protected: OUStringBuffer aBufer; for (const double& vectorItem : rVector) { - aBufer.append(OUString::number(vectorItem) + ";"); + aBufer.append(OUString::number(vectorItem)).append(";"); } return aBufer.makeStringAndClear(); } diff --git a/chart2/source/tools/ExponentialRegressionCurveCalculator.cxx b/chart2/source/tools/ExponentialRegressionCurveCalculator.cxx index db59250b76b0..42d0480d6b73 100644 --- a/chart2/source/tools/ExponentialRegressionCurveCalculator.cxx +++ b/chart2/source/tools/ExponentialRegressionCurveCalculator.cxx @@ -179,13 +179,13 @@ OUString ExponentialRegressionCurveCalculator::ImplGetRepresentation( // if nValueLength not calculated then nullptr sal_Int32* pValueLength = nValueLength ? &nValueLength : nullptr; if ( m_fSign < 0.0 ) - aTmpBuf.append( OUStringLiteral1(aMinusSign) + " " ); + aTmpBuf.append( OUStringLiteral1(aMinusSign) ).append( " " ); if ( bHasIntercept ) { OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, fIntercept, pValueLength ); if ( aValueString != "1" ) // aValueString may be rounded to 1 if nValueLength is small { - aTmpBuf.append( aValueString + " " ); + aTmpBuf.append( aValueString ).append( " " ); addStringToEquation( aBuf, nLineLength, aTmpBuf, pFormulaMaxWidth ); aTmpBuf.truncate(); } @@ -199,21 +199,21 @@ OUString ExponentialRegressionCurveCalculator::ImplGetRepresentation( OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, m_fLogIntercept, pValueLength ); if ( aValueString != "0" ) // aValueString may be rounded to 0 if nValueLength is small { - aTmpBuf.append( aValueString + ( (m_fLogSlope < 0.0) ? OUStringLiteral(" ") : OUStringLiteral(" + ") ) ); + aTmpBuf.append( aValueString ).append( (m_fLogSlope < 0.0) ? OUStringLiteral(" ") : OUStringLiteral(" + ") ); } } } if ( m_fLogSlope < 0.0 ) - aTmpBuf.append( OUStringLiteral1(aMinusSign) + " " ); + aTmpBuf.append( OUStringLiteral1(aMinusSign) ).append( " " ); if ( bHasLogSlope ) { OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, fabs(m_fLogSlope), pValueLength ); if ( aValueString != "1" ) // aValueString may be rounded to 1 if nValueLength is small { - aTmpBuf.append( aValueString + " " ); + aTmpBuf.append( aValueString ).append( " " ); } } - aTmpBuf.append( mXName + " )"); + aTmpBuf.append( mXName ).append(" )"); addStringToEquation( aBuf, nLineLength, aTmpBuf, pFormulaMaxWidth ); return aBuf.makeStringAndClear(); diff --git a/chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx b/chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx index 377c1ccfe102..aecbc4ed39c9 100644 --- a/chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx +++ b/chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx @@ -156,17 +156,17 @@ OUString LogarithmicRegressionCurveCalculator::ImplGetRepresentation( { if( m_fSlope < 0.0 ) { - aTmpBuf.append( OUStringLiteral1(aMinusSign) + " " ); + aTmpBuf.append( OUStringLiteral1(aMinusSign) ).append( " " ); } if( bHasSlope ) { OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, fabs(m_fSlope), pValueLength ); if ( aValueString != "1" ) // aValueString may be rounded to 1 if nValueLength is small { - aTmpBuf.append( aValueString + " " ); + aTmpBuf.append( aValueString ).append( " " ); } } - aTmpBuf.append( "ln(" + mXName + ") " ); + aTmpBuf.append( "ln(" ).append( mXName ).append( ") " ); addStringToEquation( aBuf, nLineLength, aTmpBuf, pFormulaMaxWidth ); aTmpBuf.truncate(); @@ -175,7 +175,7 @@ OUString LogarithmicRegressionCurveCalculator::ImplGetRepresentation( } // add intercept value if( m_fIntercept < 0.0 ) - aTmpBuf.append( OUStringLiteral1(aMinusSign)+" " ); + aTmpBuf.append( OUStringLiteral1(aMinusSign) ).append( " " ); OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, fabs(m_fIntercept), pValueLength ); if ( aValueString != "0" ) // aValueString may be rounded to 0 if nValueLength is small { diff --git a/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx b/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx index ab67bbd09e36..3727e38806ef 100644 --- a/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx +++ b/chart2/source/tools/PolynomialRegressionCurveCalculator.cxx @@ -274,7 +274,7 @@ OUString PolynomialRegressionCurveCalculator::ImplGetRepresentation( { if ( bFindValue ) // if it is not the first aValue aTmpBuf.append( " " ); - aTmpBuf.append( OUStringLiteral1(aMinusSign) + " "); + aTmpBuf.append( OUStringLiteral1(aMinusSign) ).append(" "); aValue = - aValue; } else diff --git a/chart2/source/tools/PotentialRegressionCurveCalculator.cxx b/chart2/source/tools/PotentialRegressionCurveCalculator.cxx index d4901d843279..6f4f507d039f 100644 --- a/chart2/source/tools/PotentialRegressionCurveCalculator.cxx +++ b/chart2/source/tools/PotentialRegressionCurveCalculator.cxx @@ -170,18 +170,18 @@ OUString PotentialRegressionCurveCalculator::ImplGetRepresentation( // if nValueLength not calculated then nullptr sal_Int32* pValueLength = nValueLength ? &nValueLength : nullptr; if ( m_fIntercept < 0.0 ) // add intercept value - aTmpBuf.append( OUStringLiteral1(aMinusSign)+" " ); + aTmpBuf.append( OUStringLiteral1(aMinusSign) ).append( " " ); if( bHasIntercept ) { OUString aValueString = getFormattedString( xNumFormatter, nNumberFormatKey, fabs(m_fIntercept), pValueLength ); if ( aValueString != "1" ) // aValueString may be rounded to 1 if nValueLength is small { - aTmpBuf.append( aValueString + " " ); + aTmpBuf.append( aValueString ).append( " " ); } } if( m_fSlope != 0.0 ) // add slope value { - aTmpBuf.append( mXName + "^" ); + aTmpBuf.append( mXName ).append( "^" ); aTmpBuf.append( getFormattedString( xNumFormatter, nNumberFormatKey, m_fSlope, pValueLength )); } addStringToEquation( aBuf, nLineLength, aTmpBuf, pFormulaMaxWidth ); diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index bad0d71432da..4b4602af7589 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -1352,7 +1352,7 @@ void VSeriesPlotter::createRegressionCurveEquationShapes( } if( bShowCorrCoeff ) { - aFormula.append( "R" + OUStringLiteral1( aSuperscriptFigures[2] ) + " = " ); + aFormula.append( "R" ).append( OUStringLiteral1( aSuperscriptFigures[2] ) ).append( " = " ); double fR( xRegressionCurveCalculator->getCorrelationCoefficient()); if( m_apNumberFormatterWrapper.get()) { diff --git a/compilerplugins/clang/stringbuffer.cxx b/compilerplugins/clang/stringbuffer.cxx new file mode 100644 index 000000000000..154a460a0007 --- /dev/null +++ b/compilerplugins/clang/stringbuffer.cxx @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "check.hxx" +#include "plugin.hxx" +#include <vector> + +/** Look for appending result of adding OUString/OString to OUStringBuffer + */ +namespace +{ +class StringBuffer : public loplugin::FilteringPlugin<StringBuffer> +{ +public: + explicit StringBuffer(loplugin::InstantiationData const& rData) + : FilteringPlugin(rData) + { + } + + void run() override; + bool VisitCXXMemberCallExpr(CXXMemberCallExpr const*); +}; + +void StringBuffer::run() +{ + StringRef fn(handler.getMainFileName()); + if (loplugin::hasPathnamePrefix(fn, SRCDIR "/sal/qa/")) + return; + TraverseDecl(compiler.getASTContext().getTranslationUnitDecl()); +} + +bool StringBuffer::VisitCXXMemberCallExpr(CXXMemberCallExpr const* memberCallExpr) +{ + if (ignoreLocation(memberCallExpr)) + return true; + if (!loplugin::DeclCheck(memberCallExpr->getRecordDecl()) + .Class("OUStringBuffer") + .Namespace("rtl") + .GlobalNamespace()) + return true; + if (!memberCallExpr->getMethodDecl()->getIdentifier()) + return true; + if (memberCallExpr->getMethodDecl()->getName() != "append") + return true; + auto matTemp = dyn_cast<MaterializeTemporaryExpr>(memberCallExpr->getArg(0)); + if (!matTemp) + return true; + if (!isa<CXXOperatorCallExpr>(matTemp->GetTemporaryExpr())) + return true; + report(DiagnosticsEngine::Warning, + "appending added result of OUString to OUStringBuffer, rather do .append(x).append(y)", + compat::getBeginLoc(memberCallExpr)) + << memberCallExpr->getSourceRange(); + return true; +} + +loplugin::Plugin::Registration<StringBuffer> X("stringbuffer"); + +} // namespace + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/compilerplugins/clang/test/stringbuffer.cxx b/compilerplugins/clang/test/stringbuffer.cxx new file mode 100644 index 000000000000..929eb478275d --- /dev/null +++ b/compilerplugins/clang/test/stringbuffer.cxx @@ -0,0 +1,22 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "sal/config.h" +#include "rtl/string.hxx" +#include "rtl/ustring.hxx" +#include "rtl/ustrbuf.hxx" + +void func2(OUString s1, OUString s2) +{ + OUStringBuffer buf; + buf.append(s1 + s2); + // expected-error@-1 {{appending added result of OUString to OUStringBuffer, rather do .append(x).append(y) [loplugin:stringbuffer]}} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/connectivity/source/drivers/postgresql/pq_xkeys.cxx b/connectivity/source/drivers/postgresql/pq_xkeys.cxx index 09aa41ea0f15..22e8f57891ac 100644 --- a/connectivity/source/drivers/postgresql/pq_xkeys.cxx +++ b/connectivity/source/drivers/postgresql/pq_xkeys.cxx @@ -175,7 +175,7 @@ void Keys::refresh() if( css::sdbcx::KeyType::FOREIGN == keyType ) { OUStringBuffer buf( 128 ); - buf.append( xRow->getString( 6 ) + "." + xRow->getString( 5 ) ); + buf.append( xRow->getString( 6 ) ).append( "." ).append( xRow->getString( 5 ) ); pKey->setPropertyValue_NoBroadcast_public( st.REFERENCED_TABLE, makeAny( buf.makeStringAndClear() ) ); diff --git a/connectivity/source/drivers/postgresql/pq_xtables.cxx b/connectivity/source/drivers/postgresql/pq_xtables.cxx index 907e777f273d..adb4fd7b4fd3 100644 --- a/connectivity/source/drivers/postgresql/pq_xtables.cxx +++ b/connectivity/source/drivers/postgresql/pq_xtables.cxx @@ -135,7 +135,7 @@ void Tables::refresh() { m_values.push_back( makeAny( prop ) ); OUStringBuffer buf( name.getLength() + schema.getLength() + 1); - buf.append( schema + "." + name ); + buf.append( schema ).append( "." ).append( name ); map[ buf.makeStringAndClear() ] = tableIndex; ++tableIndex; } diff --git a/connectivity/source/drivers/postgresql/pq_xuser.cxx b/connectivity/source/drivers/postgresql/pq_xuser.cxx index 766b80d2587a..e3985edbd0a1 100644 --- a/connectivity/source/drivers/postgresql/pq_xuser.cxx +++ b/connectivity/source/drivers/postgresql/pq_xuser.cxx @@ -128,9 +128,9 @@ sal_Int32 User::getPrivileges( const OUString& objName, sal_Int32 objType ) Statics & st = getStatics(); OUStringBuffer buf( 128 ); - buf.append( "User::getPrivileges[" + extractStringProperty( this, st.NAME ) + - "] got called for " + objName + "(type=" + - OUString::number(objType) + ")"); + buf.append( "User::getPrivileges[" ).append( extractStringProperty( this, st.NAME ) ) + .append( "] got called for " ).append( objName ).append( "(type=" ) + .append( OUString::number(objType) ).append(")"); log(m_pSettings, LogLevel::Info, buf.makeStringAndClear()); } // all privileges diff --git a/connectivity/source/drivers/postgresql/pq_xviews.cxx b/connectivity/source/drivers/postgresql/pq_xviews.cxx index 8f1d58d07f8e..e6503485a9c0 100644 --- a/connectivity/source/drivers/postgresql/pq_xviews.cxx +++ b/connectivity/source/drivers/postgresql/pq_xviews.cxx @@ -117,7 +117,7 @@ void Views::refresh() { m_values.push_back( makeAny( prop ) ); OUStringBuffer buf( table.getLength() + schema.getLength() + 1); - buf.append( schema + "." + table ); + buf.append( schema ).append( "." ).append( table ); map[ buf.makeStringAndClear() ] = viewIndex; ++viewIndex; } @@ -151,7 +151,7 @@ void Views::appendByDescriptor( buf.append( "CREATE VIEW "); bufferQuoteQualifiedIdentifier( buf, schema, name, m_pSettings ); - buf.append(" AS " + command ); + buf.append(" AS " ).append( command ); stmt->executeUpdate( buf.makeStringAndClear() ); @@ -193,7 +193,7 @@ void Views::dropByIndex( sal_Int32 index ) set->getPropertyValue( st.NAME ) >>= name; OUStringBuffer update( 128 ); - update.append( "DROP VIEW \"" + schema + "\".\"" + name + "\"" ); + update.append( "DROP VIEW \"" ).append( schema ).append( "\".\"" ).append( name ).append( "\"" ); Reference< XStatement > stmt = m_origin->createStatement( ); diff --git a/dbaccess/qa/unit/embeddeddb_performancetest.cxx b/dbaccess/qa/unit/embeddeddb_performancetest.cxx index 26b77b555fe1..444f283d9630 100644 --- a/dbaccess/qa/unit/embeddeddb_performancetest.cxx +++ b/dbaccess/qa/unit/embeddeddb_performancetest.cxx @@ -137,12 +137,11 @@ void EmbeddedDBPerformanceTest::printTimes( const TimeValue* pTime2, const TimeValue* pTime3) { - m_aOutputBuffer.append( - getPrintableTimeValue(pTime1) + "\t" + - getPrintableTimeValue(pTime2) + "\t" + - getPrintableTimeValue(pTime3) + "\t" - "\n" - ); + m_aOutputBuffer + .append(getPrintableTimeValue(pTime1)).append("\t") + .append(getPrintableTimeValue(pTime2)).append("\t") + .append(getPrintableTimeValue(pTime3)).append("\t") + .append("\n"); } const char EmbeddedDBPerformanceTest::our_sEnableTestEnvVar[] = "DBA_PERFTEST"; @@ -284,7 +283,7 @@ void EmbeddedDBPerformanceTest::performPreparedStatementInsertTest( getTimeDifference(&aStart, &aMiddle, &aTimeInsert); getTimeDifference(&aMiddle, &aEnd, &aTimeCommit); getTimeDifference(&aStart, &aEnd, &aTimeTotal); - m_aOutputBuffer.append("Insert: " + rDBName + "\n"); + m_aOutputBuffer.append("Insert: ").append(rDBName).append("\n"); printTimes(&aTimeInsert, &aTimeCommit, &aTimeTotal); pFile->Close(); @@ -322,7 +321,7 @@ void EmbeddedDBPerformanceTest::performStatementInsertTest( getTimeDifference(&aStart, &aMiddle, &aTimeInsert); getTimeDifference(&aMiddle, &aEnd, &aTimeCommit); getTimeDifference(&aStart, &aEnd, &aTimeTotal); - m_aOutputBuffer.append("Insert: " + rDBName + "\n"); + m_aOutputBuffer.append("Insert: ").append(rDBName).append("\n"); printTimes(&aTimeInsert, &aTimeCommit, &aTimeTotal); pFile->Close(); @@ -353,7 +352,7 @@ void EmbeddedDBPerformanceTest::performReadTest( getTimeDifference(&aStart, &aMiddle, &aTimeSelect); getTimeDifference(&aMiddle, &aEnd, &aTimeIterate); getTimeDifference(&aStart, &aEnd, &aTimeTotal); - m_aOutputBuffer.append("Read from: " + rDBName + "\n"); + m_aOutputBuffer.append("Read from: ").append(rDBName).append("\n"); printTimes(&aTimeSelect, &aTimeIterate, &aTimeTotal); } diff --git a/dbaccess/source/core/api/CacheSet.cxx b/dbaccess/source/core/api/CacheSet.cxx index bf547d6a53c1..fe930722ab68 100644 --- a/dbaccess/source/core/api/CacheSet.cxx +++ b/dbaccess/source/core/api/CacheSet.cxx @@ -163,7 +163,7 @@ void OCacheSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity::OSQ connectivity::ORowVector< ORowSetValue > ::Vector::iterator aEnd = _rInsertRow->get().end(); for(; aIter != aEnd;++aIter) { - aSql.append(::dbtools::quoteName( aQuote,m_xSetMetaData->getColumnName(i++)) + ","); + aSql.append(::dbtools::quoteName( aQuote,m_xSetMetaData->getColumnName(i++)) ).append(","); aValues.append("?,"); } @@ -264,7 +264,7 @@ void OCacheSet::fillParameters( const ORowSetRow& _rRow } if(aIter->isModified()) { - _sParameter.append(::dbtools::quoteName( aQuote,aColumnName) + "?,"); + _sParameter.append(::dbtools::quoteName( aQuote,aColumnName) ).append("?,"); } } } @@ -285,7 +285,7 @@ void OCacheSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOri { aCondition.setLength(aCondition.getLength()-5); - aSql.append(" WHERE " + aCondition.makeStringAndClear()); + aSql.append(" WHERE " ).append( aCondition.makeStringAndClear()); } else ::dbtools::throwSQLException( diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index eb866c82bad2..1cd92ab7835a 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -223,11 +223,11 @@ namespace fullName = tblName + "." + colName; if ( _rValue.isNull() ) { - o_buf.append(fullName + " IS NULL "); + o_buf.append(fullName).append(" IS NULL "); } else { - o_buf.append(fullName + " = ? "); + o_buf.append(fullName).append(" = ? "); } } } @@ -503,7 +503,7 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi } if((_rInsertRow->get())[columnName.second.nPosition].isModified()) { - aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName) + aPara); + aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName)).append(aPara); } ++i; } @@ -520,7 +520,7 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi aSql.append(" WHERE "); if(!sKeyCondition.isEmpty() && !sIndexCondition.isEmpty()) { - aSql.append(sKeyCondition.makeStringAndClear() + sIndexCondition.makeStringAndClear()); + aSql.append(sKeyCondition.makeStringAndClear()).append(sIndexCondition.makeStringAndClear()); } else if(!sKeyCondition.isEmpty()) { @@ -618,7 +618,7 @@ void OKeySet::insertRow( const ORowSetRow& _rInsertRow,const connectivity::OSQLT { bRefetch = std::find(m_aFilterColumns.begin(),m_aFilterColumns.end(),columnName.second.sRealName) == m_aFilterColumns.end(); } - aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName) + ","); + aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName)).append(","); aValues.append("?,"); bModified = true; } diff --git a/dbaccess/source/core/api/OptimisticSet.cxx b/dbaccess/source/core/api/OptimisticSet.cxx index 5c2a45017f44..bf272f18471a 100644 --- a/dbaccess/source/core/api/OptimisticSet.cxx +++ b/dbaccess/source/core/api/OptimisticSet.cxx @@ -202,7 +202,7 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _ OUStringBuffer& rPart = aSql[columnName.second.sTableName]; if ( !rPart.isEmpty() ) rPart.append(", "); - rPart.append(sQuotedColumnName + " = ?"); + rPart.append(sQuotedColumnName).append(" = ?"); } } @@ -225,7 +225,7 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _ " SET " + elem.second.toString()); OUStringBuffer& rCondition = aKeyConditions[elem.first]; if ( !rCondition.isEmpty() ) - sSql.append(" WHERE " + rCondition.toString() ); + sSql.append(" WHERE ").append( rCondition.toString() ); executeUpdate(_rInsertRow ,_rOriginalRow,sSql.makeStringAndClear(),elem.first); } diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx index 9a8eea35ed10..6d4ba1b0d87c 100644 --- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx +++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx @@ -177,28 +177,28 @@ namespace switch( i_nFilterOperator ) { case SQLFilterOperator::EQUAL: - o_sRet.append(" = " + i_sValue); + o_sRet.append(" = " ).append( i_sValue); break; case SQLFilterOperator::NOT_EQUAL: - o_sRet.append(" <> " + i_sValue); + o_sRet.append(" <> " ).append( i_sValue); break; case SQLFilterOperator::LESS: - o_sRet.append(" < " + i_sValue); + o_sRet.append(" < " ).append( i_sValue); break; case SQLFilterOperator::GREATER: - o_sRet.append(" > " + i_sValue); + o_sRet.append(" > " ).append( i_sValue); break; case SQLFilterOperator::LESS_EQUAL: - o_sRet.append(" <= " + i_sValue); + o_sRet.append(" <= " ).append( i_sValue); break; case SQLFilterOperator::GREATER_EQUAL: - o_sRet.append(" >= " + i_sValue); + o_sRet.append(" >= " ).append( i_sValue); break; case SQLFilterOperator::LIKE: - o_sRet.append(" LIKE " + i_sValue); + o_sRet.append(" LIKE " ).append( i_sValue); break; case SQLFilterOperator::NOT_LIKE: - o_sRet.append(" NOT LIKE " + i_sValue); + o_sRet.append(" NOT LIKE " ).append( i_sValue); break; case SQLFilterOperator::SQLNULL: o_sRet.append(" IS NULL"); @@ -763,7 +763,7 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( ) OUString sOriginalWhereClause = getSQLPart( Where, m_aSqlIterator, false ); if ( !sOriginalWhereClause.isEmpty() ) { - aSQL.append( " AND ( " + sOriginalWhereClause + " ) " ); + aSQL.append( " AND ( " ).append( sOriginalWhereClause ).append( " ) " ); } OUString sGroupBy = getSQLPart( Group, m_aSqlIterator, true ); @@ -1666,7 +1666,7 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert const ::sal_Int64 nLength = xClob->length(); if ( sal_Int64(nLength + aSQL.getLength() + STR_LIKE.getLength() ) < sal_Int64(SAL_MAX_INT32) ) { - aSQL.append("'" + xClob->getSubString(1,static_cast<sal_Int32>(nLength)) + "'"); + aSQL.append("'").append(xClob->getSubString(1,static_cast<sal_Int32>(nLength))).append("'"); } } else diff --git a/dbaccess/source/core/dataaccess/ContentHelper.cxx b/dbaccess/source/core/dataaccess/ContentHelper.cxx index 5f8bb59e0b59..b59e70b63490 100644 --- a/dbaccess/source/core/dataaccess/ContentHelper.cxx +++ b/dbaccess/source/core/dataaccess/ContentHelper.cxx @@ -107,7 +107,7 @@ OUString OContentHelper::impl_getHierarchicalName( bool _includingRootContainer xProp->getPropertyValue( PROPERTY_NAME ) >>= sName; OUString sPrevious = aHierarchicalName.makeStringAndClear(); - aHierarchicalName.append( sName + "/" + sPrevious ); + aHierarchicalName.append( sName ).append( "/" ).append( sPrevious ); } } OUString sHierarchicalName( aHierarchicalName.makeStringAndClear() ); diff --git a/dbaccess/source/ext/macromigration/migrationlog.cxx b/dbaccess/source/ext/macromigration/migrationlog.cxx index 6a0b71b12bfe..13953894bf8b 100644 --- a/dbaccess/source/ext/macromigration/migrationlog.cxx +++ b/dbaccess/source/ext/macromigration/migrationlog.cxx @@ -382,8 +382,8 @@ namespace dbmm OUString sBackedUp( DBA_RES( STR_SAVED_COPY_TO ) ); sBackedUp = sBackedUp.replaceAll( "$location$", m_pData->sBackupLocation ); - aBuffer.append( "=== " + DBA_RES( STR_DATABASE_DOCUMENT ) - + " ===\n" + sBackedUp + "\n\n"); + aBuffer.append( "=== " ).append( DBA_RES( STR_DATABASE_DOCUMENT ) ) + .append( " ===\n" ).append( sBackedUp ).append("\n\n"); } if ( !m_pData->aFailures.empty() ) @@ -405,7 +405,7 @@ namespace dbmm OUString sDocTitle( DBA_RES( rDoc.eType == eForm ? STR_FORM : STR_REPORT ) ); sDocTitle = sDocTitle.replaceAll( "$name$", rDoc.sName ); - aBuffer.append( "=== " + sDocTitle + " ===\n" ); + aBuffer.append( "=== " ).append( sDocTitle ).append( " ===\n" ); for (auto const& elem : rDoc.aMovedLibraries) { @@ -414,7 +414,7 @@ namespace dbmm sMovedLib = sMovedLib.replaceAll( "$old$", elem.sOldName ); sMovedLib = sMovedLib.replaceAll( "$new$", elem.sNewName ); - aBuffer.append( sMovedLib + "\n" ); + aBuffer.append( sMovedLib ).append( "\n" ); } aBuffer.append( '\n' ); diff --git a/dbaccess/source/filter/xml/xmlServerDatabase.cxx b/dbaccess/source/filter/xml/xmlServerDatabase.cxx index 7ce8a7e3ff9a..6eb9ce76ef12 100644 --- a/dbaccess/source/filter/xml/xmlServerDatabase.cxx +++ b/dbaccess/source/filter/xml/xmlServerDatabase.cxx @@ -82,46 +82,46 @@ OXMLServerDatabase::OXMLServerDatabase( ODBFilter& rImport, OUStringBuffer sURL; if ( sType == "sdbc:mysql:jdbc" || sType == "sdbc:mysqlc" || sType == "sdbc:mysql:mysqlc" ) { - sURL.append( sType + ":" + sHostName); + sURL.append( sType ).append( ":" ).append(sHostName); if ( !sPortNumber.isEmpty() ) { - sURL.append(":" + sPortNumber); + sURL.append(":").append(sPortNumber); } if ( !sDatabaseName.isEmpty() ) { - sURL.append("/" + sDatabaseName); + sURL.append("/").append(sDatabaseName); } } else if ( sType == "jdbc:oracle:thin" ) { - sURL.append("jdbc:oracle:thin:@" + sHostName); + sURL.append("jdbc:oracle:thin:@").append(sHostName); if ( !sPortNumber.isEmpty() ) { - sURL.append(":" + sPortNumber); + sURL.append(":").append(sPortNumber); } if ( !sDatabaseName.isEmpty() ) { - sURL.append(":" + sDatabaseName); + sURL.append(":").append(sDatabaseName); } } else if ( sType == "sdbc:address:ldap" ) { - sURL.append("sdbc:address:ldap:" + sHostName); + sURL.append("sdbc:address:ldap:").append(sHostName); if ( !sPortNumber.isEmpty() ) { - sURL.append(":" + sPortNumber); + sURL.append(":").append(sPortNumber); } } else { - sURL.append(sType + ":" + sHostName); + sURL.append(sType).append(":").append(sHostName); if ( !sPortNumber.isEmpty() ) { - sURL.append(":" + sPortNumber); + sURL.append(":").append(sPortNumber); } if ( !sDatabaseName.isEmpty() ) { - sURL.append(":" + sDatabaseName); + sURL.append(":").append(sDatabaseName); } } try diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx index f602ed3abcfc..7c86eced09f2 100644 --- a/dbaccess/source/ui/misc/WCopyTable.cxx +++ b/dbaccess/source/ui/misc/WCopyTable.cxx @@ -238,7 +238,7 @@ OUString ObjectCopySource::getSelectStatement() const aSQL.append( ", " ); } - aSQL.append( "FROM " + ::dbtools::composeTableNameForSelect( m_xConnection, m_xObject ) ); + aSQL.append( "FROM " ).append( ::dbtools::composeTableNameForSelect( m_xConnection, m_xObject ) ); sSelectStatement = aSQL.makeStringAndClear(); } diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx index 68ffb367abb7..f977ec528d03 100644 --- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx +++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx @@ -2814,7 +2814,7 @@ OUString OQueryDesignView::getStatement() const sal_Int64 nLimit = rController.getLimit(); if( nLimit != -1 ) { - aSqlCmd.append( " LIMIT " + OUString::number(nLimit) ); + aSqlCmd.append( " LIMIT " ).append( OUString::number(nLimit) ); } } diff --git a/dbaccess/source/ui/uno/copytablewizard.cxx b/dbaccess/source/ui/uno/copytablewizard.cxx index 53685f07f2c1..c129679211bc 100644 --- a/dbaccess/source/ui/uno/copytablewizard.cxx +++ b/dbaccess/source/ui/uno/copytablewizard.cxx @@ -1436,7 +1436,7 @@ OUString CopyTableWizard::impl_getServerSideCopyStatement_throw(const Reference< { if ( !sColumns.isEmpty() ) sColumns.append(","); - sColumns.append(sQuote + aDestColumnNames[rColumnPositionPair.second - 1] + sQuote); + sColumns.append(sQuote).append(aDestColumnNames[rColumnPositionPair.second - 1]).append(sQuote); } } const OUString sComposedTableName = ::dbtools::composeTableName( xDestMetaData, _xTable, ::dbtools::EComposeRule::InDataManipulation, true ); diff --git a/filter/source/config/cache/filtercache.cxx b/filter/source/config/cache/filtercache.cxx index 3725a7995f93..d3cf357f165d 100644 --- a/filter/source/config/cache/filtercache.cxx +++ b/filter/source/config/cache/filtercache.cxx @@ -1001,13 +1001,13 @@ void FilterCache::impl_validateAndOptimize() aType[PROPNAME_NAME] >>= sInternalTypeNameCheck; if (sInternalTypeNameCheck != sType) { - sLog.append("Warning\t:\t" "The type \"" + sType + "\" does support the property \"Name\" correctly.\n"); + sLog.append("Warning\t:\t" "The type \"").append(sType).append("\" does support the property \"Name\" correctly.\n"); ++nWarnings; } if (!ce && !cu) { - sLog.append("Warning\t:\t" "The type \"" + sType + "\" does not contain any URL pattern nor any extensions.\n"); + sLog.append("Warning\t:\t" "The type \"").append(sType).append("\" does not contain any URL pattern nor any extensions.\n"); ++nWarnings; } #endif @@ -1083,7 +1083,7 @@ void FilterCache::impl_validateAndOptimize() (!bReferencedByHandler) ) { - sLog.append("Warning\t:\t" "The type \"" + sType + "\" is not used by any filter, loader or content handler.\n"); + sLog.append("Warning\t:\t" "The type \"").append(sType).append("\" is not used by any filter, loader or content handler.\n"); ++nWarnings; } } @@ -1104,7 +1104,7 @@ void FilterCache::impl_validateAndOptimize() sLog.append("warning\t:\t"); } - sLog.append("The type \"" + sType + "\" points to an invalid filter \"" + sPrefFilter + "\".\n"); + sLog.append("The type \"").append(sType).append("\" points to an invalid filter \"").append(sPrefFilter).append("\".\n"); continue; } @@ -1113,10 +1113,10 @@ void FilterCache::impl_validateAndOptimize() aPrefFilter[PROPNAME_TYPE] >>= sFilterTypeReg; if (sFilterTypeReg != sType) { - sLog.append("error\t:\t" "The preferred filter \"" - + sPrefFilter + "\" of type \"" + sType + - "\" is registered for another type \"" + sFilterTypeReg + - "\".\n"); + sLog.append("error\t:\t" "The preferred filter \"") + .append(sPrefFilter).append("\" of type \"").append(sType) + .append("\" is registered for another type \"").append(sFilterTypeReg) + .append("\".\n"); ++nErrors; } @@ -1124,8 +1124,8 @@ void FilterCache::impl_validateAndOptimize() aPrefFilter[PROPNAME_FLAGS] >>= nFlags; if (!(static_cast<SfxFilterFlags>(nFlags) & SfxFilterFlags::IMPORT)) { - sLog.append("error\t:\t" "The preferred filter \"" + sPrefFilter + "\" of type \"" + - sType + "\" is not an IMPORT filter!\n"); + sLog.append("error\t:\t" "The preferred filter \"").append(sPrefFilter).append("\" of type \"") + .append(sType).append("\" is not an IMPORT filter!\n"); ++nErrors; } @@ -1133,8 +1133,8 @@ void FilterCache::impl_validateAndOptimize() aPrefFilter[PROPNAME_NAME] >>= sInternalFilterNameCheck; if (sInternalFilterNameCheck != sPrefFilter) { - sLog.append("Warning\t:\t" "The filter \"" + sPrefFilter + - "\" does support the property \"Name\" correctly.\n"); + sLog.append("Warning\t:\t" "The filter \"").append(sPrefFilter) + .append("\" does support the property \"Name\" correctly.\n"); ++nWarnings; } } diff --git a/forms/source/xforms/model_ui.cxx b/forms/source/xforms/model_ui.cxx index ba3bbff52191..93bd72f06951 100644 --- a/forms/source/xforms/model_ui.cxx +++ b/forms/source/xforms/model_ui.cxx @@ -286,7 +286,7 @@ OUString Model::getNodeDisplayName( const XNode_t& xNode, OUString sContent = xNode->getNodeValue(); if( bDetail || ! lcl_isWhitespace( sContent ) ) { - aBuffer.append("\"" + Convert::collapseWhitespace( sContent ) + "\""); + aBuffer.append("\"").append(Convert::collapseWhitespace( sContent )).append("\""); } } break; diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx index 9809edef6777..ed768a907303 100644 --- a/i18nlangtag/source/languagetag/languagetag.cxx +++ b/i18nlangtag/source/languagetag/languagetag.cxx @@ -1097,11 +1097,11 @@ bool LanguageTagImpl::canonicalize() 1 + aCountry.getLength() + 1 + aVariants.getLength()); aBuf.append( aLanguage); if (!aScript.isEmpty()) - aBuf.append("-" + aScript); + aBuf.append("-").append(aScript); if (!aCountry.isEmpty()) - aBuf.append("-" + aCountry); + aBuf.append("-").append(aCountry); if (!aVariants.isEmpty()) - aBuf.append("-" + aVariants); + aBuf.append("-").append(aVariants); OUString aStr( aBuf.makeStringAndClear()); if (maBcp47 != aStr) diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx index 149a7f016c7a..b1d8fcc18a1a 100644 --- a/sc/source/core/tool/chgtrack.cxx +++ b/sc/source/core/tool/chgtrack.cxx @@ -437,7 +437,7 @@ void ScChangeAction::GetDescription( if (GetType() == SC_CAT_MOVE) { aBuf.append( - ScResId(STR_CHANGED_MOVE_REJECTION_WARNING) + " "); + ScResId(STR_CHANGED_MOVE_REJECTION_WARNING)).append(" "); rStr = aBuf.makeStringAndClear(); return; } @@ -445,7 +445,7 @@ void ScChangeAction::GetDescription( if (IsInsertType()) { aBuf.append( - ScResId(STR_CHANGED_DELETE_REJECTION_WARNING) + " "); + ScResId(STR_CHANGED_DELETE_REJECTION_WARNING)).append(" "); rStr = aBuf.makeStringAndClear(); return; } diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 39a70965e205..e86e2d756e78 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -658,7 +658,7 @@ static OUString lcl_makeExternalNameStr(const OUString& rFile, const OUString& r OUStringBuffer aBuf(aFile.getLength() + aName.getLength() + 9); if (bODF) aBuf.append( '['); - aBuf.append( "'" + aFile + "'" + OUStringLiteral1(cSep)); + aBuf.append( "'" ).append( aFile ).append( "'" ).append( OUStringLiteral1(cSep) ); if (bODF) aBuf.append( "$$'" ); aBuf.append( aName); @@ -910,7 +910,7 @@ struct ConventionOOO_A1 : public Convention_A1 else aFile = INetURLObject::decode(rFileName, INetURLObject::DecodeMechanism::Unambiguous); - rBuffer.append("'" + aFile.replaceAll("'", "''") + "'#"); + rBuffer.append("'").append(aFile.replaceAll("'", "''")).append("'#"); if (!rRef.IsTabRel()) rBuffer.append('$'); diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx index cccf3494a477..a9377b468e1a 100644 --- a/sd/source/filter/html/htmlex.cxx +++ b/sd/source/filter/html/htmlex.cxx @@ -335,9 +335,9 @@ OUString getParagraphStyle( SdrOutliner* pOutliner, sal_Int32 nPara ) void lclAppendStyle(OUStringBuffer& aBuffer, const OUString& aTag, const OUString& aStyle) { if (aStyle.isEmpty()) - aBuffer.append("<" + aTag + ">"); + aBuffer.append("<").append(aTag).append(">"); else - aBuffer.append("<" + aTag + " style=\"" + aStyle + "\">"); + aBuffer.append("<").append(aTag).append(" style=\"").append(aStyle).append("\">"); } } // anonymous namespace @@ -1348,7 +1348,7 @@ void HtmlExport::WriteOutlinerParagraph(OUStringBuffer& aStr, SdrOutliner* pOutl lclAppendStyle(aStr, aTag, getParagraphStyle(pOutliner, nIndex)); aStr.append(aParaText); - aStr.append("</" + aTag + ">\r\n"); + aStr.append("</").append(aTag).append(">\r\n"); } else { @@ -1594,7 +1594,7 @@ bool HtmlExport::CreateHtmlForPresPages() // HTML Head OUStringBuffer aStr(gaHTMLHeader); aStr.append(CreateMetaCharset()); - aStr.append(" <title>" + StringToHTMLString(maPageNames[nSdPage]) + "</title>\r\n"); + aStr.append(" <title>" ).append( StringToHTMLString(maPageNames[nSdPage]) ).append("</title>\r\n"); // insert timing information pPage = maPages[ nSdPage ]; @@ -2807,12 +2807,12 @@ OUString HtmlExport::CreateHTMLPolygonArea( const ::basegfx::B2DPolyPolygon& rPo aPnt.setX( static_cast<long>(aPnt.X() * fFactor) ); aPnt.setY( static_cast<long>(aPnt.Y() * fFactor) ); - aStr.append(OUString::number(aPnt.X()) + "," + OUString::number(aPnt.Y())); + aStr.append(OUString::number(aPnt.X())).append(",").append(OUString::number(aPnt.Y())); if (nPoint < nNoOfPoints - 1) aStr.append(','); } - aStr.append("\" href=\"" + rHRef + "\">\n"); + aStr.append("\" href=\"").append(rHRef).append("\">\n"); } return aStr.makeStringAndClear(); diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx index 819d3c4cb238..52792be21741 100644 --- a/sfx2/source/control/unoctitm.cxx +++ b/sfx2/source/control/unoctitm.cxx @@ -1154,7 +1154,7 @@ static void InterceptLOKStateChangeEvent(const SfxViewFrame* pViewFrame, const c if (aEvent.IsEnabled && (aEvent.State >>= aPoint)) { - aBuffer.append(OUString::number(aPoint.X) + " / " + OUString::number(aPoint.Y)); + aBuffer.append(OUString::number(aPoint.X)).append(" / ").append(OUString::number(aPoint.Y)); } } else if (aEvent.FeatureURL.Path == "Size") @@ -1163,7 +1163,7 @@ static void InterceptLOKStateChangeEvent(const SfxViewFrame* pViewFrame, const c if (aEvent.IsEnabled && (aEvent.State >>= aSize)) { - aBuffer.append(OUString::number(aSize.Width) + " x " + OUString::number(aSize.Height)); + aBuffer.append(OUString::number(aSize.Width)).append(" x ").append(OUString::number(aSize.Height)); } } else if (aEvent.FeatureURL.Path == "LanguageStatus") @@ -1194,7 +1194,7 @@ static void InterceptLOKStateChangeEvent(const SfxViewFrame* pViewFrame, const c aBuffer.append(u'{'); for (sal_Int32 itSeq = 0; itSeq < aSeq.getLength(); itSeq++) { - aBuffer.append("\"" + aSeq[itSeq]); + aBuffer.append("\"").append(aSeq[itSeq]); if (itSeq != aSeq.getLength() - 1) aBuffer.append("\":true,"); else diff --git a/solenv/CompilerTest_compilerplugins_clang.mk b/solenv/CompilerTest_compilerplugins_clang.mk index 950bca605378..6aacf7547c60 100644 --- a/solenv/CompilerTest_compilerplugins_clang.mk +++ b/solenv/CompilerTest_compilerplugins_clang.mk @@ -49,6 +49,7 @@ $(eval $(call gb_CompilerTest_add_exception_objects,compilerplugins_clang, \ compilerplugins/clang/test/shouldreturnbool \ compilerplugins/clang/test/simplifybool \ compilerplugins/clang/test/simplifydynamiccast \ + compilerplugins/clang/test/stringbuffer \ compilerplugins/clang/test/stringconstant \ compilerplugins/clang/test/stringloop \ compilerplugins/clang/test/unnecessarycatchthrow \ diff --git a/sw/source/uibase/uiview/pview.cxx b/sw/source/uibase/uiview/pview.cxx index c4a2055bc218..3f4e568aa60c 100644 --- a/sw/source/uibase/uiview/pview.cxx +++ b/sw/source/uibase/uiview/pview.cxx @@ -410,9 +410,9 @@ OUString SwPagePreviewWin::GetStatusStr( sal_uInt16 nPageCnt ) const const sal_uInt16 nVirtPageNum = mpPgPreviewLayout->GetVirtPageNumByPageNum( nPageNum ); if( nVirtPageNum && nVirtPageNum != nPageNum ) { - aStatusStr.append( OUString::number(nVirtPageNum) + " " ); + aStatusStr.append( OUString::number(nVirtPageNum) ).append( " " ); } - aStatusStr.append( OUString::number(nPageNum) + " / " + OUString::number(nPageCnt) ); + aStatusStr.append( OUString::number(nPageNum) ).append( " / " ).append( OUString::number(nPageCnt) ); return aStatusStr.makeStringAndClear(); } diff --git a/vcl/source/uitest/logger.cxx b/vcl/source/uitest/logger.cxx index be2648ead428..82da48256cc4 100644 --- a/vcl/source/uitest/logger.cxx +++ b/vcl/source/uitest/logger.cxx @@ -57,21 +57,21 @@ void UITestLogger::logCommand(const OUString& rAction, const css::uno::Sequence< { sal_Int32 nValue = 0; rProp.Value >>= nValue; - aBuffer.append("\"" + rProp.Name + "\": "); - aBuffer.append(OUString::number(nValue) + ", "); + aBuffer.append("\"").append(rProp.Name).append("\": "); + aBuffer.append(OUString::number(nValue)).append(", "); } else if (aTypeName == "unsigned long") { sal_uInt32 nValue = 0; rProp.Value >>= nValue; - aBuffer.append("\"" + rProp.Name + "\": "); - aBuffer.append(OUString::number(nValue) + ", "); + aBuffer.append("\"").append(rProp.Name).append("\": "); + aBuffer.append(OUString::number(nValue)).append(", "); } else if (aTypeName == "boolean") { bool bValue = false; rProp.Value >>= bValue; - aBuffer.append("\"" + rProp.Name + "\": "); + aBuffer.append("\"").append(rProp.Name).append("\": "); if (bValue) aBuffer.append("True, "); else @@ -231,7 +231,7 @@ OUString StringMapToOUString(const std::map<OUString, OUString>& rParameters) { if (itr != rParameters.begin()) aParameterString.append(", "); - aParameterString.append("\"" + itr->first + "\": \"" + itr->second + "\""); + aParameterString.append("\"").append(itr->first).append("\": \"").append(itr->second).append("\""); } aParameterString.append("}"); diff --git a/xmloff/source/draw/animationexport.cxx b/xmloff/source/draw/animationexport.cxx index 6efa20d7b5c5..1229b5f922d0 100644 --- a/xmloff/source/draw/animationexport.cxx +++ b/xmloff/source/draw/animationexport.cxx @@ -1235,7 +1235,7 @@ void AnimationsExporterImpl::exportAnimate( const Reference< XAnimate >& xAnimat if( !sTmp.isEmpty() ) sTmp.append( ';' ); - sTmp.append( OUString::number(p->Time) + "," + OUString::number(p->Progress) ); + sTmp.append( OUString::number(p->Time) ).append( "," ).append( OUString::number(p->Progress) ); p++; } diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index 36342fb1c66b..9936f974183d 100644 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -3758,7 +3758,7 @@ void ExportParameter( OUStringBuffer& rStrBuffer, const css::drawing::EnhancedCu { case css::drawing::EnhancedCustomShapeParameterType::EQUATION : { - rStrBuffer.append( "?f" + OUString::number( nValue ) ); + rStrBuffer.append( "?f" ).append(OUString::number( nValue ) ); } break; diff --git a/xmloff/source/style/xmlbahdl.cxx b/xmloff/source/style/xmlbahdl.cxx index 6a348b436006..debf07244872 100644 --- a/xmloff/source/style/xmlbahdl.cxx +++ b/xmloff/source/style/xmlbahdl.cxx @@ -488,7 +488,9 @@ bool XMLColorPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, cons Sequence< double > aHSL; if( (rValue >>= aHSL) && (aHSL.getLength() == 3) ) { - aOut.append( "hsl(" + OUString::number(aHSL[0]) + "," + OUString::number(aHSL[1] * 100.0) + "%," + OUString::number(aHSL[2] * 100.0) + "%)" ); + aOut.append( "hsl(" ).append( OUString::number(aHSL[0]) ).append( "," ) + .append( OUString::number(aHSL[1] * 100.0) ).append( "%," ) + .append( OUString::number(aHSL[2] * 100.0) ).append( "%)" ); rStrExpValue = aOut.makeStringAndClear(); bRet = true; diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx index 80dd7e979dc9..e86521ca7f4a 100644 --- a/xmloff/source/style/xmlexppr.cxx +++ b/xmloff/source/style/xmlexppr.cxx @@ -949,7 +949,7 @@ void SvXMLExportPropertyMapper::_exportXML( pNamespaceMap = pNewNamespaceMap; } pNewNamespaceMap->Add( sPrefix, sNamespace ); - sNameBuffer.append( GetXMLToken(XML_XMLNS) + ":" + sPrefix ); + sNameBuffer.append( GetXMLToken(XML_XMLNS) ).append( ":" ).append( sPrefix ); rAttrList.AddAttribute( sNameBuffer.makeStringAndClear(), sNamespace ); } diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 59b48edf7c70..17a86b0ebfaf 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -2044,7 +2044,7 @@ void SvXMLNumFormatContext::AddCurrency( const OUString& rContent, LanguageType if ( nLang != LANGUAGE_SYSTEM ) { // '-' sign and language code in hex: - aFormatCode.append("-" + OUString::number(sal_uInt16(nLang), 16).toAsciiUpperCase()); + aFormatCode.append("-").append(OUString::number(sal_uInt16(nLang), 16).toAsciiUpperCase()); } aFormatCode.append( ']' ); // end of "new" currency symbol @@ -2075,7 +2075,7 @@ void SvXMLNumFormatContext::AddNfKeyword( sal_uInt16 nIndex ) if ( !bTruncate && !bHasDateTime ) { // with truncate-on-overflow = false, add "[]" to first time part - aFormatCode.append("[" + sKeyword + "]"); + aFormatCode.append("[").append(sKeyword).append("]"); } else { @@ -2200,7 +2200,7 @@ void SvXMLNumFormatContext::AddCondition( const sal_Int32 nIndex ) sRealCond = sRealCond.replaceAt( nPos, 1, rDecSep ); } } - aConditions.append("[" + sRealCond + "]"); + aConditions.append("[").append(sRealCond).append("]"); } const SvNumberformat* pFormat = pFormatter->GetEntry(l_nKey); diff --git a/xmloff/source/xforms/xformsexport.cxx b/xmloff/source/xforms/xformsexport.cxx index 69a8d703f117..d31ddcc9a1a2 100644 --- a/xmloff/source/xforms/xformsexport.cxx +++ b/xmloff/source/xforms/xformsexport.cxx @@ -659,9 +659,9 @@ OUString xforms_bool( const Any& rAny ) void xforms_formatDate( OUStringBuffer& aBuffer, const util::Date& rDate ) { - aBuffer.append(OUString::number(static_cast<sal_Int32>( rDate.Year ) ) - + "-" + OUString::number(static_cast<sal_Int32>( rDate.Month )) - + "-" + OUString::number(static_cast<sal_Int32>( rDate.Day )) ); + aBuffer.append(OUString::number(static_cast<sal_Int32>( rDate.Year ) )) + .append("-").append(OUString::number(static_cast<sal_Int32>( rDate.Month ))) + .append("-").append(OUString::number(static_cast<sal_Int32>( rDate.Day ))); } void xforms_formatTime( OUStringBuffer& aBuffer, const css::util::Time& rTime ) diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx index 3b2db2a800eb..16ca346bcbc3 100644 --- a/xmlsecurity/source/dialogs/resourcemanager.cxx +++ b/xmlsecurity/source/dialogs/resourcemanager.cxx @@ -91,7 +91,7 @@ namespace XmlSec s2.append('\n'); } s1.append(i->second); - s2.append(i->first + " = " + i->second); + s2.append(i->first).append(" = ").append(i->second); } return make_pair(s1.makeStringAndClear(), s2.makeStringAndClear()); } |