Blame doc/fribidi_reorder_line.3

Packit Service 12e4cd
.\" WARNING! THIS FILE WAS GENERATED AUTOMATICALLY BY c2man!
Packit Service 12e4cd
.\" DO NOT EDIT! CHANGES MADE TO THIS FILE WILL BE LOST!
Packit Service 12e4cd
.TH "fribidi_reorder_line" 3 "19 February 2018" "c2man fribidi-bidi.h" "Programmer's Manual"
Packit Service 12e4cd
.SH "NAME"
Packit Service 12e4cd
fribidi_reorder_line \- reorder a line of logical string to visual
Packit Service 12e4cd
.SH "SYNOPSIS"
Packit Service 12e4cd
.ft B
Packit Service 12e4cd
#include <fribidi.h>
Packit Service 12e4cd
.sp
Packit Service 12e4cd
extern FriBidiLevel fribidi_reorder_line
Packit Service 12e4cd
.br
Packit Service 12e4cd
(
Packit Service 12e4cd
.br
Packit Service 12e4cd
	FriBidiFlags flags,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	const FriBidiCharType *bidi_types,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	const FriBidiStrIndex len,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	const FriBidiStrIndex off,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	const FriBidiParType base_dir,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	FriBidiLevel *embedding_levels,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	FriBidiChar *visual_str,
Packit Service 12e4cd
.br
Packit Service 12e4cd
	FriBidiStrIndex *map
Packit Service 12e4cd
.br
Packit Service 12e4cd
);
Packit Service 12e4cd
.ft R
Packit Service 12e4cd
.SH "PARAMETERS"
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "FriBidiFlags flags"
Packit Service 12e4cd
Reorder flags.
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "const FriBidiCharType *bidi_types"
Packit Service 12e4cd
Input list of bidi types as returned by
Packit Service 12e4cd
fribidi_get_bidi_types().
Packit Service 12e4cd
.sp
Packit Service 12e4cd
Since there are 23 possible values for a \fBconst FriBidiCharType\fR, they are not all listed here.
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "const FriBidiStrIndex len"
Packit Service 12e4cd
Input length of the line.
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "const FriBidiStrIndex off"
Packit Service 12e4cd
Input offset of the beginning of the line
Packit Service 12e4cd
in the paragraph.
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "const FriBidiParType base_dir"
Packit Service 12e4cd
Resolved paragraph base direction.
Packit Service 12e4cd
.sp
Packit Service 12e4cd
Possible values for a \fBconst FriBidiParType\fR are as follows:
Packit Service 12e4cd
.RS 0.75in
Packit Service 12e4cd
.PD 0
Packit Service 12e4cd
.ft B
Packit Service 12e4cd
.nr TL \w'FRIBIDI_PAR_WLTR'u+0.2i
Packit Service 12e4cd
.ft R
Packit Service 12e4cd
.TP \n(TLu
Packit Service 12e4cd
\fBFRIBIDI_PAR_LTR\fR
Packit Service 12e4cd
Left-To-Right paragraph.
Packit Service 12e4cd
.TP \n(TLu
Packit Service 12e4cd
\fBFRIBIDI_PAR_RTL\fR
Packit Service 12e4cd
Right-To-Left paragraph.
Packit Service 12e4cd
.TP \n(TLu
Packit Service 12e4cd
\fBFRIBIDI_PAR_ON\fR
Packit Service 12e4cd
DirectiOn-Neutral paragraph.
Packit Service 12e4cd
.TP \n(TLu
Packit Service 12e4cd
\fBFRIBIDI_PAR_WLTR\fR
Packit Service 12e4cd
Weak Left To Right paragraph.
Packit Service 12e4cd
.TP \n(TLu
Packit Service 12e4cd
\fBFRIBIDI_PAR_WRTL\fR
Packit Service 12e4cd
Weak Right To Left paragraph.
Packit Service 12e4cd
.RE
Packit Service 12e4cd
.PD
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "FriBidiLevel *embedding_levels"
Packit Service 12e4cd
Input list of embedding levels,
Packit Service 12e4cd
as returned by
Packit Service 12e4cd
fribidi_get_par_embedding_levels.
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "FriBidiChar *visual_str"
Packit Service 12e4cd
Visual string to reorder.
Packit Service 12e4cd
.TP
Packit Service 12e4cd
.B "FriBidiStrIndex *map"
Packit Service 12e4cd
A map of string indices which is reordered
Packit Service 12e4cd
to reflect where each glyph ends up.
Packit Service 12e4cd
.SH "DESCRIPTION"
Packit Service 12e4cd
This function reorders the characters in a line of text from logical to
Packit Service 12e4cd
final visual order.  This function implements part 4 of rule L1, and rules
Packit Service 12e4cd
L2 and L3 of the Unicode Bidirectional Algorithm available at
Packit Service 12e4cd
http://www.unicode.org/reports/tr9/#Reordering_Resolved_Levels.
Packit Service 12e4cd
Packit Service 12e4cd
As a side effect it also sets position maps if not NULL.
Packit Service 12e4cd
Packit Service 12e4cd
You should provide the resolved paragraph direction and embedding levels as
Packit Service 12e4cd
set by fribidi_get_par_embedding_levels().  Also note that the embedding
Packit Service 12e4cd
levels may change a bit.  To be exact, the embedding level of any sequence
Packit Service 12e4cd
of white space at the end of line is reset to the paragraph embedding level
Packit Service 12e4cd
(That is part 4 of rule L1).
Packit Service 12e4cd
Packit Service 12e4cd
Note that the bidi types and embedding levels are not reordered.  You can
Packit Service 12e4cd
reorder these (or any other) arrays using the map later.  The user is
Packit Service 12e4cd
responsible to initialize map to something sensible, like an identity
Packit Service 12e4cd
mapping, or pass NULL if no map is needed.
Packit Service 12e4cd
Packit Service 12e4cd
There is an optional part to this function, which is whether non-spacing
Packit Service 12e4cd
marks for right-to-left parts of the text should be reordered to come after
Packit Service 12e4cd
their base characters in the visual string or not.  Most rendering engines
Packit Service 12e4cd
expect this behavior, but console-based systems for example do not like it.
Packit Service 12e4cd
This is controlled by the FRIBIDI_FLAG_REORDER_NSM flag.  The flag is on
Packit Service 12e4cd
in FRIBIDI_FLAGS_DEFAULT.
Packit Service 12e4cd
.SH "RETURNS"
Packit Service 12e4cd
Maximum level found in this line plus one, or zero if any error
Packit Service 12e4cd
occurred (memory allocation failure most probably).
Packit Service 12e4cd
.SH "SEE ALSO"
Packit Service 12e4cd
fribidi_shape_arabic(3),
Packit Service 12e4cd
fribidi_get_par_direction(3),
Packit Service 12e4cd
fribidi_get_par_embedding_levels_ex(3),
Packit Service 12e4cd
fribidi_get_bidi_type(3),
Packit Service 12e4cd
fribidi_get_bidi_types(3),
Packit Service 12e4cd
fribidi_get_bidi_type_name(3),
Packit Service 12e4cd
fribidi_debug_status(3),
Packit Service 12e4cd
fribidi_set_debug(3),
Packit Service 12e4cd
fribidi_charset_to_unicode(3),
Packit Service 12e4cd
fribidi_unicode_to_charset(3),
Packit Service 12e4cd
fribidi_parse_charset(3),
Packit Service 12e4cd
fribidi_mirroring_status(3),
Packit Service 12e4cd
fribidi_set_mirroring(3),
Packit Service 12e4cd
fribidi_reorder_nsm_status(3),
Packit Service 12e4cd
fribidi_set_reorder_nsm(3),
Packit Service 12e4cd
fribidi_log2vis_get_embedding_levels(3),
Packit Service 12e4cd
fribidi_get_type(3),
Packit Service 12e4cd
fribidi_get_type_internal(3),
Packit Service 12e4cd
fribidi_remove_bidi_marks(3),
Packit Service 12e4cd
fribidi_log2vis(3),
Packit Service 12e4cd
fribidi_get_par_embedding_levels(3),
Packit Service 12e4cd
fribidi_join_arabic(3),
Packit Service 12e4cd
fribidi_get_joining_type(3),
Packit Service 12e4cd
fribidi_get_joining_types(3),
Packit Service 12e4cd
fribidi_get_joining_type_name(3),
Packit Service 12e4cd
fribidi_get_mirror_char(3),
Packit Service 12e4cd
fribidi_shape_mirroring(3),
Packit Service 12e4cd
fribidi_get_bracket(3),
Packit Service 12e4cd
fribidi_get_bracket_types(3),
Packit Service 12e4cd
fribidi_shape(3)