hb-common

hb-common — Common data types

Functions

Types and Values

Includes

#include <hb.h>

Description

Common data types used across HarfBuzz are defined here.

Functions

hb_tag_from_string ()

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

Converts a string into an hb_tag_t. Valid tags are four characters. Shorter input strings will be padded with spaces. Longer input strings will be truncated.

Parameters

str

String to convert.

[array length=len][element-type uint8_t]

len

Length of str , or -1 if it is NULL-terminated

 

Returns

The hb_tag_t corresponding to str

Since: 0.9.2


hb_tag_to_string ()

void
hb_tag_to_string (hb_tag_t tag,
                  char *buf);

Converts an hb_tag_t to a string and returns it in buf . Strings will be four characters long.

Parameters

tag

hb_tag_t to convert

 

buf

Converted string.

[out caller-allocates][array fixed-size=4][element-type uint8_t]

Since: 0.9.5


hb_direction_from_string ()

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

Converts a string to an hb_direction_t.

Matching is loose and applies only to the first letter. For examples, "LTR" and "left-to-right" will both return HB_DIRECTION_LTR.

Unmatched strings will return HB_DIRECTION_INVALID.

Parameters

str

String to convert.

[array length=len][element-type uint8_t]

len

Length of str , or -1 if it is NULL-terminated

 

Returns

The hb_direction_t matching str

Since: 0.9.2


hb_direction_to_string ()

const char *
hb_direction_to_string (hb_direction_t direction);

Converts an hb_direction_t to a string.

Parameters

direction

The hb_direction_t to convert

 

Returns

The string corresponding to direction .

[transfer none]

Since: 0.9.2


hb_script_from_iso15924_tag ()

hb_script_t
hb_script_from_iso15924_tag (hb_tag_t tag);

Converts an ISO 15924 script tag to a corresponding hb_script_t.

Parameters

tag

an hb_tag_t representing an ISO 15924 tag.

 

Returns

An hb_script_t corresponding to the ISO 15924 tag.

Since: 0.9.2


hb_script_from_string ()

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

Converts a string str representing an ISO 15924 script tag to a corresponding hb_script_t. Shorthand for hb_tag_from_string() then hb_script_from_iso15924_tag().

Parameters

str

a string representing an ISO 15924 tag.

[array length=len][element-type uint8_t]

len

length of the str , or -1 if it is NULL-terminated.

 

Returns

An hb_script_t corresponding to the ISO 15924 tag.

Since: 0.9.2


hb_script_to_iso15924_tag ()

hb_tag_t
hb_script_to_iso15924_tag (hb_script_t script);

Converts an hb_script_t to a corresponding ISO 15924 script tag.

Parameters

script

an hb_script_t to convert.

 

Returns

An hb_tag_t representing an ISO 15924 script tag.

Since: 0.9.2


hb_script_get_horizontal_direction ()

hb_direction_t
hb_script_get_horizontal_direction (hb_script_t script);

Fetches the hb_direction_t of a script when it is set horizontally. All right-to-left scripts will return HB_DIRECTION_RTL. All left-to-right scripts will return HB_DIRECTION_LTR. Scripts that can be written either horizontally or vertically will return HB_DIRECTION_INVALID. Unknown scripts will return HB_DIRECTION_LTR.

Parameters

script

The hb_script_t to query

 

Returns

The horizontal hb_direction_t of script

Since: 0.9.2


hb_language_from_string ()

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

Converts str representing a BCP 47 language tag to the corresponding hb_language_t.

Parameters

str

a string representing a BCP 47 language tag.

[array length=len][element-type uint8_t]

len

length of the str , or -1 if it is NULL-terminated.

 

Returns

The hb_language_t corresponding to the BCP 47 language tag.

[transfer none]

Since: 0.9.2


hb_language_to_string ()

const char *
hb_language_to_string (hb_language_t language);

Converts an hb_language_t to a string.

Parameters

language

The hb_language_t to convert

 

Returns

A NULL-terminated string representing the language . Must not be freed by the caller.

[transfer none]

Since: 0.9.2


hb_language_get_default ()

hb_language_t
hb_language_get_default (void);

Fetch the default language from current locale.

