1 .\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
2 .\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
3 .TH "fribidi_reorder_line" 3 "25 August 2012" "GNU FriBidi 0.19.3" "Programmer's Manual"
5 fribidi_reorder_line \- reorder a line of logical string to visual
10 FriBidiLevel fribidi_reorder_line
16 const FriBidiCharType *bidi_types,
18 const FriBidiStrIndex len,
20 const FriBidiStrIndex off,
22 const FriBidiParType base_dir,
24 FriBidiLevel *embedding_levels,
26 FriBidiChar *visual_str,
34 .B "FriBidiFlags flags"
37 .B "const FriBidiCharType *bidi_types"
38 Input list of bidi types as returned by
39 fribidi_get_bidi_types().
41 Possible values for a \fBconst FriBidiCharType\fR are as follows:
45 .nr TL \w'FRIBIDI_TYPE_LTR'u+0.2i
48 \fBFRIBIDI_TYPE_LTR\fR
51 \fBFRIBIDI_TYPE_RTL\fR
64 European number Separator.
67 European number Terminator.
72 \fBFRIBIDI_TYPE_NSM\fR
90 \fBFRIBIDI_TYPE_LRE\fR
91 Left-to-Right Embedding.
93 \fBFRIBIDI_TYPE_RLE\fR
94 Right-to-Left Embedding.
96 \fBFRIBIDI_TYPE_LRO\fR
97 Left-to-Right Override.
99 \fBFRIBIDI_TYPE_RLO\fR
100 Right-to-Left Override.
102 \fBFRIBIDI_TYPE_PDF\fR
103 Pop Directional Flag.
107 .B "const FriBidiStrIndex len"
108 Input length of the line.
110 .B "const FriBidiStrIndex off"
111 Input offset of the beginning of the line
114 .B "const FriBidiParType base_dir"
115 Resolved paragraph base direction.
117 Possible values for a \fBconst FriBidiParType\fR are as follows:
121 .nr TL \w'FRIBIDI_PAR_WLTR'u+0.2i
124 \fBFRIBIDI_PAR_LTR\fR
125 Left-To-Right paragraph.
127 \fBFRIBIDI_PAR_RTL\fR
128 Right-To-Left paragraph.
131 DirectiOn-Neutral paragraph.
133 \fBFRIBIDI_PAR_WLTR\fR
134 Weak Left To Right paragraph.
136 \fBFRIBIDI_PAR_WRTL\fR
137 Weak Right To Left paragraph.
141 .B "FriBidiLevel *embedding_levels"
142 Input list of embedding levels,
144 fribidi_get_par_embedding_levels.
146 .B "FriBidiChar *visual_str"
147 Visual string to reorder.
149 .B "FriBidiStrIndex *map"
150 A map of string indices which is reordered
151 to reflect where each glyph ends up.
153 This function reorders the characters in a line of text from logical to
154 final visual order. This function implements part 4 of rule L1, and rules
155 L2 and L3 of the Unicode Bidirectional Algorithm available at
156 http://www.unicode.org/reports/tr9/#Reordering_Resolved_Levels.
158 As a side effect it also sets position maps if not NULL.
160 You should provide the resolved paragraph direction and embedding levels as
161 set by fribidi_get_par_embedding_levels(). Also note that the embedding
162 levels may change a bit. To be exact, the embedding level of any sequence
163 of white space at the end of line is reset to the paragraph embedding level
164 (That is part 4 of rule L1).
166 Note that the bidi types and embedding levels are not reordered. You can
167 reorder these (or any other) arrays using the map later. The user is
168 responsible to initialize map to something sensible, like an identity
169 mapping, or pass NULL if no map is needed.
171 There is an optional part to this function, which is whether non-spacing
172 marks for right-to-left parts of the text should be reordered to come after
173 their base characters in the visual string or not. Most rendering engines
174 expect this behavior, but console-based systems for example do not like it.
175 This is controlled by the FRIBIDI_FLAG_REORDER_NSM flag. The flag is on
176 in FRIBIDI_FLAGS_DEFAULT.
178 Maximum level found in this line plus one, or zero if any error
179 occured (memory allocation failure most probably).
181 fribidi_charset_to_unicode(3),
182 fribidi_unicode_to_charset(3),
183 fribidi_parse_charset(3),
184 fribidi_shape_arabic(3),
185 fribidi_get_par_direction(3),
186 fribidi_get_par_embedding_levels(3),
187 fribidi_get_bidi_type(3),
188 fribidi_get_bidi_types(3),
189 fribidi_get_bidi_type_name(3),
190 fribidi_debug_status(3),
191 fribidi_mirroring_status(3),
192 fribidi_set_mirroring(3),
193 fribidi_reorder_nsm_status(3),
194 fribidi_set_reorder_nsm(3),
195 fribidi_log2vis_get_embedding_levels(3),
197 fribidi_get_type_internal(3),
198 fribidi_remove_bidi_marks(3),
200 fribidi_join_arabic(3),
201 fribidi_get_joining_type(3),
202 fribidi_get_joining_types(3),
203 fribidi_get_joining_type_name(3),
204 fribidi_get_mirror_char(3),
205 fribidi_shape_mirroring(3),