basctl/source/basicide/baside2b.cxx                 |   18 ++++--------
 basctl/source/inc/bastypes.hxx                      |    2 -
 basic/source/sbx/sbxscan.cxx                        |    2 -
 codemaker/source/cppumaker/dumputils.cxx            |   14 +++++-----
 codemaker/source/cppumaker/dumputils.hxx            |    5 ++-
 compilerplugins/clang/stringviewparam.cxx           |    3 +-
 configmgr/source/data.cxx                           |    8 ++---
 configmgr/source/data.hxx                           |    2 -
 configmgr/source/xmldata.cxx                        |    4 +-
 configmgr/source/xmldata.hxx                        |    4 +-
 connectivity/source/commontools/CommonTools.cxx     |    8 ++---
 connectivity/source/drivers/dbase/DTable.cxx        |    2 -
 cui/source/customize/macropg.cxx                    |    6 ++--
 dbaccess/source/filter/hsqldb/createparser.cxx      |   15 +++++++---
 dbaccess/source/sdbtools/connection/objectnames.cxx |   16 +++++------
 dbaccess/source/ui/control/SqlNameEdit.cxx          |    4 +-
 dbaccess/source/ui/inc/WColumnSelect.hxx            |    4 +-
 dbaccess/source/ui/inc/WCopyTable.hxx               |    2 -
 dbaccess/source/ui/misc/WColumnSelect.cxx           |    4 +-
 dbaccess/source/ui/misc/WCopyTable.cxx              |    2 -
 filter/source/xmlfilterdetect/filterdetect.cxx      |    6 ++--
 filter/source/xsltdialog/xmlfiltertestdialog.cxx    |    4 +-
 framework/inc/addonmenu.hxx                         |    2 -
 framework/inc/uielement/menubarmerger.hxx           |    2 -
 framework/inc/uielement/toolbarmerger.hxx           |    2 -
 framework/source/fwe/classes/addonmenu.cxx          |    7 ++---
 framework/source/inc/loadenv/targethelper.hxx       |    2 -
 framework/source/loadenv/targethelper.cxx           |    6 ++--
 framework/source/uielement/menubarmerger.cxx        |    4 +-
 framework/source/uielement/toolbarmerger.cxx        |    4 +-
 framework/source/uifactory/addonstoolbarfactory.cxx |    7 ++---
 include/connectivity/dbtools.hxx                    |    4 +-
 include/oox/dump/dumperbase.hxx                     |    2 -
 include/sfx2/docfile.hxx                            |    2 -
 include/sfx2/filedlghelper.hxx                      |    2 -
 include/unotools/tempfile.hxx                       |    2 -
 include/vcl/toolkit/field.hxx                       |    6 ++--
 l10ntools/source/localize.cxx                       |   10 +++----
 l10ntools/source/propmerge.cxx                      |    6 ++--
 l10ntools/source/treemerge.cxx                      |    6 ++--
 linguistic/source/dicimp.cxx                        |    8 ++---
 linguistic/source/dlistimp.cxx                      |    6 ++--
 oox/source/dump/dumperbase.cxx                      |    6 ++--
 registry/source/regimpl.cxx                         |   14 +++++-----
 registry/source/regimpl.hxx                         |    2 -
 sc/inc/stringutil.hxx                               |    2 -
 sc/source/core/tool/stringutil.cxx                  |   10 +------
 sc/source/ui/app/inputhdl.cxx                       |    4 +-
 sc/source/ui/docshell/docsh.cxx                     |    2 -
 sc/source/ui/unoobj/exceldetect.cxx                 |    4 +-
 sd/qa/unit/HtmlExportTest.cxx                       |    2 -
 sd/source/ui/dlg/TemplateScanner.cxx                |   12 ++++----
 sfx2/source/appl/sfxhelp.cxx                        |    2 -
 sfx2/source/dialog/filedlghelper.cxx                |    8 ++---
 sfx2/source/doc/docfile.cxx                         |    6 ++--
 sfx2/source/doc/guisaveas.cxx                       |    4 +-
 starmath/source/edit.cxx                            |    4 +-
 svx/source/sidebar/inspector/InspectorTextPanel.cxx |   12 +++++---
 sw/qa/core/uwriter.cxx                              |    2 -
 sw/source/filter/html/wrthtml.cxx                   |    6 ++--
 sw/source/filter/html/wrthtml.hxx                   |    2 -
 sw/source/ui/dbui/mmlayoutpage.cxx                  |    2 -
 sw/source/uibase/misc/glosdoc.cxx                   |    2 -
 sw/source/uibase/uno/unomailmerge.cxx               |    2 -
 ucb/source/ucp/webdav-curl/CurlUri.cxx              |    4 +-
 ucb/source/ucp/webdav-curl/CurlUri.hxx              |    2 -
 ucbhelper/source/client/proxydecider.cxx            |    6 ++--
 unoidl/source/legacyprovider.cxx                    |    4 +-
 unoidl/source/unoidl-check.cxx                      |    8 ++---
 unotools/source/ucbhelper/tempfile.cxx              |   10 +++----
 vcl/source/control/field2.cxx                       |   28 ++++++++++----------
 xmloff/source/chart/SchXMLTableContext.cxx          |    6 ++--
 xmloff/source/core/xmlmultiimagehelper.cxx          |    8 ++---
 73 files changed, 204 insertions(+), 207 deletions(-)

New commits:
commit 1927b51993fb68907a75765676179b08ab195196
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Apr 1 17:42:34 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat Apr 2 13:31:19 2022 +0200

    loplugin:stringviewparam convert methods using indexOf
    
    .. and lastIndexOf, which convert to find and rfind
    
    Change-Id: I6c4156cf904774c0d867f85a4c2785dba7593f62
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132445
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/basctl/source/basicide/baside2b.cxx 
b/basctl/source/basicide/baside2b.cxx
index e15ccc3ef3ed..262f9e49a248 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -971,20 +971,14 @@ void EditorWindow::SetSourceInBasic()
 
 // Returns the position of the last character of any of the following
 // EOL char combinations: CR, CR/LF, LF, return -1 if no EOL is found
-sal_Int32 searchEOL( const OUString& rStr, sal_Int32 fromIndex )
+sal_Int32 searchEOL( std::u16string_view rStr, sal_Int32 fromIndex )
 {
-    sal_Int32 iRetPos = -1;
+    size_t iLF = rStr.find( LINE_SEP, fromIndex );
+    if( iLF != std::u16string_view::npos )
+        return iLF;
 
-    sal_Int32 iLF = rStr.indexOf( LINE_SEP, fromIndex );
-    if( iLF != -1 )
-    {
-        iRetPos = iLF;
-    }
-    else
-    {
-        iRetPos = rStr.indexOf( LINE_SEP_CR, fromIndex );
-    }
-    return iRetPos;
+    size_t iCR = rStr.find( LINE_SEP_CR, fromIndex );
+    return iCR == std::u16string_view::npos ? -1 : iCR;
 }
 
 void EditorWindow::CreateEditEngine()
diff --git a/basctl/source/inc/bastypes.hxx b/basctl/source/inc/bastypes.hxx
index f2e989aeb145..520d1a711992 100644
--- a/basctl/source/inc/bastypes.hxx
+++ b/basctl/source/inc/bastypes.hxx
@@ -53,7 +53,7 @@ constexpr auto LINE_SEP_CR = 0x0D;
 constexpr auto LINE_SEP = 0x0A;
 
 // Implementation: baside2b.cxx
-sal_Int32 searchEOL( const OUString& rStr, sal_Int32 fromIndex );
+sal_Int32 searchEOL( std::u16string_view rStr, sal_Int32 fromIndex );
 
 // Meaning of bToBeKilled:
 // While being in a reschedule-loop, I may not destroy the window.
diff --git a/basic/source/sbx/sbxscan.cxx b/basic/source/sbx/sbxscan.cxx
index 108b5d56c499..9151c34defba 100644
--- a/basic/source/sbx/sbxscan.cxx
+++ b/basic/source/sbx/sbxscan.cxx
@@ -60,7 +60,7 @@ void ImpGetIntntlSep( sal_Unicode& rcDecimalSep, sal_Unicode& 
rcThousandSep, sal
 }
 
 
-static bool ImpStrChr( const OUString& str, sal_Unicode c ) { return 
str.indexOf(c) >= 0; }
+static bool ImpStrChr( std::u16string_view str, sal_Unicode c ) { return 
str.find(c) != std::u16string_view::npos; }
 
 
 // scanning a string according to BASIC-conventions
