annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/harfbuzz/hb-unicode.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
rev   line source
jpayne@69 1 /*
jpayne@69 2 * Copyright © 2009 Red Hat, Inc.
jpayne@69 3 * Copyright © 2011 Codethink Limited
jpayne@69 4 * Copyright © 2011,2012 Google, Inc.
jpayne@69 5 *
jpayne@69 6 * This is part of HarfBuzz, a text shaping library.
jpayne@69 7 *
jpayne@69 8 * Permission is hereby granted, without written agreement and without
jpayne@69 9 * license or royalty fees, to use, copy, modify, and distribute this
jpayne@69 10 * software and its documentation for any purpose, provided that the
jpayne@69 11 * above copyright notice and the following two paragraphs appear in
jpayne@69 12 * all copies of this software.
jpayne@69 13 *
jpayne@69 14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
jpayne@69 15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
jpayne@69 16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
jpayne@69 17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
jpayne@69 18 * DAMAGE.
jpayne@69 19 *
jpayne@69 20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
jpayne@69 21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
jpayne@69 22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
jpayne@69 23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
jpayne@69 24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
jpayne@69 25 *
jpayne@69 26 * Red Hat Author(s): Behdad Esfahbod
jpayne@69 27 * Codethink Author(s): Ryan Lortie
jpayne@69 28 * Google Author(s): Behdad Esfahbod
jpayne@69 29 */
jpayne@69 30
jpayne@69 31 #ifndef HB_H_IN
jpayne@69 32 #error "Include <hb.h> instead."
jpayne@69 33 #endif
jpayne@69 34
jpayne@69 35 #ifndef HB_UNICODE_H
jpayne@69 36 #define HB_UNICODE_H
jpayne@69 37
jpayne@69 38 #include "hb-common.h"
jpayne@69 39
jpayne@69 40 HB_BEGIN_DECLS
jpayne@69 41
jpayne@69 42
jpayne@69 43 /**
jpayne@69 44 * HB_UNICODE_MAX
jpayne@69 45 *
jpayne@69 46 * Since: 1.9.0
jpayne@69 47 **/
jpayne@69 48 #define HB_UNICODE_MAX 0x10FFFFu
jpayne@69 49
jpayne@69 50
jpayne@69 51 /* hb_unicode_general_category_t */
jpayne@69 52
jpayne@69 53 /* Unicode Character Database property: General_Category (gc) */
jpayne@69 54 typedef enum
jpayne@69 55 {
jpayne@69 56 HB_UNICODE_GENERAL_CATEGORY_CONTROL, /* Cc */
jpayne@69 57 HB_UNICODE_GENERAL_CATEGORY_FORMAT, /* Cf */
jpayne@69 58 HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED, /* Cn */
jpayne@69 59 HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE, /* Co */
jpayne@69 60 HB_UNICODE_GENERAL_CATEGORY_SURROGATE, /* Cs */
jpayne@69 61 HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER, /* Ll */
jpayne@69 62 HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER, /* Lm */
jpayne@69 63 HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER, /* Lo */
jpayne@69 64 HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER, /* Lt */
jpayne@69 65 HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER, /* Lu */
jpayne@69 66 HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK, /* Mc */
jpayne@69 67 HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK, /* Me */
jpayne@69 68 HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK, /* Mn */
jpayne@69 69 HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER, /* Nd */
jpayne@69 70 HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER, /* Nl */
jpayne@69 71 HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER, /* No */
jpayne@69 72 HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION, /* Pc */
jpayne@69 73 HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION, /* Pd */
jpayne@69 74 HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION, /* Pe */
jpayne@69 75 HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION, /* Pf */
jpayne@69 76 HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION, /* Pi */
jpayne@69 77 HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION, /* Po */
jpayne@69 78 HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION, /* Ps */
jpayne@69 79 HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL, /* Sc */
jpayne@69 80 HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL, /* Sk */
jpayne@69 81 HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL, /* Sm */
jpayne@69 82 HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL, /* So */
jpayne@69 83 HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR, /* Zl */
jpayne@69 84 HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR, /* Zp */
jpayne@69 85 HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR /* Zs */
jpayne@69 86 } hb_unicode_general_category_t;
jpayne@69 87
jpayne@69 88 /* hb_unicode_combining_class_t */
jpayne@69 89
jpayne@69 90 /* Note: newer versions of Unicode may add new values. Clients should be ready to handle
jpayne@69 91 * any value in the 0..254 range being returned from hb_unicode_combining_class().
jpayne@69 92 */
jpayne@69 93
jpayne@69 94 /* Unicode Character Database property: Canonical_Combining_Class (ccc) */
jpayne@69 95 typedef enum
jpayne@69 96 {
jpayne@69 97 HB_UNICODE_COMBINING_CLASS_NOT_REORDERED = 0,
jpayne@69 98 HB_UNICODE_COMBINING_CLASS_OVERLAY = 1,
jpayne@69 99 HB_UNICODE_COMBINING_CLASS_NUKTA = 7,
jpayne@69 100 HB_UNICODE_COMBINING_CLASS_KANA_VOICING = 8,
jpayne@69 101 HB_UNICODE_COMBINING_CLASS_VIRAMA = 9,
jpayne@69 102
jpayne@69 103 /* Hebrew */
jpayne@69 104 HB_UNICODE_COMBINING_CLASS_CCC10 = 10,
jpayne@69 105 HB_UNICODE_COMBINING_CLASS_CCC11 = 11,
jpayne@69 106 HB_UNICODE_COMBINING_CLASS_CCC12 = 12,
jpayne@69 107 HB_UNICODE_COMBINING_CLASS_CCC13 = 13,
jpayne@69 108 HB_UNICODE_COMBINING_CLASS_CCC14 = 14,
jpayne@69 109 HB_UNICODE_COMBINING_CLASS_CCC15 = 15,
jpayne@69 110 HB_UNICODE_COMBINING_CLASS_CCC16 = 16,
jpayne@69 111 HB_UNICODE_COMBINING_CLASS_CCC17 = 17,
jpayne@69 112 HB_UNICODE_COMBINING_CLASS_CCC18 = 18,
jpayne@69 113 HB_UNICODE_COMBINING_CLASS_CCC19 = 19,
jpayne@69 114 HB_UNICODE_COMBINING_CLASS_CCC20 = 20,
jpayne@69 115 HB_UNICODE_COMBINING_CLASS_CCC21 = 21,
jpayne@69 116 HB_UNICODE_COMBINING_CLASS_CCC22 = 22,
jpayne@69 117 HB_UNICODE_COMBINING_CLASS_CCC23 = 23,
jpayne@69 118 HB_UNICODE_COMBINING_CLASS_CCC24 = 24,
jpayne@69 119 HB_UNICODE_COMBINING_CLASS_CCC25 = 25,
jpayne@69 120 HB_UNICODE_COMBINING_CLASS_CCC26 = 26,
jpayne@69 121
jpayne@69 122 /* Arabic */
jpayne@69 123 HB_UNICODE_COMBINING_CLASS_CCC27 = 27,
jpayne@69 124 HB_UNICODE_COMBINING_CLASS_CCC28 = 28,
jpayne@69 125 HB_UNICODE_COMBINING_CLASS_CCC29 = 29,
jpayne@69 126 HB_UNICODE_COMBINING_CLASS_CCC30 = 30,
jpayne@69 127 HB_UNICODE_COMBINING_CLASS_CCC31 = 31,
jpayne@69 128 HB_UNICODE_COMBINING_CLASS_CCC32 = 32,
jpayne@69 129 HB_UNICODE_COMBINING_CLASS_CCC33 = 33,
jpayne@69 130 HB_UNICODE_COMBINING_CLASS_CCC34 = 34,
jpayne@69 131 HB_UNICODE_COMBINING_CLASS_CCC35 = 35,
jpayne@69 132
jpayne@69 133 /* Syriac */
jpayne@69 134 HB_UNICODE_COMBINING_CLASS_CCC36 = 36,
jpayne@69 135
jpayne@69 136 /* Telugu */
jpayne@69 137 HB_UNICODE_COMBINING_CLASS_CCC84 = 84,
jpayne@69 138 HB_UNICODE_COMBINING_CLASS_CCC91 = 91,
jpayne@69 139
jpayne@69 140 /* Thai */
jpayne@69 141 HB_UNICODE_COMBINING_CLASS_CCC103 = 103,
jpayne@69 142 HB_UNICODE_COMBINING_CLASS_CCC107 = 107,
jpayne@69 143
jpayne@69 144 /* Lao */
jpayne@69 145 HB_UNICODE_COMBINING_CLASS_CCC118 = 118,
jpayne@69 146 HB_UNICODE_COMBINING_CLASS_CCC122 = 122,
jpayne@69 147
jpayne@69 148 /* Tibetan */
jpayne@69 149 HB_UNICODE_COMBINING_CLASS_CCC129 = 129,
jpayne@69 150 HB_UNICODE_COMBINING_CLASS_CCC130 = 130,
jpayne@69 151 HB_UNICODE_COMBINING_CLASS_CCC133 = 132,
jpayne@69 152
jpayne@69 153
jpayne@69 154 HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT = 200,
jpayne@69 155 HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW = 202,
jpayne@69 156 HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE = 214,
jpayne@69 157 HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT = 216,
jpayne@69 158 HB_UNICODE_COMBINING_CLASS_BELOW_LEFT = 218,
jpayne@69 159 HB_UNICODE_COMBINING_CLASS_BELOW = 220,
jpayne@69 160 HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT = 222,
jpayne@69 161 HB_UNICODE_COMBINING_CLASS_LEFT = 224,
jpayne@69 162 HB_UNICODE_COMBINING_CLASS_RIGHT = 226,
jpayne@69 163 HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT = 228,
jpayne@69 164 HB_UNICODE_COMBINING_CLASS_ABOVE = 230,
jpayne@69 165 HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT = 232,
jpayne@69 166 HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW = 233,
jpayne@69 167 HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE = 234,
jpayne@69 168
jpayne@69 169 HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT = 240,
jpayne@69 170
jpayne@69 171 HB_UNICODE_COMBINING_CLASS_INVALID = 255
jpayne@69 172 } hb_unicode_combining_class_t;
jpayne@69 173
jpayne@69 174
jpayne@69 175 /*
jpayne@69 176 * hb_unicode_funcs_t
jpayne@69 177 */
jpayne@69 178
jpayne@69 179 typedef struct hb_unicode_funcs_t hb_unicode_funcs_t;
jpayne@69 180
jpayne@69 181
jpayne@69 182 /*
jpayne@69 183 * just give me the best implementation you've got there.
jpayne@69 184 */
jpayne@69 185 HB_EXTERN hb_unicode_funcs_t *
jpayne@69 186 hb_unicode_funcs_get_default (void);
jpayne@69 187
jpayne@69 188
jpayne@69 189 HB_EXTERN hb_unicode_funcs_t *
jpayne@69 190 hb_unicode_funcs_create (hb_unicode_funcs_t *parent);
jpayne@69 191
jpayne@69 192 HB_EXTERN hb_unicode_funcs_t *
jpayne@69 193 hb_unicode_funcs_get_empty (void);
jpayne@69 194
jpayne@69 195 HB_EXTERN hb_unicode_funcs_t *
jpayne@69 196 hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs);
jpayne@69 197
jpayne@69 198 HB_EXTERN void
jpayne@69 199 hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs);
jpayne@69 200
jpayne@69 201 HB_EXTERN hb_bool_t
jpayne@69 202 hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs,
jpayne@69 203 hb_user_data_key_t *key,
jpayne@69 204 void * data,
jpayne@69 205 hb_destroy_func_t destroy,
jpayne@69 206 hb_bool_t replace);
jpayne@69 207
jpayne@69 208
jpayne@69 209 HB_EXTERN void *
jpayne@69 210 hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs,
jpayne@69 211 hb_user_data_key_t *key);
jpayne@69 212
jpayne@69 213
jpayne@69 214 HB_EXTERN void
jpayne@69 215 hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs);
jpayne@69 216
jpayne@69 217 HB_EXTERN hb_bool_t
jpayne@69 218 hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs);
jpayne@69 219
jpayne@69 220 HB_EXTERN hb_unicode_funcs_t *
jpayne@69 221 hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs);
jpayne@69 222
jpayne@69 223
jpayne@69 224 /*
jpayne@69 225 * funcs
jpayne@69 226 */
jpayne@69 227
jpayne@69 228 /* typedefs */
jpayne@69 229
jpayne@69 230 typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs,
jpayne@69 231 hb_codepoint_t unicode,
jpayne@69 232 void *user_data);
jpayne@69 233 typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs,
jpayne@69 234 hb_codepoint_t unicode,
jpayne@69 235 void *user_data);
jpayne@69 236 typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs,
jpayne@69 237 hb_codepoint_t unicode,
jpayne@69 238 void *user_data);
jpayne@69 239 typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs,
jpayne@69 240 hb_codepoint_t unicode,
jpayne@69 241 void *user_data);
jpayne@69 242
jpayne@69 243 typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs,
jpayne@69 244 hb_codepoint_t a,
jpayne@69 245 hb_codepoint_t b,
jpayne@69 246 hb_codepoint_t *ab,
jpayne@69 247 void *user_data);
jpayne@69 248 typedef hb_bool_t (*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs,
jpayne@69 249 hb_codepoint_t ab,
jpayne@69 250 hb_codepoint_t *a,
jpayne@69 251 hb_codepoint_t *b,
jpayne@69 252 void *user_data);
jpayne@69 253
jpayne@69 254 /* setters */
jpayne@69 255
jpayne@69 256 /**
jpayne@69 257 * hb_unicode_funcs_set_combining_class_func:
jpayne@69 258 * @ufuncs: a Unicode function structure
jpayne@69 259 * @func: (closure user_data) (destroy destroy) (scope notified):
jpayne@69 260 * @user_data:
jpayne@69 261 * @destroy:
jpayne@69 262 *
jpayne@69 263 *
jpayne@69 264 *
jpayne@69 265 * Since: 0.9.2
jpayne@69 266 **/
jpayne@69 267 HB_EXTERN void
jpayne@69 268 hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs,
jpayne@69 269 hb_unicode_combining_class_func_t func,
jpayne@69 270 void *user_data, hb_destroy_func_t destroy);
jpayne@69 271
jpayne@69 272 /**
jpayne@69 273 * hb_unicode_funcs_set_general_category_func:
jpayne@69 274 * @ufuncs: a Unicode function structure
jpayne@69 275 * @func: (closure user_data) (destroy destroy) (scope notified):
jpayne@69 276 * @user_data:
jpayne@69 277 * @destroy:
jpayne@69 278 *
jpayne@69 279 *
jpayne@69 280 *
jpayne@69 281 * Since: 0.9.2
jpayne@69 282 **/
jpayne@69 283 HB_EXTERN void
jpayne@69 284 hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs,
jpayne@69 285 hb_unicode_general_category_func_t func,
jpayne@69 286 void *user_data, hb_destroy_func_t destroy);
jpayne@69 287
jpayne@69 288 /**
jpayne@69 289 * hb_unicode_funcs_set_mirroring_func:
jpayne@69 290 * @ufuncs: a Unicode function structure
jpayne@69 291 * @func: (closure user_data) (destroy destroy) (scope notified):
jpayne@69 292 * @user_data:
jpayne@69 293 * @destroy:
jpayne@69 294 *
jpayne@69 295 *
jpayne@69 296 *
jpayne@69 297 * Since: 0.9.2
jpayne@69 298 **/
jpayne@69 299 HB_EXTERN void
jpayne@69 300 hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs,
jpayne@69 301 hb_unicode_mirroring_func_t func,
jpayne@69 302 void *user_data, hb_destroy_func_t destroy);
jpayne@69 303
jpayne@69 304 /**
jpayne@69 305 * hb_unicode_funcs_set_script_func:
jpayne@69 306 * @ufuncs: a Unicode function structure
jpayne@69 307 * @func: (closure user_data) (destroy destroy) (scope notified):
jpayne@69 308 * @user_data:
jpayne@69 309 * @destroy:
jpayne@69 310 *
jpayne@69 311 *
jpayne@69 312 *
jpayne@69 313 * Since: 0.9.2
jpayne@69 314 **/
jpayne@69 315 HB_EXTERN void
jpayne@69 316 hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs,
jpayne@69 317 hb_unicode_script_func_t func,
jpayne@69 318 void *user_data, hb_destroy_func_t destroy);
jpayne@69 319
jpayne@69 320 /**
jpayne@69 321 * hb_unicode_funcs_set_compose_func:
jpayne@69 322 * @ufuncs: a Unicode function structure
jpayne@69 323 * @func: (closure user_data) (destroy destroy) (scope notified):
jpayne@69 324 * @user_data:
jpayne@69 325 * @destroy:
jpayne@69 326 *
jpayne@69 327 *
jpayne@69 328 *
jpayne@69 329 * Since: 0.9.2
jpayne@69 330 **/
jpayne@69 331 HB_EXTERN void
jpayne@69 332 hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs,
jpayne@69 333 hb_unicode_compose_func_t func,
jpayne@69 334 void *user_data, hb_destroy_func_t destroy);
jpayne@69 335
jpayne@69 336 /**
jpayne@69 337 * hb_unicode_funcs_set_decompose_func:
jpayne@69 338 * @ufuncs: a Unicode function structure
jpayne@69 339 * @func: (closure user_data) (destroy destroy) (scope notified):
jpayne@69 340 * @user_data:
jpayne@69 341 * @destroy:
jpayne@69 342 *
jpayne@69 343 *
jpayne@69 344 *
jpayne@69 345 * Since: 0.9.2
jpayne@69 346 **/
jpayne@69 347 HB_EXTERN void
jpayne@69 348 hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs,
jpayne@69 349 hb_unicode_decompose_func_t func,
jpayne@69 350 void *user_data, hb_destroy_func_t destroy);
jpayne@69 351
jpayne@69 352 /* accessors */
jpayne@69 353
jpayne@69 354 /**
jpayne@69 355 * hb_unicode_combining_class:
jpayne@69 356 *
jpayne@69 357 * Since: 0.9.2
jpayne@69 358 **/
jpayne@69 359 HB_EXTERN hb_unicode_combining_class_t
jpayne@69 360 hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs,
jpayne@69 361 hb_codepoint_t unicode);
jpayne@69 362
jpayne@69 363 /**
jpayne@69 364 * hb_unicode_general_category:
jpayne@69 365 *
jpayne@69 366 * Since: 0.9.2
jpayne@69 367 **/
jpayne@69 368 HB_EXTERN hb_unicode_general_category_t
jpayne@69 369 hb_unicode_general_category (hb_unicode_funcs_t *ufuncs,
jpayne@69 370 hb_codepoint_t unicode);
jpayne@69 371
jpayne@69 372 /**
jpayne@69 373 * hb_unicode_mirroring:
jpayne@69 374 *
jpayne@69 375 * Since: 0.9.2
jpayne@69 376 **/
jpayne@69 377 HB_EXTERN hb_codepoint_t
jpayne@69 378 hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs,
jpayne@69 379 hb_codepoint_t unicode);
jpayne@69 380
jpayne@69 381 /**
jpayne@69 382 * hb_unicode_script:
jpayne@69 383 *
jpayne@69 384 * Since: 0.9.2
jpayne@69 385 **/
jpayne@69 386 HB_EXTERN hb_script_t
jpayne@69 387 hb_unicode_script (hb_unicode_funcs_t *ufuncs,
jpayne@69 388 hb_codepoint_t unicode);
jpayne@69 389
jpayne@69 390 HB_EXTERN hb_bool_t
jpayne@69 391 hb_unicode_compose (hb_unicode_funcs_t *ufuncs,
jpayne@69 392 hb_codepoint_t a,
jpayne@69 393 hb_codepoint_t b,
jpayne@69 394 hb_codepoint_t *ab);
jpayne@69 395
jpayne@69 396 HB_EXTERN hb_bool_t
jpayne@69 397 hb_unicode_decompose (hb_unicode_funcs_t *ufuncs,
jpayne@69 398 hb_codepoint_t ab,
jpayne@69 399 hb_codepoint_t *a,
jpayne@69 400 hb_codepoint_t *b);
jpayne@69 401
jpayne@69 402 HB_END_DECLS
jpayne@69 403
jpayne@69 404 #endif /* HB_UNICODE_H */