| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Red Hat, Inc. | 2 * Copyright © 2009 Red Hat, Inc. |
| 3 * Copyright © 2011 Codethink Limited |
| 4 * Copyright © 2011 Google, Inc. |
| 3 * | 5 * |
| 4 * This is part of HarfBuzz, a text shaping library. | 6 * This is part of HarfBuzz, a text shaping library. |
| 5 * | 7 * |
| 6 * Permission is hereby granted, without written agreement and without | 8 * Permission is hereby granted, without written agreement and without |
| 7 * license or royalty fees, to use, copy, modify, and distribute this | 9 * license or royalty fees, to use, copy, modify, and distribute this |
| 8 * software and its documentation for any purpose, provided that the | 10 * software and its documentation for any purpose, provided that the |
| 9 * above copyright notice and the following two paragraphs appear in | 11 * above copyright notice and the following two paragraphs appear in |
| 10 * all copies of this software. | 12 * all copies of this software. |
| 11 * | 13 * |
| 12 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR | 14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR |
| 13 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES | 15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES |
| 14 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN | 16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN |
| 15 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH | 17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
| 16 * DAMAGE. | 18 * DAMAGE. |
| 17 * | 19 * |
| 18 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, | 20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
| 19 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | 21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
| 20 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS | 22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS |
| 21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO | 23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO |
| 22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | 24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
| 23 * | 25 * |
| 24 * Red Hat Author(s): Behdad Esfahbod | 26 * Red Hat Author(s): Behdad Esfahbod |
| 27 * Codethink Author(s): Ryan Lortie |
| 28 * Google Author(s): Behdad Esfahbod |
| 25 */ | 29 */ |
| 26 | 30 |
| 27 #ifndef HB_UNICODE_H | 31 #ifndef HB_UNICODE_H |
| 28 #define HB_UNICODE_H | 32 #define HB_UNICODE_H |
| 29 | 33 |
| 30 #include "hb-common.h" | 34 #include "hb-common.h" |
| 31 | 35 |
| 32 HB_BEGIN_DECLS | 36 HB_BEGIN_DECLS |
| 33 | 37 |
| 34 | 38 |
| 35 /* Unicode General Category property */ | |
| 36 typedef enum | |
| 37 { | |
| 38 HB_CATEGORY_CONTROL, /* Cc */ | |
| 39 HB_CATEGORY_FORMAT, /* Cf */ | |
| 40 HB_CATEGORY_UNASSIGNED, /* Cn */ | |
| 41 HB_CATEGORY_PRIVATE_USE, /* Co */ | |
| 42 HB_CATEGORY_SURROGATE, /* Cs */ | |
| 43 HB_CATEGORY_LOWERCASE_LETTER, /* Ll */ | |
| 44 HB_CATEGORY_MODIFIER_LETTER, /* Lm */ | |
| 45 HB_CATEGORY_OTHER_LETTER, /* Lo */ | |
| 46 HB_CATEGORY_TITLECASE_LETTER, /* Lt */ | |
| 47 HB_CATEGORY_UPPERCASE_LETTER, /* Lu */ | |
| 48 HB_CATEGORY_COMBINING_MARK, /* Mc */ | |
| 49 HB_CATEGORY_ENCLOSING_MARK, /* Me */ | |
| 50 HB_CATEGORY_NON_SPACING_MARK, /* Mn */ | |
| 51 HB_CATEGORY_DECIMAL_NUMBER, /* Nd */ | |
| 52 HB_CATEGORY_LETTER_NUMBER, /* Nl */ | |
| 53 HB_CATEGORY_OTHER_NUMBER, /* No */ | |
| 54 HB_CATEGORY_CONNECT_PUNCTUATION, /* Pc */ | |
| 55 HB_CATEGORY_DASH_PUNCTUATION, /* Pd */ | |
| 56 HB_CATEGORY_CLOSE_PUNCTUATION, /* Pe */ | |
| 57 HB_CATEGORY_FINAL_PUNCTUATION, /* Pf */ | |
| 58 HB_CATEGORY_INITIAL_PUNCTUATION, /* Pi */ | |
| 59 HB_CATEGORY_OTHER_PUNCTUATION, /* Po */ | |
| 60 HB_CATEGORY_OPEN_PUNCTUATION, /* Ps */ | |
| 61 HB_CATEGORY_CURRENCY_SYMBOL, /* Sc */ | |
| 62 HB_CATEGORY_MODIFIER_SYMBOL, /* Sk */ | |
| 63 HB_CATEGORY_MATH_SYMBOL, /* Sm */ | |
| 64 HB_CATEGORY_OTHER_SYMBOL, /* So */ | |
| 65 HB_CATEGORY_LINE_SEPARATOR, /* Zl */ | |
| 66 HB_CATEGORY_PARAGRAPH_SEPARATOR, /* Zp */ | |
| 67 HB_CATEGORY_SPACE_SEPARATOR /* Zs */ | |
| 68 } hb_category_t; | |
| 69 | |
| 70 /* Unicode Script property */ | |
| 71 typedef enum | |
| 72 { /* ISO 15924 code */ | |
| 73 HB_SCRIPT_INVALID_CODE = -1, | |
| 74 HB_SCRIPT_COMMON = 0, /* Zyyy */ | |
| 75 HB_SCRIPT_INHERITED, /* Qaai */ | |
| 76 HB_SCRIPT_ARABIC, /* Arab */ | |
| 77 HB_SCRIPT_ARMENIAN, /* Armn */ | |
| 78 HB_SCRIPT_BENGALI, /* Beng */ | |
| 79 HB_SCRIPT_BOPOMOFO, /* Bopo */ | |
| 80 HB_SCRIPT_CHEROKEE, /* Cher */ | |
| 81 HB_SCRIPT_COPTIC, /* Qaac */ | |
| 82 HB_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */ | |
| 83 HB_SCRIPT_DESERET, /* Dsrt */ | |
| 84 HB_SCRIPT_DEVANAGARI, /* Deva */ | |
| 85 HB_SCRIPT_ETHIOPIC, /* Ethi */ | |
| 86 HB_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */ | |
| 87 HB_SCRIPT_GOTHIC, /* Goth */ | |
| 88 HB_SCRIPT_GREEK, /* Grek */ | |
| 89 HB_SCRIPT_GUJARATI, /* Gujr */ | |
| 90 HB_SCRIPT_GURMUKHI, /* Guru */ | |
| 91 HB_SCRIPT_HAN, /* Hani */ | |
| 92 HB_SCRIPT_HANGUL, /* Hang */ | |
| 93 HB_SCRIPT_HEBREW, /* Hebr */ | |
| 94 HB_SCRIPT_HIRAGANA, /* Hira */ | |
| 95 HB_SCRIPT_KANNADA, /* Knda */ | |
| 96 HB_SCRIPT_KATAKANA, /* Kana */ | |
| 97 HB_SCRIPT_KHMER, /* Khmr */ | |
| 98 HB_SCRIPT_LAO, /* Laoo */ | |
| 99 HB_SCRIPT_LATIN, /* Latn (Latf, Latg) */ | |
| 100 HB_SCRIPT_MALAYALAM, /* Mlym */ | |
| 101 HB_SCRIPT_MONGOLIAN, /* Mong */ | |
| 102 HB_SCRIPT_MYANMAR, /* Mymr */ | |
| 103 HB_SCRIPT_OGHAM, /* Ogam */ | |
| 104 HB_SCRIPT_OLD_ITALIC, /* Ital */ | |
| 105 HB_SCRIPT_ORIYA, /* Orya */ | |
| 106 HB_SCRIPT_RUNIC, /* Runr */ | |
| 107 HB_SCRIPT_SINHALA, /* Sinh */ | |
| 108 HB_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */ | |
| 109 HB_SCRIPT_TAMIL, /* Taml */ | |
| 110 HB_SCRIPT_TELUGU, /* Telu */ | |
| 111 HB_SCRIPT_THAANA, /* Thaa */ | |
| 112 HB_SCRIPT_THAI, /* Thai */ | |
| 113 HB_SCRIPT_TIBETAN, /* Tibt */ | |
| 114 HB_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */ | |
| 115 HB_SCRIPT_YI, /* Yiii */ | |
| 116 HB_SCRIPT_TAGALOG, /* Tglg */ | |
| 117 HB_SCRIPT_HANUNOO, /* Hano */ | |
| 118 HB_SCRIPT_BUHID, /* Buhd */ | |
| 119 HB_SCRIPT_TAGBANWA, /* Tagb */ | |
| 120 | |
| 121 /* Unicode-4.0 additions */ | |
| 122 HB_SCRIPT_BRAILLE, /* Brai */ | |
| 123 HB_SCRIPT_CYPRIOT, /* Cprt */ | |
| 124 HB_SCRIPT_LIMBU, /* Limb */ | |
| 125 HB_SCRIPT_OSMANYA, /* Osma */ | |
| 126 HB_SCRIPT_SHAVIAN, /* Shaw */ | |
| 127 HB_SCRIPT_LINEAR_B, /* Linb */ | |
| 128 HB_SCRIPT_TAI_LE, /* Tale */ | |
| 129 HB_SCRIPT_UGARITIC, /* Ugar */ | |
| 130 | |
| 131 /* Unicode-4.1 additions */ | |
| 132 HB_SCRIPT_NEW_TAI_LUE, /* Talu */ | |
| 133 HB_SCRIPT_BUGINESE, /* Bugi */ | |
| 134 HB_SCRIPT_GLAGOLITIC, /* Glag */ | |
| 135 HB_SCRIPT_TIFINAGH, /* Tfng */ | |
| 136 HB_SCRIPT_SYLOTI_NAGRI, /* Sylo */ | |
| 137 HB_SCRIPT_OLD_PERSIAN, /* Xpeo */ | |
| 138 HB_SCRIPT_KHAROSHTHI, /* Khar */ | |
| 139 | |
| 140 /* Unicode-5.0 additions */ | |
| 141 HB_SCRIPT_UNKNOWN, /* Zzzz */ | |
| 142 HB_SCRIPT_BALINESE, /* Bali */ | |
| 143 HB_SCRIPT_CUNEIFORM, /* Xsux */ | |
| 144 HB_SCRIPT_PHOENICIAN, /* Phnx */ | |
| 145 HB_SCRIPT_PHAGS_PA, /* Phag */ | |
| 146 HB_SCRIPT_NKO, /* Nkoo */ | |
| 147 | |
| 148 /* Unicode-5.1 additions */ | |
| 149 HB_SCRIPT_KAYAH_LI, /* Kali */ | |
| 150 HB_SCRIPT_LEPCHA, /* Lepc */ | |
| 151 HB_SCRIPT_REJANG, /* Rjng */ | |
| 152 HB_SCRIPT_SUNDANESE, /* Sund */ | |
| 153 HB_SCRIPT_SAURASHTRA, /* Saur */ | |
| 154 HB_SCRIPT_CHAM, /* Cham */ | |
| 155 HB_SCRIPT_OL_CHIKI, /* Olck */ | |
| 156 HB_SCRIPT_VAI, /* Vaii */ | |
| 157 HB_SCRIPT_CARIAN, /* Cari */ | |
| 158 HB_SCRIPT_LYCIAN, /* Lyci */ | |
| 159 HB_SCRIPT_LYDIAN, /* Lydi */ | |
| 160 | |
| 161 /* Unicode-5.2 additions */ | |
| 162 HB_SCRIPT_AVESTAN, /* Avst */ | |
| 163 HB_SCRIPT_BAMUM, /* Bamu */ | |
| 164 HB_SCRIPT_EGYPTIAN_HIEROGLYPHS, /* Egyp */ | |
| 165 HB_SCRIPT_IMPERIAL_ARAMAIC, /* Armi */ | |
| 166 HB_SCRIPT_INSCRIPTIONAL_PAHLAVI, /* Phli */ | |
| 167 HB_SCRIPT_INSCRIPTIONAL_PARTHIAN, /* Prti */ | |
| 168 HB_SCRIPT_JAVANESE, /* Java */ | |
| 169 HB_SCRIPT_KAITHI, /* Kthi */ | |
| 170 HB_SCRIPT_LISU, /* Lisu */ | |
| 171 HB_SCRIPT_MEETEI_MAYEK, /* Mtei */ | |
| 172 HB_SCRIPT_OLD_SOUTH_ARABIAN, /* Sarb */ | |
| 173 HB_SCRIPT_OLD_TURKIC, /* Orkh */ | |
| 174 HB_SCRIPT_SAMARITAN, /* Samr */ | |
| 175 HB_SCRIPT_TAI_THAM, /* Lana */ | |
| 176 HB_SCRIPT_TAI_VIET, /* Tavt */ | |
| 177 | |
| 178 /* Unicode-6.0 additions */ | |
| 179 HB_SCRIPT_BATAK, /* Batk */ | |
| 180 HB_SCRIPT_BRAHMI, /* Brah */ | |
| 181 HB_SCRIPT_MANDAIC /* Mand */ | |
| 182 } hb_script_t; | |
| 183 | |
| 184 | |
| 185 /* | 39 /* |
| 186 * hb_unicode_funcs_t | 40 * hb_unicode_funcs_t |
| 187 */ | 41 */ |
| 188 | 42 |
| 189 typedef struct _hb_unicode_funcs_t hb_unicode_funcs_t; | 43 typedef struct _hb_unicode_funcs_t hb_unicode_funcs_t; |
| 190 | 44 |
| 45 |
| 46 /* |
| 47 * just give me the best implementation you've got there. |
| 48 */ |
| 191 hb_unicode_funcs_t * | 49 hb_unicode_funcs_t * |
| 192 hb_unicode_funcs_create (void); | 50 hb_unicode_funcs_get_default (void); |
| 51 |
| 52 |
| 53 hb_unicode_funcs_t * |
| 54 hb_unicode_funcs_create (hb_unicode_funcs_t *parent); |
| 55 |
| 56 hb_unicode_funcs_t * |
| 57 hb_unicode_funcs_get_empty (void); |
| 193 | 58 |
| 194 hb_unicode_funcs_t * | 59 hb_unicode_funcs_t * |
| 195 hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs); | 60 hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs); |
| 196 | 61 |
| 197 unsigned int | |
| 198 hb_unicode_funcs_get_reference_count (hb_unicode_funcs_t *ufuncs); | |
| 199 | |
| 200 void | 62 void |
| 201 hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs); | 63 hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs); |
| 202 | 64 |
| 203 hb_unicode_funcs_t * | 65 hb_bool_t |
| 204 hb_unicode_funcs_copy (hb_unicode_funcs_t *ufuncs); | 66 hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, |
| 67 » » » hb_user_data_key_t *key, |
| 68 » » » void * data, |
| 69 » » » hb_destroy_func_t destroy, |
| 70 » » » » hb_bool_t replace); |
| 71 |
| 72 |
| 73 void * |
| 74 hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, |
| 75 » » » hb_user_data_key_t *key); |
| 76 |
| 205 | 77 |
| 206 void | 78 void |
| 207 hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs); | 79 hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs); |
| 208 | 80 |
| 209 hb_bool_t | 81 hb_bool_t |
| 210 hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs); | 82 hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs); |
| 211 | 83 |
| 84 hb_unicode_funcs_t * |
| 85 hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs); |
| 86 |
| 87 |
| 212 /* | 88 /* |
| 213 * funcs | 89 * funcs |
| 214 */ | 90 */ |
| 215 | 91 |
| 216 | |
| 217 /* typedefs */ | 92 /* typedefs */ |
| 218 | 93 |
| 219 typedef hb_codepoint_t (*hb_unicode_get_mirroring_func_t) (hb_codepoint_t unicod
e); | 94 typedef unsigned int» » » (*hb_unicode_combining_class_func_t)»
(hb_unicode_funcs_t *ufuncs, |
| 220 typedef hb_category_t (*hb_unicode_get_general_category_func_t) (hb_codepoint_t
unicode); | 95 » » » » » » » » » »
hb_codepoint_t unicode, |
| 221 typedef hb_script_t (*hb_unicode_get_script_func_t) (hb_codepoint_t unicode); | 96 » » » » » » » » » »
void *user_data); |
| 222 typedef unsigned int (*hb_unicode_get_combining_class_func_t) (hb_codepoint_t un
icode); | 97 typedef unsigned int» » » (*hb_unicode_eastasian_width_func_t)»
(hb_unicode_funcs_t *ufuncs, |
| 223 typedef unsigned int (*hb_unicode_get_eastasian_width_func_t) (hb_codepoint_t un
icode); | 98 » » » » » » » » » »
hb_codepoint_t unicode, |
| 99 » » » » » » » » » »
void *user_data); |
| 100 typedef hb_unicode_general_category_t» (*hb_unicode_general_category_func_t)»
(hb_unicode_funcs_t *ufuncs, |
| 101 » » » » » » » » » »
hb_codepoint_t unicode, |
| 102 » » » » » » » » » »
void *user_data); |
| 103 typedef hb_codepoint_t» » » (*hb_unicode_mirroring_func_t)» »
(hb_unicode_funcs_t *ufuncs, |
| 104 » » » » » » » » » »
hb_codepoint_t unicode, |
| 105 » » » » » » » » » »
void *user_data); |
| 106 typedef hb_script_t» » » (*hb_unicode_script_func_t)» »
(hb_unicode_funcs_t *ufuncs, |
| 107 » » » » » » » » » »
hb_codepoint_t unicode, |
| 108 » » » » » » » » » »
void *user_data); |
| 224 | 109 |
| 110 typedef hb_bool_t (*hb_unicode_compose_func_t)
(hb_unicode_funcs_t *ufuncs, |
| 111
hb_codepoint_t a, |
| 112
hb_codepoint_t b, |
| 113
hb_codepoint_t *ab, |
| 114
void *user_data); |
| 115 typedef hb_bool_t (*hb_unicode_decompose_func_t)
(hb_unicode_funcs_t *ufuncs, |
| 116
hb_codepoint_t ab, |
| 117
hb_codepoint_t *a, |
| 118
hb_codepoint_t *b, |
| 119
void *user_data); |
| 225 | 120 |
| 226 /* setters */ | 121 /* setters */ |
| 227 | 122 |
| 228 void | 123 void |
| 229 hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, | 124 hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, |
| 230 » » » » hb_unicode_get_mirroring_func_t mirroring_f
unc); | 125 » » » » » hb_unicode_combining_class_func_t com
bining_class_func, |
| 126 » » » » » void *user_data, hb_destroy_func_t de
stroy); |
| 127 |
| 128 void |
| 129 hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, |
| 130 » » » » » hb_unicode_eastasian_width_func_t eas
tasian_width_func, |
| 131 » » » » » void *user_data, hb_destroy_func_t de
stroy); |
| 231 | 132 |
| 232 void | 133 void |
| 233 hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, | 134 hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, |
| 234 » » » » » hb_unicode_get_general_category_func
_t general_category_func); | 135 » » » » » hb_unicode_general_category_func_t g
eneral_category_func, |
| 136 » » » » » void *user_data, hb_destroy_func_t d
estroy); |
| 137 |
| 138 void |
| 139 hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, |
| 140 » » » » hb_unicode_mirroring_func_t mirroring_func, |
| 141 » » » » void *user_data, hb_destroy_func_t destroy)
; |
| 235 | 142 |
| 236 void | 143 void |
| 237 hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, | 144 hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, |
| 238 » » » » hb_unicode_get_script_func_t script_func); | 145 » » » » hb_unicode_script_func_t script_func, |
| 146 » » » » void *user_data, hb_destroy_func_t destroy); |
| 239 | 147 |
| 240 void | 148 void |
| 241 hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, | 149 hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, |
| 242 » » » » » hb_unicode_get_combining_class_func_t
combining_class_func); | 150 » » » » hb_unicode_compose_func_t compose_func, |
| 151 » » » » void *user_data, hb_destroy_func_t destroy); |
| 243 | 152 |
| 244 void | 153 void |
| 245 hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, | 154 hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, |
| 246 » » » » » hb_unicode_get_eastasian_width_func_t
eastasian_width_func); | 155 » » » » hb_unicode_decompose_func_t decompose_func, |
| 247 | 156 » » » » void *user_data, hb_destroy_func_t destroy)
; |
| 248 | |
| 249 /* getters */ | |
| 250 | |
| 251 /* These never return NULL. Return fallback defaults instead. */ | |
| 252 | |
| 253 hb_unicode_get_mirroring_func_t | |
| 254 hb_unicode_funcs_get_mirroring_func (hb_unicode_funcs_t *ufuncs); | |
| 255 | |
| 256 hb_unicode_get_general_category_func_t | |
| 257 hb_unicode_funcs_get_general_category_func (hb_unicode_funcs_t *ufuncs); | |
| 258 | |
| 259 hb_unicode_get_script_func_t | |
| 260 hb_unicode_funcs_get_script_func (hb_unicode_funcs_t *ufuncs); | |
| 261 | |
| 262 hb_unicode_get_combining_class_func_t | |
| 263 hb_unicode_funcs_get_combining_class_func (hb_unicode_funcs_t *ufuncs); | |
| 264 | |
| 265 hb_unicode_get_eastasian_width_func_t | |
| 266 hb_unicode_funcs_get_eastasian_width_func (hb_unicode_funcs_t *ufuncs); | |
| 267 | 157 |
| 268 | 158 |
| 269 /* accessors */ | 159 /* accessors */ |
| 270 | 160 |
| 161 unsigned int |
| 162 hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, |
| 163 hb_codepoint_t unicode); |
| 164 |
| 165 unsigned int |
| 166 hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, |
| 167 hb_codepoint_t unicode); |
| 168 |
| 169 hb_unicode_general_category_t |
| 170 hb_unicode_general_category (hb_unicode_funcs_t *ufuncs, |
| 171 hb_codepoint_t unicode); |
| 172 |
| 271 hb_codepoint_t | 173 hb_codepoint_t |
| 272 hb_unicode_get_mirroring (hb_unicode_funcs_t *ufuncs, | 174 hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs, |
| 273 » » » hb_codepoint_t unicode); | 175 » » hb_codepoint_t unicode); |
| 274 | |
| 275 hb_category_t | |
| 276 hb_unicode_get_general_category (hb_unicode_funcs_t *ufuncs, | |
| 277 » » » » hb_codepoint_t unicode); | |
| 278 | 176 |
| 279 hb_script_t | 177 hb_script_t |
| 280 hb_unicode_get_script (hb_unicode_funcs_t *ufuncs, | 178 hb_unicode_script (hb_unicode_funcs_t *ufuncs, |
| 281 » » hb_codepoint_t unicode); | 179 » » hb_codepoint_t unicode); |
| 282 | 180 |
| 283 unsigned int | 181 hb_bool_t |
| 284 hb_unicode_get_combining_class (hb_unicode_funcs_t *ufuncs, | 182 hb_unicode_compose (hb_unicode_funcs_t *ufuncs, |
| 285 » » » » hb_codepoint_t unicode); | 183 » » hb_codepoint_t a, |
| 286 | 184 » » hb_codepoint_t b, |
| 287 unsigned int | 185 » » hb_codepoint_t *ab); |
| 288 hb_unicode_get_eastasian_width (hb_unicode_funcs_t *ufuncs, | 186 hb_bool_t |
| 289 » » » » hb_codepoint_t unicode); | 187 hb_unicode_decompose (hb_unicode_funcs_t *ufuncs, |
| 290 | 188 » » hb_codepoint_t ab, |
| 189 » » hb_codepoint_t *a, |
| 190 » » hb_codepoint_t *b); |
| 291 | 191 |
| 292 HB_END_DECLS | 192 HB_END_DECLS |
| 293 | 193 |
| 294 #endif /* HB_UNICODE_H */ | 194 #endif /* HB_UNICODE_H */ |
| OLD | NEW |