From 139116239d97c4f30d0ca99303981fecdfcfa9f9 Mon Sep 17 00:00:00 2001 From: Victor Cebollada Date: Mon, 16 Mar 2015 09:14:04 +0000 Subject: [PATCH] Fixes for Utf32 to Utf8 conversion 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 --- dali-toolkit/internal/text/character-set-conversion.cpp | 6 +++++- dali-toolkit/internal/text/character-set-conversion.h | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dali-toolkit/internal/text/character-set-conversion.cpp b/dali-toolkit/internal/text/character-set-conversion.cpp index aa2721a..3afecbb 100644 --- a/dali-toolkit/internal/text/character-set-conversion.cpp +++ b/dali-toolkit/internal/text/character-set-conversion.cpp @@ -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( code & 0x3f ) | 0x80u; // continuation byte } } + + return utf8 - utf8Begin; } } // namespace Toolkit diff --git a/dali-toolkit/internal/text/character-set-conversion.h b/dali-toolkit/internal/text/character-set-conversion.h index 2fca983..c8da542 100644 --- a/dali-toolkit/internal/text/character-set-conversion.h +++ b/dali-toolkit/internal/text/character-set-conversion.h @@ -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 -- 2.7.4