SYNOPSIS

#include <fribidi.h>

FriBidiLevel fribidi_log2vis

(

const FriBidiChar *str,

const FriBidiStrIndex len,

FriBidiParType *pbase_dir,

FriBidiChar *visual_str,

FriBidiStrIndex *positions_L_to_V,

FriBidiStrIndex *positions_V_to_L,

FriBidiLevel *embedding_levels

);

PARAMETERS

const FriBidiChar *str

Input logical string.

const FriBidiStrIndex len

Input string length.

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.

FriBidiChar *visual_str

Output visual string.

FriBidiStrIndex *positions_L_to_V

Output mapping from logical to visual string positions.

FriBidiStrIndex *positions_V_to_L

Output mapping from visual string back to the logical string positions.

FriBidiLevel *embedding_levels

Output list of embedding levels.

DESCRIPTION

This function converts the logical input string to the visual output strings as specified by the Unicode Bidirectional Algorithm. As a side effect it also generates mapping lists between the two strings, and the list of embedding levels as defined by the algorithm.

If NULL is passed as any of the the lists, the list is ignored and not filled.

This function is obsolete because it only handles one-line paragraphs. Please consider using other functions instead. Deprecated.

RETURNS

Maximum level found plus one, or zero if any error occured (memory allocation failure most probably).

RELATED TO fribidi_log2vis…