| OLD | NEW |
| (Empty) |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CharacterData_h | |
| 6 #define CharacterData_h | |
| 7 | |
| 8 #include <unicode/uobject.h> | |
| 9 | |
| 10 namespace blink { | |
| 11 | |
| 12 static const UChar32 isCJKIdeographOrSymbolArray[] = { | |
| 13 // 0x2C7 Caron, Mandarin Chinese 3rd Tone | |
| 14 0x2C7, | |
| 15 // 0x2CA Modifier Letter Acute Accent, Mandarin Chinese 2nd Tone | |
| 16 0x2CA, | |
| 17 // 0x2CB Modifier Letter Grave Access, Mandarin Chinese 4th Tone | |
| 18 0x2CB, | |
| 19 // 0x2D9 Dot Above, Mandarin Chinese 5th Tone | |
| 20 0x2D9, | |
| 21 0x2020, 0x2021, 0x2030, 0x203B, 0x203C, 0x2042, 0x2047, 0x2048, 0x2049, 0x20
51, | |
| 22 0x20DD, 0x20DE, 0x2100, 0x2103, 0x2105, 0x2109, 0x210A, 0x2113, 0x2116, 0x21
21, | |
| 23 0x212B, 0x213B, 0x2150, 0x2151, 0x2152, 0x217F, 0x2189, 0x2307, 0x2312, 0x23
CE, | |
| 24 0x2423, 0x25A0, 0x25A1, 0x25A2, 0x25AA, 0x25AB, 0x25B1, 0x25B2, 0x25B3, 0x25
B6, | |
| 25 0x25B7, 0x25BC, 0x25BD, 0x25C0, 0x25C1, 0x25C6, 0x25C7, 0x25C9, 0x25CB, 0x25
CC, | |
| 26 0x25EF, 0x2605, 0x2606, 0x260E, 0x2616, 0x2617, 0x2640, 0x2642, 0x26A0, 0x26
BD, | |
| 27 0x26BE, 0x2713, 0x271A, 0x273F, 0x2740, 0x2756, 0x2B1A, 0xFE10, 0xFE11, 0xFE
12, | |
| 28 0xFE19, 0xFF1D, | |
| 29 // Emoji. | |
| 30 0x1F100 | |
| 31 }; | |
| 32 | |
| 33 static const UChar32 isCJKIdeographOrSymbolRanges[] = { | |
| 34 // cjkIdeographRanges | |
| 35 // CJK Radicals Supplement and Kangxi Radicals. | |
| 36 0x2E80, 0x2FDF, | |
| 37 // CJK Strokes. | |
| 38 0x31C0, 0x31EF, | |
| 39 // CJK Unified Ideographs Extension A. | |
| 40 0x3400, 0x4DBF, | |
| 41 // The basic CJK Unified Ideographs block. | |
| 42 0x4E00, 0x9FFF, | |
| 43 // CJK Compatibility Ideographs. | |
| 44 0xF900, 0xFAFF, | |
| 45 // CJK Unified Ideographs Extension B. | |
| 46 0x20000, 0x2A6DF, | |
| 47 // CJK Unified Ideographs Extension C. | |
| 48 // CJK Unified Ideographs Extension D. | |
| 49 0x2A700, 0x2B81F, | |
| 50 // CJK Compatibility Ideographs Supplement. | |
| 51 0x2F800, 0x2FA1F, | |
| 52 | |
| 53 // cjkSymbolRanges | |
| 54 0x2156, 0x215A, | |
| 55 0x2160, 0x216B, | |
| 56 0x2170, 0x217B, | |
| 57 0x23BE, 0x23CC, | |
| 58 0x2460, 0x2492, | |
| 59 0x249C, 0x24FF, | |
| 60 0x25CE, 0x25D3, | |
| 61 0x25E2, 0x25E6, | |
| 62 0x2600, 0x2603, | |
| 63 0x2660, 0x266F, | |
| 64 // Emoji HEAVY HEART EXCLAMATION MARK ORNAMENT..HEAVY BLACK HEART | |
| 65 // Needed in order not to break Emoji heart-kiss sequences in | |
| 66 // CachingWordShapeIterator. | |
| 67 // cmp. http://www.unicode.org/emoji/charts/emoji-zwj-sequences.html | |
| 68 0x2763, 0x2764, | |
| 69 0x2672, 0x267D, | |
| 70 0x2776, 0x277F, | |
| 71 // Ideographic Description Characters, with CJK Symbols and Punctuation, | |
| 72 // excluding 0x3030. | |
| 73 // Then Hiragana 0x3040 .. 0x309F, Katakana 0x30A0 .. 0x30FF, Bopomofo | |
| 74 // 0x3100 .. 0x312F | |
| 75 0x2FF0, 0x302F, | |
| 76 0x3031, 0x312F, | |
| 77 // More Bopomofo and Bopomofo Extended 0x31A0 .. 0x31BF | |
| 78 0x3190, 0x31BF, | |
| 79 // Enclosed CJK Letters and Months (0x3200 .. 0x32FF). | |
| 80 // CJK Compatibility (0x3300 .. 0x33FF). | |
| 81 0x3200, 0x33FF, | |
| 82 0xF860, 0xF862, | |
| 83 // CJK Compatibility Forms. | |
| 84 0xFE30, 0xFE4F, | |
| 85 // Halfwidth and Fullwidth Forms | |
| 86 // Usually only used in CJK | |
| 87 0xFF00, 0xFF0C, | |
| 88 0xFF0E, 0xFF1A, | |
| 89 0xFF1F, 0xFFEF, | |
| 90 // Emoji. | |
| 91 0x1F110, 0x1F129, | |
| 92 0x1F130, 0x1F149, | |
| 93 0x1F150, 0x1F169, | |
| 94 0x1F170, 0x1F189, | |
| 95 0x1F200, 0x1F6FF | |
| 96 }; | |
| 97 | |
| 98 // Individual codepoints needed for Unicode vertical text layout according to | |
| 99 // http://www.unicode.org/reports/tr50/ | |
| 100 // Taken from the corresponding data file: | |
| 101 // http://www.unicode.org/Public/vertical/revision-13/VerticalOrientation-13.txt | |
| 102 static const UChar32 isUprightInMixedVerticalArray[] = { | |
| 103 0x000A7, | |
| 104 0x000A9, | |
| 105 0x000AE, | |
| 106 0x000B1, | |
| 107 0x000D7, | |
| 108 0x000F7 | |
| 109 }; | |
| 110 | |
| 111 static const UChar32 isUprightInMixedVerticalRanges[] = { | |
| 112 0x000BC, 0x000BE, | |
| 113 // Spacing Modifier Letters (Part of) | |
| 114 0x002EA, 0x002EB, | |
| 115 // Hangul Jamo | |
| 116 0x01100, 0x011FF, | |
| 117 // Unified Canadian Aboriginal Syllabics | |
| 118 0x01401, 0x0167F, | |
| 119 // Unified Canadian Aboriginal Syllabics Extended | |
| 120 0x018B0, 0x018FF, | |
| 121 // General Punctuation (Part of) | |
| 122 0x02016, 0x02016, | |
| 123 0x02020, 0x02021, | |
| 124 0x02030, 0x02031, | |
| 125 0x0203B, 0x0203C, | |
| 126 0x02042, 0x02042, | |
| 127 0x02047, 0x02049, | |
| 128 0x02051, 0x02051, | |
| 129 0x02065, 0x02069, | |
| 130 // Combining Diacritical Marks for Symbols (Part of) | |
| 131 0x020DD, 0x020E0, | |
| 132 0x020E2, 0x020E4, | |
| 133 // Letterlike Symbols (Part of)/Number Forms | |
| 134 0x02100, 0x02101, | |
| 135 0x02103, 0x02109, | |
| 136 0x0210F, 0x0210F, | |
| 137 0x02113, 0x02114, | |
| 138 0x02116, 0x02117, | |
| 139 0x0211E, 0x02123, | |
| 140 0x02125, 0x02125, | |
| 141 0x02127, 0x02127, | |
| 142 0x02129, 0x02129, | |
| 143 0x0212E, 0x0212E, | |
| 144 0x02135, 0x0213F, | |
| 145 0x02145, 0x0214A, | |
| 146 0x0214C, 0x0214D, | |
| 147 0x0214F, 0x0218F, | |
| 148 // Mathematical Operators (Part of) | |
| 149 0x0221E, 0x0221E, | |
| 150 0x02234, 0x02235, | |
| 151 // Miscellaneous Technical (Part of) | |
| 152 0x02300, 0x02307, | |
| 153 0x0230C, 0x0231F, | |
| 154 0x02324, 0x0232B, | |
| 155 0x0237D, 0x0239A, | |
| 156 0x023BE, 0x023CD, | |
| 157 0x023CF, 0x023CF, | |
| 158 0x023D1, 0x023DB, | |
| 159 0x023E2, 0x02422, | |
| 160 // Control Pictures (Part of)/Optical Character Recognition/Enclosed | |
| 161 // Alphanumerics | |
| 162 0x02424, 0x024FF, | |
| 163 // Geometric Shapes/Miscellaneous Symbols (Part of) | |
| 164 0x025A0, 0x02619, | |
| 165 0x02620, 0x02767, | |
| 166 0x02776, 0x02793, | |
| 167 // Miscellaneous Symbols and Arrows (Part of) | |
| 168 0x02B12, 0x02B2F, | |
| 169 0x02B50, 0x02B59, | |
| 170 0x02BB8, 0x02BFF, | |
| 171 // Common CJK | |
| 172 0x02E80, 0x0A4CF, | |
| 173 // Hangul Jamo Extended-A | |
| 174 0x0A960, 0x0A97F, | |
| 175 // Hangul Syllables/Hangul Jamo Extended-B | |
| 176 0x0AC00, 0x0D7FF, | |
| 177 // Private Use Area/CJK Compatibility Ideographs | |
| 178 0x0E000, 0x0FAFF, | |
| 179 // Vertical Forms | |
| 180 0x0FE10, 0x0FE1F, | |
| 181 // CJK Compatibility Forms (Part of) | |
| 182 0x0FE30, 0x0FE48, | |
| 183 // Small Form Variants (Part of) | |
| 184 0x0FE50, 0x0FE57, | |
| 185 0x0FE59, 0x0FE62, | |
| 186 0x0FE67, 0x0FE6F, | |
| 187 // Halfwidth and Fullwidth Forms | |
| 188 0x0FF01, 0x0FF0C, | |
| 189 0x0FF0E, 0x0FF1B, | |
| 190 0x0FF1F, 0x0FF60, | |
| 191 0x0FFE0, 0x0FFE7, | |
| 192 // Specials (Part of) | |
| 193 0x0FFF0, 0x0FFF8, | |
| 194 0x0FFFC, 0x0FFFD, | |
| 195 // Meroitic Hieroglyphs | |
| 196 0x10980, 0x1099F, | |
| 197 // Siddham | |
| 198 0x11580, 0x115FF, | |
| 199 // Egyptian Hieroglyphs | |
| 200 0x13000, 0x1342F, | |
| 201 // Kana Supplement | |
| 202 0x1B000, 0x1B0FF, | |
| 203 // Byzantine Musical Symbols/Musical Symbols | |
| 204 0x1D000, 0x1D1FF, | |
| 205 // Tai Xuan Jing Symbols/Counting Rod Numerals | |
| 206 0x1D300, 0x1D37F, | |
| 207 // Mahjong Tiles/Domino Tiles/Playing Cards/Enclosed Alphanumeric Supplement | |
| 208 // Enclosed Ideographic Supplement/Enclosed Ideographic Supplement | |
| 209 // Emoticons/Ornamental Dingbats/Transport and Map Symbols/Alchemical | |
| 210 // Symbols Alchemical Symbols | |
| 211 0x1F000, 0x1F7FF, | |
| 212 // CJK Unified Ideographs Extension B/C/D | |
| 213 // CJK Compatibility Ideographs Supplement | |
| 214 0x20000, 0x2FFFD, | |
| 215 0x30000, 0x3FFFD, | |
| 216 // Supplementary Private Use Area-A | |
| 217 0xF0000, 0xFFFFD, | |
| 218 // Supplementary Private Use Area-B | |
| 219 0x100000, 0x10FFFD, | |
| 220 }; | |
| 221 | |
| 222 } // namespace blink | |
| 223 | |
| 224 #endif | |
| OLD | NEW |