19 20 21 22 #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) 23 # define HB_BEGIN_VISIBILITY _Pragma ("GCC visibility push(hidden)") 24 # define HB_END_VISIBILITY _Pragma ("GCC visibility pop") 25 #else 26 # define HB_BEGIN_VISIBILITY 27 # define HB_END_VISIBILITY 28 #endif 29 #ifdef __cplusplus 30 # define HB_BEGIN_HEADER extern "C" { HB_BEGIN_VISIBILITY 31 # define HB_END_HEADER HB_END_VISIBILITY } 32 #else 33 # define HB_BEGIN_HEADER HB_BEGIN_VISIBILITY 34 # define HB_END_HEADER HB_END_VISIBILITY 35 #endif 36 37 HB_BEGIN_HEADER 38 39 #if !defined (HB_DONT_DEFINE_STDINT) 40 41 #if defined (_SVR4) || defined (SVR4) || defined (__OpenBSD__) || \ 42 defined (_sgi) || defined (__sun) || defined (sun) || \ 43 defined (__digital__) || defined (__HP_cc) 44 # include <inttypes.h> 45 #elif defined (_AIX) 46 # include <sys/inttypes.h> 47 /* VS 2010 (_MSC_VER 1600) has stdint.h */ 48 #elif defined (_MSC_VER) && _MSC_VER < 1600 49 typedef __int8 int8_t; 50 typedef unsigned __int8 uint8_t; 51 typedef __int16 int16_t; 52 typedef unsigned __int16 uint16_t; 53 typedef __int32 int32_t; 54 typedef unsigned __int32 uint32_t; 55 typedef __int64 int64_t; 56 typedef unsigned __int64 uint64_t; 57 #else 58 # include <stdint.h> 59 #endif 60 61 #endif 62 63 64 #define UCDN_EAST_ASIAN_F 0 65 #define UCDN_EAST_ASIAN_H 1 66 #define UCDN_EAST_ASIAN_W 2 67 #define UCDN_EAST_ASIAN_NA 3 68 #define UCDN_EAST_ASIAN_A 4 69 #define UCDN_EAST_ASIAN_N 5 70 71 #define UCDN_SCRIPT_COMMON 0 72 #define UCDN_SCRIPT_LATIN 1 73 #define UCDN_SCRIPT_GREEK 2 74 #define UCDN_SCRIPT_CYRILLIC 3 75 #define UCDN_SCRIPT_ARMENIAN 4 76 #define UCDN_SCRIPT_HEBREW 5 77 #define UCDN_SCRIPT_ARABIC 6 78 #define UCDN_SCRIPT_SYRIAC 7 79 #define UCDN_SCRIPT_THAANA 8 80 #define UCDN_SCRIPT_DEVANAGARI 9 81 #define UCDN_SCRIPT_BENGALI 10 82 #define UCDN_SCRIPT_GURMUKHI 11 189 #define UCDN_SCRIPT_OLD_PERMIC 118 190 #define UCDN_SCRIPT_PAHAWH_HMONG 119 191 #define UCDN_SCRIPT_PALMYRENE 120 192 #define UCDN_SCRIPT_PAU_CIN_HAU 121 193 #define UCDN_SCRIPT_PSALTER_PAHLAVI 122 194 #define UCDN_SCRIPT_SIDDHAM 123 195 #define UCDN_SCRIPT_TIRHUTA 124 196 #define UCDN_SCRIPT_WARANG_CITI 125 197 #define UCDN_SCRIPT_AHOM 126 198 #define UCDN_SCRIPT_ANATOLIAN_HIEROGLYPHS 127 199 #define UCDN_SCRIPT_HATRAN 128 200 #define UCDN_SCRIPT_MULTANI 129 201 #define UCDN_SCRIPT_OLD_HUNGARIAN 130 202 #define UCDN_SCRIPT_SIGNWRITING 131 203 #define UCDN_SCRIPT_ADLAM 132 204 #define UCDN_SCRIPT_BHAIKSUKI 133 205 #define UCDN_SCRIPT_MARCHEN 134 206 #define UCDN_SCRIPT_NEWA 135 207 #define UCDN_SCRIPT_OSAGE 136 208 #define UCDN_SCRIPT_TANGUT 137 209 210 #define UCDN_LINEBREAK_CLASS_OP 0 211 #define UCDN_LINEBREAK_CLASS_CL 1 212 #define UCDN_LINEBREAK_CLASS_CP 2 213 #define UCDN_LINEBREAK_CLASS_QU 3 214 #define UCDN_LINEBREAK_CLASS_GL 4 215 #define UCDN_LINEBREAK_CLASS_NS 5 216 #define UCDN_LINEBREAK_CLASS_EX 6 217 #define UCDN_LINEBREAK_CLASS_SY 7 218 #define UCDN_LINEBREAK_CLASS_IS 8 219 #define UCDN_LINEBREAK_CLASS_PR 9 220 #define UCDN_LINEBREAK_CLASS_PO 10 221 #define UCDN_LINEBREAK_CLASS_NU 11 222 #define UCDN_LINEBREAK_CLASS_AL 12 223 #define UCDN_LINEBREAK_CLASS_HL 13 224 #define UCDN_LINEBREAK_CLASS_ID 14 225 #define UCDN_LINEBREAK_CLASS_IN 15 226 #define UCDN_LINEBREAK_CLASS_HY 16 227 #define UCDN_LINEBREAK_CLASS_BA 17 228 #define UCDN_LINEBREAK_CLASS_BB 18 230 #define UCDN_LINEBREAK_CLASS_ZW 20 231 #define UCDN_LINEBREAK_CLASS_CM 21 232 #define UCDN_LINEBREAK_CLASS_WJ 22 233 #define UCDN_LINEBREAK_CLASS_H2 23 234 #define UCDN_LINEBREAK_CLASS_H3 24 235 #define UCDN_LINEBREAK_CLASS_JL 25 236 #define UCDN_LINEBREAK_CLASS_JV 26 237 #define UCDN_LINEBREAK_CLASS_JT 27 238 #define UCDN_LINEBREAK_CLASS_RI 28 239 #define UCDN_LINEBREAK_CLASS_AI 29 240 #define UCDN_LINEBREAK_CLASS_BK 30 241 #define UCDN_LINEBREAK_CLASS_CB 31 242 #define UCDN_LINEBREAK_CLASS_CJ 32 243 #define UCDN_LINEBREAK_CLASS_CR 33 244 #define UCDN_LINEBREAK_CLASS_LF 34 245 #define UCDN_LINEBREAK_CLASS_NL 35 246 #define UCDN_LINEBREAK_CLASS_SA 36 247 #define UCDN_LINEBREAK_CLASS_SG 37 248 #define UCDN_LINEBREAK_CLASS_SP 38 249 #define UCDN_LINEBREAK_CLASS_XX 39 250 251 #define UCDN_GENERAL_CATEGORY_CC 0 252 #define UCDN_GENERAL_CATEGORY_CF 1 253 #define UCDN_GENERAL_CATEGORY_CN 2 254 #define UCDN_GENERAL_CATEGORY_CO 3 255 #define UCDN_GENERAL_CATEGORY_CS 4 256 #define UCDN_GENERAL_CATEGORY_LL 5 257 #define UCDN_GENERAL_CATEGORY_LM 6 258 #define UCDN_GENERAL_CATEGORY_LO 7 259 #define UCDN_GENERAL_CATEGORY_LT 8 260 #define UCDN_GENERAL_CATEGORY_LU 9 261 #define UCDN_GENERAL_CATEGORY_MC 10 262 #define UCDN_GENERAL_CATEGORY_ME 11 263 #define UCDN_GENERAL_CATEGORY_MN 12 264 #define UCDN_GENERAL_CATEGORY_ND 13 265 #define UCDN_GENERAL_CATEGORY_NL 14 266 #define UCDN_GENERAL_CATEGORY_NO 15 267 #define UCDN_GENERAL_CATEGORY_PC 16 268 #define UCDN_GENERAL_CATEGORY_PD 17 269 #define UCDN_GENERAL_CATEGORY_PE 18 | 19 20 21 22 #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) 23 # define HB_BEGIN_VISIBILITY _Pragma ("GCC visibility push(hidden)") 24 # define HB_END_VISIBILITY _Pragma ("GCC visibility pop") 25 #else 26 # define HB_BEGIN_VISIBILITY 27 # define HB_END_VISIBILITY 28 #endif 29 #ifdef __cplusplus 30 # define HB_BEGIN_HEADER extern "C" { HB_BEGIN_VISIBILITY 31 # define HB_END_HEADER HB_END_VISIBILITY } 32 #else 33 # define HB_BEGIN_HEADER HB_BEGIN_VISIBILITY 34 # define HB_END_HEADER HB_END_VISIBILITY 35 #endif 36 37 HB_BEGIN_HEADER 38 39 #if defined (_SVR4) || defined (SVR4) || defined (__OpenBSD__) || \ 40 defined (_sgi) || defined (__sun) || defined (sun) || \ 41 defined (__digital__) || defined (__HP_cc) 42 # include <inttypes.h> 43 #elif defined (_AIX) 44 # include <sys/inttypes.h> 45 #else 46 # include <stdint.h> 47 #endif 48 49 50 #define UCDN_EAST_ASIAN_F 0 51 #define UCDN_EAST_ASIAN_H 1 52 #define UCDN_EAST_ASIAN_W 2 53 #define UCDN_EAST_ASIAN_NA 3 54 #define UCDN_EAST_ASIAN_A 4 55 #define UCDN_EAST_ASIAN_N 5 56 57 #define UCDN_SCRIPT_COMMON 0 58 #define UCDN_SCRIPT_LATIN 1 59 #define UCDN_SCRIPT_GREEK 2 60 #define UCDN_SCRIPT_CYRILLIC 3 61 #define UCDN_SCRIPT_ARMENIAN 4 62 #define UCDN_SCRIPT_HEBREW 5 63 #define UCDN_SCRIPT_ARABIC 6 64 #define UCDN_SCRIPT_SYRIAC 7 65 #define UCDN_SCRIPT_THAANA 8 66 #define UCDN_SCRIPT_DEVANAGARI 9 67 #define UCDN_SCRIPT_BENGALI 10 68 #define UCDN_SCRIPT_GURMUKHI 11 175 #define UCDN_SCRIPT_OLD_PERMIC 118 176 #define UCDN_SCRIPT_PAHAWH_HMONG 119 177 #define UCDN_SCRIPT_PALMYRENE 120 178 #define UCDN_SCRIPT_PAU_CIN_HAU 121 179 #define UCDN_SCRIPT_PSALTER_PAHLAVI 122 180 #define UCDN_SCRIPT_SIDDHAM 123 181 #define UCDN_SCRIPT_TIRHUTA 124 182 #define UCDN_SCRIPT_WARANG_CITI 125 183 #define UCDN_SCRIPT_AHOM 126 184 #define UCDN_SCRIPT_ANATOLIAN_HIEROGLYPHS 127 185 #define UCDN_SCRIPT_HATRAN 128 186 #define UCDN_SCRIPT_MULTANI 129 187 #define UCDN_SCRIPT_OLD_HUNGARIAN 130 188 #define UCDN_SCRIPT_SIGNWRITING 131 189 #define UCDN_SCRIPT_ADLAM 132 190 #define UCDN_SCRIPT_BHAIKSUKI 133 191 #define UCDN_SCRIPT_MARCHEN 134 192 #define UCDN_SCRIPT_NEWA 135 193 #define UCDN_SCRIPT_OSAGE 136 194 #define UCDN_SCRIPT_TANGUT 137 195 #define UCDN_SCRIPT_MASARAM_GONDI 138 196 #define UCDN_SCRIPT_NUSHU 139 197 #define UCDN_SCRIPT_SOYOMBO 140 198 #define UCDN_SCRIPT_ZANABAZAR_SQUARE 141 199 200 #define UCDN_LINEBREAK_CLASS_OP 0 201 #define UCDN_LINEBREAK_CLASS_CL 1 202 #define UCDN_LINEBREAK_CLASS_CP 2 203 #define UCDN_LINEBREAK_CLASS_QU 3 204 #define UCDN_LINEBREAK_CLASS_GL 4 205 #define UCDN_LINEBREAK_CLASS_NS 5 206 #define UCDN_LINEBREAK_CLASS_EX 6 207 #define UCDN_LINEBREAK_CLASS_SY 7 208 #define UCDN_LINEBREAK_CLASS_IS 8 209 #define UCDN_LINEBREAK_CLASS_PR 9 210 #define UCDN_LINEBREAK_CLASS_PO 10 211 #define UCDN_LINEBREAK_CLASS_NU 11 212 #define UCDN_LINEBREAK_CLASS_AL 12 213 #define UCDN_LINEBREAK_CLASS_HL 13 214 #define UCDN_LINEBREAK_CLASS_ID 14 215 #define UCDN_LINEBREAK_CLASS_IN 15 216 #define UCDN_LINEBREAK_CLASS_HY 16 217 #define UCDN_LINEBREAK_CLASS_BA 17 218 #define UCDN_LINEBREAK_CLASS_BB 18 220 #define UCDN_LINEBREAK_CLASS_ZW 20 221 #define UCDN_LINEBREAK_CLASS_CM 21 222 #define UCDN_LINEBREAK_CLASS_WJ 22 223 #define UCDN_LINEBREAK_CLASS_H2 23 224 #define UCDN_LINEBREAK_CLASS_H3 24 225 #define UCDN_LINEBREAK_CLASS_JL 25 226 #define UCDN_LINEBREAK_CLASS_JV 26 227 #define UCDN_LINEBREAK_CLASS_JT 27 228 #define UCDN_LINEBREAK_CLASS_RI 28 229 #define UCDN_LINEBREAK_CLASS_AI 29 230 #define UCDN_LINEBREAK_CLASS_BK 30 231 #define UCDN_LINEBREAK_CLASS_CB 31 232 #define UCDN_LINEBREAK_CLASS_CJ 32 233 #define UCDN_LINEBREAK_CLASS_CR 33 234 #define UCDN_LINEBREAK_CLASS_LF 34 235 #define UCDN_LINEBREAK_CLASS_NL 35 236 #define UCDN_LINEBREAK_CLASS_SA 36 237 #define UCDN_LINEBREAK_CLASS_SG 37 238 #define UCDN_LINEBREAK_CLASS_SP 38 239 #define UCDN_LINEBREAK_CLASS_XX 39 240 #define UCDN_LINEBREAK_CLASS_ZWJ 40 241 #define UCDN_LINEBREAK_CLASS_EB 41 242 #define UCDN_LINEBREAK_CLASS_EM 42 243 244 #define UCDN_GENERAL_CATEGORY_CC 0 245 #define UCDN_GENERAL_CATEGORY_CF 1 246 #define UCDN_GENERAL_CATEGORY_CN 2 247 #define UCDN_GENERAL_CATEGORY_CO 3 248 #define UCDN_GENERAL_CATEGORY_CS 4 249 #define UCDN_GENERAL_CATEGORY_LL 5 250 #define UCDN_GENERAL_CATEGORY_LM 6 251 #define UCDN_GENERAL_CATEGORY_LO 7 252 #define UCDN_GENERAL_CATEGORY_LT 8 253 #define UCDN_GENERAL_CATEGORY_LU 9 254 #define UCDN_GENERAL_CATEGORY_MC 10 255 #define UCDN_GENERAL_CATEGORY_ME 11 256 #define UCDN_GENERAL_CATEGORY_MN 12 257 #define UCDN_GENERAL_CATEGORY_ND 13 258 #define UCDN_GENERAL_CATEGORY_NL 14 259 #define UCDN_GENERAL_CATEGORY_NO 15 260 #define UCDN_GENERAL_CATEGORY_PC 16 261 #define UCDN_GENERAL_CATEGORY_PD 17 262 #define UCDN_GENERAL_CATEGORY_PE 18 |