aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2011-08-15 20:47:25 +0300
committerEli Zaretskii2011-08-15 20:47:25 +0300
commit474a84653b4aa5a10b49af751c3008a4c582422c (patch)
tree352c73a638573275b43ddd941bad2c6e6c7e9d9b /src
parent934eacb93d0b8340a3a8b478deaa6110a3de083f (diff)
downloademacs-474a84653b4aa5a10b49af751c3008a4c582422c.tar.gz
emacs-474a84653b4aa5a10b49af751c3008a4c582422c.zip
Use uniprop tables instead of biditype.h and bidimirror.h.
src/bidi.c (bidi_initialize): Use uniprop_table instead of including biditype.h and bidimirror.h. src/biditype.h: File removed. src/bidimirror.h: File removed. src/deps.mk (bidi.o): Remove biditype.h and bidimirror.h. src/makefile.w32-in ($(BLD)/bidi.$(O)): Remove biditype.h and bidimirror.h. src/dispextern.h: Fix a typo in the comment to bidi_type_t. src/chartab.c: Improve commentary for the uniprop_table API. admin/unidata/bidimirror.awk: File removed. admin/unidata/biditype.awk: File removed. admin/unidata/makefile.w32-in (all): Remove src/biditype.h and src/bidimirror.h. (../../src/biditype.h, ../../src/bidimirror.h): Deleted. admin/unidata/Makefile.in (all): Remove src/biditype.h and src/bidimirror.h. (../../src/biditype.h, ../../src/bidimirror.h): Deleted.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog16
-rw-r--r--src/bidi.c20
-rw-r--r--src/bidimirror.h365
-rw-r--r--src/biditype.h447
-rw-r--r--src/chartab.c25
-rw-r--r--src/deps.mk2
-rw-r--r--src/dispextern.h2
-rw-r--r--src/makefile.w32-in2
8 files changed, 41 insertions, 838 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fa94aed1383..a2256cff9f0 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,7 +1,23 @@
12011-08-15 Eli Zaretskii <eliz@gnu.org> 12011-08-15 Eli Zaretskii <eliz@gnu.org>
2 2
3 * biditype.h: File removed.
4
5 * bidimirror.h: File removed.
6
7 * deps.mk (bidi.o): Remove biditype.h and
8 bidimirror.h.
9
10 * makefile.w32-in ($(BLD)/bidi.$(O)): Remove biditype.h and
11 bidimirror.h.
12
13 * dispextern.h: Fix a typo in the comment to bidi_type_t.
14
15 * chartab.c: Improve commentary for the uniprop_table API.
16
3 * bidi.c (bidi_paragraph_init): Support zero value of 17 * bidi.c (bidi_paragraph_init): Support zero value of
4 bidi_ignore_explicit_marks_for_paragraph_level. 18 bidi_ignore_explicit_marks_for_paragraph_level.
19 (bidi_initialize): Use uniprop_table instead of including
20 biditype.h and bidimirror.h.
5 21
6 * xdisp.c (move_it_in_display_line_to): Don't reset pixel 22 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
7 coordinates of the iterator when restoring from ppos_it. 23 coordinates of the iterator when restoring from ppos_it.
diff --git a/src/bidi.c b/src/bidi.c
index 383553f6d91..280c9d15769 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -746,26 +746,18 @@ bidi_unshelve_cache (void *databuf, int just_free)
746static void 746static void
747bidi_initialize (void) 747bidi_initialize (void)
748{ 748{
749
750#include "biditype.h"
751#include "bidimirror.h"
752
753 int i; 749 int i;
754 750
755 bidi_type_table = Fmake_char_table (Qnil, make_number (STRONG_L)); 751 bidi_type_table = uniprop_table (intern ("bidi-class"));
752 if (NILP (bidi_type_table))
753 abort ();
756 staticpro (&bidi_type_table); 754 staticpro (&bidi_type_table);
757 755
758 for (i = 0; i < sizeof bidi_type / sizeof bidi_type[0]; i++) 756 bidi_mirror_table = uniprop_table (intern ("mirroring"));
759 char_table_set_range (bidi_type_table, bidi_type[i].from, bidi_type[i].to, 757 if (NILP (bidi_mirror_table))
760 make_number (bidi_type[i].type)); 758 abort ();
761
762 bidi_mirror_table = Fmake_char_table (Qnil, Qnil);
763 staticpro (&bidi_mirror_table); 759 staticpro (&bidi_mirror_table);
764 760
765 for (i = 0; i < sizeof bidi_mirror / sizeof bidi_mirror[0]; i++)
766 char_table_set (bidi_mirror_table, bidi_mirror[i].from,
767 make_number (bidi_mirror[i].to));
768
769 Qparagraph_start = intern ("paragraph-start"); 761 Qparagraph_start = intern ("paragraph-start");
770 staticpro (&Qparagraph_start); 762 staticpro (&Qparagraph_start);
771 paragraph_start_re = Fsymbol_value (Qparagraph_start); 763 paragraph_start_re = Fsymbol_value (Qparagraph_start);
diff --git a/src/bidimirror.h b/src/bidimirror.h
deleted file mode 100644
index 477f983ad64..00000000000
--- a/src/bidimirror.h
+++ /dev/null
@@ -1,365 +0,0 @@
1 struct {
2 int from, to;
3 } bidi_mirror[] = {
4 { 0x0028, 0x0029 },
5 { 0x0029, 0x0028 },
6 { 0x003C, 0x003E },
7 { 0x003E, 0x003C },
8 { 0x005B, 0x005D },
9 { 0x005D, 0x005B },
10 { 0x007B, 0x007D },
11 { 0x007D, 0x007B },
12 { 0x00AB, 0x00BB },
13 { 0x00BB, 0x00AB },
14 { 0x0F3A, 0x0F3B },
15 { 0x0F3B, 0x0F3A },
16 { 0x0F3C, 0x0F3D },
17 { 0x0F3D, 0x0F3C },
18 { 0x169B, 0x169C },
19 { 0x169C, 0x169B },
20 { 0x2039, 0x203A },
21 { 0x203A, 0x2039 },
22 { 0x2045, 0x2046 },
23 { 0x2046, 0x2045 },
24 { 0x207D, 0x207E },
25 { 0x207E, 0x207D },
26 { 0x208D, 0x208E },
27 { 0x208E, 0x208D },
28 { 0x2208, 0x220B },
29 { 0x2209, 0x220C },
30 { 0x220A, 0x220D },
31 { 0x220B, 0x2208 },
32 { 0x220C, 0x2209 },
33 { 0x220D, 0x220A },
34 { 0x2215, 0x29F5 },
35 { 0x223C, 0x223D },
36 { 0x223D, 0x223C },
37 { 0x2243, 0x22CD },
38 { 0x2252, 0x2253 },
39 { 0x2253, 0x2252 },
40 { 0x2254, 0x2255 },
41 { 0x2255, 0x2254 },
42 { 0x2264, 0x2265 },
43 { 0x2265, 0x2264 },
44 { 0x2266, 0x2267 },
45 { 0x2267, 0x2266 },
46 { 0x2268, 0x2269 },
47 { 0x2269, 0x2268 },
48 { 0x226A, 0x226B },
49 { 0x226B, 0x226A },
50 { 0x226E, 0x226F },
51 { 0x226F, 0x226E },
52 { 0x2270, 0x2271 },
53 { 0x2271, 0x2270 },
54 { 0x2272, 0x2273 },
55 { 0x2273, 0x2272 },
56 { 0x2274, 0x2275 },
57 { 0x2275, 0x2274 },
58 { 0x2276, 0x2277 },
59 { 0x2277, 0x2276 },
60 { 0x2278, 0x2279 },
61 { 0x2279, 0x2278 },
62 { 0x227A, 0x227B },
63 { 0x227B, 0x227A },
64 { 0x227C, 0x227D },
65 { 0x227D, 0x227C },
66 { 0x227E, 0x227F },
67 { 0x227F, 0x227E },
68 { 0x2280, 0x2281 },
69 { 0x2281, 0x2280 },
70 { 0x2282, 0x2283 },
71 { 0x2283, 0x2282 },
72 { 0x2284, 0x2285 },
73 { 0x2285, 0x2284 },
74 { 0x2286, 0x2287 },
75 { 0x2287, 0x2286 },
76 { 0x2288, 0x2289 },
77 { 0x2289, 0x2288 },
78 { 0x228A, 0x228B },
79 { 0x228B, 0x228A },
80 { 0x228F, 0x2290 },
81 { 0x2290, 0x228F },
82 { 0x2291, 0x2292 },
83 { 0x2292, 0x2291 },
84 { 0x2298, 0x29B8 },
85 { 0x22A2, 0x22A3 },
86 { 0x22A3, 0x22A2 },
87 { 0x22A6, 0x2ADE },
88 { 0x22A8, 0x2AE4 },
89 { 0x22A9, 0x2AE3 },
90 { 0x22AB, 0x2AE5 },
91 { 0x22B0, 0x22B1 },
92 { 0x22B1, 0x22B0 },
93 { 0x22B2, 0x22B3 },
94 { 0x22B3, 0x22B2 },
95 { 0x22B4, 0x22B5 },
96 { 0x22B5, 0x22B4 },
97 { 0x22B6, 0x22B7 },
98 { 0x22B7, 0x22B6 },
99 { 0x22C9, 0x22CA },
100 { 0x22CA, 0x22C9 },
101 { 0x22CB, 0x22CC },
102 { 0x22CC, 0x22CB },
103 { 0x22CD, 0x2243 },
104 { 0x22D0, 0x22D1 },
105 { 0x22D1, 0x22D0 },
106 { 0x22D6, 0x22D7 },
107 { 0x22D7, 0x22D6 },
108 { 0x22D8, 0x22D9 },
109 { 0x22D9, 0x22D8 },
110 { 0x22DA, 0x22DB },
111 { 0x22DB, 0x22DA },
112 { 0x22DC, 0x22DD },
113 { 0x22DD, 0x22DC },
114 { 0x22DE, 0x22DF },
115 { 0x22DF, 0x22DE },
116 { 0x22E0, 0x22E1 },
117 { 0x22E1, 0x22E0 },
118 { 0x22E2, 0x22E3 },
119 { 0x22E3, 0x22E2 },
120 { 0x22E4, 0x22E5 },
121 { 0x22E5, 0x22E4 },
122 { 0x22E6, 0x22E7 },
123 { 0x22E7, 0x22E6 },
124 { 0x22E8, 0x22E9 },
125 { 0x22E9, 0x22E8 },
126 { 0x22EA, 0x22EB },
127 { 0x22EB, 0x22EA },
128 { 0x22EC, 0x22ED },
129 { 0x22ED, 0x22EC },
130 { 0x22F0, 0x22F1 },
131 { 0x22F1, 0x22F0 },
132 { 0x22F2, 0x22FA },
133 { 0x22F3, 0x22FB },
134 { 0x22F4, 0x22FC },
135 { 0x22F6, 0x22FD },
136 { 0x22F7, 0x22FE },
137 { 0x22FA, 0x22F2 },
138 { 0x22FB, 0x22F3 },
139 { 0x22FC, 0x22F4 },
140 { 0x22FD, 0x22F6 },
141 { 0x22FE, 0x22F7 },
142 { 0x2308, 0x2309 },
143 { 0x2309, 0x2308 },
144 { 0x230A, 0x230B },
145 { 0x230B, 0x230A },
146 { 0x2329, 0x232A },
147 { 0x232A, 0x2329 },
148 { 0x2768, 0x2769 },
149 { 0x2769, 0x2768 },
150 { 0x276A, 0x276B },
151 { 0x276B, 0x276A },
152 { 0x276C, 0x276D },
153 { 0x276D, 0x276C },
154 { 0x276E, 0x276F },
155 { 0x276F, 0x276E },
156 { 0x2770, 0x2771 },
157 { 0x2771, 0x2770 },
158 { 0x2772, 0x2773 },
159 { 0x2773, 0x2772 },
160 { 0x2774, 0x2775 },
161 { 0x2775, 0x2774 },
162 { 0x27C3, 0x27C4 },
163 { 0x27C4, 0x27C3 },
164 { 0x27C5, 0x27C6 },
165 { 0x27C6, 0x27C5 },
166 { 0x27C8, 0x27C9 },
167 { 0x27C9, 0x27C8 },
168 { 0x27D5, 0x27D6 },
169 { 0x27D6, 0x27D5 },
170 { 0x27DD, 0x27DE },
171 { 0x27DE, 0x27DD },
172 { 0x27E2, 0x27E3 },
173 { 0x27E3, 0x27E2 },
174 { 0x27E4, 0x27E5 },
175 { 0x27E5, 0x27E4 },
176 { 0x27E6, 0x27E7 },
177 { 0x27E7, 0x27E6 },
178 { 0x27E8, 0x27E9 },
179 { 0x27E9, 0x27E8 },
180 { 0x27EA, 0x27EB },
181 { 0x27EB, 0x27EA },
182 { 0x27EC, 0x27ED },
183 { 0x27ED, 0x27EC },
184 { 0x27EE, 0x27EF },
185 { 0x27EF, 0x27EE },
186 { 0x2983, 0x2984 },
187 { 0x2984, 0x2983 },
188 { 0x2985, 0x2986 },
189 { 0x2986, 0x2985 },
190 { 0x2987, 0x2988 },
191 { 0x2988, 0x2987 },
192 { 0x2989, 0x298A },
193 { 0x298A, 0x2989 },
194 { 0x298B, 0x298C },
195 { 0x298C, 0x298B },
196 { 0x298D, 0x2990 },
197 { 0x298E, 0x298F },
198 { 0x298F, 0x298E },
199 { 0x2990, 0x298D },
200 { 0x2991, 0x2992 },
201 { 0x2992, 0x2991 },
202 { 0x2993, 0x2994 },
203 { 0x2994, 0x2993 },
204 { 0x2995, 0x2996 },
205 { 0x2996, 0x2995 },
206 { 0x2997, 0x2998 },
207 { 0x2998, 0x2997 },
208 { 0x29B8, 0x2298 },
209 { 0x29C0, 0x29C1 },
210 { 0x29C1, 0x29C0 },
211 { 0x29C4, 0x29C5 },
212 { 0x29C5, 0x29C4 },
213 { 0x29CF, 0x29D0 },
214 { 0x29D0, 0x29CF },
215 { 0x29D1, 0x29D2 },
216 { 0x29D2, 0x29D1 },
217 { 0x29D4, 0x29D5 },
218 { 0x29D5, 0x29D4 },
219 { 0x29D8, 0x29D9 },
220 { 0x29D9, 0x29D8 },
221 { 0x29DA, 0x29DB },
222 { 0x29DB, 0x29DA },
223 { 0x29F5, 0x2215 },
224 { 0x29F8, 0x29F9 },
225 { 0x29F9, 0x29F8 },
226 { 0x29FC, 0x29FD },
227 { 0x29FD, 0x29FC },
228 { 0x2A2B, 0x2A2C },
229 { 0x2A2C, 0x2A2B },
230 { 0x2A2D, 0x2A2E },
231 { 0x2A2E, 0x2A2D },
232 { 0x2A34, 0x2A35 },
233 { 0x2A35, 0x2A34 },
234 { 0x2A3C, 0x2A3D },
235 { 0x2A3D, 0x2A3C },
236 { 0x2A64, 0x2A65 },
237 { 0x2A65, 0x2A64 },
238 { 0x2A79, 0x2A7A },
239 { 0x2A7A, 0x2A79 },
240 { 0x2A7D, 0x2A7E },
241 { 0x2A7E, 0x2A7D },
242 { 0x2A7F, 0x2A80 },
243 { 0x2A80, 0x2A7F },
244 { 0x2A81, 0x2A82 },
245 { 0x2A82, 0x2A81 },
246 { 0x2A83, 0x2A84 },
247 { 0x2A84, 0x2A83 },
248 { 0x2A8B, 0x2A8C },
249 { 0x2A8C, 0x2A8B },
250 { 0x2A91, 0x2A92 },
251 { 0x2A92, 0x2A91 },
252 { 0x2A93, 0x2A94 },
253 { 0x2A94, 0x2A93 },
254 { 0x2A95, 0x2A96 },
255 { 0x2A96, 0x2A95 },
256 { 0x2A97, 0x2A98 },
257 { 0x2A98, 0x2A97 },
258 { 0x2A99, 0x2A9A },
259 { 0x2A9A, 0x2A99 },
260 { 0x2A9B, 0x2A9C },
261 { 0x2A9C, 0x2A9B },
262 { 0x2AA1, 0x2AA2 },
263 { 0x2AA2, 0x2AA1 },
264 { 0x2AA6, 0x2AA7 },
265 { 0x2AA7, 0x2AA6 },
266 { 0x2AA8, 0x2AA9 },
267 { 0x2AA9, 0x2AA8 },
268 { 0x2AAA, 0x2AAB },
269 { 0x2AAB, 0x2AAA },
270 { 0x2AAC, 0x2AAD },
271 { 0x2AAD, 0x2AAC },
272 { 0x2AAF, 0x2AB0 },
273 { 0x2AB0, 0x2AAF },
274 { 0x2AB3, 0x2AB4 },
275 { 0x2AB4, 0x2AB3 },
276 { 0x2ABB, 0x2ABC },
277 { 0x2ABC, 0x2ABB },
278 { 0x2ABD, 0x2ABE },
279 { 0x2ABE, 0x2ABD },
280 { 0x2ABF, 0x2AC0 },
281 { 0x2AC0, 0x2ABF },
282 { 0x2AC1, 0x2AC2 },
283 { 0x2AC2, 0x2AC1 },
284 { 0x2AC3, 0x2AC4 },
285 { 0x2AC4, 0x2AC3 },
286 { 0x2AC5, 0x2AC6 },
287 { 0x2AC6, 0x2AC5 },
288 { 0x2ACD, 0x2ACE },
289 { 0x2ACE, 0x2ACD },
290 { 0x2ACF, 0x2AD0 },
291 { 0x2AD0, 0x2ACF },
292 { 0x2AD1, 0x2AD2 },
293 { 0x2AD2, 0x2AD1 },
294 { 0x2AD3, 0x2AD4 },
295 { 0x2AD4, 0x2AD3 },
296 { 0x2AD5, 0x2AD6 },
297 { 0x2AD6, 0x2AD5 },
298 { 0x2ADE, 0x22A6 },
299 { 0x2AE3, 0x22A9 },
300 { 0x2AE4, 0x22A8 },
301 { 0x2AE5, 0x22AB },
302 { 0x2AEC, 0x2AED },
303 { 0x2AED, 0x2AEC },
304 { 0x2AF7, 0x2AF8 },
305 { 0x2AF8, 0x2AF7 },
306 { 0x2AF9, 0x2AFA },
307 { 0x2AFA, 0x2AF9 },
308 { 0x2E02, 0x2E03 },
309 { 0x2E03, 0x2E02 },
310 { 0x2E04, 0x2E05 },
311 { 0x2E05, 0x2E04 },
312 { 0x2E09, 0x2E0A },
313 { 0x2E0A, 0x2E09 },
314 { 0x2E0C, 0x2E0D },
315 { 0x2E0D, 0x2E0C },
316 { 0x2E1C, 0x2E1D },
317 { 0x2E1D, 0x2E1C },
318 { 0x2E20, 0x2E21 },
319 { 0x2E21, 0x2E20 },
320 { 0x2E22, 0x2E23 },
321 { 0x2E23, 0x2E22 },
322 { 0x2E24, 0x2E25 },
323 { 0x2E25, 0x2E24 },
324 { 0x2E26, 0x2E27 },
325 { 0x2E27, 0x2E26 },
326 { 0x2E28, 0x2E29 },
327 { 0x2E29, 0x2E28 },
328 { 0x3008, 0x3009 },
329 { 0x3009, 0x3008 },
330 { 0x300A, 0x300B },
331 { 0x300B, 0x300A },
332 { 0x300C, 0x300D },
333 { 0x300D, 0x300C },
334 { 0x300E, 0x300F },
335 { 0x300F, 0x300E },
336 { 0x3010, 0x3011 },
337 { 0x3011, 0x3010 },
338 { 0x3014, 0x3015 },
339 { 0x3015, 0x3014 },
340 { 0x3016, 0x3017 },
341 { 0x3017, 0x3016 },
342 { 0x3018, 0x3019 },
343 { 0x3019, 0x3018 },
344 { 0x301A, 0x301B },
345 { 0x301B, 0x301A },
346 { 0xFE59, 0xFE5A },
347 { 0xFE5A, 0xFE59 },
348 { 0xFE5B, 0xFE5C },
349 { 0xFE5C, 0xFE5B },
350 { 0xFE5D, 0xFE5E },
351 { 0xFE5E, 0xFE5D },
352 { 0xFE64, 0xFE65 },
353 { 0xFE65, 0xFE64 },
354 { 0xFF08, 0xFF09 },
355 { 0xFF09, 0xFF08 },
356 { 0xFF1C, 0xFF1E },
357 { 0xFF1E, 0xFF1C },
358 { 0xFF3B, 0xFF3D },
359 { 0xFF3D, 0xFF3B },
360 { 0xFF5B, 0xFF5D },
361 { 0xFF5D, 0xFF5B },
362 { 0xFF5F, 0xFF60 },
363 { 0xFF60, 0xFF5F },
364 { 0xFF62, 0xFF63 },
365 { 0xFF63, 0xFF62 } };
diff --git a/src/biditype.h b/src/biditype.h
deleted file mode 100644
index 868aabd9ea6..00000000000
--- a/src/biditype.h
+++ /dev/null
@@ -1,447 +0,0 @@
1 struct {
2 int from, to;
3 bidi_type_t type;
4 } bidi_type[] = {
5 { 0x0000, 0x0008, WEAK_BN },
6 { 0x0009, 0x0009, NEUTRAL_S },
7 { 0x000A, 0x000A, NEUTRAL_B },
8 { 0x000B, 0x000B, NEUTRAL_S },
9 { 0x000C, 0x000C, NEUTRAL_WS },
10 { 0x000D, 0x000D, NEUTRAL_B },
11 { 0x000E, 0x001B, WEAK_BN },
12 { 0x001C, 0x001E, NEUTRAL_B },
13 { 0x001F, 0x001F, NEUTRAL_S },
14 { 0x0020, 0x0020, NEUTRAL_WS },
15 { 0x0021, 0x0022, NEUTRAL_ON },
16 { 0x0023, 0x0025, WEAK_ET },
17 { 0x0026, 0x002A, NEUTRAL_ON },
18 { 0x002B, 0x002B, WEAK_ES },
19 { 0x002C, 0x002C, WEAK_CS },
20 { 0x002D, 0x002D, WEAK_ES },
21 { 0x002E, 0x002F, WEAK_CS },
22 { 0x0030, 0x0039, WEAK_EN },
23 { 0x003A, 0x003A, WEAK_CS },
24 { 0x003B, 0x0040, NEUTRAL_ON },
25 { 0x005B, 0x0060, NEUTRAL_ON },
26 { 0x007B, 0x007E, NEUTRAL_ON },
27 { 0x007F, 0x0084, WEAK_BN },
28 { 0x0085, 0x0085, NEUTRAL_B },
29 { 0x0086, 0x009F, WEAK_BN },
30 { 0x00A0, 0x00A0, WEAK_CS },
31 { 0x00A1, 0x00A1, NEUTRAL_ON },
32 { 0x00A2, 0x00A5, WEAK_ET },
33 { 0x00A6, 0x00A9, NEUTRAL_ON },
34 { 0x00AB, 0x00AC, NEUTRAL_ON },
35 { 0x00AD, 0x00AD, WEAK_BN },
36 { 0x00AE, 0x00AF, NEUTRAL_ON },
37 { 0x00B0, 0x00B1, WEAK_ET },
38 { 0x00B2, 0x00B3, WEAK_EN },
39 { 0x00B4, 0x00B4, NEUTRAL_ON },
40 { 0x00B6, 0x00B8, NEUTRAL_ON },
41 { 0x00B9, 0x00B9, WEAK_EN },
42 { 0x00BB, 0x00BF, NEUTRAL_ON },
43 { 0x00D7, 0x00D7, NEUTRAL_ON },
44 { 0x00F7, 0x00F7, NEUTRAL_ON },
45 { 0x02B9, 0x02BA, NEUTRAL_ON },
46 { 0x02C2, 0x02CF, NEUTRAL_ON },
47 { 0x02D2, 0x02DF, NEUTRAL_ON },
48 { 0x02E5, 0x02ED, NEUTRAL_ON },
49 { 0x02EF, 0x02FF, NEUTRAL_ON },
50 { 0x0300, 0x036F, WEAK_NSM },
51 { 0x0374, 0x0375, NEUTRAL_ON },
52 { 0x037E, 0x0385, NEUTRAL_ON },
53 { 0x0387, 0x0387, NEUTRAL_ON },
54 { 0x03F6, 0x03F6, NEUTRAL_ON },
55 { 0x0483, 0x0489, WEAK_NSM },
56 { 0x058A, 0x058A, NEUTRAL_ON },
57 { 0x0591, 0x05BD, WEAK_NSM },
58 { 0x05BE, 0x05BE, STRONG_R },
59 { 0x05BF, 0x05BF, WEAK_NSM },
60 { 0x05C0, 0x05C0, STRONG_R },
61 { 0x05C1, 0x05C2, WEAK_NSM },
62 { 0x05C3, 0x05C3, STRONG_R },
63 { 0x05C4, 0x05C5, WEAK_NSM },
64 { 0x05C6, 0x05C6, STRONG_R },
65 { 0x05C7, 0x05C7, WEAK_NSM },
66 { 0x05D0, 0x05F4, STRONG_R },
67 { 0x0600, 0x0603, WEAK_AN },
68 { 0x0606, 0x0607, NEUTRAL_ON },
69 { 0x0608, 0x0608, STRONG_AL },
70 { 0x0609, 0x060A, WEAK_ET },
71 { 0x060B, 0x060B, STRONG_AL },
72 { 0x060C, 0x060C, WEAK_CS },
73 { 0x060D, 0x060D, STRONG_AL },
74 { 0x060E, 0x060F, NEUTRAL_ON },
75 { 0x0610, 0x061A, WEAK_NSM },
76 { 0x061B, 0x064A, STRONG_AL },
77 { 0x064B, 0x065F, WEAK_NSM },
78 { 0x0660, 0x0669, WEAK_AN },
79 { 0x066A, 0x066A, WEAK_ET },
80 { 0x066B, 0x066C, WEAK_AN },
81 { 0x066D, 0x066F, STRONG_AL },
82 { 0x0670, 0x0670, WEAK_NSM },
83 { 0x0671, 0x06D5, STRONG_AL },
84 { 0x06D6, 0x06DC, WEAK_NSM },
85 { 0x06DD, 0x06DD, WEAK_AN },
86 { 0x06DE, 0x06DE, NEUTRAL_ON },
87 { 0x06DF, 0x06E4, WEAK_NSM },
88 { 0x06E5, 0x06E6, STRONG_AL },
89 { 0x06E7, 0x06E8, WEAK_NSM },
90 { 0x06E9, 0x06E9, NEUTRAL_ON },
91 { 0x06EA, 0x06ED, WEAK_NSM },
92 { 0x06EE, 0x06EF, STRONG_AL },
93 { 0x06F0, 0x06F9, WEAK_EN },
94 { 0x06FA, 0x070D, STRONG_AL },
95 { 0x070F, 0x070F, WEAK_AN },
96 { 0x0710, 0x0710, STRONG_AL },
97 { 0x0711, 0x0711, WEAK_NSM },
98 { 0x0712, 0x072F, STRONG_AL },
99 { 0x0730, 0x074A, WEAK_NSM },
100 { 0x074D, 0x07A5, STRONG_AL },
101 { 0x07A6, 0x07B0, WEAK_NSM },
102 { 0x07B1, 0x07B1, STRONG_AL },
103 { 0x07C0, 0x07EA, STRONG_R },
104 { 0x07EB, 0x07F3, WEAK_NSM },
105 { 0x07F4, 0x07F5, STRONG_R },
106 { 0x07F6, 0x07F9, NEUTRAL_ON },
107 { 0x07FA, 0x0815, STRONG_R },
108 { 0x0816, 0x0819, WEAK_NSM },
109 { 0x081A, 0x081A, STRONG_R },
110 { 0x081B, 0x0823, WEAK_NSM },
111 { 0x0824, 0x0824, STRONG_R },
112 { 0x0825, 0x0827, WEAK_NSM },
113 { 0x0828, 0x0828, STRONG_R },
114 { 0x0829, 0x082D, WEAK_NSM },
115 { 0x0830, 0x0858, STRONG_R },
116 { 0x0859, 0x085B, WEAK_NSM },
117 { 0x085E, 0x085E, STRONG_R },
118 { 0x0900, 0x0902, WEAK_NSM },
119 { 0x093A, 0x093A, WEAK_NSM },
120 { 0x093C, 0x093C, WEAK_NSM },
121 { 0x0941, 0x0948, WEAK_NSM },
122 { 0x094D, 0x094D, WEAK_NSM },
123 { 0x0951, 0x0957, WEAK_NSM },
124 { 0x0962, 0x0963, WEAK_NSM },
125 { 0x0981, 0x0981, WEAK_NSM },
126 { 0x09BC, 0x09BC, WEAK_NSM },
127 { 0x09C1, 0x09C4, WEAK_NSM },
128 { 0x09CD, 0x09CD, WEAK_NSM },
129 { 0x09E2, 0x09E3, WEAK_NSM },
130 { 0x09F2, 0x09F3, WEAK_ET },
131 { 0x09FB, 0x09FB, WEAK_ET },
132 { 0x0A01, 0x0A02, WEAK_NSM },
133 { 0x0A3C, 0x0A3C, WEAK_NSM },
134 { 0x0A41, 0x0A51, WEAK_NSM },
135 { 0x0A70, 0x0A71, WEAK_NSM },
136 { 0x0A75, 0x0A82, WEAK_NSM },
137 { 0x0ABC, 0x0ABC, WEAK_NSM },
138 { 0x0AC1, 0x0AC8, WEAK_NSM },
139 { 0x0ACD, 0x0ACD, WEAK_NSM },
140 { 0x0AE2, 0x0AE3, WEAK_NSM },
141 { 0x0AF1, 0x0AF1, WEAK_ET },
142 { 0x0B01, 0x0B01, WEAK_NSM },
143 { 0x0B3C, 0x0B3C, WEAK_NSM },
144 { 0x0B3F, 0x0B3F, WEAK_NSM },
145 { 0x0B41, 0x0B44, WEAK_NSM },
146 { 0x0B4D, 0x0B56, WEAK_NSM },
147 { 0x0B62, 0x0B63, WEAK_NSM },
148 { 0x0B82, 0x0B82, WEAK_NSM },
149 { 0x0BC0, 0x0BC0, WEAK_NSM },
150 { 0x0BCD, 0x0BCD, WEAK_NSM },
151 { 0x0BF3, 0x0BF8, NEUTRAL_ON },
152 { 0x0BF9, 0x0BF9, WEAK_ET },
153 { 0x0BFA, 0x0BFA, NEUTRAL_ON },
154 { 0x0C3E, 0x0C40, WEAK_NSM },
155 { 0x0C46, 0x0C56, WEAK_NSM },
156 { 0x0C62, 0x0C63, WEAK_NSM },
157 { 0x0C78, 0x0C7E, NEUTRAL_ON },
158 { 0x0CBC, 0x0CBC, WEAK_NSM },
159 { 0x0CCC, 0x0CCD, WEAK_NSM },
160 { 0x0CE2, 0x0CE3, WEAK_NSM },
161 { 0x0D41, 0x0D44, WEAK_NSM },
162 { 0x0D4D, 0x0D4D, WEAK_NSM },
163 { 0x0D62, 0x0D63, WEAK_NSM },
164 { 0x0DCA, 0x0DCA, WEAK_NSM },
165 { 0x0DD2, 0x0DD6, WEAK_NSM },
166 { 0x0E31, 0x0E31, WEAK_NSM },
167 { 0x0E34, 0x0E3A, WEAK_NSM },
168 { 0x0E3F, 0x0E3F, WEAK_ET },
169 { 0x0E47, 0x0E4E, WEAK_NSM },
170 { 0x0EB1, 0x0EB1, WEAK_NSM },
171 { 0x0EB4, 0x0EBC, WEAK_NSM },
172 { 0x0EC8, 0x0ECD, WEAK_NSM },
173 { 0x0F18, 0x0F19, WEAK_NSM },
174 { 0x0F35, 0x0F35, WEAK_NSM },
175 { 0x0F37, 0x0F37, WEAK_NSM },
176 { 0x0F39, 0x0F39, WEAK_NSM },
177 { 0x0F3A, 0x0F3D, NEUTRAL_ON },
178 { 0x0F71, 0x0F7E, WEAK_NSM },
179 { 0x0F80, 0x0F84, WEAK_NSM },
180 { 0x0F86, 0x0F87, WEAK_NSM },
181 { 0x0F8D, 0x0FBC, WEAK_NSM },
182 { 0x0FC6, 0x0FC6, WEAK_NSM },
183 { 0x102D, 0x1030, WEAK_NSM },
184 { 0x1032, 0x1037, WEAK_NSM },
185 { 0x1039, 0x103A, WEAK_NSM },
186 { 0x103D, 0x103E, WEAK_NSM },
187 { 0x1058, 0x1059, WEAK_NSM },
188 { 0x105E, 0x1060, WEAK_NSM },
189 { 0x1071, 0x1074, WEAK_NSM },
190 { 0x1082, 0x1082, WEAK_NSM },
191 { 0x1085, 0x1086, WEAK_NSM },
192 { 0x108D, 0x108D, WEAK_NSM },
193 { 0x109D, 0x109D, WEAK_NSM },
194 { 0x135D, 0x135F, WEAK_NSM },
195 { 0x1390, 0x1399, NEUTRAL_ON },
196 { 0x1400, 0x1400, NEUTRAL_ON },
197 { 0x1680, 0x1680, NEUTRAL_WS },
198 { 0x169B, 0x169C, NEUTRAL_ON },
199 { 0x1712, 0x1714, WEAK_NSM },
200 { 0x1732, 0x1734, WEAK_NSM },
201 { 0x1752, 0x1753, WEAK_NSM },
202 { 0x1772, 0x1773, WEAK_NSM },
203 { 0x17B7, 0x17BD, WEAK_NSM },
204 { 0x17C6, 0x17C6, WEAK_NSM },
205 { 0x17C9, 0x17D3, WEAK_NSM },
206 { 0x17DB, 0x17DB, WEAK_ET },
207 { 0x17DD, 0x17DD, WEAK_NSM },
208 { 0x17F0, 0x180A, NEUTRAL_ON },
209 { 0x180B, 0x180D, WEAK_NSM },
210 { 0x180E, 0x180E, NEUTRAL_WS },
211 { 0x18A9, 0x18A9, WEAK_NSM },
212 { 0x1920, 0x1922, WEAK_NSM },
213 { 0x1927, 0x1928, WEAK_NSM },
214 { 0x1932, 0x1932, WEAK_NSM },
215 { 0x1939, 0x193B, WEAK_NSM },
216 { 0x1940, 0x1945, NEUTRAL_ON },
217 { 0x19DE, 0x19FF, NEUTRAL_ON },
218 { 0x1A17, 0x1A18, WEAK_NSM },
219 { 0x1A56, 0x1A56, WEAK_NSM },
220 { 0x1A58, 0x1A60, WEAK_NSM },
221 { 0x1A62, 0x1A62, WEAK_NSM },
222 { 0x1A65, 0x1A6C, WEAK_NSM },
223 { 0x1A73, 0x1A7F, WEAK_NSM },
224 { 0x1B00, 0x1B03, WEAK_NSM },
225 { 0x1B34, 0x1B34, WEAK_NSM },
226 { 0x1B36, 0x1B3A, WEAK_NSM },
227 { 0x1B3C, 0x1B3C, WEAK_NSM },
228 { 0x1B42, 0x1B42, WEAK_NSM },
229 { 0x1B6B, 0x1B73, WEAK_NSM },
230 { 0x1B80, 0x1B81, WEAK_NSM },
231 { 0x1BA2, 0x1BA5, WEAK_NSM },
232 { 0x1BA8, 0x1BA9, WEAK_NSM },
233 { 0x1BE6, 0x1BE6, WEAK_NSM },
234 { 0x1BE8, 0x1BE9, WEAK_NSM },
235 { 0x1BED, 0x1BED, WEAK_NSM },
236 { 0x1BEF, 0x1BF1, WEAK_NSM },
237 { 0x1C2C, 0x1C33, WEAK_NSM },
238 { 0x1C36, 0x1C37, WEAK_NSM },
239 { 0x1CD0, 0x1CD2, WEAK_NSM },
240 { 0x1CD4, 0x1CE0, WEAK_NSM },
241 { 0x1CE2, 0x1CE8, WEAK_NSM },
242 { 0x1CED, 0x1CED, WEAK_NSM },
243 { 0x1DC0, 0x1DFF, WEAK_NSM },
244 { 0x1FBD, 0x1FBD, NEUTRAL_ON },
245 { 0x1FBF, 0x1FC1, NEUTRAL_ON },
246 { 0x1FCD, 0x1FCF, NEUTRAL_ON },
247 { 0x1FDD, 0x1FDF, NEUTRAL_ON },
248 { 0x1FED, 0x1FEF, NEUTRAL_ON },
249 { 0x1FFD, 0x1FFE, NEUTRAL_ON },
250 { 0x2000, 0x200A, NEUTRAL_WS },
251 { 0x200B, 0x200D, WEAK_BN },
252 { 0x200F, 0x200F, STRONG_R },
253 { 0x2010, 0x2027, NEUTRAL_ON },
254 { 0x2028, 0x2028, NEUTRAL_WS },
255 { 0x2029, 0x2029, NEUTRAL_B },
256 { 0x202A, 0x202A, LRE },
257 { 0x202B, 0x202B, RLE },
258 { 0x202C, 0x202C, PDF },
259 { 0x202D, 0x202D, LRO },
260 { 0x202E, 0x202E, RLO },
261 { 0x202F, 0x202F, WEAK_CS },
262 { 0x2030, 0x2034, WEAK_ET },
263 { 0x2035, 0x2043, NEUTRAL_ON },
264 { 0x2044, 0x2044, WEAK_CS },
265 { 0x2045, 0x205E, NEUTRAL_ON },
266 { 0x205F, 0x205F, NEUTRAL_WS },
267 { 0x2060, 0x206F, WEAK_BN },
268 { 0x2070, 0x2070, WEAK_EN },
269 { 0x2074, 0x2079, WEAK_EN },
270 { 0x207A, 0x207B, WEAK_ES },
271 { 0x207C, 0x207E, NEUTRAL_ON },
272 { 0x2080, 0x2089, WEAK_EN },
273 { 0x208A, 0x208B, WEAK_ES },
274 { 0x208C, 0x208E, NEUTRAL_ON },
275 { 0x20A0, 0x20B9, WEAK_ET },
276 { 0x20D0, 0x20F0, WEAK_NSM },
277 { 0x2100, 0x2101, NEUTRAL_ON },
278 { 0x2103, 0x2106, NEUTRAL_ON },
279 { 0x2108, 0x2109, NEUTRAL_ON },
280 { 0x2114, 0x2114, NEUTRAL_ON },
281 { 0x2116, 0x2118, NEUTRAL_ON },
282 { 0x211E, 0x2123, NEUTRAL_ON },
283 { 0x2125, 0x2125, NEUTRAL_ON },
284 { 0x2127, 0x2127, NEUTRAL_ON },
285 { 0x2129, 0x2129, NEUTRAL_ON },
286 { 0x212E, 0x212E, WEAK_ET },
287 { 0x213A, 0x213B, NEUTRAL_ON },
288 { 0x2140, 0x2144, NEUTRAL_ON },
289 { 0x214A, 0x214D, NEUTRAL_ON },
290 { 0x2150, 0x215F, NEUTRAL_ON },
291 { 0x2189, 0x2211, NEUTRAL_ON },
292 { 0x2212, 0x2212, WEAK_ES },
293 { 0x2213, 0x2213, WEAK_ET },
294 { 0x2214, 0x2335, NEUTRAL_ON },
295 { 0x237B, 0x2394, NEUTRAL_ON },
296 { 0x2396, 0x2487, NEUTRAL_ON },
297 { 0x2488, 0x249B, WEAK_EN },
298 { 0x24EA, 0x26AB, NEUTRAL_ON },
299 { 0x26AD, 0x27FF, NEUTRAL_ON },
300 { 0x2900, 0x2B59, NEUTRAL_ON },
301 { 0x2CE5, 0x2CEA, NEUTRAL_ON },
302 { 0x2CEF, 0x2CF1, WEAK_NSM },
303 { 0x2CF9, 0x2CFF, NEUTRAL_ON },
304 { 0x2D7F, 0x2D7F, WEAK_NSM },
305 { 0x2DE0, 0x2DFF, WEAK_NSM },
306 { 0x2E00, 0x2FFB, NEUTRAL_ON },
307 { 0x3000, 0x3000, NEUTRAL_WS },
308 { 0x3001, 0x3004, NEUTRAL_ON },
309 { 0x3008, 0x3020, NEUTRAL_ON },
310 { 0x302A, 0x302F, WEAK_NSM },
311 { 0x3030, 0x3030, NEUTRAL_ON },
312 { 0x3036, 0x3037, NEUTRAL_ON },
313 { 0x303D, 0x303F, NEUTRAL_ON },
314 { 0x3099, 0x309A, WEAK_NSM },
315 { 0x309B, 0x309C, NEUTRAL_ON },
316 { 0x30A0, 0x30A0, NEUTRAL_ON },
317 { 0x30FB, 0x30FB, NEUTRAL_ON },
318 { 0x31C0, 0x31E3, NEUTRAL_ON },
319 { 0x321D, 0x321E, NEUTRAL_ON },
320 { 0x3250, 0x325F, NEUTRAL_ON },
321 { 0x327C, 0x327E, NEUTRAL_ON },
322 { 0x32B1, 0x32BF, NEUTRAL_ON },
323 { 0x32CC, 0x32CF, NEUTRAL_ON },
324 { 0x3377, 0x337A, NEUTRAL_ON },
325 { 0x33DE, 0x33DF, NEUTRAL_ON },
326 { 0x33FF, 0x33FF, NEUTRAL_ON },
327 { 0x4DC0, 0x4DFF, NEUTRAL_ON },
328 { 0xA490, 0xA4C6, NEUTRAL_ON },
329 { 0xA60D, 0xA60F, NEUTRAL_ON },
330 { 0xA66F, 0xA672, WEAK_NSM },
331 { 0xA673, 0xA673, NEUTRAL_ON },
332 { 0xA67C, 0xA67D, WEAK_NSM },
333 { 0xA67E, 0xA67F, NEUTRAL_ON },
334 { 0xA6F0, 0xA6F1, WEAK_NSM },
335 { 0xA700, 0xA721, NEUTRAL_ON },
336 { 0xA788, 0xA788, NEUTRAL_ON },
337 { 0xA802, 0xA802, WEAK_NSM },
338 { 0xA806, 0xA806, WEAK_NSM },
339 { 0xA80B, 0xA80B, WEAK_NSM },
340 { 0xA825, 0xA826, WEAK_NSM },
341 { 0xA828, 0xA82B, NEUTRAL_ON },
342 { 0xA838, 0xA839, WEAK_ET },
343 { 0xA874, 0xA877, NEUTRAL_ON },
344 { 0xA8C4, 0xA8C4, WEAK_NSM },
345 { 0xA8E0, 0xA8F1, WEAK_NSM },
346 { 0xA926, 0xA92D, WEAK_NSM },
347 { 0xA947, 0xA951, WEAK_NSM },
348 { 0xA980, 0xA982, WEAK_NSM },
349 { 0xA9B3, 0xA9B3, WEAK_NSM },
350 { 0xA9B6, 0xA9B9, WEAK_NSM },
351 { 0xA9BC, 0xA9BC, WEAK_NSM },
352 { 0xAA29, 0xAA2E, WEAK_NSM },
353 { 0xAA31, 0xAA32, WEAK_NSM },
354 { 0xAA35, 0xAA36, WEAK_NSM },
355 { 0xAA43, 0xAA43, WEAK_NSM },
356 { 0xAA4C, 0xAA4C, WEAK_NSM },
357 { 0xAAB0, 0xAAB0, WEAK_NSM },
358 { 0xAAB2, 0xAAB4, WEAK_NSM },
359 { 0xAAB7, 0xAAB8, WEAK_NSM },
360 { 0xAABE, 0xAABF, WEAK_NSM },
361 { 0xAAC1, 0xAAC1, WEAK_NSM },
362 { 0xABE5, 0xABE5, WEAK_NSM },
363 { 0xABE8, 0xABE8, WEAK_NSM },
364 { 0xABED, 0xABED, WEAK_NSM },
365 { 0xFB1D, 0xFB1D, STRONG_R },
366 { 0xFB1E, 0xFB1E, WEAK_NSM },
367 { 0xFB1F, 0xFB28, STRONG_R },
368 { 0xFB29, 0xFB29, WEAK_ES },
369 { 0xFB2A, 0xFB4F, STRONG_R },
370 { 0xFB50, 0xFD3D, STRONG_AL },
371 { 0xFD3E, 0xFD3F, NEUTRAL_ON },
372 { 0xFD50, 0xFDFC, STRONG_AL },
373 { 0xFDFD, 0xFDFD, NEUTRAL_ON },
374 { 0xFE00, 0xFE0F, WEAK_NSM },
375 { 0xFE10, 0xFE19, NEUTRAL_ON },
376 { 0xFE20, 0xFE26, WEAK_NSM },
377 { 0xFE30, 0xFE4F, NEUTRAL_ON },
378 { 0xFE50, 0xFE50, WEAK_CS },
379 { 0xFE51, 0xFE51, NEUTRAL_ON },
380 { 0xFE52, 0xFE52, WEAK_CS },
381 { 0xFE54, 0xFE54, NEUTRAL_ON },
382 { 0xFE55, 0xFE55, WEAK_CS },
383 { 0xFE56, 0xFE5E, NEUTRAL_ON },
384 { 0xFE5F, 0xFE5F, WEAK_ET },
385 { 0xFE60, 0xFE61, NEUTRAL_ON },
386 { 0xFE62, 0xFE63, WEAK_ES },
387 { 0xFE64, 0xFE68, NEUTRAL_ON },
388 { 0xFE69, 0xFE6A, WEAK_ET },
389 { 0xFE6B, 0xFE6B, NEUTRAL_ON },
390 { 0xFE70, 0xFEFC, STRONG_AL },
391 { 0xFEFF, 0xFEFF, WEAK_BN },
392 { 0xFF01, 0xFF02, NEUTRAL_ON },
393 { 0xFF03, 0xFF05, WEAK_ET },
394 { 0xFF06, 0xFF0A, NEUTRAL_ON },
395 { 0xFF0B, 0xFF0B, WEAK_ES },
396 { 0xFF0C, 0xFF0C, WEAK_CS },
397 { 0xFF0D, 0xFF0D, WEAK_ES },
398 { 0xFF0E, 0xFF0F, WEAK_CS },
399 { 0xFF10, 0xFF19, WEAK_EN },
400 { 0xFF1A, 0xFF1A, WEAK_CS },
401 { 0xFF1B, 0xFF20, NEUTRAL_ON },
402 { 0xFF3B, 0xFF40, NEUTRAL_ON },
403 { 0xFF5B, 0xFF65, NEUTRAL_ON },
404 { 0xFFE0, 0xFFE1, WEAK_ET },
405 { 0xFFE2, 0xFFE4, NEUTRAL_ON },
406 { 0xFFE5, 0xFFE6, WEAK_ET },
407 { 0xFFE8, 0xFFFD, NEUTRAL_ON },
408 { 0x10101, 0x10101, NEUTRAL_ON },
409 { 0x10140, 0x1019B, NEUTRAL_ON },
410 { 0x101FD, 0x101FD, WEAK_NSM },
411 { 0x10800, 0x1091B, STRONG_R },
412 { 0x1091F, 0x1091F, NEUTRAL_ON },
413 { 0x10920, 0x10A00, STRONG_R },
414 { 0x10A01, 0x10A0F, WEAK_NSM },
415 { 0x10A10, 0x10A33, STRONG_R },
416 { 0x10A38, 0x10A3F, WEAK_NSM },
417 { 0x10A40, 0x10B35, STRONG_R },
418 { 0x10B39, 0x10B3F, NEUTRAL_ON },
419 { 0x10B40, 0x10C48, STRONG_R },
420 { 0x10E60, 0x10E7E, WEAK_AN },
421 { 0x11001, 0x11001, WEAK_NSM },
422 { 0x11038, 0x11046, WEAK_NSM },
423 { 0x11052, 0x11065, NEUTRAL_ON },
424 { 0x11080, 0x11081, WEAK_NSM },
425 { 0x110B3, 0x110B6, WEAK_NSM },
426 { 0x110B9, 0x110BA, WEAK_NSM },
427 { 0x1D167, 0x1D169, WEAK_NSM },
428 { 0x1D173, 0x1D17A, WEAK_BN },
429 { 0x1D17B, 0x1D182, WEAK_NSM },
430 { 0x1D185, 0x1D18B, WEAK_NSM },
431 { 0x1D1AA, 0x1D1AD, WEAK_NSM },
432 { 0x1D200, 0x1D241, NEUTRAL_ON },
433 { 0x1D242, 0x1D244, WEAK_NSM },
434 { 0x1D245, 0x1D356, NEUTRAL_ON },
435 { 0x1D6DB, 0x1D6DB, NEUTRAL_ON },
436 { 0x1D715, 0x1D715, NEUTRAL_ON },
437 { 0x1D74F, 0x1D74F, NEUTRAL_ON },
438 { 0x1D789, 0x1D789, NEUTRAL_ON },
439 { 0x1D7C3, 0x1D7C3, NEUTRAL_ON },
440 { 0x1D7CE, 0x1D7FF, WEAK_EN },
441 { 0x1F000, 0x1F0DF, NEUTRAL_ON },
442 { 0x1F100, 0x1F10A, WEAK_EN },
443 { 0x1F300, 0x1F48B, NEUTRAL_ON },
444 { 0x1F48D, 0x1F523, NEUTRAL_ON },
445 { 0x1F525, 0x1F773, NEUTRAL_ON },
446 { 0xE0001, 0xE007F, WEAK_BN },
447 { 0xE0100, 0xE01EF, WEAK_NSM } };
diff --git a/src/chartab.c b/src/chartab.c
index fb72004356e..0cabaac4cf5 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -1095,22 +1095,31 @@ map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
1095 1095
1096/* Unicode character property tables. 1096/* Unicode character property tables.
1097 1097
1098 This section provides a convenient and efficient way to get a 1098 This section provides a convenient and efficient way to get Unicode
1099 Unicode character property from C code (from Lisp, you must use 1099 character properties of characters from C code (from Lisp, you must
1100 get-char-code-property). 1100 use get-char-code-property).
1101 1101
1102 The typical usage is to get a char-table for a specific property at 1102 The typical usage is to get a char-table object for a specific
1103 a proper initialization time as this: 1103 property like this (use of the "bidi-class" property below is just
1104 an example):
1104 1105
1105 Lisp_Object bidi_class_table = uniprop_table (intern ("bidi-class")); 1106 Lisp_Object bidi_class_table = uniprop_table (intern ("bidi-class"));
1106 1107
1107 and get a property value for character CH as this: 1108 (uniprop_table can return nil if it fails to find data for the
1109 named property, or if it fails to load the appropriate Lisp support
1110 file, so the return value should be tested to be non-nil, before it
1111 is used.)
1108 1112
1109 Lisp_Object bidi_class = CHAR_TABLE_REF (CH, bidi_class_table); 1113 To get a property value for character CH use CHAR_TABLE_REF:
1114
1115 Lisp_Object bidi_class = CHAR_TABLE_REF (bidi_class_table, CH);
1110 1116
1111 In this case, what you actually get is an index number to the 1117 In this case, what you actually get is an index number to the
1112 vector of property values (symbols nil, L, R, etc). 1118 vector of property values (symbols nil, L, R, etc).
1113 1119
1120 The full list of Unicode character properties supported by Emacs is
1121 documented in the ELisp manual, in the node "Character Properties".
1122
1114 A table for Unicode character property has these characteristics: 1123 A table for Unicode character property has these characteristics:
1115 1124
1116 o The purpose is `char-code-property-table', which implies that the 1125 o The purpose is `char-code-property-table', which implies that the
@@ -1122,7 +1131,7 @@ map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
1122 means that we don't have to decode values. 1131 means that we don't have to decode values.
1123 1132
1124 o The third extra slot is a Lisp function, an index (integer) to 1133 o The third extra slot is a Lisp function, an index (integer) to
1125 the array uniprop_enncoder[], or nil. If it is a Lisp function, we 1134 the array uniprop_encoder[], or nil. If it is a Lisp function, we
1126 can't use such a table from C (at the moment). If it is nil, it 1135 can't use such a table from C (at the moment). If it is nil, it
1127 means that we don't have to encode values. */ 1136 means that we don't have to encode values. */
1128 1137
diff --git a/src/deps.mk b/src/deps.mk
index 080144ae1e5..c61b01a95c4 100644
--- a/src/deps.mk
+++ b/src/deps.mk
@@ -39,7 +39,7 @@
39atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ 39atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
40 globals.h ../lib/unistd.h $(config_h) 40 globals.h ../lib/unistd.h $(config_h)
41bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \ 41bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \
42 biditype.h bidimirror.h globals.h $(config_h) 42 globals.h $(config_h)
43buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \ 43buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
44 $(INTERVALS_H) blockinput.h atimer.h systime.h character.h ../lib/unistd.h \ 44 $(INTERVALS_H) blockinput.h atimer.h systime.h character.h ../lib/unistd.h \
45 indent.h keyboard.h coding.h keymap.h frame.h lisp.h globals.h $(config_h) 45 indent.h keyboard.h coding.h keymap.h frame.h lisp.h globals.h $(config_h)
diff --git a/src/dispextern.h b/src/dispextern.h
index 9bd43c5255b..fd408c713c6 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1776,7 +1776,7 @@ extern int face_change_count;
1776 3 bits for it, so we cannot use there values larger than 7. 1776 3 bits for it, so we cannot use there values larger than 7.
1777 1777
1778 The order of members must be in sync with the 8th element of the 1778 The order of members must be in sync with the 8th element of the
1779 member of unidata-prop-alist (in admin/unidata/unidata-getn.el) for 1779 member of unidata-prop-alist (in admin/unidata/unidata-gen.el) for
1780 Unicode character property `bidi-class'. */ 1780 Unicode character property `bidi-class'. */
1781typedef enum { 1781typedef enum {
1782 UNKNOWN_BT = 0, 1782 UNKNOWN_BT = 0,
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index fd29dec9096..792b66b0e4f 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -493,8 +493,6 @@ $(BLD)/atimer.$(O) : \
493 493
494$(BLD)/bidi.$(O) : \ 494$(BLD)/bidi.$(O) : \
495 $(SRC)/bidi.c \ 495 $(SRC)/bidi.c \
496 $(SRC)/bidimirror.h \
497 $(SRC)/biditype.h \
498 $(SRC)/buffer.h \ 496 $(SRC)/buffer.h \
499 $(CHARACTER_H) \ 497 $(CHARACTER_H) \
500 $(CONFIG_H) \ 498 $(CONFIG_H) \