Provided by: libfribidi-dev_1.0.5-3.1_amd64 bug


       fribidi_join_arabic - do Arabic joining


       #include <fribidi.h>

       extern void fribidi_join_arabic
            const FriBidiCharType *bidi_types,
            const FriBidiStrIndex len,
            const FriBidiLevel *embedding_levels,
            FriBidiArabicProp *ar_props


       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


       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  It also interacts  correctly
       with the bidirection algorithm as defined in Section
       3.5     Shaping     of     the    Unicode    Bidirectional    Algorithm    available    at

       There are a  few  macros  defined  in  fribidi-joining-types.h  for  querying  the  Arabic
       properties computed by this function.


       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_remove_bidi_marks(3),       fribidi_log2vis(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)