Bug 1081858 - Part 3. Implement IsEastAsianWidthFWH using ICU or nsUnicodeProperties data. r=jfkthame

MozReview-Commit-ID: DvBgSm5SJwD
This commit is contained in:
Kan-Ru Chen 2016-10-26 17:11:36 +08:00
Родитель eb2f3cfed9
Коммит dc45f1b5b3
2 изменённых файлов: 24 добавлений и 0 удалений

Просмотреть файл

@ -295,6 +295,11 @@ GetTitlecaseForAll(uint32_t aCh)
}
return aCh;
}
bool IsEastAsianWidthFWH(uint32_t aCh)
{
return GetCharProps2(aCh).mEastAsianWidthFWH;
}
#endif
#define DEFINE_BMP_1PLANE_MAPPING_GET_FUNC(prefix_) \

Просмотреть файл

@ -156,6 +156,22 @@ GetTitlecaseForAll(uint32_t aCh) // maps both UC and LC to titlecase
return u_totitle(aCh);
}
inline bool
IsEastAsianWidthFWH(uint32_t aCh)
{
switch (u_getIntPropertyValue(aCh, UCHAR_EAST_ASIAN_WIDTH)) {
case U_EA_FULLWIDTH:
case U_EA_WIDE:
case U_EA_HALFWIDTH:
return true;
case U_EA_AMBIGUOUS:
case U_EA_NARROW:
case U_EA_NEUTRAL:
return false;
}
return false;
}
#else // not ENABLE_INTL_API
// Return whether the char has a mirrored-pair counterpart.
@ -192,6 +208,9 @@ uint32_t GetLowercase(uint32_t aCh);
uint32_t GetTitlecaseForLower(uint32_t aCh); // maps LC to titlecase, UC unchanged
uint32_t GetTitlecaseForAll(uint32_t aCh); // maps both UC and LC to titlecase
// Return whether the char has EastAsianWidth class F or W or H.
bool IsEastAsianWidthFWH(uint32_t aCh);
#endif // !ENABLE_INTL_API
// returns the simplified Gen Category as defined in nsIUGenCategory