1fribidi_join_arabic(3) Programmer's Manual fribidi_join_arabic(3)
2
3
4
6 fribidi_join_arabic - do Arabic joining
7
9 #include <fribidi.h>
10
11 void fribidi_join_arabic
12 (
13 const FriBidiCharType *bidi_types,
14 const FriBidiStrIndex len,
15 const FriBidiLevel *embedding_levels,
16 FriBidiArabicProp *ar_props
17 );
18
20 const FriBidiCharType *bidi_types
21 Input list of bidi types as returned by
22 fribidi_get_bidi_types().
23
24 Possible values for a const FriBidiCharType are as follows:
25 FRIBIDI_TYPE_LTR Left-To-Right letter.
26 FRIBIDI_TYPE_RTL Right-To-Left letter.
27 FRIBIDI_TYPE_AL Arabic Letter.
28 FRIBIDI_TYPE_EN European Numeral.
29 FRIBIDI_TYPE_AN Arabic Numeral.
30 FRIBIDI_TYPE_ES European number Separator.
31 FRIBIDI_TYPE_ET European number Terminator.
32 FRIBIDI_TYPE_CS Common Separator.
33 FRIBIDI_TYPE_NSM Non Spacing Mark.
34 FRIBIDI_TYPE_BN Boundary Neutral.
35 FRIBIDI_TYPE_BS Block Separator.
36 FRIBIDI_TYPE_SS Segment Separator.
37 FRIBIDI_TYPE_WS WhiteSpace.
38 FRIBIDI_TYPE_ON Other Neutral.
39 FRIBIDI_TYPE_LRE Left-to-Right Embedding.
40 FRIBIDI_TYPE_RLE Right-to-Left Embedding.
41 FRIBIDI_TYPE_LRO Left-to-Right Override.
42 FRIBIDI_TYPE_RLO Right-to-Left Override.
43 FRIBIDI_TYPE_PDF Pop Directional Flag.
44
45 const FriBidiStrIndex len
46 Input string length.
47
48 const FriBidiLevel *embedding_levels
49 Input list of embedding levels, as returned by
50 fribidi_get_par_embedding_levels.
51
52 FriBidiArabicProp *ar_props
53 Arabic properties to analyze, initilized by joining types, as
54 returned by fribidi_get_joining_types.
55
57 This function does the Arabic joining algorithm. Means, given Arabic
58 joining types of the characters in ar_props (don't worry, FriBidiJoin‐
59 ingType can be casted to FriBidiArabicProp automagically), this func‐
60 tion modifies this properties to grasp the effect of neighboring char‐
61 acters. You probably need this information later to do Arabic shaping.
62
63 This function implements rules R1 to R7 inclusive (all rules) of the
64 Arabic Cursive Joining algorithm of the Unicode standard as available
65 at http://www.unicode.org/versions/Unicode4.0.0/ch08.pdf#G7462. It
66 also interacts correctly with the bidirection algorithm as defined in
67 Section
68 3.5 Shaping of the Unicode Bidirectional Algorithm available at
69 http://www.unicode.org/reports/tr9/#Shaping.
70
71 There are a few macros defined in fribidi-joining-types.h for querying
72 the Arabic properties computed by this function.
73
75 fribidi_charset_to_unicode(3), fribidi_unicode_to_charset(3),
76 fribidi_parse_charset(3), fribidi_shape_arabic(3),
77 fribidi_get_par_direction(3), fribidi_get_par_embedding_levels(3),
78 fribidi_reorder_line(3), fribidi_get_bidi_type(3),
79 fribidi_get_bidi_types(3), fribidi_get_bidi_type_name(3),
80 fribidi_debug_status(3), fribidi_mirroring_status(3), fribidi_set_mir‐
81 roring(3), fribidi_reorder_nsm_status(3), fribidi_set_reorder_nsm(3),
82 fribidi_log2vis_get_embedding_levels(3), fribidi_get_type(3),
83 fribidi_get_type_internal(3), fribidi_remove_bidi_marks(3),
84 fribidi_log2vis(3), fribidi_get_joining_type(3), fribidi_get_join‐
85 ing_types(3), fribidi_get_joining_type_name(3), fribidi_get_mir‐
86 ror_char(3), fribidi_shape_mirroring(3), fribidi_shape(3)
87
88
89
90GNU FriBidi 0.19.2 30 January 2006 fribidi_join_arabic(3)