From d3af645b53c904418720766b082c7a6c3e3f0b0d Mon Sep 17 00:00:00 2001 From: Dina Sayed Date: Thu, 27 Sep 2012 09:09:18 +0000 Subject: [PATCH] ICU-8703 Arabic shaping Shadda handling X-SVN-Rev: 32430 --- icu4c/source/common/ushape.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/icu4c/source/common/ushape.cpp b/icu4c/source/common/ushape.cpp index c09c13228f4..e4fb4ab007b 100644 --- a/icu4c/source/common/ushape.cpp +++ b/icu4c/source/common/ushape.cpp @@ -71,6 +71,7 @@ #define SHADDA_CHAR 0xFE7C #define TATWEEL_CHAR 0x0640 #define SHADDA_TATWEEL_CHAR 0xFE7D +#define SHADDA06_CHAR 0x0651 #define SHAPE_MODE 0 #define DESHAPE_MODE 1 @@ -1294,14 +1295,15 @@ shapeUnicode(UChar *dest, int32_t sourceLength, if( (nextLink&ALEFTYPE) == ALEFTYPE && (lastLink&LAMTYPE) == LAMTYPE ) { Shape = 0; } - } - else { + } else if(tashkeelFlag == 2 && dest[i] == SHADDA06_CHAR){ + Shape = 1; + } else { Shape = 0; } } if ((dest[i] ^ 0x0600) < 0x100) { if ( isTashkeelChar(dest[i]) ){ - if (tashkeelFlag == 2){ + if (tashkeelFlag == 2 && dest[i] != SHADDA06_CHAR){ dest[i] = TASHKEEL_SPACE_SUB; tashkeelFound = 1; } else {