diff options
Diffstat (limited to 'firmware/arabjoin.h')
-rw-r--r-- | firmware/arabjoin.h | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/firmware/arabjoin.h b/firmware/arabjoin.h new file mode 100644 index 0000000000..cba498660c --- /dev/null +++ b/firmware/arabjoin.h | |||
@@ -0,0 +1,205 @@ | |||
1 | typedef struct { | ||
2 | unsigned short isolated; | ||
3 | unsigned short final; | ||
4 | unsigned short medial; | ||
5 | unsigned short initial; | ||
6 | } arab_t; | ||
7 | |||
8 | //static arab_t dummy = {0,0,0,0}; | ||
9 | static arab_t zwj = {0x20,0x20,0x20,0x20}; //zero-width joiner | ||
10 | |||
11 | static arab_t lamaleph[] = { | ||
12 | {0xfefb,0xfefc,0,0}, | ||
13 | {0xfef9,0xfefa,0,0}, | ||
14 | {0xfef7,0xfef8,0,0}, | ||
15 | {0xfef5,0xfef6,0,0} | ||
16 | }; | ||
17 | |||
18 | static arab_t jointable[] = { | ||
19 | {0xfe80,0x0000,0x0000,0x0000}, // 0x0621 | ||
20 | {0xfe81,0xfe82,0x0000,0x0000}, // 0x0622 | ||
21 | {0xfe83,0xfe84,0x0000,0x0000}, // 0x0623 | ||
22 | {0xfe85,0xfe86,0x0000,0x0000}, // 0x0624 | ||
23 | {0xfe87,0xfe88,0x0000,0x0000}, // 0x0625 | ||
24 | {0xfe89,0xfe8a,0xfe8c,0xfe8b}, // 0x0626 | ||
25 | {0xfe8d,0xfe8e,0x0000,0x0000}, // 0x0627 | ||
26 | {0xfe8f,0xfe90,0xfe92,0xfe91}, // 0x0628 | ||
27 | {0xfe93,0xfe94,0x0000,0x0000}, // 0x0629 | ||
28 | {0xfe95,0xfe96,0xfe98,0xfe97}, // 0x062a | ||
29 | {0xfe99,0xfe9a,0xfe9c,0xfe9b}, // 0x062b | ||
30 | {0xfe9d,0xfe9e,0xfea0,0xfe9f}, // 0x062c | ||
31 | {0xfea1,0xfea2,0xfea4,0xfea3}, // 0x062d | ||
32 | {0xfea5,0xfea6,0xfea8,0xfea7}, // 0x062e | ||
33 | {0xfea9,0xfeaa,0x0000,0x0000}, // 0x062f | ||
34 | {0xfeab,0xfeac,0x0000,0x0000}, // 0x0630 | ||
35 | {0xfead,0xfeae,0x0000,0x0000}, // 0x0631 | ||
36 | {0xfeaf,0xfeb0,0x0000,0x0000}, // 0x0632 | ||
37 | {0xfeb1,0xfeb2,0xfeb4,0xfeb3}, // 0x0633 | ||
38 | {0xfeb5,0xfeb6,0xfeb8,0xfeb7}, // 0x0634 | ||
39 | {0xfeb9,0xfeba,0xfebc,0xfebb}, // 0x0635 | ||
40 | {0xfebd,0xfebe,0xfec0,0xfebf}, // 0x0636 | ||
41 | {0xfec1,0xfec2,0xfec4,0xfec3}, // 0x0637 | ||
42 | {0xfec5,0xfec6,0xfec8,0xfec7}, // 0x0638 | ||
43 | {0xfec9,0xfeca,0xfecc,0xfecb}, // 0x0639 | ||
44 | {0xfecd,0xfece,0xfed0,0xfecf}, // 0x063a | ||
45 | #if 0 | ||
46 | {0x0000,0x0000,0x0000,0x0000}, // 0x063b | ||
47 | {0x0000,0x0000,0x0000,0x0000}, // 0x063c | ||
48 | {0x0000,0x0000,0x0000,0x0000}, // 0x063d | ||
49 | {0x0000,0x0000,0x0000,0x0000}, // 0x063e | ||
50 | {0x0000,0x0000,0x0000,0x0000}, // 0x063f | ||
51 | #endif | ||
52 | {0x0640,0x0640,0x0640,0x0640}, // 0x0640 | ||
53 | {0xfed1,0xfed2,0xfed4,0xfed3}, // 0x0641 | ||
54 | {0xfed5,0xfed6,0xfed8,0xfed7}, // 0x0642 | ||
55 | {0xfed9,0xfeda,0xfedc,0xfedb}, // 0x0643 | ||
56 | {0xfedd,0xfede,0xfee0,0xfedf}, // 0x0644 | ||
57 | {0xfee1,0xfee2,0xfee4,0xfee3}, // 0x0645 | ||
58 | {0xfee5,0xfee6,0xfee8,0xfee7}, // 0x0646 | ||
59 | {0xfee9,0xfeea,0xfeec,0xfeeb}, // 0x0647 | ||
60 | {0xfeed,0xfeee,0x0000,0x0000}, // 0x0648 | ||
61 | {0xfeef,0xfef0,0x0000,0x0000}, // 0x0649 | ||
62 | {0xfef1,0xfef2,0xfef4,0xfef3}, // 0x064a | ||
63 | # if 0 | ||
64 | {0x0000,0x0000,0x0000,0x0000}, // 0x064b | ||
65 | {0x0000,0x0000,0x0000,0x0000}, // 0x064c | ||
66 | {0x0000,0x0000,0x0000,0x0000}, // 0x064d | ||
67 | {0x0000,0x0000,0x0000,0x0000}, // 0x064e | ||
68 | {0x0000,0x0000,0x0000,0x0000}, // 0x064f | ||
69 | {0x0000,0x0000,0x0000,0x0000}, // 0x0650 | ||
70 | {0x0000,0x0000,0x0000,0x0000}, // 0x0651 | ||
71 | {0x0000,0x0000,0x0000,0x0000}, // 0x0652 | ||
72 | {0x0000,0x0000,0x0000,0x0000}, // 0x0653 | ||
73 | {0x0000,0x0000,0x0000,0x0000}, // 0x0654 | ||
74 | {0x0000,0x0000,0x0000,0x0000}, // 0x0655 | ||
75 | {0x0000,0x0000,0x0000,0x0000}, // 0x0656 | ||
76 | {0x0000,0x0000,0x0000,0x0000}, // 0x0657 | ||
77 | {0x0000,0x0000,0x0000,0x0000}, // 0x0658 | ||
78 | {0x0000,0x0000,0x0000,0x0000}, // 0x0659 | ||
79 | {0x0000,0x0000,0x0000,0x0000}, // 0x065a | ||
80 | {0x0000,0x0000,0x0000,0x0000}, // 0x065b | ||
81 | {0x0000,0x0000,0x0000,0x0000}, // 0x065c | ||
82 | {0x0000,0x0000,0x0000,0x0000}, // 0x065d | ||
83 | {0x0000,0x0000,0x0000,0x0000}, // 0x065e | ||
84 | {0x0000,0x0000,0x0000,0x0000}, // 0x065f | ||
85 | {0x0000,0x0000,0x0000,0x0000}, // 0x0660 | ||
86 | {0x0000,0x0000,0x0000,0x0000}, // 0x0661 | ||
87 | {0x0000,0x0000,0x0000,0x0000}, // 0x0662 | ||
88 | {0x0000,0x0000,0x0000,0x0000}, // 0x0663 | ||
89 | {0x0000,0x0000,0x0000,0x0000}, // 0x0664 | ||
90 | {0x0000,0x0000,0x0000,0x0000}, // 0x0665 | ||
91 | {0x0000,0x0000,0x0000,0x0000}, // 0x0666 | ||
92 | {0x0000,0x0000,0x0000,0x0000}, // 0x0667 | ||
93 | {0x0000,0x0000,0x0000,0x0000}, // 0x0668 | ||
94 | {0x0000,0x0000,0x0000,0x0000}, // 0x0669 | ||
95 | {0x0000,0x0000,0x0000,0x0000}, // 0x066a | ||
96 | {0x0000,0x0000,0x0000,0x0000}, // 0x066b | ||
97 | {0x0000,0x0000,0x0000,0x0000}, // 0x066c | ||
98 | {0x0000,0x0000,0x0000,0x0000}, // 0x066d | ||
99 | {0x0000,0x0000,0x0000,0x0000}, // 0x066e | ||
100 | {0x0000,0x0000,0x0000,0x0000}, // 0x066f | ||
101 | {0x0000,0x0000,0x0000,0x0000}, // 0x0670 | ||
102 | #endif | ||
103 | {0xfb50,0x0000,0x0000,0x0000}, // 0x0671 | ||
104 | {0x0672,0x0672,0x0000,0x0000}, // 0x0672 | ||
105 | {0x0673,0x0673,0x0000,0x0000}, // 0x0673 | ||
106 | {0x0674,0x0000,0x0000,0x0000}, // 0x0674 | ||
107 | {0x0675,0x0675,0x0000,0x0000}, // 0x0675 | ||
108 | {0x0676,0x0676,0x0000,0x0000}, // 0x0676 | ||
109 | {0xfbdd,0x0677,0x0000,0x0000}, // 0x0677 | ||
110 | {0x0678,0x0678,0x0678,0x0678}, // 0x0678 | ||
111 | {0xfb66,0xfb67,0xfb69,0xfb68}, // 0x0679 | ||
112 | {0xfb5e,0xfb5f,0xfb61,0xfb60}, // 0x067a | ||
113 | {0xfb52,0xfb53,0xfb55,0xfb54}, // 0x067b | ||
114 | {0x067c,0x067c,0x067c,0x067c}, // 0x067c | ||
115 | {0x067d,0x067d,0x067d,0x067d}, // 0x067d | ||
116 | {0xfb56,0xfb57,0xfb59,0xfb58}, // 0x067e | ||
117 | {0xfb62,0xfb63,0xfb65,0xfb64}, // 0x067f | ||
118 | {0xfb5a,0xfb5b,0xfb5d,0xfb5c}, // 0x0680 | ||
119 | {0x0681,0x0681,0x0681,0x0681}, // 0x0681 | ||
120 | {0x0682,0x0682,0x0682,0x0682}, // 0x0682 | ||
121 | {0xfb76,0xfb77,0xfb79,0xfb78}, // 0x0683 | ||
122 | {0xfb72,0xfb73,0xfb75,0xfb74}, // 0x0684 | ||
123 | {0x0685,0x0685,0x0685,0x0685}, // 0x0685 | ||
124 | {0xfb7a,0xfb7b,0xfb7d,0xfb7c}, // 0x0686 | ||
125 | {0xfb7e,0xfb7f,0xfb81,0xfb80}, // 0x0687 | ||
126 | {0xfb88,0xfb89,0x0000,0x0000}, // 0x0688 | ||
127 | {0x0689,0x0689,0x0000,0x0000}, // 0x0689 | ||
128 | {0x068a,0x068a,0x0000,0x0000}, // 0x068a | ||
129 | {0x068b,0x068b,0x0000,0x0000}, // 0x068b | ||
130 | {0xfb84,0xfb85,0x0000,0x0000}, // 0x068c | ||
131 | {0xfb82,0xfb83,0x0000,0x0000}, // 0x068d | ||
132 | {0xfb86,0xfb87,0x0000,0x0000}, // 0x068e | ||
133 | {0x068f,0x068f,0x0000,0x0000}, // 0x068f | ||
134 | {0x0690,0x0690,0x0000,0x0000}, // 0x0690 | ||
135 | {0xfb8c,0xfb8d,0x0000,0x0000}, // 0x0691 | ||
136 | {0x0692,0x0692,0x0000,0x0000}, // 0x0692 | ||
137 | {0x0693,0x0693,0x0000,0x0000}, // 0x0693 | ||
138 | {0x0694,0x0694,0x0000,0x0000}, // 0x0694 | ||
139 | {0x0695,0x0695,0x0000,0x0000}, // 0x0695 | ||
140 | {0x0695,0x0696,0x0000,0x0000}, // 0x0696 | ||
141 | {0x0697,0x0697,0x0000,0x0000}, // 0x0697 | ||
142 | {0xfb8a,0xfb8b,0x0000,0x0000}, // 0x0698 | ||
143 | {0x0699,0x0699,0x0000,0x0000}, // 0x0699 | ||
144 | {0x069a,0x069a,0x069a,0x069a}, // 0x069a | ||
145 | {0x069b,0x069b,0x069b,0x069b}, // 0x069b | ||
146 | {0x069c,0x069c,0x069c,0x069c}, // 0x069c | ||
147 | {0x069d,0x069d,0x069d,0x069d}, // 0x069d | ||
148 | {0x069e,0x069e,0x069e,0x069e}, // 0x069e | ||
149 | {0x069f,0x069f,0x069f,0x069f}, // 0x069f | ||
150 | {0x06a0,0x06a0,0x06a0,0x06a0}, // 0x06a0 | ||
151 | {0x06a1,0x06a1,0x06a1,0x06a1}, // 0x06a1 | ||
152 | {0x06a2,0x06a2,0x06a2,0x06a2}, // 0x06a2 | ||
153 | {0x06a3,0x06a3,0x06a3,0x06a3}, // 0x06a3 | ||
154 | {0xfb6a,0xfb6b,0xfb6d,0xfb6c}, // 0x06a4 | ||
155 | {0x06a5,0x06a5,0x06a5,0x06a5}, // 0x06a5 | ||
156 | {0xfb6e,0xfb6f,0xfb71,0xfb70}, // 0x06a6 | ||
157 | {0x06a7,0x06a7,0x06a7,0x06a7}, // 0x06a7 | ||
158 | {0x06a8,0x06a8,0x06a8,0x06a8}, // 0x06a8 | ||
159 | {0xfb8e,0xfb8f,0xfb91,0xfb90}, // 0x06a9 | ||
160 | {0x06aa,0x06aa,0x06aa,0x06aa}, // 0x06aa | ||
161 | {0x06ab,0x06ab,0x06ab,0x06ab}, // 0x06ab | ||
162 | {0x06ac,0x06ac,0x06ac,0x06ac}, // 0x06ac | ||
163 | {0xfbd3,0xfbd4,0xfbd6,0xfbd5}, // 0x06ad | ||
164 | {0x06ae,0x06ae,0x06ae,0x06ae}, // 0x06ae | ||
165 | {0xfb92,0xfb93,0xfb95,0xfb94}, // 0x06af | ||
166 | {0x06b0,0x06b0,0x06b0,0x06b0}, // 0x06b0 | ||
167 | {0xfb9a,0xfb9b,0xfb9d,0xfb9c}, // 0x06b1 | ||
168 | {0x06b2,0x06b2,0x06b2,0x06b2}, // 0x06b2 | ||
169 | {0xfb96,0xfb97,0xfb99,0xfb98}, // 0x06b3 | ||
170 | {0x06b4,0x06b4,0x06b4,0x06b4}, // 0x06b4 | ||
171 | {0x06b5,0x06b5,0x06b5,0x06b5}, // 0x06b5 | ||
172 | {0x06b6,0x06b6,0x06b6,0x06b6}, // 0x06b6 | ||
173 | {0x06b7,0x06b7,0x06b7,0x06b7}, // 0x06b7 | ||
174 | {0x0000,0x0000,0x0000,0x0000}, // 0x06b8 | ||
175 | {0x0000,0x0000,0x0000,0x0000}, // 0x06b9 | ||
176 | {0xfb9e,0xfb9f,0x06ba,0x06ba}, // 0x06ba | ||
177 | {0xfba0,0xfba1,0xfba3,0xfba2}, // 0x06bb | ||
178 | {0x06bc,0x06bc,0x06bc,0x06bc}, // 0x06bc | ||
179 | {0x06bd,0x06bd,0x06bd,0x06bd}, // 0x06bd | ||
180 | {0xfbaa,0xfbab,0xfbad,0xfbac}, // 0x06be | ||
181 | {0x0000,0x0000,0x0000,0x0000}, // 0x06bf | ||
182 | {0xfba4,0xfba5,0x0000,0x0000}, // 0x06c0 | ||
183 | {0x06c1,0x06c1,0x06c1,0x06c1}, // 0x06c1 | ||
184 | {0x06c2,0x06c2,0x0000,0x0000}, // 0x06c2 | ||
185 | {0x06c3,0x06c3,0x0000,0x0000}, // 0x06c3 | ||
186 | {0x06c4,0x06c4,0x0000,0x0000}, // 0x06c4 | ||
187 | {0x06c5,0x06c5,0x0000,0x0000}, // 0x06c5 | ||
188 | {0x06c6,0x06c6,0x0000,0x0000}, // 0x06c6 | ||
189 | {0x06c7,0x06c7,0x0000,0x0000}, // 0x06c7 | ||
190 | {0x06c8,0x06c8,0x0000,0x0000}, // 0x06c8 | ||
191 | {0x06c9,0x06c9,0x0000,0x0000}, // 0x06c9 | ||
192 | {0x06ca,0x06ca,0x0000,0x0000}, // 0x06ca | ||
193 | {0x06cb,0x06cb,0x0000,0x0000}, // 0x06cb | ||
194 | {0x06cc,0x06cc,0x06cc,0x06cc}, // 0x06cc | ||
195 | {0x06cd,0x06cd,0x0000,0x0000}, // 0x06cd | ||
196 | {0x06ce,0x06ce,0x06ce,0x06ce}, // 0x06ce | ||
197 | {0x0000,0x0000,0x0000,0x0000}, // 0x06cf | ||
198 | {0x06d0,0x06d0,0x06d0,0x06d0}, // 0x06d0 | ||
199 | {0x06d1,0x06d1,0x06d1,0x06d1}, // 0x06d1 | ||
200 | {0xfbae,0xfbaf,0x0000,0x0000}, // 0x06d2 | ||
201 | {0xfbb0,0xfbb1,0x0000,0x0000}, // 0x06d3 | ||
202 | {0x0000,0x0000,0x0000,0x0000}, // 0x06d4 | ||
203 | {0x06d5,0x0000,0x0000,0x0000} // 0x06d5 | ||
204 | }; | ||
205 | |||