diff options
author | Chr. Rossmanith <ChrRossmanith@gmx.de> | 2013-03-22 18:06:02 +0100 |
---|---|---|
committer | Fridrich Strba <fridrich@documentfoundation.org> | 2013-03-26 12:43:22 +0000 |
commit | 4e907bc366d8691a33ec0be389f211e22c6e87d3 (patch) | |
tree | 540e80e60537893b62ccc6710c03fdec3ee7175f | |
parent | 269b72069746578dd0d89de6b44adb715c39173b (diff) |
Replace String with OUString in RecodeString
Change-Id: I987f738d1cd7d640a253f3cd31864290b6d763bf
Reviewed-on: https://gerrit.libreoffice.org/2919
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
-rw-r--r-- | unotools/inc/unotools/fontdefs.hxx | 4 | ||||
-rw-r--r-- | unotools/source/misc/fontcvt.cxx | 15 | ||||
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 7 |
3 files changed, 17 insertions, 9 deletions
diff --git a/unotools/inc/unotools/fontdefs.hxx b/unotools/inc/unotools/fontdefs.hxx index f92346440f57..60c37d498045 100644 --- a/unotools/inc/unotools/fontdefs.hxx +++ b/unotools/inc/unotools/fontdefs.hxx @@ -22,6 +22,8 @@ #include <unotools/unotoolsdllapi.h> #include <sal/types.h> #include <tools/string.hxx> +#include <rtl/ustring.hxx> +#include <rtl/ustrbuf.hxx> namespace utl { class FontSubstConfiguration; @@ -54,7 +56,7 @@ public: const char* mpSubsFontName; sal_Unicode (*mpCvtFunc)( sal_Unicode ); sal_Unicode RecodeChar( sal_Unicode c ) const; - void RecodeString( String& rStra, xub_StrLen nIndex, xub_StrLen nLen ) const; + void RecodeString( OUString& rStra, sal_Int32 nIndex, sal_Int32 nLen ) const; static const ConvertChar* GetRecodeData( const String& rOrgFontName, const String& rMapFontName ); }; diff --git a/unotools/source/misc/fontcvt.cxx b/unotools/source/misc/fontcvt.cxx index fe870ed48d1f..99e07ee538cf 100644 --- a/unotools/source/misc/fontcvt.cxx +++ b/unotools/source/misc/fontcvt.cxx @@ -1372,15 +1372,17 @@ sal_Unicode ConvertChar::RecodeChar( sal_Unicode cChar ) const // recode the string assuming the character codes are symbol codes // from an traditional symbol font (i.e. U+F020..U+F0FF) -void ConvertChar::RecodeString( String& rStr, xub_StrLen nIndex, xub_StrLen nLen ) const +void ConvertChar::RecodeString( OUString& rStr, sal_Int32 nIndex, sal_Int32 nLen ) const { - sal_uLong nLastIndex = (sal_uLong)nIndex + nLen; - if( nLastIndex > rStr.Len() ) - nLastIndex = rStr.Len(); + sal_Int32 nLastIndex = nIndex + nLen; + OUStringBuffer aTmpStr(rStr); + + if( nLastIndex > aTmpStr.getLength() ) + nLastIndex = aTmpStr.getLength(); for(; nIndex < nLastIndex; ++nIndex ) { - sal_Unicode cOrig = rStr.GetChar( nIndex ); + sal_Unicode cOrig = rStr[ nIndex ]; // only recode symbols and their U+00xx aliases if( ((cOrig < 0x0020) || (cOrig > 0x00FF)) && ((cOrig < 0xF020) || (cOrig > 0xF0FF)) ) @@ -1389,8 +1391,9 @@ void ConvertChar::RecodeString( String& rStr, xub_StrLen nIndex, xub_StrLen nLen // recode a symbol sal_Unicode cNew = RecodeChar( cOrig ); if( cOrig != cNew ) - rStr.SetChar( nIndex, cNew ); + aTmpStr[ nIndex ] = cNew; } + rStr = aTmpStr.makeStringAndClear(); } //======================================================================= diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index df1016c7d883..565fcae50710 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -5836,8 +5836,11 @@ SalLayout* OutputDevice::ImplLayout( const String& rOrigStr, // convert from logical units to physical units // recode string if needed - if( mpFontEntry->mpConversion ) - mpFontEntry->mpConversion->RecodeString( aStr, 0, aStr.Len() ); + if( mpFontEntry->mpConversion ) { + OUString aTmpStr(aStr); // only needed until aStr is OUString as well + mpFontEntry->mpConversion->RecodeString( aTmpStr, 0, aTmpStr.getLength() ); + aStr = String(aTmpStr); + } long nPixelWidth = nLogicalWidth; if( nLogicalWidth && mbMap ) |