compilerplugins/clang/ostr.cxx                      |   90 -----
 compilerplugins/clang/test/ostr.cxx                 |   40 --
 compilerplugins/clang/test/stringconstant.cxx       |    2 
 compilerplugins/clang/test/stringliteralvar.cxx     |    6 
 compilerplugins/clang/test/stringstatic.cxx         |    7 
 compilerplugins/clang/test/stringview.cxx           |    2 
 extensions/source/propctrlr/eventhandler.cxx        |    2 
 include/rtl/ustring.hxx                             |   40 --
 oox/source/drawingml/fontworkhelpers.cxx            |    4 
 sal/qa/osl/file/osl_old_test_file.cxx               |   32 +-
 sal/qa/rtl/strings/nonconstarray.cxx                |   10 
 sal/qa/rtl/strings/test_oustring_stringliterals.cxx |   32 +-
 sw/qa/extras/indexing/SearchResultLocatorTest.cxx   |    2 
 sw/source/core/text/porexp.cxx                      |    4 
 sw/source/filter/ww8/ww8par.cxx                     |    2 
 unotools/source/misc/fontdefs.cxx                   |  313 ++++++++++----------
 vcl/qa/cppunit/lifecycle.cxx                        |    2 
 vcl/qa/cppunit/pdfexport/pdfexport.cxx              |    2 
 18 files changed, 223 insertions(+), 369 deletions(-)

New commits:
commit f99bee8103ad82dac2e53e114527399c4af5485c
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Tue Oct 10 13:41:35 2023 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Wed Oct 11 09:19:35 2023 +0200

    Delete OUString UTF-16 string literal ctor/assignment op
    
    ...that have been made unused by 7ef3d937415185ef66e32dd3043783eddcd03db5
    "loplugin:ostr: Rewrite some uses of O[U]String to use ""_ostr/u""_ustr
    literals".  (And which means we can remove the relevant code from that 
plugin
    again.)
    
    (This also found a handful of remaining uses that had been hard for the 
plugin
    to discover, along the lines of
    
    > std::map<OUString, int> m = {{u"foo", 0}};
    
    being represented by a
    
    > DeclStmt 0xdaca578 <line:103:5, col:50>
    > `-VarDecl 0xdac9150 <col:5, col:49> col:29 s11 'std::map<OUString, 
int>':'std::map<rtl::OUString, int>' cinit destroyed
    >   `-ExprWithCleanups 0xdaca548 <col:35, col:49> 'std::map<OUString, 
int>':'std::map<rtl::OUString, int>'
    >     `-CXXConstructExpr 0xdaca508 <col:35, col:49> 'std::map<OUString, 
int>':'std::map<rtl::OUString, int>' 'void (initializer_list<value_type>, const 
std::less<rtl::OUString> &, const allocator_type &)' list std::initializer_list
    >       |-CXXStdInitializerListExpr 0xdaca480 <col:35, col:49> 
'initializer_list<value_type>':'std::initializer_list<std::pair<const 
rtl::OUString, int>>'
    >       | `-MaterializeTemporaryExpr 0xdaca468 <col:35, col:49> 'const 
std::pair<const rtl::OUString, int>[1]' xvalue
    >       |   `-CXXBindTemporaryExpr 0xdaca448 <col:35, col:49> 'const 
std::pair<const rtl::OUString, int>[1]' (CXXTemporary 0xdaca448)
    >       |     `-InitListExpr 0xdac9df0 <col:35, col:49> 'const 
std::pair<const rtl::OUString, int>[1]'
    >       |       `-CXXConstructExpr 0xdaca408 <col:36, col:48> 'const 
std::pair<const rtl::OUString, int>' 'void (const char16_t (&)[4], int &&) 
noexcept(_S_nothrow_constructible<const char16_t (&)[4], int>())' list
    >       |         |-StringLiteral 0xdac91b8 <col:38> 'const char16_t[4]' 
lvalue u"foo"
    >       |         `-MaterializeTemporaryExpr 0xdaca3f0 <col:46> 'int' xvalue
    >       |           `-IntegerLiteral 0xdac91d8 <col:46> 'int' 0
    >       |-CXXDefaultArgExpr 0xdaca498 <<invalid sloc>> 'const 
std::less<rtl::OUString>':'const std::less<rtl::OUString>' lvalue
    >       `-CXXDefaultArgExpr 0xdaca4b8 <<invalid sloc>> 'const 
allocator_type':'const std::allocator<std::pair<const rtl::OUString, int>>' 
lvalue
    
    Clang AST.)
    
    Change-Id: I496fe9d4d5e1a033cb7b27b4e04b303f8ddbed4a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157756
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/compilerplugins/clang/ostr.cxx b/compilerplugins/clang/ostr.cxx
index 13fd5df0b29a..462916641421 100644
--- a/compilerplugins/clang/ostr.cxx
+++ b/compilerplugins/clang/ostr.cxx
@@ -97,7 +97,7 @@ public:
         {
             return true;
         }
-        if (!(compat::isOrdinary(e2) || e2->isUTF16()))
+        if (!compat::isOrdinary(e2))
         {
             assert(!e2->isUTF8()); //TODO
             return true;
@@ -148,7 +148,7 @@ public:
         {
             return true;
         }
-        if (!(e2->isUTF16() || compiler.getDiagnosticOpts().VerifyDiagnostics))
+        if (!compiler.getDiagnosticOpts().VerifyDiagnostics)
         {
             //TODO: Leave rewriting these uses of ordinary string literals for 
later (but already
             // cover them when verifying CompilerTest_compilerplugins_clang):
@@ -160,8 +160,7 @@ public:
                 Lexer::MeasureTokenLength(l3, compiler.getSourceManager(), 
compiler.getLangOpts()));
             l4 = l4.getLocWithOffset(
                 Lexer::MeasureTokenLength(l4, compiler.getSourceManager(), 
compiler.getLangOpts()));
-            if ((e2->isUTF16() ? removeText(l1, delta(l1, l2))
-                               : replaceText(l1, delta(l1, l2), macroBegin ? 
"u\"\" " : "u"))
+            if (replaceText(l1, delta(l1, l2), macroBegin ? "u\"\" " : "u")
                 && replaceText(l3, delta(l3, l4), macroEnd ? " \"\"_ustr" : 
"_ustr"))
             {
                 return true;
@@ -169,88 +168,9 @@ public:
         }
         report(DiagnosticsEngine::Warning,
                "use a _ustr user-defined string literal instead of 
constructing an instance of %0 "
-               "from %select{an ordinary|a UTF-16}1 string literal",
+               "from an ordinary string literal",
                expr->getExprLoc())
-            << expr->getType().getLocalUnqualifiedType() << e2->isUTF16() << 
expr->getSourceRange();
-        return true;
-    }
-
-    bool VisitCXXOperatorCallExpr(CXXOperatorCallExpr const* expr)
-    {
-        if (ignoreLocation(expr))
-        {
-            return true;
-        }
-        if (expr->getOperator() != OO_Equal)
-        {
-            return true;
-        }
-        if (!loplugin::TypeCheck(expr->getArg(0)->getType())
-                 .Class("OUString")
-                 .Namespace("rtl")
-                 .GlobalNamespace())
-        {
-            return true;
-        }
-        auto const e2 = 
dyn_cast<clang::StringLiteral>(expr->getArg(1)->IgnoreParenImpCasts());
-        if (e2 == nullptr)
-        {
-            return true;
-        }
-        if (!e2->isUTF16())
-        {
-            return true;
-        }
-        if (rewriter != nullptr)
-        {
-            if (insertTextAfterToken(e2->getEndLoc(), "_ustr"))
-            {
-                return true;
-            }
-        }
-        report(DiagnosticsEngine::Warning,
-               "use a _ustr user-defined string literal instead of assigning 
from a UTF-16 string"
-               " literal",
-               expr->getExprLoc())
-            << expr->getSourceRange();
-        return true;
-    }
-
-    bool VisitCXXMemberCallExpr(CXXMemberCallExpr const* expr)
-    {
-        if (ignoreLocation(expr))
-        {
-            return true;
-        }
-        if (!loplugin::DeclCheck(expr->getMethodDecl()).Operator(OO_Equal))
-        {
-            return true;
-        }
-        if (!loplugin::TypeCheck(expr->getObjectType())
-                 .Class("OUString")
-                 .Namespace("rtl")
-                 .GlobalNamespace())
-        {
-            return true;
-        }
-        auto const e2 = 
dyn_cast<clang::StringLiteral>(expr->getArg(0)->IgnoreParenImpCasts());
-        if (e2 == nullptr)
-        {
-            return true;
-        }
-        if (!e2->isUTF16())
-        {
-            return true;
-        }
-        if (rewriter != nullptr)
-        {
-            //TODO
-        }
-        report(DiagnosticsEngine::Warning,
-               "use a _ustr user-defined string literal instead of assigning 
from a UTF-16 string"
-               " literal",
-               expr->getExprLoc())
-            << expr->getSourceRange();
+            << expr->getType().getLocalUnqualifiedType() << 
expr->getSourceRange();
         return true;
     }
 
diff --git a/compilerplugins/clang/test/ostr.cxx 
b/compilerplugins/clang/test/ostr.cxx
index 8f705a8f7215..6a09728f3ff6 100644
--- a/compilerplugins/clang/test/ostr.cxx
+++ b/compilerplugins/clang/test/ostr.cxx
@@ -49,50 +49,10 @@ void f()
     // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from an ordinary string 
literal [loplugin:ostr]}}
     f((("foo")));
 
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    OUString s5 = u"foo";
-    (void)s5;
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    OUString s6 = ((u"foo"));
-    (void)s6;
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    OUString s7(u"foo");
-    (void)s7;
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    OUString s8(((u"foo")));
-    (void)s8;
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    f(OUString(u"foo"));
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    f(((OUString(((u"foo"))))));
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    f(OUString(u"foo", rtl::libreoffice_internal::Dummy()));
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    f(((OUString(((u"foo")), rtl::libreoffice_internal::Dummy()))));
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    f(u"foo");
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    f(((u"foo")));
-
-    OUString s9;
-    // expected-error@+1 {{use a _ustr user-defined string literal instead of 
assigning from a UTF-16 string literal [loplugin:ostr]}}
-    s9 = u"foo";
-    // expected-error@+1 {{use a _ustr user-defined string literal instead of 
assigning from a UTF-16 string literal [loplugin:ostr]}}
-    s9 = ((u"foo"));
-    // expected-error@+1 {{use a _ustr user-defined string literal instead of 
assigning from a UTF-16 string literal [loplugin:ostr]}}
-    s9.operator=(u"foo");
-    // expected-error@+1 {{use a _ustr user-defined string literal instead of 
assigning from a UTF-16 string literal [loplugin:ostr]}}
-    s9.operator=(((u"foo")));
-
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    S s10 = { u"foo" };
-
     // Only generate one warning here, not two, for a macro argument used 