Note that the first time this function is called, it calls "setlocale (LC_CTYPE, nullptr)" to fetch current locale. The underlying setlocale function is, in many implementations, NOT threadsafe. To avoid problems, call this function once before multiple threads can call it. This function is only used from hb_buffer_guess_segment_properties() by HarfBuzz itself.

Returns

The default language of the locale as an hb_language_t.

[transfer none]

Since: 0.9.2


hb_feature_from_string ()

hb_bool_t
hb_feature_from_string (const char *str,
                        int len,
                        hb_feature_t *feature);

Parses a string into a hb_feature_t.

The format for specifying feature strings follows. All valid CSS font-feature-settings values other than 'normal' and the global values are also accepted, though not documented below. CSS string escapes are not supported.

The range indices refer to the positions between Unicode characters. The position before the first character is always 0.

The format is Python-esque. Here is how it all works:

Syntax Value Start End  
Setting value:        
kern 1 0 Turn feature on
+kern 1 0 Turn feature on
-kern 0 0 Turn feature off
kern=0 0 0 Turn feature off
kern=1 1 0 Turn feature on
aalt=2 2 0 Choose 2nd alternate
Setting index:        
kern[] 1 0 Turn feature on
kern[:] 1 0 Turn feature on
kern[5:] 1 5 Turn feature on, partial
kern[:5] 1 0 5 Turn feature on, partial
kern[3:5] 1 3 5 Turn feature on, range
kern[3] 1 3 3+1 Turn feature on, single char
Mixing it all:        
aalt[3:5]=2 2 3 5 Turn 2nd alternate on for range

Parameters

str

a string to parse.

[array length=len][element-type uint8_t]

len

length of str , or -1 if string is NULL terminated

 

feature

the hb_feature_t to initialize with the parsed values.

[out]

Returns

true if str is successfully parsed, false otherwise

Since: 0.9.5


hb_feature_to_string ()

void
hb_feature_to_string (hb_feature_t *feature,
                      char *buf,
                      unsigned int size);

Converts a hb_feature_t into a NULL-terminated string in the format understood by hb_feature_from_string(). The client in responsible for allocating big enough size for buf , 128 bytes is more than enough.

Parameters

feature

an hb_feature_t to convert

 

buf

output string.

[array length=size][out]

size

the allocated size of buf

 

Since: 0.9.5


hb_variation_from_string ()

hb_bool_t
hb_variation_from_string (const char *str,
                          int len,
                          hb_variation_t *variation);

Parses a string into a hb_variation_t.

The format for specifying variation settings follows. All valid CSS font-variation-settings values other than 'normal' and 'inherited' are also accepted, though, not documented below.

The format is a tag, optionally followed by an equals sign, followed by a number. For example wght=500, or slnt=-7.5.

Parameters

str

a string to parse.

[array length=len][element-type uint8_t]

len

length of str , or -1 if string is NULL terminated

 

variation

the hb_variation_t to initialize with the parsed values.

[out]

Returns

true if str is successfully parsed, false otherwise

Since: 1.4.2


hb_variation_to_string ()

void
hb_variation_to_string (hb_variation_t *variation,
                        char *buf,
                        unsigned int size);

Converts an hb_variation_t into a NULL-terminated string in the format understood by hb_variation_from_string(). The client in responsible for allocating big enough size for buf , 128 bytes is more than enough.

Parameters

variation

an hb_variation_t to convert

 

buf

output string.

[array length=size][out]

size

the allocated size of buf

 

Since: 1.4.2


hb_destroy_func_t ()

void
(*hb_destroy_func_t) (void *user_data);

A virtual method for destroy user-data callbacks.

Parameters

user_data

the data to be destroyed

 

HB_TAG()

#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint32_t)(c1)&0xFF)<<24)|(((uint32_t)(c2)&0xFF)<<16)|(((uint32_t)(c3)&0xFF)<<8)|((uint32_t)(c4)&0xFF)))

Constructs an hb_tag_t from four character literals.

Parameters

c1

1st character of the tag

 

c2

2nd character of the tag

 

c3

3rd character of the tag

 

c4

4th character of the tag

 

HB_UNTAG()

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

Extracts four character literals from an hb_tag_t.

Parameters

tag

