diff options
Diffstat (limited to 'Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic')
-rw-r--r-- | Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic b/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic index da8d5372919..5aefbcead1d 100644 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic +++ b/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic @@ -1,6 +1,6 @@ diff -ur icu-49.rc.orig/source/layout/ArabicShaping.cpp icu-49.rc/source/layout/ArabicShaping.cpp --- icu-49.rc.orig/source/layout/ArabicShaping.cpp 2012-03-02 23:14:54.000000000 +0100 -+++ icu-49.rc/source/layout/ArabicShaping.cpp 2012-03-03 17:37:09.000000000 +0100 ++++ icu-49.rc/source/layout/ArabicShaping.cpp 2012-03-15 09:11:30.000000000 +0100 @@ -24,6 +24,31 @@ ArabicShaping::ST_TRANSPARENT // [T] }; @@ -33,32 +33,26 @@ diff -ur icu-49.rc.orig/source/layout/ArabicShaping.cpp icu-49.rc/source/layout/ /* shaping array holds types for Arabic chars between 0610 and 0700 other values are either unshaped, or transparent if a mark or format -@@ -36,17 +61,32 @@ +@@ -36,6 +61,18 @@ const ClassDefinitionTable *joiningTypes = (const ClassDefinitionTable *) ArabicShaping::shapingTypeTable; le_int32 joiningType = joiningTypes->getGlyphClass(c); -- if (joiningType >= 0 && joiningType < ArabicShaping::JT_COUNT) { -- return ArabicShaping::shapeTypes[joiningType]; -+ if (joiningType == JT_RIGHT_JOINING) { // check for Syriac exceptions ALAPH, DALATH, RISH ++ if (joiningType == ArabicShaping::JT_RIGHT_JOINING) { // check for Syriac exceptions ALAPH, DALATH, RISH + if (c == 0x0710) -+ return ST_ALAPH; ++ return ArabicShaping::ST_ALAPH; + if (c == 0x0715 || c == 0x0716 || c == 0x072A || c == 0x072F) -+ return ST_DALATH_RISH; - } - -- return ArabicShaping::ST_NOSHAPE_NONE; -+ if (joiningType == 0) { // check for Mongolian range, not supported by ArabicShaping::shapingTypeTable -+ if (c >= 0x1800 && c <= 0x18af) -+ return mongolianTypes[c - 0x1800]; ++ return ArabicShaping::ST_DALATH_RISH; + } + -+ if (joiningType >= 0 && joiningType < JT_COUNT) { -+ return shapeTypes[joiningType]; ++ if (joiningType == 0) { // check for Mongolian range, not supported by ArabicShaping::shapingTypeTable ++ if (c >= 0x1800 && c <= 0x18af) ++ return ArabicShaping::mongolianTypes[c - 0x1800]; + } + -+ return ST_NOSHAPE_NONE; - } - + if (joiningType >= 0 && joiningType < ArabicShaping::JT_COUNT) { + return ArabicShaping::shapeTypes[joiningType]; + } +@@ -46,7 +83,10 @@ #define isolFeatureTag LE_ISOL_FEATURE_TAG #define initFeatureTag LE_INIT_FEATURE_TAG #define mediFeatureTag LE_MEDI_FEATURE_TAG |