Fixes for Utf32 to Utf8 conversion 44/36844/2
authorVictor Cebollada <v.cebollada@samsung.com>
Mon, 16 Mar 2015 09:14:04 +0000 (09:14 +0000)
committerVíctor Cebollada <v.cebollada@samsung.com>
Mon, 16 Mar 2015 09:19:30 +0000 (02:19 -0700)
  The utf8 string was defined with a uint32 instead a uint8.
  Return the number of bytes of the utf8 string.

Change-Id: I8d6c77f6a02e509a515abff500a4a436789947fe
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
dali-toolkit/internal/text/character-set-conversion.cpp
dali-toolkit/internal/text/character-set-conversion.h

index aa2721a..3afecbb 100644 (file)
@@ -173,11 +173,13 @@ uint32_t Utf8ToUtf32( const uint8_t* const utf8, uint32_t length, uint32_t* utf3
   return numberOfCharacters;
 }
 
-void Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, uint8_t* utf8 )
+uint32_t Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, uint8_t* utf8 )
 {
   const uint32_t* begin = utf32;
   const uint32_t* end = utf32 + numberOfCharacters;
 
+  uint8_t* utf8Begin = utf8;
+
   for( ; begin < end; ++begin )
   {
     const uint32_t code = *begin;
@@ -205,6 +207,8 @@ void Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, uint
       *utf8++ = static_cast<uint8_t>(   code          & 0x3f ) | 0x80u; // continuation byte
     }
   }
+
+  return utf8 - utf8Begin;
 }
 
 } // namespace Toolkit
index 2fca983..c8da542 100644 (file)
@@ -71,8 +71,10 @@ DALI_IMPORT_API uint32_t Utf8ToUtf32( const uint8_t* const utf8, uint32_t length
  * @param[in] utf32 The pointer to the UTF32 array.
  * @param[in] numberOfCharacters The number of characters of the UTF32 array.
  * @param[out] utf8 The pointer to the UTF8 array.
+ *
+ * @return The number of bytes.
  */
-DALI_IMPORT_API void Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, uint32_t* utf8 );
+DALI_IMPORT_API uint32_t Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, uint8_t* utf8 );
 
 } // namespace Toolkit