fribidi_get_par_embedding_levels_ex(3)
get bidi embedding levels of a paragraph
Description
fribidi_get_par_embedding_levels_ex
NAME
fribidi_get_par_embedding_levels_ex - get bidi embedding levels of a paragraph
SYNOPSIS
#include <fribidi.h>
extern
FriBidiLevel fribidi_get_par_embedding_levels_ex
(
|
const FriBidiCharType *bidi_types, | ||
|
const FriBidiBracketType *bracket_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().
Since there are 23 possible values for a const FriBidiCharType, they are not all listed here.
const FriBidiBracketType *bracket_types
Input list of bracket types as returned by fribidi_get_bracket_types().
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 occurred (memory allocation failure most probably).
SEE ALSO
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_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)
See Also
- 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_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)