diff options
Diffstat (limited to 'intl/unicharutil/util/nsUnicodeProperties.h')
-rw-r--r-- | intl/unicharutil/util/nsUnicodeProperties.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/intl/unicharutil/util/nsUnicodeProperties.h b/intl/unicharutil/util/nsUnicodeProperties.h index 303582f99..ee1d77252 100644 --- a/intl/unicharutil/util/nsUnicodeProperties.h +++ b/intl/unicharutil/util/nsUnicodeProperties.h @@ -54,6 +54,15 @@ enum XidmodType { XIDMOD_NOT_CHARS }; +enum EmojiPresentation { + TextOnly = 0, + TextDefault = 1, + EmojiDefault = 2 +}; + +const uint32_t kVariationSelector15 = 0xFE0E; // text presentation +const uint32_t kVariationSelector16 = 0xFE0F; // emoji presentation + // ICU is available, so simply forward to its API extern const hb_unicode_general_category_t sICUtoHBcategory[]; @@ -170,6 +179,19 @@ IsEastAsianWidthFWH(uint32_t aCh) return false; } +inline EmojiPresentation +GetEmojiPresentation(uint32_t aCh) +{ + if (!u_hasBinaryProperty(aCh, UCHAR_EMOJI)) { + return TextOnly; + } + + if (u_hasBinaryProperty(aCh, UCHAR_EMOJI_PRESENTATION)) { + return EmojiDefault; + } + return TextDefault; +} + // returns the simplified Gen Category as defined in nsIUGenCategory inline nsIUGenCategory::nsUGenCategory GetGenCategory(uint32_t aCh) { return sDetailedToGeneralCategory[GetGeneralCategory(aCh)]; |