2 * Copyright 2001-2016, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 #ifndef _UNICODEBLOCKOBJECTS_H
6 #define _UNICODEBLOCKOBJECTS_H
12 // Unicode block list with their unicode encoding range
14 // Original BeOS-compatible blocks
15 const unicode_block
B_BASIC_LATIN_BLOCK( /* 0000 - 007F */ 0x0000000000000000LL
, 0x0000000000000001LL
);
16 const unicode_block
B_LATIN1_SUPPLEMENT_BLOCK( /* 0080 - 00FF */ 0x0000000000000000LL
, 0x0000000000000002LL
);
17 const unicode_block
B_LATIN_EXTENDED_A_BLOCK( /* 0100 - 017F */ 0x0000000000000000LL
, 0x0000000000000004LL
);
18 const unicode_block
B_LATIN_EXTENDED_B_BLOCK( /* 0180 - 024F */ 0x0000000000000000LL
, 0x0000000000000008LL
);
19 const unicode_block
B_IPA_EXTENSIONS_BLOCK( /* 0250 - 02AF */ 0x0000000000000000LL
, 0x0000000000000010LL
);
20 const unicode_block
B_SPACING_MODIFIER_LETTERS_BLOCK( /* 02B0 - 02FF */ 0x0000000000000000LL
, 0x0000000000000020LL
);
21 const unicode_block
B_COMBINING_DIACRITICAL_MARKS_BLOCK( /* 0300 - 036F */ 0x0000000000000000LL
, 0x0000000000000040LL
);
22 const unicode_block
B_BASIC_GREEK_BLOCK( /* 0370 - 03CF */ 0x0000000000000000LL
, 0x0000000000000080LL
);
23 const unicode_block
B_GREEK_SYMBOLS_AND_COPTIC_BLOCK( /* 03D0 - 03FF */ 0x0000000000000000LL
, 0x0000000000000100LL
);
24 const unicode_block
B_CYRILLIC_BLOCK( /* 0400 - 04FF */ 0x0000000000000000LL
, 0x0000000000000200LL
);
25 const unicode_block
B_ARMENIAN_BLOCK( /* 0530 - 058F */ 0x0000000000000000LL
, 0x0000000000000400LL
);
26 const unicode_block
B_BASIC_HEBREW_BLOCK( /* 0590 - 05CF */ 0x0000000000000000LL
, 0x0000000000000800LL
);
27 const unicode_block
B_HEBREW_EXTENDED_BLOCK( /* 05D0 - 05FF */ 0x0000000000000000LL
, 0x0000000000001000LL
);
28 const unicode_block
B_BASIC_ARABIC_BLOCK( /* 0600 - 0670 */ 0x0000000000000000LL
, 0x0000000000002000LL
);
29 const unicode_block
B_ARABIC_EXTENDED_BLOCK( /* 0671 - 06FF */ 0x0000000000000000LL
, 0x0000000000004000LL
);
30 const unicode_block
B_DEVANAGARI_BLOCK( /* 0900 - 097F */ 0x0000000000000000LL
, 0x0000000000008000LL
);
31 const unicode_block
B_BENGALI_BLOCK( /* 0980 - 09FF */ 0x0000000000000000LL
, 0x0000000000010000LL
);
32 const unicode_block
B_GURMUKHI_BLOCK( /* 0A00 - 0A7F */ 0x0000000000000000LL
, 0x0000000000020000LL
);
33 const unicode_block
B_GUJARATI_BLOCK( /* 0A80 - 0AFF */ 0x0000000000000000LL
, 0x0000000000040000LL
);
34 const unicode_block
B_ORIYA_BLOCK( /* 0B00 - 0B7F */ 0x0000000000000000LL
, 0x0000000000080000LL
);
35 const unicode_block
B_TAMIL_BLOCK( /* 0B80 - 0BFF */ 0x0000000000000000LL
, 0x0000000000100000LL
);
36 const unicode_block
B_TELUGU_BLOCK( /* 0C00 - 0C7F */ 0x0000000000000000LL
, 0x0000000000200000LL
);
37 const unicode_block
B_KANNADA_BLOCK( /* 0C80 - 0CFF */ 0x0000000000000000LL
, 0x0000000000400000LL
);
38 const unicode_block
B_MALAYALAM_BLOCK( /* 0D00 - 0D7F */ 0x0000000000000000LL
, 0x0000000000800000LL
);
39 const unicode_block
B_THAI_BLOCK( /* 0E00 - 0E7F */ 0x0000000000000000LL
, 0x0000000001000000LL
);
40 const unicode_block
B_LAO_BLOCK( /* 0E80 - 0EFF */ 0x0000000000000000LL
, 0x0000000002000000LL
);
41 const unicode_block
B_BASIC_GEORGIAN_BLOCK( /* 10A0 - 10CF */ 0x0000000000000000LL
, 0x0000000004000000LL
);
42 const unicode_block
B_GEORGIAN_EXTENDED_BLOCK( /* 10D0 - 10FF */ 0x0000000000000000LL
, 0x0000000008000000LL
);
43 const unicode_block
B_HANGUL_JAMO_BLOCK( /* 1100 - 11FF */ 0x0000000000000000LL
, 0x0000000010000000LL
);
44 const unicode_block
B_LATIN_EXTENDED_ADDITIONAL_BLOCK( /* 1E00 - 1EFF */ 0x0000000000000000LL
, 0x0000000020000000LL
);
45 const unicode_block
B_GREEK_EXTENDED_BLOCK( /* 1F00 - 1FFF */ 0x0000000000000000LL
, 0x0000000040000000LL
);
46 const unicode_block
B_GENERAL_PUNCTUATION_BLOCK( /* 2000 - 206F */ 0x0000000000000000LL
, 0x0000000080000000LL
);
47 const unicode_block
B_SUPERSCRIPTS_AND_SUBSCRIPTS_BLOCK( /* 2070 - 209F */ 0x0000000000000000LL
, 0x0000000100000000LL
);
48 const unicode_block
B_CURRENCY_SYMBOLS_BLOCK( /* 20A0 - 20CF */ 0x0000000000000000LL
, 0x0000000200000000LL
);
49 const unicode_block
B_COMBINING_MARKS_FOR_SYMBOLS_BLOCK( /* 20D0 - 20FF */ 0x0000000000000000LL
, 0x0000000400000000LL
);
50 const unicode_block
B_LETTERLIKE_SYMBOLS_BLOCK( /* 2100 - 214F */ 0x0000000000000000LL
, 0x0000000800000000LL
);
51 const unicode_block
B_NUMBER_FORMS_BLOCK( /* 2150 - 218F */ 0x0000000000000000LL
, 0x0000001000000000LL
);
52 const unicode_block
B_ARROWS_BLOCK( /* 2190 - 21FF */ 0x0000000000000000LL
, 0x0000002000000000LL
);
53 const unicode_block
B_MATHEMATICAL_OPERATORS_BLOCK( /* 2200 - 22FF */ 0x0000000000000000LL
, 0x0000004000000000LL
);
54 const unicode_block
B_MISCELLANEOUS_TECHNICAL_BLOCK( /* 2300 - 23FF */ 0x0000000000000000LL
, 0x0000008000000000LL
);
55 const unicode_block
B_CONTROL_PICTURES_BLOCK( /* 2400 - 243F */ 0x0000000000000000LL
, 0x0000010000000000LL
);
56 const unicode_block
B_OPTICAL_CHARACTER_RECOGNITION_BLOCK( /* 2440 - 245F */ 0x0000000000000000LL
, 0x0000020000000000LL
);
57 const unicode_block
B_ENCLOSED_ALPHANUMERICS_BLOCK( /* 2460 - 24FF */ 0x0000000000000000LL
, 0x0000040000000000LL
);
58 const unicode_block
B_BOX_DRAWING_BLOCK( /* 2500 - 257F */ 0x0000000000000000LL
, 0x0000080000000000LL
);
59 const unicode_block
B_BLOCK_ELEMENTS_BLOCK( /* 2580 - 259F */ 0x0000000000000000LL
, 0x0000100000000000LL
);
60 const unicode_block
B_GEOMETRIC_SHAPES_BLOCK( /* 25A0 - 25FF */ 0x0000000000000000LL
, 0x0000200000000000LL
);
61 const unicode_block
B_MISCELLANEOUS_SYMBOLS_BLOCK( /* 2600 - 26FF */ 0x0000000000000000LL
, 0x0000400000000000LL
);
62 const unicode_block
B_DINGBATS_BLOCK( /* 2700 - 27BF */ 0x0000000000000000LL
, 0x0000800000000000LL
);
63 const unicode_block
B_CJK_SYMBOLS_AND_PUNCTUATION_BLOCK( /* 3000 - 303F */ 0x0000000000000000LL
, 0x0001000000000000LL
);
64 const unicode_block
B_HIRAGANA_BLOCK( /* 3040 - 309F */ 0x0000000000000000LL
, 0x0002000000000000LL
);
65 const unicode_block
B_KATAKANA_BLOCK( /* 30A0 - 30FF */ 0x0000000000000000LL
, 0x0004000000000000LL
);
66 const unicode_block
B_BOPOMOFO_BLOCK( /* 3100 - 312F */ 0x0000000000000000LL
, 0x0008000000000000LL
);
67 const unicode_block
B_HANGUL_COMPATIBILITY_JAMO_BLOCK( /* 3130 - 318F */ 0x0000000000000000LL
, 0x0010000000000000LL
);
68 const unicode_block
B_CJK_MISCELLANEOUS_BLOCK( /* 3190 - 319F */ 0x0000000000000000LL
, 0x0020000000000000LL
);
69 const unicode_block
B_ENCLOSED_CJK_LETTERS_AND_MONTHS_BLOCK(/* 3200 - 32FF */ 0x0000000000000000LL
, 0x0040000000000000LL
);
70 const unicode_block
B_CJK_COMPATIBILITY_BLOCK( /* 3300 - 33FF */ 0x0000000000000000LL
, 0x0080000000000000LL
);
71 const unicode_block
B_HANGUL_BLOCK( /* AC00 - D7AF */ 0x0000000000000000LL
, 0x0100000000000000LL
);
72 const unicode_block
B_HIGH_SURROGATES_BLOCK( /* D800 - DBFF */ 0x0000000000000000LL
, 0x0200000000000000LL
);
73 const unicode_block
B_LOW_SURROGATES_BLOCK( /* DC00 - DFFF */ 0x0000000000000000LL
, 0x0400000000000000LL
);
74 const unicode_block
B_CJK_UNIFIED_IDEOGRAPHS_BLOCK( /* 4E00 - 9FFF */ 0x0000000000000000LL
, 0x0800000000000000LL
);
75 const unicode_block
B_PRIVATE_USE_AREA_BLOCK( /* E000 - F8FF */ 0x0000000000000000LL
, 0x1000000000000000LL
);
76 const unicode_block
B_CJK_COMPATIBILITY_IDEOGRAPHS_BLOCK( /* F900 - FAFF */ 0x0000000000000000LL
, 0x2000000000000000LL
);
77 const unicode_block
B_ALPHABETIC_PRESENTATION_FORMS_BLOCK( /* FB00 - FB4F */ 0x0000000000000000LL
, 0x4000000000000000LL
);
78 const unicode_block
B_ARABIC_PRESENTATION_FORMS_A_BLOCK( /* FB50 - FDFF */ 0x0000000000000000LL
, 0x8000000000000000LL
);
79 const unicode_block
B_COMBINING_HALF_MARKS_BLOCK( /* FE20 - FE2F */ 0x0000000000000001LL
, 0x0000000000000000LL
);
80 const unicode_block
B_CJK_COMPATIBILITY_FORMS_BLOCK( /* FE30 - FE4F */ 0x0000000000000002LL
, 0x0000000000000000LL
);
81 const unicode_block
B_SMALL_FORM_VARIANTS_BLOCK( /* FE50 - FE6F */ 0x0000000000000004LL
, 0x0000000000000000LL
);
82 const unicode_block
B_ARABIC_PRESENTATION_FORMS_B_BLOCK( /* FE70 - FEFE */ 0x0000000000000008LL
, 0x0000000000000000LL
);
83 const unicode_block
B_HALFWIDTH_AND_FULLWIDTH_FORMS_BLOCK( /* FF00 - FFEF */ 0x0000000000000010LL
, 0x0000000000000000LL
);
84 const unicode_block
B_SPECIALS_BLOCK( /* FEFF and FFF0 - FFFF */ 0x0000000000000020LL
, 0x0000000000000000LL
);
85 const unicode_block
B_TIBETAN_BLOCK( /* 0F00 - 0FBF */ 0x0000000000000040LL
, 0x0000000000000000LL
);
88 const unicode_block_range kUnicodeBlockMap
[] = {
89 {0x0000, 0x007f, B_BASIC_LATIN_BLOCK
},
90 {0x0080, 0x00ff, B_LATIN1_SUPPLEMENT_BLOCK
},
91 {0x0100, 0x017f, B_LATIN_EXTENDED_A_BLOCK
},
92 {0x0180, 0x024f, B_LATIN_EXTENDED_B_BLOCK
},
93 {0x0250, 0x02af, B_IPA_EXTENSIONS_BLOCK
},
94 {0x02b0, 0x02ff, B_SPACING_MODIFIER_LETTERS_BLOCK
},
95 {0x0300, 0x036f, B_COMBINING_DIACRITICAL_MARKS_BLOCK
},
96 {0x0370, 0x03cf, B_BASIC_GREEK_BLOCK
},
97 {0x03d0, 0x03ff, B_GREEK_SYMBOLS_AND_COPTIC_BLOCK
},
98 {0x0400, 0x04ff, B_CYRILLIC_BLOCK
},
99 {0x0530, 0x058f, B_ARMENIAN_BLOCK
},
100 {0x0590, 0x05cf, B_BASIC_HEBREW_BLOCK
},
101 {0x05d0, 0x05ff, B_HEBREW_EXTENDED_BLOCK
},
102 {0x0600, 0x0670, B_BASIC_ARABIC_BLOCK
},
103 {0x0671, 0x06ff, B_ARABIC_EXTENDED_BLOCK
},
104 {0x0900, 0x097f, B_DEVANAGARI_BLOCK
},
105 {0x0980, 0x09ff, B_BENGALI_BLOCK
},
106 {0x0a00, 0x0a7f, B_GURMUKHI_BLOCK
},
107 {0x0a80, 0x0aff, B_GUJARATI_BLOCK
},
108 {0x0b00, 0x0b7f, B_ORIYA_BLOCK
},
109 {0x0b80, 0x0bff, B_TAMIL_BLOCK
},
110 {0x0c00, 0x0c7f, B_TELUGU_BLOCK
},
111 {0x0c80, 0x0cff, B_KANNADA_BLOCK
},
112 {0x0d00, 0x0d7f, B_MALAYALAM_BLOCK
},
113 {0x0e00, 0x0e7f, B_THAI_BLOCK
},
114 {0x0e80, 0x0eff, B_LAO_BLOCK
},
115 {0x0f00, 0x0fff, B_TIBETAN_BLOCK
},
116 {0x10a0, 0x10ff, B_BASIC_GEORGIAN_BLOCK
},
117 {0x1100, 0x11ff, B_HANGUL_JAMO_BLOCK
},
118 {0x1e00, 0x1eff, B_LATIN_EXTENDED_ADDITIONAL_BLOCK
},
119 {0x1f00, 0x1fff, B_GREEK_EXTENDED_BLOCK
},
120 {0x2000, 0x206f, B_GENERAL_PUNCTUATION_BLOCK
},
121 {0x2070, 0x209f, B_SUPERSCRIPTS_AND_SUBSCRIPTS_BLOCK
},
122 {0x20a0, 0x20cf, B_CURRENCY_SYMBOLS_BLOCK
},
123 {0x20d0, 0x20ff, B_COMBINING_MARKS_FOR_SYMBOLS_BLOCK
},
124 {0x2100, 0x214f, B_LETTERLIKE_SYMBOLS_BLOCK
},
125 {0x2150, 0x218f, B_NUMBER_FORMS_BLOCK
},
126 {0x2190, 0x21ff, B_ARROWS_BLOCK
},
127 {0x2200, 0x22ff, B_MATHEMATICAL_OPERATORS_BLOCK
},
128 {0x2300, 0x23ff, B_MISCELLANEOUS_TECHNICAL_BLOCK
},
129 {0x2400, 0x243f, B_CONTROL_PICTURES_BLOCK
},
130 {0x2440, 0x245f, B_OPTICAL_CHARACTER_RECOGNITION_BLOCK
},
131 {0x2460, 0x24ff, B_ENCLOSED_ALPHANUMERICS_BLOCK
},
132 {0x2500, 0x257f, B_BOX_DRAWING_BLOCK
},
133 {0x2580, 0x259f, B_BLOCK_ELEMENTS_BLOCK
},
134 {0x25a0, 0x25ff, B_GEOMETRIC_SHAPES_BLOCK
},
135 {0x2600, 0x26ff, B_MISCELLANEOUS_SYMBOLS_BLOCK
},
136 {0x2700, 0x27bf, B_DINGBATS_BLOCK
},
137 {0x3000, 0x303f, B_CJK_SYMBOLS_AND_PUNCTUATION_BLOCK
},
138 {0x3040, 0x309f, B_HIRAGANA_BLOCK
},
139 {0x30a0, 0x30ff, B_KATAKANA_BLOCK
},
140 {0x3100, 0x312f, B_BOPOMOFO_BLOCK
},
141 {0x3130, 0x318f, B_HANGUL_COMPATIBILITY_JAMO_BLOCK
},
142 {0x3190, 0x319f, B_CJK_MISCELLANEOUS_BLOCK
},
143 {0x3200, 0x32ff, B_ENCLOSED_CJK_LETTERS_AND_MONTHS_BLOCK
},
144 {0x3300, 0x33ff, B_CJK_COMPATIBILITY_BLOCK
},
145 {0x4e00, 0x9fff, B_CJK_UNIFIED_IDEOGRAPHS_BLOCK
},
146 {0xd800, 0xdb7f, B_HIGH_SURROGATES_BLOCK
},
147 {0xdc00, 0xdfff, B_LOW_SURROGATES_BLOCK
},
148 {0xe000, 0xf8ff, B_PRIVATE_USE_AREA_BLOCK
},
149 {0xf900, 0xfaff, B_CJK_COMPATIBILITY_IDEOGRAPHS_BLOCK
},
150 {0xfb00, 0xfb4f, B_ALPHABETIC_PRESENTATION_FORMS_BLOCK
},
151 {0xfb50, 0xfdff, B_ARABIC_PRESENTATION_FORMS_A_BLOCK
},
152 {0xfe20, 0xfe2f, B_COMBINING_HALF_MARKS_BLOCK
},
153 {0xfe30, 0xfe4f, B_CJK_COMPATIBILITY_FORMS_BLOCK
},
154 {0xfe50, 0xfe6f, B_SMALL_FORM_VARIANTS_BLOCK
},
155 {0xfe70, 0xfeff, B_ARABIC_PRESENTATION_FORMS_B_BLOCK
},
156 {0xff00, 0xffef, B_HALFWIDTH_AND_FULLWIDTH_FORMS_BLOCK
},
157 {0xfff0, 0xffff, B_SPECIALS_BLOCK
}
160 const uint32 kNumUnicodeBlockRanges
161 = sizeof(kUnicodeBlockMap
) / sizeof(kUnicodeBlockMap
[0]);
163 #endif // _UNICODEBLOCKOBJECTS_H