summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--avmedia/source/framework/mediaitem.cxx2
-rw-r--r--chart2/qa/extras/chart2geometry.cxx24
-rw-r--r--compilerplugins/clang/stringstatic.cxx118
-rw-r--r--compilerplugins/clang/test/stringstatic.cxx8
-rw-r--r--cui/source/dialogs/scriptdlg.cxx2
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.cxx4
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.cxx4
-rw-r--r--dbaccess/source/ui/misc/WCopyTable.cxx2
-rw-r--r--desktop/source/lib/init.cxx4
-rw-r--r--drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx10
-rw-r--r--fpicker/source/office/fileview.cxx2
-rw-r--r--jvmfwk/source/elements.cxx2
-rw-r--r--l10ntools/source/merge.cxx2
-rw-r--r--l10ntools/source/propmerge.cxx4
-rw-r--r--oox/qa/unit/export.cxx2
-rw-r--r--oox/qa/unit/mcgr.cxx8
-rw-r--r--oox/source/export/drawingml.cxx2
-rw-r--r--oox/source/export/vmlexport.cxx2
-rw-r--r--sc/qa/unit/ucalc.cxx2
-rw-r--r--sc/qa/unit/ucalc_formula2.cxx2
-rw-r--r--sc/source/filter/excel/xestream.cxx2
-rw-r--r--sc/source/filter/lotus/lotform.cxx4
-rw-r--r--sc/source/filter/xml/xmlexprt.cxx2
-rw-r--r--sc/source/filter/xml/xmlimprt.cxx3
-rw-r--r--sd/qa/unit/export-tests-ooxml1.cxx18
-rw-r--r--sd/qa/unit/export-tests-ooxml2.cxx8
-rw-r--r--sd/qa/unit/export-tests-ooxml3.cxx12
-rw-r--r--sd/qa/unit/misc-tests.cxx56
-rw-r--r--sfx2/source/appl/sfxhelp.cxx2
-rw-r--r--sfx2/source/doc/guisaveas.cxx2
-rw-r--r--svl/qa/unit/items/test_IndexedStyleSheets.cxx2
-rw-r--r--svtools/source/misc/langhelp.cxx5
-rw-r--r--svx/source/svdraw/svdtrans.cxx6
-rw-r--r--sw/qa/extras/tiledrendering/tiledrendering.cxx8
-rw-r--r--sw/qa/extras/uiwriter/uiwriter6.cxx3
-rw-r--r--sw/source/core/crsr/findtxt.cxx2
-rw-r--r--test/source/screenshot_test.cxx2
-rw-r--r--ucb/source/core/ucbstore.cxx8
-rw-r--r--unotools/source/config/fontcfg.cxx10
-rw-r--r--vcl/qa/cppunit/text.cxx2
-rw-r--r--vcl/source/filter/FilterConfigCache.cxx14
-rw-r--r--vcl/source/filter/ipdf/pdfdocument.cxx4
-rw-r--r--writerfilter/source/ooxml/OOXMLDocumentImpl.cxx12
-rw-r--r--writerperfect/source/impress/KeynoteImportFilter.cxx4
-rw-r--r--writerperfect/source/writer/EPUBPackage.cxx2
-rw-r--r--xmloff/source/core/xmlexp.cxx2
-rw-r--r--xmloff/source/draw/sdxmlimp.cxx2
-rw-r--r--xmloff/source/draw/shapeexport.cxx7
-rw-r--r--xmloff/source/text/XMLIndexTOCContext.cxx4
-rw-r--r--xmloff/source/text/txtstyli.cxx8
50 files changed, 245 insertions, 177 deletions
diff --git a/avmedia/source/framework/mediaitem.cxx b/avmedia/source/framework/mediaitem.cxx
index f177c8bea687..4699a0454359 100644
--- a/avmedia/source/framework/mediaitem.cxx
+++ b/avmedia/source/framework/mediaitem.cxx
@@ -469,7 +469,7 @@ bool EmbedMedia(uno::Reference<frame::XModel> const& xModel,
uno::Reference<embed::XStorage> const xStorage(
xSBD->getDocumentStorage(), uno::UNO_SET_THROW);
- OUString const media("Media");
+ static constexpr OUStringLiteral media(u"Media");
uno::Reference<embed::XStorage> const xSubStorage(
xStorage->openStorageElement(media, embed::ElementModes::WRITE));
diff --git a/chart2/qa/extras/chart2geometry.cxx b/chart2/qa/extras/chart2geometry.cxx
index f560d46ba054..fdd4e6daa11d 100644
--- a/chart2/qa/extras/chart2geometry.cxx
+++ b/chart2/qa/extras/chart2geometry.cxx
@@ -80,9 +80,10 @@ void Chart2GeometryTest::testTdf135184RoundLineCap()
xmlDocUniquePtr pXmlDoc = parseExport("Object 1/content.xml");
CPPUNIT_ASSERT(pXmlDoc);
- const OString sStyleStart("/office:document-content/office:automatic-styles");
- const OString sCap("/style:graphic-properties[@svg:stroke-linecap='round']");
- const OString sChartStart("/office:document-content/office:body/office:chart/chart:chart");
+ static constexpr OStringLiteral sStyleStart("/office:document-content/office:automatic-styles");
+ static constexpr OStringLiteral sCap("/style:graphic-properties[@svg:stroke-linecap='round']");
+ static constexpr OStringLiteral sChartStart(
+ "/office:document-content/office:body/office:chart/chart:chart");
OString sPredicate;
// chart area
const OUString sOUAreaStyleName = getXPathContent(pXmlDoc, sChartStart + "/@chart:style-name");
@@ -108,9 +109,10 @@ void Chart2GeometryTest::testTdf135184RoundLineCap2()
xmlDocUniquePtr pXmlDoc = parseExport("Object 1/content.xml");
CPPUNIT_ASSERT(pXmlDoc);
- const OString sStyleStart("/office:document-content/office:automatic-styles");
- const OString sCap("/style:graphic-properties[@svg:stroke-linecap='round']");
- const OString sChartStart("/office:document-content/office:body/office:chart/chart:chart");
+ static constexpr OStringLiteral sStyleStart("/office:document-content/office:automatic-styles");
+ static constexpr OStringLiteral sCap("/style:graphic-properties[@svg:stroke-linecap='round']");
+ static constexpr OStringLiteral sChartStart(
+ "/office:document-content/office:body/office:chart/chart:chart");
OString sPredicate;
// legend
const OString sLegend(sChartStart + "/chart:legend");
@@ -138,11 +140,11 @@ void Chart2GeometryTest::testTdf135184RoundLineCap3()
xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml");
CPPUNIT_ASSERT(pXmlDoc);
- const OString sDash("/c:spPr/a:ln/a:prstDash");
+ static constexpr OStringLiteral sDash("/c:spPr/a:ln/a:prstDash");
// chart area
assertXPath(pXmlDoc, "/c:chartSpace" + sDash, "val", "dashDot");
// data series line
- const OString sStart("/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser");
+ static constexpr OStringLiteral sStart("/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser");
assertXPath(pXmlDoc, sStart + sDash, "val", "dash");
// regression-curve (trendline)
assertXPath(pXmlDoc, sStart + "/c:trendline" + sDash, "val", "sysDot");
@@ -156,8 +158,8 @@ void Chart2GeometryTest::testTdf135184RoundLineCap4()
xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml");
CPPUNIT_ASSERT(pXmlDoc);
- const OString sChartStart("/c:chartSpace/c:chart");
- const OString sDash("/c:spPr/a:ln/a:prstDash");
+ static constexpr OStringLiteral sChartStart("/c:chartSpace/c:chart");
+ static constexpr OStringLiteral sDash("/c:spPr/a:ln/a:prstDash");
assertXPath(pXmlDoc, sChartStart + "/c:legend" + sDash, "val", "sysDot");
const OString sSeries(sChartStart + "/c:plotArea/c:pieChart/c:ser/c:dPt[3]");
assertXPath(pXmlDoc, sSeries + sDash, "val", "dash");
@@ -472,7 +474,7 @@ void Chart2GeometryTest::testTdf135366_CustomLabelText()
CPPUNIT_ASSERT(pXmlDoc);
// Find custom text. As of version 7.0 it is in a <text:span> element.
- const OString sCustomTextPath(
+ static constexpr OStringLiteral sCustomTextPath(
"//office:document-content/office:body/office:chart/chart:chart/chart:plot-area"
"/chart:series/chart:data-point[2]/chart:data-label/text:p/text:span");
assertXPath(pXmlDoc, sCustomTextPath, 1);
diff --git a/compilerplugins/clang/stringstatic.cxx b/compilerplugins/clang/stringstatic.cxx
index a0b83c465235..5ad225b68d80 100644
--- a/compilerplugins/clang/stringstatic.cxx
+++ b/compilerplugins/clang/stringstatic.cxx
@@ -40,6 +40,7 @@ public:
bool VisitReturnStmt(ReturnStmt const*);
bool VisitDeclRefExpr(DeclRefExpr const*);
bool VisitMemberExpr(MemberExpr const*);
+ bool VisitUnaryOperator(UnaryOperator const*);
private:
std::unordered_set<VarDecl const *> potentialVars;
@@ -59,6 +60,11 @@ bool StringStatic::preRun()
// passing around pointers to global OUString
if (loplugin::hasPathnamePrefix(fn, SRCDIR "/filter/source/svg/"))
return false;
+ // call replaceAll on a 'const OUString", for which there is no OUStringLiteral equivalent
+ if (loplugin::hasPathnamePrefix(fn, SRCDIR "/i18npool/qa/cppunit/test_breakiterator.cxx"))
+ return false;
+ if (loplugin::hasPathnamePrefix(fn, SRCDIR "/sd/qa/unit/export-tests-ooxml2.cxx"))
+ return false;
return true;
}
@@ -80,53 +86,74 @@ bool StringStatic::VisitVarDecl(VarDecl const* varDecl)
if (ignoreLocation(varDecl))
return true;
QualType qt = varDecl->getType();
- if (!varDecl->hasGlobalStorage())
- return true;
- if (varDecl->hasGlobalStorage() && !varDecl->isStaticLocal()) {
- //TODO: For a non-public static member variable from an included file, we could still
- // examine it further if all its uses must be seen in that included file:
- if (!compiler.getSourceManager().isInMainFile(varDecl->getLocation())) {
- return true;
- }
- }
if (!varDecl->isThisDeclarationADefinition()
|| !qt.isConstQualified())
return true;
- if (qt->isArrayType())
- qt = qt->getAsArrayTypeUnsafe()->getElementType();
- auto tc = loplugin::TypeCheck(qt);
- if (!tc.Class("OUString").Namespace("rtl").GlobalNamespace()
- && !tc.Class("OString").Namespace("rtl").GlobalNamespace())
- return true;
- if (varDecl->hasInit())
+ if (varDecl->hasGlobalStorage())
{
- Expr const * expr = varDecl->getInit();
- while (true) {
- if (ExprWithCleanups const * exprWithCleanups = dyn_cast<ExprWithCleanups>(expr)) {
- expr = exprWithCleanups->getSubExpr();
- }
- else if (CastExpr const * castExpr = dyn_cast<CastExpr>(expr)) {
- expr = castExpr->getSubExpr();
- }
- else if (MaterializeTemporaryExpr const * materializeExpr = dyn_cast<MaterializeTemporaryExpr>(expr)) {
- expr = materializeExpr->getSubExpr();
- }
- else if (CXXBindTemporaryExpr const * bindExpr = dyn_cast<CXXBindTemporaryExpr>(expr)) {
- expr = bindExpr->getSubExpr();
+ if (varDecl->hasGlobalStorage() && !varDecl->isStaticLocal()) {
+ //TODO: For a non-public static member variable from an included file, we could still
+ // examine it further if all its uses must be seen in that included file:
+ if (!compiler.getSourceManager().isInMainFile(varDecl->getLocation())) {
+ return true;
}
- else if (CXXConstructExpr const * constructExpr = dyn_cast<CXXConstructExpr>(expr)) {
- if (constructExpr->getNumArgs() == 0) {
+ }
+ if (qt->isArrayType())
+ qt = qt->getAsArrayTypeUnsafe()->getElementType();
+
+ auto tc = loplugin::TypeCheck(qt);
+ if (!tc.Class("OUString").Namespace("rtl").GlobalNamespace()
+ && !tc.Class("OString").Namespace("rtl").GlobalNamespace())
+ return true;
+ if (varDecl->hasInit())
+ {
+ Expr const * expr = varDecl->getInit();
+ while (true) {
+ if (ExprWithCleanups const * exprWithCleanups = dyn_cast<ExprWithCleanups>(expr)) {
+ expr = exprWithCleanups->getSubExpr();
+ }
+ else if (CastExpr const * castExpr = dyn_cast<CastExpr>(expr)) {
+ expr = castExpr->getSubExpr();
+ }
+ else if (MaterializeTemporaryExpr const * materializeExpr = dyn_cast<MaterializeTemporaryExpr>(expr)) {
+ expr = materializeExpr->getSubExpr();
+ }
+ else if (CXXBindTemporaryExpr const * bindExpr = dyn_cast<CXXBindTemporaryExpr>(expr)) {
+ expr = bindExpr->getSubExpr();
+ }
+ else if (CXXConstructExpr const * constructExpr = dyn_cast<CXXConstructExpr>(expr)) {
+ if (constructExpr->getNumArgs() == 0) {
+ return true;
+ }
+ expr = constructExpr->getArg(0);
+ } else if (isa<CallExpr>(expr)) {
return true;
+ } else {
+ break;
}
- expr = constructExpr->getArg(0);
- } else if (isa<CallExpr>(expr)) {
- return true;
- } else {
- break;
}
}
}
+ else
+ {
+ if (isa<ParmVarDecl>(varDecl))
+ return true;
+ loplugin::TypeCheck const tc(varDecl->getType());
+ if (!(tc.Class("OString").Namespace("rtl").GlobalNamespace()
+ || tc.Class("OUString").Namespace("rtl").GlobalNamespace()))
+ {
+ return true;
+ }
+ if (varDecl->hasInit())
+ {
+ auto cxxConstruct = dyn_cast<CXXConstructExpr>(varDecl->getInit()->IgnoreImplicit());
+ if (!cxxConstruct || cxxConstruct->getNumArgs() == 0)
+ return true;
+ if (!isa<clang::StringLiteral>(cxxConstruct->getArg(0)))
+ return true;
+ }
+ }
potentialVars.insert(varDecl);
return true;
@@ -193,6 +220,25 @@ bool StringStatic::VisitMemberExpr(MemberExpr const * expr)
return true;
}
+bool StringStatic::VisitUnaryOperator(UnaryOperator const * expr)
+{
+ if (ignoreLocation(expr))
+ return true;
+ if (expr->getOpcode() != UO_AddrOf)
+ return true;
+ if (this->ignoreLocation(expr))
+ return true;
+ auto const dre = dyn_cast<DeclRefExpr>(
+ expr->getSubExpr()->IgnoreParenImpCasts());
+ if (!dre)
+ return true;
+ auto const vd = dyn_cast<VarDecl>(dre->getDecl());
+ if (!vd)
+ return true;
+ excludeVars.insert(vd->getCanonicalDecl());
+ return true;
+}
+
loplugin::Plugin::Registration<StringStatic> stringstatic("stringstatic");
} // namespace
diff --git a/compilerplugins/clang/test/stringstatic.cxx b/compilerplugins/clang/test/stringstatic.cxx
index 3c26d961c6a8..20326101dc79 100644
--- a/compilerplugins/clang/test/stringstatic.cxx
+++ b/compilerplugins/clang/test/stringstatic.cxx
@@ -15,6 +15,7 @@
static const OUString TEST1 = "xxx";
void f(rtl_uString const*);
+void f(const OUString&);
void test2()
{
@@ -27,3 +28,10 @@ void test2()
static const OUString DATA = "xxx";
f(DATA.pData);
}
+
+void test3()
+{
+ // expected-error@+1 {{rather declare this using OUStringLiteral/OStringLiteral/char[] [loplugin:stringstatic]}}
+ OUString const literal = u"foo";
+ f(literal);
+}
diff --git a/cui/source/dialogs/scriptdlg.cxx b/cui/source/dialogs/scriptdlg.cxx
index a2d798e80a78..f482c540294c 100644
--- a/cui/source/dialogs/scriptdlg.cxx
+++ b/cui/source/dialogs/scriptdlg.cxx
@@ -129,7 +129,7 @@ void SvxScriptOrgDialog::Init( std::u16string_view language )
Sequence< Reference< browse::XBrowseNode > > children;
OUString userStr("user");
- OUString const shareStr("share");
+ static constexpr OUStringLiteral shareStr(u"share");
try
{
diff --git a/dbaccess/source/ui/dlg/dbadmin.cxx b/dbaccess/source/ui/dlg/dbadmin.cxx
index 1744f6929c35..105f9ab6b286 100644
--- a/dbaccess/source/ui/dlg/dbadmin.cxx
+++ b/dbaccess/source/ui/dlg/dbadmin.cxx
@@ -271,14 +271,14 @@ void ODbAdminDialog::createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, rtl::Ref
_rpPool = nullptr;
_rpDefaults = nullptr;
- const OUString sFilterAll( "%" );
+ static constexpr OUStringLiteral sFilterAll( u"%" );
// create and initialize the defaults
_rpDefaults = new std::vector<SfxPoolItem*>(DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1);
SfxPoolItem** pCounter = _rpDefaults->data(); // want to modify this without affecting the out param _rppDefaults
*pCounter++ = new SfxStringItem(DSID_NAME, OUString());
*pCounter++ = new SfxStringItem(DSID_ORIGINALNAME, OUString());
*pCounter++ = new SfxStringItem(DSID_CONNECTURL, OUString());
- *pCounter++ = new OStringListItem(DSID_TABLEFILTER, Sequence< OUString >(&sFilterAll, 1));
+ *pCounter++ = new OStringListItem(DSID_TABLEFILTER, Sequence< OUString >{sFilterAll});
*pCounter++ = new DbuTypeCollectionItem(DSID_TYPECOLLECTION, _pTypeCollection);
*pCounter++ = new SfxBoolItem(DSID_INVALID_SELECTION, false);
*pCounter++ = new SfxBoolItem(DSID_READONLY, false);
diff --git a/dbaccess/source/ui/dlg/dbfindex.cxx b/dbaccess/source/ui/dlg/dbfindex.cxx
index 061486e91201..e5f62afc6be3 100644
--- a/dbaccess/source/ui/dlg/dbfindex.cxx
+++ b/dbaccess/source/ui/dlg/dbfindex.cxx
@@ -254,8 +254,8 @@ void ODbaseIndexDialog::Init()
// first assume for all indexes they're free
- OUString const aIndexExt("ndx");
- OUString const aTableExt("dbf");
+ static constexpr OUStringLiteral aIndexExt(u"ndx");
+ static constexpr OUStringLiteral aTableExt(u"dbf");
std::vector< OUString > aUsedIndexes;
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx
index 590b3f9adce5..40b8c0edd4c8 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -992,7 +992,7 @@ void OCopyTableWizard::loadData( const ICopyTableSourceObject& _rSourceObject,
_rColumns.clear();
OFieldDescription* pActFieldDescr = nullptr;
- OUString const sCreateParam("x");
+ static constexpr OUStringLiteral sCreateParam(u"x");
// ReadOnly-Flag
// On drop no line must be editable.
// On add only empty lines must be editable.
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 4311b501ad16..971e1ecc75e4 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -416,8 +416,8 @@ static bool extractLinks(const uno::Reference< container::XNameAccess >& xLinks,
const sal_uLong nLinks = aNames.getLength();
const OUString* pNames = aNames.getConstArray();
- const OUString aProp_LinkDisplayName( "LinkDisplayName" );
- const OUString aProp_LinkTarget( "com.sun.star.document.LinkTarget" );
+ static constexpr OUStringLiteral aProp_LinkDisplayName( u"LinkDisplayName" );
+ static constexpr OUStringLiteral aProp_LinkTarget( u"com.sun.star.document.LinkTarget" );
bool bIsTarget = false;
for( sal_uLong i = 0; i < nLinks; i++ )
{
diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
index 39ffdf05e318..b774848cc3a4 100644
--- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
@@ -1239,7 +1239,7 @@ void VclMetafileProcessor2D::processTextHierarchyFieldPrimitive2D(
{
// support for FIELD_SEQ_BEGIN, FIELD_SEQ_END and URL. It wraps text primitives (but is not limited to)
// thus do the MetafileAction embedding stuff but just handle recursively.
- const OString aCommentStringCommon("FIELD_SEQ_BEGIN");
+ static constexpr OStringLiteral aCommentStringCommon("FIELD_SEQ_BEGIN");
OUString aURL;
switch (rFieldPrimitive.getType())
@@ -1333,7 +1333,7 @@ void VclMetafileProcessor2D::processTextHierarchyBulletPrimitive2D(
void VclMetafileProcessor2D::processTextHierarchyParagraphPrimitive2D(
const primitive2d::TextHierarchyParagraphPrimitive2D& rParagraphPrimitive)
{
- const OString aCommentString("XTEXT_EOP");
+ static constexpr OStringLiteral aCommentString("XTEXT_EOP");
static bool bSuppressPDFExtOutDevDataSupport(false); // loplugin:constvars:ignore
if (nullptr == mpPDFExtOutDevData || bSuppressPDFExtOutDevDataSupport)
@@ -1495,9 +1495,9 @@ void VclMetafileProcessor2D::processTextSimplePortionPrimitive2D(
rTxt, nTextPosition, rLocale, css::i18n::WordType::ANY_WORD, true));
sal_Int32 nNextSentenceBreak(
rBreakIterator.endOfSentence(rTxt, nTextPosition, rLocale));
- const OString aCommentStringA("XTEXT_EOC");
- const OString aCommentStringB("XTEXT_EOW");
- const OString aCommentStringC("XTEXT_EOS");
+ static constexpr OStringLiteral aCommentStringA("XTEXT_EOC");
+ static constexpr OStringLiteral aCommentStringB("XTEXT_EOW");
+ static constexpr OStringLiteral aCommentStringC("XTEXT_EOS");
for (sal_Int32 i(nTextPosition); i < nTextPosition + nTextLength; i++)
{
diff --git a/fpicker/source/office/fileview.cxx b/fpicker/source/office/fileview.cxx
index 4e3b5e2b50a9..9d8d0f347449 100644
--- a/fpicker/source/office/fileview.cxx
+++ b/fpicker/source/office/fileview.cxx
@@ -1499,7 +1499,7 @@ void SvtFileView_Impl::CreateDisplayText_Impl()
{
::osl::MutexGuard aGuard( maMutex );
- OUString const aDateSep( ", " );
+ static constexpr OUStringLiteral aDateSep( u", " );
for (auto const& elem : maContent)
{
diff --git a/jvmfwk/source/elements.cxx b/jvmfwk/source/elements.cxx
index c48f942ef8e8..ebbf8abf0fd2 100644
--- a/jvmfwk/source/elements.cxx
+++ b/jvmfwk/source/elements.cxx
@@ -177,7 +177,7 @@ NodeJava::NodeJava(Layer layer):
void NodeJava::load()
{
- const OString sExcMsg("[Java framework] Error in function NodeJava::load"
+ static constexpr OStringLiteral sExcMsg("[Java framework] Error in function NodeJava::load"
"(elements.cxx).");
if (SHARED == m_layer)
{
diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx
index 263e3d588121..8327442b0af2 100644
--- a/l10ntools/source/merge.cxx
+++ b/l10ntools/source/merge.cxx
@@ -150,7 +150,7 @@ MergeDataFile::MergeDataFile(
OString sLang;
//Get language id from path
{
- const OString sTransSource("translations/source/");
+ static constexpr OStringLiteral sTransSource("translations/source/");
const sal_Int32 nStart =
sPoFileName.indexOf(sTransSource)+sTransSource.getLength();
const sal_Int32 nCount =
diff --git a/l10ntools/source/propmerge.cxx b/l10ntools/source/propmerge.cxx
index c17519364443..99c2885ce5a3 100644
--- a/l10ntools/source/propmerge.cxx
+++ b/l10ntools/source/propmerge.cxx
@@ -28,7 +28,7 @@ namespace
sal_Int32 lcl_IndexOfUnicode(
std::string_view rSource, const sal_Int32 nFrom = 0 )
{
- const OString sHexDigits = "0123456789abcdefABCDEF";
+ static constexpr std::string_view sHexDigits = "0123456789abcdefABCDEF";
size_t nIndex = rSource.find( "\\u", nFrom );
if( nIndex == std::string_view::npos )
{
@@ -37,7 +37,7 @@ namespace
bool bIsUnicode = true;
for( short nDist = 2; nDist <= 5; ++nDist )
{
- if( sHexDigits.indexOf( rSource[nIndex + nDist] ) == -1 )
+ if( sHexDigits.find( rSource[nIndex + nDist] ) == std::string_view::npos )
{
bIsUnicode = false;
}
diff --git a/oox/qa/unit/export.cxx b/oox/qa/unit/export.cxx
index 9b62dc337c1b..042f0cd4ffaa 100644
--- a/oox/qa/unit/export.cxx
+++ b/oox/qa/unit/export.cxx
@@ -920,7 +920,7 @@ CPPUNIT_TEST_FIXTURE(Test, testFontworkDirectColor)
// Examine the saved markup.
xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml");
- const OString sElement = "//w:txbxContent/w:p/w:r/w:rPr/";
+ static constexpr OStringLiteral sElement = "//w:txbxContent/w:p/w:r/w:rPr/";
// Make sure the fallback in <w:color> has correct value.
assertXPath(pXmlDoc, sElement + "w:color", "val", "2E8B57");
diff --git a/oox/qa/unit/mcgr.cxx b/oox/qa/unit/mcgr.cxx
index 1fb06bb3f1f1..1158da7fc35e 100644
--- a/oox/qa/unit/mcgr.cxx
+++ b/oox/qa/unit/mcgr.cxx
@@ -34,7 +34,7 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testFontworkColorGradient)
// linear gradient with 30deg angle
assertXPath(pXmlDoc, "//a:r/a:rPr/a:gradFill/a:lin", "ang", "3600000");
// three color stops, no transparency
- const OString sPath = "//a:r/a:rPr/a:gradFill/a:gsLst/";
+ static constexpr OStringLiteral sPath = "//a:r/a:rPr/a:gradFill/a:gsLst/";
assertXPath(pXmlDoc, sPath + "a:gs", 3);
assertXPath(pXmlDoc, sPath + "a:gs[1]", "pos", "0");
assertXPath(pXmlDoc, sPath + "a:gs[1]/a:srgbClr", "val", "ff1493");
@@ -57,7 +57,7 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testFontworkColorGradientWord)
// linear gradient with 30deg angle
assertXPath(pXmlDoc, "//w14:lin", "ang", "3600000");
// three color stops, no transparency
- const OString sPath = "//w14:gradFill/w14:gsLst/";
+ static constexpr OStringLiteral sPath = "//w14:gradFill/w14:gsLst/";
assertXPath(pXmlDoc, sPath + "w14:gs", 3);
assertXPath(pXmlDoc, sPath + "w14:gs[1]", "pos", "0");
assertXPath(pXmlDoc, sPath + "w14:gs[1]/w14:srgbClr", "val", "ff1493");
@@ -88,7 +88,7 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testStepCount)
// Without the fix the colors in the sections were wrong. And when opening a file with StepCount
// and saving it immediately to pptx, a continuous gradient might be produced.
- const OString sPath = "//a:gradFill/a:gsLst/";
+ static constexpr OStringLiteral sPath = "//a:gradFill/a:gsLst/";
// The default way of load and save would have produced 2 stops, but we need start stop, end stop
// and 3*2 inner stops.
assertXPath(pXmlDoc, sPath + "a:gs", 8);
@@ -115,7 +115,7 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testAxialColorLinearTrans)
// method will be changed, the test needs to be adjusted.
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPath = "//a:gradFill/a:gsLst/";
+ static constexpr OStringLiteral sPath = "//a:gradFill/a:gsLst/";
assertXPath(pXmlDoc, sPath + "a:gs", 3);
assertXPath(pXmlDoc, sPath + "a:gs[1]", "pos", "0");
assertXPath(pXmlDoc, sPath + "a:gs[1]/a:srgbClr", "val", "00ffff");
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index d4996a6eb9cf..01328fa2576a 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1512,7 +1512,7 @@ OUString GraphicExport::writeToStorage(const Graphic& rGraphic , bool bRelPathTo
xOutStream->writeBytes(Sequence<sal_Int8>(static_cast<const sal_Int8*>(aData), nDataSize));
xOutStream->closeOutput();
- const OString sRelPathToMedia = "media/image";
+ static constexpr OStringLiteral sRelPathToMedia = "media/image";
OString sRelationCompPrefix;
if (bRelPathToMedia)
sRelationCompPrefix = "../";
diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx
index 38d3b9feacd1..5923e13d0def 100644
--- a/oox/source/export/vmlexport.cxx
+++ b/oox/source/export/vmlexport.cxx
@@ -1134,7 +1134,7 @@ void VMLExport::AddLineDimensions( const tools::Rectangle& rRectangle )
if ( mnGroupLevel == 1 )
{
- const OString aPt( "pt" );
+ static constexpr OStringLiteral aPt( "pt" );
aLeft = OString::number( double( rRectangle.Left() ) / 20 ) + aPt;
aTop = OString::number( double( rRectangle.Top() ) / 20 ) + aPt;
aRight = OString::number( double( rRectangle.Right() ) / 20 ) + aPt;
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 5642654a0d2e..a72fb326029c 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -463,7 +463,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf113027)
// Add a formula containing a remote reference, i.e., to another sheet
const ScAddress aScAddress(0, 0, 0);
- const OUString aFormula = "='Sheet 2'!RC";
+ static constexpr OUStringLiteral aFormula = u"='Sheet 2'!RC";
m_pDoc->SetString(aScAddress, aFormula);
// Switch from relative to absolute cell reference
diff --git a/sc/qa/unit/ucalc_formula2.cxx b/sc/qa/unit/ucalc_formula2.cxx
index 20d2326887fc..87f858ff4dc9 100644
--- a/sc/qa/unit/ucalc_formula2.cxx
+++ b/sc/qa/unit/ucalc_formula2.cxx
@@ -3452,7 +3452,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncMDETERM)
m_pDoc->InsertTab(0, "MDETERM_test");
ScAddress aPos(8, 0, 0);
- OUString const aColCodes("ABCDEFGH");
+ static constexpr std::u16string_view aColCodes(u"ABCDEFGH");
OUStringBuffer aFormulaBuffer("=MDETERM(A1:B2)");
for (SCSIZE nSize = 3; nSize <= 8; nSize++)
{
diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx
index 8d31023e4a57..b8fd323aa400 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -1066,7 +1066,7 @@ bool XclExpXmlStream::exportDocument()
}
}
- OUString const workbook = "xl/workbook.xml";
+ static constexpr OUStringLiteral workbook = u"xl/workbook.xml";
const char* pWorkbookContentType = nullptr;
if (mbExportVBA)
{
diff --git a/sc/source/filter/lotus/lotform.cxx b/sc/source/filter/lotus/lotform.cxx
index d20f0a38fcec..5442145dda3b 100644
--- a/sc/source/filter/lotus/lotform.cxx
+++ b/sc/source/filter/lotus/lotform.cxx
@@ -50,13 +50,13 @@ void LotusToSc::DoFunc( DefTokenId eOc, sal_uInt8 nCnt, const char* pExtString )
OString t;
if( pExtString )
{
- const OString s("@<<@123>>");
+ static constexpr std::string_view s("@<<@123>>");
t = pExtString;
sal_Int32 n = t.indexOf(s);
if( n != -1 )
- t = t.copy(n + s.getLength());
+ t = t.copy(n + s.size());
t = comphelper::string::stripEnd(t, '(');
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index d6afd59f5dc3..f484c20b5710 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -1826,7 +1826,7 @@ void ScXMLExport::CopySourceStream( sal_Int32 nStartOffset, sal_Int32 nEndOffset
if ( getExportFlags() & SvXMLExportFlags::PRETTY )
{
- const OString aOutStr("\n ");
+ static constexpr OStringLiteral aOutStr("\n ");
uno::Sequence<sal_Int8> aOutSeq( reinterpret_cast<sal_Int8 const *>(aOutStr.getStr()), aOutStr.getLength() );
xDestStream->writeBytes( aOutSeq );
}
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index 1f5002964684..c2327e41b290 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -1170,8 +1170,7 @@ void SAL_CALL ScXMLImport::startDocument()
xImportInfo.is() ? xImportInfo->getPropertySetInfo() : nullptr);
if (xPropertySetInfo.is())
{
- OUString const sOrganizerMode(
- "OrganizerMode");
+ static constexpr OUStringLiteral sOrganizerMode(u"OrganizerMode");
if (xPropertySetInfo->hasPropertyByName(sOrganizerMode))
{
bool bStyleOnly(false);
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx
index 9140eddf143c..ffc3530f40b6 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -1326,8 +1326,8 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testRoundtripPrstDash)
= { "dash", "dashDot", "dot", "lgDash", "lgDashDot",
"lgDashDotDot", "sysDash", "sysDashDot", "sysDashDotDot", "sysDot" };
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sStart = "/p:sld/p:cSld/p:spTree/p:sp[";
- const OString sEnd = "]/p:spPr/a:ln/a:prstDash";
+ static constexpr OStringLiteral sStart = "/p:sld/p:cSld/p:spTree/p:sp[";
+ static constexpr OStringLiteral sEnd = "]/p:spPr/a:ln/a:prstDash";
for (sal_uInt16 i = 0; i < 10; i++)
{
OString sXmlPath = sStart + OString::number(i + 1) + sEnd;
@@ -1410,7 +1410,8 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf100348FontworkBitmapFill)
// Make sure the fontwork shape has a blip bitmap fill and a colored outline.
// Without the patch, fill and outline were black.
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr");
+ static constexpr OStringLiteral sPathStart(
+ "//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr");
assertXPath(pXmlDoc, sPathStart + "/a:blipFill/a:blip", 1);
assertXPath(pXmlDoc, sPathStart + "/a:ln/a:solidFill/a:srgbClr", "val", "ffbf00");
}
@@ -1423,7 +1424,8 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf100348FontworkGradientGlow)
// Make sure the fontwork shape has a gradient fill and a colored glow.
// Without the patch, fill was black and no glow applied.
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr");
+ static constexpr OStringLiteral sPathStart(
+ "//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr");
assertXPath(pXmlDoc, sPathStart + "/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", "8d281e");
assertXPath(pXmlDoc, sPathStart + "/a:effectLst/a:glow", "rad", "63360");
assertXPath(pXmlDoc, sPathStart + "/a:effectLst/a:glow/a:srgbClr", "val", "ff4500");
@@ -1446,7 +1448,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345GradientLinear)
// Make sure the shape has a lin fill. Without the patch, fill was solid red.
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
+ static constexpr OStringLiteral sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
assertXPath(pXmlDoc, sPathStart + "/a:lin", "ang", "3600000");
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs", 2);
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]", "pos", "25000");
@@ -1465,7 +1467,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345GradientRadial)
// Make sure the shape has transparency. In OOXML alpha means 'opacity' with default
// 100000 for full opak, so only the full transparency with val 0 should be written.
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
+ static constexpr OStringLiteral sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs", 2);
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", "ff0000");
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", 0);
@@ -1504,7 +1506,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf134969TransparencyOnColorGradien
// Make sure the shape has a transparency in gradient stops.
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
+ static constexpr OStringLiteral sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill");
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs", 2);
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", "val", "60000");
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", "60000");
@@ -1516,7 +1518,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testArcTo)
save("Impress Office Open XML");
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPath("//a:custGeom/a:pathLst/a:path/a:arcTo");
+ static constexpr OStringLiteral sPath("//a:custGeom/a:pathLst/a:path/a:arcTo");
assertXPath(pXmlDoc, sPath, "wR", "3");
assertXPath(pXmlDoc, sPath, "hR", "3");
assertXPath(pXmlDoc, sPath, "stAng", "1800000");
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index d4521b1ad87f..db9e19e98662 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -728,10 +728,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testPresetShapesExport)
xmlDocUniquePtr pXmlDocCT = parseExport("ppt/slides/slide1.xml");
const OString sPattern(
"/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom[@prst='_T_']/a:avLst/a:gd[_N_]");
- const OString sT("_T_");
- const OString sN("_N_");
- const OString sPropertyName("name");
- const OString sPropertyFmla("fmla");
+ static constexpr OStringLiteral sT("_T_");
+ static constexpr OStringLiteral sN("_N_");
+ static constexpr OStringLiteral sPropertyName("name");
+ static constexpr OStringLiteral sPropertyFmla("fmla");
size_t i = 0;
while (i < SAL_N_ELEMENTS(sShapeTypeAndValues))
diff --git a/sd/qa/unit/export-tests-ooxml3.cxx b/sd/qa/unit/export-tests-ooxml3.cxx
index bd343497ff59..32a64cc5fba4 100644
--- a/sd/qa/unit/export-tests-ooxml3.cxx
+++ b/sd/qa/unit/export-tests-ooxml3.cxx
@@ -513,7 +513,8 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf100348_convert_Fontwork2TextWarp
// Resulting pptx has to contain the TextWarp shape
xmlDocUniquePtr pXmlDocContent = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:prstTxWarp");
+ static constexpr OStringLiteral sPathStart(
+ "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:prstTxWarp");
assertXPath(pXmlDocContent, sPathStart + "[@prst='textWave1']");
const OString sPathAdj(sPathStart + "/a:avLst/a:gd");
assertXPath(pXmlDocContent, sPathAdj + "[@name='adj1' and @fmla='val 18750']");
@@ -599,7 +600,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf99497_keepAppearanceOfCircleKind
// slide 1 45° -> adj1 = 20493903, 270° -> adj2 = 5400000, <a:noFill/> exists
xmlDocUniquePtr pXmlDocContent1 = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart1("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
+ static constexpr OStringLiteral sPathStart1("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
assertXPath(pXmlDocContent1, sPathStart1 + "[@prst='arc']");
const OString sPathAdj1(sPathStart1 + "/a:avLst/a:gd");
assertXPath(pXmlDocContent1, sPathAdj1 + "[@name='adj1' and @fmla='val 20493903']");
@@ -608,7 +609,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf99497_keepAppearanceOfCircleKind
// slide 2 270° -> adj1 = 5400000, 180° -> adj2 = 10800000
xmlDocUniquePtr pXmlDocContent2 = parseExport("ppt/slides/slide2.xml");
- const OString sPathStart2("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
+ static constexpr OStringLiteral sPathStart2("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
assertXPath(pXmlDocContent2, sPathStart2 + "[@prst='chord']");
const OString sPathAdj2(sPathStart2 + "/a:avLst/a:gd");
assertXPath(pXmlDocContent2, sPathAdj2 + "[@name='adj1' and @fmla='val 5400000']");
@@ -616,7 +617,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf99497_keepAppearanceOfCircleKind
// slide 3 120° -> adj1 = 12600000, 30° -> adj2 = 20946396
xmlDocUniquePtr pXmlDocContent3 = parseExport("ppt/slides/slide3.xml");
- const OString sPathStart3("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
+ static constexpr OStringLiteral sPathStart3("/p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:prstGeom");
assertXPath(pXmlDocContent3, sPathStart3 + "[@prst='pie']");
const OString sPathAdj3(sPathStart3 + "/a:avLst/a:gd");
assertXPath(pXmlDocContent3, sPathAdj3 + "[@name='adj1' and @fmla='val 12600000']");
@@ -965,7 +966,8 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf135843)
save("Impress Office Open XML");
xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml");
- const OString sPathStart("/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl");
+ static constexpr OStringLiteral sPathStart(
+ "/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData/a:tbl");
assertXPath(pXmlDoc, sPathStart + "/a:tr[1]/a:tc[1]/a:tcPr/a:lnL/a:solidFill");
assertXPath(pXmlDoc, sPathStart + "/a:tr[1]/a:tc[1]/a:tcPr/a:lnR/a:solidFill");
assertXPath(pXmlDoc, sPathStart + "/a:tr[1]/a:tc[1]/a:tcPr/a:lnT/a:solidFill");
diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx
index b0dedac84636..2d914c2947b8 100644
--- a/sd/qa/unit/misc-tests.cxx
+++ b/sd/qa/unit/misc-tests.cxx
@@ -475,7 +475,7 @@ void SdMiscTest::testTdf101242_ODF_add_settings()
// Verify, that the saved document still has the ODF attributes
xmlDocUniquePtr pXmlDoc = parseExport("styles.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
- const OString sPathStart(
+ static constexpr OStringLiteral sPathStart(
"/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
assertXPath(pXmlDoc,
sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
@@ -485,10 +485,11 @@ void SdMiscTest::testTdf101242_ODF_add_settings()
// Verify, that the saved document has got the items in settings.xml
xmlDocUniquePtr pXmlDoc2 = parseExport("settings.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
- const OString sPathStart2("/office:document-settings/office:settings/"
- "config:config-item-set[@config:name='ooo:view-settings']/"
- "config:config-item-map-indexed[@config:name='Views']/"
- "config:config-item-map-entry");
+ static constexpr OStringLiteral sPathStart2(
+ "/office:document-settings/office:settings/"
+ "config:config-item-set[@config:name='ooo:view-settings']/"
+ "config:config-item-map-indexed[@config:name='Views']/"
+ "config:config-item-map-entry");
// Value is a bitfield with first Byte in order '* * * measurelines controls backgroundobjects background layout'
// The first three bits depend on initialization and may change. The values in file are Base64 encoded.
OUString sBase64;
@@ -529,7 +530,7 @@ void SdMiscTest::testTdf101242_ODF_no_settings()
// Verify, that the saved document still has the ODF attributes
xmlDocUniquePtr pXmlDoc = parseExport("styles.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
- const OString sPathStart(
+ static constexpr OStringLiteral sPathStart(
"/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
assertXPath(pXmlDoc,
sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
@@ -539,10 +540,11 @@ void SdMiscTest::testTdf101242_ODF_no_settings()
// Verify, that the saved document has no layer items in settings.xml
xmlDocUniquePtr pXmlDoc2 = parseExport("settings.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
- const OString sPathStart2("/office:document-settings/office:settings/"
- "config:config-item-set[@config:name='ooo:view-settings']/"
- "config:config-item-map-indexed[@config:name='Views']/"
- "config:config-item-map-entry");
+ static constexpr OStringLiteral sPathStart2(
+ "/office:document-settings/office:settings/"
+ "config:config-item-set[@config:name='ooo:view-settings']/"
+ "config:config-item-map-indexed[@config:name='Views']/"
+ "config:config-item-map-entry");
assertXPath(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='VisibleLayers']", 0);
assertXPath(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='PrintableLayers']", 0);
assertXPath(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='LockedLayers']", 0);
@@ -566,7 +568,7 @@ void SdMiscTest::testTdf101242_settings_keep()
// Verify, that the saved document has the ODF attributes
xmlDocUniquePtr pXmlDoc = parseExport("styles.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
- const OString sPathStart(
+ static constexpr OStringLiteral sPathStart(
"/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
assertXPath(pXmlDoc,
sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
@@ -576,10 +578,11 @@ void SdMiscTest::testTdf101242_settings_keep()
// Verify, that the saved document still has the items in settings.xml
xmlDocUniquePtr pXmlDoc2 = parseExport("settings.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
- const OString sPathStart2("/office:document-settings/office:settings/"
- "config:config-item-set[@config:name='ooo:view-settings']/"
- "config:config-item-map-indexed[@config:name='Views']/"
- "config:config-item-map-entry");
+ static constexpr OStringLiteral sPathStart2(
+ "/office:document-settings/office:settings/"
+ "config:config-item-set[@config:name='ooo:view-settings']/"
+ "config:config-item-map-indexed[@config:name='Views']/"
+ "config:config-item-map-entry");
// Value is a bitfield with first Byte in order '* * * measurelines controls backgroundobjects background layout'
// The first three bits depend on initialization and may change. The values in file are Base64 encoded.
OUString sBase64;
@@ -621,7 +624,7 @@ void SdMiscTest::testTdf101242_settings_remove()
// Verify, that the saved document has the ODF attributes
xmlDocUniquePtr pXmlDoc = parseExport("styles.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'styles.xml'", pXmlDoc);
- const OString sPathStart(
+ static constexpr OStringLiteral sPathStart(
"/office:document-styles/office:master-styles/draw:layer-set/draw:layer");
assertXPath(pXmlDoc,
sPathStart + "[@draw:name='backgroundobjects' and @draw:protected='true']");
@@ -631,10 +634,11 @@ void SdMiscTest::testTdf101242_settings_remove()
// Verify, that the saved document has no layer items in settings.xml
xmlDocUniquePtr pXmlDoc2 = parseExport("settings.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc2);
- const OString sPathStart2("/office:document-settings/office:settings/"
- "config:config-item-set[@config:name='ooo:view-settings']/"
- "config:config-item-map-indexed[@config:name='Views']/"
- "config:config-item-map-entry");
+ static constexpr OStringLiteral sPathStart2(
+ "/office:document-settings/office:settings/"
+ "config:config-item-set[@config:name='ooo:view-settings']/"
+ "config:config-item-map-indexed[@config:name='Views']/"
+ "config:config-item-map-entry");
assertXPath(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='VisibleLayers']", 0);
assertXPath(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='PrintableLayers']", 0);
assertXPath(pXmlDoc2, sPathStart2 + "/config:config-item[@config:name='LockedLayers']", 0);
@@ -666,10 +670,11 @@ void SdMiscTest::testTdf119392()
// Verify correct bit order in bitfield in the config items in settings.xml
xmlDocUniquePtr pXmlDoc = parseExport("settings.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'settings.xml'", pXmlDoc);
- const OString sPathStart("/office:document-settings/office:settings/"
- "config:config-item-set[@config:name='ooo:view-settings']/"
- "config:config-item-map-indexed[@config:name='Views']/"
- "config:config-item-map-entry");
+ static constexpr OStringLiteral sPathStart(
+ "/office:document-settings/office:settings/"
+ "config:config-item-set[@config:name='ooo:view-settings']/"
+ "config:config-item-map-indexed[@config:name='Views']/"
+ "config:config-item-map-entry");
// First Byte is in order 'V-L -P- V-- measurelines controls backgroundobjects background layout'
// Bits need to be: visible=10111111=0xbf=191 printable=01011111=0x5f=95 locked=10000000=0x80=128
// The values in file are Base64 encoded.
@@ -766,7 +771,8 @@ void SdMiscTest::testTdf98839_ShearVFlipH()
save("draw8");
xmlDocUniquePtr pXmlDoc = parseExport("content.xml");
CPPUNIT_ASSERT_MESSAGE("Failed to get 'content.xml'", pXmlDoc);
- const OString sPathStart("/office:document-content/office:body/office:drawing/draw:page");
+ static constexpr OStringLiteral sPathStart(
+ "/office:document-content/office:body/office:drawing/draw:page");
assertXPath(pXmlDoc, sPathStart);
const OUString sTransform = getXPath(pXmlDoc, sPathStart + "/draw:custom-shape", "transform");
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index 060ec181b60e..2980336bcea1 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -951,7 +951,7 @@ static bool impl_showOfflineHelp(const OUString& rURL, weld::Widget* pDialogPare
// Get a html tempfile (for the flatpak case, create it in XDG_CACHE_HOME instead of /tmp for
// technical reasons, so that it can be accessed by the browser running outside the sandbox):
- OUString const aExtension(".html");
+ static constexpr OUStringLiteral aExtension(u".html");
OUString * parent = nullptr;
if (flatpak::isFlatpak() && !flatpak::createTemporaryHtmlDirectory(&parent)) {
return false;
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 0f9df1ccd124..fea914e0b7ba 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -443,7 +443,7 @@ OUString ModelData_Impl::GetDocServiceName()
void ModelData_Impl::CheckInteractionHandler()
{
- const OUString sInteractionHandler {"InteractionHandler"};
+ static constexpr OUStringLiteral sInteractionHandler {u"InteractionHandler"};
::comphelper::SequenceAsHashMap::const_iterator aInteractIter =
m_aMediaDescrHM.find( sInteractionHandler );
diff --git a/svl/qa/unit/items/test_IndexedStyleSheets.cxx b/svl/qa/unit/items/test_IndexedStyleSheets.cxx
index 5c12acc250a5..f5014a261e13 100644
--- a/svl/qa/unit/items/test_IndexedStyleSheets.cxx
+++ b/svl/qa/unit/items/test_IndexedStyleSheets.cxx
@@ -146,7 +146,7 @@ void IndexedStyleSheetsTest::StyleSheetsCanBeRetrievedByTheirName()
void IndexedStyleSheetsTest::KnowsThatItStoresAStyleSheet()
{
- OUString const name1("name1");
+ static constexpr OUStringLiteral name1(u"name1");
rtl::Reference<SfxStyleSheetBase> sheet1(new MockedStyleSheet(name1));
rtl::Reference<SfxStyleSheetBase> sheet2(new MockedStyleSheet(name1));
rtl::Reference<SfxStyleSheetBase> sheet3(new MockedStyleSheet("name2"));
diff --git a/svtools/source/misc/langhelp.cxx b/svtools/source/misc/langhelp.cxx
index 793e3f7d0e10..afc6830fde54 100644
--- a/svtools/source/misc/langhelp.cxx
+++ b/svtools/source/misc/langhelp.cxx
@@ -16,6 +16,7 @@
#include <i18nlangtag/mslangid.hxx>
#include <officecfg/Office/Common.hxx>
#include <officecfg/System.hxx>
+#include <o3tl/string_view.hxx>
#include <org/freedesktop/PackageKit/SyncDbusSessionHelper.hpp>
#include <rtl/ustring.hxx>
#include <svtools/langhelp.hxx>
@@ -117,12 +118,12 @@ OUString getInstalledLocaleForSystemUILanguage(const css::uno::Sequence<OUString
{
// Get the list of langpacks that this build was configured to include
std::vector<OUString> aPackages;
- OUString const sAvailableLocales(WITH_LANG);
+ static constexpr std::u16string_view sAvailableLocales(u"" WITH_LANG);
std::vector<OUString> aAvailable;
sal_Int32 nIndex = 0;
do
{
- aAvailable.emplace_back(sAvailableLocales.getToken(0, ' ', nIndex));
+ aAvailable.emplace_back(o3tl::getToken(sAvailableLocales, 0, ' ', nIndex));
}
while (nIndex >= 0);
// See which one matches the desired ui locale
diff --git a/svx/source/svdraw/svdtrans.cxx b/svx/source/svdraw/svdtrans.cxx
index ad44aa230e17..563b268f67d9 100644
--- a/svx/source/svdraw/svdtrans.cxx
+++ b/svx/source/svdraw/svdtrans.cxx
@@ -686,7 +686,7 @@ void SdrFormatter::Undirty()
OUString SdrFormatter::GetStr(tools::Long nVal) const
{
- const OUString aNullCode("0");
+ static constexpr OUStringLiteral aNullCode(u"0");
if(!nVal)
{
@@ -753,7 +753,7 @@ OUString SdrFormatter::GetStr(tools::Long nVal) const
{
// insert comma char (decimal separator)
// remove trailing zeros
- while(nC > 0 && aStr[aStr.getLength() - 1] == aNullCode[0])
+ while(nC > 0 && aStr[aStr.getLength() - 1] == aNullCode.getStr()[0])
{
aStr.remove(aStr.getLength() - 1, 1);
nC--;
@@ -787,7 +787,7 @@ OUString SdrFormatter::GetStr(tools::Long nVal) const
if(aStr.isEmpty())
aStr.append(aNullCode);
- if(bNeg && (aStr.getLength() > 1 || aStr[0] != aNullCode[0]))
+ if(bNeg && (aStr.getLength() > 1 || aStr[0] != aNullCode.getStr()[0]))
{
aStr.insert(0, "-");
}
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index a0345e712714..a5450d29b673 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -3971,11 +3971,11 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testDateContentControl)
CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testAuthorField)
{
SwXTextDocument* pXTextDocument = createDoc();
- const OUString sAuthor("Abcd Xyz");
+ static constexpr OUStringLiteral sAuthor(u"Abcd Xyz");
uno::Sequence<beans::PropertyValue> aPropertyValues1(comphelper::InitPropertySequence(
{
- {".uno:Author", uno::Any(sAuthor)},
+ {".uno:Author", uno::Any(OUString(sAuthor))},
}));
pXTextDocument->initializeForTiledRendering(aPropertyValues1);
@@ -4010,10 +4010,10 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testAuthorField)
CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testSavedAuthorField)
{
SwXTextDocument* pXTextDocument = createDoc("savedauthorfield.odt");
- const OUString sAuthor("XYZ ABCD");
+ static constexpr OUStringLiteral sAuthor(u"XYZ ABCD");
uno::Sequence<beans::PropertyValue> aPropertyValues1(comphelper::InitPropertySequence(
{
- {".uno:Author", uno::Any(sAuthor)},
+ {".uno:Author", uno::Any(OUString(sAuthor))},
}));
pXTextDocument->initializeForTiledRendering(aPropertyValues1);
diff --git a/sw/qa/extras/uiwriter/uiwriter6.cxx b/sw/qa/extras/uiwriter/uiwriter6.cxx
index dec2f5708470..80eecbaa5edd 100644
--- a/sw/qa/extras/uiwriter/uiwriter6.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter6.cxx
@@ -1440,7 +1440,8 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testInconsistentBookmark)
// load only content.xml
xmlDocUniquePtr pXmlDoc = parseExport("content.xml");
- const OString aPath("/office:document-content/office:body/office:text/text:p");
+ static constexpr OStringLiteral aPath(
+ "/office:document-content/office:body/office:text/text:p");
const int pos1 = getXPathPosition(pXmlDoc, aPath, "bookmark-start");
const int pos2 = getXPathPosition(pXmlDoc, aPath, "control");
diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx
index 26805b281adc..498a89054880 100644
--- a/sw/source/core/crsr/findtxt.cxx
+++ b/sw/source/core/crsr/findtxt.cxx
@@ -1132,7 +1132,7 @@ std::optional<OUString> ReplaceBackReferences(const i18nutil::SearchOptions2& rS
OUString aReplaceStr( rSearchOpt.replaceString );
if (bParaEnd)
{
- OUString const aStr("\\n");
+ static constexpr OUStringLiteral aStr(u"\\n");
aResult.subRegExpressions = 1;
aResult.startOffset = { 0 };
aResult.endOffset = { aStr.getLength() };
diff --git a/test/source/screenshot_test.cxx b/test/source/screenshot_test.cxx
index e699072f37ac..8246db7f8492 100644
--- a/test/source/screenshot_test.cxx
+++ b/test/source/screenshot_test.cxx
@@ -247,7 +247,7 @@ void ScreenshotTest::processDialogBatchFile(std::u16string_view rFile)
const OUString aURL(aDirectories.getURLFromSrc(rFile));
SvFileStream aStream(aURL, StreamMode::READ);
OString aNextUIFile;
- const OString aComment("#");
+ static constexpr OStringLiteral aComment("#");
while (aStream.ReadLine(aNextUIFile))
{
diff --git a/ucb/source/core/ucbstore.cxx b/ucb/source/core/ucbstore.cxx
index a06e430c3586..52b3a8b4a341 100644
--- a/ucb/source/core/ucbstore.cxx
+++ b/ucb/source/core/ucbstore.cxx
@@ -681,10 +681,10 @@ void PropertySetRegistry::renamePropertySet( const OUString& rOldKey,
aOldValuesKey += "/";
- OUString const aHandleKey("/Handle");
- OUString const aValueKey("/Value");
- OUString const aStateKey("/State");
- OUString const aAttrKey("/Attributes");
+ static constexpr OUStringLiteral aHandleKey(u"/Handle");
+ static constexpr OUStringLiteral aValueKey(u"/Value");
+ static constexpr OUStringLiteral aStateKey(u"/State");
+ static constexpr OUStringLiteral aAttrKey(u"/Attributes");
for ( const OUString& rPropName : aElems )
{
diff --git a/unotools/source/config/fontcfg.cxx b/unotools/source/config/fontcfg.cxx
index beeba82030d0..26ceda82d5fa 100644
--- a/unotools/source/config/fontcfg.cxx
+++ b/unotools/source/config/fontcfg.cxx
@@ -994,11 +994,11 @@ void FontSubstConfiguration::readLocaleSubst( const OUString& rBcp47 ) const
it->second.aSubstAttributes.reserve( nFonts );
// strings for subst retrieval, construct only once
- OUString const aSubstFontsStr ( "SubstFonts" );
- OUString const aSubstFontsMSStr ( "SubstFontsMS" );
- OUString const aSubstWeightStr ( "FontWeight" );
- OUString const aSubstWidthStr ( "FontWidth" );
- OUString const aSubstTypeStr ( "FontType" );
+ static constexpr OUStringLiteral aSubstFontsStr ( u"SubstFonts" );
+ static constexpr OUStringLiteral aSubstFontsMSStr( u"SubstFontsMS" );
+ static constexpr OUStringLiteral aSubstWeightStr ( u"FontWeight" );
+ static constexpr OUStringLiteral aSubstWidthStr ( u"FontWidth" );
+ static constexpr OUStringLiteral aSubstTypeStr ( u"FontType" );
for( const OUString& rFontName : aFonts )
{
Reference< XNameAccess > xFont;
diff --git a/vcl/qa/cppunit/text.cxx b/vcl/qa/cppunit/text.cxx
index 4301c89bfadd..4d55b1bd91d5 100644
--- a/vcl/qa/cppunit/text.cxx
+++ b/vcl/qa/cppunit/text.cxx
@@ -518,7 +518,7 @@ CPPUNIT_TEST_FIXTURE(VclTextTest, testImplLayoutArgs_PrepareFallback_precalculat
ScopedVclPtrInstance<VirtualDevice> pVirDev;
pVirDev->SetFont(aFont);
- const OString sUTF8String(u8"Тхе яуицк\n ыумпед овер");
+ static constexpr OStringLiteral sUTF8String(u8"Тхе яуицк\n ыумпед овер");
const OUString sTestString(OUString::fromUtf8(sUTF8String));
std::unique_ptr<SalLayout> pLayout
= pVirDev->ImplLayout(sTestString, 0, sTestString.getLength(), Point(0, 0), 0, {}, {},
diff --git a/vcl/source/filter/FilterConfigCache.cxx b/vcl/source/filter/FilterConfigCache.cxx
index 9f3668ccc5a6..fd3ce0cea8a7 100644
--- a/vcl/source/filter/FilterConfigCache.cxx
+++ b/vcl/source/filter/FilterConfigCache.cxx
@@ -119,13 +119,13 @@ static Reference< XInterface > openConfig(const char* sPackage)
void FilterConfigCache::ImplInit()
{
- OUString const STYPE ( "Type" );
- OUString const SUINAME ( "UIName" );
- OUString const SFLAGS ( "Flags" );
- OUString const SMEDIATYPE ( "MediaType" );
- OUString const SEXTENSIONS ( "Extensions" );
- OUString const SFORMATNAME ( "FormatName" );
- OUString const SREALFILTERNAME ( "RealFilterName" );
+ static constexpr OUStringLiteral STYPE ( u"Type" );
+ static constexpr OUStringLiteral SUINAME ( u"UIName" );
+ static constexpr OUStringLiteral SFLAGS ( u"Flags" );
+ static constexpr OUStringLiteral SMEDIATYPE ( u"MediaType" );
+ static constexpr OUStringLiteral SEXTENSIONS ( u"Extensions" );
+ static constexpr OUStringLiteral SFORMATNAME ( u"FormatName" );
+ static constexpr OUStringLiteral SREALFILTERNAME ( u"RealFilterName" );
// get access to config
Reference< XNameAccess > xTypeAccess ( openConfig("types" ), UNO_QUERY );
diff --git a/vcl/source/filter/ipdf/pdfdocument.cxx b/vcl/source/filter/ipdf/pdfdocument.cxx
index be6375d10675..53d3d37b4e86 100644
--- a/vcl/source/filter/ipdf/pdfdocument.cxx
+++ b/vcl/source/filter/ipdf/pdfdocument.cxx
@@ -112,11 +112,11 @@ sal_uInt32 PDFDocument::GetNextSignature()
continue;
const OString& rValue = pT->GetValue();
- const OString aPrefix = "Signature";
+ static constexpr std::string_view aPrefix = "Signature";
if (!rValue.startsWith(aPrefix))
continue;
- nRet = std::max(nRet, o3tl::toUInt32(rValue.subView(aPrefix.getLength())));
+ nRet = std::max(nRet, o3tl::toUInt32(rValue.subView(aPrefix.size())));
}
return nRet + 1;
diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
index 3a7359df22e4..26d8100f7e2b 100644
--- a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
@@ -719,12 +719,12 @@ void OOXMLDocumentImpl::resolveEmbeddingsStream(const OOXMLStream::Pointer_t& pS
xRelationshipAccess.set(dynamic_cast<OOXMLStreamImpl&>(*pStream).accessDocumentStream(), uno::UNO_QUERY);
if (xRelationshipAccess.is())
{
- OUString const sChartType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart");
- OUString const sChartTypeStrict("http://purl.oclc.org/ooxml/officeDocument/relationships/chart");
- OUString const sFootersType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer");
- OUString const sFootersTypeStrict("http://purl.oclc.org/ooxml/officeDocument/relationships/footer");
- OUString const sHeaderType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/header");
- OUString const sHeaderTypeStrict("http://purl.oclc.org/ooxml/officeDocument/relationships/header");
+ static constexpr OUStringLiteral sChartType(u"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart");
+ static constexpr OUStringLiteral sChartTypeStrict(u"http://purl.oclc.org/ooxml/officeDocument/relationships/chart");
+ static constexpr OUStringLiteral sFootersType(u"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer");
+ static constexpr OUStringLiteral sFootersTypeStrict(u"http://purl.oclc.org/ooxml/officeDocument/relationships/footer");
+ static constexpr OUStringLiteral sHeaderType(u"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header");
+ static constexpr OUStringLiteral sHeaderTypeStrict(u"http://purl.oclc.org/ooxml/officeDocument/relationships/header");
bool bFound = false;
bool bHeaderFooterFound = false;
diff --git a/writerperfect/source/impress/KeynoteImportFilter.cxx b/writerperfect/source/impress/KeynoteImportFilter.cxx
index ccd93e3d2aaa..abf7d21e4055 100644
--- a/writerperfect/source/impress/KeynoteImportFilter.cxx
+++ b/writerperfect/source/impress/KeynoteImportFilter.cxx
@@ -215,8 +215,8 @@ KeynoteImportFilter::detect(css::uno::Sequence<css::beans::PropertyValue>& Descr
if (bUCBContentChanged)
pDescriptor[nUCBContentLocation].Value <<= xContent;
- const OUString sTypeName("impress_AppleKeynote");
- pDescriptor[nTypeNameLocation].Value <<= sTypeName;
+ static constexpr OUStringLiteral sTypeName(u"impress_AppleKeynote");
+ pDescriptor[nTypeNameLocation].Value <<= OUString(sTypeName);
return sTypeName;
}
diff --git a/writerperfect/source/writer/EPUBPackage.cxx b/writerperfect/source/writer/EPUBPackage.cxx
index c08b60ad70ed..ba8bac1d91ce 100644
--- a/writerperfect/source/writer/EPUBPackage.cxx
+++ b/writerperfect/source/writer/EPUBPackage.cxx
@@ -43,7 +43,7 @@ EPUBPackage::EPUBPackage(uno::Reference<uno::XComponentContext> xContext,
mxOutputStream.set(
mxStorage->openStreamElementByHierarchicalName("mimetype", embed::ElementModes::READWRITE),
uno::UNO_QUERY);
- const OString aMimeType("application/epub+zip");
+ static constexpr OStringLiteral aMimeType("application/epub+zip");
uno::Sequence<sal_Int8> aData(reinterpret_cast<const sal_Int8*>(aMimeType.getStr()),
aMimeType.getLength());
mxOutputStream->writeBytes(aData);
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
index 36e0a8454ebf..1202d797972e 100644
--- a/xmloff/source/core/xmlexp.cxx
+++ b/xmloff/source/core/xmlexp.cxx
@@ -866,7 +866,7 @@ uno::Sequence< OUString > SAL_CALL SvXMLExport::getSupportedServiceNames( )
OUString
SvXMLExport::EnsureNamespace(OUString const & i_rNamespace)
{
- OUString const aPreferredPrefix("gen");
+ static constexpr OUStringLiteral aPreferredPrefix(u"gen");
OUString sPrefix;
sal_uInt16 nKey( GetNamespaceMap_().GetKeyByName( i_rNamespace ) );
if( XML_NAMESPACE_UNKNOWN == nKey )
diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx
index 6e556ac84a31..ebeae2a62258 100644
--- a/xmloff/source/draw/sdxmlimp.cxx
+++ b/xmloff/source/draw/sdxmlimp.cxx
@@ -375,7 +375,7 @@ void SAL_CALL SdXMLImport::initialize( const uno::Sequence< uno::Any >& aArgumen
{
SvXMLImport::initialize( aArguments );
- OUString const sOrganizerMode("OrganizerMode");
+ static constexpr OUStringLiteral sOrganizerMode(u"OrganizerMode");
bool bStyleOnly(false);
css::beans::PropertyValue aPropValue;
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index a7f91d9326ef..70c95e31c055 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -3524,20 +3524,21 @@ void XMLShapeExport::ImpExportMediaShape(
auto pPluginOBJ = std::make_unique<SvXMLElementExport>(mrExport, XML_NAMESPACE_DRAW, XML_PLUGIN, !( nFeatures & XMLShapeExportFlags::NO_WS ), true);
// export parameters
- const OUString aFalseStr( "false" ), aTrueStr( "true" );
+ static constexpr OUStringLiteral aFalseStr( u"false" );
+ static constexpr OUStringLiteral aTrueStr( u"true" );
bool bLoop = false;
static constexpr OUStringLiteral aLoopStr( u"Loop" );
xPropSet->getPropertyValue( aLoopStr ) >>= bLoop;
mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME, aLoopStr );
- mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_VALUE, bLoop ? aTrueStr : aFalseStr );
+ mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_VALUE, bLoop ? OUString(aTrueStr) : OUString(aFalseStr) );
delete new SvXMLElementExport( mrExport, XML_NAMESPACE_DRAW, XML_PARAM, false, true );
bool bMute = false;
static constexpr OUStringLiteral aMuteStr( u"Mute" );
xPropSet->getPropertyValue( aMuteStr ) >>= bMute;
mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME, aMuteStr );
- mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_VALUE, bMute ? aTrueStr : aFalseStr );
+ mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_VALUE, bMute ? OUString(aTrueStr) : OUString(aFalseStr) );
delete new SvXMLElementExport( mrExport, XML_NAMESPACE_DRAW, XML_PARAM, false, true );
sal_Int16 nVolumeDB = 0;
diff --git a/xmloff/source/text/XMLIndexTOCContext.cxx b/xmloff/source/text/XMLIndexTOCContext.cxx
index 85ea6ecf231f..2e3f1e3a475b 100644
--- a/xmloff/source/text/XMLIndexTOCContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCContext.cxx
@@ -188,9 +188,9 @@ void XMLIndexTOCContext::startFastElement(
// preliminaries
#ifndef DBG_UTIL
- OUString const sMarker(" ");
+ static constexpr OUStringLiteral sMarker(u" ");
#else
- OUString const sMarker("Y");
+ static constexpr OUStringLiteral sMarker(u"Y");
#endif
rtl::Reference<XMLTextImportHelper> rImport =
GetImport().GetTextImport();
diff --git a/xmloff/source/text/txtstyli.cxx b/xmloff/source/text/txtstyli.cxx
index bd21e35ad6a2..fa78300b730f 100644
--- a/xmloff/source/text/txtstyli.cxx
+++ b/xmloff/source/text/txtstyli.cxx
@@ -197,7 +197,7 @@ void XMLTextStyleContext::CreateAndInsert( bool bOverwrite )
Reference< XPropertySetInfo > xPropSetInfo =
xPropSet->getPropertySetInfo();
- OUString const sIsAutoUpdate("IsAutoUpdate");
+ static constexpr OUStringLiteral sIsAutoUpdate(u"IsAutoUpdate");
if( xPropSetInfo->hasPropertyByName( sIsAutoUpdate ) )
{
xPropSet->setPropertyValue( sIsAutoUpdate, Any(m_isAutoUpdate) );
@@ -264,7 +264,7 @@ void XMLTextStyleContext::Finish( bool bOverwrite )
Reference< XPropertySetInfo > xPropSetInfo =
xPropSet->getPropertySetInfo();
- OUString const sOutlineLevel("OutlineLevel");
+ static constexpr OUStringLiteral sOutlineLevel(u"OutlineLevel");
if( xPropSetInfo->hasPropertyByName( sOutlineLevel ))
{
if (m_nOutlineLevel >= 0)
@@ -274,7 +274,7 @@ void XMLTextStyleContext::Finish( bool bOverwrite )
}
// Consider set empty list style (#i69523#)
- OUString const sNumberingStyleName("NumberingStyleName");
+ static constexpr OUStringLiteral sNumberingStyleName(u"NumberingStyleName");
if (m_bListStyleSet &&
xPropSetInfo->hasPropertyByName( sNumberingStyleName ) )
{
@@ -362,7 +362,7 @@ void XMLTextStyleContext::Finish( bool bOverwrite )
const Reference < XNameContainer >& rPageStyles =
GetImport().GetTextImport()->GetPageStyles();
- OUString const sPageDescName("PageDescName");
+ static constexpr OUStringLiteral sPageDescName(u"PageDescName");
if( ( sDisplayName.isEmpty() ||
(rPageStyles.is() &&
rPageStyles->hasByName( sDisplayName )) ) &&