Man Linux: Main Page and Category List

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

              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 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_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), fribidi_shape(3)