reportdesign/inc/conditionalexpression.hxx              |    2 +-
 reportdesign/source/core/misc/conditionalexpression.cxx |   10 ++--------
 reportdesign/source/filter/xml/xmlExport.cxx            |    7 +------
 3 files changed, 4 insertions(+), 15 deletions(-)

New commits:
commit 8364ed3d2f927c6bdb874baff96e0affcc20977b
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Sun Sep 4 16:08:26 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Sep 5 15:52:12 2022 +0200

    Simplify by using replace instead of replaceAt in 2 loops in reportdesign
    
    It required to fix loplugin:stringviewparam error during build
    
    Change-Id: I0111ea5001d18df2913aaa9c154371a86ae7f3bb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139370
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/reportdesign/inc/conditionalexpression.hxx 
b/reportdesign/inc/conditionalexpression.hxx
index 12b84f95ee42..1f42a9badaac 100644
--- a/reportdesign/inc/conditionalexpression.hxx
+++ b/reportdesign/inc/conditionalexpression.hxx
@@ -57,7 +57,7 @@ namespace rptui
                 <TRUE/> if and only if the expression string could be 
successfully matched to
                 the pattern.
         */
-        bool                matchExpression( const OUString& _rExpression, 
const OUString& _rFieldDataSource, OUString& _out_rLHS, OUString& _out_rRHS ) 
const;
+        bool                matchExpression( const OUString& _rExpression, 
const std::u16string_view _rFieldDataSource, OUString& _out_rLHS, OUString& 
_out_rRHS ) const;
     };
 
 
diff --git a/reportdesign/source/core/misc/conditionalexpression.cxx 
b/reportdesign/source/core/misc/conditionalexpression.cxx
index 0fe6dbb40702..0a0eda11f3fd 100644
--- a/reportdesign/source/core/misc/conditionalexpression.cxx
+++ b/reportdesign/source/core/misc/conditionalexpression.cxx
@@ -64,7 +64,7 @@ namespace rptui
     }
 
 
-    bool ConditionalExpression::matchExpression( const OUString& _rExpression, 
const OUString& _rFieldDataSource, OUString& _out_rLHS, OUString& _out_rRHS ) 
const
+    bool ConditionalExpression::matchExpression( const OUString& _rExpression, 
const std::u16string_view _rFieldDataSource, OUString& _out_rLHS, OUString& 
_out_rRHS ) const
     {
         // if we had regular expression, the matching would be pretty easy ...
         // just replace $1 and $2 in the pattern with (.*), and then get them 
with \1 resp. \2.
@@ -72,13 +72,7 @@ namespace rptui
 
         // Okay, let's start with replacing all $$ in our pattern with the 
actual field data source
         OUString sMatchExpression( m_sPattern );
-        static const OUStringLiteral sFieldDataPattern( u"$$" );
-        sal_Int32 nIndex( sMatchExpression.indexOf( sFieldDataPattern ) );
-        while ( nIndex != -1 )
-        {
-            sMatchExpression = sMatchExpression.replaceAt( nIndex, 
sFieldDataPattern.getLength(), _rFieldDataSource );
-            nIndex = sMatchExpression.indexOf( sFieldDataPattern, nIndex + 
_rFieldDataSource.getLength() );
-        }
+        sMatchExpression = sMatchExpression.replaceAll(u"$$", 
_rFieldDataSource);
 
         static const OUStringLiteral sLHSPattern( u"$1" );
         static const OUStringLiteral sRHSPattern( u"$2" );
diff --git a/reportdesign/source/filter/xml/xmlExport.cxx 
b/reportdesign/source/filter/xml/xmlExport.cxx
index 7472b549e52e..24e2261cbdf1 100644
--- a/reportdesign/source/filter/xml/xmlExport.cxx
+++ b/reportdesign/source/filter/xml/xmlExport.cxx
@@ -1039,12 +1039,7 @@ void ORptExport::exportGroup(const 
Reference<XReportDefinition>& _xReportDefinit
             OUString sExpression  = sField;
             if ( !sExpression.isEmpty() )
             {
-                sal_Int32 nIndex = sExpression.indexOf('"');
-                while ( nIndex > -1 )
-                {
-                    sExpression = sExpression.replaceAt(nIndex, 1, u"\"\"");
-                    nIndex = sExpression.indexOf('"',nIndex+2);
-                }
+                sExpression = sExpression.replaceAll(u"\"", u"\"\"");
 
                 TGroupFunctionMap::const_iterator aGroupFind = 
m_aGroupFunctionMap.find(xGroup);
                 if ( aGroupFind != m_aGroupFunctionMap.end() )

Reply via email to