1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
.TH "fribidi_reorder_line" 3 "25 September 2024" "c2man fribidi-bidi.h" "Programmer's Manual"
.SH "NAME"
fribidi_reorder_line \- reorder a line of logical string to visual
.SH "SYNOPSIS"
.ft B
#include <fribidi.h>
.sp
FriBidiLevel fribidi_reorder_line
.br
(
.br
FriBidiFlags flags,
.br
const FriBidiCharType *bidi_types,
.br
const FriBidiStrIndex len,
.br
const FriBidiStrIndex off,
.br
const FriBidiParType base_dir,
.br
FriBidiLevel *embedding_levels,
.br
FriBidiChar *visual_str,
.br
FriBidiStrIndex *map
.br
);
.ft R
.SH "PARAMETERS"
.TP
.B "FriBidiFlags flags"
Reorder flags.
.TP
.B "const FriBidiCharType *bidi_types"
Input list of bidi types as returned by
fribidi_get_bidi_types().
.sp
Since there are 23 possible values for a \fBconst FriBidiCharType\fR, they are not all listed here.
.TP
.B "const FriBidiStrIndex len"
Input length of the line.
.TP
.B "const FriBidiStrIndex off"
Input offset of the beginning of the line
in the paragraph.
.TP
.B "const FriBidiParType base_dir"
Resolved paragraph base direction.
.sp
Possible values for a \fBconst FriBidiParType\fR are as follows:
.RS 0.75in
.PD 0
.ft B
.nr TL \w'FRIBIDI_PAR_WLTR'u+0.2i
.ft R
.TP \n(TLu
\fBFRIBIDI_PAR_LTR\fR
Left-To-Right paragraph.
.TP \n(TLu
\fBFRIBIDI_PAR_RTL\fR
Right-To-Left paragraph.
.TP \n(TLu
\fBFRIBIDI_PAR_ON\fR
DirectiOn-Neutral paragraph.
.TP \n(TLu
\fBFRIBIDI_PAR_WLTR\fR
Weak Left To Right paragraph.
.TP \n(TLu
\fBFRIBIDI_PAR_WRTL\fR
Weak Right To Left paragraph.
.RE
.PD
.TP
.B "FriBidiLevel *embedding_levels"
Input list of embedding levels,
as returned by
fribidi_get_par_embedding_levels.
.TP
.B "FriBidiChar *visual_str"
Visual string to reorder.
.TP
.B "FriBidiStrIndex *map"
A map of string indices which is reordered
to reflect where each glyph ends up.
.SH "DESCRIPTION"
This function reorders the characters in a line of text from logical to
final visual order. This function implements part 4 of rule L1, and rules
L2 and L3 of the Unicode Bidirectional Algorithm available at
http://www.unicode.org/reports/tr9/#Reordering_Resolved_Levels.
As a side effect it also sets position maps if not NULL.
You should provide the resolved paragraph direction and embedding levels as
set by fribidi_get_par_embedding_levels(). Also note that the embedding
levels may change a bit. To be exact, the embedding level of any sequence
of white space at the end of line is reset to the paragraph embedding level
(That is part 4 of rule L1).
Note that the bidi types and embedding levels are not reordered. You can
reorder these (or any other) arrays using the map later. The user is
responsible to initialize map to something sensible, like an identity
mapping, or pass NULL if no map is needed.
There is an optional part to this function, which is whether non-spacing
marks for right-to-left parts of the text should be reordered to come after
their base characters in the visual string or not. Most rendering engines
expect this behavior, but console-based systems for example do not like it.
This is controlled by the FRIBIDI_FLAG_REORDER_NSM flag. The flag is on
in FRIBIDI_FLAGS_DEFAULT.
.SH "RETURNS"
Maximum level found in this line plus one, or zero if any error
occurred (memory allocation failure most probably).
.SH "SEE ALSO"
fribidi_shape_arabic(3),
fribidi_get_par_direction(3),
fribidi_get_par_embedding_levels_ex(3),
fribidi_get_bidi_type(3),
fribidi_get_bidi_types(3),
fribidi_get_bidi_type_name(3),
fribidi_debug_status(3),
fribidi_set_debug(3),
fribidi_charset_to_unicode(3),
fribidi_unicode_to_charset(3),
fribidi_parse_charset(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_get_par_embedding_levels(3),
fribidi_join_arabic(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_get_bracket(3),
fribidi_get_bracket_types(3),
fribidi_shape(3),
fribidi_remove_bidi_marks(3),
fribidi_log2vis(3)
|