mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-08 06:53:45 +00:00
ICU-6249 Don't apply any features to characters that have joining type Non_Joining.
X-SVN-Rev: 24081
This commit is contained in:
parent
850064069f
commit
cad1a600a3
1 changed files with 7 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2008 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -79,6 +79,7 @@ ArabicShaping::ShapeType ArabicShaping::getShapeType(LEUnicode c)
|
|||
#define markFeatureMask 0x00040000UL
|
||||
#define mkmkFeatureMask 0x00020000UL
|
||||
|
||||
#define NO_FEATURES 0
|
||||
#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
|
||||
|
||||
#define SHAPE_MASK 0xF0000000UL
|
||||
|
@ -173,7 +174,11 @@ void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 char
|
|||
LEUnicode c = chars[in];
|
||||
ShapeType t = getShapeType(c);
|
||||
|
||||
glyphStorage.setAuxData(out, ISOL_FEATURES, success);
|
||||
if (t == ST_NOSHAPE_NONE) {
|
||||
glyphStorage.setAuxData(out, NO_FEATURES, success);
|
||||
} else {
|
||||
glyphStorage.setAuxData(out, ISOL_FEATURES, success);
|
||||
}
|
||||
|
||||
if ((t & MASK_TRANSPARENT) != 0) {
|
||||
continue;
|
||||
|
|
Loading…
Add table
Reference in a new issue