1fribidi_join_arabic(3) Programmer's Manual fribidi_join_arabic(3)
2
3
4
6 fribidi_join_arabic - do Arabic joining
7
9 #include <fribidi.h>
10
11 extern void fribidi_join_arabic
12 (
13 const FriBidiCharType *bidi_types,
14 const FriBidiStrIndex len,
15 const FriBidiLevel *embedding_levels,
16 FriBidiArabicProp *ar_props
17 );
18
20 const FriBidiCharType *bidi_types
21 Input list of bidi types as returned by
22 fribidi_get_bidi_types().
23
24 Since there are 23 possible values for a const FriBidiCharType,
25 they are not all listed here.
26
27 const FriBidiStrIndex len
28 Input string length.
29
30 const FriBidiLevel *embedding_levels
31 Input list of embedding levels, as returned by
32 fribidi_get_par_embedding_levels.
33
34 FriBidiArabicProp *ar_props
35 Arabic properties to analyze, initialized by joining types, as
36 returned by fribidi_get_joining_types.
37
39 This function does the Arabic joining algorithm. Means, given Arabic
40 joining types of the characters in ar_props (don't worry, FriBidiJoin‐
41 ingType can be casted to FriBidiArabicProp automagically), this func‐
42 tion modifies this properties to grasp the effect of neighboring char‐
43 acters. You probably need this information later to do Arabic shaping.
44
45 This function implements rules R1 to R7 inclusive (all rules) of the
46 Arabic Cursive Joining algorithm of the Unicode standard as available
47 at http://www.unicode.org/versions/Unicode4.0.0/ch08.pdf#G7462. It
48 also interacts correctly with the bidirection algorithm as defined in
49 Section
50 3.5 Shaping of the Unicode Bidirectional Algorithm available at
51 http://www.unicode.org/reports/tr9/#Shaping.
52
53 There are a few macros defined in fribidi-joining-types.h for querying
54 the Arabic properties computed by this function.
55
57 fribidi_shape_arabic(3), fribidi_get_par_direction(3),
58 fribidi_get_par_embedding_levels_ex(3), fribidi_reorder_line(3),
59 fribidi_get_bidi_type(3), fribidi_get_bidi_types(3),
60 fribidi_get_bidi_type_name(3), fribidi_debug_status(3),
61 fribidi_set_debug(3), fribidi_charset_to_unicode(3), fribidi_uni‐
62 code_to_charset(3), fribidi_parse_charset(3), fribidi_mirroring_sta‐
63 tus(3), fribidi_set_mirroring(3), fribidi_reorder_nsm_status(3),
64 fribidi_set_reorder_nsm(3), fribidi_log2vis_get_embedding_levels(3),
65 fribidi_get_type(3), fribidi_get_type_internal(3),
66 fribidi_remove_bidi_marks(3), fribidi_log2vis(3),
67 fribidi_get_par_embedding_levels(3), fribidi_get_joining_type(3),
68 fribidi_get_joining_types(3), fribidi_get_joining_type_name(3),
69 fribidi_get_mirror_char(3), fribidi_shape_mirroring(3),
70 fribidi_get_bracket(3), fribidi_get_bracket_types(3), fribidi_shape(3)
71
72
73
74c2man fribidi-joining.h 19 February 2018 fribidi_join_arabic(3)