Merge "Support Hanb script." into nyc-dev
am: 9b2942bfe6
* commit '9b2942bfe6ed152b142163fa173831674ba17464':
Support Hanb script.
This commit is contained in:
@@ -61,9 +61,16 @@ FontLanguage::FontLanguage(const char* buf, size_t length) : FontLanguage() {
|
||||
uint8_t FontLanguage::scriptToSubScriptBits(uint32_t script) {
|
||||
uint8_t subScriptBits = 0u;
|
||||
switch (script) {
|
||||
case SCRIPT_TAG('B', 'o', 'p', 'o'):
|
||||
subScriptBits = kBopomofoFlag;
|
||||
break;
|
||||
case SCRIPT_TAG('H', 'a', 'n', 'g'):
|
||||
subScriptBits = kHangulFlag;
|
||||
break;
|
||||
case SCRIPT_TAG('H', 'a', 'n', 'b'):
|
||||
// Bopomofo is almost exclusively used in Taiwan.
|
||||
subScriptBits = kHanFlag | kBopomofoFlag;
|
||||
break;
|
||||
case SCRIPT_TAG('H', 'a', 'n', 'i'):
|
||||
subScriptBits = kHanFlag;
|
||||
break;
|
||||
|
||||
@@ -68,14 +68,15 @@ private:
|
||||
// mLanguage = 0 means the FontLanguage is unsupported.
|
||||
uint32_t mLanguage;
|
||||
|
||||
// For faster comparing, use 7 bits for specific scripts.
|
||||
static const uint8_t kEmojiFlag = 1u;
|
||||
static const uint8_t kHanFlag = 1u << 1;
|
||||
static const uint8_t kHangulFlag = 1u << 2;
|
||||
static const uint8_t kHiraganaFlag = 1u << 3;
|
||||
static const uint8_t kKatakanaFlag = 1u << 4;
|
||||
static const uint8_t kSimplifiedChineseFlag = 1u << 5;
|
||||
static const uint8_t kTraditionalChineseFlag = 1u << 6;
|
||||
// For faster comparing, use 8 bits for specific scripts.
|
||||
static const uint8_t kBopomofoFlag = 1u;
|
||||
static const uint8_t kEmojiFlag = 1u << 1;
|
||||
static const uint8_t kHanFlag = 1u << 2;
|
||||
static const uint8_t kHangulFlag = 1u << 3;
|
||||
static const uint8_t kHiraganaFlag = 1u << 4;
|
||||
static const uint8_t kKatakanaFlag = 1u << 5;
|
||||
static const uint8_t kSimplifiedChineseFlag = 1u << 6;
|
||||
static const uint8_t kTraditionalChineseFlag = 1u << 7;
|
||||
uint8_t mSubScriptBits;
|
||||
|
||||
static uint8_t scriptToSubScriptBits(uint32_t script);
|
||||
|
||||
@@ -131,6 +131,7 @@ TEST_F(FontLanguageTest, ScriptMatchTest) {
|
||||
{ "zh-Hani", "Hani", SUPPORTED },
|
||||
{ "ko-Kore", "Kore", SUPPORTED },
|
||||
{ "ko-Hang", "Hang", SUPPORTED },
|
||||
{ "zh-Hanb", "Hanb", SUPPORTED },
|
||||
|
||||
// Japanese supports Hiragana, Katakanara, etc.
|
||||
{ "ja-Jpan", "Hira", SUPPORTED },
|
||||
@@ -142,6 +143,10 @@ TEST_F(FontLanguageTest, ScriptMatchTest) {
|
||||
// Chinese supports Han.
|
||||
{ "zh-Hans", "Hani", SUPPORTED },
|
||||
{ "zh-Hant", "Hani", SUPPORTED },
|
||||
{ "zh-Hanb", "Hani", SUPPORTED },
|
||||
|
||||
// Hanb supports Bopomofo.
|
||||
{ "zh-Hanb", "Bopo", SUPPORTED },
|
||||
|
||||
// Korean supports Hangul.
|
||||
{ "ko-Kore", "Hang", SUPPORTED },
|
||||
@@ -176,12 +181,19 @@ TEST_F(FontLanguageTest, ScriptMatchTest) {
|
||||
// Kanji doesn't support Chinese, etc.
|
||||
{ "zh-Hani", "Hant", NOT_SUPPORTED },
|
||||
{ "zh-Hani", "Hans", NOT_SUPPORTED },
|
||||
{ "zh-Hani", "Hanb", NOT_SUPPORTED },
|
||||
|
||||
// Hangul doesn't support Korean, etc.
|
||||
{ "ko-Hang", "Kore", NOT_SUPPORTED },
|
||||
{ "ko-Hani", "Kore", NOT_SUPPORTED },
|
||||
{ "ko-Hani", "Hang", NOT_SUPPORTED },
|
||||
{ "ko-Hang", "Hani", NOT_SUPPORTED },
|
||||
|
||||
// Han with botomofo doesn't support simplified Chinese, etc.
|
||||
{ "zh-Hanb", "Hant", NOT_SUPPORTED },
|
||||
{ "zh-Hanb", "Hans", NOT_SUPPORTED },
|
||||
{ "zh-Hanb", "Jpan", NOT_SUPPORTED },
|
||||
{ "zh-Hanb", "Kore", NOT_SUPPORTED },
|
||||
};
|
||||
|
||||
for (auto testCase : testCases) {
|
||||
|
||||
Reference in New Issue
Block a user