GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
fribidi_join_arabic(3) Programmer's Manual fribidi_join_arabic(3)

fribidi_join_arabic - do Arabic joining

#include <fribidi.h>

void fribidi_join_arabic
(
const FriBidiCharType *bidi_types,
const FriBidiStrIndex len,
const FriBidiLevel *embedding_levels,
FriBidiArabicProp *ar_props
);

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.
const FriBidiLevel *embedding_levels
Input list of embedding levels, as returned by fribidi_get_par_embedding_levels.
FriBidiArabicProp *ar_props
Arabic properties to analyze, initialized by joining types, as returned by fribidi_get_joining_types.

This function does the Arabic joining algorithm. Means, given Arabic joining types of the characters in ar_props (don't worry, FriBidiJoiningType can be casted to FriBidiArabicProp automagically), this function modifies this properties to grasp the effect of neighboring characters. You probably need this information later to do Arabic shaping.

This function implements rules R1 to R7 inclusive (all rules) of the Arabic Cursive Joining algorithm of the Unicode standard as available at http://www.unicode.org/versions/Unicode4.0.0/ch08.pdf#G7462. It also interacts correctly with the bidirection algorithm as defined in Section
3.5 Shaping of the Unicode Bidirectional Algorithm available at http://www.unicode.org/reports/tr9/#Shaping.

There are a few macros defined in fribidi-joining-types.h for querying the Arabic properties computed by this function.

fribidi_shape_arabic(3), fribidi_get_par_direction(3), fribidi_get_par_embedding_levels_ex(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_set_debug(3), fribidi_charset_to_unicode(3), fribidi_unicode_to_charset(3), fribidi_parse_charset(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_get_par_embedding_levels(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_get_bracket(3), fribidi_get_bracket_types(3), fribidi_shape(3), fribidi_remove_bidi_marks(3), fribidi_log2vis(3)
23 September 2021 c2man fribidi-joining.h

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.