NAME
fribidi_get_par_embedding_levels - get bidi embedding levels of a
paragraph
SYNOPSIS
#include <fribidi.h>
FriBidiLevel fribidi_get_par_embedding_levels
(
const FriBidiCharType *bidi_types,
const FriBidiStrIndex len,
FriBidiParType *pbase_dir,
FriBidiLevel *embedding_levels
);
PARAMETERS
const FriBidiCharType *bidi_types
Input list of bidi types as returned by
fribidi_get_bidi_types().
Possible values for a const FriBidiCharType are as follows:
FRIBIDI_TYPE_LTR Left-To-Right letter.
FRIBIDI_TYPE_RTL Right-To-Left letter.
FRIBIDI_TYPE_AL Arabic Letter.
FRIBIDI_TYPE_EN European Numeral.
FRIBIDI_TYPE_AN Arabic Numeral.
FRIBIDI_TYPE_ES European number Separator.
FRIBIDI_TYPE_ET European number Terminator.
FRIBIDI_TYPE_CS Common Separator.
FRIBIDI_TYPE_NSM Non Spacing Mark.
FRIBIDI_TYPE_BN Boundary Neutral.
FRIBIDI_TYPE_BS Block Separator.
FRIBIDI_TYPE_SS Segment Separator.
FRIBIDI_TYPE_WS WhiteSpace.
FRIBIDI_TYPE_ON Other Neutral.
FRIBIDI_TYPE_LRE Left-to-Right Embedding.
FRIBIDI_TYPE_RLE Right-to-Left Embedding.
FRIBIDI_TYPE_LRO Left-to-Right Override.
FRIBIDI_TYPE_RLO Right-to-Left Override.
FRIBIDI_TYPE_PDF Pop Directional Flag.
const FriBidiStrIndex len
Input string length of the paragraph.
FriBidiParType *pbase_dir
Requested and resolved paragraph base direction.
Possible values for a FriBidiParType are as follows:
FRIBIDI_PAR_LTR Left-To-Right paragraph.
FRIBIDI_PAR_RTL Right-To-Left paragraph.
FRIBIDI_PAR_ON DirectiOn-Neutral paragraph.
FRIBIDI_PAR_WLTR Weak Left To Right paragraph.
FRIBIDI_PAR_WRTL Weak Right To Left paragraph.
FriBidiLevel *embedding_levels
Output list of embedding levels.
DESCRIPTION
This function finds the bidi embedding levels of a single paragraph, as
defined by the Unicode Bidirectional Algorithm available at
http://www.unicode.org/reports/tr9/. This function implements rules P2
to I1 inclusive, and parts 1 to 3 of L1, except for rule X9 which is
implemented in fribidi_remove_bidi_marks(). Part 4 of L1 is
implemented in fribidi_reorder_line().
There are a few macros defined in fribidi-bidi-types.h to work with
this embedding levels.
RETURNS
Maximum level found plus one, or zero if any error occured (memory
allocation failure most probably).
SEE ALSO
fribidi_charset_to_unicode(3), fribidi_unicode_to_charset(3),
fribidi_parse_charset(3), fribidi_shape_arabic(3),
fribidi_get_par_direction(3), fribidi_reorder_line(3),
fribidi_get_bidi_type(3), fribidi_get_bidi_types(3),
fribidi_get_bidi_type_name(3), fribidi_debug_status(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_remove_bidi_marks(3),
fribidi_log2vis(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_shape(3)
GNU FriBidi 0.19.2 30 January fribidi_get_par_embedding_levels(3)