[PATCH] Use OUString and sal_Int32 in filterText()

Christina Roßmanith (via_Code_Review) gerrit at gerrit.libreoffice.org
Sat Mar 23 15:16:03 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2956

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/56/2956/1

Use OUString and sal_Int32 in filterText()

Change-Id: I31437125b51b07be490de3d979e193fad9750f51
---
M vcl/generic/print/genpspgraphics.cxx
M vcl/inc/generic/genpspgraphics.h
M vcl/inc/salgdi.hxx
M vcl/source/gdi/outdev3.cxx
M vcl/source/gdi/salgdilayout.cxx
5 files changed, 20 insertions(+), 17 deletions(-)



diff --git a/vcl/generic/print/genpspgraphics.cxx b/vcl/generic/print/genpspgraphics.cxx
index 4149e41..773cf6e 100644
--- a/vcl/generic/print/genpspgraphics.cxx
+++ b/vcl/generic/print/genpspgraphics.cxx
@@ -1236,12 +1236,13 @@
     pFontList->Add( pFD );
 }
 
-bool GenPspGraphics::filterText( const rtl::OUString& rOrig, rtl::OUString& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop )
+bool GenPspGraphics::filterText( const rtl::OUString& rOrig, rtl::OUString& rNewText, sal_Int32 nIndex, sal_Int32& rLen, sal_Int32& rCutStart, sal_Int32& rCutStop )
 {
     if( ! m_pPhoneNr )
         return false;
 
-    rCutStop = rCutStart = STRING_NOTFOUND;
+    rNewText = rOrig;
+    rCutStop = rCutStart = -1;
 
 #define FAX_PHONE_TOKEN          "@@#"
 #define FAX_PHONE_TOKEN_LENGTH   3
@@ -1261,7 +1262,7 @@
         {
             nStart = nPos;
             m_bPhoneCollectionActive = true;
-            m_aPhoneCollection = rtl::OUString();
+            m_aPhoneCollection = "";
             bRet = true;
             bStarted = true;
         }
@@ -1287,13 +1288,13 @@
             aPhoneNr.append( m_aPhoneCollection );
             aPhoneNr.append( "</Fax#>" );
             *m_pPhoneNr = aPhoneNr.makeStringAndClear();
-            m_aPhoneCollection = rtl::OUString();
+            m_aPhoneCollection = "";
         }
     }
     if( m_aPhoneCollection.getLength() > 1024 )
     {
         m_bPhoneCollectionActive = false;
-        m_aPhoneCollection = rtl::OUString();
+        m_aPhoneCollection = "";
         bRet = false;
     }
 
@@ -1302,7 +1303,8 @@
         rLen -= nStop - nStart;
         rCutStart = nStart+nIndex;
         rCutStop = nStop+nIndex;
-        rNewText = ( rCutStart ? rOrig.copy( 0, rCutStart ) : rtl::OUString() ) + rOrig.copy( rCutStop );
+        if (rCutStart != rCutStop)
+            rNewText = ( rCutStart ? rOrig.copy( 0, rCutStart ) : rtl::OUString() ) + rOrig.copy( rCutStop );
     }
 
     return bRet && m_bSwallowFaxNo;
diff --git a/vcl/inc/generic/genpspgraphics.h b/vcl/inc/generic/genpspgraphics.h
index 99a2f35..36c0e60 100644
--- a/vcl/inc/generic/genpspgraphics.h
+++ b/vcl/inc/generic/genpspgraphics.h
@@ -175,7 +175,7 @@
     virtual void            invert( sal_uIntPtr nPoints, const SalPoint* pPtAry, SalInvert nFlags );
 
     virtual sal_Bool            drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, sal_uIntPtr nSize );
-    virtual bool            filterText( const rtl::OUString& rOrigText, rtl::OUString& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
+    virtual bool            filterText( const rtl::OUString& rOrigText, rtl::OUString& rNewText, sal_Int32 nIndex, sal_Int32& rLen, sal_Int32& rCutStart, sal_Int32& rCutStop );
 
     virtual bool            drawAlphaBitmap( const SalTwoRect&,
                                              const SalBitmap& rSourceBitmap,
diff --git a/vcl/inc/salgdi.hxx b/vcl/inc/salgdi.hxx
index ac2d036..21d7380 100644
--- a/vcl/inc/salgdi.hxx
+++ b/vcl/inc/salgdi.hxx
@@ -346,12 +346,8 @@
         true: a substitution has taken place and rNewText rLen, rCutStart and rCutStop have been filled accordingly
         false: no substitution has taken place, rNewText, rLen, rCutStart, rCutStop remain unchanged
      */
-    virtual bool            filterText( const rtl::OUString& rOrigText,
-                                        rtl::OUString& rNewText,
-                                        xub_StrLen nIndex,
-                                        xub_StrLen& rLen,
-                                        xub_StrLen& rCutStart,
-                                        xub_StrLen& rCutStop );
+    virtual bool            filterText( const rtl::OUString& rOrigText, rtl::OUString& rNewText,
+                                        sal_Int32 nIndex, sal_Int32& rLen, sal_Int32& rCutStart, sal_Int32& rCutStop );
 
     virtual bool            supportsOperation( OutDevSupportType ) const = 0;
 
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index 565fcae..8287f09 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -5809,9 +5809,14 @@
     // filter out special markers
     if( bFilter )
     {
-        xub_StrLen nCutStart, nCutStop, nOrgLen = nLen;
-        rtl::OUString aTmpStr(aStr);
-        bool bFiltered = mpGraphics->filterText( rOrigStr, aTmpStr, nMinIndex, nLen, nCutStart, nCutStop );
+        sal_Int32 nCutStart, nCutStop, nOrgLen = nLen;
+        OUString aTmpStr(aStr);
+        OUString aTmpOrigStr(rOrigStr); // only needed until rOrigStr is OUString
+        sal_Int32 nMinIndex2=nMinIndex; // dito
+        sal_Int32 nLen2=nLen;           // dito
+        bool bFiltered = mpGraphics->filterText( aTmpOrigStr, aTmpStr, nMinIndex2, nLen2, nCutStart, nCutStop );
+        nLen = nLen2;           // dito
+        nMinIndex = nMinIndex2; // dito
         aStr = aTmpStr;
         if( !nLen )
             return NULL;
diff --git a/vcl/source/gdi/salgdilayout.cxx b/vcl/source/gdi/salgdilayout.cxx
index bb1c55d..5b6ec44 100644
--- a/vcl/source/gdi/salgdilayout.cxx
+++ b/vcl/source/gdi/salgdilayout.cxx
@@ -752,7 +752,7 @@
     return drawAlphaRect( nX, nY, nWidth, nHeight, nTransparency );
 }
 
-bool SalGraphics::filterText( const rtl::OUString&, rtl::OUString&, xub_StrLen, xub_StrLen&, xub_StrLen&, xub_StrLen& )
+bool SalGraphics::filterText( const rtl::OUString&, rtl::OUString&, sal_Int32, sal_Int32&, sal_Int32&, sal_Int32& )
 {
     return false;
 }

-- 
To view, visit https://gerrit.libreoffice.org/2956
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I31437125b51b07be490de3d979e193fad9750f51
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Christina Roßmanith <ChrRossmanith at web.de>



More information about the LibreOffice mailing list