fribidi_get_par_direction man page

fribidi_get_par_direction — 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.

See Also

fribidi_charset_to_unicode(3), fribidi_unicode_to_charset(3), fribidi_parse_charset(3), fribidi_shape_arabic(3), fribidi_get_par_embedding_levels(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)

Referenced By

fribidi_charset_to_unicode(3), fribidi_debug_status(3), fribidi_get_bidi_type(3), fribidi_get_bidi_type_name(3), fribidi_get_bidi_types(3), fribidi_get_joining_type(3), fribidi_get_joining_type_name(3), fribidi_get_joining_types(3), fribidi_get_mirror_char(3), fribidi_get_par_embedding_levels(3), fribidi_get_type(3), fribidi_get_type_internal(3), fribidi_join_arabic(3), fribidi_log2vis(3), fribidi_log2vis_get_embedding_levels(3), fribidi_mirroring_status(3), fribidi_parse_charset(3), fribidi_remove_bidi_marks(3), fribidi_reorder_line(3), fribidi_reorder_nsm_status(3), fribidi_set_mirroring(3), fribidi_set_reorder_nsm(3), fribidi_shape(3), fribidi_shape_mirroring(3), fribidi_unicode_to_charset(3).

1 February 2013 GNU FriBidi 0.19.7 Programmer's Manual