twice in the macro's
     // expansion:
     // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from an ordinary string 
literal [loplugin:ostr]}}
     M("foo");
-    // expected-error-re@+1 {{use a _ustr user-defined string literal instead 
of constructing an instance of '{{(rtl::)?}}OUString' from a UTF-16 string 
literal [loplugin:ostr]}}
-    M(u"foo");
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/compilerplugins/clang/test/stringconstant.cxx 
b/compilerplugins/clang/test/stringconstant.cxx
index ada901b877ce..1c9fbf192f6d 100644
--- a/compilerplugins/clang/test/stringconstant.cxx
+++ b/compilerplugins/clang/test/stringconstant.cxx
@@ -139,8 +139,6 @@ int main() {
     OUString().getStr();
     // expected-error-re@+1 {{in call of 'rtl::OUString::getStr', replace 
'{{(rtl::)?}}OUString' constructed from a string literal directly with a UTF-16 
string literal}}
     OUString("foo").getStr();
-    // expected-error-re@+1 {{in call of 'rtl::OUString::getStr', replace 
'{{(rtl::)?}}OUString' constructed from a string literal directly with the 
string literal}}
-    OUString(u"foo").getStr();
 }
 
 
diff --git a/compilerplugins/clang/test/stringliteralvar.cxx 
b/compilerplugins/clang/test/stringliteralvar.cxx
index d0fdcedb0668..6ea7c184c644 100644
--- a/compilerplugins/clang/test/stringliteralvar.cxx
+++ b/compilerplugins/clang/test/stringliteralvar.cxx
@@ -39,15 +39,15 @@ struct S3
 void f3()
 {
     // expected-note-re@+1 {{first passed into a '{{(rtl::)?}}OUString' 
constructor here [loplugin:stringliteralvar]}}
-    f(S3::literal);
+    f(OUString(S3::literal, 3));
 }
 
 std::vector<OUString> f4()
 {
     // expected-error-re@+1 {{change type of variable 'literal' from constant 
character array ('const char16_t{{ ?}}[4]') to OUStringLiteral 
[loplugin:stringliteralvar]}}
     static constexpr char16_t literal[] = u"foo";
-    // expected-note@+1 {{first passed into a 'rtl::OUString' constructor here 
[loplugin:stringliteralvar]}}
-    return { literal };
+    // expected-note-re@+1 {{first passed into a '{{(rtl::)?}}OUString' 
constructor here [loplugin:stringliteralvar]}}
+    return { OUString(literal, 3) };
 }
 
 void f5()
diff --git a/compilerplugins/clang/test/stringstatic.cxx 
b/compilerplugins/clang/test/stringstatic.cxx
index 20326101dc79..bfe92b69f598 100644
--- a/compilerplugins/clang/test/stringstatic.cxx
+++ b/compilerplugins/clang/test/stringstatic.cxx
@@ -28,10 +28,3 @@ 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/compilerplugins/clang/test/stringview.cxx 
b/compilerplugins/clang/test/stringview.cxx
index b7284cd5ed57..a8df9dd6b179 100644
--- a/compilerplugins/clang/test/stringview.cxx
+++ b/compilerplugins/clang/test/stringview.cxx
@@ -173,7 +173,7 @@ void f5(char const* s1, sal_Int32 n1, char16_t const* s2, 
sal_Int32 n2, OString
     // expected-error-re@+1 {{instead of an '{{(rtl::)?}}OUString' constructed 
from a 'const char{{ ?}}[4]', pass a 'std::u16string_view' 
[loplugin:stringview]}}
     call_view(OUString("foo"));
     // expected-error-re@+1 {{instead of an '{{(rtl::)?}}OUString' constructed 
from a 'const char16_t{{ ?}}[4]', pass a 'std::u16string_view' 
[loplugin:stringview]}}
-    call_view(OUString(u"foo"));
+    call_view(OUString(u"foo", 3));
     // expected-error-re@+1 {{instead of an '{{(rtl::)?}}OUString' constructed 
from a 'const char', pass a 'std::u16string_view' (or an 'rtl::OUStringChar') 
[loplugin:stringview]}}
     call_view(OUString(*s1));
     // expected-error-re@+1 {{instead of an '{{(rtl::)?}}OUString' constructed 
from a 'const char16_t', pass a 'std::u16string_view' (or an 
'rtl::OUStringChar') [loplugin:stringview]}}
diff --git a/extensions/source/propctrlr/eventhandler.cxx 
b/extensions/source/propctrlr/eventhandler.cxx
index 3646cf09b6cd..7e4ca0747cb4 100644
--- a/extensions/source/propctrlr/eventhandler.cxx
+++ b/extensions/source/propctrlr/eventhandler.cxx
@@ -137,7 +137,7 @@ namespace pcr
     {
         #define DESCRIBE_EVENT( map, listener, method, id_postfix ) \
             map.emplace(  \
-                u"" method, \
+                u"" method##_ustr, \
                 EventDescription( ++nEventId, u"com.sun.star." listener, u"" 
method, RID_STR_EVT_##id_postfix, HID_EVT_##id_postfix, UID_BRWEVT_##id_postfix 
) )
 
         bool lcl_getEventDescriptionForMethod( const OUString& _rMethodName, 
EventDescription& _out_rDescription )
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index 764ad026bdff..fc88942c8277 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -378,26 +378,15 @@ public:
     }
 
 #if defined LIBO_INTERNAL_ONLY
