[HB] Flesh out Unicode funcs
This commit is contained in:
parent
299f08961f
commit
04cc0a29ee
|
@ -56,7 +56,7 @@ typedef struct {
|
||||||
/* Helper macros */
|
/* Helper macros */
|
||||||
|
|
||||||
#define HB_OBJECT_IS_INERT(obj) \
|
#define HB_OBJECT_IS_INERT(obj) \
|
||||||
(HB_REFERENCE_COUNT_IS_INVALID ((obj)->ref_count))
|
(HB_UNLIKELY (HB_REFERENCE_COUNT_IS_INVALID ((obj)->ref_count)))
|
||||||
|
|
||||||
#define HB_OBJECT_DO_INIT_EXPR(obj) \
|
#define HB_OBJECT_DO_INIT_EXPR(obj) \
|
||||||
HB_REFERENCE_COUNT_INIT (obj->ref_count, 1)
|
HB_REFERENCE_COUNT_INIT (obj->ref_count, 1)
|
||||||
|
|
|
@ -40,13 +40,11 @@ HB_BEGIN_DECLS
|
||||||
struct _hb_unicode_funcs_t {
|
struct _hb_unicode_funcs_t {
|
||||||
hb_reference_count_t ref_count;
|
hb_reference_count_t ref_count;
|
||||||
|
|
||||||
/*
|
hb_unicode_get_general_category_func_t get_general_category;
|
||||||
hb_unicode_get_general_category_func_t general_category_func);
|
hb_unicode_get_combining_class_func_t get_combining_class;
|
||||||
hb_unicode_get_combining_class_func_t combining_class_func);
|
hb_unicode_get_mirroring_char_func_t get_mirroring_char;
|
||||||
hb_unicode_get_mirroring_char_func_t mirroring_char_func);
|
hb_unicode_get_script_func_t get_script;
|
||||||
hb_unicode_get_script_func_t script_func);
|
hb_unicode_get_eastasian_width_func_t get_eastasian_width;
|
||||||
hb_unicode_get_eastasian_width_func_t eastasian_width_func);
|
|
||||||
*/
|
|
||||||
};
|
};
|
||||||
|
|
||||||
HB_END_DECLS
|
HB_END_DECLS
|
||||||
|
|
|
@ -33,14 +33,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static hb_unicode_funcs_t _hb_unicode_funcs_nil = {
|
static hb_unicode_funcs_t _hb_unicode_funcs_nil = {
|
||||||
HB_REFERENCE_COUNT_INVALID /* ref_count */
|
HB_REFERENCE_COUNT_INVALID, /* ref_count */
|
||||||
/*
|
|
||||||
hb_unicode_get_general_category_func_t general_category_func);
|
NULL, /*get_general_category */
|
||||||
hb_unicode_get_combining_class_func_t combining_class_func);
|
NULL, /*get_combining_class */
|
||||||
hb_unicode_get_mirroring_char_func_t mirroring_char_func);
|
NULL, /*get_mirroring_char */
|
||||||
hb_unicode_get_script_func_t script_func);
|
NULL, /*get_script */
|
||||||
hb_unicode_get_eastasian_width_func_t eastasian_width_func);
|
NULL /*get_eastasian_width */
|
||||||
*/
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hb_unicode_funcs_t *
|
hb_unicode_funcs_t *
|
||||||
|
@ -87,3 +86,55 @@ hb_unicode_funcs_copy (hb_unicode_funcs_t *other_ufuncs)
|
||||||
|
|
||||||
return ufuncs;
|
return ufuncs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
hb_unicode_funcs_set_mirroring_char_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
hb_unicode_get_mirroring_char_func_t mirroring_char_func)
|
||||||
|
{
|
||||||
|
if (HB_OBJECT_IS_INERT (ufuncs))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ufuncs->get_mirroring_char = mirroring_char_func;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
hb_unicode_get_general_category_func_t general_category_func)
|
||||||
|
{
|
||||||
|
if (HB_OBJECT_IS_INERT (ufuncs))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ufuncs->get_general_category = general_category_func;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
hb_unicode_get_script_func_t script_func)
|
||||||
|
{
|
||||||
|
if (HB_OBJECT_IS_INERT (ufuncs))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ufuncs->get_script = script_func;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
hb_unicode_get_combining_class_func_t combining_class_func)
|
||||||
|
{
|
||||||
|
if (HB_OBJECT_IS_INERT (ufuncs))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ufuncs->get_combining_class = combining_class_func;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
|
||||||
|
hb_unicode_get_eastasian_width_func_t eastasian_width_func)
|
||||||
|
{
|
||||||
|
if (HB_OBJECT_IS_INERT (ufuncs))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ufuncs->get_eastasian_width = eastasian_width_func;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -184,7 +184,6 @@ hb_unicode_funcs_copy (hb_unicode_funcs_t *ufuncs);
|
||||||
|
|
||||||
/* funcs */
|
/* funcs */
|
||||||
|
|
||||||
#if 0
|
|
||||||
typedef hb_codepoint_t (*hb_unicode_get_mirroring_char_func_t) (hb_codepoint_t unicode);
|
typedef hb_codepoint_t (*hb_unicode_get_mirroring_char_func_t) (hb_codepoint_t unicode);
|
||||||
typedef hb_category_t (*hb_unicode_get_general_category_func_t) (hb_codepoint_t unicode);
|
typedef hb_category_t (*hb_unicode_get_general_category_func_t) (hb_codepoint_t unicode);
|
||||||
typedef hb_script_t (*hb_unicode_get_script_func_t) (hb_codepoint_t unicode);
|
typedef hb_script_t (*hb_unicode_get_script_func_t) (hb_codepoint_t unicode);
|
||||||
|
@ -212,8 +211,6 @@ void
|
||||||
hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
|
hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs,
|
||||||
hb_unicode_get_eastasian_width_func_t eastasian_width_func);
|
hb_unicode_get_eastasian_width_func_t eastasian_width_func);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
HB_END_DECLS
|
HB_END_DECLS
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue