## hb-common hb-common |

## Functions

#define | HB_DIRECTION_REVERSE()
#define | HB_LANGUAGE_INVALID
#define | HB_TAG()
#define | HB_UNTAG()
void | (*hb_destroy_func_t) ()
hb_direction_t | hb_direction_from_string ()
const char * | hb_direction_to_string ()
hb_language_t | hb_language_from_string ()
hb_language_t | hb_language_get_default ()
const char * | hb_language_to_string ()
hb_script_t | hb_script_from_iso15924_tag ()
hb_script_t | hb_script_from_string ()
hb_direction_t | hb_script_get_horizontal_direction ()
hb_tag_t | hb_script_to_iso15924_tag ()
hb_tag_t | hb_tag_from_string ()
void | hb_tag_to_string ()
#define | HB_DIRECTION_IS_BACKWARD()
#define | HB_DIRECTION_IS_FORWARD()
#define | HB_DIRECTION_IS_HORIZONTAL()
#define | HB_DIRECTION_IS_VALID()
#define | HB_DIRECTION_IS_VERTICAL()

## Types and Values

#define | HB_TAG_NONE
typedef | hb_bool_t
typedef | hb_codepoint_t
enum | hb_direction_t
typedef | hb_language_t
typedef | hb_mask_t
typedef | hb_position_t
enum | hb_script_t
typedef | hb_tag_t
| hb_user_data_key_t
| hb_var_int_t

## Description

## Functions

### HB_DIRECTION_REVERSE()

    #define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1)) /* Direction must be valid */

### HB_LANGUAGE_INVALID

    #define HB_LANGUAGE_INVALID ((hb_language_t) NULL)

### HB_TAG()

    #define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4))))

### HB_UNTAG()

    #define HB_UNTAG(tag)   ((uint8_t)((tag)>>24)), ((uint8_t)((tag)>>16)), ((uint8_t)((tag)>>8)), ((uint8_t)(tag))

### hb_destroy_func_t ()

    void
    (*hb_destroy_func_t) (void *user_data);

### hb_direction_from_string ()

    hb_direction_t
    hb_direction_from_string (const char *str,
                              int len);

#### Parameters

str | . | [array length=len]

#### Returns

Since 1.0

### hb_direction_to_string ()

    const char *
    hb_direction_to_string (hb_direction_t direction);

#### Returns

.

[transfer none]

Since 1.0

### hb_language_from_string ()

    hb_language_t
    hb_language_from_string (const char *str,
                             int len);

#### Parameters

str | . | [array length=len]

#### Returns

Since 1.0

### hb_language_get_default ()

    hb_language_t
    hb_language_get_default (void);

#### Returns

Since 1.0

### hb_language_to_string ()

    const char *
    hb_language_to_string (hb_language_t language);

#### Returns

.

[transfer none]

Since 1.0

### hb_script_from_iso15924_tag ()

    hb_script_t
    hb_script_from_iso15924_tag (hb_tag_t tag);

#### Returns

Since 1.0

### hb_script_from_string ()

    hb_script_t
    hb_script_from_string (const char *s,
                           int len);

#### Parameters

s | . | [array length=len]

#### Returns

Since 1.0

### hb_script_get_horizontal_direction ()

    hb_direction_t
    hb_script_get_horizontal_direction (hb_script_t script);

#### Returns

Since 1.0

### hb_script_to_iso15924_tag ()

    hb_tag_t
    hb_script_to_iso15924_tag (hb_script_t script);

#### Returns

Since 1.0

### hb_tag_from_string ()

    hb_tag_t
    hb_tag_from_string (const char *str,
                        int len);

#### Parameters

str | . | [array length=len]

#### Returns

Since 1.0

### hb_tag_to_string ()

    void
    hb_tag_to_string (hb_tag_t tag,
                      char *buf);

#### Parameters

buf | . | [array fixed-size=4]

Since 1.0

### HB_DIRECTION_IS_BACKWARD()

    #define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)

### HB_DIRECTION_IS_FORWARD()

    #define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)

### HB_DIRECTION_IS_HORIZONTAL()

    #define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)

### HB_DIRECTION_IS_VALID()

    #define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)

### HB_DIRECTION_IS_VERTICAL()

    #define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)

## Types and Values

### HB_TAG_NONE

    #define HB_TAG_NONE HB_TAG(0,0,0,0)

### hb_bool_t

    typedef int hb_bool_t;

### hb_codepoint_t

    typedef uint32_t hb_codepoint_t;

### enum hb_direction_t

#### Members

HB_DIRECTION_INVALID |  |
HB_DIRECTION_LTR |  |
HB_DIRECTION_RTL |  |
HB_DIRECTION_TTB |  |
HB_DIRECTION_BTT |  |

### hb_language_t

    typedef const struct hb_language_impl_t *hb_language_t;

### hb_mask_t

    typedef uint32_t hb_mask_t;

### hb_position_t

    typedef int32_t hb_position_t;

### enum hb_script_t

#### Members

