fribidi_join_arabic - do Arabic joining
Contents
Description
This function does the Arabic joining algorithm. Means, given Arabic joining types of the characters in
ar_props (don't worry, FriBidiJoiningType can be casted to FriBidiArabicProp automagically), this
function modifies this properties to grasp the effect of neighboring characters. You probably need this
information later to do Arabic shaping.
This function implements rules R1 to R7 inclusive (all rules) of the Arabic Cursive Joining algorithm of
the Unicode standard as available at http://www.unicode.org/versions/Unicode4.0.0/ch08.pdf#G7462. It
also interacts correctly with the bidirection algorithm as defined in Section
3.5 Shaping of the Unicode Bidirectional Algorithm available at
http://www.unicode.org/reports/tr9/#Shaping.
There are a few macros defined in fribidi-joining-types.h for querying the Arabic properties computed by
this function.
Name
fribidi_join_arabic - do Arabic joining
Parameters
constFriBidiCharType*bidi_types
Input list of bidi types as returned by fribidi_get_bidi_types().
Since there are 23 possible values for a constFriBidiCharType, they are not all listed here.
constFriBidiStrIndexlen
Input string length.
constFriBidiLevel*embedding_levels
Input list of embedding levels, as returned by fribidi_get_par_embedding_levels.
FriBidiArabicProp*ar_props
Arabic properties to analyze, initialized by joining types, as returned by
fribidi_get_joining_types.
See Also
fribidi_shape_arabic(3), fribidi_get_par_direction(3), fribidi_get_par_embedding_levels_ex(3),
fribidi_reorder_line(3), fribidi_get_bidi_type(3), fribidi_get_bidi_types(3),
fribidi_get_bidi_type_name(3), fribidi_debug_status(3), fribidi_set_debug(3),
fribidi_charset_to_unicode(3), fribidi_unicode_to_charset(3), fribidi_parse_charset(3),
fribidi_mirroring_status(3), fribidi_set_mirroring(3), fribidi_reorder_nsm_status(3),
fribidi_set_reorder_nsm(3), fribidi_log2vis_get_embedding_levels(3), fribidi_get_type(3),
fribidi_get_type_internal(3), fribidi_get_par_embedding_levels(3), fribidi_get_joining_type(3),
fribidi_get_joining_types(3), fribidi_get_joining_type_name(3), fribidi_get_mirror_char(3),
fribidi_shape_mirroring(3), fribidi_get_bracket(3), fribidi_get_bracket_types(3), fribidi_shape(3),
fribidi_remove_bidi_marks(3), fribidi_log2vis(3)
c2man fribidi-joining.h 25 September 2024 fribidi_join_arabic(3)
Synopsis
#include<fribidi.h>voidfribidi_join_arabic(constFriBidiCharType*bidi_types,constFriBidiStrIndexlen,constFriBidiLevel*embedding_levels,FriBidiArabicProp*ar_props);