-    /** @overload @since LibreOffice 5.3 */
+    // Rather use a u""_ustr literal (but don't remove this entirely, to avoid 
implicit support for
+    // it via std::u16string_view from kicking in):
     template<typename T> OUString(
-        T & literal,
+        T &,
         typename libreoffice_internal::ConstCharArrayDetector<
             T, libreoffice_internal::Dummy>::TypeUtf16
-                = libreoffice_internal::Dummy()):
-        pData(nullptr)
-    {
-        assert(
-            libreoffice_internal::ConstCharArrayDetector<T>::isValid(literal));
-        if (libreoffice_internal::ConstCharArrayDetector<T>::length == 0) {
-            rtl_uString_new(&pData);
-        } else {
-            rtl_uString_newFromStr_WithLength(
-                &pData,
-                libreoffice_internal::ConstCharArrayDetector<T>::toPointer(
-                    literal),
-                libreoffice_internal::ConstCharArrayDetector<T>::length);
-        }
-    }
+                = libreoffice_internal::Dummy()) = delete;
+
+    OUString(OUStringChar c): pData(nullptr) { 
rtl_uString_newFromStr_WithLength(&pData, &c.c, 1); }
 #endif
 
 #if defined LIBO_INTERNAL_ONLY && defined RTL_STRING_UNITTEST
@@ -648,20 +637,15 @@ public:
     }
 
 #if defined LIBO_INTERNAL_ONLY
-    /** @overload @since LibreOffice 5.3 */
+    // Rather assign from a u""_ustr literal (but don't remove this entirely, 
to avoid implicit
+    // support for it via std::u16string_view from kicking in):
     template<typename T>
     typename
         libreoffice_internal::ConstCharArrayDetector<T, OUString &>::TypeUtf16
-    operator =(T & literal) {
-        if (libreoffice_internal::ConstCharArrayDetector<T>::length == 0) {
-            rtl_uString_new(&pData);
-        } else {
-            rtl_uString_newFromStr_WithLength(
-                &pData,
-                libreoffice_internal::ConstCharArrayDetector<T>::toPointer(
-                    literal),
-                libreoffice_internal::ConstCharArrayDetector<T>::length);
-        }
+    operator =(T &) = delete;
+
+    OUString & operator =(OUStringChar c) {
+        rtl_uString_newFromStr_WithLength(&pData, &c.c, 1);
         return *this;
     }
 
diff --git a/oox/source/drawingml/fontworkhelpers.cxx 
b/oox/source/drawingml/fontworkhelpers.cxx
index 3aacfaf378b1..d58c513bedb6 100644
--- a/oox/source/drawingml/fontworkhelpers.cxx
+++ b/oox/source/drawingml/fontworkhelpers.cxx
@@ -180,8 +180,8 @@ void FontworkHelpers::putCustomShapeIntoTextPathMode(
     // Apply new properties
     uno::Sequence<beans::PropertyValue> 
aPropertyValues(comphelper::InitPropertySequence(
         { { sTextPath, uno::Any(true) },
-          { u"TextPathMode", 
uno::Any(drawing::EnhancedCustomShapeTextPathMode_PATH) },
-          { u"ScaleX", uno::Any(bScaleX) } }));
+          { u"TextPathMode"_ustr, 
uno::Any(drawing::EnhancedCustomShapeTextPathMode_PATH) },
+          { u"ScaleX"_ustr, uno::Any(bScaleX) } }));
     aGeomPropVec.push_back(comphelper::makePropertyValue(sTextPath, 
aPropertyValues));
 
     aGeomPropVec.push_back(comphelper::makePropertyValue(sPresetTextWarp, 
sMSPresetType));
diff --git a/sal/qa/osl/file/osl_old_test_file.cxx 
b/sal/qa/osl/file/osl_old_test_file.cxx
index 7b0ef6e6dd25..bb37e8f3384a 100644
--- a/sal/qa/osl/file/osl_old_test_file.cxx
+++ b/sal/qa/osl/file/osl_old_test_file.cxx
@@ -49,27 +49,27 @@ public:
 };
 
 const std::pair<OUString, OUString> aSource1[] = {
-    { u"a", u"file:///" TEST_VOLUME "bla/a" },
+    { u"a"_ustr, u"file:///" TEST_VOLUME "bla/a"_ustr },
     ///TODO: check if last slash must be omitted in resolved path.
-//    { u"a/", u"file:///" TEST_VOLUME "bla/a" },
-    { u"../a", u"file:///" TEST_VOLUME "a" },
-    { u"a/..", u"file:///" TEST_VOLUME "bla/" },
-    { u"a/../b", u"file:///" TEST_VOLUME "bla/b" },
-    { u"..", u"file:///" TEST_VOLUME "" },
-    { u"a/b/c/d", u"file:///" TEST_VOLUME "bla/a/b/c/d" },
-    { u"a/./c", u"file:///" TEST_VOLUME "bla/a/c" },
-    { u"a/././c", u"file:///" TEST_VOLUME "bla/a/c" },
-    { u"file:///" TEST_VOLUME "bla1/blub", u"file:///" TEST_VOLUME "bla1/blub" 
},
+//    { u"a/"_ustr, u"file:///" TEST_VOLUME "bla/a"_ustr },
+    { u"../a"_ustr, u"file:///" TEST_VOLUME "a"_ustr },
+    { u"a/.."_ustr, u"file:///" TEST_VOLUME "bla/"_ustr },
+    { u"a/../b"_ustr, u"file:///" TEST_VOLUME "bla/b"_ustr },
+    { u".."_ustr, u"file:///" TEST_VOLUME ""_ustr },
+    { u"a/b/c/d"_ustr, u"file:///" TEST_VOLUME "bla/a/b/c/d"_ustr },
+    { u"a/./c"_ustr, u"file:///" TEST_VOLUME "bla/a/c"_ustr },
+    { u"a/././c"_ustr, u"file:///" TEST_VOLUME "bla/a/c"_ustr },
+    { u"file:///" TEST_VOLUME "bla1/blub"_ustr, u"file:///" TEST_VOLUME 
"bla1/blub"_ustr },
 };
 
 const std::pair<OUString, OUString> aSource2[] = {
-    { u"a", u"file:///" TEST_VOLUME "bla/blubs/schnubbel/a" },
+    { u"a"_ustr, u"file:///" TEST_VOLUME "bla/blubs/schnubbel/a"_ustr },
     ///TODO: check if last slash must be omitted in resolved path.
-//    { u"a/", u"file:///" TEST_VOLUME "bla/blubs/schnubbel/a" },
-    { u"../a", u"file:///" TEST_VOLUME "bla/blubs/a" },
-    { u"../../a", u"file:///" TEST_VOLUME "bla/a" },
-    { u"../../../a", u"file:///" TEST_VOLUME "a" },
-    { u"../../../a/b/c/d", u"file:///" TEST_VOLUME "a/b/c/d" },
+//    { u"a/"_ustr, u"file:///" TEST_VOLUME "bla/blubs/schnubbel/a"_ustr },
+    { u"../a"_ustr, u"file:///" TEST_VOLUME "bla/blubs/a"_ustr },
+    { u"../../a"_ustr, u"file:///" TEST_VOLUME "bla/a"_ustr },
+    { u"../../../a"_ustr, u"file:///" TEST_VOLUME "a"_ustr },
+    { u"../../../a/b/c/d"_ustr, u"file:///" TEST_VOLUME "a/b/c/d"_ustr },
 };
 
 void oldtestfile::test_file_001()
diff --git a/sal/qa/rtl/strings/nonconstarray.cxx 
b/sal/qa/rtl/strings/nonconstarray.cxx
index d759049582d0..167b427cfbec 100644
--- a/sal/qa/rtl/strings/nonconstarray.cxx
+++ b/sal/qa/rtl/strings/nonconstarray.cxx
@@ -85,13 +85,9 @@ private:
         CPPUNIT_ASSERT_EQUAL(sal_Int32(1), OUString(s.a).getLength());
         // Ideally, the below would work the same as the above.  However, the 
