|
|
|
@ -143,53 +143,19 @@ 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; |
|
|
|
|
}; |
|
|
|
|
HB_INTERNAL unsigned int |
|
|
|
|
modified_combining_class (hb_codepoint_t unicode); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#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); |
|
|
|
|
|
|
|
|
|
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 */ |
|
|
|
|
0xFE00, 0xFE0F, /* VARIATION SELECTOR-1..16 */ |
|
|
|
|
0xE0100, 0xE01EF)); /* VARIATION SELECTOR-17..256 */ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Zero-Width invisible characters:
|
|
|
|
|
/* Zero-Width invisible characters:
|
|
|
|
|
* |
|
|
|
|
* 00AD SOFT HYPHEN |
|
|
|
|
* 034F COMBINING GRAPHEME JOINER |
|
|
|
@ -217,9 +183,9 @@ _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, |
|
|
|
|
0x202A, 0x202E, |
|
|
|
@ -230,6 +196,40 @@ _hb_unicode_is_zero_width (hb_codepoint_t ch) |
|
|
|
|
ch == 0x034F || |
|
|
|
|
ch == 0x180E || |
|
|
|
|
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 */ |
|
|
|
|