1 | /* The tables in this file should all be sorted on their first item. */ |
2 | |
3 | /* *INDENT-OFF* */ |
4 | |
5 | const PairMap mandatory_liga_table[] = { |
6 | {{0xFEDF, 0xFE82}, 0xFEF5}, |
7 | {{0xFEDF, 0xFE84}, 0xFEF7}, |
8 | {{0xFEDF, 0xFE88}, 0xFEF9}, |
9 | {{0xFEDF, 0xFE8E}, 0xFEFB}, |
10 | {{0xFEE0, 0xFE82}, 0xFEF6}, |
11 | {{0xFEE0, 0xFE84}, 0xFEF8}, |
12 | {{0xFEE0, 0xFE88}, 0xFEFA}, |
13 | {{0xFEE0, 0xFE8E}, 0xFEFC}, |
14 | }; |
15 | |
16 | |
17 | const PairMap console_liga_table[] = { |
18 | {{0x0640, 0xFC60}, 0xFCF2}, |
19 | {{0x0640, 0xFC61}, 0xFCF3}, |
20 | {{0x0640, 0xFC62}, 0xFCF4}, |
21 | {{0x0640, 0xFE70}, 0xFE71}, |
22 | {{0x0640, 0xFE76}, 0xFE77}, |
23 | {{0x0640, 0xFE78}, 0xFE79}, |
24 | {{0x0640, 0xFE7A}, 0xFE7B}, |
25 | {{0x0640, 0xFE7C}, 0xFE7D}, |
26 | {{0x0640, 0xFE7E}, 0xFE7F}, |
27 | {{0xFBE8, 0x0654}, 0xFE8B}, |
28 | {{0xFBE9, 0x0654}, 0xFE8C}, |
29 | {{0xFBFC, 0x0654}, 0xFE89}, |
30 | {{0xFBFC, 0x0670}, 0xFC5D}, |
31 | {{0xFBFD, 0x0654}, 0xFE8A}, |
32 | {{0xFBFD, 0x0670}, 0xFC90}, |
33 | {{0xFE7C, 0x0670}, 0xFC63}, |
34 | {{0xFE7C, 0xFE72}, 0xFC5E}, |
35 | {{0xFE7C, 0xFE74}, 0xFC5F}, |
36 | {{0xFE7C, 0xFE76}, 0xFC60}, |
37 | {{0xFE7C, 0xFE78}, 0xFC61}, |
38 | {{0xFE7C, 0xFE7A}, 0xFC62}, |
39 | {{0xFE7D, 0xFE76}, 0xFCF2}, |
40 | {{0xFE7D, 0xFE77}, 0xFCF2}, |
41 | {{0xFE7D, 0xFE78}, 0xFCF3}, |
42 | {{0xFE7D, 0xFE79}, 0xFCF3}, |
43 | {{0xFE7D, 0xFE7A}, 0xFCF4}, |
44 | {{0xFE7D, 0xFE7B}, 0xFCF4}, |
45 | {{0xFE8D, 0x0653}, 0xFE81}, |
46 | {{0xFE8D, 0x0654}, 0xFE83}, |
47 | {{0xFE8D, 0x0655}, 0xFE87}, |
48 | {{0xFE8D, 0xFE70}, 0xFD3D}, |
49 | {{0xFE8E, 0x0653}, 0xFE82}, |
50 | {{0xFE8E, 0x0654}, 0xFE84}, |
51 | {{0xFE8E, 0x0655}, 0xFE88}, |
52 | {{0xFE8E, 0xFE70}, 0xFD3C}, |
53 | {{0xFEE9, 0x0654}, 0xFBA4}, |
54 | {{0xFEEA, 0x0654}, 0xFBA5}, |
55 | {{0xFEED, 0x0654}, 0xFE85}, |
56 | {{0xFEEE, 0x0654}, 0xFE86}, |
57 | {{0xFEEF, 0x0654}, 0xFE89}, |
58 | {{0xFEEF, 0x0670}, 0xFC5D}, |
59 | {{0xFEF0, 0x0654}, 0xFE8A}, |
60 | {{0xFEF0, 0x0670}, 0xFC90}, |
61 | {{0xFEF1, 0x0654}, 0xFE89}, |
62 | {{0xFEF1, 0x0670}, 0xFC5D}, |
63 | {{0xFEF2, 0x0654}, 0xFE8A}, |
64 | {{0xFEF2, 0x0670}, 0xFC90}, |
65 | {{0xFEF3, 0x0654}, 0xFE8B}, |
66 | {{0xFEF4, 0x0654}, 0xFE8C}, |
67 | {{0xFEFB, 0x0653}, 0xFEF5}, |
68 | {{0xFEFB, 0x0654}, 0xFEF7}, |
69 | {{0xFEFB, 0x0655}, 0xFEF9}, |
70 | {{0xFEFC, 0x0653}, 0xFEF6}, |
71 | {{0xFEFC, 0x0654}, 0xFEF8}, |
72 | {{0xFEFC, 0x0655}, 0xFEFA}, |
73 | }; |
74 | |
75 | |
76 | static const FriBidiChar NSMShap[][4] = { |
77 | {0xFE70, 0xFE71, 0xFE70, 0xFE71,}, |
78 | {0xFE72, 0xFE72, 0xFE72, 0xFE72,}, |
79 | {0xFE74, 0xFE74, 0xFE74, 0xFE74,}, |
80 | {0xFE76, 0xFE77, 0xFE76, 0xFE77,}, |
81 | {0xFE78, 0xFE79, 0xFE78, 0xFE79,}, |
82 | {0xFE7A, 0xFE7B, 0xFE7A, 0xFE7B,}, |
83 | {0xFE7C, 0xFE7D, 0xFE7C, 0xFE7D,}, |
84 | {0xFE7E, 0xFE7F, 0xFE7E, 0xFE7F,}, |
85 | }; |
86 | |
87 | /* *INDENT-ON* */ |
88 | |
89 | #ifndef FRIBIDI_ACCESS_SHAPE_TABLE |
90 | # define FRIBIDI_ACCESS_SHAPE_TABLE(table,min,max,x,shape) \ |
91 | (((x)<(min)||(x)>(max))?(x):(table)[(x)-(min)][(shape)]) |
92 | #endif |
93 | |
94 | #define FRIBIDI_GET_ARABIC_SHAPE_NSM(x,shape) FRIBIDI_ACCESS_SHAPE_TABLE(NSMShap, 0x064B, 0x0652, (x), (shape)) |
95 | |