fribidi_get_par_direction(3) get base paragraph direction

SYNOPSIS

#include <fribidi.h>

FriBidiParType fribidi_get_par_direction
(
       const FriBidiCharType *bidi_types,

       const FriBidiStrIndex len

);

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.

DESCRIPTION

This function finds the base direction of a single paragraph, as defined by rule P2 of the Unicode Bidirectional Algorithm available at http://www.unicode.org/reports/tr9/#P2.

You typically do not need this function as fribidi_get_par_embedding_levels() knows how to compute base direction itself, but you may need this to implement a more sophisticated paragraph direction handling. Note that you can pass more than a paragraph to this function and the direction of the first non-neutral paragraph is returned, which is a very good heuristic to set direction of the neutral paragraphs at the beginning of text. For other neutral paragraphs, you better use the direction of the previous paragraph.

RETURNS

Base pargraph direction. No weak paragraph direction is returned, only LTR, RTL, or ON.

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.