[khmer] Remove non-Khmer matra positioning code
This commit is contained in:
parent
f8553c898a
commit
238b90e77c
|
@ -40,74 +40,22 @@ typedef indic_category_t khmer_category_t;
|
||||||
typedef indic_position_t khmer_position_t;
|
typedef indic_position_t khmer_position_t;
|
||||||
|
|
||||||
|
|
||||||
#define IN_HALF_BLOCK(u, Base) (((u) & ~0x7Fu) == (Base))
|
|
||||||
|
|
||||||
#define IS_DEVA(u) (IN_HALF_BLOCK (u, 0x0900u))
|
|
||||||
#define IS_BENG(u) (IN_HALF_BLOCK (u, 0x0980u))
|
|
||||||
#define IS_GURU(u) (IN_HALF_BLOCK (u, 0x0A00u))
|
|
||||||
#define IS_GUJR(u) (IN_HALF_BLOCK (u, 0x0A80u))
|
|
||||||
#define IS_ORYA(u) (IN_HALF_BLOCK (u, 0x0B00u))
|
|
||||||
#define IS_TAML(u) (IN_HALF_BLOCK (u, 0x0B80u))
|
|
||||||
#define IS_TELU(u) (IN_HALF_BLOCK (u, 0x0C00u))
|
|
||||||
#define IS_KNDA(u) (IN_HALF_BLOCK (u, 0x0C80u))
|
|
||||||
#define IS_MLYM(u) (IN_HALF_BLOCK (u, 0x0D00u))
|
|
||||||
#define IS_SINH(u) (IN_HALF_BLOCK (u, 0x0D80u))
|
|
||||||
#define IS_KHMR(u) (IN_HALF_BLOCK (u, 0x1780u))
|
|
||||||
|
|
||||||
|
|
||||||
#define MATRA_POS_LEFT(u) POS_PRE_M
|
|
||||||
#define MATRA_POS_RIGHT(u) ( \
|
|
||||||
IS_DEVA(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_BENG(u) ? POS_AFTER_POST : \
|
|
||||||
IS_GURU(u) ? POS_AFTER_POST : \
|
|
||||||
IS_GUJR(u) ? POS_AFTER_POST : \
|
|
||||||
IS_ORYA(u) ? POS_AFTER_POST : \
|
|
||||||
IS_TAML(u) ? POS_AFTER_POST : \
|
|
||||||
IS_TELU(u) ? (u <= 0x0C42u ? POS_BEFORE_SUB : POS_AFTER_SUB) : \
|
|
||||||
IS_KNDA(u) ? (u < 0x0CC3u || u > 0xCD6u ? POS_BEFORE_SUB : POS_AFTER_SUB) : \
|
|
||||||
IS_MLYM(u) ? POS_AFTER_POST : \
|
|
||||||
IS_SINH(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_KHMR(u) ? POS_AFTER_POST : \
|
|
||||||
/*default*/ POS_AFTER_SUB \
|
|
||||||
)
|
|
||||||
#define MATRA_POS_TOP(u) ( /* BENG and MLYM don't have top matras. */ \
|
|
||||||
IS_DEVA(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_GURU(u) ? POS_AFTER_POST : /* Deviate from spec */ \
|
|
||||||
IS_GUJR(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_ORYA(u) ? POS_AFTER_MAIN : \
|
|
||||||
IS_TAML(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_TELU(u) ? POS_BEFORE_SUB : \
|
|
||||||
IS_KNDA(u) ? POS_BEFORE_SUB : \
|
|
||||||
IS_SINH(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_KHMR(u) ? POS_AFTER_POST : \
|
|
||||||
/*default*/ POS_AFTER_SUB \
|
|
||||||
)
|
|
||||||
#define MATRA_POS_BOTTOM(u) ( \
|
|
||||||
IS_DEVA(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_BENG(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_GURU(u) ? POS_AFTER_POST : \
|
|
||||||
IS_GUJR(u) ? POS_AFTER_POST : \
|
|
||||||
IS_ORYA(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_TAML(u) ? POS_AFTER_POST : \
|
|
||||||
IS_TELU(u) ? POS_BEFORE_SUB : \
|
|
||||||
IS_KNDA(u) ? POS_BEFORE_SUB : \
|
|
||||||
IS_MLYM(u) ? POS_AFTER_POST : \
|
|
||||||
IS_SINH(u) ? POS_AFTER_SUB : \
|
|
||||||
IS_KHMR(u) ? POS_AFTER_POST : \
|
|
||||||
/*default*/ POS_AFTER_SUB \
|
|
||||||
)
|
|
||||||
|
|
||||||
static inline khmer_position_t
|
static inline khmer_position_t
|
||||||
matra_position (hb_codepoint_t u, khmer_position_t side)
|
matra_position (khmer_position_t side)
|
||||||
{
|
{
|
||||||
switch ((int) side)
|
switch ((int) side)
|
||||||
{
|
{
|
||||||
case POS_PRE_C: return MATRA_POS_LEFT (u);
|
case POS_PRE_C:
|
||||||
case POS_POST_C: return MATRA_POS_RIGHT (u);
|
return POS_PRE_M;
|
||||||
case POS_ABOVE_C: return MATRA_POS_TOP (u);
|
|
||||||
case POS_BELOW_C: return MATRA_POS_BOTTOM (u);
|
case POS_POST_C:
|
||||||
|
case POS_ABOVE_C:
|
||||||
|
case POS_BELOW_C:
|
||||||
|
return POS_AFTER_POST;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return side;
|
||||||
};
|
};
|
||||||
return side;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
|
@ -215,7 +163,7 @@ set_khmer_properties (hb_glyph_info_t &info)
|
||||||
}
|
}
|
||||||
else if (cat == OT_M)
|
else if (cat == OT_M)
|
||||||
{
|
{
|
||||||
pos = matra_position (u, pos);
|
pos = matra_position (pos);
|
||||||
}
|
}
|
||||||
else if ((FLAG_UNSAFE (cat) & (FLAG (OT_SM) | FLAG (OT_VD) | FLAG (OT_A) | FLAG (OT_Symbol))))
|
else if ((FLAG_UNSAFE (cat) & (FLAG (OT_SM) | FLAG (OT_VD) | FLAG (OT_A) | FLAG (OT_Symbol))))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue