Next: , Up: Arabic shaping   [Contents][Index]


8.8.1 Joining type of Arabic characters

The joining type of a character describes on which of the left and right neighbour characters the character’s shape depends, and which of the two neighbour characters are rendered depending on this character.

The joining type has the following possible values:

Constant: int UC_JOINING_TYPE_U

“Non joining”: Characters of this joining type prohibit joining.

Constant: int UC_JOINING_TYPE_T

“Transparent”: Characters of this joining type are skipped when considering joining.

Constant: int UC_JOINING_TYPE_C

“Join causing”: Characters of this joining type cause their neighbour characters to change their shapes but don’t change their own shape.

Constant: int UC_JOINING_TYPE_L

“Left joining”: Characters of this joining type have two shapes, isolated and initial. Such characters currently don’t exist.

Constant: int UC_JOINING_TYPE_R

“Right joining”: Characters of this joining type have two shapes, isolated and final.

Constant: int UC_JOINING_TYPE_D

“Dual joining”: Characters of this joining type have four shapes, initial, medial, final, and isolated.

The following functions implement the association between a joining type and its name.

Function: const char * uc_joining_type_name (int joining_type)

Returns the name of a joining type.

Function: const char * uc_joining_type_long_name (int joining_type)

Returns the long name of a joining type.

Function: int uc_joining_type_byname (const char *joining_type_name)

Returns the joining type given by name, e.g. "D", or by long name, e.g. "Dual Joining. This lookup ignores spaces, underscores, or hyphens as word separators and is case-insignificant.

The following function gives the joining type of every Unicode character.

Function: int uc_joining_type (ucs4_t uc)

Returns the joining type of a Unicode character.


Next: Joining group of Arabic characters, Up: Arabic shaping   [Contents][Index]