diff --git a/codemaker/source/cppumaker/dumputils.cxx 
b/codemaker/source/cppumaker/dumputils.cxx
index 15b62e04a407..8524b1962ce2 100644
--- a/codemaker/source/cppumaker/dumputils.cxx
+++ b/codemaker/source/cppumaker/dumputils.cxx
@@ -48,16 +48,16 @@ bool dumpNamespaceOpen(
 }
 
 bool dumpNamespaceClose(
-    FileStream & out, OUString const & entityName, bool fullModuleType)
+    FileStream & out, std::u16string_view entityName, bool fullModuleType)
 {
     bool bOutput = false;
     bool bFirst = true;
-    for (sal_Int32 i = 0; i >= 0;) {
-        i = entityName.indexOf('.', i);
-        if (i >= 0) {
+    for (size_t i = 0; i != std::u16string_view::npos;) {
+        i = entityName.find('.', i);
+        if (i != std::u16string_view::npos) {
             ++i;
         }
-        if (fullModuleType || i >= 0) {
+        if (fullModuleType || i != std::u16string_view::npos) {
             if (!bFirst) {
                 out << " ";
             }
@@ -69,8 +69,8 @@ bool dumpNamespaceClose(
     return bOutput;
 }
 
-void dumpTypeIdentifier(FileStream & out, OUString const & entityName) {
-    out << entityName.subView(entityName.lastIndexOf('.') + 1);
+void dumpTypeIdentifier(FileStream & out, std::u16string_view entityName) {
+    out << entityName.substr(entityName.rfind('.') + 1);
 }
 
 }
diff --git a/codemaker/source/cppumaker/dumputils.hxx 
b/codemaker/source/cppumaker/dumputils.hxx
index 58ccdc93fac5..2fcd708c43fb 100644
--- a/codemaker/source/cppumaker/dumputils.hxx
+++ b/codemaker/source/cppumaker/dumputils.hxx
@@ -20,6 +20,7 @@
 #pragma once
 
 #include <sal/config.h>
+#include <string_view>
 
 namespace rtl
 {
@@ -31,9 +32,9 @@ namespace codemaker::cppumaker
 {
 bool dumpNamespaceOpen(FileStream& out, rtl::OUString const& entityName, bool 
fullModuleType);
 
-bool dumpNamespaceClose(FileStream& out, rtl::OUString const& entityName, bool 
fullModuleType);
+bool dumpNamespaceClose(FileStream& out, std::u16string_view entityName, bool 
fullModuleType);
 
-void dumpTypeIdentifier(FileStream& out, rtl::OUString const& entityName);
+void dumpTypeIdentifier(FileStream& out, std::u16string_view entityName);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/compilerplugins/clang/stringviewparam.cxx 
b/compilerplugins/clang/stringviewparam.cxx
index ac33ea7c558c..f0d09fe333d9 100644
--- a/compilerplugins/clang/stringviewparam.cxx
+++ b/compilerplugins/clang/stringviewparam.cxx
@@ -137,7 +137,8 @@ DeclRefExpr const* 
relevantCXXMemberCallExpr(CXXMemberCallExpr const* expr)
     else if (auto const i = d->getIdentifier())
     {
         auto const n = i->getName();
-        if (n == "endsWith" || n == "isEmpty" || n == "startsWith" || n == 
"subView")
+        if (n == "endsWith" || n == "isEmpty" || n == "startsWith" || n == 
"subView"
+            || n == "indexOf" || n == "lastIndexOf")
         {
             good = true;
         }
diff --git a/configmgr/source/data.cxx b/configmgr/source/data.cxx
index 6e95f1665726..6279e02cf096 100644
--- a/configmgr/source/data.cxx
+++ b/configmgr/source/data.cxx
@@ -148,14 +148,14 @@ sal_Int32 Data::parseSegment(
 }
 
 OUString Data::fullTemplateName(
-    OUString const & component, OUString const & name)
+    std::u16string_view component, std::u16string_view name)
 {
-    if (component.indexOf(':') != -1 || name.indexOf(':') != -1) {
+    if (component.find(':') != std::u16string_view::npos || name.find(':') != 
std::u16string_view::npos) {
         throw css::uno::RuntimeException(
-            "bad component/name pair containing colon " + component + "/" +
+            OUString::Concat("bad component/name pair containing colon ") + 
component + "/" +
             name);
     }
-    return component + ":" + name;
+    return OUString::Concat(component) + ":" + name;
 }
 
 bool Data::equalTemplateNames(
diff --git a/configmgr/source/data.hxx b/configmgr/source/data.hxx
index 9e1da0829679..c3614e6435da 100644
--- a/configmgr/source/data.hxx
+++ b/configmgr/source/data.hxx
@@ -58,7 +58,7 @@ struct Data {
         bool * setElement, OUString * templateName);
 
     static OUString fullTemplateName(
-        OUString const & component, OUString const & name);
+        std::u16string_view component, std::u16string_view name);
 
     //TODO: better rules under which circumstances a short template name 
matches
     static bool equalTemplateNames(
diff --git a/configmgr/source/xmldata.cxx b/configmgr/source/xmldata.cxx
index a2a05877674e..ecb4dacab41f 100644
--- a/configmgr/source/xmldata.cxx
+++ b/configmgr/source/xmldata.cxx
@@ -115,8 +115,8 @@ bool parseBoolean(xmlreader::Span const & text) {
 }
 
 OUString parseTemplateReference(
-    OUString const & component, bool hasNodeType,
-    OUString const & nodeType, OUString const * defaultTemplateName)
+    std::u16string_view component, bool hasNodeType,
+    std::u16string_view nodeType, OUString const * defaultTemplateName)
 {
     if (!hasNodeType) {
         if (defaultTemplateName != nullptr) {
diff --git a/configmgr/source/xmldata.hxx b/configmgr/source/xmldata.hxx
index c72050af84ce..44296b38d58d 100644
--- a/configmgr/source/xmldata.hxx
+++ b/configmgr/source/xmldata.hxx
@@ -38,8 +38,8 @@ Type parseType(
 bool parseBoolean(xmlreader::Span const & text);
 
 OUString parseTemplateReference(
-    OUString const & component, bool hasNodeType,
-    OUString const & nodeType, OUString const * defaultTemplateName);
+    std::u16string_view component, bool hasNodeType,
+    std::u16string_view nodeType, OUString const * defaultTemplateName);
 
 }
 
diff --git a/connectivity/source/commontools/CommonTools.cxx 
b/connectivity/source/commontools/CommonTools.cxx
index b7467c6933ab..739fe6e66345 100644
--- a/connectivity/source/commontools/CommonTools.cxx
+++ b/connectivity/source/commontools/CommonTools.cxx
@@ -165,15 +165,15 @@ namespace connectivity
 namespace dbtools
 {
 
-static bool isCharOk(sal_Unicode c,const OUString& _rSpecials)
+static bool isCharOk(sal_Unicode c, std::u16string_view _rSpecials)
 {
 
     return ( ((c >= 97) && (c <= 122)) || ((c >= 65) && (c <=  90)) || ((c >= 
48) && (c <=  57)) ||
-          c == '_' || _rSpecials.indexOf(c) != -1);
+          c == '_' || _rSpecials.find(c) != std::u16string_view::npos);
 }
 
 
-bool isValidSQLName(const OUString& rName,const OUString& _rSpecials)
+bool isValidSQLName(const OUString& rName, std::u16string_view _rSpecials)
 {
     // Test for correct naming (in SQL sense)
     // This is important for table names for example
@@ -202,7 +202,7 @@ bool isValidSQLName(const OUString& rName,const OUString& 
_rSpecials)
 }
 
 // Creates a new name if necessary
-OUString convertName2SQLName(const OUString& rName,const OUString& _rSpecials)
+OUString convertName2SQLName(const OUString& rName, std::u16string_view 
_rSpecials)
 {
     if(isValidSQLName(rName,_rSpecials))
         return rName;
diff --git a/connectivity/source/drivers/dbase/DTable.cxx 
b/connectivity/source/drivers/dbase/DTable.cxx
index d7a5b1c458a6..ad3aa66f2dd1 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -1015,7 +1015,7 @@ bool ODbaseTable::CreateImpl()
 {
     OSL_ENSURE(!m_pFileStream, "SequenceError");
 
-    if ( m_pConnection->isCheckEnabled() && 
::dbtools::convertName2SQLName(m_Name,OUString()) != m_Name )
+    if ( m_pConnection->isCheckEnabled() && 
::dbtools::convertName2SQLName(m_Name, u"") != m_Name )
     {
         const OUString sError( 
getConnection()->getResources().getResourceStringWithSubstitution(
                 STR_SQL_NAME_ERROR,
diff --git a/cui/source/customize/macropg.cxx b/cui/source/customize/macropg.cxx
index 451ff0b0e9df..b1df3957de8b 100644
--- a/cui/source/customize/macropg.cxx
+++ b/cui/source/customize/macropg.cxx
@@ -288,11 +288,11 @@ namespace
         return aPureMethod;
     }
 
-    OUString GetEventDisplayImage(const OUString &rURL)
+    OUString GetEventDisplayImage(std::u16string_view rURL)
     {
-        if (rURL.isEmpty())
+        if (rURL.empty())
             return OUString();
-        sal_Int32 nIndex = rURL.indexOf(aVndSunStarUNO);
+        size_t nIndex = rURL.find(aVndSunStarUNO);
         bool bUNO = nIndex == 0;
         return bUNO ? OUString(RID_SVXBMP_COMPONENT) : 
OUString(RID_SVXBMP_MACRO);
     }
diff --git a/dbaccess/source/filter/hsqldb/createparser.cxx 
b/dbaccess/source/filter/hsqldb/createparser.cxx
index de1213945151..9dfe2b2c53d7 100644
--- a/dbaccess/source/filter/hsqldb/createparser.cxx
+++ b/dbaccess/source/filter/hsqldb/createparser.cxx
@@ -67,10 +67,11 @@ std::vector<OUString> lcl_splitColumnPart(const OUString& 
sColumnPart)
     return sReturn;
 }
 
-sal_Int32 lcl_getAutoIncrementDefault(const OUString& sColumnDef)
+sal_Int32 lcl_getAutoIncrementDefault(std::u16string_view sColumnDef)
 {
     // TODO what if there are more spaces?
-    if (sColumnDef.indexOf("GENERATED BY DEFAULT AS IDENTITY") > 0)
+    size_t nPos = sColumnDef.find(u"GENERATED BY DEFAULT AS IDENTITY");
+    if (nPos != std::u16string_view::npos && nPos > 0)
     {
         // TODO parse starting sequence stated by "START WITH"
         return 0;
@@ -93,9 +94,15 @@ OUString lcl_getDefaultValue(const OUString& sColumnDef)
     return OUString{};
 }
 
-bool lcl_isNullable(const OUString& sColumnDef) { return 
sColumnDef.indexOf("NOT NULL") < 0; }
+bool lcl_isNullable(std::u16string_view sColumnDef)
+{
+    return sColumnDef.find(u"NOT NULL") == std::u16string_view::npos;
+}
 
-bool lcl_isPrimaryKey(const OUString& sColumnDef) { return 
sColumnDef.indexOf("PRIMARY KEY") >= 0; }
+bool lcl_isPrimaryKey(std::u16string_view sColumnDef)
+{
+    return sColumnDef.find(u"PRIMARY KEY") != std::u16string_view::npos;
+}
 
 sal_Int32 lcl_getDataTypeFromHsql(std::u16string_view sTypeName)
 {
diff --git a/dbaccess/source/sdbtools/connection/objectnames.cxx 
b/dbaccess/source/sdbtools/connection/objectnames.cxx
index 5ec2c22e8ea4..66dd037870c5 100644
--- a/dbaccess/source/sdbtools/connection/objectnames.cxx
+++ b/dbaccess/source/sdbtools/connection/objectnames.cxx
@@ -159,18 +159,18 @@ namespace sdbtools
         {
         }
 
-        static ::connectivity::ErrorCondition validateName_getErrorCondition( 
const OUString& _rName )
+        static ::connectivity::ErrorCondition validateName_getErrorCondition( 
std::u16string_view _rName )
         {
-            if  (   ( _rName.indexOf( u'"'      ) >= 0 )
-                ||  ( _rName.indexOf( u'\''     ) >= 0 )
-                ||  ( _rName.indexOf( u'`'      ) >= 0 )
-                ||  ( _rName.indexOf( u'\x0091' ) >= 0 )
-                ||  ( _rName.indexOf( u'\x0092' ) >= 0 )
-                ||  ( _rName.indexOf( u'\x00B4' ) >= 0 )  // removed 
unparsable chars
+            if  (   ( _rName.find( u'"'      ) != std::u16string_view::npos )
+                ||  ( _rName.find( u'\''     ) != std::u16string_view::npos )
+                ||  ( _rName.find( u'`'      ) != std::u16string_view::npos )
+                ||  ( _rName.find( u'\x0091' ) != std::u16string_view::npos )
+                ||  ( _rName.find( u'\x0092' ) != std::u16string_view::npos )
+                ||  ( _rName.find( u'\x00B4' ) != std::u16string_view::npos )  
// removed unparsable chars
                 )
                 return ErrorCondition::DB_QUERY_NAME_WITH_QUOTES;
 
-            if ( _rName.indexOf( '/') >= 0 )
+            if ( _rName.find( '/') != std::u16string_view::npos )
                 return ErrorCondition::DB_OBJECT_NAME_WITH_SLASHES;
 
             return 0;
diff --git a/dbaccess/source/ui/control/SqlNameEdit.cxx 
b/dbaccess/source/ui/control/SqlNameEdit.cxx
index 89c0afc0bda1..9d968a0fdb68 100644
--- a/dbaccess/source/ui/control/SqlNameEdit.cxx
+++ b/dbaccess/source/ui/control/SqlNameEdit.cxx
@@ -21,12 +21,12 @@
 
 namespace dbaui
 {
-    static bool isCharOk(sal_Unicode _cChar,bool _bFirstChar, const OUString& 
_sAllowedChars)
+    static bool isCharOk(sal_Unicode _cChar,bool _bFirstChar, 
std::u16string_view _sAllowedChars)
     {
         return  (
                  (_cChar >= 'A' && _cChar <= 'Z') ||
                  _cChar == '_' ||
-                 _sAllowedChars.indexOf(_cChar) != -1 ||
+                 _sAllowedChars.find(_cChar) != std::u16string_view::npos ||
                  (!_bFirstChar && (_cChar >= '0' && _cChar <= '9')) ||
                  (_cChar >= 'a' && _cChar <= 'z')
                 );
diff --git a/dbaccess/source/ui/inc/WColumnSelect.hxx 
b/dbaccess/source/ui/inc/WColumnSelect.hxx
index 706ccfd0371c..38b1317fd507 100644
--- a/dbaccess/source/ui/inc/WColumnSelect.hxx
+++ b/dbaccess/source/ui/inc/WColumnSelect.hxx
@@ -49,7 +49,7 @@ namespace dbaui
                                 OFieldDescription const * _pSrcField,
                                 std::vector< OUString>& _rRightColumns,
                                 const OUString&  _sColumnName,
-                                const OUString&  _sExtraChars,
+                                std::u16string_view  _sExtraChars,
                                 sal_Int32               _nMaxNameLen,
                                 const ::comphelper::UStringMixEqual& _aCase);
 
@@ -57,7 +57,7 @@ namespace dbaui
                                 weld::TreeView const * _pLeft,
                                 std::vector< OUString>& _rRightColumns,
                                 const OUString&  _sColumnName,
-                                const OUString&  _sExtraChars,
+                                std::u16string_view  _sExtraChars,
                                 sal_Int32               _nMaxNameLen,
                                 const ::comphelper::UStringMixEqual& _aCase);
 
diff --git a/dbaccess/source/ui/inc/WCopyTable.hxx 
b/dbaccess/source/ui/inc/WCopyTable.hxx
index 936acfc80c96..6133112835af 100644
--- a/dbaccess/source/ui/inc/WCopyTable.hxx
+++ b/dbaccess/source/ui/inc/WCopyTable.hxx
@@ -395,7 +395,7 @@ namespace dbaui
 
         OUString convertColumnName(  const TColumnFindFunctor&   _rCmpFunctor,
                                             const OUString&  _sColumnName,
-                                            const OUString&  _sExtraChars,
+                                            std::u16string_view  _sExtraChars,
                                             sal_Int32               
_nMaxNameLen);
         TOTypeInfoSP convertType(const TOTypeInfoSP&_pType, bool& 
_bNotConvert);
 
diff --git a/dbaccess/source/ui/misc/WColumnSelect.cxx 
b/dbaccess/source/ui/misc/WColumnSelect.cxx
index a24c2e25468b..8937cfb2d78d 100644
--- a/dbaccess/source/ui/misc/WColumnSelect.cxx
+++ b/dbaccess/source/ui/misc/WColumnSelect.cxx
@@ -275,7 +275,7 @@ void OWizColumnSelect::createNewColumn( weld::TreeView* 
_pListbox,
                                         OFieldDescription const * _pSrcField,
                                         std::vector< OUString>& _rRightColumns,
                                         const OUString&  _sColumnName,
-                                        const OUString&  _sExtraChars,
+                                        std::u16string_view  _sExtraChars,
                                         sal_Int32               _nMaxNameLen,
                                         const ::comphelper::UStringMixEqual& 
_aCase)
 {
@@ -301,7 +301,7 @@ void OWizColumnSelect::moveColumn(  weld::TreeView* _pRight,
                                     weld::TreeView const * _pLeft,
                                     std::vector< OUString>& _rRightColumns,
                                     const OUString&  _sColumnName,
-                                    const OUString&  _sExtraChars,
+                                    std::u16string_view  _sExtraChars,
                                     sal_Int32               _nMaxNameLen,
                                     const ::comphelper::UStringMixEqual& 
_aCase)
 {
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx 
b/dbaccess/source/ui/misc/WCopyTable.cxx
index a4f04f1aa037..e378ab35e2f0 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -1359,7 +1359,7 @@ void OCopyTableWizard::setOperation( const sal_Int16 
_nOperation )
 
 OUString OCopyTableWizard::convertColumnName(const TColumnFindFunctor&   
_rCmpFunctor,
                                                     const OUString&  
_sColumnName,
-                                                    const OUString&  
_sExtraChars,
+                                                    std::u16string_view  
_sExtraChars,
                                                     sal_Int32               
_nMaxNameLen)
 {
     OUString sAlias = _sColumnName;
diff --git a/filter/source/xmlfilterdetect/filterdetect.cxx 
b/filter/source/xmlfilterdetect/filterdetect.cxx
index 1a3f80cb589a..db4ee2d5fe84 100644
--- a/filter/source/xmlfilterdetect/filterdetect.cxx
+++ b/filter/source/xmlfilterdetect/filterdetect.cxx
@@ -35,13 +35,13 @@ using namespace com::sun::star::beans;
 
 namespace {
 
-OUString supportedByType( const OUString& clipBoardFormat,  const OUString& 
resultString, const OUString& checkType)
+OUString supportedByType( const OUString& clipBoardFormat, std::u16string_view 
resultString, const OUString& checkType)
 {
     OUString sTypeName;
     if ( clipBoardFormat.match("doctype:") )
     {
-        OUString tryStr = clipBoardFormat.copy(8);
-        if (resultString.indexOf(tryStr) >= 0)
+        std::u16string_view tryStr = clipBoardFormat.subView(8);
+        if (resultString.find(tryStr) != std::u16string_view::npos)
         {
             sTypeName = checkType;
         }
diff --git a/filter/source/xsltdialog/xmlfiltertestdialog.cxx 
b/filter/source/xsltdialog/xmlfiltertestdialog.cxx
index 6cbea30926fb..e130f6b552fc 100644
--- a/filter/source/xsltdialog/xmlfiltertestdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltertestdialog.cxx
@@ -419,7 +419,7 @@ void XMLFilterTestDialog::doExport( const Reference< 
XComponent >& xComp )
         if( xStorable.is() )
         {
             OUString const ext(".xml");
-            utl::TempFile aTempFile(OUString(), true, &ext);
+            utl::TempFile aTempFile(u"", true, &ext);
             OUString aTempFileURL( aTempFile.GetURL() );
 
             const application_info_impl* pAppInfo = getApplicationInfo( 
m_xFilterInfo->maExportService );
@@ -579,7 +579,7 @@ void XMLFilterTestDialog::import( const OUString& rURL )
         if( m_xCBXDisplaySource->get_active() )
         {
             OUString const ext(".xml");
-            TempFile aTempFile(OUString(), true, &ext);
+            TempFile aTempFile(u"", true, &ext);
             OUString aTempFileURL( aTempFile.GetURL() );
 
             Reference< XImportFilter > xImporter( 
mxContext->getServiceManager()->createInstanceWithContext( 
"com.sun.star.documentconversion.XSLTFilter", mxContext ), UNO_QUERY );
diff --git a/framework/inc/addonmenu.hxx b/framework/inc/addonmenu.hxx
index 461f81af2fc6..d6f244cdca4a 100644
--- a/framework/inc/addonmenu.hxx
+++ b/framework/inc/addonmenu.hxx
@@ -41,7 +41,7 @@ class AddonMenuManager
         static bool       HasAddonMenuElements();
 
         // Check if the context string matches the provided xModel context
-        static bool IsCorrectContext(std::u16string_view rModuleIdentifier, 
const OUString& rContext);
+        static bool IsCorrectContext(std::u16string_view rModuleIdentifier, 
std::u16string_view rContext);
 
         // Create the Add-Ons menu
         static VclPtr<PopupMenu> CreateAddonMenu( const css::uno::Reference< 
css::frame::XFrame >& rFrame );
diff --git a/framework/inc/uielement/menubarmerger.hxx 
b/framework/inc/uielement/menubarmerger.hxx
index 8ff81de4580a..3e2d4addd408 100644
--- a/framework/inc/uielement/menubarmerger.hxx
+++ b/framework/inc/uielement/menubarmerger.hxx
@@ -60,7 +60,7 @@ struct ReferencePathInfo
 namespace MenuBarMerger
 {
         bool       IsCorrectContext(
-            const OUString& aContext, std::u16string_view aModuleIdentifier );
+            std::u16string_view aContext, std::u16string_view 
aModuleIdentifier );
 
         void       RetrieveReferencePath( const OUString&,
                                                  std::vector< OUString >& 
aReferencePath );
diff --git a/framework/inc/uielement/toolbarmerger.hxx 
b/framework/inc/uielement/toolbarmerger.hxx
index ccfa73ad4d9e..157e02170340 100644
--- a/framework/inc/uielement/toolbarmerger.hxx
+++ b/framework/inc/uielement/toolbarmerger.hxx
@@ -62,7 +62,7 @@ struct ReferenceToolbarPathInfo
 class ToolBarMerger
 {
     public:
-        static bool       IsCorrectContext( const OUString& aContext, 
std::u16string_view aModuleIdentifier );
+        static bool       IsCorrectContext( std::u16string_view aContext, 
std::u16string_view aModuleIdentifier );
 
         static void       ConvertSeqSeqToVector( const css::uno::Sequence< 
css::uno::Sequence< css::beans::PropertyValue > >& rSequence,
                                                  AddonToolbarItemContainer& 
rContainer );
diff --git a/framework/source/fwe/classes/addonmenu.cxx 
b/framework/source/fwe/classes/addonmenu.cxx
index 582460a0ed2c..423a157f8be8 100644
--- a/framework/source/fwe/classes/addonmenu.cxx
+++ b/framework/source/fwe/classes/addonmenu.cxx
@@ -281,15 +281,14 @@ void AddonMenuManager::GetMenuEntry( const Sequence< 
PropertyValue >& rAddonMenu
 }
 
 // Check if the context string matches the provided xModel context
-bool AddonMenuManager::IsCorrectContext( std::u16string_view 
rModuleIdentifier, const OUString& rContext )
+bool AddonMenuManager::IsCorrectContext( std::u16string_view 
rModuleIdentifier, std::u16string_view rContext )
 {
-    if ( rContext.isEmpty() )
+    if ( rContext.empty() )
         return true;
 
     if ( !rModuleIdentifier.empty() )
     {
-        sal_Int32 nIndex = rContext.indexOf( rModuleIdentifier );
-        return ( nIndex >= 0 );
+        return rContext.find( rModuleIdentifier ) != std::u16string_view::npos;
     }
 
     return false;
diff --git a/framework/source/inc/loadenv/targethelper.hxx 
b/framework/source/inc/loadenv/targethelper.hxx
index e9eff6126174..1f0d93d7edce 100644
--- a/framework/source/inc/loadenv/targethelper.hxx
+++ b/framework/source/inc/loadenv/targethelper.hxx
@@ -82,7 +82,7 @@ class TargetHelper
             @param  sName
                     the new frame name, which should be checked.
          */
-        static bool isValidNameForFrame(const OUString& sName);
+        static bool isValidNameForFrame(std::u16string_view sName);
 };
 
 } // namespace framework
diff --git a/framework/source/loadenv/targethelper.cxx 
b/framework/source/loadenv/targethelper.cxx
index d531f81bc04f..7c06521da6d3 100644
--- a/framework/source/loadenv/targethelper.cxx
+++ b/framework/source/loadenv/targethelper.cxx
@@ -43,12 +43,12 @@ bool TargetHelper::matchSpecialTarget(std::u16string_view 
sCheckTarget  ,
     }
 }
 
-bool TargetHelper::isValidNameForFrame(const OUString& sName)
+bool TargetHelper::isValidNameForFrame(std::u16string_view sName)
 {
     // some special targets are really special ones :-)
     // E.g. the are really used to locate one frame inside the frame tree.
     if (
-        (sName.isEmpty()                                    ) ||
+        (sName.empty()                                    ) ||
         (TargetHelper::matchSpecialTarget(sName, ESpecialTarget::HelpTask)) ||
         (TargetHelper::matchSpecialTarget(sName, ESpecialTarget::Beamer)  )
        )
@@ -56,7 +56,7 @@ bool TargetHelper::isValidNameForFrame(const OUString& sName)
 
     // all other names must be checked more general
     // special targets starts with a "_".
-    return (sName.indexOf('_') != 0);
+    return (sName.find('_') != 0);
 }
 
 } // namespace framework
diff --git a/framework/source/uielement/menubarmerger.cxx 
b/framework/source/uielement/menubarmerger.cxx
index b353fc954d56..175cbe8bcde0 100644
--- a/framework/source/uielement/menubarmerger.cxx
+++ b/framework/source/uielement/menubarmerger.cxx
@@ -56,9 +56,9 @@ namespace framework
 
 */
 bool MenuBarMerger::IsCorrectContext(
-    const OUString& rContext, std::u16string_view rModuleIdentifier )
+    std::u16string_view rContext, std::u16string_view rModuleIdentifier )
 {
-    return ( rContext.isEmpty() || ( rContext.indexOf( rModuleIdentifier ) >= 
0 ));
+    return ( rContext.empty() || ( rContext.find( rModuleIdentifier ) != 
std::u16string_view::npos ));
 }
 
 void MenuBarMerger::RetrieveReferencePath(
diff --git a/framework/source/uielement/toolbarmerger.cxx 
b/framework/source/uielement/toolbarmerger.cxx
index faba3cb4e8d9..9e434f672c2d 100644
--- a/framework/source/uielement/toolbarmerger.cxx
+++ b/framework/source/uielement/toolbarmerger.cxx
@@ -92,10 +92,10 @@ using namespace ::com::sun::star;
 
 */
 bool ToolBarMerger::IsCorrectContext(
-    const OUString& rContext,
+    std::u16string_view rContext,
     std::u16string_view rModuleIdentifier )
 {
-    return ( rContext.isEmpty() || ( rContext.indexOf( rModuleIdentifier ) >= 
0 ));
+    return ( rContext.empty() || ( rContext.find( rModuleIdentifier ) != 
std::u16string_view::npos ));
 }
 
 /**
diff --git a/framework/source/uifactory/addonstoolbarfactory.cxx 
b/framework/source/uifactory/addonstoolbarfactory.cxx
index 655cf1843491..b9a1c95c90eb 100644
--- a/framework/source/uifactory/addonstoolbarfactory.cxx
+++ b/framework/source/uifactory/addonstoolbarfactory.cxx
@@ -83,15 +83,14 @@ AddonsToolBarFactory::AddonsToolBarFactory(
 {
 }
 
-bool IsCorrectContext( std::u16string_view rModuleIdentifier, const OUString& 
aContextList )
+bool IsCorrectContext( std::u16string_view rModuleIdentifier, 
std::u16string_view aContextList )
 {
-    if ( aContextList.isEmpty() )
+    if ( aContextList.empty() )
         return true;
 
     if ( !rModuleIdentifier.empty() )
     {
-        sal_Int32 nIndex = aContextList.indexOf( rModuleIdentifier );
-        return ( nIndex >= 0 );
+        return aContextList.find( rModuleIdentifier ) != 
std::u16string_view::npos;
     }
 
     return false;
diff --git a/include/connectivity/dbtools.hxx b/include/connectivity/dbtools.hxx
index 941a978aee69..58f34f170be8 100644
--- a/include/connectivity/dbtools.hxx
+++ b/include/connectivity/dbtools.hxx
@@ -519,7 +519,7 @@ namespace dbtools
 
         @see isValidSQLName
     */
-    OOO_DLLPUBLIC_DBTOOLS OUString convertName2SQLName(const OUString& 
_rName,const OUString& _rSpecials);
+    OOO_DLLPUBLIC_DBTOOLS OUString convertName2SQLName(const OUString& _rName, 
std::u16string_view _rSpecials);
 
     /** checks whether the given name is a valid SQL name
 
@@ -528,7 +528,7 @@ namespace dbtools
 
         @see convertName2SQLName
     */
-    OOO_DLLPUBLIC_DBTOOLS bool isValidSQLName( const OUString& _rName, const 
OUString& _rSpecials );
+    OOO_DLLPUBLIC_DBTOOLS bool isValidSQLName( const OUString& _rName, 
std::u16string_view _rSpecials );
 
     OOO_DLLPUBLIC_DBTOOLS
     void showError( const SQLExceptionInfo& _rInfo,
diff --git a/include/oox/dump/dumperbase.hxx b/include/oox/dump/dumperbase.hxx
index 6d8435e94a1e..f32ca388d07b 100644
--- a/include/oox/dump/dumperbase.hxx
+++ b/include/oox/dump/dumperbase.hxx
@@ -102,7 +102,7 @@ public:
     // file names -------------------------------------------------------------
 
     static OUString convertFileNameToUrl( const OUString& rFileName );
-    static sal_Int32    getFileNamePos( const OUString& rFileUrl );
+    static sal_Int32    getFileNamePos( std::u16string_view rFileUrl );
     static OUString getFileNameExtension( const OUString& rFileUrl );
 
     // input streams ----------------------------------------------------------
diff --git a/include/sfx2/docfile.hxx b/include/sfx2/docfile.hxx
index dcf90b7ebf78..6fd2ba45792a 100644
--- a/include/sfx2/docfile.hxx
+++ b/include/sfx2/docfile.hxx
@@ -251,7 +251,7 @@ public:
     SAL_DLLPRIVATE void DoBackup_Impl();
     SAL_DLLPRIVATE void DoInternalBackup_Impl( const ::ucbhelper::Content& 
aOriginalContent );
     SAL_DLLPRIVATE void DoInternalBackup_Impl( const ::ucbhelper::Content& 
aOriginalContent,
-                                                const OUString& aPrefix,
+                                                std::u16string_view aPrefix,
                                                 const OUString& aExtension,
                                                 const OUString& aDestDir );
 
diff --git a/include/sfx2/filedlghelper.hxx b/include/sfx2/filedlghelper.hxx
index ac43226a924c..b0b5303980c8 100644
--- a/include/sfx2/filedlghelper.hxx
+++ b/include/sfx2/filedlghelper.hxx
@@ -172,7 +172,7 @@ public:
                             FileDialogHelper(sal_Int16 nDialogType,
                                              FileDialogFlags nFlags,
                                              const OUString& aFilterUIName,
-                                             const OUString& aExtName,
+                                             std::u16string_view aExtName,
                                              const OUString& rStandardDir,
                                              const css::uno::Sequence< 
OUString >& rDenyList,
                                              weld::Window* pPreferredParent);
diff --git a/include/unotools/tempfile.hxx b/include/unotools/tempfile.hxx
index 60ae7710c59c..b7f691abb1cd 100644
--- a/include/unotools/tempfile.hxx
+++ b/include/unotools/tempfile.hxx
@@ -68,7 +68,7 @@ public:
                         @param  bCreateParentDirs If rLeadingChars contains a 
slash, this will create the required
                                 parent directories.
                     */
-                    TempFile( const OUString& rLeadingChars, bool 
_bStartWithZero=true, const OUString* pExtension=nullptr,
+                    TempFile( std::u16string_view rLeadingChars, bool 
_bStartWithZero=true, const OUString* pExtension=nullptr,
                               const OUString* pParent=nullptr, bool 
bCreateParentDirs=false );
 
                     TempFile(TempFile && other) noexcept;
diff --git a/include/vcl/toolkit/field.hxx b/include/vcl/toolkit/field.hxx
index 2efab32bad2c..836e59591850 100644
--- a/include/vcl/toolkit/field.hxx
+++ b/include/vcl/toolkit/field.hxx
@@ -315,10 +315,10 @@ protected:
 public:
     static OUString         FormatTime(const tools::Time& rNewTime, 
TimeFieldFormat eFormat, TimeFormat eHourFormat, bool bDuration, const 
LocaleDataWrapper& rLocaleData);
     static bool             TextToTime(std::u16string_view rStr, tools::Time& 
rTime, TimeFieldFormat eFormat, bool bDuration, const LocaleDataWrapper& 
rLocaleDataWrapper, bool _bSkipInvalidCharacters = true);
-    static int              GetTimeArea(TimeFieldFormat eFormat, const 
OUString& rText, int nCursor,
+    static int              GetTimeArea(TimeFieldFormat eFormat, 
std::u16string_view rText, int nCursor,
                                         const LocaleDataWrapper& 
rLocaleDataWrapper);
     static tools::Time      SpinTime(bool bUp, const tools::Time& rTime, 
TimeFieldFormat eFormat,
-                                     bool bDuration, const OUString& rText, 
int nCursor,
+                                     bool bDuration, std::u16string_view 
rText, int nCursor,
                                      const LocaleDataWrapper& 
rLocaleDataWrapper);
 
     virtual                 ~TimeFormatter() override;
@@ -423,7 +423,7 @@ protected:
 public:
     static OUString         FormatDate(const Date& rNewDate, 
ExtDateFieldFormat eFormat, const LocaleDataWrapper& rLocaleData, const 
Formatter::StaticFormatter& rStaticFormatter);
     static bool             TextToDate(const OUString& rStr, Date& rTime, 
ExtDateFieldFormat eFormat, const LocaleDataWrapper& rLocaleDataWrapper, const 
CalendarWrapper& rCalendarWrapper);
-    static int              GetDateArea(ExtDateFieldFormat eFormat, const 
OUString& rText, int nCursor, const LocaleDataWrapper& rLocaleDataWrapper);
+    static int              GetDateArea(ExtDateFieldFormat eFormat, 
std::u16string_view rText, int nCursor, const LocaleDataWrapper& 
rLocaleDataWrapper);
 
     virtual                 ~DateFormatter() override;
 
diff --git a/l10ntools/source/localize.cxx b/l10ntools/source/localize.cxx
index 8dc1f26422ac..d89f89150d04 100644
--- a/l10ntools/source/localize.cxx
+++ b/l10ntools/source/localize.cxx
@@ -117,13 +117,13 @@ void handleCommand(
 
 void InitPoFile(
     std::string_view rProject, const OString& rInPath,
-    const OString& rPotDir, const OString& rOutPath )
+    std::string_view rPotDir, const OString& rOutPath )
 {
     //Create directory for po file
     {
         OUString outDir =
             OStringToOUString(
-                rPotDir.subView(0,rPotDir.lastIndexOf('/')), 
RTL_TEXTENCODING_UTF8);
+                rPotDir.substr(0,rPotDir.rfind('/')), RTL_TEXTENCODING_UTF8);
         OUString outDirUrl;
         if (osl::FileBase::getFileURLFromSystemPath(outDir, outDirUrl)
             != osl::FileBase::E_None)
@@ -174,7 +174,7 @@ bool fileExists(const OString& fileName)
 
 OString gDestRoot;
 
-bool handleFile(std::string_view rProject, const OUString& rUrl, const 
OString& rPotDir)
+bool handleFile(std::string_view rProject, const OUString& rUrl, 
std::string_view rPotDir)
 {
     struct Command {
         std::u16string_view extension;
@@ -216,7 +216,7 @@ bool handleFile(std::string_view rProject, const OUString& 
rUrl, const OString&
                 if (bSimpleModuleCase)
                     sOutPath = gDestRoot + "/" + rProject + "/messages.pot";
                 else
-                    sOutPath = rPotDir + ".pot";
+                    sOutPath = OString::Concat(rPotDir) + ".pot";
 
                 if (!fileExists(sOutPath))
                 {
@@ -280,7 +280,7 @@ bool handleFile(std::string_view rProject, const OUString& 
rUrl, const OString&
 
 void handleFilesOfDir(
     std::vector<OUString>& aFiles, std::string_view rProject,
-    const OString& rPotDir )
+    std::string_view rPotDir )
 {
     ///Handle files in lexical order
     std::sort(aFiles.begin(), aFiles.end());
diff --git a/l10ntools/source/propmerge.cxx b/l10ntools/source/propmerge.cxx
index 2e2cf19e4cc6..0fa81e4fb5ac 100644
--- a/l10ntools/source/propmerge.cxx
+++ b/l10ntools/source/propmerge.cxx
@@ -24,11 +24,11 @@ namespace
 {
     //Find ascii escaped unicode
     sal_Int32 lcl_IndexOfUnicode(
-        const OString& rSource, const sal_Int32 nFrom = 0 )
+        std::string_view rSource, const sal_Int32 nFrom = 0 )
     {
         const OString sHexDigits = "0123456789abcdefABCDEF";
-        sal_Int32 nIndex = rSource.indexOf( "\\u", nFrom );
-        if( nIndex == -1 )
+        size_t nIndex = rSource.find( "\\u", nFrom );
+        if( nIndex == std::string_view::npos )
         {
             return -1;
         }
diff --git a/l10ntools/source/treemerge.cxx b/l10ntools/source/treemerge.cxx
index b50311cce6af..8e577f3dadbc 100644
--- a/l10ntools/source/treemerge.cxx
+++ b/l10ntools/source/treemerge.cxx
@@ -58,7 +58,7 @@ namespace
 
     // Update id and content of the topic
     xmlNodePtr lcl_UpdateTopic(
-        const xmlNodePtr pCurrent, const OString& rXhpRoot )
+        const xmlNodePtr pCurrent, std::string_view rXhpRoot )
     {
         xmlNodePtr pReturn = pCurrent;
         xmlChar* pID = xmlGetProp(pReturn, reinterpret_cast<const 
xmlChar*>("id"));
@@ -71,7 +71,7 @@ namespace
         {
             OString sNewID =
                 OString::Concat(sID.subView( 0, nFirstSlash + 1 )) +
-                rXhpRoot.subView( rXhpRoot.lastIndexOf('/') + 1 ) +
+                rXhpRoot.substr( rXhpRoot.rfind('/') + 1 ) +
                 sID.subView( sID.indexOf( '/', nFirstSlash + 1 ) );
             xmlSetProp(
                 pReturn, reinterpret_cast<const xmlChar*>("id"),
@@ -79,7 +79,7 @@ namespace
         }
 
         const OString sXhpPath =
-            rXhpRoot +
+            OString::Concat(rXhpRoot) +
             sID.subView(sID.indexOf('/', nFirstSlash + 1));
         xmlDocPtr pXhpFile = xmlParseFile( sXhpPath.getStr() );
         // if xhpfile is missing than put this topic into comment
diff --git a/linguistic/source/dicimp.cxx b/linguistic/source/dicimp.cxx
index 20fe8bbadac1..ea4718ff8bce 100644
--- a/linguistic/source/dicimp.cxx
+++ b/linguistic/source/dicimp.cxx
@@ -92,14 +92,14 @@ static uno::Reference< XLinguServiceManager2 > 
GetLngSvcMgr_Impl()
     return xRes;
 }
 
-static bool getTag(const OString &rLine, const char *pTagName,
+static bool getTag(std::string_view rLine, const char *pTagName,
     OString &rTagValue)
 {
-    sal_Int32 nPos = rLine.indexOf(pTagName);
-    if (nPos == -1)
+    size_t nPos = rLine.find(pTagName);
+    if (nPos == std::string_view::npos)
         return false;
 
-    rTagValue = comphelper::string::strip(rLine.subView(nPos + 
strlen(pTagName)),
+    rTagValue = comphelper::string::strip(rLine.substr(nPos + 
strlen(pTagName)),
         ' ');
     return true;
 }
diff --git a/linguistic/source/dlistimp.cxx b/linguistic/source/dlistimp.cxx
index 53be03d9d20a..2901273c3e30 100644
--- a/linguistic/source/dlistimp.cxx
+++ b/linguistic/source/dlistimp.cxx
@@ -673,13 +673,13 @@ uno::Sequence< OUString > SAL_CALL 
DicList::getSupportedServiceNames(  )
 
 
 static sal_Int32 lcl_GetToken( OUString &rToken,
-            const OUString &rText, sal_Int32 nPos, const OUString &rDelim )
+            const OUString &rText, sal_Int32 nPos, std::u16string_view rDelim )
 {
     sal_Int32 nRes = -1;
 
     if (rText.isEmpty() ||  nPos >= rText.getLength())
         rToken.clear();
-    else if (rDelim.isEmpty())
+    else if (rDelim.empty())
     {
         rToken = rText;
         if (!rToken.isEmpty())
@@ -690,7 +690,7 @@ static sal_Int32 lcl_GetToken( OUString &rToken,
         sal_Int32 i;
         for (i = nPos; i < rText.getLength(); ++i)
         {
-            if (-1 != rDelim.indexOf( rText[i] ))
+            if (std::string_view::npos != rDelim.find( rText[i] ))
                 break;
         }
 
diff --git a/oox/source/dump/dumperbase.cxx b/oox/source/dump/dumperbase.cxx
index 1638d51a6964..d68b382e38e4 100644
--- a/oox/source/dump/dumperbase.cxx
+++ b/oox/source/dump/dumperbase.cxx
@@ -71,10 +71,10 @@ OUString InputOutputHelper::convertFileNameToUrl( const 
OUString& rFileName )
     return OUString();
 }
 
-sal_Int32 InputOutputHelper::getFileNamePos( const OUString& rFileUrl )
+sal_Int32 InputOutputHelper::getFileNamePos( std::u16string_view rFileUrl )
 {
-    sal_Int32 nSepPos = rFileUrl.lastIndexOf( '/' );
-    return (nSepPos < 0) ? 0 : (nSepPos + 1);
+    size_t nSepPos = rFileUrl.find( '/' );
+    return (nSepPos == std::u16string_view::npos) ? 0 : (nSepPos + 1);
 }
 
 OUString InputOutputHelper::getFileNameExtension( const OUString& rFileUrl )
diff --git a/registry/source/regimpl.cxx b/registry/source/regimpl.cxx
index 7a32772b2f38..0d69c64cd000 100644
--- a/registry/source/regimpl.cxx
+++ b/registry/source/regimpl.cxx
@@ -750,11 +750,11 @@ RegError ORegistry::deleteKey(RegKeyHandle hKey, 
std::u16string_view keyName)
     return eraseKey(m_openKeyTable[ROOT], sFullKeyName);
 }
 
-RegError ORegistry::eraseKey(ORegKey* pKey, const OUString& keyName)
+RegError ORegistry::eraseKey(ORegKey* pKey, std::u16string_view keyName)
 {
     RegError _ret = RegError::NO_ERROR;
 
-    if (keyName.isEmpty())
+    if (keyName.empty())
     {
         return RegError::INVALID_KEYNAME;
     }
@@ -762,18 +762,18 @@ RegError ORegistry::eraseKey(ORegKey* pKey, const 
OUString& keyName)
     OUString     sFullKeyName(pKey->getName());
     OUString     sFullPath(sFullKeyName);
     OUString     sRelativKey;
-    sal_Int32    lastIndex = keyName.lastIndexOf('/');
+    size_t    lastIndex = keyName.rfind('/');
 
-    if (lastIndex >= 0)
+    if (lastIndex != std::u16string_view::npos)
     {
-        sRelativKey += keyName.subView(lastIndex + 1);
+        sRelativKey += keyName.substr(lastIndex + 1);
 
         if (sFullKeyName.getLength() > 1)
             sFullKeyName += keyName;
         else
-            sFullKeyName += keyName.subView(1);
+            sFullKeyName += keyName.substr(1);
 
-        sFullPath = sFullKeyName.copy(0, keyName.lastIndexOf('/') + 1);
+        sFullPath = sFullKeyName.copy(0, keyName.rfind('/') + 1);
     } else
     {
         if (sFullKeyName.getLength() > 1)
diff --git a/registry/source/regimpl.hxx b/registry/source/regimpl.hxx
index 19fa6b1e3232..973a24986106 100644
--- a/registry/source/regimpl.hxx
+++ b/registry/source/regimpl.hxx
@@ -102,7 +102,7 @@ public:
     friend class ORegKey;
 
 private:
-    RegError    eraseKey(ORegKey* pKey, const OUString& keyName);
+    RegError    eraseKey(ORegKey* pKey, std::u16string_view keyName);
 
     RegError    deleteSubkeysAndValues(ORegKey* pKey);
 
diff --git a/sc/inc/stringutil.hxx b/sc/inc/stringutil.hxx
index 8cdb5821d0a9..150a3ede269e 100644
--- a/sc/inc/stringutil.hxx
+++ b/sc/inc/stringutil.hxx
@@ -153,7 +153,7 @@ public:
     static OUString  SC_DLLPUBLIC GetQuotedToken(const OUString &rIn, 
sal_Int32 nToken, const OUString& rQuotedPairs,
                                         sal_Unicode cTok,  sal_Int32& rIndex );
 
-    static bool SC_DLLPUBLIC isMultiline( const OUString& rStr );
+    static bool SC_DLLPUBLIC isMultiline( std::u16string_view rStr );
 
     static ScInputStringType parseInputString(
         SvNumberFormatter& rFormatter, const OUString& rStr, LanguageType 
eLang );
diff --git a/sc/source/core/tool/stringutil.cxx 
b/sc/source/core/tool/stringutil.cxx
index 7532d720e57a..131853a5f162 100644
--- a/sc/source/core/tool/stringutil.cxx
+++ b/sc/source/core/tool/stringutil.cxx
@@ -421,15 +421,9 @@ OUString ScStringUtil::GetQuotedToken(const OUString &rIn, 
sal_Int32 nToken, con
     }
 }
 
-bool ScStringUtil::isMultiline( const OUString& rStr )
+bool ScStringUtil::isMultiline( std::u16string_view rStr )
 {
-    if (rStr.indexOf('\n') != -1)
-        return true;
-
-    if (rStr.indexOf('\r') != -1)
-        return true;
-
-    return false;
+    return rStr.find_first_of(u"\n\r") != std::u16string_view::npos;
 }
 
 ScInputStringType ScStringUtil::parseInputString(
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 4d5d1a1d8ac2..abd1190475fb 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -1107,9 +1107,9 @@ void ScInputHandler::HideTipBelow()
 namespace
 {
 
-bool lcl_hasSingleToken(const OUString& s, sal_Unicode c)
+bool lcl_hasSingleToken(std::u16string_view s, sal_Unicode c)
 {
-    return !s.isEmpty() && s.indexOf(c)<0;
+    return !s.empty() && s.find(c) == std::u16string_view::npos;
 }
 
 }
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 8c64e3a8416f..633fda283499 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -3422,7 +3422,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT bool 
TestImportDBF(SvStream &rStream)
     OUString sTmpDir = aTmpDir.GetURL();
 
     OUString sExtension(".dbf");
-    utl::TempFile aTempInput(OUString(), true, &sExtension, &sTmpDir);
+    utl::TempFile aTempInput(u"", true, &sExtension, &sTmpDir);
     aTempInput.EnableKillingFile();
 
     SvStream* pInputStream = aTempInput.GetStream(StreamMode::WRITE);
diff --git a/sc/source/ui/unoobj/exceldetect.cxx 
b/sc/source/ui/unoobj/exceldetect.cxx
index a50f9994f4d2..75694bbc9620 100644
--- a/sc/source/ui/unoobj/exceldetect.cxx
+++ b/sc/source/ui/unoobj/exceldetect.cxx
@@ -120,9 +120,9 @@ bool isExcel40(const uno::Reference<io::XInputStream>& 
xInStream)
     return true;
 }
 
-bool isTemplate(const OUString& rType)
+bool isTemplate(std::u16string_view rType)
 {
-    return rType.indexOf("_VorlageTemplate") != -1;
+    return rType.find(u"_VorlageTemplate") != std::u16string_view::npos;
 }
 
 }
diff --git a/sd/qa/unit/HtmlExportTest.cxx b/sd/qa/unit/HtmlExportTest.cxx
index dc7a2d73b381..c409dc12f468 100644
--- a/sd/qa/unit/HtmlExportTest.cxx
+++ b/sd/qa/unit/HtmlExportTest.cxx
@@ -21,7 +21,7 @@ private:
     {
         FileFormat* pFormat = getFormat(HTML);
         OUString aExt = "." + OUString::createFromAscii(pFormat->pName);
-        utl::TempFile aTempFile(OUString(), true, &aExt);
+        utl::TempFile aTempFile(u"", true, &aExt);
         aTempFile.EnableKillingFile();
         exportTo(xDocShRef.get(), pFormat, aTempFile);
         return parseHtml(aTempFile);
diff --git a/sd/source/ui/dlg/TemplateScanner.cxx 
b/sd/source/ui/dlg/TemplateScanner.cxx
index 04f5e8261e90..afd23ff855ee 100644
--- a/sd/source/ui/dlg/TemplateScanner.cxx
+++ b/sd/source/ui/dlg/TemplateScanner.cxx
@@ -65,25 +65,25 @@ public:
 /** Use a heuristic based on the URL of a top-level template folder to
     assign a priority that is used to sort the folders.
 */
-int Classify (const OUString& rsURL)
+int Classify (std::u16string_view rsURL)
 {
     int nPriority (0);
 
-    if (rsURL.isEmpty())
+    if (rsURL.empty())
         nPriority = 100;
-    else if (rsURL.indexOf("presnt")>=0)
+    else if (rsURL.find(u"presnt") != std::u16string_view::npos)
     {
         nPriority = 30;
     }
-    else if (rsURL.indexOf("layout")>=0)
+    else if (rsURL.find(u"layout") != std::u16string_view::npos)
     {
         nPriority = 20;
     }
-    else if (rsURL.indexOf("educate")>=0)
+    else if (rsURL.find(u"educate") != std::u16string_view::npos)
     {
         nPriority = 40;
     }
-    else if (rsURL.indexOf("finance")>=0)
+    else if (rsURL.find(u"finance")  != std::u16string_view::npos)
     {
         nPriority = 40;
     }
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index c8ea5cf45cd3..5a26931d3f66 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -961,7 +961,7 @@ static bool impl_showOfflineHelp(const OUString& rURL, 
weld::Widget* pDialogPare
     if (flatpak::isFlatpak() && 
!flatpak::createTemporaryHtmlDirectory(&parent)) {
         return false;
     }
-    ::utl::TempFile aTempFile("NewHelp", true, &aExtension, parent, false );
+    ::utl::TempFile aTempFile(u"NewHelp", true, &aExtension, parent, false );
 
     SvStream* pStream = aTempFile.GetStream(StreamMode::WRITE);
     pStream->SetStreamCharSet(RTL_TEXTENCODING_UTF8);
diff --git a/sfx2/source/dialog/filedlghelper.cxx 
b/sfx2/source/dialog/filedlghelper.cxx
index 06e9809d1d44..5b0ee7e97b9d 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -2398,7 +2398,7 @@ FileDialogHelper::FileDialogHelper(
     sal_Int16 nDialogType,
     FileDialogFlags nFlags,
     const OUString& aFilterUIName,
-    const OUString& aExtName,
+    std::u16string_view aExtName,
     const OUString& rStandardDir,
     const css::uno::Sequence< OUString >& rDenyList,
     weld::Window* pPreferredParent )
@@ -2407,9 +2407,9 @@ FileDialogHelper::FileDialogHelper(
 {
     // the wildcard here is expected in form "*.extension"
     OUString aWildcard;
-    if ( aExtName.indexOf( '*' ) != 0 )
+    if ( aExtName.find( '*' ) != 0 )
     {
-        if ( !aExtName.isEmpty() && aExtName.indexOf( '.' ) != 0 )
+        if ( !aExtName.empty() && aExtName.find( '.' ) != 0 )
             aWildcard = "*.";
         else
             aWildcard = "*";
@@ -2848,7 +2848,7 @@ ErrCode FileOpenDialog_Impl( weld::Window* pParent,
     // read-only to discourage editing (which would invalidate existing
     // signatures).
     if (nFlags & FileDialogFlags::SignPDF)
-        pDialog.reset(new FileDialogHelper(nDialogType, nFlags, 
SfxResId(STR_SFX_FILTERNAME_PDF), "pdf", rStandardDir, rDenyList, pParent));
+        pDialog.reset(new FileDialogHelper(nDialogType, nFlags, 
SfxResId(STR_SFX_FILTERNAME_PDF), u"pdf", rStandardDir, rDenyList, pParent));
     else
         pDialog.reset(new FileDialogHelper(nDialogType, nFlags, OUString(), 
nDialog, SfxFilterFlags::NONE, SfxFilterFlags::NONE, rStandardDir, rDenyList, 
pParent));
 
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index 61d8c38b3582..baa82c0bc0b3 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -2513,7 +2513,7 @@ void SfxMedium::Transfer_Impl()
 
 
 void SfxMedium::DoInternalBackup_Impl( const ::ucbhelper::Content& 
aOriginalContent,
-                                       const OUString& aPrefix,
+                                       std::u16string_view aPrefix,
                                        const OUString& aExtension,
                                        const OUString& aDestDir )
 {
@@ -4271,7 +4271,7 @@ OUString SfxMedium::CreateTempCopyWithExt( const 
OUString& aURL )
         sal_Int32 nPrefixLen = aURL.lastIndexOf( '.' );
         OUString aExt = ( nPrefixLen == -1 ) ? OUString() :  aURL.copy( 
nPrefixLen );
 
-        OUString aNewTempFileURL = ::utl::TempFile( OUString(), true, &aExt 
).GetURL();
+        OUString aNewTempFileURL = ::utl::TempFile( u"", true, &aExt 
).GetURL();
         if ( !aNewTempFileURL.isEmpty() )
         {
             INetURLObject aSource( aURL );
@@ -4344,7 +4344,7 @@ OUString SfxMedium::SwitchDocumentToTempFile()
         OUString const aExt = (nPrefixLen == -1)
                                 ? OUString()
                                 : aOrigURL.copy(nPrefixLen);
-        OUString aNewURL = ::utl::TempFile( OUString(), true, &aExt ).GetURL();
+        OUString aNewURL = ::utl::TempFile( u"", true, &aExt ).GetURL();
 
         // TODO/LATER: In future the aLogicName should be set to shared folder 
URL
         //             and a temporary file should be created. Transport_Impl 
should be impossible then.
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 0aa47efe74e0..d3c862a01ce5 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -863,14 +863,14 @@ bool ModelData_Impl::OutputFileDialog( sal_Int16 
nStoreMode,
             // this is a PDF export
             // the filter options has been shown already
             const OUString aFilterUIName = 
aPreselectedFilterPropsHM.getUnpackedValueOrDefault( "UIName", OUString() );
-            pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, 
aDialogFlags, aFilterUIName, "pdf", rStandardDir, rDenyList, pFrameWin ));
+            pFileDlg.reset(new sfx2::FileDialogHelper( aDialogMode, 
aDialogFlags, aFilterUIName, u"pdf", rStandardDir, rDenyList, pFrameWin ));
             pFileDlg->SetCurrentFilter( aFilterUIName );
         }
         else if ((nStoreMode & EPUBEXPORT_REQUESTED) && 
!aPreselectedFilterPropsHM.empty())
         {
             // This is an EPUB export, the filter options has been shown 
already.
             const OUString aFilterUIName = 
aPreselectedFilterPropsHM.getUnpackedValueOrDefault( "UIName", OUString() );
-            pFileDlg.reset(new sfx2::FileDialogHelper(aDialogMode, 
aDialogFlags, aFilterUIName, "epub", rStandardDir, rDenyList, pFrameWin));
+            pFileDlg.reset(new sfx2::FileDialogHelper(aDialogMode, 
aDialogFlags, aFilterUIName, u"epub", rStandardDir, rDenyList, pFrameWin));
             pFileDlg->SetCurrentFilter(aFilterUIName);
         }
         else
diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx
index 2440a92be948..0b14c492ed23 100644
--- a/starmath/source/edit.cxx
+++ b/starmath/source/edit.cxx
@@ -662,9 +662,9 @@ void SmEditWindow::SelPrevMark()
 }
 
 // returns true iff 'rText' contains a mark
-static bool HasMark(const OUString& rText)
+static bool HasMark(std::u16string_view rText)
 {
-    return rText.indexOf("<?>") != -1;
+    return rText.find(u"<?>") != std::u16string_view::npos;
 }
 
 ESelection SmEditWindow::GetSelection() const
diff --git a/svx/source/sidebar/inspector/InspectorTextPanel.cxx 
b/svx/source/sidebar/inspector/InspectorTextPanel.cxx
index 22f1aa90e759..0b5da3d2d14e 100644
--- a/svx/source/sidebar/inspector/InspectorTextPanel.cxx
+++ b/svx/source/sidebar/inspector/InspectorTextPanel.cxx
@@ -55,12 +55,14 @@ InspectorTextPanel::InspectorTextPanel(weld::Widget* 
pParent)
     mpListBoxStyles->set_column_fixed_widths(aWidths);
 }
 
-static bool GetPropertyValues(const OUString& rPropName, const uno::Any& rAny, 
OUString& rString)
+static bool GetPropertyValues(std::u16string_view rPropName, const uno::Any& 
rAny,
+                              OUString& rString)
 {
     // Hide Asian and Complex properties
-    if (!SvtCJKOptions::IsCJKFontEnabled() && rPropName.indexOf("Asian") != -1)
+    if (!SvtCJKOptions::IsCJKFontEnabled() && rPropName.find(u"Asian") != 
std::u16string_view::npos)
         return false;
-    if (!SvtCTLOptions().IsCTLFontEnabled() && rPropName.indexOf("Complex") != 
-1)
+    if (!SvtCTLOptions().IsCTLFontEnabled()
+        && rPropName.find(u"Complex") != std::u16string_view::npos)
         return false;
 
     if (bool bValue; rAny >>= bValue)
@@ -77,14 +79,14 @@ static bool GetPropertyValues(const OUString& rPropName, 
const uno::Any& rAny, O
     }
     else if (tools::Long nValueLong; rAny >>= nValueLong)
     {
-        if (rPropName.indexOf("Color") != -1)
+        if (rPropName.find(u"Color") != std::u16string_view::npos)
             rString = "0x" + OUString::number(nValueLong, 16);
         else
             rString = OUString::number(nValueLong);
     }
     else if (double fValue; rAny >>= fValue)
     {
-        if (rPropName.indexOf("Weight") != -1)
+        if (rPropName.find(u"Weight") != std::u16string_view::npos)
             rString = SvxResId(fValue > 100 ? RID_BOLD : RID_NORMAL);
         else
             rString = OUString::number((round(fValue * 100)) / 100.00);
diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx
index 3ba4abc9719a..ae59144b9be8 100644
--- a/sw/qa/core/uwriter.cxx
+++ b/sw/qa/core/uwriter.cxx
@@ -196,7 +196,7 @@ void SwDocTest::testFileNameFields()
 {
     //Here's a file name with some chars in it that will be %% encoded, when 
expanding
     //SwFileNameFields we want to restore the original readable filename
-    utl::TempFile aTempFile("demo [name]");
+    utl::TempFile aTempFile(u"demo [name]");
     aTempFile.EnableKillingFile();
 
     INetURLObject aTempFileURL(aTempFile.GetURL());
diff --git a/sw/source/filter/html/wrthtml.cxx 
b/sw/source/filter/html/wrthtml.cxx
index d1e5f64408fb..487fe7e36009 100644
--- a/sw/source/filter/html/wrthtml.cxx
+++ b/sw/source/filter/html/wrthtml.cxx
@@ -1547,7 +1547,7 @@ sal_uInt16 SwHTMLWriter::GetHTMLFontSize( sal_uInt32 
nHeight ) const
 
 // Paragraphs with Table of Contents and other index styles will be typeset 
with
 // dot leaders at the position of the last tabulator in PrintLayout (CSS2) mode
-sal_Int32 SwHTMLWriter::indexOfDotLeaders( sal_uInt16 nPoolId, const OUString& 
rStr )
+sal_Int32 SwHTMLWriter::indexOfDotLeaders( sal_uInt16 nPoolId, 
std::u16string_view rStr )
 {
     if (m_bCfgPrintLayout && ((nPoolId >= RES_POOLCOLL_TOX_CNTNT1 && nPoolId 
<= RES_POOLCOLL_TOX_CNTNT5) ||
         (nPoolId >= RES_POOLCOLL_TOX_IDX1 && nPoolId <= RES_POOLCOLL_TOX_IDX3) 
||
@@ -1555,9 +1555,9 @@ sal_Int32 SwHTMLWriter::indexOfDotLeaders( sal_uInt16 
nPoolId, const OUString& r
         nPoolId == RES_POOLCOLL_TOX_ILLUS1 || nPoolId == 
RES_POOLCOLL_TOX_TABLES1 ||
         nPoolId == RES_POOLCOLL_TOX_OBJECT1 ||
         (nPoolId >= RES_POOLCOLL_TOX_AUTHORITIES1 && nPoolId <= 
RES_POOLCOLL_TOX_USER10))) {
-             sal_Int32 i = rStr.lastIndexOf('\t');
+             size_t i = rStr.rfind('\t');
              // there are only ASCII (Latin-1) characters after the tabulator
-             if (i > -1 && OUStringToOString(rStr.subView(i + 1), 
RTL_TEXTENCODING_ASCII_US).indexOf('?') == -1)
+             if (i != std::u16string_view::npos && 
OUStringToOString(rStr.substr(i + 1), RTL_TEXTENCODING_ASCII_US).indexOf('?') 
== -1)
                  return i;
     }
     return -1;
diff --git a/sw/source/filter/html/wrthtml.hxx 
b/sw/source/filter/html/wrthtml.hxx
index 911eaa629aed..3f6860a6d160 100644
--- a/sw/source/filter/html/wrthtml.hxx
+++ b/sw/source/filter/html/wrthtml.hxx
@@ -595,7 +595,7 @@ public:
 
     FieldUnit GetCSS1Unit() const { return m_eCSS1Unit; }
 
-    sal_Int32 indexOfDotLeaders( sal_uInt16 nPoolId, const OUString& rText );
+    sal_Int32 indexOfDotLeaders( sal_uInt16 nPoolId, std::u16string_view rText 
);
 
     /// Determines the prefix string needed to respect the requested namespace 
alias.
     OString GetNamespace() const;
diff --git a/sw/source/ui/dbui/mmlayoutpage.cxx 
b/sw/source/ui/dbui/mmlayoutpage.cxx
index 763ae5808138..86d705b2bac6 100644
--- a/sw/source/ui/dbui/mmlayoutpage.cxx
+++ b/sw/source/ui/dbui/mmlayoutpage.cxx
@@ -95,7 +95,7 @@ SwMailMergeLayoutPage::SwMailMergeLayoutPage(weld::Container* 
pPage, SwMailMerge
         //creating with extension is not supported by a static method :-(
         OUString const sExt(
             
comphelper::string::stripStart(pSfxFlt->GetDefaultExtension(),'*'));
-        utl::TempFile aTempFile( OUString(), true, &sExt );
+        utl::TempFile aTempFile( u"", true, &sExt );
         m_sExampleURL = aTempFile.GetURL();
         aTempFile.EnableKillingFile();
     }
diff --git a/sw/source/uibase/misc/glosdoc.cxx 
b/sw/source/uibase/misc/glosdoc.cxx
index d147505edbdd..e5f29f1d4aa7 100644
--- a/sw/source/uibase/misc/glosdoc.cxx
+++ b/sw/source/uibase/misc/glosdoc.cxx
@@ -78,7 +78,7 @@ OUString lcl_CheckFileName( const OUString& rNewFilePath,
 
     OUString rSG = SwGlossaries::GetExtension();
     //generate generic name
-    utl::TempFile aTemp("group", true, &rSG, &rNewFilePath);
+    utl::TempFile aTemp(u"group", true, &rSG, &rNewFilePath);
     aTemp.EnableKillingFile();
 
     INetURLObject aTempURL( aTemp.GetURL() );
diff --git a/sw/source/uibase/uno/unomailmerge.cxx 
b/sw/source/uibase/uno/unomailmerge.cxx
index a6bc6104f43e..203879289a9b 100644
--- a/sw/source/uibase/uno/unomailmerge.cxx
+++ b/sw/source/uibase/uno/unomailmerge.cxx
@@ -766,7 +766,7 @@ uno::Any SAL_CALL SwXMailMerge::execute(
             FILTER_XML,
             SwDocShell::Factory().GetFilterContainer() );
     OUString 
aExtension(comphelper::string::stripStart(pSfxFlt->GetDefaultExtension(), '*'));
-    utl::TempFile aTempFile( "SwMM", true, &aExtension );
+    utl::TempFile aTempFile( u"SwMM", true, &aExtension );
     m_aTmpFileName = aTempFile.GetURL();
 
     Reference< XStorable > xStorable( xCurModel, UNO_QUERY );
diff --git a/ucb/source/ucp/webdav-curl/CurlUri.cxx 
b/ucb/source/ucp/webdav-curl/CurlUri.cxx
index 035c12a132ef..fcd3b652063c 100644
--- a/ucb/source/ucp/webdav-curl/CurlUri.cxx
+++ b/ucb/source/ucp/webdav-curl/CurlUri.cxx
@@ -298,12 +298,12 @@ OUString DecodeURI(OUString const& rURI)
     return rtl::Uri::decode(rURI, rtl_UriDecodeWithCharset, 
RTL_TEXTENCODING_UTF8);
 }
 
-OUString ConnectionEndPointString(OUString const& rHostName, sal_uInt16 const 
nPort)
+OUString ConnectionEndPointString(std::u16string_view rHostName, sal_uInt16 
const nPort)
 {
     OUStringBuffer aBuf;
 
     // Is host a numeric IPv6 address?
-    if ((rHostName.indexOf(':') != -1) && (rHostName[0] != '['))
+    if ((rHostName.find(':') != std::u16string_view::npos) && (rHostName[0] != 
'['))
     {
         aBuf.append("[");
         aBuf.append(rHostName);
diff --git a/ucb/source/ucp/webdav-curl/CurlUri.hxx 
b/ucb/source/ucp/webdav-curl/CurlUri.hxx
index c9e8d33d279d..56336af78169 100644
--- a/ucb/source/ucp/webdav-curl/CurlUri.hxx
+++ b/ucb/source/ucp/webdav-curl/CurlUri.hxx
@@ -87,7 +87,7 @@ public:
 
 OUString EncodeSegment(OUString const& rSegment);
 OUString DecodeURI(OUString const& rURI);
-OUString ConnectionEndPointString(OUString const& rHost, sal_uInt16 nPort);
+OUString ConnectionEndPointString(std::u16string_view rHost, sal_uInt16 nPort);
 
 } // namespace http_dav_ucp
 
diff --git a/ucbhelper/source/client/proxydecider.cxx 
b/ucbhelper/source/client/proxydecider.cxx
index 8c95f558f86b..1e2b0adfd2d2 100644
--- a/ucbhelper/source/client/proxydecider.cxx
+++ b/ucbhelper/source/client/proxydecider.cxx
@@ -136,7 +136,7 @@ class InternetProxyDecider_Impl :
     mutable HostnameCache                    m_aHostnames;
 
 private:
-    bool shouldUseProxy( const OUString & rHost,
+    bool shouldUseProxy( std::u16string_view rHost,
                          sal_Int32 nPort,
                          bool bUseFullyQualified ) const;
 public:
@@ -399,13 +399,13 @@ void InternetProxyDecider_Impl::dispose()
 }
 
 
-bool InternetProxyDecider_Impl::shouldUseProxy( const OUString & rHost,
+bool InternetProxyDecider_Impl::shouldUseProxy( std::u16string_view rHost,
                                                 sal_Int32 nPort,
                                                 bool bUseFullyQualified ) const
 {
     OUStringBuffer aBuffer;
 
-    if ( ( rHost.indexOf( ':' ) != -1 ) &&
+    if ( ( rHost.find( ':' ) != std::u16string_view::npos ) &&
          ( rHost[ 0 ] != '[' ) )
     {
         // host is given as numeric IPv6 address
diff --git a/unoidl/source/legacyprovider.cxx b/unoidl/source/legacyprovider.cxx
index 1d147a975582..ab99fcf59dd1 100644
--- a/unoidl/source/legacyprovider.cxx
+++ b/unoidl/source/legacyprovider.cxx
@@ -26,9 +26,9 @@ namespace unoidl::detail {
 
 namespace {
 
-std::vector< OUString > translateAnnotations(OUString const & documentation) {
+std::vector< OUString > translateAnnotations(std::u16string_view 
documentation) {
     std::vector< OUString > ans;
-    if (documentation.indexOf("@deprecated") != -1) {
+    if (documentation.find(u"@deprecated") != std::u16string_view::npos) {
         //TODO: this check is somewhat crude
         ans.push_back("deprecated");
     }
diff --git a/unoidl/source/unoidl-check.cxx b/unoidl/source/unoidl-check.cxx
index 58b179ea41b0..253079024106 100644
--- a/unoidl/source/unoidl-check.cxx
+++ b/unoidl/source/unoidl-check.cxx
@@ -886,10 +886,10 @@ void checkMap(
     }
 }
 
-bool valid(OUString const & identifier) {
-    for (sal_Int32 i = 0;; ++i) {
-        i = identifier.indexOf('_', i);
-        if (i == -1) {
+bool valid(std::u16string_view identifier) {
+    for (size_t i = 0;; ++i) {
+        i = identifier.find('_', i);
+        if (i == std::u16string_view::npos) {
             return true;
         }
         if (!rtl::isAsciiUpperCase(identifier[0]) || identifier[i - 1] == '_') 
{
diff --git a/unotools/source/ucbhelper/tempfile.cxx 
b/unotools/source/ucbhelper/tempfile.cxx
index cccad1c367f0..4fac0bacd782 100644
--- a/unotools/source/ucbhelper/tempfile.cxx
+++ b/unotools/source/ucbhelper/tempfile.cxx
@@ -247,17 +247,17 @@ namespace
 };
 
 static OUString lcl_createName(
-    const OUString& rLeadingChars, Tokens & tokens, const OUString* pExtension,
+    std::u16string_view rLeadingChars, Tokens & tokens, const OUString* 
pExtension,
     const OUString* pParent, bool bDirectory, bool bKeep, bool bLock,
     bool bCreateParentDirs )
 {
     OUString aName = ConstructTempDir_Impl( pParent, bCreateParentDirs );
     if ( bCreateParentDirs )
     {
-        sal_Int32 nOffset = rLeadingChars.lastIndexOf("/");
+        size_t nOffset = rLeadingChars.rfind(u"/");
         OUString aDirName;
-        if (-1 != nOffset)
-            aDirName = aName + rLeadingChars.subView( 0, nOffset );
+        if (std::u16string_view::npos != nOffset)
+            aDirName = aName + rLeadingChars.substr( 0, nOffset );
         else
             aDirName = aName;
         TempDirCreatedObserver observer;
@@ -365,7 +365,7 @@ TempFile::TempFile( const OUString* pParent, bool 
bDirectory )
     aName = CreateTempName_Impl( pParent, true, bDirectory );
 }
 
-TempFile::TempFile( const OUString& rLeadingChars, bool _bStartWithZero,
+TempFile::TempFile( std::u16string_view rLeadingChars, bool _bStartWithZero,
                     const OUString* pExtension, const OUString* pParent,
                     bool bCreateParentDirs )
     : bIsDirectory( false )
diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx
index 1fa8d4d0be5b..67c0357a8ebf 100644
--- a/vcl/source/control/field2.cxx
+++ b/vcl/source/control/field2.cxx
@@ -1617,7 +1617,7 @@ bool DateFormatter::ImplAllowMalformedInput() const
     return !IsEnforceValidValue();
 }
 
-int DateFormatter::GetDateArea(ExtDateFieldFormat eFormat, const OUString& 
rText, int nCursor, const LocaleDataWrapper& rLocaleDataWrapper)
+int DateFormatter::GetDateArea(ExtDateFieldFormat eFormat, std::u16string_view 
rText, int nCursor, const LocaleDataWrapper& rLocaleDataWrapper)
 {
     sal_Int8 nDateArea = 0;
 
@@ -1629,12 +1629,12 @@ int DateFormatter::GetDateArea(ExtDateFieldFormat 
eFormat, const OUString& rText
     else
     {
         // search area
-        sal_Int32 nPos = 0;
+        size_t nPos = 0;
         OUString aDateSep = ImplGetDateSep(rLocaleDataWrapper, eFormat);
         for ( sal_Int8 i = 1; i <= 3; i++ )
         {
-            nPos = rText.indexOf( aDateSep, nPos );
-            if (nPos < 0 || nPos >= nCursor)
+            nPos = rText.find( aDateSep, nPos );
+            if (nPos == std::u16string_view::npos || 
static_cast<sal_Int32>(nPos) >= nCursor)
             {
                 nDateArea = i;
                 break;
@@ -2581,7 +2581,7 @@ bool TimeFormatter::ImplAllowMalformedInput() const
     return !IsEnforceValidValue();
 }
 
-int TimeFormatter::GetTimeArea(TimeFieldFormat eFormat, const OUString& rText, 
int nCursor,
+int TimeFormatter::GetTimeArea(TimeFieldFormat eFormat, std::u16string_view 
rText, int nCursor,
                                      const LocaleDataWrapper& 
rLocaleDataWrapper)
 {
     int nTimeArea = 0;
@@ -2590,18 +2590,18 @@ int TimeFormatter::GetTimeArea(TimeFieldFormat eFormat, 
const OUString& rText, i
     if (eFormat != TimeFieldFormat::F_SEC_CS)
     {
         //Which area is the cursor in of HH:MM:SS.TT
-        for ( sal_Int32 i = 1, nPos = 0; i <= 4; i++ )
+        for ( size_t i = 1, nPos = 0; i <= 4; i++ )
         {
-            sal_Int32 nPos1 = rText.indexOf(rLocaleDataWrapper.getTimeSep(), 
nPos);
-            sal_Int32 nPos2 = 
rText.indexOf(rLocaleDataWrapper.getTime100SecSep(), nPos);
+            size_t nPos1 = rText.find(rLocaleDataWrapper.getTimeSep(), nPos);
+            size_t nPos2 = rText.find(rLocaleDataWrapper.getTime100SecSep(), 
nPos);
             //which ever comes first, bearing in mind that one might not be 
there
-            if (nPos1 >= 0 && nPos2 >= 0)
+            if (nPos1 != std::u16string_view::npos && nPos2 != 
std::u16string_view::npos)
                 nPos = std::min(nPos1, nPos2);
-            else if (nPos1 >= 0)
+            else if (nPos1 != std::u16string_view::npos)
                 nPos = nPos1;
             else
                 nPos = nPos2;
-            if (nPos < 0 || nPos >= nCursor)
+            if (nPos == std::u16string_view::npos || 
static_cast<sal_Int32>(nPos) >= nCursor)
             {
                 nTimeArea = i;
                 break;
@@ -2612,8 +2612,8 @@ int TimeFormatter::GetTimeArea(TimeFieldFormat eFormat, 
const OUString& rText, i
     }
     else
     {
-        sal_Int32 nPos = rText.indexOf(rLocaleDataWrapper.getTime100SecSep());
-        if (nPos < 0 || nPos >= nCursor)
+        size_t nPos = rText.find(rLocaleDataWrapper.getTime100SecSep());
+        if (nPos == std::u16string_view::npos || static_cast<sal_Int32>(nPos) 
>= nCursor)
             nTimeArea = 3;
         else
             nTimeArea = 4;
@@ -2623,7 +2623,7 @@ int TimeFormatter::GetTimeArea(TimeFieldFormat eFormat, 
const OUString& rText, i
 }
 
 tools::Time TimeFormatter::SpinTime(bool bUp, const tools::Time& rTime, 
TimeFieldFormat eFormat,
-                                    bool bDuration, const OUString& rText, int 
nCursor,
+                                    bool bDuration, std::u16string_view rText, 
int nCursor,
                                     const LocaleDataWrapper& 
rLocaleDataWrapper)
 {
     tools::Time aTime(rTime);
diff --git a/xmloff/source/chart/SchXMLTableContext.cxx 
b/xmloff/source/chart/SchXMLTableContext.cxx
index ac8a9f3e3f51..a59a28b2546b 100644
--- a/xmloff/source/chart/SchXMLTableContext.cxx
+++ b/xmloff/source/chart/SchXMLTableContext.cxx
@@ -181,13 +181,13 @@ bool lcl_mapContainsRange(
 }
 
 bool lcl_tableOfRangeMatches(
-    const OUString & rRange,
+    std::u16string_view rRange,
     std::u16string_view rTableName )
 {
     // both strings are non-empty and the table name is part of the range
-    return ( !rRange.isEmpty() &&
+    return ( !rRange.empty() &&
              !rTableName.empty() &&
-             (rRange.indexOf( rTableName ) != -1 ));
+             (rRange.find( rTableName ) != std::u16string_view::npos ));
 }
 
 } // anonymous namespace
diff --git a/xmloff/source/core/xmlmultiimagehelper.cxx 
b/xmloff/source/core/xmlmultiimagehelper.cxx
index b3529acc586e..000c6151ee81 100644
--- a/xmloff/source/core/xmlmultiimagehelper.cxx
+++ b/xmloff/source/core/xmlmultiimagehelper.cxx
@@ -19,19 +19,19 @@
 
 #include <rtl/ustring.hxx>
 #include <xmlmultiimagehelper.hxx>
-
+#include <o3tl/string_view.hxx>
 #include <comphelper/graphicmimetype.hxx>
 
 using namespace ::com::sun::star;
 
 namespace
 {
-    OUString getMimeTypeForURL(const OUString& rString)
+    OUString getMimeTypeForURL(std::u16string_view rString)
     {
         OUString sMimeType;
-        if (rString.startsWith("vnd.sun.star.Package"))
+        if (o3tl::starts_with(rString, u"vnd.sun.star.Package"))
         {
-            OString aExtension = 
OUStringToOString(rString.subView(rString.lastIndexOf(".") + 1), 
RTL_TEXTENCODING_ASCII_US);
+            OString aExtension = 
OUStringToOString(rString.substr(rString.rfind('.') + 1), 
RTL_TEXTENCODING_ASCII_US);
             sMimeType = 
comphelper::GraphicMimeTypeHelper::GetMimeTypeForExtension(aExtension);
         }
         return sMimeType;

Reply via email to