Fossil SCM

Update internal tables (used by e.g. the \w and \W specifiers in regexp expressions) to Unicode 7.0. This is fully upwards compatible, see [http://www.unicode.org/policies/stability_policy.html]

jan.nijtmans 2014-07-19 08:34 trunk merge
Commit 3088939eb1397b8a6da80982e909d68b2abadcd8
1 file changed +132 -120
+132 -120
--- src/unicode.c
+++ src/unicode.c
@@ -43,89 +43,95 @@
4343
static const unsigned int aEntry[] = {
4444
0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
4545
0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
4646
0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
4747
0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
48
- 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163C01,
49
- 0x00164437, 0x0017CC02, 0x00180005, 0x00181816, 0x00187802,
50
- 0x00192C15, 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F,
51
- 0x001B9C07, 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401,
52
- 0x001CC01B, 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804,
53
- 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
54
- 0x00217801, 0x0023901B, 0x00240004, 0x0024E803, 0x0024F812,
55
- 0x00254407, 0x00258804, 0x0025C001, 0x00260403, 0x0026F001,
56
- 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802,
57
- 0x0027C802, 0x0027E802, 0x00280403, 0x0028F001, 0x0028F805,
58
- 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D401,
59
- 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
60
- 0x002B8802, 0x002BC002, 0x002C0403, 0x002CF001, 0x002CF807,
61
- 0x002D1C02, 0x002D2C03, 0x002D5802, 0x002D8802, 0x002DC001,
62
- 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804, 0x002F5C01,
63
- 0x002FCC08, 0x00300403, 0x0030F807, 0x00311803, 0x00312804,
64
- 0x00315402, 0x00318802, 0x0031FC01, 0x00320802, 0x0032F001,
65
- 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
66
- 0x00340802, 0x0034F807, 0x00351803, 0x00352804, 0x00355C01,
67
- 0x00358802, 0x0035E401, 0x00360802, 0x00372801, 0x00373C06,
68
- 0x00375801, 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007,
69
- 0x0038FC01, 0x00391C09, 0x00396802, 0x003AC401, 0x003AD006,
70
- 0x003AEC02, 0x003B2006, 0x003C041F, 0x003CD00C, 0x003DC417,
71
- 0x003E340B, 0x003E6424, 0x003EF80F, 0x003F380D, 0x0040AC14,
72
- 0x00412806, 0x00415804, 0x00417803, 0x00418803, 0x00419C07,
73
- 0x0041C404, 0x0042080C, 0x00423C01, 0x00426806, 0x0043EC01,
74
- 0x004D740C, 0x004E400A, 0x00500001, 0x0059B402, 0x005A0001,
75
- 0x005A6C02, 0x005BAC03, 0x005C4803, 0x005CC805, 0x005D4802,
76
- 0x005DC802, 0x005ED023, 0x005F6004, 0x005F7401, 0x0060000F,
77
- 0x0062A401, 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002,
78
- 0x0066C011, 0x00672002, 0x00677822, 0x00685C05, 0x00687802,
79
- 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007, 0x006AA006,
80
- 0x006C0005, 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D,
81
- 0x006F980E, 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802,
82
- 0x00730008, 0x00734019, 0x0073B401, 0x0073C803, 0x00770027,
48
+ 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163403,
49
+ 0x00164437, 0x0017CC02, 0x0018001D, 0x00187802, 0x00192C15,
50
+ 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F, 0x001B9C07,
51
+ 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401, 0x001CC01B,
52
+ 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804, 0x00206C09,
53
+ 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, 0x00217801,
54
+ 0x00239020, 0x0024E803, 0x0024F812, 0x00254407, 0x00258804,
55
+ 0x0025C001, 0x00260403, 0x0026F001, 0x0026F807, 0x00271C02,
56
+ 0x00272C03, 0x00275C01, 0x00278802, 0x0027C802, 0x0027E802,
57
+ 0x00280403, 0x0028F001, 0x0028F805, 0x00291C02, 0x00292C03,
58
+ 0x00294401, 0x0029C002, 0x0029D401, 0x002A0403, 0x002AF001,
59
+ 0x002AF808, 0x002B1C03, 0x002B2C03, 0x002B8802, 0x002BC002,
60
+ 0x002C0403, 0x002CF001, 0x002CF807, 0x002D1C02, 0x002D2C03,
61
+ 0x002D5802, 0x002D8802, 0x002DC001, 0x002E0801, 0x002EF805,
62
+ 0x002F1803, 0x002F2804, 0x002F5C01, 0x002FCC08, 0x00300004,
63
+ 0x0030F807, 0x00311803, 0x00312804, 0x00315402, 0x00318802,
64
+ 0x0031FC01, 0x00320403, 0x0032F001, 0x0032F807, 0x00331803,
65
+ 0x00332804, 0x00335402, 0x00338802, 0x00340403, 0x0034F807,
66
+ 0x00351803, 0x00352804, 0x00355C01, 0x00358802, 0x0035E401,
67
+ 0x00360802, 0x00372801, 0x00373C06, 0x00375801, 0x00376008,
68
+ 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01, 0x00391C09,
69
+ 0x00396802, 0x003AC401, 0x003AD006, 0x003AEC02, 0x003B2006,
70
+ 0x003C041F, 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424,
71
+ 0x003EF80F, 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804,
72
+ 0x00417803, 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C,
73
+ 0x00423C01, 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A,
74
+ 0x00500001, 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03,
75
+ 0x005C4803, 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023,
76
+ 0x005F6004, 0x005F7401, 0x0060000F, 0x0062A401, 0x0064800C,
77
+ 0x0064C00C, 0x00650001, 0x00651002, 0x0066C011, 0x00672002,
78
+ 0x00677822, 0x00685C05, 0x00687802, 0x0069540A, 0x0069801D,
79
+ 0x0069FC01, 0x006A8007, 0x006AA006, 0x006AC00F, 0x006C0005,
80
+ 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D, 0x006F980E,
81
+ 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802, 0x00730008,
82
+ 0x00734019, 0x0073B401, 0x0073C803, 0x0073E002, 0x00770036,
8383
0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
84
- 0x007FB403, 0x007FF402, 0x00800065, 0x0081A806, 0x0081E805,
85
- 0x00822805, 0x0082801A, 0x00834021, 0x00840002, 0x00840C04,
84
+ 0x007FB403, 0x007FF402, 0x00800065, 0x0081980A, 0x0081E805,
85
+ 0x00822805, 0x0082801E, 0x00834021, 0x00840002, 0x00840C04,
8686
0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
8787
0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
88
- 0x00852804, 0x00853C01, 0x00864264, 0x00900027, 0x0091000B,
89
- 0x0092704E, 0x00940200, 0x009C0475, 0x009E53B9, 0x00AD400A,
90
- 0x00B39406, 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001,
91
- 0x00B5FC01, 0x00B7804F, 0x00B8C00C, 0x00BA001A, 0x00BA6C59,
92
- 0x00BC00D6, 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807,
93
- 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01,
94
- 0x00C64002, 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E,
95
- 0x00C94001, 0x00C98020, 0x00CA2827, 0x00CB003F, 0x00CC0100,
96
- 0x01370040, 0x02924037, 0x0293F802, 0x02983403, 0x0299BC10,
97
- 0x029A7C01, 0x029BC008, 0x029C0017, 0x029C8002, 0x029E2402,
98
- 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C09, 0x02A0D804,
99
- 0x02A1D004, 0x02A20002, 0x02A2D011, 0x02A33802, 0x02A38012,
100
- 0x02A3E003, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
101
- 0x02A6CC1B, 0x02A77802, 0x02A8A40E, 0x02A90C01, 0x02A93002,
102
- 0x02A97004, 0x02A9DC03, 0x02A9EC01, 0x02AAC001, 0x02AAC803,
103
- 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07,
104
- 0x02ABD402, 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02,
105
- 0x037FFC02, 0x03E3FC01, 0x03EC7801, 0x03ECA401, 0x03EEC810,
106
- 0x03F4F802, 0x03F7F002, 0x03F8001A, 0x03F88007, 0x03F8C023,
107
- 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807,
108
- 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405,
109
- 0x04040003, 0x0404DC09, 0x0405E411, 0x0406400C, 0x0407402E,
110
- 0x040E7C01, 0x040F4001, 0x04215C01, 0x04247C01, 0x0424FC01,
111
- 0x04280403, 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01,
112
- 0x04294009, 0x0429FC01, 0x042CE407, 0x04400003, 0x0440E016,
113
- 0x04420003, 0x0442C012, 0x04440003, 0x04449C0E, 0x04450004,
114
- 0x04460003, 0x0446CC0E, 0x04471404, 0x045AAC0D, 0x0491C004,
115
- 0x05BD442E, 0x05BE3C04, 0x074000F6, 0x07440027, 0x0744A4B5,
116
- 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01,
117
- 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401,
118
- 0x075EA401, 0x075F0C01, 0x07BBC002, 0x07C0002C, 0x07C0C064,
119
- 0x07C2800F, 0x07C2C40E, 0x07C3040F, 0x07C3440F, 0x07C4401F,
120
- 0x07C4C03C, 0x07C5C02B, 0x07C7981D, 0x07C8402B, 0x07C90009,
121
- 0x07C94002, 0x07CC0021, 0x07CCC006, 0x07CCDC46, 0x07CE0014,
122
- 0x07CE8025, 0x07CF1805, 0x07CF8011, 0x07D0003F, 0x07D10001,
123
- 0x07D108B6, 0x07D3E404, 0x07D4003E, 0x07D50004, 0x07D54018,
124
- 0x07D7EC46, 0x07D9140B, 0x07DA0046, 0x07DC0074, 0x38000401,
125
- 0x38008060, 0x380400F0, 0x3C000001, 0x3FFFF401, 0x40000001,
126
- 0x43FFF401,
88
+ 0x00852804, 0x00853C01, 0x0086426B, 0x00900027, 0x0091000B,
89
+ 0x0092704E, 0x00940276, 0x009E53E0, 0x00ADD820, 0x00AE6022,
90
+ 0x00AEF40C, 0x00AF2808, 0x00B39406, 0x00B3BC03, 0x00B3E404,
91
+ 0x00B3F802, 0x00B5C001, 0x00B5FC01, 0x00B7804F, 0x00B8C013,
92
+ 0x00BA001A, 0x00BA6C59, 0x00BC00D6, 0x00BFC00C, 0x00C00005,
93
+ 0x00C02019, 0x00C0A807, 0x00C0D802, 0x00C0F403, 0x00C26404,
94
+ 0x00C28001, 0x00C3EC01, 0x00C64002, 0x00C6580A, 0x00C70024,
95
+ 0x00C8001F, 0x00C8A81E, 0x00C94001, 0x00C98020, 0x00CA2827,
96
+ 0x00CB003F, 0x00CC0100, 0x01370040, 0x02924037, 0x0293F802,
97
+ 0x02983403, 0x0299BC10, 0x029A7C01, 0x029BC008, 0x029C0017,
98
+ 0x029C8002, 0x029E2402, 0x02A00801, 0x02A01801, 0x02A02C01,
99
+ 0x02A08C09, 0x02A0D804, 0x02A1D004, 0x02A20002, 0x02A2D011,
100
+ 0x02A33802, 0x02A38012, 0x02A3E003, 0x02A4980A, 0x02A51C0D,
101
+ 0x02A57C01, 0x02A60004, 0x02A6CC1B, 0x02A77802, 0x02A79401,
102
+ 0x02A8A40E, 0x02A90C01, 0x02A93002, 0x02A97004, 0x02A9DC03,
103
+ 0x02A9EC03, 0x02AAC001, 0x02AAC803, 0x02AADC02, 0x02AAF802,
104
+ 0x02AB0401, 0x02AB7802, 0x02ABAC07, 0x02ABD402, 0x02AD6C01,
105
+ 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02, 0x037FFC01,
106
+ 0x03EC7801, 0x03ECA401, 0x03EEC810, 0x03F4F802, 0x03F7F002,
107
+ 0x03F8001A, 0x03F8800E, 0x03F8C023, 0x03F95013, 0x03F9A004,
108
+ 0x03FBFC01, 0x03FC040F, 0x03FC6807, 0x03FCEC06, 0x03FD6C0B,
109
+ 0x03FF8007, 0x03FFA007, 0x03FFE405, 0x04040003, 0x0404DC09,
110
+ 0x0405E411, 0x04063001, 0x0406400C, 0x04068001, 0x0407402E,
111
+ 0x040B8001, 0x040DD805, 0x040E7C01, 0x040F4001, 0x0415BC01,
112
+ 0x04215C01, 0x0421DC02, 0x04247C01, 0x0424FC01, 0x04280403,
113
+ 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01, 0x04294009,
114
+ 0x0429FC01, 0x042B2001, 0x042B9402, 0x042BC007, 0x042CE407,
115
+ 0x042E6404, 0x04400003, 0x0440E016, 0x0441FC04, 0x0442C012,
116
+ 0x04440003, 0x04449C0E, 0x04450004, 0x0445CC03, 0x04460003,
117
+ 0x0446CC0E, 0x04471404, 0x04473401, 0x0448B012, 0x044B7C0C,
118
+ 0x044C0403, 0x044CF001, 0x044CF807, 0x044D1C02, 0x044D2C03,
119
+ 0x044D5C01, 0x044D8802, 0x044D9807, 0x044DC005, 0x0452C014,
120
+ 0x04531801, 0x0456BC07, 0x0456E012, 0x0458C014, 0x045AAC0D,
121
+ 0x0491C005, 0x05A9B802, 0x05ABC006, 0x05ACC010, 0x05AD1002,
122
+ 0x05BD442E, 0x05BE3C04, 0x06F27008, 0x074000F6, 0x07440027,
123
+ 0x0744A4B5, 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01,
124
+ 0x075BEC01, 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01,
125
+ 0x075E2401, 0x075EA401, 0x075F0C01, 0x07A34007, 0x07BBC002,
126
+ 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F, 0x07C3040F,
127
+ 0x07C34425, 0x07C4401F, 0x07C4C03C, 0x07C5C02B, 0x07C7981D,
128
+ 0x07C8402B, 0x07C90009, 0x07C94002, 0x07CC002D, 0x07CCC04E,
129
+ 0x07CE004F, 0x07CF5024, 0x07D000FF, 0x07D4004B, 0x07D5402A,
130
+ 0x07D5EC29, 0x07D6949E, 0x07D9148B, 0x07DB800D, 0x07DBC004,
131
+ 0x07DC0074, 0x07DE0055, 0x07E0000C, 0x07E04038, 0x07E1400A,
132
+ 0x07E18028, 0x07E2401E, 0x38000401, 0x38008060, 0x380400F0,
127133
};
128134
static const unsigned int aAscii[4] = {
129135
0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
130136
};
131137
@@ -253,12 +259,12 @@
253259
unsigned char flags;
254260
unsigned char nRange;
255261
} aEntry[] = {
256262
{65, 14, 26}, {181, 64, 1}, {192, 14, 23},
257263
{216, 14, 7}, {256, 1, 48}, {306, 1, 6},
258
- {313, 1, 16}, {330, 1, 46}, {376, 116, 1},
259
- {377, 1, 6}, {383, 104, 1}, {385, 50, 1},
264
+ {313, 1, 16}, {330, 1, 46}, {376, 126, 1},
265
+ {377, 1, 6}, {383, 114, 1}, {385, 50, 1},
260266
{386, 1, 4}, {390, 44, 1}, {391, 0, 1},
261267
{393, 42, 2}, {395, 0, 1}, {398, 32, 1},
262268
{399, 38, 1}, {400, 40, 1}, {401, 0, 1},
263269
{403, 42, 1}, {404, 46, 1}, {406, 52, 1},
264270
{407, 48, 1}, {408, 0, 1}, {412, 52, 1},
@@ -267,61 +273,64 @@
267273
{428, 0, 1}, {430, 60, 1}, {431, 0, 1},
268274
{433, 58, 2}, {435, 1, 4}, {439, 62, 1},
269275
{440, 0, 1}, {444, 0, 1}, {452, 2, 1},
270276
{453, 0, 1}, {455, 2, 1}, {456, 0, 1},
271277
{458, 2, 1}, {459, 1, 18}, {478, 1, 18},
272
- {497, 2, 1}, {498, 1, 4}, {502, 122, 1},
273
- {503, 134, 1}, {504, 1, 40}, {544, 110, 1},
278
+ {497, 2, 1}, {498, 1, 4}, {502, 132, 1},
279
+ {503, 144, 1}, {504, 1, 40}, {544, 120, 1},
274280
{546, 1, 18}, {570, 70, 1}, {571, 0, 1},
275
- {573, 108, 1}, {574, 68, 1}, {577, 0, 1},
276
- {579, 106, 1}, {580, 28, 1}, {581, 30, 1},
281
+ {573, 118, 1}, {574, 68, 1}, {577, 0, 1},
282
+ {579, 116, 1}, {580, 28, 1}, {581, 30, 1},
277283
{582, 1, 10}, {837, 36, 1}, {880, 1, 4},
278
- {886, 0, 1}, {902, 18, 1}, {904, 16, 3},
279
- {908, 26, 1}, {910, 24, 2}, {913, 14, 17},
280
- {931, 14, 9}, {962, 0, 1}, {975, 4, 1},
281
- {976, 140, 1}, {977, 142, 1}, {981, 146, 1},
282
- {982, 144, 1}, {984, 1, 24}, {1008, 136, 1},
283
- {1009, 138, 1}, {1012, 130, 1}, {1013, 128, 1},
284
- {1015, 0, 1}, {1017, 152, 1}, {1018, 0, 1},
285
- {1021, 110, 3}, {1024, 34, 16}, {1040, 14, 32},
286
- {1120, 1, 34}, {1162, 1, 54}, {1216, 6, 1},
287
- {1217, 1, 14}, {1232, 1, 88}, {1329, 22, 38},
288
- {4256, 66, 38}, {4295, 66, 1}, {4301, 66, 1},
289
- {7680, 1, 150}, {7835, 132, 1}, {7838, 96, 1},
290
- {7840, 1, 96}, {7944, 150, 8}, {7960, 150, 6},
291
- {7976, 150, 8}, {7992, 150, 8}, {8008, 150, 6},
292
- {8025, 151, 8}, {8040, 150, 8}, {8072, 150, 8},
293
- {8088, 150, 8}, {8104, 150, 8}, {8120, 150, 2},
294
- {8122, 126, 2}, {8124, 148, 1}, {8126, 100, 1},
295
- {8136, 124, 4}, {8140, 148, 1}, {8152, 150, 2},
296
- {8154, 120, 2}, {8168, 150, 2}, {8170, 118, 2},
297
- {8172, 152, 1}, {8184, 112, 2}, {8186, 114, 2},
298
- {8188, 148, 1}, {8486, 98, 1}, {8490, 92, 1},
299
- {8491, 94, 1}, {8498, 12, 1}, {8544, 8, 16},
300
- {8579, 0, 1}, {9398, 10, 26}, {11264, 22, 47},
301
- {11360, 0, 1}, {11362, 88, 1}, {11363, 102, 1},
302
- {11364, 90, 1}, {11367, 1, 6}, {11373, 84, 1},
303
- {11374, 86, 1}, {11375, 80, 1}, {11376, 82, 1},
304
- {11378, 0, 1}, {11381, 0, 1}, {11390, 78, 2},
305
- {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
306
- {42560, 1, 46}, {42624, 1, 24}, {42786, 1, 14},
307
- {42802, 1, 62}, {42873, 1, 4}, {42877, 76, 1},
308
- {42878, 1, 10}, {42891, 0, 1}, {42893, 74, 1},
309
- {42896, 1, 4}, {42912, 1, 10}, {42922, 72, 1},
284
+ {886, 0, 1}, {895, 36, 1}, {902, 18, 1},
285
+ {904, 16, 3}, {908, 26, 1}, {910, 24, 2},
286
+ {913, 14, 17}, {931, 14, 9}, {962, 0, 1},
287
+ {975, 4, 1}, {976, 150, 1}, {977, 152, 1},
288
+ {981, 156, 1}, {982, 154, 1}, {984, 1, 24},
289
+ {1008, 146, 1}, {1009, 148, 1}, {1012, 140, 1},
290
+ {1013, 138, 1}, {1015, 0, 1}, {1017, 162, 1},
291
+ {1018, 0, 1}, {1021, 120, 3}, {1024, 34, 16},
292
+ {1040, 14, 32}, {1120, 1, 34}, {1162, 1, 54},
293
+ {1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
294
+ {1329, 22, 38}, {4256, 66, 38}, {4295, 66, 1},
295
+ {4301, 66, 1}, {7680, 1, 150}, {7835, 142, 1},
296
+ {7838, 106, 1}, {7840, 1, 96}, {7944, 160, 8},
297
+ {7960, 160, 6}, {7976, 160, 8}, {7992, 160, 8},
298
+ {8008, 160, 6}, {8025, 161, 8}, {8040, 160, 8},
299
+ {8072, 160, 8}, {8088, 160, 8}, {8104, 160, 8},
300
+ {8120, 160, 2}, {8122, 136, 2}, {8124, 158, 1},
301
+ {8126, 110, 1}, {8136, 134, 4}, {8140, 158, 1},
302
+ {8152, 160, 2}, {8154, 130, 2}, {8168, 160, 2},
303
+ {8170, 128, 2}, {8172, 162, 1}, {8184, 122, 2},
304
+ {8186, 124, 2}, {8188, 158, 1}, {8486, 108, 1},
305
+ {8490, 102, 1}, {8491, 104, 1}, {8498, 12, 1},
306
+ {8544, 8, 16}, {8579, 0, 1}, {9398, 10, 26},
307
+ {11264, 22, 47}, {11360, 0, 1}, {11362, 98, 1},
308
+ {11363, 112, 1}, {11364, 100, 1}, {11367, 1, 6},
309
+ {11373, 94, 1}, {11374, 96, 1}, {11375, 90, 1},
310
+ {11376, 92, 1}, {11378, 0, 1}, {11381, 0, 1},
311
+ {11390, 88, 2}, {11392, 1, 100}, {11499, 1, 4},
312
+ {11506, 0, 1}, {42560, 1, 46}, {42624, 1, 28},
313
+ {42786, 1, 14}, {42802, 1, 62}, {42873, 1, 4},
314
+ {42877, 86, 1}, {42878, 1, 10}, {42891, 0, 1},
315
+ {42893, 82, 1}, {42896, 1, 4}, {42902, 1, 20},
316
+ {42922, 76, 1}, {42923, 72, 1}, {42924, 74, 1},
317
+ {42925, 78, 1}, {42928, 84, 1}, {42929, 80, 1},
310318
{65313, 14, 26},
311319
};
312320
static const unsigned short aiOff[] = {
313321
1, 2, 8, 15, 16, 26, 28, 32,
314322
37, 38, 40, 48, 63, 64, 69, 71,
315323
79, 80, 116, 202, 203, 205, 206, 207,
316324
209, 210, 211, 213, 214, 217, 218, 219,
317
- 775, 7264, 10792, 10795, 23228, 23256, 30204, 54721,
318
- 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274,
319
- 57921, 58019, 58363, 61722, 65268, 65341, 65373, 65406,
320
- 65408, 65410, 65415, 65424, 65436, 65439, 65450, 65462,
321
- 65472, 65476, 65478, 65480, 65482, 65488, 65506, 65511,
322
- 65514, 65521, 65527, 65528, 65529,
325
+ 775, 7264, 10792, 10795, 23217, 23221, 23228, 23231,
326
+ 23254, 23256, 23278, 30204, 54721, 54753, 54754, 54756,
327
+ 54787, 54793, 54809, 57153, 57274, 57921, 58019, 58363,
328
+ 61722, 65268, 65341, 65373, 65406, 65408, 65410, 65415,
329
+ 65424, 65436, 65439, 65450, 65462, 65472, 65476, 65478,
330
+ 65480, 65482, 65488, 65506, 65511, 65514, 65521, 65527,
331
+ 65528, 65529,
323332
};
324333
325334
int ret = c;
326335
327336
assert( c>=0 );
@@ -357,9 +366,12 @@
357366
if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret);
358367
}
359368
360369
else if( c>=66560 && c<66600 ){
361370
ret = c + 40;
371
+ }
372
+ else if( c>=71840 && c<71872 ){
373
+ ret = c + 32;
362374
}
363375
364376
return ret;
365377
}
366378
--- src/unicode.c
+++ src/unicode.c
@@ -43,89 +43,95 @@
43 static const unsigned int aEntry[] = {
44 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
45 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
46 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
47 0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
48 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163C01,
49 0x00164437, 0x0017CC02, 0x00180005, 0x00181816, 0x00187802,
50 0x00192C15, 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F,
51 0x001B9C07, 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401,
52 0x001CC01B, 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804,
53 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
54 0x00217801, 0x0023901B, 0x00240004, 0x0024E803, 0x0024F812,
55 0x00254407, 0x00258804, 0x0025C001, 0x00260403, 0x0026F001,
56 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802,
57 0x0027C802, 0x0027E802, 0x00280403, 0x0028F001, 0x0028F805,
58 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D401,
59 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
60 0x002B8802, 0x002BC002, 0x002C0403, 0x002CF001, 0x002CF807,
61 0x002D1C02, 0x002D2C03, 0x002D5802, 0x002D8802, 0x002DC001,
62 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804, 0x002F5C01,
63 0x002FCC08, 0x00300403, 0x0030F807, 0x00311803, 0x00312804,
64 0x00315402, 0x00318802, 0x0031FC01, 0x00320802, 0x0032F001,
65 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
66 0x00340802, 0x0034F807, 0x00351803, 0x00352804, 0x00355C01,
67 0x00358802, 0x0035E401, 0x00360802, 0x00372801, 0x00373C06,
68 0x00375801, 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007,
69 0x0038FC01, 0x00391C09, 0x00396802, 0x003AC401, 0x003AD006,
70 0x003AEC02, 0x003B2006, 0x003C041F, 0x003CD00C, 0x003DC417,
71 0x003E340B, 0x003E6424, 0x003EF80F, 0x003F380D, 0x0040AC14,
72 0x00412806, 0x00415804, 0x00417803, 0x00418803, 0x00419C07,
73 0x0041C404, 0x0042080C, 0x00423C01, 0x00426806, 0x0043EC01,
74 0x004D740C, 0x004E400A, 0x00500001, 0x0059B402, 0x005A0001,
75 0x005A6C02, 0x005BAC03, 0x005C4803, 0x005CC805, 0x005D4802,
76 0x005DC802, 0x005ED023, 0x005F6004, 0x005F7401, 0x0060000F,
77 0x0062A401, 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002,
78 0x0066C011, 0x00672002, 0x00677822, 0x00685C05, 0x00687802,
79 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007, 0x006AA006,
80 0x006C0005, 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D,
81 0x006F980E, 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802,
82 0x00730008, 0x00734019, 0x0073B401, 0x0073C803, 0x00770027,
83 0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
84 0x007FB403, 0x007FF402, 0x00800065, 0x0081A806, 0x0081E805,
85 0x00822805, 0x0082801A, 0x00834021, 0x00840002, 0x00840C04,
86 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
87 0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
88 0x00852804, 0x00853C01, 0x00864264, 0x00900027, 0x0091000B,
89 0x0092704E, 0x00940200, 0x009C0475, 0x009E53B9, 0x00AD400A,
90 0x00B39406, 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001,
91 0x00B5FC01, 0x00B7804F, 0x00B8C00C, 0x00BA001A, 0x00BA6C59,
92 0x00BC00D6, 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807,
93 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01,
94 0x00C64002, 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E,
95 0x00C94001, 0x00C98020, 0x00CA2827, 0x00CB003F, 0x00CC0100,
96 0x01370040, 0x02924037, 0x0293F802, 0x02983403, 0x0299BC10,
97 0x029A7C01, 0x029BC008, 0x029C0017, 0x029C8002, 0x029E2402,
98 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C09, 0x02A0D804,
99 0x02A1D004, 0x02A20002, 0x02A2D011, 0x02A33802, 0x02A38012,
100 0x02A3E003, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
101 0x02A6CC1B, 0x02A77802, 0x02A8A40E, 0x02A90C01, 0x02A93002,
102 0x02A97004, 0x02A9DC03, 0x02A9EC01, 0x02AAC001, 0x02AAC803,
103 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07,
104 0x02ABD402, 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02,
105 0x037FFC02, 0x03E3FC01, 0x03EC7801, 0x03ECA401, 0x03EEC810,
106 0x03F4F802, 0x03F7F002, 0x03F8001A, 0x03F88007, 0x03F8C023,
107 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807,
108 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405,
109 0x04040003, 0x0404DC09, 0x0405E411, 0x0406400C, 0x0407402E,
110 0x040E7C01, 0x040F4001, 0x04215C01, 0x04247C01, 0x0424FC01,
111 0x04280403, 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01,
112 0x04294009, 0x0429FC01, 0x042CE407, 0x04400003, 0x0440E016,
113 0x04420003, 0x0442C012, 0x04440003, 0x04449C0E, 0x04450004,
114 0x04460003, 0x0446CC0E, 0x04471404, 0x045AAC0D, 0x0491C004,
115 0x05BD442E, 0x05BE3C04, 0x074000F6, 0x07440027, 0x0744A4B5,
116 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01,
117 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401,
118 0x075EA401, 0x075F0C01, 0x07BBC002, 0x07C0002C, 0x07C0C064,
119 0x07C2800F, 0x07C2C40E, 0x07C3040F, 0x07C3440F, 0x07C4401F,
120 0x07C4C03C, 0x07C5C02B, 0x07C7981D, 0x07C8402B, 0x07C90009,
121 0x07C94002, 0x07CC0021, 0x07CCC006, 0x07CCDC46, 0x07CE0014,
122 0x07CE8025, 0x07CF1805, 0x07CF8011, 0x07D0003F, 0x07D10001,
123 0x07D108B6, 0x07D3E404, 0x07D4003E, 0x07D50004, 0x07D54018,
124 0x07D7EC46, 0x07D9140B, 0x07DA0046, 0x07DC0074, 0x38000401,
125 0x38008060, 0x380400F0, 0x3C000001, 0x3FFFF401, 0x40000001,
126 0x43FFF401,
 
 
 
 
 
 
127 };
128 static const unsigned int aAscii[4] = {
129 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
130 };
131
@@ -253,12 +259,12 @@
253 unsigned char flags;
254 unsigned char nRange;
255 } aEntry[] = {
256 {65, 14, 26}, {181, 64, 1}, {192, 14, 23},
257 {216, 14, 7}, {256, 1, 48}, {306, 1, 6},
258 {313, 1, 16}, {330, 1, 46}, {376, 116, 1},
259 {377, 1, 6}, {383, 104, 1}, {385, 50, 1},
260 {386, 1, 4}, {390, 44, 1}, {391, 0, 1},
261 {393, 42, 2}, {395, 0, 1}, {398, 32, 1},
262 {399, 38, 1}, {400, 40, 1}, {401, 0, 1},
263 {403, 42, 1}, {404, 46, 1}, {406, 52, 1},
264 {407, 48, 1}, {408, 0, 1}, {412, 52, 1},
@@ -267,61 +273,64 @@
267 {428, 0, 1}, {430, 60, 1}, {431, 0, 1},
268 {433, 58, 2}, {435, 1, 4}, {439, 62, 1},
269 {440, 0, 1}, {444, 0, 1}, {452, 2, 1},
270 {453, 0, 1}, {455, 2, 1}, {456, 0, 1},
271 {458, 2, 1}, {459, 1, 18}, {478, 1, 18},
272 {497, 2, 1}, {498, 1, 4}, {502, 122, 1},
273 {503, 134, 1}, {504, 1, 40}, {544, 110, 1},
274 {546, 1, 18}, {570, 70, 1}, {571, 0, 1},
275 {573, 108, 1}, {574, 68, 1}, {577, 0, 1},
276 {579, 106, 1}, {580, 28, 1}, {581, 30, 1},
277 {582, 1, 10}, {837, 36, 1}, {880, 1, 4},
278 {886, 0, 1}, {902, 18, 1}, {904, 16, 3},
279 {908, 26, 1}, {910, 24, 2}, {913, 14, 17},
280 {931, 14, 9}, {962, 0, 1}, {975, 4, 1},
281 {976, 140, 1}, {977, 142, 1}, {981, 146, 1},
282 {982, 144, 1}, {984, 1, 24}, {1008, 136, 1},
283 {1009, 138, 1}, {1012, 130, 1}, {1013, 128, 1},
284 {1015, 0, 1}, {1017, 152, 1}, {1018, 0, 1},
285 {1021, 110, 3}, {1024, 34, 16}, {1040, 14, 32},
286 {1120, 1, 34}, {1162, 1, 54}, {1216, 6, 1},
287 {1217, 1, 14}, {1232, 1, 88}, {1329, 22, 38},
288 {4256, 66, 38}, {4295, 66, 1}, {4301, 66, 1},
289 {7680, 1, 150}, {7835, 132, 1}, {7838, 96, 1},
290 {7840, 1, 96}, {7944, 150, 8}, {7960, 150, 6},
291 {7976, 150, 8}, {7992, 150, 8}, {8008, 150, 6},
292 {8025, 151, 8}, {8040, 150, 8}, {8072, 150, 8},
293 {8088, 150, 8}, {8104, 150, 8}, {8120, 150, 2},
294 {8122, 126, 2}, {8124, 148, 1}, {8126, 100, 1},
295 {8136, 124, 4}, {8140, 148, 1}, {8152, 150, 2},
296 {8154, 120, 2}, {8168, 150, 2}, {8170, 118, 2},
297 {8172, 152, 1}, {8184, 112, 2}, {8186, 114, 2},
298 {8188, 148, 1}, {8486, 98, 1}, {8490, 92, 1},
299 {8491, 94, 1}, {8498, 12, 1}, {8544, 8, 16},
300 {8579, 0, 1}, {9398, 10, 26}, {11264, 22, 47},
301 {11360, 0, 1}, {11362, 88, 1}, {11363, 102, 1},
302 {11364, 90, 1}, {11367, 1, 6}, {11373, 84, 1},
303 {11374, 86, 1}, {11375, 80, 1}, {11376, 82, 1},
304 {11378, 0, 1}, {11381, 0, 1}, {11390, 78, 2},
305 {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
306 {42560, 1, 46}, {42624, 1, 24}, {42786, 1, 14},
307 {42802, 1, 62}, {42873, 1, 4}, {42877, 76, 1},
308 {42878, 1, 10}, {42891, 0, 1}, {42893, 74, 1},
309 {42896, 1, 4}, {42912, 1, 10}, {42922, 72, 1},
 
 
310 {65313, 14, 26},
311 };
312 static const unsigned short aiOff[] = {
313 1, 2, 8, 15, 16, 26, 28, 32,
314 37, 38, 40, 48, 63, 64, 69, 71,
315 79, 80, 116, 202, 203, 205, 206, 207,
316 209, 210, 211, 213, 214, 217, 218, 219,
317 775, 7264, 10792, 10795, 23228, 23256, 30204, 54721,
318 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274,
319 57921, 58019, 58363, 61722, 65268, 65341, 65373, 65406,
320 65408, 65410, 65415, 65424, 65436, 65439, 65450, 65462,
321 65472, 65476, 65478, 65480, 65482, 65488, 65506, 65511,
322 65514, 65521, 65527, 65528, 65529,
 
323 };
324
325 int ret = c;
326
327 assert( c>=0 );
@@ -357,9 +366,12 @@
357 if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret);
358 }
359
360 else if( c>=66560 && c<66600 ){
361 ret = c + 40;
 
 
 
362 }
363
364 return ret;
365 }
366
--- src/unicode.c
+++ src/unicode.c
@@ -43,89 +43,95 @@
43 static const unsigned int aEntry[] = {
44 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
45 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
46 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
47 0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
48 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163403,
49 0x00164437, 0x0017CC02, 0x0018001D, 0x00187802, 0x00192C15,
50 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F, 0x001B9C07,
51 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401, 0x001CC01B,
52 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804, 0x00206C09,
53 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, 0x00217801,
54 0x00239020, 0x0024E803, 0x0024F812, 0x00254407, 0x00258804,
55 0x0025C001, 0x00260403, 0x0026F001, 0x0026F807, 0x00271C02,
56 0x00272C03, 0x00275C01, 0x00278802, 0x0027C802, 0x0027E802,
57 0x00280403, 0x0028F001, 0x0028F805, 0x00291C02, 0x00292C03,
58 0x00294401, 0x0029C002, 0x0029D401, 0x002A0403, 0x002AF001,
59 0x002AF808, 0x002B1C03, 0x002B2C03, 0x002B8802, 0x002BC002,
60 0x002C0403, 0x002CF001, 0x002CF807, 0x002D1C02, 0x002D2C03,
61 0x002D5802, 0x002D8802, 0x002DC001, 0x002E0801, 0x002EF805,
62 0x002F1803, 0x002F2804, 0x002F5C01, 0x002FCC08, 0x00300004,
63 0x0030F807, 0x00311803, 0x00312804, 0x00315402, 0x00318802,
64 0x0031FC01, 0x00320403, 0x0032F001, 0x0032F807, 0x00331803,
65 0x00332804, 0x00335402, 0x00338802, 0x00340403, 0x0034F807,
66 0x00351803, 0x00352804, 0x00355C01, 0x00358802, 0x0035E401,
67 0x00360802, 0x00372801, 0x00373C06, 0x00375801, 0x00376008,
68 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01, 0x00391C09,
69 0x00396802, 0x003AC401, 0x003AD006, 0x003AEC02, 0x003B2006,
70 0x003C041F, 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424,
71 0x003EF80F, 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804,
72 0x00417803, 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C,
73 0x00423C01, 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A,
74 0x00500001, 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03,
75 0x005C4803, 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023,
76 0x005F6004, 0x005F7401, 0x0060000F, 0x0062A401, 0x0064800C,
77 0x0064C00C, 0x00650001, 0x00651002, 0x0066C011, 0x00672002,
78 0x00677822, 0x00685C05, 0x00687802, 0x0069540A, 0x0069801D,
79 0x0069FC01, 0x006A8007, 0x006AA006, 0x006AC00F, 0x006C0005,
80 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D, 0x006F980E,
81 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802, 0x00730008,
82 0x00734019, 0x0073B401, 0x0073C803, 0x0073E002, 0x00770036,
83 0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403,
84 0x007FB403, 0x007FF402, 0x00800065, 0x0081980A, 0x0081E805,
85 0x00822805, 0x0082801E, 0x00834021, 0x00840002, 0x00840C04,
86 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401,
87 0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005,
88 0x00852804, 0x00853C01, 0x0086426B, 0x00900027, 0x0091000B,
89 0x0092704E, 0x00940276, 0x009E53E0, 0x00ADD820, 0x00AE6022,
90 0x00AEF40C, 0x00AF2808, 0x00B39406, 0x00B3BC03, 0x00B3E404,
91 0x00B3F802, 0x00B5C001, 0x00B5FC01, 0x00B7804F, 0x00B8C013,
92 0x00BA001A, 0x00BA6C59, 0x00BC00D6, 0x00BFC00C, 0x00C00005,
93 0x00C02019, 0x00C0A807, 0x00C0D802, 0x00C0F403, 0x00C26404,
94 0x00C28001, 0x00C3EC01, 0x00C64002, 0x00C6580A, 0x00C70024,
95 0x00C8001F, 0x00C8A81E, 0x00C94001, 0x00C98020, 0x00CA2827,
96 0x00CB003F, 0x00CC0100, 0x01370040, 0x02924037, 0x0293F802,
97 0x02983403, 0x0299BC10, 0x029A7C01, 0x029BC008, 0x029C0017,
98 0x029C8002, 0x029E2402, 0x02A00801, 0x02A01801, 0x02A02C01,
99 0x02A08C09, 0x02A0D804, 0x02A1D004, 0x02A20002, 0x02A2D011,
100 0x02A33802, 0x02A38012, 0x02A3E003, 0x02A4980A, 0x02A51C0D,
101 0x02A57C01, 0x02A60004, 0x02A6CC1B, 0x02A77802, 0x02A79401,
102 0x02A8A40E, 0x02A90C01, 0x02A93002, 0x02A97004, 0x02A9DC03,
103 0x02A9EC03, 0x02AAC001, 0x02AAC803, 0x02AADC02, 0x02AAF802,
104 0x02AB0401, 0x02AB7802, 0x02ABAC07, 0x02ABD402, 0x02AD6C01,
105 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02, 0x037FFC01,
106 0x03EC7801, 0x03ECA401, 0x03EEC810, 0x03F4F802, 0x03F7F002,
107 0x03F8001A, 0x03F8800E, 0x03F8C023, 0x03F95013, 0x03F9A004,
108 0x03FBFC01, 0x03FC040F, 0x03FC6807, 0x03FCEC06, 0x03FD6C0B,
109 0x03FF8007, 0x03FFA007, 0x03FFE405, 0x04040003, 0x0404DC09,
110 0x0405E411, 0x04063001, 0x0406400C, 0x04068001, 0x0407402E,
111 0x040B8001, 0x040DD805, 0x040E7C01, 0x040F4001, 0x0415BC01,
112 0x04215C01, 0x0421DC02, 0x04247C01, 0x0424FC01, 0x04280403,
113 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01, 0x04294009,
114 0x0429FC01, 0x042B2001, 0x042B9402, 0x042BC007, 0x042CE407,
115 0x042E6404, 0x04400003, 0x0440E016, 0x0441FC04, 0x0442C012,
116 0x04440003, 0x04449C0E, 0x04450004, 0x0445CC03, 0x04460003,
117 0x0446CC0E, 0x04471404, 0x04473401, 0x0448B012, 0x044B7C0C,
118 0x044C0403, 0x044CF001, 0x044CF807, 0x044D1C02, 0x044D2C03,
119 0x044D5C01, 0x044D8802, 0x044D9807, 0x044DC005, 0x0452C014,
120 0x04531801, 0x0456BC07, 0x0456E012, 0x0458C014, 0x045AAC0D,
121 0x0491C005, 0x05A9B802, 0x05ABC006, 0x05ACC010, 0x05AD1002,
122 0x05BD442E, 0x05BE3C04, 0x06F27008, 0x074000F6, 0x07440027,
123 0x0744A4B5, 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01,
124 0x075BEC01, 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01,
125 0x075E2401, 0x075EA401, 0x075F0C01, 0x07A34007, 0x07BBC002,
126 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F, 0x07C3040F,
127 0x07C34425, 0x07C4401F, 0x07C4C03C, 0x07C5C02B, 0x07C7981D,
128 0x07C8402B, 0x07C90009, 0x07C94002, 0x07CC002D, 0x07CCC04E,
129 0x07CE004F, 0x07CF5024, 0x07D000FF, 0x07D4004B, 0x07D5402A,
130 0x07D5EC29, 0x07D6949E, 0x07D9148B, 0x07DB800D, 0x07DBC004,
131 0x07DC0074, 0x07DE0055, 0x07E0000C, 0x07E04038, 0x07E1400A,
132 0x07E18028, 0x07E2401E, 0x38000401, 0x38008060, 0x380400F0,
133 };
134 static const unsigned int aAscii[4] = {
135 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
136 };
137
@@ -253,12 +259,12 @@
259 unsigned char flags;
260 unsigned char nRange;
261 } aEntry[] = {
262 {65, 14, 26}, {181, 64, 1}, {192, 14, 23},
263 {216, 14, 7}, {256, 1, 48}, {306, 1, 6},
264 {313, 1, 16}, {330, 1, 46}, {376, 126, 1},
265 {377, 1, 6}, {383, 114, 1}, {385, 50, 1},
266 {386, 1, 4}, {390, 44, 1}, {391, 0, 1},
267 {393, 42, 2}, {395, 0, 1}, {398, 32, 1},
268 {399, 38, 1}, {400, 40, 1}, {401, 0, 1},
269 {403, 42, 1}, {404, 46, 1}, {406, 52, 1},
270 {407, 48, 1}, {408, 0, 1}, {412, 52, 1},
@@ -267,61 +273,64 @@
273 {428, 0, 1}, {430, 60, 1}, {431, 0, 1},
274 {433, 58, 2}, {435, 1, 4}, {439, 62, 1},
275 {440, 0, 1}, {444, 0, 1}, {452, 2, 1},
276 {453, 0, 1}, {455, 2, 1}, {456, 0, 1},
277 {458, 2, 1}, {459, 1, 18}, {478, 1, 18},
278 {497, 2, 1}, {498, 1, 4}, {502, 132, 1},
279 {503, 144, 1}, {504, 1, 40}, {544, 120, 1},
280 {546, 1, 18}, {570, 70, 1}, {571, 0, 1},
281 {573, 118, 1}, {574, 68, 1}, {577, 0, 1},
282 {579, 116, 1}, {580, 28, 1}, {581, 30, 1},
283 {582, 1, 10}, {837, 36, 1}, {880, 1, 4},
284 {886, 0, 1}, {895, 36, 1}, {902, 18, 1},
285 {904, 16, 3}, {908, 26, 1}, {910, 24, 2},
286 {913, 14, 17}, {931, 14, 9}, {962, 0, 1},
287 {975, 4, 1}, {976, 150, 1}, {977, 152, 1},
288 {981, 156, 1}, {982, 154, 1}, {984, 1, 24},
289 {1008, 146, 1}, {1009, 148, 1}, {1012, 140, 1},
290 {1013, 138, 1}, {1015, 0, 1}, {1017, 162, 1},
291 {1018, 0, 1}, {1021, 120, 3}, {1024, 34, 16},
292 {1040, 14, 32}, {1120, 1, 34}, {1162, 1, 54},
293 {1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
294 {1329, 22, 38}, {4256, 66, 38}, {4295, 66, 1},
295 {4301, 66, 1}, {7680, 1, 150}, {7835, 142, 1},
296 {7838, 106, 1}, {7840, 1, 96}, {7944, 160, 8},
297 {7960, 160, 6}, {7976, 160, 8}, {7992, 160, 8},
298 {8008, 160, 6}, {8025, 161, 8}, {8040, 160, 8},
299 {8072, 160, 8}, {8088, 160, 8}, {8104, 160, 8},
300 {8120, 160, 2}, {8122, 136, 2}, {8124, 158, 1},
301 {8126, 110, 1}, {8136, 134, 4}, {8140, 158, 1},
302 {8152, 160, 2}, {8154, 130, 2}, {8168, 160, 2},
303 {8170, 128, 2}, {8172, 162, 1}, {8184, 122, 2},
304 {8186, 124, 2}, {8188, 158, 1}, {8486, 108, 1},
305 {8490, 102, 1}, {8491, 104, 1}, {8498, 12, 1},
306 {8544, 8, 16}, {8579, 0, 1}, {9398, 10, 26},
307 {11264, 22, 47}, {11360, 0, 1}, {11362, 98, 1},
308 {11363, 112, 1}, {11364, 100, 1}, {11367, 1, 6},
309 {11373, 94, 1}, {11374, 96, 1}, {11375, 90, 1},
310 {11376, 92, 1}, {11378, 0, 1}, {11381, 0, 1},
311 {11390, 88, 2}, {11392, 1, 100}, {11499, 1, 4},
312 {11506, 0, 1}, {42560, 1, 46}, {42624, 1, 28},
313 {42786, 1, 14}, {42802, 1, 62}, {42873, 1, 4},
314 {42877, 86, 1}, {42878, 1, 10}, {42891, 0, 1},
315 {42893, 82, 1}, {42896, 1, 4}, {42902, 1, 20},
316 {42922, 76, 1}, {42923, 72, 1}, {42924, 74, 1},
317 {42925, 78, 1}, {42928, 84, 1}, {42929, 80, 1},
318 {65313, 14, 26},
319 };
320 static const unsigned short aiOff[] = {
321 1, 2, 8, 15, 16, 26, 28, 32,
322 37, 38, 40, 48, 63, 64, 69, 71,
323 79, 80, 116, 202, 203, 205, 206, 207,
324 209, 210, 211, 213, 214, 217, 218, 219,
325 775, 7264, 10792, 10795, 23217, 23221, 23228, 23231,
326 23254, 23256, 23278, 30204, 54721, 54753, 54754, 54756,
327 54787, 54793, 54809, 57153, 57274, 57921, 58019, 58363,
328 61722, 65268, 65341, 65373, 65406, 65408, 65410, 65415,
329 65424, 65436, 65439, 65450, 65462, 65472, 65476, 65478,
330 65480, 65482, 65488, 65506, 65511, 65514, 65521, 65527,
331 65528, 65529,
332 };
333
334 int ret = c;
335
336 assert( c>=0 );
@@ -357,9 +366,12 @@
366 if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret);
367 }
368
369 else if( c>=66560 && c<66600 ){
370 ret = c + 40;
371 }
372 else if( c>=71840 && c<71872 ){
373 ret = c + 32;
374 }
375
376 return ret;
377 }
378

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button