Index: third_party/WebKit/Source/platform/text/Character.cpp |
diff --git a/third_party/WebKit/Source/platform/text/Character.cpp b/third_party/WebKit/Source/platform/text/Character.cpp |
index a51e0f8c715f6f529d51c89c7577d63485c14306..83da085f49f2d2d9a33560913bf3d23207d67c0b 100644 |
--- a/third_party/WebKit/Source/platform/text/Character.cpp |
+++ b/third_party/WebKit/Source/platform/text/Character.cpp |
@@ -108,142 +108,6 @@ bool valueInIntervalList(const T (&intervalList)[size], const T& value) { |
return bound > intervalList && *(bound - 1) == value; |
} |
-CodePath Character::characterRangeCodePath(const UChar* characters, |
- unsigned len) { |
- static const UChar complexCodePathRanges[] = { |
- // U+02E5 through U+02E9 (Modifier Letters : Tone letters) |
- 0x2E5, 0x2E9, |
- // U+0300 through U+036F Combining diacritical marks |
- 0x300, 0x36F, |
- // U+0591 through U+05CF excluding U+05BE Hebrew combining marks, ... |
- 0x0591, 0x05BD, |
- // ... Hebrew punctuation Paseq, Sof Pasuq and Nun Hafukha |
- 0x05BF, 0x05CF, |
- // U+0600 through U+109F Arabic, Syriac, Thaana, NKo, Samaritan, Mandaic, |
- // Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, |
- // Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar |
- 0x0600, 0x109F, |
- // U+1100 through U+11FF Hangul Jamo (only Ancient Korean should be left |
- // here if you precompose; Modern Korean will be precomposed as a result |
- // of step A) |
- 0x1100, 0x11FF, |
- // U+135D through U+135F Ethiopic combining marks |
- 0x135D, 0x135F, |
- // U+1780 through U+18AF Tagalog, Hanunoo, Buhid, Taghanwa, Khmer, |
- // Mongolian |
- 0x1700, 0x18AF, |
- // U+1900 through U+194F Limbu (Unicode 4.0) |
- 0x1900, 0x194F, |
- // U+1980 through U+19DF New Tai Lue |
- 0x1980, 0x19DF, |
- // U+1A00 through U+1CFF Buginese, Tai Tham, Balinese, Batak, Lepcha, |
- // Vedic |
- 0x1A00, 0x1CFF, |
- // U+1DC0 through U+1DFF Comining diacritical mark supplement |
- 0x1DC0, 0x1DFF, |
- // U+20D0 through U+20FF Combining marks for symbols |
- 0x20D0, 0x20FF, |
- // U+2CEF through U+2CF1 Combining marks for Coptic |
- 0x2CEF, 0x2CF1, |
- // U+302A through U+302F Ideographic and Hangul Tone marks |
- 0x302A, 0x302F, |
- // Combining Katakana-Hiragana Voiced/Semi-voiced Sound Mark |
- 0x3099, 0x309A, |
- // U+A67C through U+A67D Combining marks for old Cyrillic |
- 0xA67C, 0xA67D, |
- // U+A6F0 through U+A6F1 Combining mark for Bamum |
- 0xA6F0, 0xA6F1, |
- // U+A800 through U+ABFF Nagri, Phags-pa, Saurashtra, Devanagari Extended, |
- // Hangul Jamo Ext. A, Javanese, Myanmar Extended A, Tai Viet, |
- // Meetei Mayek |
- 0xA800, 0xABFF, |
- // U+D7B0 through U+D7FF Hangul Jamo Ext. B |
- 0xD7B0, 0xD7FF, |
- // U+E000..U+F8FF BMP Private Use Area |
- 0xE000, 0xF8FF, |
- // U+FE00 through U+FE0F Unicode variation selectors |
- 0xFE00, 0xFE0F, |
- // U+FE20 through U+FE2F Combining half marks |
- 0xFE20, 0xFE2F}; |
- |
- CodePath result = SimplePath; |
- for (unsigned i = 0; i < len; i++) { |
- const UChar c = characters[i]; |
- |
- // Shortcut for common case |
- if (c < 0x2E5) |
- continue; |
- |
- // Surrogate pairs |
- if (c > 0xD7FF && c <= 0xDBFF) { |
- if (i == len - 1) |
- continue; |
- |
- UChar next = characters[++i]; |
- if (!U16_IS_TRAIL(next)) |
- continue; |
- |
- UChar32 supplementaryCharacter = U16_GET_SUPPLEMENTARY(c, next); |
- |
- if (supplementaryCharacter < |
- 0x1F1E6) // U+1F1E6 through U+1F1FF Regional Indicator Symbols |
- continue; |
- if (supplementaryCharacter <= 0x1F1FF) |
- return ComplexPath; |
- |
- // Emoji Fitzpatrick modifiers trigger upgrade to complex path for shaping |
- // them. |
- if (supplementaryCharacter < 0x1F3FB) |
- continue; |
- if (supplementaryCharacter <= 0x1F3FF) |
- return ComplexPath; |
- |
- if (supplementaryCharacter == eyeCharacter) |
- return ComplexPath; |
- |
- // Man and Woman Emojies, in order to support emoji joiner combinations |
- // for family and couple pictographs. |
- // Compare http://unicode.org/reports/tr51/#Emoji_ZWJ_Sequences |
- if (supplementaryCharacter < 0x1F468) |
- continue; |
- if (supplementaryCharacter <= 0x1F469) |
- return ComplexPath; |
- |
- if (supplementaryCharacter == leftSpeechBubbleCharacter) |
- return ComplexPath; |
- |
- if (supplementaryCharacter < |
- 0xE0100) // U+E0100 through U+E01EF Unicode variation selectors. |
- continue; |
- if (supplementaryCharacter <= 0xE01EF) |
- return ComplexPath; |
- |
- // Supplemental Private Use Area-A |
- if (supplementaryCharacter < 0xF0000) |
- continue; |
- if (supplementaryCharacter <= 0xFFFFD) |
- return ComplexPath; |
- |
- // Supplemental Private Use Area-B |
- if (supplementaryCharacter < 0x100000) |
- continue; |
- if (supplementaryCharacter <= 0x10FFFD) |
- return ComplexPath; |
- |
- // FIXME: Check for Brahmi (U+11000 block), Kaithi (U+11080 block) and |
- // other complex scripts in plane 1 or higher. |
- |
- continue; |
- } |
- |
- // Search for other Complex cases |
- if (valueInIntervalList(complexCodePathRanges, c)) |
- return ComplexPath; |
- } |
- |
- return result; |
-} |
- |
bool Character::isUprightInMixedVertical(UChar32 character) { |
RETURN_HAS_PROPERTY(character, isUprightInMixedVertical) |
} |