OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2007,2008,2009 Red Hat, Inc. | 2 * Copyright © 2007,2008,2009 Red Hat, Inc. |
3 * Copyright © 2011,2012 Google, Inc. | 3 * Copyright © 2011,2012 Google, Inc. |
4 * | 4 * |
5 * This is part of HarfBuzz, a text shaping library. | 5 * This is part of HarfBuzz, a text shaping library. |
6 * | 6 * |
7 * Permission is hereby granted, without written agreement and without | 7 * Permission is hereby granted, without written agreement and without |
8 * license or royalty fees, to use, copy, modify, and distribute this | 8 * license or royalty fees, to use, copy, modify, and distribute this |
9 * software and its documentation for any purpose, provided that the | 9 * software and its documentation for any purpose, provided that the |
10 * above copyright notice and the following two paragraphs appear in | 10 * above copyright notice and the following two paragraphs appear in |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 int16_t i16[2]; | 83 int16_t i16[2]; |
84 uint8_t u8[4]; | 84 uint8_t u8[4]; |
85 int8_t i8[4]; | 85 int8_t i8[4]; |
86 } hb_var_int_t; | 86 } hb_var_int_t; |
87 | 87 |
88 | 88 |
89 /* hb_tag_t */ | 89 /* hb_tag_t */ |
90 | 90 |
91 typedef uint32_t hb_tag_t; | 91 typedef uint32_t hb_tag_t; |
92 | 92 |
93 #define HB_TAG(a,b,c,d) ((hb_tag_t)((((uint8_t)(a))<<24)|(((uint8_t)(b))<<16)|((
(uint8_t)(c))<<8)|((uint8_t)(d)))) | 93 #define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<
16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4)))) |
94 #define HB_UNTAG(tag) ((uint8_t)((tag)>>24)), ((uint8_t)((tag)>>16)), ((uint8_
t)((tag)>>8)), ((uint8_t)(tag)) | 94 #define HB_UNTAG(tag) ((uint8_t)((tag)>>24)), ((uint8_t)((tag)>>16)), ((uint8_
t)((tag)>>8)), ((uint8_t)(tag)) |
95 | 95 |
96 #define HB_TAG_NONE HB_TAG(0,0,0,0) | 96 #define HB_TAG_NONE HB_TAG(0,0,0,0) |
97 | 97 |
98 /* len=-1 means str is NUL-terminated. */ | 98 /* len=-1 means str is NUL-terminated. */ |
99 hb_tag_t | 99 hb_tag_t |
100 hb_tag_from_string (const char *str, int len); | 100 hb_tag_from_string (const char *str, int len); |
101 | 101 |
102 /* buf should have 4 bytes. */ | 102 /* buf should have 4 bytes. */ |
103 void | 103 void |
(...skipping 20 matching lines...) Expand all Loading... |
124 #define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4) | 124 #define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4) |
125 #define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6) | 125 #define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6) |
126 #define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4) | 126 #define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4) |
127 #define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5) | 127 #define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5) |
128 #define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4) | 128 #define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4) |
129 #define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)
) ^ 1)) /* Direction must be valid */ | 129 #define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)
) ^ 1)) /* Direction must be valid */ |
130 | 130 |
131 | 131 |
132 /* hb_language_t */ | 132 /* hb_language_t */ |
133 | 133 |
134 typedef struct hb_language_impl_t *hb_language_t; | 134 typedef const struct hb_language_impl_t *hb_language_t; |
135 | 135 |
136 /* len=-1 means str is NUL-terminated */ | 136 /* len=-1 means str is NUL-terminated */ |
137 hb_language_t | 137 hb_language_t |
138 hb_language_from_string (const char *str, int len); | 138 hb_language_from_string (const char *str, int len); |
139 | 139 |
140 const char * | 140 const char * |
141 hb_language_to_string (hb_language_t language); | 141 hb_language_to_string (hb_language_t language); |
142 | 142 |
143 #define HB_LANGUAGE_INVALID ((hb_language_t) NULL) | 143 #define HB_LANGUAGE_INVALID ((hb_language_t) NULL) |
144 | 144 |
145 hb_language_t | 145 hb_language_t |
146 hb_language_get_default (void); | 146 hb_language_get_default (void); |
147 | 147 |
148 | 148 |
149 /* hb_script_t */ | 149 /* hb_script_t */ |
150 | 150 |
151 /* http://unicode.org/iso15924/ */ | 151 /* http://unicode.org/iso15924/ */ |
152 /* http://goo.gl/x9ilM */ | 152 /* http://goo.gl/x9ilM */ |
153 /* Unicode Character Database property: Script (sc) */ | 153 /* Unicode Character Database property: Script (sc) */ |
154 typedef enum | 154 typedef enum |
155 { | 155 { |
156 /* Unicode-1.1 additions */ | 156 /*1.1*/ HB_SCRIPT_COMMON» » » = HB_TAG ('Z','y','y','y'), |
157 HB_SCRIPT_COMMON» » » = HB_TAG ('Z','y','y','y'), | 157 /*1.1*/ HB_SCRIPT_INHERITED» » » = HB_TAG ('Z','i','n','h'), |
158 HB_SCRIPT_ARABIC» » » = HB_TAG ('A','r','a','b'), | 158 /*5.0*/ HB_SCRIPT_UNKNOWN» » » = HB_TAG ('Z','z','z','z'), |
159 HB_SCRIPT_ARMENIAN» » » = HB_TAG ('A','r','m','n'), | |
160 HB_SCRIPT_BENGALI» » » = HB_TAG ('B','e','n','g'), | |
161 HB_SCRIPT_BOPOMOFO» » » = HB_TAG ('B','o','p','o'), | |
162 HB_SCRIPT_CANADIAN_ABORIGINAL»» = HB_TAG ('C','a','n','s'), | |
163 HB_SCRIPT_CHEROKEE» » » = HB_TAG ('C','h','e','r'), | |
164 HB_SCRIPT_COPTIC» » » = HB_TAG ('C','o','p','t'), | |
165 HB_SCRIPT_CYRILLIC» » » = HB_TAG ('C','y','r','l'), | |
166 HB_SCRIPT_DEVANAGARI» » » = HB_TAG ('D','e','v','a'), | |
167 HB_SCRIPT_GEORGIAN» » » = HB_TAG ('G','e','o','r'), | |
168 HB_SCRIPT_GREEK» » » = HB_TAG ('G','r','e','k'), | |
169 HB_SCRIPT_GUJARATI» » » = HB_TAG ('G','u','j','r'), | |
170 HB_SCRIPT_GURMUKHI» » » = HB_TAG ('G','u','r','u'), | |
171 HB_SCRIPT_HANGUL» » » = HB_TAG ('H','a','n','g'), | |
172 HB_SCRIPT_HAN»» » » = HB_TAG ('H','a','n','i'), | |
173 HB_SCRIPT_HEBREW» » » = HB_TAG ('H','e','b','r'), | |
174 HB_SCRIPT_HIRAGANA» » » = HB_TAG ('H','i','r','a'), | |
175 HB_SCRIPT_INHERITED» » » = HB_TAG ('Z','i','n','h'), | |
176 HB_SCRIPT_KANNADA» » » = HB_TAG ('K','n','d','a'), | |
177 HB_SCRIPT_KATAKANA» » » = HB_TAG ('K','a','n','a'), | |
178 HB_SCRIPT_LAO»» » » = HB_TAG ('L','a','o','o'), | |
179 HB_SCRIPT_LATIN» » » = HB_TAG ('L','a','t','n'), | |
180 HB_SCRIPT_MALAYALAM» » » = HB_TAG ('M','l','y','m'), | |
181 HB_SCRIPT_MONGOLIAN» » » = HB_TAG ('M','o','n','g'), | |
182 HB_SCRIPT_OGHAM» » » = HB_TAG ('O','g','a','m'), | |
183 HB_SCRIPT_ORIYA» » » = HB_TAG ('O','r','y','a'), | |
184 HB_SCRIPT_RUNIC» » » = HB_TAG ('R','u','n','r'), | |
185 HB_SCRIPT_SYRIAC» » » = HB_TAG ('S','y','r','c'), | |
186 HB_SCRIPT_TAMIL» » » = HB_TAG ('T','a','m','l'), | |
187 HB_SCRIPT_TELUGU» » » = HB_TAG ('T','e','l','u'), | |
188 HB_SCRIPT_THAI» » » = HB_TAG ('T','h','a','i'), | |
189 HB_SCRIPT_YI» » » » = HB_TAG ('Y','i','i','i'), | |
190 | 159 |
191 /* Unicode-2.0 additions */ | 160 /*1.1*/ HB_SCRIPT_ARABIC» » » = HB_TAG ('A','r','a','b'), |
192 HB_SCRIPT_TIBETAN» » » = HB_TAG ('T','i','b','t'), | 161 /*1.1*/ HB_SCRIPT_ARMENIAN» » » = HB_TAG ('A','r','m','n'), |
| 162 /*1.1*/ HB_SCRIPT_BENGALI» » » = HB_TAG ('B','e','n','g'), |
| 163 /*1.1*/ HB_SCRIPT_CYRILLIC» » » = HB_TAG ('C','y','r','l'), |
| 164 /*1.1*/ HB_SCRIPT_DEVANAGARI» » » = HB_TAG ('D','e','v','a'), |
| 165 /*1.1*/ HB_SCRIPT_GEORGIAN» » » = HB_TAG ('G','e','o','r'), |
| 166 /*1.1*/ HB_SCRIPT_GREEK» » » = HB_TAG ('G','r','e','k'), |
| 167 /*1.1*/ HB_SCRIPT_GUJARATI» » » = HB_TAG ('G','u','j','r'), |
| 168 /*1.1*/ HB_SCRIPT_GURMUKHI» » » = HB_TAG ('G','u','r','u'), |
| 169 /*1.1*/ HB_SCRIPT_HANGUL» » » = HB_TAG ('H','a','n','g'), |
| 170 /*1.1*/ HB_SCRIPT_HAN»» » » = HB_TAG ('H','a','n','i'), |
| 171 /*1.1*/ HB_SCRIPT_HEBREW» » » = HB_TAG ('H','e','b','r'), |
| 172 /*1.1*/ HB_SCRIPT_HIRAGANA» » » = HB_TAG ('H','i','r','a'), |
| 173 /*1.1*/ HB_SCRIPT_KANNADA» » » = HB_TAG ('K','n','d','a'), |
| 174 /*1.1*/ HB_SCRIPT_KATAKANA» » » = HB_TAG ('K','a','n','a'), |
| 175 /*1.1*/ HB_SCRIPT_LAO»» » » = HB_TAG ('L','a','o','o'), |
| 176 /*1.1*/ HB_SCRIPT_LATIN» » » = HB_TAG ('L','a','t','n'), |
| 177 /*1.1*/ HB_SCRIPT_MALAYALAM» » » = HB_TAG ('M','l','y','m'), |
| 178 /*1.1*/ HB_SCRIPT_ORIYA» » » = HB_TAG ('O','r','y','a'), |
| 179 /*1.1*/ HB_SCRIPT_TAMIL» » » = HB_TAG ('T','a','m','l'), |
| 180 /*1.1*/ HB_SCRIPT_TELUGU» » » = HB_TAG ('T','e','l','u'), |
| 181 /*1.1*/ HB_SCRIPT_THAI» » » = HB_TAG ('T','h','a','i'), |
193 | 182 |
194 /* Unicode-3.0 additions */ | 183 /*2.0*/ HB_SCRIPT_TIBETAN» » » = HB_TAG ('T','i','b','t'), |
195 HB_SCRIPT_ETHIOPIC» » » = HB_TAG ('E','t','h','i'), | |
196 HB_SCRIPT_KHMER» » » = HB_TAG ('K','h','m','r'), | |
197 HB_SCRIPT_MYANMAR» » » = HB_TAG ('M','y','m','r'), | |
198 HB_SCRIPT_SINHALA» » » = HB_TAG ('S','i','n','h'), | |
199 HB_SCRIPT_THAANA» » » = HB_TAG ('T','h','a','a'), | |
200 | 184 |
201 /* Unicode-3.1 additions */ | 185 /*3.0*/ HB_SCRIPT_BOPOMOFO» » » = HB_TAG ('B','o','p','o'), |
202 HB_SCRIPT_DESERET» » » = HB_TAG ('D','s','r','t'), | 186 /*3.0*/ HB_SCRIPT_BRAILLE» » » = HB_TAG ('B','r','a','i'), |
203 HB_SCRIPT_GOTHIC» » » = HB_TAG ('G','o','t','h'), | 187 /*3.0*/ HB_SCRIPT_CANADIAN_SYLLABICS» » = HB_TAG ('C','a','n','s'), |
204 HB_SCRIPT_OLD_ITALIC» » » = HB_TAG ('I','t','a','l'), | 188 /*3.0*/ HB_SCRIPT_CHEROKEE» » » = HB_TAG ('C','h','e','r'), |
| 189 /*3.0*/ HB_SCRIPT_ETHIOPIC» » » = HB_TAG ('E','t','h','i'), |
| 190 /*3.0*/ HB_SCRIPT_KHMER» » » = HB_TAG ('K','h','m','r'), |
| 191 /*3.0*/ HB_SCRIPT_MONGOLIAN» » » = HB_TAG ('M','o','n','g'), |
| 192 /*3.0*/ HB_SCRIPT_MYANMAR» » » = HB_TAG ('M','y','m','r'), |
| 193 /*3.0*/ HB_SCRIPT_OGHAM» » » = HB_TAG ('O','g','a','m'), |
| 194 /*3.0*/ HB_SCRIPT_RUNIC» » » = HB_TAG ('R','u','n','r'), |
| 195 /*3.0*/ HB_SCRIPT_SINHALA» » » = HB_TAG ('S','i','n','h'), |
| 196 /*3.0*/ HB_SCRIPT_SYRIAC» » » = HB_TAG ('S','y','r','c'), |
| 197 /*3.0*/ HB_SCRIPT_THAANA» » » = HB_TAG ('T','h','a','a'), |
| 198 /*3.0*/ HB_SCRIPT_YI» » » » = HB_TAG ('Y','i','i','i'), |
205 | 199 |
206 /* Unicode-3.2 additions */ | 200 /*3.1*/ HB_SCRIPT_DESERET» » » = HB_TAG ('D','s','r','t'), |
207 HB_SCRIPT_BUHID» » » = HB_TAG ('B','u','h','d'), | 201 /*3.1*/ HB_SCRIPT_GOTHIC» » » = HB_TAG ('G','o','t','h'), |
208 HB_SCRIPT_HANUNOO» » » = HB_TAG ('H','a','n','o'), | 202 /*3.1*/ HB_SCRIPT_OLD_ITALIC» » » = HB_TAG ('I','t','a','l'), |
209 HB_SCRIPT_TAGALOG» » » = HB_TAG ('T','g','l','g'), | |
210 HB_SCRIPT_TAGBANWA» » » = HB_TAG ('T','a','g','b'), | |
211 | 203 |
212 /* Unicode-4.0 additions */ | 204 /*3.2*/ HB_SCRIPT_BUHID» » » = HB_TAG ('B','u','h','d'), |
213 HB_SCRIPT_BRAILLE» » » = HB_TAG ('B','r','a','i'), | 205 /*3.2*/ HB_SCRIPT_HANUNOO» » » = HB_TAG ('H','a','n','o'), |
214 HB_SCRIPT_CYPRIOT» » » = HB_TAG ('C','p','r','t'), | 206 /*3.2*/ HB_SCRIPT_TAGALOG» » » = HB_TAG ('T','g','l','g'), |
215 HB_SCRIPT_LIMBU» » » = HB_TAG ('L','i','m','b'), | 207 /*3.2*/ HB_SCRIPT_TAGBANWA» » » = HB_TAG ('T','a','g','b'), |
216 HB_SCRIPT_LINEAR_B» » » = HB_TAG ('L','i','n','b'), | |
217 HB_SCRIPT_OSMANYA» » » = HB_TAG ('O','s','m','a'), | |
218 HB_SCRIPT_SHAVIAN» » » = HB_TAG ('S','h','a','w'), | |
219 HB_SCRIPT_TAI_LE» » » = HB_TAG ('T','a','l','e'), | |
220 HB_SCRIPT_UGARITIC» » » = HB_TAG ('U','g','a','r'), | |
221 | 208 |
222 /* Unicode-4.1 additions */ | 209 /*4.0*/ HB_SCRIPT_CYPRIOT» » » = HB_TAG ('C','p','r','t'), |
223 HB_SCRIPT_BUGINESE» » » = HB_TAG ('B','u','g','i'), | 210 /*4.0*/ HB_SCRIPT_LIMBU» » » = HB_TAG ('L','i','m','b'), |
224 HB_SCRIPT_GLAGOLITIC» » » = HB_TAG ('G','l','a','g'), | 211 /*4.0*/ HB_SCRIPT_LINEAR_B» » » = HB_TAG ('L','i','n','b'), |
225 HB_SCRIPT_KHAROSHTHI» » » = HB_TAG ('K','h','a','r'), | 212 /*4.0*/ HB_SCRIPT_OSMANYA» » » = HB_TAG ('O','s','m','a'), |
226 HB_SCRIPT_NEW_TAI_LUE»» » = HB_TAG ('T','a','l','u'), | 213 /*4.0*/ HB_SCRIPT_SHAVIAN» » » = HB_TAG ('S','h','a','w'), |
227 HB_SCRIPT_OLD_PERSIAN»» » = HB_TAG ('X','p','e','o'), | 214 /*4.0*/ HB_SCRIPT_TAI_LE» » » = HB_TAG ('T','a','l','e'), |
228 HB_SCRIPT_SYLOTI_NAGRI» » = HB_TAG ('S','y','l','o'), | 215 /*4.0*/ HB_SCRIPT_UGARITIC» » » = HB_TAG ('U','g','a','r'), |
229 HB_SCRIPT_TIFINAGH» » » = HB_TAG ('T','f','n','g'), | |
230 | 216 |
231 /* Unicode-5.0 additions */ | 217 /*4.1*/ HB_SCRIPT_BUGINESE» » » = HB_TAG ('B','u','g','i'), |
232 HB_SCRIPT_BALINESE» » » = HB_TAG ('B','a','l','i'), | 218 /*4.1*/ HB_SCRIPT_COPTIC» » » = HB_TAG ('C','o','p','t'), |
233 HB_SCRIPT_CUNEIFORM» » » = HB_TAG ('X','s','u','x'), | 219 /*4.1*/ HB_SCRIPT_GLAGOLITIC» » » = HB_TAG ('G','l','a','g'), |
234 HB_SCRIPT_NKO»» » » = HB_TAG ('N','k','o','o'), | 220 /*4.1*/ HB_SCRIPT_KHAROSHTHI» » » = HB_TAG ('K','h','a','r'), |
235 HB_SCRIPT_PHAGS_PA» » » = HB_TAG ('P','h','a','g'), | 221 /*4.1*/ HB_SCRIPT_NEW_TAI_LUE»» » = HB_TAG ('T','a','l','u'), |
236 HB_SCRIPT_PHOENICIAN» » » = HB_TAG ('P','h','n','x'), | 222 /*4.1*/ HB_SCRIPT_OLD_PERSIAN»» » = HB_TAG ('X','p','e','o'), |
237 HB_SCRIPT_UNKNOWN» » » = HB_TAG ('Z','z','z','z'), | 223 /*4.1*/ HB_SCRIPT_SYLOTI_NAGRI» » = HB_TAG ('S','y','l','o'), |
| 224 /*4.1*/ HB_SCRIPT_TIFINAGH» » » = HB_TAG ('T','f','n','g'), |
238 | 225 |
239 /* Unicode-5.1 additions */ | 226 /*5.0*/ HB_SCRIPT_BALINESE» » » = HB_TAG ('B','a','l','i'), |
240 HB_SCRIPT_CARIAN» » » = HB_TAG ('C','a','r','i'), | 227 /*5.0*/ HB_SCRIPT_CUNEIFORM» » » = HB_TAG ('X','s','u','x'), |
241 HB_SCRIPT_CHAM» » » = HB_TAG ('C','h','a','m'), | 228 /*5.0*/ HB_SCRIPT_NKO»» » » = HB_TAG ('N','k','o','o'), |
242 HB_SCRIPT_KAYAH_LI» » » = HB_TAG ('K','a','l','i'), | 229 /*5.0*/ HB_SCRIPT_PHAGS_PA» » » = HB_TAG ('P','h','a','g'), |
243 HB_SCRIPT_LEPCHA» » » = HB_TAG ('L','e','p','c'), | 230 /*5.0*/ HB_SCRIPT_PHOENICIAN» » » = HB_TAG ('P','h','n','x'), |
244 HB_SCRIPT_LYCIAN» » » = HB_TAG ('L','y','c','i'), | |
245 HB_SCRIPT_LYDIAN» » » = HB_TAG ('L','y','d','i'), | |
246 HB_SCRIPT_OL_CHIKI» » » = HB_TAG ('O','l','c','k'), | |
247 HB_SCRIPT_REJANG» » » = HB_TAG ('R','j','n','g'), | |
248 HB_SCRIPT_SAURASHTRA» » » = HB_TAG ('S','a','u','r'), | |
249 HB_SCRIPT_SUNDANESE» » » = HB_TAG ('S','u','n','d'), | |
250 HB_SCRIPT_VAI»» » » = HB_TAG ('V','a','i','i'), | |
251 | 231 |
252 /* Unicode-5.2 additions */ | 232 /*5.1*/ HB_SCRIPT_CARIAN» » » = HB_TAG ('C','a','r','i'), |
253 HB_SCRIPT_AVESTAN» » » = HB_TAG ('A','v','s','t'), | 233 /*5.1*/ HB_SCRIPT_CHAM» » » = HB_TAG ('C','h','a','m'), |
254 HB_SCRIPT_BAMUM» » » = HB_TAG ('B','a','m','u'), | 234 /*5.1*/ HB_SCRIPT_KAYAH_LI» » » = HB_TAG ('K','a','l','i'), |
255 HB_SCRIPT_EGYPTIAN_HIEROGLYPHS» = HB_TAG ('E','g','y','p'), | 235 /*5.1*/ HB_SCRIPT_LEPCHA» » » = HB_TAG ('L','e','p','c'), |
256 HB_SCRIPT_IMPERIAL_ARAMAIC» » = HB_TAG ('A','r','m','i'), | 236 /*5.1*/ HB_SCRIPT_LYCIAN» » » = HB_TAG ('L','y','c','i'), |
257 HB_SCRIPT_INSCRIPTIONAL_PAHLAVI» = HB_TAG ('P','h','l','i'), | 237 /*5.1*/ HB_SCRIPT_LYDIAN» » » = HB_TAG ('L','y','d','i'), |
258 HB_SCRIPT_INSCRIPTIONAL_PARTHIAN» = HB_TAG ('P','r','t','i'), | 238 /*5.1*/ HB_SCRIPT_OL_CHIKI» » » = HB_TAG ('O','l','c','k'), |
259 HB_SCRIPT_JAVANESE» » » = HB_TAG ('J','a','v','a'), | 239 /*5.1*/ HB_SCRIPT_REJANG» » » = HB_TAG ('R','j','n','g'), |
260 HB_SCRIPT_KAITHI» » » = HB_TAG ('K','t','h','i'), | 240 /*5.1*/ HB_SCRIPT_SAURASHTRA» » » = HB_TAG ('S','a','u','r'), |
261 HB_SCRIPT_LISU» » » = HB_TAG ('L','i','s','u'), | 241 /*5.1*/ HB_SCRIPT_SUNDANESE» » » = HB_TAG ('S','u','n','d'), |
262 HB_SCRIPT_MEETEI_MAYEK» » = HB_TAG ('M','t','e','i'), | 242 /*5.1*/ HB_SCRIPT_VAI»» » » = HB_TAG ('V','a','i','i'), |
263 HB_SCRIPT_OLD_SOUTH_ARABIAN» » = HB_TAG ('S','a','r','b'), | |
264 HB_SCRIPT_OLD_TURKIC» » » = HB_TAG ('O','r','k','h'), | |
265 HB_SCRIPT_SAMARITAN» » » = HB_TAG ('S','a','m','r'), | |
266 HB_SCRIPT_TAI_THAM» » » = HB_TAG ('L','a','n','a'), | |
267 HB_SCRIPT_TAI_VIET» » » = HB_TAG ('T','a','v','t'), | |
268 | 243 |
269 /* Unicode-6.0 additions */ | 244 /*5.2*/ HB_SCRIPT_AVESTAN» » » = HB_TAG ('A','v','s','t'), |
270 HB_SCRIPT_BATAK» » » = HB_TAG ('B','a','t','k'), | 245 /*5.2*/ HB_SCRIPT_BAMUM» » » = HB_TAG ('B','a','m','u'), |
271 HB_SCRIPT_BRAHMI» » » = HB_TAG ('B','r','a','h'), | 246 /*5.2*/ HB_SCRIPT_EGYPTIAN_HIEROGLYPHS» = HB_TAG ('E','g','y','p'), |
272 HB_SCRIPT_MANDAIC» » » = HB_TAG ('M','a','n','d'), | 247 /*5.2*/ HB_SCRIPT_IMPERIAL_ARAMAIC» » = HB_TAG ('A','r','m','i'), |
| 248 /*5.2*/ HB_SCRIPT_INSCRIPTIONAL_PAHLAVI» = HB_TAG ('P','h','l','i'), |
| 249 /*5.2*/ HB_SCRIPT_INSCRIPTIONAL_PARTHIAN» = HB_TAG ('P','r','t','i'), |
| 250 /*5.2*/ HB_SCRIPT_JAVANESE» » » = HB_TAG ('J','a','v','a'), |
| 251 /*5.2*/ HB_SCRIPT_KAITHI» » » = HB_TAG ('K','t','h','i'), |
| 252 /*5.2*/ HB_SCRIPT_LISU» » » = HB_TAG ('L','i','s','u'), |
| 253 /*5.2*/ HB_SCRIPT_MEETEI_MAYEK» » = HB_TAG ('M','t','e','i'), |
| 254 /*5.2*/ HB_SCRIPT_OLD_SOUTH_ARABIAN» » = HB_TAG ('S','a','r','b'), |
| 255 /*5.2*/ HB_SCRIPT_OLD_TURKIC» » » = HB_TAG ('O','r','k','h'), |
| 256 /*5.2*/ HB_SCRIPT_SAMARITAN» » » = HB_TAG ('S','a','m','r'), |
| 257 /*5.2*/ HB_SCRIPT_TAI_THAM» » » = HB_TAG ('L','a','n','a'), |
| 258 /*5.2*/ HB_SCRIPT_TAI_VIET» » » = HB_TAG ('T','a','v','t'), |
273 | 259 |
274 /* Unicode-6.1 additions */ | 260 /*6.0*/ HB_SCRIPT_BATAK» » » = HB_TAG ('B','a','t','k'), |
275 HB_SCRIPT_CHAKMA» » » = HB_TAG ('C','a','k','m'), | 261 /*6.0*/ HB_SCRIPT_BRAHMI» » » = HB_TAG ('B','r','a','h'), |
276 HB_SCRIPT_MEROITIC_CURSIVE» » = HB_TAG ('M','e','r','c'), | 262 /*6.0*/ HB_SCRIPT_MANDAIC» » » = HB_TAG ('M','a','n','d'), |
277 HB_SCRIPT_MEROITIC_HIEROGLYPHS» = HB_TAG ('M','e','r','o'), | |
278 HB_SCRIPT_MIAO» » » = HB_TAG ('P','l','r','d'), | |
279 HB_SCRIPT_SHARADA» » » = HB_TAG ('S','h','r','d'), | |
280 HB_SCRIPT_SORA_SOMPENG» » = HB_TAG ('S','o','r','a'), | |
281 HB_SCRIPT_TAKRI» » » = HB_TAG ('T','a','k','r'), | |
282 | 263 |
283 /* No script set */ | 264 /*6.1*/ HB_SCRIPT_CHAKMA» » » = HB_TAG ('C','a','k','m'), |
284 HB_SCRIPT_INVALID» » » = HB_TAG_NONE | 265 /*6.1*/ HB_SCRIPT_MEROITIC_CURSIVE» » = HB_TAG ('M','e','r','c'), |
| 266 /*6.1*/ HB_SCRIPT_MEROITIC_HIEROGLYPHS» = HB_TAG ('M','e','r','o'), |
| 267 /*6.1*/ HB_SCRIPT_MIAO» » » = HB_TAG ('P','l','r','d'), |
| 268 /*6.1*/ HB_SCRIPT_SHARADA» » » = HB_TAG ('S','h','r','d'), |
| 269 /*6.1*/ HB_SCRIPT_SORA_SOMPENG» » = HB_TAG ('S','o','r','a'), |
| 270 /*6.1*/ HB_SCRIPT_TAKRI» » » = HB_TAG ('T','a','k','r'), |
| 271 |
| 272 /* No script set. */ |
| 273 /*---*/ HB_SCRIPT_INVALID» » » = HB_TAG_NONE |
285 } hb_script_t; | 274 } hb_script_t; |
286 | 275 |
| 276 /* These are moved out of hb_script_t because glib-mkenums chokes otherwise. */ |
| 277 #if 0 |
| 278 /*7.0*/ HB_SCRIPT_BASSA_VAH = HB_TAG ('B','a','s','s'), |
| 279 /*7.0*/ HB_SCRIPT_CAUCASIAN_ALBANIAN = HB_TAG ('A','g','h','b'), |
| 280 /*7.0*/ HB_SCRIPT_DUPLOYAN = HB_TAG ('D','u','p','l'), |
| 281 /*7.0*/ HB_SCRIPT_ELBASAN = HB_TAG ('E','l','b','a'), |
| 282 /*7.0*/ HB_SCRIPT_GRANTHA = HB_TAG ('G','r','a','n'), |
| 283 /*7.0*/ HB_SCRIPT_KHOJKI = HB_TAG ('K','h','o','j'), |
| 284 /*7.0*/ HB_SCRIPT_KHUDAWADI = HB_TAG ('S','i','n','d'), |
| 285 /*7.0*/ HB_SCRIPT_LINEAR_A = HB_TAG ('L','i','n','a'), |
| 286 /*7.0*/ HB_SCRIPT_MAHAJANI = HB_TAG ('M','a','h','j'), |
| 287 /*7.0*/ HB_SCRIPT_MANICHAEAN = HB_TAG ('M','a','n','i'), |
| 288 /*7.0*/ HB_SCRIPT_MENDE_KIKAKUI = HB_TAG ('M','e','n','d'), |
| 289 /*7.0*/ HB_SCRIPT_MODI = ??? |
| 290 /*7.0*/ HB_SCRIPT_MRO = HB_TAG ('M','r','o','o'), |
| 291 /*7.0*/ HB_SCRIPT_NABATAEAN = HB_TAG ('N','b','a','t'), |
| 292 /*7.0*/ HB_SCRIPT_OLD_NORTH_ARABIAN = HB_TAG ('N','a','r','b'), |
| 293 /*7.0*/ HB_SCRIPT_OLD_PERMIC = HB_TAG ('P','e','r','m'), |
| 294 /*7.0*/ HB_SCRIPT_PAHAWH_HMONG = HB_TAG ('H','m','n','g'), |
| 295 /*7.0*/ HB_SCRIPT_PALMYRENE = HB_TAG ('P','a','l','m'), |
| 296 /*7.0*/ HB_SCRIPT_PAU_CIN_HAU = ??? |
| 297 /*7.0*/ HB_SCRIPT_PSALTER_PAHLAVI = HB_TAG ('P','h','l','p'), |
| 298 /*7.0*/ HB_SCRIPT_SIDDHAM = ??? |
| 299 /*7.0*/ HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), |
| 300 /*7.0*/ HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), |
| 301 #endif |
| 302 |
287 | 303 |
288 /* Script functions */ | 304 /* Script functions */ |
289 | 305 |
290 hb_script_t | 306 hb_script_t |
291 hb_script_from_iso15924_tag (hb_tag_t tag); | 307 hb_script_from_iso15924_tag (hb_tag_t tag); |
292 | 308 |
293 /* suger for tag_from_string() then script_from_iso15924_tag */ | 309 /* suger for tag_from_string() then script_from_iso15924_tag */ |
294 /* len=-1 means s is NUL-terminated */ | 310 /* len=-1 means s is NUL-terminated */ |
295 hb_script_t | 311 hb_script_t |
296 hb_script_from_string (const char *s, int len); | 312 hb_script_from_string (const char *s, int len); |
(...skipping 11 matching lines...) Expand all Loading... |
308 /*< private >*/ | 324 /*< private >*/ |
309 char unused; | 325 char unused; |
310 } hb_user_data_key_t; | 326 } hb_user_data_key_t; |
311 | 327 |
312 typedef void (*hb_destroy_func_t) (void *user_data); | 328 typedef void (*hb_destroy_func_t) (void *user_data); |
313 | 329 |
314 | 330 |
315 HB_END_DECLS | 331 HB_END_DECLS |
316 | 332 |
317 #endif /* HB_COMMON_H */ | 333 #endif /* HB_COMMON_H */ |
OLD | NEW |