47 defined (_sgi) || defined (__sun) || defined (sun) || \ |
47 defined (_sgi) || defined (__sun) || defined (sun) || \ |
48 defined (__digital__) || defined (__HP_cc) |
48 defined (__digital__) || defined (__HP_cc) |
49 # include <inttypes.h> |
49 # include <inttypes.h> |
50 #elif defined (_AIX) |
50 #elif defined (_AIX) |
51 # include <sys/inttypes.h> |
51 # include <sys/inttypes.h> |
|
52 #elif defined (_MSC_VER) && _MSC_VER < 1600 |
|
53 /* VS 2010 (_MSC_VER 1600) has stdint.h */ |
|
54 typedef __int8 int8_t; |
|
55 typedef unsigned __int8 uint8_t; |
|
56 typedef __int16 int16_t; |
|
57 typedef unsigned __int16 uint16_t; |
|
58 typedef __int32 int32_t; |
|
59 typedef unsigned __int32 uint32_t; |
|
60 typedef __int64 int64_t; |
|
61 typedef unsigned __int64 uint64_t; |
52 #else |
62 #else |
53 # include <stdint.h> |
63 # include <stdint.h> |
54 #endif |
64 #endif |
55 |
65 |
56 HB_BEGIN_DECLS |
66 HB_BEGIN_DECLS |
140 hb_language_get_default (void); |
150 hb_language_get_default (void); |
141 |
151 |
142 |
152 |
143 /* hb_script_t */ |
153 /* hb_script_t */ |
144 |
154 |
145 /* http://unicode.org/iso15924/ */ |
155 /* https://unicode.org/iso15924/ */ |
146 /* http://goo.gl/x9ilM */ |
156 /* https://docs.google.com/spreadsheets/d/1Y90M0Ie3MUJ6UVCRDOypOtijlMDLNNyyLk36T6iMu0o */ |
147 /* Unicode Character Database property: Script (sc) */ |
157 /* Unicode Character Database property: Script (sc) */ |
148 typedef enum |
158 typedef enum |
149 { |
159 { |
150 /*1.1*/ HB_SCRIPT_COMMON = HB_TAG ('Z','y','y','y'), |
160 /*1.1*/ HB_SCRIPT_COMMON = HB_TAG ('Z','y','y','y'), |
151 /*1.1*/ HB_SCRIPT_INHERITED = HB_TAG ('Z','i','n','h'), |
161 /*1.1*/ HB_SCRIPT_INHERITED = HB_TAG ('Z','i','n','h'), |
313 /*10.0*/HB_SCRIPT_MASARAM_GONDI = HB_TAG ('G','o','n','m'), |
323 /*10.0*/HB_SCRIPT_MASARAM_GONDI = HB_TAG ('G','o','n','m'), |
314 /*10.0*/HB_SCRIPT_NUSHU = HB_TAG ('N','s','h','u'), |
324 /*10.0*/HB_SCRIPT_NUSHU = HB_TAG ('N','s','h','u'), |
315 /*10.0*/HB_SCRIPT_SOYOMBO = HB_TAG ('S','o','y','o'), |
325 /*10.0*/HB_SCRIPT_SOYOMBO = HB_TAG ('S','o','y','o'), |
316 /*10.0*/HB_SCRIPT_ZANABAZAR_SQUARE = HB_TAG ('Z','a','n','b'), |
326 /*10.0*/HB_SCRIPT_ZANABAZAR_SQUARE = HB_TAG ('Z','a','n','b'), |
317 |
327 |
|
328 /* |
|
329 * Since 1.8.0 |
|
330 */ |
|
331 /*11.0*/HB_SCRIPT_DOGRA = HB_TAG ('D','o','g','r'), |
|
332 /*11.0*/HB_SCRIPT_GUNJALA_GONDI = HB_TAG ('G','o','n','g'), |
|
333 /*11.0*/HB_SCRIPT_HANIFI_ROHINGYA = HB_TAG ('R','o','h','g'), |
|
334 /*11.0*/HB_SCRIPT_MAKASAR = HB_TAG ('M','a','k','a'), |
|
335 /*11.0*/HB_SCRIPT_MEDEFAIDRIN = HB_TAG ('M','e','d','f'), |
|
336 /*11.0*/HB_SCRIPT_OLD_SOGDIAN = HB_TAG ('S','o','g','o'), |
|
337 /*11.0*/HB_SCRIPT_SOGDIAN = HB_TAG ('S','o','g','d'), |
|
338 |
318 /* No script set. */ |
339 /* No script set. */ |
319 HB_SCRIPT_INVALID = HB_TAG_NONE, |
340 HB_SCRIPT_INVALID = HB_TAG_NONE, |
320 |
341 |
321 /* Dummy values to ensure any hb_tag_t value can be passed/stored as hb_script_t |
342 /* Dummy values to ensure any hb_tag_t value can be passed/stored as hb_script_t |
322 * without risking undefined behavior. Include both a signed and unsigned max, |
343 * without risking undefined behavior. Include both a signed and unsigned max, |
323 * since technically enums are int, and indeed, hb_script_t ends up being signed. |
344 * since technically enums are int, and indeed, hb_script_t ends up being signed. |
324 * See this thread for technicalities: |
345 * See this thread for technicalities: |
325 * |
346 * |
326 * http://lists.freedesktop.org/archives/harfbuzz/2014-March/004150.html |
347 * https://lists.freedesktop.org/archives/harfbuzz/2014-March/004150.html |
327 */ |
348 */ |
328 _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/ |
349 _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/ |
329 _HB_SCRIPT_MAX_VALUE_SIGNED = HB_TAG_MAX_SIGNED /*< skip >*/ |
350 _HB_SCRIPT_MAX_VALUE_SIGNED = HB_TAG_MAX_SIGNED /*< skip >*/ |
330 |
351 |
331 } hb_script_t; |
352 } hb_script_t; |