Imported Upstream version 0.19.7
[platform/upstream/fribidi.git] / doc / fribidi_join_arabic.3
1 .\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
2 .\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
3 .TH "fribidi_join_arabic" 3 "6 December 2012" "GNU FriBidi 0.19.7" "Programmer's Manual"
4 .SH "NAME"
5 fribidi_join_arabic \- do Arabic joining
6 .SH "SYNOPSIS"
7 .ft B
8 #include <fribidi.h>
9 .sp
10 void fribidi_join_arabic
11 .br
12 (
13 .br
14         const FriBidiCharType *bidi_types,
15 .br
16         const FriBidiStrIndex len,
17 .br
18         const FriBidiLevel *embedding_levels,
19 .br
20         FriBidiArabicProp *ar_props
21 .br
22 );
23 .ft R
24 .SH "PARAMETERS"
25 .TP
26 .B "const FriBidiCharType *bidi_types"
27 Input list of bidi types as
28 returned by
29 fribidi_get_bidi_types().
30 .sp
31 Possible values for a \fBconst FriBidiCharType\fR are as follows:
32 .RS 0.75in
33 .PD 0
34 .ft B
35 .nr TL \w'FRIBIDI_TYPE_LTR'u+0.2i
36 .ft R
37 .TP \n(TLu
38 \fBFRIBIDI_TYPE_LTR\fR
39 Left-To-Right letter.
40 .TP \n(TLu
41 \fBFRIBIDI_TYPE_RTL\fR
42 Right-To-Left letter.
43 .TP \n(TLu
44 \fBFRIBIDI_TYPE_AL\fR
45 Arabic Letter.
46 .TP \n(TLu
47 \fBFRIBIDI_TYPE_EN\fR
48 European Numeral.
49 .TP \n(TLu
50 \fBFRIBIDI_TYPE_AN\fR
51 Arabic Numeral.
52 .TP \n(TLu
53 \fBFRIBIDI_TYPE_ES\fR
54 European number Separator.
55 .TP \n(TLu
56 \fBFRIBIDI_TYPE_ET\fR
57 European number Terminator.
58 .TP \n(TLu
59 \fBFRIBIDI_TYPE_CS\fR
60 Common Separator.
61 .TP \n(TLu
62 \fBFRIBIDI_TYPE_NSM\fR
63 Non Spacing Mark.
64 .TP \n(TLu
65 \fBFRIBIDI_TYPE_BN\fR
66 Boundary Neutral.
67 .TP \n(TLu
68 \fBFRIBIDI_TYPE_BS\fR
69 Block Separator.
70 .TP \n(TLu
71 \fBFRIBIDI_TYPE_SS\fR
72 Segment Separator.
73 .TP \n(TLu
74 \fBFRIBIDI_TYPE_WS\fR
75 WhiteSpace.
76 .TP \n(TLu
77 \fBFRIBIDI_TYPE_ON\fR
78 Other Neutral.
79 .TP \n(TLu
80 \fBFRIBIDI_TYPE_LRE\fR
81 Left-to-Right Embedding.
82 .TP \n(TLu
83 \fBFRIBIDI_TYPE_RLE\fR
84 Right-to-Left Embedding.
85 .TP \n(TLu
86 \fBFRIBIDI_TYPE_LRO\fR
87 Left-to-Right Override.
88 .TP \n(TLu
89 \fBFRIBIDI_TYPE_RLO\fR
90 Right-to-Left Override.
91 .TP \n(TLu
92 \fBFRIBIDI_TYPE_PDF\fR
93 Pop Directional Flag.
94 .RE
95 .PD
96 .TP
97 .B "const FriBidiStrIndex len"
98 Input string length.
99 .TP
100 .B "const FriBidiLevel *embedding_levels"
101 Input list of embedding
102 levels, as returned by
103 fribidi_get_par_embedding_levels.
104 .TP
105 .B "FriBidiArabicProp *ar_props"
106 Arabic properties to analyze, initilized by
107 joining types, as returned by
108 fribidi_get_joining_types.
109 .SH "DESCRIPTION"
110 This function does the Arabic joining algorithm.  Means, given Arabic
111 joining types of the characters in ar_props (don't worry,
112 FriBidiJoiningType can be casted to FriBidiArabicProp automagically), this
113 function modifies this properties to grasp the effect of neighboring
114 characters.  You probably need this information later to do Arabic shaping.
115
116 This function implements rules R1 to R7 inclusive (all rules) of the Arabic
117 Cursive Joining algorithm of the Unicode standard as available at
118 http://www.unicode.org/versions/Unicode4.0.0/ch08.pdf#G7462.  It also
119 interacts correctly with the bidirection algorithm as defined in Section
120 .br
121 3.5 Shaping of the Unicode Bidirectional Algorithm available at
122 http://www.unicode.org/reports/tr9/#Shaping.
123
124 There are a few macros defined in fribidi-joining-types.h for querying the
125 Arabic properties computed by this function.
126 .SH "SEE ALSO"
127 fribidi_charset_to_unicode(3),
128 fribidi_unicode_to_charset(3),
129 fribidi_parse_charset(3),
130 fribidi_shape_arabic(3),
131 fribidi_get_par_direction(3),
132 fribidi_get_par_embedding_levels(3),
133 fribidi_reorder_line(3),
134 fribidi_get_bidi_type(3),
135 fribidi_get_bidi_types(3),
136 fribidi_get_bidi_type_name(3),
137 fribidi_debug_status(3),
138 fribidi_mirroring_status(3),
139 fribidi_set_mirroring(3),
140 fribidi_reorder_nsm_status(3),
141 fribidi_set_reorder_nsm(3),
142 fribidi_log2vis_get_embedding_levels(3),
143 fribidi_get_type(3),
144 fribidi_get_type_internal(3),
145 fribidi_remove_bidi_marks(3),
146 fribidi_log2vis(3),
147 fribidi_get_joining_type(3),
148 fribidi_get_joining_types(3),
149 fribidi_get_joining_type_name(3),
150 fribidi_get_mirror_char(3),
151 fribidi_shape_mirroring(3),
152 fribidi_shape(3)