const reference makes
         // the ConstCharArrayDetector instead of the NonConstCharArrayDetector 
kick in, so that the
-        // call to OUString(r.a) would fire the 
ConstCharArrayDetector<T>::isValid assert (and in
-        // NDEBUG builds the CPPUNIT_ASSERT_EQUAL would fail with 3 != 1)::
-        if ((false))
-        {
-            S const& r = s;
-            CPPUNIT_ASSERT_EQUAL(sal_Int32(1), OUString(r.a).getLength());
-        }
+        // call to OUString(r.a) would pick the deleted ConstCharArrayDetector 
overload:
+        //  S const& r = s;
+        //  CPPUNIT_ASSERT_EQUAL(sal_Int32(1), OUString(r.a).getLength());
     }
 
     void testP2266R3()
diff --git a/sal/qa/rtl/strings/test_oustring_stringliterals.cxx 
b/sal/qa/rtl/strings/test_oustring_stringliterals.cxx
index a7041c75959b..25bc346fb495 100644
--- a/sal/qa/rtl/strings/test_oustring_stringliterals.cxx
+++ b/sal/qa/rtl/strings/test_oustring_stringliterals.cxx
@@ -339,9 +339,9 @@ void test::oustring::StringLiterals::checkOUStringChar()
 }
 
 void test::oustring::StringLiterals::checkUtf16() {
-    rtl::OUString s1(u"abc");
+    rtl::OUString s1(u"abc"_ustr);
     CPPUNIT_ASSERT_EQUAL(rtl::OUString("abc"), s1);
-    s1 = u"de";
+    s1 = u"de"_ustr;
     CPPUNIT_ASSERT_EQUAL(rtl::OUString("de"), s1);
     s1 += u"fde";
     CPPUNIT_ASSERT_EQUAL(rtl::OUString("defde"), s1);
@@ -351,13 +351,13 @@ void test::oustring::StringLiterals::checkUtf16() {
     CPPUNIT_ASSERT(s1.matchIgnoreAsciiCase(u"FDE", 2));
     rtl::OUString s2;
     CPPUNIT_ASSERT(s1.startsWith(u"de", &s2));
-    CPPUNIT_ASSERT_EQUAL(rtl::OUString(u"fde"), s2);
+    CPPUNIT_ASSERT_EQUAL(u"fde"_ustr, s2);
     CPPUNIT_ASSERT(s1.startsWithIgnoreAsciiCase(u"DEFD", &s2));
-    CPPUNIT_ASSERT_EQUAL(rtl::OUString(u"e"), s2);
+    CPPUNIT_ASSERT_EQUAL(u"e"_ustr, s2);
     CPPUNIT_ASSERT(s1.endsWith(u"de", &s2));
-    CPPUNIT_ASSERT_EQUAL(rtl::OUString(u"def"), s2);
+    CPPUNIT_ASSERT_EQUAL(u"def"_ustr, s2);
     CPPUNIT_ASSERT(s1.endsWithIgnoreAsciiCase(u"EFDE", &s2));
-    CPPUNIT_ASSERT_EQUAL(rtl::OUString(u"d"), s2);
+    CPPUNIT_ASSERT_EQUAL(u"d"_ustr, s2);
     CPPUNIT_ASSERT(bool(s1 == u"defde"));
     CPPUNIT_ASSERT(bool(u"defde" == s1));
     CPPUNIT_ASSERT(s1 != u"abc");
@@ -366,32 +366,32 @@ void test::oustring::StringLiterals::checkUtf16() {
     CPPUNIT_ASSERT_EQUAL(sal_Int32(3), s1.lastIndexOf(u"de"));
     sal_Int32 i = 0;
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfde"),
+        u"abcfde"_ustr,
         s1.replaceFirst(u"de", rtl::OUString("abc"), &i));
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfde"),
+        u"abcfde"_ustr,
         s1.replaceFirst(rtl::OUString("de"), u"abc", &i));
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfde"), s1.replaceFirst(u"de", u"abc", &i));
+        u"abcfde"_ustr, s1.replaceFirst(u"de", u"abc", &i));
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfde"), s1.replaceFirst(u"de", "abc", &i));
+        u"abcfde"_ustr, s1.replaceFirst(u"de", "abc", &i));
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfde"), s1.replaceFirst("de", u"abc", &i));
+        u"abcfde"_ustr, s1.replaceFirst("de", u"abc", &i));
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfabc"), s1.replaceAll(u"de", rtl::OUString("abc")));
+        u"abcfabc"_ustr, s1.replaceAll(u"de", rtl::OUString("abc")));
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfabc"), s1.replaceAll(rtl::OUString("de"), u"abc"));
+        u"abcfabc"_ustr, s1.replaceAll(rtl::OUString("de"), u"abc"));
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfabc"), s1.replaceAll(u"de", u"abc"));
+        u"abcfabc"_ustr, s1.replaceAll(u"de", u"abc"));
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfabc"), s1.replaceAll(u"de", "abc"));
+        u"abcfabc"_ustr, s1.replaceAll(u"de", "abc"));
     CPPUNIT_ASSERT_EQUAL(
-        rtl::OUString(u"abcfabc"), s1.replaceAll("de", u"abc"));
+        u"abcfabc"_ustr, s1.replaceAll("de", u"abc"));
     CPPUNIT_ASSERT_EQUAL(
         rtl::OUString("abcdef"), rtl::OUString(rtl::OUString("abc") + u"def"));
     CPPUNIT_ASSERT_EQUAL(
diff --git a/sw/qa/extras/indexing/SearchResultLocatorTest.cxx 
b/sw/qa/extras/indexing/SearchResultLocatorTest.cxx
index b953ea3e100a..7265cc2c1e53 100644
--- a/sw/qa/extras/indexing/SearchResultLocatorTest.cxx
+++ b/sw/qa/extras/indexing/SearchResultLocatorTest.cxx
@@ -133,7 +133,7 @@ void 
SearchResultLocatorTest::testSearchResultLocatorForSdrObjects()
 
     sw::search::SearchResultLocator aLocator(pDoc);
     std::vector<sw::search::SearchIndexData> aDataVector;
-    aDataVector.emplace_back(sw::search::NodeType::CommonNode, 
SwNodeOffset(1), u"Circle");
+    aDataVector.emplace_back(sw::search::NodeType::CommonNode, 
SwNodeOffset(1), u"Circle"_ustr);
 
     sw::search::LocationResult aResult = aLocator.find(aDataVector);
     CPPUNIT_ASSERT_EQUAL(size_t(1), aResult.maRectangles.size());
diff --git a/sw/source/core/text/porexp.cxx b/sw/source/core/text/porexp.cxx
index 8fc8d7b17fc9..56e3d7c34265 100644
--- a/sw/source/core/text/porexp.cxx
+++ b/sw/source/core/text/porexp.cxx
@@ -219,8 +219,8 @@ void SwBlankPortion::Paint( const SwTextPaintInfo &rInf ) 
const
             // Draw tilde or degree sign
             OUString aMarker = 
(rInf.GetTextFrame()->GetDoc().getIDocumentSettingAccess()
                                     
.get(DocumentSettingId::USE_VARIABLE_WIDTH_NBSP)
-                                  ? u"~"
-                                  : u"°");
+                                  ? u"~"_ustr
+                                  : u"°"_ustr);
 
             SwPosSize aMarkerSize(rInf.GetTextSize(aMarker));
             Point aPos(rInf.GetPos());
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 863e7f326cfa..c6c4563dd8cd 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -2016,7 +2016,7 @@ void SwWW8ImplReader::ImportDopTypography(const 
WW8DopTypography &rTypo)
             {
                 i18n::ForbiddenCharacters 
aForbidden(OUString(+rTypo.m_rgxchFPunct),
                     OUString(+rTypo.m_rgxchLPunct));
-                    // unary + makes sure not to accidentally call the
+                    // unary + makes sure not to accidentally call the deleted
                     // OUString(ConstCharArrayDetector<...>::TypeUtf16) ctor 
that takes the full
                     // m_rgxchFPunct, m_rgxchLPunct arrays with embedded NULs, 
instead of just the
                     // prefix leading up to the first NUL
diff --git a/unotools/source/misc/fontdefs.cxx 
b/unotools/source/misc/fontdefs.cxx
index 1b14ae3f728e..43b9e0554377 100644
--- a/unotools/source/misc/fontdefs.cxx
+++ b/unotools/source/misc/fontdefs.cxx
@@ -132,163 +132,166 @@ OUString GetEnglishSearchFontName(std::u16string_view 
rInName)
     {
         typedef std::unordered_map<OUString, OUString> FontNameDictionary;
         static FontNameDictionary const aDictionary = {
-            {u"\uBC14\uD0D5", "batang"},
-            {u"\uBC14\uD0D5\uCCB4", "batangche"},
-            {u"\uAD81\uC11C", "gungshu"},
-            {u"\uAD81\uC11C\uCCB4", "gungshuche"},
-            {u"\uAD74\uB9BC", "gulim"},
-            {u"\uAD74\uB9BC\uCCB4", "gulimche"},
-            {u"\uB3CB\uC6C0", "dotum"},
-            {u"\uB3CB\uC6C0\uCCB4", "dotumche"},
-            {u"\u5B8B\u4F53", "simsun"},
-            {u"\u65B0\u5B8B\u4F53", "nsimsun"},
-            {u"\u9ED1\u4F53", "simhei"},
-            {u"\u6977\u4F53", "simkai"},
-            {u"\u4E2D\u6613\u5B8B\u4F53", "zycjksun"},
-            {u"\u4E2D\u6613\u9ED1\u4F53", "zycjkhei"},
-            {u"\u4E2D\u6613\u6977\u4F53", "zycjkkai"},
-            {u"\u65B9\u6B63\u9ED1\u4F53", "fzhei"},
-            {u"\u65B9\u6B63\u6977\u4F53", "fzkai"},
-            {u"\u65B9\u6B63\u5B8B\u4E00", "fzsong"},
-            {u"\u65B9\u6B63\u4E66\u5B8B", "fzshusong"},
-            {u"\u65B9\u6B63\u4EFF\u5B8B", "fzfangsong"},
+            {u"\uBC14\uD0D5"_ustr, "batang"},
+            {u"\uBC14\uD0D5\uCCB4"_ustr, "batangche"},
+            {u"\uAD81\uC11C"_ustr, "gungshu"},
+            {u"\uAD81\uC11C\uCCB4"_ustr, "gungshuche"},
+            {u"\uAD74\uB9BC"_ustr, "gulim"},
+            {u"\uAD74\uB9BC\uCCB4"_ustr, "gulimche"},
+            {u"\uB3CB\uC6C0"_ustr, "dotum"},
+            {u"\uB3CB\uC6C0\uCCB4"_ustr, "dotumche"},
+            {u"\u5B8B\u4F53"_ustr, "simsun"},
+            {u"\u65B0\u5B8B\u4F53"_ustr, "nsimsun"},
+            {u"\u9ED1\u4F53"_ustr, "simhei"},
+            {u"\u6977\u4F53"_ustr, "simkai"},
+            {u"\u4E2D\u6613\u5B8B\u4F53"_ustr, "zycjksun"},
+            {u"\u4E2D\u6613\u9ED1\u4F53"_ustr, "zycjkhei"},
+            {u"\u4E2D\u6613\u6977\u4F53"_ustr, "zycjkkai"},
+            {u"\u65B9\u6B63\u9ED1\u4F53"_ustr, "fzhei"},
+            {u"\u65B9\u6B63\u6977\u4F53"_ustr, "fzkai"},
+            {u"\u65B9\u6B63\u5B8B\u4E00"_ustr, "fzsong"},
+            {u"\u65B9\u6B63\u4E66\u5B8B"_ustr, "fzshusong"},
+            {u"\u65B9\u6B63\u4EFF\u5B8B"_ustr, "fzfangsong"},
             // Attention: this fonts includes the wrong encoding vector - so 
we double the names with correct and wrong encoding
             // First one is the GB-Encoding (we think the correct one), second 
is the big5 encoded name
-            {u"m\u7B80\u9ED1", "mhei"},
-            {u"m\u6F60\u7AAA", "mhei"},
-            {u"m\u7B80\u6977\u566C", "mkai"},
-            {u"m\u6F60\u7FF1\u628E", "mkai"},
-            {u"m\u7B80\u5B8B", "msong"},
-            {u"m\u6F60\u51BC", "msong"},
-            {u"m\u7B80\u592B\u5B8B", "cfangsong"},
-            {u"m\u6F60\u6E98\u51BC", "cfangsong"},
-            {u"\u7D30\u660E\u9AD4", "mingliu"},
-            {u"\u65B0\u7D30\u660E\u9AD4", "pmingliu"},
-            {u"\u6865", "hei"},
-            {u"\u6B61", "kai"},
-            {u"\u6D69\u6E67", "ming"},
-            {u"ms\u30B4\u30B7\u30C3\u30AF", "msgothic"},
-            {u"msp\u30B4\u30B7\u30C3\u30AF", "mspgothic"},
-            {u"ms\u660E\u671D", "msmincho"},
-            {u"msp\u660E\u671D", "mspmincho"},
-            {u"\u5FAE\u8EDF\u6B63\u9ED1\u9AD4", "microsoftjhenghei"},
-            {u"\u5FAE\u8F6F\u96C5\u9ED1", "microsoftyahei"},
-            {u"\u30e1\u30a4\u30ea\u30aa", "meiryo"},
-            {u"hg\u660E\u671Dl", "hgminchol"},
-            {u"hg\u30B4\u30B7\u30C3\u30AFb", "hggothicb"},
-            {u"hgp\u660E\u671Dl", "hgpminchol"},
-            {u"hgp\u30B4\u30B7\u30C3\u30AFb", "hgpgothicb"},
-            {u"hg\u660E\u671Dlsun", "hgmincholsun"},
-            {u"hg\u30B4\u30B7\u30C3\u30AFbsun", "hggothicbsun"},
-            {u"hgp\u660E\u671Dlsun", "hgpmincholsun"},
-            {u"hgp\u30B4\u30B7\u30C3\u30AFbsun", "hgpgothicbsun"},
-            {u"hg\u5E73\u6210\u660E\u671D\u4F53", "hgheiseimin"},
-            {u"hg\u5E73\u6210\u660E\u671D\u4F53w3x12", "hgheiseimin"},
-            {u"ipa\u660E\u671D", "ipamincho"},
-            {u"ipap\u660E\u671D", "ipapmincho"},
-            {u"ipa\u30B4\u30B7\u30C3\u30AF", "ipagothic"},
-            {u"ipap\u30B4\u30B7\u30C3\u30AF", "ipapgothic"},
-            {u"ipaui\u30B4\u30B7\u30C3\u30AF", "ipauigothic"},
-            {u"takao\u660E\u671D", "takaomincho"},
-            {u"takaop\u660E\u671D", "takaopmincho"},
-            {u"takao\u30B4\u30B7\u30C3\u30AF", "takaogothic"},
-            {u"takaop\u30B4\u30B7\u30C3\u30AF", "takaopgothic"},
-            {u"\u3055\u3056\u306A\u307F\u660E\u671D", "sazanamimincho"},
-            {u"\u3055\u3056\u306A\u307F\u30B4\u30B7\u30C3\u30AF", 
"sazanamigothic"},
-            {u"\u6771\u98A8\u660E\u671D", "kochimincho"},
-            {u"\u6771\u98A8\u30B4\u30B7\u30C3\u30AF", "kochigothic"},
-            {u"\uC36C\uB3CB\uC6C0", "sundotum"},
-            {u"\uC36C\uAD74\uB9BC", "sungulim"},
-            {u"\uC36C\uBC14\uD0D5", "sunbatang"},
-            {u"\uBC31\uBB35\uB3CB\uC6C0", "baekmukdotum"},
-            {u"\uBC31\uBB35\uAD74\uB9BC", "baekmukgulim"},
-            {u"\uBC31\uBB35\uBC14\uD0D5", "baekmukbatang"},
-            {u"\u65B9\u6B63\u9ED1\u4F53", "fzheiti"},
-            {u"\u65B9\u6B63\u9ED1\u9AD4", "fzheiti"},
-            {u"\u65B9\u6B63\u6977\u4F53", "fzkaiti"},
-            {u"\u65B9\u6B63\u6977\u9AD4", "fzkaitib"},
-            {u"\u65B9\u6B63\u660E\u9AD4", "fzmingtib"},
-            {u"\u65B9\u6B63\u5B8B\u4F53", "fzsongti"},
-            {u"hy\uACAC\uBA85\uC870", "hymyeongjoextra"},
-            {u"hy\uC2E0\uBA85\uC870", "hysinmyeongjomedium"},
-            {u"hy\uC911\uACE0\uB515", "hygothicmedium"},
-            {u"hy\uADF8\uB798\uD53Dm", "hygraphicmedium"},
-            {u"hy\uADF8\uB798\uD53D", "hygraphic"},
-            {u"\uC0C8\uAD74\uB9BC", "newgulim"},
-            {u"\uC36C\uAD81\uC11C", "sungungseo"},
-            {u"hy\uAD81\uC11Cb", "hygungsobold"},
-            {u"hy\uAD81\uC11C", "hygungso"},
-            {u"\uC36C\uD5E4\uB4DC\uB77C\uC778", "sunheadline"},
-            {u"hy\uD5E4\uB4DC\uB77C\uC778m", "hyheadlinemedium"},
-            {u"hy\uD5E4\uB4DC\uB77C\uC778", "hyheadline"},
-            {u"\uD734\uBA3C\uC61B\uCCB4", "yetr"},
-            {u"hy\uACAC\uACE0\uB515", "hygothicextra"},
-            {u"\uC36C\uBAA9\uD310", "sunmokpan"},
-            {u"\uC36C\uC5FD\uC11C", "sunyeopseo"},
-            {u"\uC36C\uBC31\uC1A1", "sunbaeksong"},
-            {u"hy\uC5FD\uC11Cl", "hypostlight"},
-            {u"hy\uC5FD\uC11C", "hypost"},
-            {u"\uD734\uBA3C\uB9E4\uC9C1\uCCB4", "magicr"},
-            {u"\uC36C\uD06C\uB9AC\uC2A4\uD0C8", "suncrystal"},
-            {u"\uC36C\uC0D8\uBB3C", "sunsaemmul"},
-            {u"hy\uC595\uC740\uC0D8\uBB3Cm", "hyshortsamulmedium"},
-            {u"hy\uC595\uC740\uC0D8\uBB3C", "hyshortsamul"},
-            {u"\uD55C\uCEF4\uBC14\uD0D5", "haansoftbatang"},
-            {u"\uD55C\uCEF4\uB3CB\uC6C0", "haansoftdotum"},
-            {u"\uD55C\uC591\uD574\uC11C", "hyhaeseo"},
-            {u"md\uC194\uCCB4", "mdsol"},
-            {u"md\uAC1C\uC131\uCCB4", "mdgaesung"},
-            {u"md\uC544\uD2B8\uCCB4", "mdart"},
-            {u"md\uC544\uB871\uCCB4", "mdalong"},
-            {u"md\uC774\uC19D\uCCB4", "mdeasop"},
-            {u"hg\uFF7A\uFF9E\uFF7C\uFF6F\uFF78e", "hggothice"},
-            {u"hgp\uFF7A\uFF9E\uFF7C\uFF6F\uFF78e", "hgpgothice"},
-            {u"hgs\uFF7A\uFF9E\uFF7C\uFF6F\uFF78e", "hgsgothice"},
-            {u"hg\uFF7A\uFF9E\uFF7C\uFF6F\uFF78m", "hggothicm"},
-            {u"hgp\uFF7A\uFF9E\uFF7C\uFF6F\uFF78m", "hgpgothicm"},
-            {u"hgs\uFF7A\uFF9E\uFF7C\uFF6F\uFF78m", "hgsgothicm"},
-            {u"hg\u884C\u66F8\u4F53", "hggyoshotai"},
-            {u"hgp\u884C\u66F8\u4F53", "hgpgyoshotai"},
-            {u"hgs\u884C\u66F8\u4F53", "hgsgyoshotai"},
-            {u"hg\u6559\u79D1\u66F8\u4F53", "hgkyokashotai"},
-            {u"hgp\u6559\u79D1\u66F8\u4F53", "hgpkyokashotai"},
-            {u"hgs\u6559\u79D1\u66F8\u4F53", "hgskyokashotai"},
-            {u"hg\u660E\u671Db", "hgminchob"},
-            {u"hgp\u660E\u671Db", "hgpminchob"},
-            {u"hgs\u660E\u671Db", "hgsminchob"},
-            {u"hg\u660E\u671De", "hgminchoe"},
-            {u"hgp\u660E\u671De", "hgpminchoe"},
-            {u"hgs\u660E\u671De", "hgsminchoe"},
-            {u"hg\u5275\u82F1\u89D2\uFF8E\uFF9F\uFF6F\uFF8C\uFF9F\u4F53", 
"hgsoeikakupoptai"},
-            {u"hgp\u5275\u82F1\u89D2\uFF8E\uFF9F\uFF6F\uFF8C\uFF9F\u4F53", 
"hgpsoeikakupopta"},
-            {u"hgs\u5275\u82F1\u89D2\uFF8E\uFF9F\uFF6F\uFF8C\uFF9F\u4F53", 
"hgssoeikakupopta"},
-            {u"hg\u5275\u82F1\uFF8C\uFF9F\uFF9A\uFF7E\uFF9E\uFF9D\uFF7Deb", 
"hgsoeipresenceeb"},
-            {u"hgp\u5275\u82F1\uFF8C\uFF9F\uFF9A\uFF7E\uFF9E\uFF9D\uFF7Deb", 
"hgpsoeipresenceeb"},
-            {u"hgs\u5275\u82F1\uFF8C\uFF9F\uFF9A\uFF7E\uFF9E\uFF9D\uFF7Deb", 
"hgssoeipresenceeb"},
-            {u"hg\u5275\u82F1\u89D2\uFF7A\uFF9E\uFF7C\uFF6F\uFF78ub", 
"hgsoeikakugothicub"},
-            {u"hgp\u5275\u82F1\u89D2\uFF7A\uFF9E\uFF7C\uFF6F\uFF78ub", 
"hgpsoeikakugothicub"},
-            {u"hgs\u5275\u82F1\u89D2\uFF7A\uFF9E\uFF7C\uFF6F\uFF78ub", 
"hgssoeikakugothicub"},
-            {u"hg\u6B63\u6977\u66F8\u4F53-pro", "hgseikaishotaipro"},
-            {u"hg\u4E38\uFF7A\uFF9E\uFF7C\uFF6F\uFF78-pro", 
"hgmarugothicmpro"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u660E\u671Dpro", "hiraginominchopro"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u660E\u671Dpron", 
"hiraginominchopron"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u89D2\u30B4\u30B7\u30C3\u30AF", 
"hiraginosans"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u89D2\u30B4pro", 
"hiraginokakugothicpro"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u89D2\u30B4pron", 
"hiraginokakugothicpron"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u4E38\u30B4pro", 
"hiraginomarugothicpro"},
-            {u"\u30D2\u30E9\u30AE\u30CE\u4E38\u30B4pron", 
"hiraginomarugothicpron"},
-            {u"\u6E38\u30B4\u30B7\u30C3\u30AF", "yugothic"},
-            {u"\u6E38\u30B4\u30B7\u30C3\u30AF\u4F53", "yugothictai"},
-            {u"\u6E38\u660E\u671D", "yumincho"},
-            {u"\u6E38\u660E\u671D\u4F53", "yuminchotai"},
-            {u"\u6E90\u30CE\u89D2\u30B4\u30B7\u30C3\u30AF", "sourcehansans"},
-            {u"\u6E90\u30CE\u89D2\u30B4\u30B7\u30C3\u30AFjp", 
"sourcehansansjp"},
-            {u"\u6E90\u30CE\u89D2\u30B4\u30B7\u30C3\u30AFhw", 
"sourcehansanshw"},
-            {u"\u6E90\u30CE\u660E\u671D", "sourcehanserif"},
-            {u"\u6E90\u30CE\u660E\u671Djp", "sourcehanserifjp"},
-            {u"ipamj\u660E\u671D", "ipamjmincho"},
-            {u"ipaex\u30B4\u30B7\u30C3\u30AF", "ipaexgothic"},
-            {u"ipaex\u660E\u671D", "ipaexmimcho"}};
+            {u"m\u7B80\u9ED1"_ustr, "mhei"},
+            {u"m\u6F60\u7AAA"_ustr, "mhei"},
+            {u"m\u7B80\u6977\u566C"_ustr, "mkai"},
+            {u"m\u6F60\u7FF1\u628E"_ustr, "mkai"},
+            {u"m\u7B80\u5B8B"_ustr, "msong"},
+            {u"m\u6F60\u51BC"_ustr, "msong"},
+            {u"m\u7B80\u592B\u5B8B"_ustr, "cfangsong"},
+            {u"m\u6F60\u6E98\u51BC"_ustr, "cfangsong"},
+            {u"\u7D30\u660E\u9AD4"_ustr, "mingliu"},
+            {u"\u65B0\u7D30\u660E\u9AD4"_ustr, "pmingliu"},
+            {u"\u6865"_ustr, "hei"},
+            {u"\u6B61"_ustr, "kai"},
+            {u"\u6D69\u6E67"_ustr, "ming"},
+            {u"ms\u30B4\u30B7\u30C3\u30AF"_ustr, "msgothic"},
+            {u"msp\u30B4\u30B7\u30C3\u30AF"_ustr, "mspgothic"},
+            {u"ms\u660E\u671D"_ustr, "msmincho"},
+            {u"msp\u660E\u671D"_ustr, "mspmincho"},
+            {u"\u5FAE\u8EDF\u6B63\u9ED1\u9AD4"_ustr, "microsoftjhenghei"},
+            {u"\u5FAE\u8F6F\u96C5\u9ED1"_ustr, "microsoftyahei"},
+            {u"\u30e1\u30a4\u30ea\u30aa"_ustr, "meiryo"},
+            {u"hg\u660E\u671Dl"_ustr, "hgminchol"},
+            {u"hg\u30B4\u30B7\u30C3\u30AFb"_ustr, "hggothicb"},
+            {u"hgp\u660E\u671Dl"_ustr, "hgpminchol"},
+            {u"hgp\u30B4\u30B7\u30C3\u30AFb"_ustr, "hgpgothicb"},
+            {u"hg\u660E\u671Dlsun"_ustr, "hgmincholsun"},
+            {u"hg\u30B4\u30B7\u30C3\u30AFbsun"_ustr, "hggothicbsun"},
+            {u"hgp\u660E\u671Dlsun"_ustr, "hgpmincholsun"},
+            {u"hgp\u30B4\u30B7\u30C3\u30AFbsun"_ustr, "hgpgothicbsun"},
+            {u"hg\u5E73\u6210\u660E\u671D\u4F53"_ustr, "hgheiseimin"},
+            {u"hg\u5E73\u6210\u660E\u671D\u4F53w3x12"_ustr, "hgheiseimin"},
+            {u"ipa\u660E\u671D"_ustr, "ipamincho"},
+            {u"ipap\u660E\u671D"_ustr, "ipapmincho"},
+            {u"ipa\u30B4\u30B7\u30C3\u30AF"_ustr, "ipagothic"},
+            {u"ipap\u30B4\u30B7\u30C3\u30AF"_ustr, "ipapgothic"},
+            {u"ipaui\u30B4\u30B7\u30C3\u30AF"_ustr, "ipauigothic"},
+            {u"takao\u660E\u671D"_ustr, "takaomincho"},
+            {u"takaop\u660E\u671D"_ustr, "takaopmincho"},
+            {u"takao\u30B4\u30B7\u30C3\u30AF"_ustr, "takaogothic"},
+            {u"takaop\u30B4\u30B7\u30C3\u30AF"_ustr, "takaopgothic"},
+            {u"\u3055\u3056\u306A\u307F\u660E\u671D"_ustr, "sazanamimincho"},
+            {u"\u3055\u3056\u306A\u307F\u30B4\u30B7\u30C3\u30AF"_ustr, 
"sazanamigothic"},
+            {u"\u6771\u98A8\u660E\u671D"_ustr, "kochimincho"},
+            {u"\u6771\u98A8\u30B4\u30B7\u30C3\u30AF"_ustr, "kochigothic"},
+            {u"\uC36C\uB3CB\uC6C0"_ustr, "sundotum"},
+            {u"\uC36C\uAD74\uB9BC"_ustr, "sungulim"},
+            {u"\uC36C\uBC14\uD0D5"_ustr, "sunbatang"},
+            {u"\uBC31\uBB35\uB3CB\uC6C0"_ustr, "baekmukdotum"},
+            {u"\uBC31\uBB35\uAD74\uB9BC"_ustr, "baekmukgulim"},
+            {u"\uBC31\uBB35\uBC14\uD0D5"_ustr, "baekmukbatang"},
+            {u"\u65B9\u6B63\u9ED1\u4F53"_ustr, "fzheiti"},
+            {u"\u65B9\u6B63\u9ED1\u9AD4"_ustr, "fzheiti"},
+            {u"\u65B9\u6B63\u6977\u4F53"_ustr, "fzkaiti"},
+            {u"\u65B9\u6B63\u6977\u9AD4"_ustr, "fzkaitib"},
+            {u"\u65B9\u6B63\u660E\u9AD4"_ustr, "fzmingtib"},
+            {u"\u65B9\u6B63\u5B8B\u4F53"_ustr, "fzsongti"},
+            {u"hy\uACAC\uBA85\uC870"_ustr, "hymyeongjoextra"},
+            {u"hy\uC2E0\uBA85\uC870"_ustr, "hysinmyeongjomedium"},
+            {u"hy\uC911\uACE0\uB515"_ustr, "hygothicmedium"},
+            {u"hy\uADF8\uB798\uD53Dm"_ustr, "hygraphicmedium"},
+            {u"hy\uADF8\uB798\uD53D"_ustr, "hygraphic"},
+            {u"\uC0C8\uAD74\uB9BC"_ustr, "newgulim"},
+            {u"\uC36C\uAD81\uC11C"_ustr, "sungungseo"},
+            {u"hy\uAD81\uC11Cb"_ustr, "hygungsobold"},
+            {u"hy\uAD81\uC11C"_ustr, "hygungso"},
+            {u"\uC36C\uD5E4\uB4DC\uB77C\uC778"_ustr, "sunheadline"},
+            {u"hy\uD5E4\uB4DC\uB77C\uC778m"_ustr, "hyheadlinemedium"},
+            {u"hy\uD5E4\uB4DC\uB77C\uC778"_ustr, "hyheadline"},
+            {u"\uD734\uBA3C\uC61B\uCCB4"_ustr, "yetr"},
+            {u"hy\uACAC\uACE0\uB515"_ustr, "hygothicextra"},
+            {u"\uC36C\uBAA9\uD310"_ustr, "sunmokpan"},
+            {u"\uC36C\uC5FD\uC11C"_ustr, "sunyeopseo"},
+            {u"\uC36C\uBC31\uC1A1"_ustr, "sunbaeksong"},
+            {u"hy\uC5FD\uC11Cl"_ustr, "hypostlight"},
+            {u"hy\uC5FD\uC11C"_ustr, "hypost"},
+            {u"\uD734\uBA3C\uB9E4\uC9C1\uCCB4"_ustr, "magicr"},
+            {u"\uC36C\uD06C\uB9AC\uC2A4\uD0C8"_ustr, "suncrystal"},
+            {u"\uC36C\uC0D8\uBB3C"_ustr, "sunsaemmul"},
+            {u"hy\uC595\uC740\uC0D8\uBB3Cm"_ustr, "hyshortsamulmedium"},
+            {u"hy\uC595\uC740\uC0D8\uBB3C"_ustr, "hyshortsamul"},
+            {u"\uD55C\uCEF4\uBC14\uD0D5"_ustr, "haansoftbatang"},
+            {u"\uD55C\uCEF4\uB3CB\uC6C0"_ustr, "haansoftdotum"},
+            {u"\uD55C\uC591\uD574\uC11C"_ustr, "hyhaeseo"},
+            {u"md\uC194\uCCB4"_ustr, "mdsol"},
+            {u"md\uAC1C\uC131\uCCB4"_ustr, "mdgaesung"},
+            {u"md\uC544\uD2B8\uCCB4"_ustr, "mdart"},
+            {u"md\uC544\uB871\uCCB4"_ustr, "mdalong"},
+            {u"md\uC774\uC19D\uCCB4"_ustr, "mdeasop"},
+            {u"hg\uFF7A\uFF9E\uFF7C\uFF6F\uFF78e"_ustr, "hggothice"},
+            {u"hgp\uFF7A\uFF9E\uFF7C\uFF6F\uFF78e"_ustr, "hgpgothice"},
+            {u"hgs\uFF7A\uFF9E\uFF7C\uFF6F\uFF78e"_ustr, "hgsgothice"},
+            {u"hg\uFF7A\uFF9E\uFF7C\uFF6F\uFF78m"_ustr, "hggothicm"},
+            {u"hgp\uFF7A\uFF9E\uFF7C\uFF6F\uFF78m"_ustr, "hgpgothicm"},
+            {u"hgs\uFF7A\uFF9E\uFF7C\uFF6F\uFF78m"_ustr, "hgsgothicm"},
+            {u"hg\u884C\u66F8\u4F53"_ustr, "hggyoshotai"},
+            {u"hgp\u884C\u66F8\u4F53"_ustr, "hgpgyoshotai"},
+            {u"hgs\u884C\u66F8\u4F53"_ustr, "hgsgyoshotai"},
+            {u"hg\u6559\u79D1\u66F8\u4F53"_ustr, "hgkyokashotai"},
+            {u"hgp\u6559\u79D1\u66F8\u4F53"_ustr, "hgpkyokashotai"},
+            {u"hgs\u6559\u79D1\u66F8\u4F53"_ustr, "hgskyokashotai"},
+            {u"hg\u660E\u671Db"_ustr, "hgminchob"},
+            {u"hgp\u660E\u671Db"_ustr, "hgpminchob"},
+            {u"hgs\u660E\u671Db"_ustr, "hgsminchob"},
+            {u"hg\u660E\u671De"_ustr, "hgminchoe"},
+            {u"hgp\u660E\u671De"_ustr, "hgpminchoe"},
+            {u"hgs\u660E\u671De"_ustr, "hgsminchoe"},
+            {u"hg\u5275\u82F1\u89D2\uFF8E\uFF9F\uFF6F\uFF8C\uFF9F\u4F53"_ustr, 
"hgsoeikakupoptai"},
+            
{u"hgp\u5275\u82F1\u89D2\uFF8E\uFF9F\uFF6F\uFF8C\uFF9F\u4F53"_ustr, 
"hgpsoeikakupopta"},
+            
{u"hgs\u5275\u82F1\u89D2\uFF8E\uFF9F\uFF6F\uFF8C\uFF9F\u4F53"_ustr, 
"hgssoeikakupopta"},
+            
{u"hg\u5275\u82F1\uFF8C\uFF9F\uFF9A\uFF7E\uFF9E\uFF9D\uFF7Deb"_ustr,
+             "hgsoeipresenceeb"},
+            
{u"hgp\u5275\u82F1\uFF8C\uFF9F\uFF9A\uFF7E\uFF9E\uFF9D\uFF7Deb"_ustr,
+             "hgpsoeipresenceeb"},
+            
{u"hgs\u5275\u82F1\uFF8C\uFF9F\uFF9A\uFF7E\uFF9E\uFF9D\uFF7Deb"_ustr,
+             "hgssoeipresenceeb"},
+            {u"hg\u5275\u82F1\u89D2\uFF7A\uFF9E\uFF7C\uFF6F\uFF78ub"_ustr, 
"hgsoeikakugothicub"},
+            {u"hgp\u5275\u82F1\u89D2\uFF7A\uFF9E\uFF7C\uFF6F\uFF78ub"_ustr, 
"hgpsoeikakugothicub"},
+            {u"hgs\u5275\u82F1\u89D2\uFF7A\uFF9E\uFF7C\uFF6F\uFF78ub"_ustr, 
"hgssoeikakugothicub"},
+            {u"hg\u6B63\u6977\u66F8\u4F53-pro"_ustr, "hgseikaishotaipro"},
+            {u"hg\u4E38\uFF7A\uFF9E\uFF7C\uFF6F\uFF78-pro"_ustr, 
"hgmarugothicmpro"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u660E\u671Dpro"_ustr, 
"hiraginominchopro"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u660E\u671Dpron"_ustr, 
"hiraginominchopron"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u89D2\u30B4\u30B7\u30C3\u30AF"_ustr, 
"hiraginosans"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u89D2\u30B4pro"_ustr, 
"hiraginokakugothicpro"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u89D2\u30B4pron"_ustr, 
"hiraginokakugothicpron"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u4E38\u30B4pro"_ustr, 
"hiraginomarugothicpro"},
+            {u"\u30D2\u30E9\u30AE\u30CE\u4E38\u30B4pron"_ustr, 
"hiraginomarugothicpron"},
+            {u"\u6E38\u30B4\u30B7\u30C3\u30AF"_ustr, "yugothic"},
+            {u"\u6E38\u30B4\u30B7\u30C3\u30AF\u4F53"_ustr, "yugothictai"},
+            {u"\u6E38\u660E\u671D"_ustr, "yumincho"},
+            {u"\u6E38\u660E\u671D\u4F53"_ustr, "yuminchotai"},
+            {u"\u6E90\u30CE\u89D2\u30B4\u30B7\u30C3\u30AF"_ustr, 
"sourcehansans"},
+            {u"\u6E90\u30CE\u89D2\u30B4\u30B7\u30C3\u30AFjp"_ustr, 
"sourcehansansjp"},
+            {u"\u6E90\u30CE\u89D2\u30B4\u30B7\u30C3\u30AFhw"_ustr, 
"sourcehansanshw"},
+            {u"\u6E90\u30CE\u660E\u671D"_ustr, "sourcehanserif"},
+            {u"\u6E90\u30CE\u660E\u671Djp"_ustr, "sourcehanserifjp"},
+            {u"ipamj\u660E\u671D"_ustr, "ipamjmincho"},
+            {u"ipaex\u30B4\u30B7\u30C3\u30AF"_ustr, "ipaexgothic"},
+            {u"ipaex\u660E\u671D"_ustr, "ipaexmimcho"}};
 
         FontNameDictionary::const_iterator it = aDictionary.find( rNameStr );
         if( it != aDictionary.end() )
diff --git a/vcl/qa/cppunit/lifecycle.cxx b/vcl/qa/cppunit/lifecycle.cxx
index c1a5e5ac940f..eaeed28b9b97 100644
--- a/vcl/qa/cppunit/lifecycle.cxx
+++ b/vcl/qa/cppunit/lifecycle.cxx
@@ -269,7 +269,7 @@ void LifecycleTest::testLeakage()
         aObjects.push_back(LeakTestObject::Create<VclVButtonBox>(xVBox));
     }
 
-    aObjects.push_back(LeakTestObject::Create<Dialog>(xParent, 
u"PrintProgressDialog", "vcl/ui/printprogressdialog.ui"));
+    aObjects.push_back(LeakTestObject::Create<Dialog>(xParent, 
u"PrintProgressDialog"_ustr, "vcl/ui/printprogressdialog.ui"));
     xParent.clear();
 
     for (auto i = aObjects.rbegin(); i != aObjects.rend(); ++i)
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index 9a2990627125..f67deec04ae2 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -5265,7 +5265,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf144222)
     CPPUNIT_ASSERT(pTextPage);
 
     int nPageObjectCount = pPdfPage->getObjectCount();
-    const OUString sChar = u"\u4E2D";
+    const OUString sChar = u"\u4E2D"_ustr;
     basegfx::B2DRectangle aRect1, aRect2;
     int nCount = 0;
 

Reply via email to