an hb_tag_t

 

Since: 0.6.0


HB_DIRECTION_REVERSE()

#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))

Reverses a text direction. Requires that the direction be valid.

Parameters

dir

hb_direction_t to reverse

 

HB_DIRECTION_IS_BACKWARD()

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

Tests whether a text direction moves backward (from right to left, or from bottom to top). Requires that the direction be valid.

Parameters

dir

hb_direction_t to test

 

HB_DIRECTION_IS_FORWARD()

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

Tests whether a text direction moves forward (from left to right, or from top to bottom). Requires that the direction be valid.

Parameters

dir

hb_direction_t to test

 

HB_DIRECTION_IS_HORIZONTAL()

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

Tests whether a text direction is horizontal. Requires that the direction be valid.

Parameters

dir

hb_direction_t to test

 

HB_DIRECTION_IS_VALID()

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

Tests whether a text direction is valid.

Parameters

dir

hb_direction_t to test

 

HB_DIRECTION_IS_VERTICAL()

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

Tests whether a text direction is vertical. Requires that the direction be valid.

Parameters

dir

hb_direction_t to test

 

Types and Values

hb_bool_t

typedef int hb_bool_t;

Data type for booleans.


hb_codepoint_t

typedef uint32_t hb_codepoint_t;

Data type for holding Unicode codepoints. Also used to hold glyph IDs.


enum hb_direction_t

The direction of a text segment or buffer.

A segment can also be tested for horizontal or vertical orientation (irrespective of specific direction) with HB_DIRECTION_IS_HORIZONTAL() or HB_DIRECTION_IS_VERTICAL().

Members

HB_DIRECTION_INVALID

Initial, unset direction.

 

HB_DIRECTION_LTR

Text is set horizontally from left to right.

 

HB_DIRECTION_RTL

Text is set horizontally from right to left.

 

HB_DIRECTION_TTB

Text is set vertically from top to bottom.

 

HB_DIRECTION_BTT

Text is set vertically from bottom to top.

 

hb_language_t

typedef const struct hb_language_impl_t *hb_language_t;

Data type for languages. Each hb_language_t corresponds to a BCP 47 language tag.


hb_feature_t

typedef struct {
  hb_tag_t      tag;
  uint32_t      value;
  unsigned int  start;
  unsigned int  end;
} hb_feature_t;

The hb_feature_t is the structure that holds information about requested feature application. The feature will be applied with the given value to all glyphs which are in clusters between start (inclusive) and end (exclusive). Setting start to HB_FEATURE_GLOBAL_START and end to HB_FEATURE_GLOBAL_END specifies that the feature always applies to the entire buffer.

Members

hb_tag_t tag;

The hb_tag_t tag of the feature

 

uint32_t value;

The value of the feature. 0 disables the feature, non-zero (usually 1) enables the feature. For features implemented as lookup type 3 (like 'salt') the value is a one based index into the alternates.

 

unsigned int start;

the cluster to start applying this feature setting (inclusive).

 

unsigned int end;

the cluster to end applying this feature setting (exclusive).

 

hb_variation_t

typedef struct {
  hb_tag_t tag;
  float    value;
} hb_variation_t;

Data type for holding variation data. Registered OpenType variation-axis tags are listed in OpenType Axis Tag Registry.

Members

hb_tag_t tag;

The hb_tag_t tag of the variation-axis name

 

float value;

The value of the variation axis

 

Since: 1.4.2


hb_mask_t

typedef uint32_t hb_mask_t;

Data type for bitmasks.


hb_position_t

typedef int32_t hb_position_t;

Data type for holding a single coordinate value. Contour points and other multi-dimensional data are stored as tuples of hb_position_t's.


hb_tag_t

typedef uint32_t hb_tag_t;

Data type for tag identifiers. Tags are four byte integers, each byte representing a character.

Tags are used to identify tables, design-variation axes, scripts, languages, font features, and baselines with human-readable names.


enum hb_script_t

Data type for scripts. Each hb_script_t's value is an hb_tag_t corresponding to the four-letter values defined by ISO 15924.

See also the Script (sc) property of the Unicode Character Database.

Members

HB_SCRIPT_COMMON

Zyyy

 

HB_SCRIPT_INHERITED

