DragonFly On-Line Manual Pages
fribidi_join_arabic(3) Programmer's Manual fribidi_join_arabic(3)
NAME
fribidi_join_arabic - do Arabic joining
SYNOPSIS
#include <fribidi.h>
void fribidi_join_arabic
(
const FriBidiCharType *bidi_types,
const FriBidiStrIndex len,
const FriBidiLevel *embedding_levels,
FriBidiArabicProp *ar_props
);
PARAMETERS
const FriBidiCharType *bidi_types
Input list of bidi types as returned by
fribidi_get_bidi_types().
Since there are 23 possible values for a const FriBidiCharType,
they are not all listed here.
const FriBidiStrIndex len
Input string length.
const FriBidiLevel *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.
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.
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 20 July 2018 fribidi_join_arabic(3)