bc48d480ed44e5edf350ca97c71335ff06fd47d1
[platform/upstream/fribidi.git] / doc / fribidi_get_par_embedding_levels.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_get_par_embedding_levels" 3 "2 December 2012" "GNU FriBidi 0.19.4" "Programmer's Manual"
4 .SH "NAME"
5 fribidi_get_par_embedding_levels \- get bidi embedding levels of a paragraph
6 .SH "SYNOPSIS"
7 .ft B
8 #include <fribidi.h>
9 .sp
10 FriBidiLevel fribidi_get_par_embedding_levels
11 .br
12 (
13 .br
14         const FriBidiCharType *bidi_types,
15 .br
16         const FriBidiStrIndex len,
17 .br
18         FriBidiParType *pbase_dir,
19 .br
20         FriBidiLevel *embedding_levels
21 .br
22 );
23 .ft R
24 .SH "PARAMETERS"
25 .TP
26 .B "const FriBidiCharType *bidi_types"
27 Input list of bidi types as returned by
28 fribidi_get_bidi_types().
29 .sp
30 Possible values for a \fBconst FriBidiCharType\fR are as follows:
31 .RS 0.75in
32 .PD 0
33 .ft B
34 .nr TL \w'FRIBIDI_TYPE_LTR'u+0.2i
35 .ft R
36 .TP \n(TLu
37 \fBFRIBIDI_TYPE_LTR\fR
38 Left-To-Right letter.
39 .TP \n(TLu
40 \fBFRIBIDI_TYPE_RTL\fR
41 Right-To-Left letter.
42 .TP \n(TLu
43 \fBFRIBIDI_TYPE_AL\fR
44 Arabic Letter.
45 .TP \n(TLu
46 \fBFRIBIDI_TYPE_EN\fR
47 European Numeral.
48 .TP \n(TLu
49 \fBFRIBIDI_TYPE_AN\fR
50 Arabic Numeral.
51 .TP \n(TLu
52 \fBFRIBIDI_TYPE_ES\fR
53 European number Separator.
54 .TP \n(TLu
55 \fBFRIBIDI_TYPE_ET\fR
56 European number Terminator.
57 .TP \n(TLu
58 \fBFRIBIDI_TYPE_CS\fR
59 Common Separator.
60 .TP \n(TLu
61 \fBFRIBIDI_TYPE_NSM\fR
62 Non Spacing Mark.
63 .TP \n(TLu
64 \fBFRIBIDI_TYPE_BN\fR
65 Boundary Neutral.
66 .TP \n(TLu
67 \fBFRIBIDI_TYPE_BS\fR
68 Block Separator.
69 .TP \n(TLu
70 \fBFRIBIDI_TYPE_SS\fR
71 Segment Separator.
72 .TP \n(TLu
73 \fBFRIBIDI_TYPE_WS\fR
74 WhiteSpace.
75 .TP \n(TLu
76 \fBFRIBIDI_TYPE_ON\fR
77 Other Neutral.
78 .TP \n(TLu
79 \fBFRIBIDI_TYPE_LRE\fR
80 Left-to-Right Embedding.
81 .TP \n(TLu
82 \fBFRIBIDI_TYPE_RLE\fR
83 Right-to-Left Embedding.
84 .TP \n(TLu
85 \fBFRIBIDI_TYPE_LRO\fR
86 Left-to-Right Override.
87 .TP \n(TLu
88 \fBFRIBIDI_TYPE_RLO\fR
89 Right-to-Left Override.
90 .TP \n(TLu
91 \fBFRIBIDI_TYPE_PDF\fR
92 Pop Directional Flag.
93 .RE
94 .PD
95 .TP
96 .B "const FriBidiStrIndex len"
97 Input string length of the paragraph.
98 .TP
99 .B "FriBidiParType *pbase_dir"
100 Requested and resolved paragraph
101 base direction.
102 .sp
103 Possible values for a \fBFriBidiParType\fR are as follows:
104 .RS 0.75in
105 .PD 0
106 .ft B
107 .nr TL \w'FRIBIDI_PAR_WLTR'u+0.2i
108 .ft R
109 .TP \n(TLu
110 \fBFRIBIDI_PAR_LTR\fR
111 Left-To-Right paragraph.
112 .TP \n(TLu
113 \fBFRIBIDI_PAR_RTL\fR
114 Right-To-Left paragraph.
115 .TP \n(TLu
116 \fBFRIBIDI_PAR_ON\fR
117 DirectiOn-Neutral paragraph.
118 .TP \n(TLu
119 \fBFRIBIDI_PAR_WLTR\fR
120 Weak Left To Right paragraph.
121 .TP \n(TLu
122 \fBFRIBIDI_PAR_WRTL\fR
123 Weak Right To Left paragraph.
124 .RE
125 .PD
126 .TP
127 .B "FriBidiLevel *embedding_levels"
128 Output list of embedding levels.
129 .SH "DESCRIPTION"
130 This function finds the bidi embedding levels of a single paragraph,
131 as defined by the Unicode Bidirectional Algorithm available at
132 http://www.unicode.org/reports/tr9/.  This function implements rules P2 to
133 I1 inclusive, and parts 1 to 3 of L1, except for rule X9 which is
134 implemented in fribidi_remove_bidi_marks().  Part 4 of L1 is implemented
135 in fribidi_reorder_line().
136
137 There are a few macros defined in fribidi-bidi-types.h to work with this
138 embedding levels.
139 .SH "RETURNS"
140 Maximum level found plus one, or zero if any error occured
141 (memory allocation failure most probably).
142 .SH "SEE ALSO"
143 fribidi_charset_to_unicode(3),
144 fribidi_unicode_to_charset(3),
145 fribidi_parse_charset(3),
146 fribidi_shape_arabic(3),
147 fribidi_get_par_direction(3),
148 fribidi_reorder_line(3),
149 fribidi_get_bidi_type(3),
150 fribidi_get_bidi_types(3),
151 fribidi_get_bidi_type_name(3),
152 fribidi_debug_status(3),
153 fribidi_mirroring_status(3),
154 fribidi_set_mirroring(3),
155 fribidi_reorder_nsm_status(3),
156 fribidi_set_reorder_nsm(3),
157 fribidi_log2vis_get_embedding_levels(3),
158 fribidi_get_type(3),
159 fribidi_get_type_internal(3),
160 fribidi_remove_bidi_marks(3),
161 fribidi_log2vis(3),
162 fribidi_join_arabic(3),
163 fribidi_get_joining_type(3),
164 fribidi_get_joining_types(3),
165 fribidi_get_joining_type_name(3),
166 fribidi_get_mirror_char(3),
167 fribidi_shape_mirroring(3),
168 fribidi_shape(3)