[PATCH] Replace (Byte)String with O(U)String

Christina Rossmanith ChrRossmanith at web.de
Tue Jan 17 02:02:34 PST 2012


---
 unotools/inc/unotools/fontdefs.hxx |    2 +-
 unotools/source/misc/fontcvt.cxx   |   19 ++++++++++++-------
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/unotools/inc/unotools/fontdefs.hxx b/unotools/inc/unotools/fontdefs.hxx
index 12d9c43..9aec0f2 100644
--- a/unotools/inc/unotools/fontdefs.hxx
+++ b/unotools/inc/unotools/fontdefs.hxx
@@ -74,7 +74,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( rtl::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 cabdaf7..4d179ea 100644
--- a/unotools/source/misc/fontcvt.cxx
+++ b/unotools/source/misc/fontcvt.cxx
@@ -29,6 +29,7 @@
 #include <unotools/fontcvt.hxx>
 #include <unotools/fontdefs.hxx>
 #include <sal/macros.h>
+#include <rtl/ustrbuf.hxx>
 
 #ifndef _STLP_MAP
 #include <map>
@@ -1374,15 +1375,15 @@ 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( rtl::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;
+    if( nLastIndex > rStr.getLength() )
+        nLastIndex = rStr.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)) )
@@ -1390,8 +1391,12 @@ 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 );
+        if( cOrig != cNew ) {
+            //            rStr[nIndex] = cNew;
+            rtl::OUStringBuffer aTmpStr(rStr.getStr());
+            aTmpStr[nIndex] = cNew;
+            rStr = aTmpStr.makeStringAndClear();
+        }
     }
 }
 
-- 
1.7.4.1


--------------050204040603000108060408--


More information about the LibreOffice mailing list