Zinh

 

HB_SCRIPT_UNKNOWN

Zzzz

 

HB_SCRIPT_ARABIC

Arab

 

HB_SCRIPT_ARMENIAN

Armn

 

HB_SCRIPT_BENGALI

Beng

 

HB_SCRIPT_CYRILLIC

Cyrl

 

HB_SCRIPT_DEVANAGARI

Deva

 

HB_SCRIPT_GEORGIAN

Geor

 

HB_SCRIPT_GREEK

Grek

 

HB_SCRIPT_GUJARATI

Gujr

 

HB_SCRIPT_GURMUKHI

Guru

 

HB_SCRIPT_HANGUL

Hang

 

HB_SCRIPT_HAN

Hani

 

HB_SCRIPT_HEBREW

Hebr

 

HB_SCRIPT_HIRAGANA

Hira

 

HB_SCRIPT_KANNADA

Knda

 

HB_SCRIPT_KATAKANA

Kana

 

HB_SCRIPT_LAO

Laoo

 

HB_SCRIPT_LATIN

Latn

 

HB_SCRIPT_MALAYALAM

Mlym

 

HB_SCRIPT_ORIYA

Orya

 

HB_SCRIPT_TAMIL

Taml

 

HB_SCRIPT_TELUGU

Telu

 

HB_SCRIPT_THAI

Thai

 

HB_SCRIPT_TIBETAN

Tibt

 

HB_SCRIPT_BOPOMOFO

Bopo

 

HB_SCRIPT_BRAILLE

Brai

 

HB_SCRIPT_CANADIAN_SYLLABICS

Cans

 

HB_SCRIPT_CHEROKEE

Cher

 

HB_SCRIPT_ETHIOPIC

Ethi

 

HB_SCRIPT_KHMER

Khmr

 

HB_SCRIPT_MONGOLIAN

Mong

 

HB_SCRIPT_MYANMAR

Mymr

 

HB_SCRIPT_OGHAM

Ogam

 

HB_SCRIPT_RUNIC

Runr

 

HB_SCRIPT_SINHALA

Sinh

 

HB_SCRIPT_SYRIAC

Syrc

 

HB_SCRIPT_THAANA

Thaa

 

HB_SCRIPT_YI

Yiii

 

HB_SCRIPT_DESERET

Dsrt

 

HB_SCRIPT_GOTHIC

Goth

 

HB_SCRIPT_OLD_ITALIC

Ital

 

HB_SCRIPT_BUHID

Buhd

 

HB_SCRIPT_HANUNOO

Hano

 

HB_SCRIPT_TAGALOG

Tglg

 

HB_SCRIPT_TAGBANWA

Tagb

 

HB_SCRIPT_CYPRIOT

Cprt

 

HB_SCRIPT_LIMBU

Limb

 

HB_SCRIPT_LINEAR_B

Linb

 

HB_SCRIPT_OSMANYA

Osma

 

HB_SCRIPT_SHAVIAN

Shaw

 

HB_SCRIPT_TAI_LE

Tale

 

HB_SCRIPT_UGARITIC

Ugar

 

HB_SCRIPT_BUGINESE

Bugi

 

HB_SCRIPT_COPTIC

Copt

 

HB_SCRIPT_GLAGOLITIC

Glag

 

HB_SCRIPT_KHAROSHTHI

Khar

 

HB_SCRIPT_NEW_TAI_LUE

Talu

 

HB_SCRIPT_OLD_PERSIAN

Xpeo

 

HB_SCRIPT_SYLOTI_NAGRI

Sylo

 

HB_SCRIPT_TIFINAGH

Tfng

 

HB_SCRIPT_BALINESE

Bali

 

HB_SCRIPT_CUNEIFORM

Xsux

 

HB_SCRIPT_NKO

Nkoo

 

HB_SCRIPT_PHAGS_PA

Phag

 

HB_SCRIPT_PHOENICIAN

Phnx

 

HB_SCRIPT_CARIAN

Cari

 

HB_SCRIPT_CHAM

Cham

 

HB_SCRIPT_KAYAH_LI

Kali

 

HB_SCRIPT_LEPCHA

Lepc

 

HB_SCRIPT_LYCIAN

