1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
/* This file is taken from the FreeType (1) tree. It's been reindented
* to roughly match Pango guidelines (in anticipation of future changes),
* but not otherwise much altered.
*/
/****************************************************************************/
/* */
/* The FreeType project -- a free and portable quality TrueType renderer. */
/* */
/* Copyright 1996-2000 by */
/* D. Turner, R.Wilhelm, and W. Lemberg */
/* */
/* arabic -- An implementation of the contextual algorithm given in the */
/* Unicode 2.0 book to assign the `isolated', `initial', `medial', and */
/* `final' properties to an input string of character codes for the Arabic */
/* script. */
/* */
/****************************************************************************/
#include <pango/pango-ot.h>
enum joining_type_
{
isolated = 1, /* nominal */
final = 2, /* right_joining */
initial = 4, /* left_joining */
medial = 8 /* double_joining */
};
typedef enum joining_type_ joining_type;
/* A glyph's property value as needed by e.g. TT_GSUB_Apply_String()
specifies which features should *not* be applied */
enum arabic_glyph_property_
{
isolated_p = final | initial | medial,
final_p = isolated | initial | medial,
initial_p = isolated | final | medial,
medial_p = isolated | final | initial
};
typedef enum arabic_glyph_property_ arabic_glyph_property;
enum joining_class_
{
right,
left, /* not used */
dual,
causing,
none,
transparent
};
typedef enum joining_class_ joining_class;
FT_Error Arabic_Assign_Properties (gunichar *string,
gulong *properties,
int length);
#if 0
TT_Error Build_Arabic_Glyph_Properties (TT_CharMap char_map,
TT_UShort max_glyphs,
TTO_GDEFHeader** gdef );
#endif
/* End */
|