|
|
|
@ -143,45 +143,11 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
#define HB_UNICODE_FUNC_IMPLEMENT(name) hb_unicode_##name##_func_t name; |
|
|
|
|
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS |
|
|
|
|
#undef HB_UNICODE_FUNC_IMPLEMENT |
|
|
|
|
} func; |
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
#define HB_UNICODE_FUNC_IMPLEMENT(name) void *name; |
|
|
|
|
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS |
|
|
|
|
#undef HB_UNICODE_FUNC_IMPLEMENT |
|
|
|
|
} user_data; |
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
#define HB_UNICODE_FUNC_IMPLEMENT(name) hb_destroy_func_t name; |
|
|
|
|
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS |
|
|
|
|
#undef HB_UNICODE_FUNC_IMPLEMENT |
|
|
|
|
} destroy; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_GLIB |
|
|
|
|
extern HB_INTERNAL const hb_unicode_funcs_t _hb_glib_unicode_funcs; |
|
|
|
|
#define _hb_unicode_funcs_default _hb_glib_unicode_funcs |
|
|
|
|
#elif defined(HAVE_ICU) |
|
|
|
|
extern HB_INTERNAL const hb_unicode_funcs_t _hb_icu_unicode_funcs; |
|
|
|
|
#define _hb_unicode_funcs_default _hb_icu_unicode_funcs |
|
|
|
|
#else |
|
|
|
|
#define HB_UNICODE_FUNCS_NIL 1 |
|
|
|
|
extern HB_INTERNAL const hb_unicode_funcs_t _hb_unicode_funcs_nil; |
|
|
|
|
#define _hb_unicode_funcs_default _hb_unicode_funcs_nil |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HB_INTERNAL unsigned int |
|
|
|
|
_hb_unicode_modified_combining_class (hb_unicode_funcs_t *ufuncs, |
|
|
|
|
hb_codepoint_t unicode); |
|
|
|
|
modified_combining_class (hb_codepoint_t unicode); |
|
|
|
|
|
|
|
|
|
static inline hb_bool_t |
|
|
|
|
_hb_unicode_is_variation_selector (hb_codepoint_t unicode) |
|
|
|
|
inline hb_bool_t |
|
|
|
|
is_variation_selector (hb_codepoint_t unicode) |
|
|
|
|
{ |
|
|
|
|
return unlikely (hb_in_ranges<hb_codepoint_t> (unicode, |
|
|
|
|
0x180B, 0x180D, /* MONGOLIAN FREE VARIATION SELECTOR ONE..THREE */ |
|
|
|
@ -217,8 +183,8 @@ _hb_unicode_is_variation_selector (hb_codepoint_t unicode) |
|
|
|
|
* |
|
|
|
|
* FEFF ZERO WIDTH NO-BREAK SPACE |
|
|
|
|
*/ |
|
|
|
|
static inline hb_bool_t |
|
|
|
|
_hb_unicode_is_zero_width (hb_codepoint_t ch) |
|
|
|
|
inline hb_bool_t |
|
|
|
|
is_zero_width (hb_codepoint_t ch) |
|
|
|
|
{ |
|
|
|
|
return ((ch & ~0x007F) == 0x2000 && (hb_in_ranges<hb_codepoint_t> (ch, |
|
|
|
|
0x200B, 0x200F, |
|
|
|
@ -232,4 +198,38 @@ _hb_unicode_is_zero_width (hb_codepoint_t ch) |
|
|
|
|
ch == 0xFEFF); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
#define HB_UNICODE_FUNC_IMPLEMENT(name) hb_unicode_##name##_func_t name; |
|
|
|
|
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS |
|
|
|
|
#undef HB_UNICODE_FUNC_IMPLEMENT |
|
|
|
|
} func; |
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
#define HB_UNICODE_FUNC_IMPLEMENT(name) void *name; |
|
|
|
|
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS |
|
|
|
|
#undef HB_UNICODE_FUNC_IMPLEMENT |
|
|
|
|
} user_data; |
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
#define HB_UNICODE_FUNC_IMPLEMENT(name) hb_destroy_func_t name; |
|
|
|
|
HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS |
|
|
|
|
#undef HB_UNICODE_FUNC_IMPLEMENT |
|
|
|
|
} destroy; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_GLIB |
|
|
|
|
extern HB_INTERNAL const hb_unicode_funcs_t _hb_glib_unicode_funcs; |
|
|
|
|
#define _hb_unicode_funcs_default _hb_glib_unicode_funcs |
|
|
|
|
#elif defined(HAVE_ICU) |
|
|
|
|
extern HB_INTERNAL const hb_unicode_funcs_t _hb_icu_unicode_funcs; |
|
|
|
|
#define _hb_unicode_funcs_default _hb_icu_unicode_funcs |
|
|
|
|
#else |
|
|
|
|
#define HB_UNICODE_FUNCS_NIL 1 |
|
|
|
|
extern HB_INTERNAL const hb_unicode_funcs_t _hb_unicode_funcs_nil; |
|
|
|
|
#define _hb_unicode_funcs_default _hb_unicode_funcs_nil |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* HB_UNICODE_PRIVATE_HH */ |
|
|
|
|