Provided by: libfribidi-dev_0.19.2-1_amd64 bug


       fribidi_join_arabic - do Arabic joining


       #include <fribidi.h>

       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().

              Possible values for a const FriBidiCharType are as follows:
              FRIBIDI_TYPE_LTR  Left-To-Right letter.
              FRIBIDI_TYPE_RTL  Right-To-Left letter.
              FRIBIDI_TYPE_AL   Arabic Letter.
              FRIBIDI_TYPE_EN   European Numeral.
              FRIBIDI_TYPE_AN   Arabic Numeral.
              FRIBIDI_TYPE_ES   European number Separator.
              FRIBIDI_TYPE_ET   European number Terminator.
              FRIBIDI_TYPE_CS   Common Separator.
              FRIBIDI_TYPE_NSM  Non Spacing Mark.
              FRIBIDI_TYPE_BN   Boundary Neutral.
              FRIBIDI_TYPE_BS   Block Separator.
              FRIBIDI_TYPE_SS   Segment Separator.
              FRIBIDI_TYPE_WS   WhiteSpace.
              FRIBIDI_TYPE_ON   Other Neutral.
              FRIBIDI_TYPE_LRE  Left-to-Right Embedding.
              FRIBIDI_TYPE_RLE  Right-to-Left Embedding.
              FRIBIDI_TYPE_LRO  Left-to-Right Override.
              FRIBIDI_TYPE_RLO  Right-to-Left Override.
              FRIBIDI_TYPE_PDF  Pop Directional Flag.

       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,  initilized  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_charset_to_unicode(3),  fribidi_unicode_to_charset(3),   fribidi_parse_charset(3),
       fribidi_shape_arabic(3),                                     fribidi_get_par_direction(3),
       fribidi_get_par_embedding_levels(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_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_joining_type(3),                                 fribidi_get_joining_types(3),
       fribidi_get_joining_type_name(3), fribidi_get_mirror_char(3),  fribidi_shape_mirroring(3),