Lyci

 

HB_SCRIPT_LYDIAN

Lydi

 

HB_SCRIPT_OL_CHIKI

Olck

 

HB_SCRIPT_REJANG

Rjng

 

HB_SCRIPT_SAURASHTRA

Saur

 

HB_SCRIPT_SUNDANESE

Sund

 

HB_SCRIPT_VAI

Vaii

 

HB_SCRIPT_AVESTAN

Avst

 

HB_SCRIPT_BAMUM

Bamu

 

HB_SCRIPT_EGYPTIAN_HIEROGLYPHS

Egyp

 

HB_SCRIPT_IMPERIAL_ARAMAIC

Armi

 

HB_SCRIPT_INSCRIPTIONAL_PAHLAVI

Phli

 

HB_SCRIPT_INSCRIPTIONAL_PARTHIAN

Prti

 

HB_SCRIPT_JAVANESE

Java

 

HB_SCRIPT_KAITHI

Kthi

 

HB_SCRIPT_LISU

Lisu

 

HB_SCRIPT_MEETEI_MAYEK

Mtei

 

HB_SCRIPT_OLD_SOUTH_ARABIAN

Sarb

 

HB_SCRIPT_OLD_TURKIC

Orkh

 

HB_SCRIPT_SAMARITAN

Samr

 

HB_SCRIPT_TAI_THAM

Lana

 

HB_SCRIPT_TAI_VIET

Tavt

 

HB_SCRIPT_BATAK

Batk

 

HB_SCRIPT_BRAHMI

Brah

 

HB_SCRIPT_MANDAIC

Mand

 

HB_SCRIPT_CHAKMA

Cakm

 

HB_SCRIPT_MEROITIC_CURSIVE

Merc

 

HB_SCRIPT_MEROITIC_HIEROGLYPHS

Mero

 

HB_SCRIPT_MIAO

Plrd

 

HB_SCRIPT_SHARADA

Shrd

 

HB_SCRIPT_SORA_SOMPENG

Sora

 

HB_SCRIPT_TAKRI

Takr

 

HB_SCRIPT_BASSA_VAH

Bass, Since: 0.9.30

 

HB_SCRIPT_CAUCASIAN_ALBANIAN

Aghb, Since: 0.9.30

 

HB_SCRIPT_DUPLOYAN

Dupl, Since: 0.9.30

 

HB_SCRIPT_ELBASAN

Elba, Since: 0.9.30

 

HB_SCRIPT_GRANTHA

Gran, Since: 0.9.30

 

HB_SCRIPT_KHOJKI

Khoj, Since: 0.9.30

 

HB_SCRIPT_KHUDAWADI

Sind, Since: 0.9.30

 

HB_SCRIPT_LINEAR_A

Lina, Since: 0.9.30

 

HB_SCRIPT_MAHAJANI

Mahj, Since: 0.9.30

 

HB_SCRIPT_MANICHAEAN

Mani, Since: 0.9.30

 

HB_SCRIPT_MENDE_KIKAKUI

Mend, Since: 0.9.30

 

HB_SCRIPT_MODI

Modi, Since: 0.9.30

 

HB_SCRIPT_MRO

Mroo, Since: 0.9.30

 

HB_SCRIPT_NABATAEAN

Nbat, Since: 0.9.30

 

HB_SCRIPT_OLD_NORTH_ARABIAN

Narb, Since: 0.9.30

 

HB_SCRIPT_OLD_PERMIC

Perm, Since: 0.9.30

 

HB_SCRIPT_PAHAWH_HMONG

Hmng, Since: 0.9.30

 

HB_SCRIPT_PALMYRENE

Palm, Since: 0.9.30

 

HB_SCRIPT_PAU_CIN_HAU

Pauc, Since: 0.9.30

 

HB_SCRIPT_PSALTER_PAHLAVI

Phlp, Since: 0.9.30

 

HB_SCRIPT_SIDDHAM

Sidd, Since: 0.9.30

 

HB_SCRIPT_TIRHUTA

Tirh, Since: 0.9.30

 

HB_SCRIPT_WARANG_CITI

Wara, Since: 0.9.30

 

HB_SCRIPT_AHOM

Ahom, Since: 0.9.30

 

