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@web.de>
Context
- [PATCH] Use OUString and sal_Int32 in filterText() · via Code Review
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.