#include "hb.hh"
#ifndef HB_NO_OT_SHAPE
#include "hb-ot-shaper-arabic.hh"
#include "hb-ot-shape.hh"
#define arabic_shaping_action() …
#define HB_BUFFER_SCRATCH_FLAG_ARABIC_HAS_STCH …
#define HB_ARABIC_GENERAL_CATEGORY_IS_WORD(gen_cat) …
enum hb_arabic_joining_type_t { … };
#include "hb-ot-shaper-arabic-table.hh"
static unsigned int get_joining_type (hb_codepoint_t u, hb_unicode_general_category_t gen_cat)
{ … }
#define FEATURE_IS_SYRIAC(tag) …
static const hb_tag_t arabic_features[] = …;
enum arabic_action_t { … };
static const struct arabic_state_table_entry { … } arabic_state_table[][NUM_STATE_MACHINE_COLS] = …;
static bool
arabic_fallback_shape (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer);
static bool
record_stch (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer);
static bool
deallocate_buffer_var (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer)
{ … }
static void
collect_features_arabic (hb_ot_shape_planner_t *plan)
{ … }
#include "hb-ot-shaper-arabic-fallback.hh"
struct arabic_shape_plan_t
{ … };
void *
data_create_arabic (const hb_ot_shape_plan_t *plan)
{ … }
void
data_destroy_arabic (void *data)
{ … }
static void
arabic_joining (hb_buffer_t *buffer)
{ … }
static void
mongolian_variation_selectors (hb_buffer_t *buffer)
{ … }
void
setup_masks_arabic_plan (const arabic_shape_plan_t *arabic_plan,
hb_buffer_t *buffer,
hb_script_t script)
{ … }
static void
setup_masks_arabic (const hb_ot_shape_plan_t *plan,
hb_buffer_t *buffer,
hb_font_t *font HB_UNUSED)
{ … }
static bool
arabic_fallback_shape (const hb_ot_shape_plan_t *plan,
hb_font_t *font,
hb_buffer_t *buffer)
{ … }
static bool
record_stch (const hb_ot_shape_plan_t *plan,
hb_font_t *font HB_UNUSED,
hb_buffer_t *buffer)
{ … }
static void
apply_stch (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_buffer_t *buffer,
hb_font_t *font)
{ … }
static void
postprocess_glyphs_arabic (const hb_ot_shape_plan_t *plan,
hb_buffer_t *buffer,
hb_font_t *font)
{ … }
static hb_codepoint_t
modifier_combining_marks[] = …;
static inline bool
info_is_mcm (const hb_glyph_info_t &info)
{ … }
static void
reorder_marks_arabic (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_buffer_t *buffer,
unsigned int start,
unsigned int end)
{ … }
const hb_ot_shaper_t _hb_ot_shaper_arabic = …;
#endif