HB_SCRIPT_ANATOLIAN_HIEROGLYPHS

Hluw, Since: 0.9.30

 

HB_SCRIPT_HATRAN

Hatr, Since: 0.9.30

 

HB_SCRIPT_MULTANI

Mult, Since: 0.9.30

 

HB_SCRIPT_OLD_HUNGARIAN

Hung, Since: 0.9.30

 

HB_SCRIPT_SIGNWRITING

Sgnw, Since: 0.9.30

 

HB_SCRIPT_ADLAM

Adlm, Since: 1.3.0

 

HB_SCRIPT_BHAIKSUKI

Bhks, Since: 1.3.0

 

HB_SCRIPT_MARCHEN

Marc, Since: 1.3.0

 

HB_SCRIPT_OSAGE

Osge, Since: 1.3.0

 

HB_SCRIPT_TANGUT

Tang, Since: 1.3.0

 

HB_SCRIPT_NEWA

Newa, Since: 1.3.0

 

HB_SCRIPT_MASARAM_GONDI

Gonm, Since: 1.6.0

 

HB_SCRIPT_NUSHU

Nshu, Since: 1.6.0

 

HB_SCRIPT_SOYOMBO

Soyo, Since: 1.6.0

 

HB_SCRIPT_ZANABAZAR_SQUARE

Zanb, Since: 1.6.0

 

HB_SCRIPT_DOGRA

Dogr, Since: 1.8.0

 

HB_SCRIPT_GUNJALA_GONDI

Gong, Since: 1.8.0

 

HB_SCRIPT_HANIFI_ROHINGYA

Rohg, Since: 1.8.0

 

HB_SCRIPT_MAKASAR

Maka, Since: 1.8.0

 

HB_SCRIPT_MEDEFAIDRIN

Medf, Since: 1.8.0

 

HB_SCRIPT_OLD_SOGDIAN

Sogo, Since: 1.8.0

 

HB_SCRIPT_SOGDIAN

Sogd, Since: 1.8.0

 

HB_SCRIPT_ELYMAIC

Elym, Since: 2.4.0

 

HB_SCRIPT_NANDINAGARI

Nand, Since: 2.4.0

 

HB_SCRIPT_NYIAKENG_PUACHUE_HMONG

Hmnp, Since: 2.4.0

 

HB_SCRIPT_WANCHO

Wcho, Since: 2.4.0

 

HB_SCRIPT_CHORASMIAN

Chrs, Since: 2.6.7

 

HB_SCRIPT_DIVES_AKURU

Diak, Since: 2.6.7

 

HB_SCRIPT_KHITAN_SMALL_SCRIPT

Kits, Since: 2.6.7

 

HB_SCRIPT_YEZIDI

Yezi, Since: 2.6.7

 

HB_SCRIPT_CYPRO_MINOAN

Cpmn, Since: 3.0.0

 

HB_SCRIPT_OLD_UYGHUR

Ougr, Since: 3.0.0

 

HB_SCRIPT_TANGSA

Tnsa, Since: 3.0.0

 

HB_SCRIPT_TOTO

Toto, Since: 3.0.0

 

HB_SCRIPT_VITHKUQI

Vith, Since: 3.0.0

 

HB_SCRIPT_INVALID

No script set

 

hb_user_data_key_t

typedef struct {
} hb_user_data_key_t;

Data structure for holding user-data keys.


HB_TAG_NONE

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

Unset hb_tag_t.


HB_TAG_MAX

#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)

Maximum possible unsigned hb_tag_t.

Since: 0.9.26


HB_TAG_MAX_SIGNED

#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)

Maximum possible signed hb_tag_t.

Since: 0.9.33


HB_LANGUAGE_INVALID

#define HB_LANGUAGE_INVALID ((hb_language_t) 0)

An unset hb_language_t.

Since: 0.6.0


HB_FEATURE_GLOBAL_END

#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)

Special setting for hb_feature_t.end to apply the feature from to the end of the buffer.

Since: 2.0.0


HB_FEATURE_GLOBAL_START

#define HB_FEATURE_GLOBAL_START 0

Special setting for hb_feature_t.start to apply the feature from the start of the buffer.

Since: 2.0.0