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.