HB_SCRIPT_COMMON |  |
HB_SCRIPT_INHERITED |  |
HB_SCRIPT_UNKNOWN |  |
HB_SCRIPT_ARABIC |  |
HB_SCRIPT_ARMENIAN |  |
HB_SCRIPT_BENGALI |  |
HB_SCRIPT_CYRILLIC |  |
HB_SCRIPT_DEVANAGARI |  |
HB_SCRIPT_GEORGIAN |  |
HB_SCRIPT_GREEK |  |
HB_SCRIPT_GUJARATI |  |
HB_SCRIPT_GURMUKHI |  |
HB_SCRIPT_HANGUL |  |
HB_SCRIPT_HAN |  |
HB_SCRIPT_HEBREW |  |
HB_SCRIPT_HIRAGANA |  |
HB_SCRIPT_KANNADA |  |
HB_SCRIPT_KATAKANA |  |
HB_SCRIPT_LAO |  |
HB_SCRIPT_LATIN |  |
HB_SCRIPT_MALAYALAM |  |
HB_SCRIPT_ORIYA |  |
HB_SCRIPT_TAMIL |  |
HB_SCRIPT_TELUGU |  |
HB_SCRIPT_THAI |  |
HB_SCRIPT_TIBETAN |  |
HB_SCRIPT_BOPOMOFO |  |
HB_SCRIPT_BRAILLE |  |
HB_SCRIPT_CANADIAN_SYLLABICS |  |
HB_SCRIPT_CHEROKEE |  |
HB_SCRIPT_ETHIOPIC |  |
HB_SCRIPT_KHMER |  |
HB_SCRIPT_MONGOLIAN |  |
HB_SCRIPT_MYANMAR |  |
HB_SCRIPT_OGHAM |  |
HB_SCRIPT_RUNIC |  |
HB_SCRIPT_SINHALA |  |
HB_SCRIPT_SYRIAC |  |
HB_SCRIPT_THAANA |  |
HB_SCRIPT_YI |  |
HB_SCRIPT_DESERET |  |
HB_SCRIPT_GOTHIC |  |
HB_SCRIPT_OLD_ITALIC |  |
HB_SCRIPT_BUHID |  |
HB_SCRIPT_HANUNOO |  |
HB_SCRIPT_TAGALOG |  |
HB_SCRIPT_TAGBANWA |  |
HB_SCRIPT_CYPRIOT |  |
HB_SCRIPT_LIMBU |  |
HB_SCRIPT_LINEAR_B |  |
HB_SCRIPT_OSMANYA |  |
HB_SCRIPT_SHAVIAN |  |
HB_SCRIPT_TAI_LE |  |
HB_SCRIPT_UGARITIC |  |
HB_SCRIPT_BUGINESE |  |
HB_SCRIPT_COPTIC |  |
HB_SCRIPT_GLAGOLITIC |  |
HB_SCRIPT_KHAROSHTHI |  |
HB_SCRIPT_NEW_TAI_LUE |  |
HB_SCRIPT_OLD_PERSIAN |  |
HB_SCRIPT_SYLOTI_NAGRI |  |
HB_SCRIPT_TIFINAGH |  |
HB_SCRIPT_BALINESE |  |
HB_SCRIPT_CUNEIFORM |  |
HB_SCRIPT_NKO |  |
HB_SCRIPT_PHAGS_PA |  |
HB_SCRIPT_PHOENICIAN |  |
HB_SCRIPT_CARIAN |  |
HB_SCRIPT_CHAM |  |
HB_SCRIPT_KAYAH_LI |  |
HB_SCRIPT_LEPCHA |  |
HB_SCRIPT_LYCIAN |  |
HB_SCRIPT_LYDIAN |  |
HB_SCRIPT_OL_CHIKI |  |
HB_SCRIPT_REJANG |  |
HB_SCRIPT_SAURASHTRA |  |
HB_SCRIPT_SUNDANESE |  |
HB_SCRIPT_VAI |  |
HB_SCRIPT_AVESTAN |  |
HB_SCRIPT_BAMUM |  |
HB_SCRIPT_EGYPTIAN_HIEROGLYPHS |  |
HB_SCRIPT_IMPERIAL_ARAMAIC |  |
HB_SCRIPT_INSCRIPTIONAL_PAHLAVI |  |
HB_SCRIPT_INSCRIPTIONAL_PARTHIAN |  |
HB_SCRIPT_JAVANESE |  |
HB_SCRIPT_KAITHI |  |
HB_SCRIPT_LISU |  |
HB_SCRIPT_MEETEI_MAYEK |  |
HB_SCRIPT_OLD_SOUTH_ARABIAN |  |
HB_SCRIPT_OLD_TURKIC |  |
HB_SCRIPT_SAMARITAN |  |
HB_SCRIPT_TAI_THAM |  |
HB_SCRIPT_TAI_VIET |  |
HB_SCRIPT_BATAK |  |
HB_SCRIPT_BRAHMI |  |
HB_SCRIPT_MANDAIC |  |
HB_SCRIPT_CHAKMA |  |
HB_SCRIPT_MEROITIC_CURSIVE |  |
HB_SCRIPT_MEROITIC_HIEROGLYPHS |  |
HB_SCRIPT_MIAO |  |
HB_SCRIPT_SHARADA |  |
HB_SCRIPT_SORA_SOMPENG |  |
HB_SCRIPT_TAKRI |  |
HB_SCRIPT_INVALID |  |
_HB_SCRIPT_MAX_VALUE |  |

### hb_tag_t

    typedef uint32_t hb_tag_t;

### hb_user_data_key_t

    typedef struct {
    } hb_user_data_key_t;

### hb_var_int_t