summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/qa/extras/chart2dump/chart2dump.cxx4
-rw-r--r--chart2/source/tools/ExponentialRegressionCurveCalculator.cxx12
-rw-r--r--chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx8
-rw-r--r--chart2/source/tools/PolynomialRegressionCurveCalculator.cxx2
-rw-r--r--chart2/source/tools/PotentialRegressionCurveCalculator.cxx6
-rw-r--r--chart2/source/view/charttypes/VSeriesPlotter.cxx2
-rw-r--r--compilerplugins/clang/stringbuffer.cxx67
-rw-r--r--compilerplugins/clang/test/stringbuffer.cxx22
-rw-r--r--connectivity/source/drivers/postgresql/pq_xkeys.cxx2
-rw-r--r--connectivity/source/drivers/postgresql/pq_xtables.cxx2
-rw-r--r--connectivity/source/drivers/postgresql/pq_xuser.cxx6
-rw-r--r--connectivity/source/drivers/postgresql/pq_xviews.cxx6
-rw-r--r--dbaccess/qa/unit/embeddeddb_performancetest.cxx17
-rw-r--r--dbaccess/source/core/api/CacheSet.cxx6
-rw-r--r--dbaccess/source/core/api/KeySet.cxx10
-rw-r--r--dbaccess/source/core/api/OptimisticSet.cxx4
-rw-r--r--dbaccess/source/core/api/SingleSelectQueryComposer.cxx20
-rw-r--r--dbaccess/source/core/dataaccess/ContentHelper.cxx2
-rw-r--r--dbaccess/source/ext/macromigration/migrationlog.cxx8
-rw-r--r--dbaccess/source/filter/xml/xmlServerDatabase.cxx22
-rw-r--r--dbaccess/source/ui/misc/WCopyTable.cxx2
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignView.cxx2
-rw-r--r--dbaccess/source/ui/uno/copytablewizard.cxx2
-rw-r--r--filter/source/config/cache/filtercache.cxx24
-rw-r--r--forms/source/xforms/model_ui.cxx2
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx6
-rw-r--r--sc/source/core/tool/chgtrack.cxx4
-rw-r--r--sc/source/core/tool/compiler.cxx4
-rw-r--r--sd/source/filter/html/htmlex.cxx12
-rw-r--r--sfx2/source/control/unoctitm.cxx6
-rw-r--r--solenv/CompilerTest_compilerplugins_clang.mk1
-rw-r--r--sw/source/uibase/uiview/pview.cxx4
-rw-r--r--vcl/source/uitest/logger.cxx12
-rw-r--r--xmloff/source/draw/animationexport.cxx2
-rw-r--r--xmloff/source/draw/shapeexport.cxx2
-rw-r--r--xmloff/source/style/xmlbahdl.cxx4
-rw-r--r--xmloff/source/style/xmlexppr.cxx2
-rw-r--r--xmloff/source/style/xmlnumfi.cxx6
-rw-r--r--xmloff/source/xforms/xformsexport.cxx6
-rw-r--r--xmlsecurity/source/dialogs/resourcemanager.cxx2
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());
}