30#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
31#error "Include <hb.h> instead."
171#define hb_glyph_info_get_glyph_flags(info) \
172 ((hb_glyph_flags_t) ((unsigned int) (info)->mask & HB_GLYPH_FLAG_DEFINED))
225#define HB_SEGMENT_PROPERTIES_DEFAULT {HB_DIRECTION_INVALID, \
227 HB_LANGUAGE_INVALID, \
467#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu
524 unsigned int start,
unsigned int end);
535 unsigned int cluster);
541 unsigned int item_offset,
546 const uint16_t *text,
548 unsigned int item_offset,
553 const uint32_t *text,
555 unsigned int item_offset,
562 unsigned int item_offset,
569 unsigned int item_offset,
580 unsigned int length);
589 unsigned int *length);
593 unsigned int *length);
666 unsigned int buf_size,
667 unsigned int *buf_consumed,
677 unsigned int buf_size,
678 unsigned int *buf_consumed,
687 unsigned int buf_size,
688 unsigned int *buf_consumed,
697 const char **end_ptr,
705 const char **end_ptr,
775 unsigned int position_fuzz);
HB_EXTERN hb_buffer_cluster_level_t hb_buffer_get_cluster_level(const hb_buffer_t *buffer)
HB_EXTERN unsigned int hb_buffer_serialize(hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, unsigned int *buf_consumed, hb_font_t *font, hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags)
HB_EXTERN hb_codepoint_t hb_buffer_get_invisible_glyph(const hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_guess_segment_properties(hb_buffer_t *buffer)
struct hb_segment_properties_t hb_segment_properties_t
HB_EXTERN void hb_buffer_add(hb_buffer_t *buffer, hb_codepoint_t codepoint, unsigned int cluster)
HB_EXTERN hb_bool_t hb_buffer_set_length(hb_buffer_t *buffer, unsigned int length)
HB_EXTERN hb_bool_t hb_buffer_deserialize_glyphs(hb_buffer_t *buffer, const char *buf, int buf_len, const char **end_ptr, hb_font_t *font, hb_buffer_serialize_format_t format)
HB_EXTERN hb_buffer_content_type_t hb_buffer_get_content_type(const hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_set_message_func(hb_buffer_t *buffer, hb_buffer_message_func_t func, void *user_data, hb_destroy_func_t destroy)
HB_EXTERN hb_direction_t hb_buffer_get_direction(const hb_buffer_t *buffer)
HB_BEGIN_DECLS struct hb_glyph_info_t hb_glyph_info_t
HB_EXTERN unsigned int hb_buffer_get_length(const hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_set_cluster_level(hb_buffer_t *buffer, hb_buffer_cluster_level_t cluster_level)
HB_EXTERN unsigned int hb_segment_properties_hash(const hb_segment_properties_t *p)
HB_EXTERN void hb_buffer_set_not_found_glyph(hb_buffer_t *buffer, hb_codepoint_t not_found)
HB_EXTERN hb_buffer_t * hb_buffer_get_empty(void)
HB_EXTERN unsigned hb_buffer_get_random_state(const hb_buffer_t *buffer)
HB_EXTERN hb_buffer_serialize_format_t hb_buffer_serialize_format_from_string(const char *str, int len)
HB_EXTERN hb_glyph_info_t * hb_buffer_get_glyph_infos(hb_buffer_t *buffer, unsigned int *length)
HB_EXTERN void hb_buffer_add_codepoints(hb_buffer_t *buffer, const hb_codepoint_t *text, int text_length, unsigned int item_offset, int item_length)
HB_EXTERN void hb_buffer_set_flags(hb_buffer_t *buffer, hb_buffer_flags_t flags)
HB_EXTERN hb_bool_t hb_buffer_pre_allocate(hb_buffer_t *buffer, unsigned int size)
HB_EXTERN hb_script_t hb_buffer_get_script(const hb_buffer_t *buffer)
HB_EXTERN hb_buffer_t * hb_buffer_reference(hb_buffer_t *buffer)
HB_EXTERN hb_glyph_position_t * hb_buffer_get_glyph_positions(hb_buffer_t *buffer, unsigned int *length)
HB_EXTERN const char * hb_buffer_serialize_format_to_string(hb_buffer_serialize_format_t format)
HB_EXTERN unsigned int hb_buffer_serialize_unicode(hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, unsigned int *buf_consumed, hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags)
HB_EXTERN void hb_buffer_add_utf8(hb_buffer_t *buffer, const char *text, int text_length, unsigned int item_offset, int item_length)
HB_EXTERN hb_bool_t hb_buffer_has_positions(hb_buffer_t *buffer)
HB_EXTERN hb_codepoint_t hb_buffer_get_not_found_variation_selector_glyph(const hb_buffer_t *buffer)
@ HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL
@ HB_GLYPH_FLAG_UNSAFE_TO_CONCAT
@ HB_GLYPH_FLAG_UNSAFE_TO_BREAK
HB_EXTERN hb_bool_t hb_buffer_set_user_data(hb_buffer_t *buffer, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace)
HB_EXTERN hb_unicode_funcs_t * hb_buffer_get_unicode_funcs(const hb_buffer_t *buffer)
hb_buffer_serialize_flags_t
@ HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS
@ HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS
@ HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES
@ HB_BUFFER_SERIALIZE_FLAG_DEFAULT
@ HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS
@ HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES
@ HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS
@ HB_BUFFER_SERIALIZE_FLAG_DEFINED
HB_EXTERN void hb_buffer_destroy(hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_set_random_state(hb_buffer_t *buffer, unsigned state)
HB_EXTERN const char ** hb_buffer_serialize_list_formats(void)
HB_EXTERN void hb_buffer_set_unicode_funcs(hb_buffer_t *buffer, hb_unicode_funcs_t *unicode_funcs)
HB_EXTERN void hb_buffer_reset(hb_buffer_t *buffer)
HB_EXTERN hb_bool_t hb_segment_properties_equal(const hb_segment_properties_t *a, const hb_segment_properties_t *b)
HB_EXTERN void hb_buffer_append(hb_buffer_t *buffer, const hb_buffer_t *source, unsigned int start, unsigned int end)
HB_EXTERN void hb_buffer_get_segment_properties(const hb_buffer_t *buffer, hb_segment_properties_t *props)
HB_EXTERN void hb_buffer_set_content_type(hb_buffer_t *buffer, hb_buffer_content_type_t content_type)
struct hb_glyph_position_t hb_glyph_position_t
HB_EXTERN hb_buffer_t * hb_buffer_create_similar(const hb_buffer_t *src)
HB_EXTERN void hb_buffer_reverse_clusters(hb_buffer_t *buffer)
HB_EXTERN hb_codepoint_t hb_buffer_get_replacement_codepoint(const hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_reverse(hb_buffer_t *buffer)
hb_buffer_serialize_format_t
@ HB_BUFFER_SERIALIZE_FORMAT_INVALID
@ HB_BUFFER_SERIALIZE_FORMAT_JSON
@ HB_BUFFER_SERIALIZE_FORMAT_TEXT
hb_buffer_cluster_level_t
@ HB_BUFFER_CLUSTER_LEVEL_CHARACTERS
@ HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS
@ HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES
@ HB_BUFFER_CLUSTER_LEVEL_DEFAULT
HB_EXTERN void hb_buffer_set_language(hb_buffer_t *buffer, hb_language_t language)
HB_EXTERN hb_bool_t hb_buffer_deserialize_unicode(hb_buffer_t *buffer, const char *buf, int buf_len, const char **end_ptr, hb_buffer_serialize_format_t format)
HB_EXTERN void hb_buffer_add_latin1(hb_buffer_t *buffer, const uint8_t *text, int text_length, unsigned int item_offset, int item_length)
HB_EXTERN void hb_buffer_add_utf32(hb_buffer_t *buffer, const uint32_t *text, int text_length, unsigned int item_offset, int item_length)
HB_EXTERN void hb_buffer_set_invisible_glyph(hb_buffer_t *buffer, hb_codepoint_t invisible)
HB_EXTERN hb_codepoint_t hb_buffer_get_not_found_glyph(const hb_buffer_t *buffer)
HB_EXTERN unsigned int hb_buffer_serialize_glyphs(hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, unsigned int *buf_consumed, hb_font_t *font, hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags)
HB_EXTERN void hb_buffer_normalize_glyphs(hb_buffer_t *buffer)
HB_EXTERN hb_bool_t hb_buffer_allocation_successful(hb_buffer_t *buffer)
@ HB_BUFFER_CONTENT_TYPE_GLYPHS
@ HB_BUFFER_CONTENT_TYPE_UNICODE
@ HB_BUFFER_CONTENT_TYPE_INVALID
HB_EXTERN void hb_buffer_set_not_found_variation_selector_glyph(hb_buffer_t *buffer, hb_codepoint_t not_found_variation_selector)
HB_EXTERN hb_buffer_t * hb_buffer_create(void)
@ HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE
@ HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL
@ HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES
@ HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES
@ HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT
@ HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH
@ HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT
@ HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH
@ HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH
@ HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT
@ HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH
@ HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH
@ HB_BUFFER_DIFF_FLAG_EQUAL
@ HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH
HB_EXTERN void hb_buffer_set_script(hb_buffer_t *buffer, hb_script_t script)
HB_EXTERN void hb_buffer_set_replacement_codepoint(hb_buffer_t *buffer, hb_codepoint_t replacement)
HB_EXTERN void hb_buffer_clear_contents(hb_buffer_t *buffer)
#define hb_glyph_info_get_glyph_flags(info)
HB_EXTERN void hb_buffer_set_direction(hb_buffer_t *buffer, hb_direction_t direction)
HB_EXTERN hb_language_t hb_buffer_get_language(const hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_set_segment_properties(hb_buffer_t *buffer, const hb_segment_properties_t *props)
HB_EXTERN hb_buffer_diff_flags_t hb_buffer_diff(hb_buffer_t *buffer, hb_buffer_t *reference, hb_codepoint_t dottedcircle_glyph, unsigned int position_fuzz)
HB_EXTERN void * hb_buffer_get_user_data(const hb_buffer_t *buffer, hb_user_data_key_t *key)
HB_EXTERN void hb_buffer_reverse_range(hb_buffer_t *buffer, unsigned int start, unsigned int end)
struct hb_buffer_t hb_buffer_t
HB_EXTERN void hb_segment_properties_overlay(hb_segment_properties_t *p, const hb_segment_properties_t *src)
HB_EXTERN hb_buffer_flags_t hb_buffer_get_flags(const hb_buffer_t *buffer)
HB_EXTERN void hb_buffer_add_utf16(hb_buffer_t *buffer, const uint16_t *text, int text_length, unsigned int item_offset, int item_length)
hb_bool_t(* hb_buffer_message_func_t)(hb_buffer_t *buffer, hb_font_t *font, const char *message, void *user_data)
void(* hb_destroy_func_t)(void *user_data)
const struct hb_language_impl_t * hb_language_t
HB_BEGIN_DECLS typedef int hb_bool_t
#define HB_TAG(c1, c2, c3, c4)
struct hb_font_t hb_font_t
struct hb_unicode_funcs_t hb_unicode_funcs_t
json_t format(printf, 1, 2)))
static int codepoint(lua_State *L)