---
name: "fribidi_get_par_direction"
section: "3"
platform: "linux"
package: "fribidi"
version: "1.0.18-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/fribidi_get_par_direction"
---

# fribidi\_get\_par\_direction(3)

get base paragraph direction

## NAME

fribidi\_get\_par\_direction - get base paragraph direction

## SYNOPSIS

**#include \<../fribidi/lib/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().

  Since there are 23 possible values for a **const FriBidiCharType**, they are not all listed here.

- **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\_shape\_arabic(3)](/fribidi_shape_arabic/3.md), [fribidi\_get\_par\_embedding\_levels\_ex(3)](/fribidi_get_par_embedding_levels_ex/3.md), [fribidi\_reorder\_line(3)](/fribidi_reorder_line/3.md), [fribidi\_get\_bidi\_type(3)](/fribidi_get_bidi_type/3.md), [fribidi\_get\_bidi\_types(3)](/fribidi_get_bidi_types/3.md), [fribidi\_get\_bidi\_type\_name(3)](/fribidi_get_bidi_type_name/3.md), [fribidi\_charset\_to\_unicode(3)](/fribidi_charset_to_unicode/3.md), [fribidi\_unicode\_to\_charset(3)](/fribidi_unicode_to_charset/3.md), [fribidi\_parse\_charset(3)](/fribidi_parse_charset/3.md), [fribidi\_debug\_status(3)](/fribidi_debug_status/3.md), [fribidi\_set\_debug(3)](/fribidi_set_debug/3.md), [fribidi\_mirroring\_status(3)](/fribidi_mirroring_status/3.md), [fribidi\_set\_mirroring(3)](/fribidi_set_mirroring/3.md), [fribidi\_reorder\_nsm\_status(3)](/fribidi_reorder_nsm_status/3.md), [fribidi\_set\_reorder\_nsm(3)](/fribidi_set_reorder_nsm/3.md), [fribidi\_log2vis\_get\_embedding\_levels(3)](/fribidi_log2vis_get_embedding_levels/3.md), [fribidi\_get\_type(3)](/fribidi_get_type/3.md), [fribidi\_get\_type\_internal(3)](/fribidi_get_type_internal/3.md), [fribidi\_get\_par\_embedding\_levels(3)](/fribidi_get_par_embedding_levels/3.md), [fribidi\_join\_arabic(3)](/fribidi_join_arabic/3.md), [fribidi\_get\_joining\_type(3)](/fribidi_get_joining_type/3.md), [fribidi\_get\_joining\_types(3)](/fribidi_get_joining_types/3.md), [fribidi\_get\_joining\_type\_name(3)](/fribidi_get_joining_type_name/3.md), [fribidi\_get\_mirror\_char(3)](/fribidi_get_mirror_char/3.md), [fribidi\_shape\_mirroring(3)](/fribidi_shape_mirroring/3.md), [fribidi\_get\_bracket(3)](/fribidi_get_bracket/3.md), [fribidi\_get\_bracket\_types(3)](/fribidi_get_bracket_types/3.md), [fribidi\_shape(3)](/fribidi_shape/3.md), [fribidi\_remove\_bidi\_marks(3)](/fribidi_remove_bidi_marks/3.md), [fribidi\_log2vis(3)](/fribidi_log2vis/3.md)
