Fossil SCM

Update tables to Unicode 17

jan.nijtmans 2025-11-20 10:25 trunk
Commit 2984310f0914ccc000249041cd952f03cf35f4c5f9a24dc7c48d8d6953d9bcfe
1 file changed +199 -169
+199 -169
--- src/unicode.c
+++ src/unicode.c
@@ -44,110 +44,121 @@
4444
0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07,
4545
0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01,
4646
0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401,
4747
0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01,
4848
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, 0x001FF403, 0x00205804,
53
- 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
54
- 0x00217801, 0x00234C31, 0x0024E803, 0x0024F812, 0x00254407,
55
- 0x00258804, 0x0025C001, 0x00260403, 0x0026F001, 0x0026F807,
56
- 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802, 0x0027C802,
57
- 0x0027E802, 0x0027F402, 0x00280403, 0x0028F001, 0x0028F805,
58
- 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D402,
59
- 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
60
- 0x002B8802, 0x002BC002, 0x002BE806, 0x002C0403, 0x002CF001,
61
- 0x002CF807, 0x002D1C02, 0x002D2C03, 0x002D5403, 0x002D8802,
62
- 0x002DC001, 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804,
63
- 0x002F5C01, 0x002FCC08, 0x00300005, 0x0030F807, 0x00311803,
64
- 0x00312804, 0x00315402, 0x00318802, 0x0031DC01, 0x0031FC01,
65
- 0x00320404, 0x0032F001, 0x0032F807, 0x00331803, 0x00332804,
66
- 0x00335402, 0x00338802, 0x00340004, 0x0034EC02, 0x0034F807,
67
- 0x00351803, 0x00352804, 0x00353C01, 0x00355C01, 0x00358802,
68
- 0x0035E401, 0x00360403, 0x00372801, 0x00373C06, 0x00375801,
69
- 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01,
70
- 0x00391C09, 0x00396802, 0x003AC401, 0x003AD009, 0x003B2006,
71
- 0x003C041F, 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424,
72
- 0x003EF80F, 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804,
73
- 0x00417803, 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C,
74
- 0x00423C01, 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A,
75
- 0x00500001, 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03,
76
- 0x005C4803, 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023,
77
- 0x005F6004, 0x005F7401, 0x0060000F, 0x00621402, 0x0062A401,
78
- 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002, 0x00677822,
79
- 0x00685C05, 0x00687802, 0x0069540A, 0x0069801D, 0x0069FC01,
80
- 0x006A8007, 0x006AA006, 0x006AC011, 0x006C0005, 0x006CD011,
81
- 0x006D6823, 0x006E0003, 0x006E840D, 0x006F980E, 0x006FF004,
49
+ 0x00164437, 0x0017CC02, 0x00180020, 0x00192C15, 0x0019A804,
50
+ 0x0019C001, 0x001B5001, 0x001B580F, 0x001B9C07, 0x001BF402,
51
+ 0x001C000E, 0x001C3C01, 0x001C4401, 0x001CC01B, 0x001E980B,
52
+ 0x001FAC09, 0x001FD804, 0x001FF403, 0x00205804, 0x00206C09,
53
+ 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, 0x00217801,
54
+ 0x00222001, 0x00224002, 0x00225C09, 0x0023283A, 0x0024E803,
55
+ 0x0024F812, 0x00254407, 0x00258804, 0x0025C001, 0x00260403,
56
+ 0x0026F001, 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01,
57
+ 0x00278802, 0x0027C802, 0x0027E802, 0x0027F402, 0x00280403,
58
+ 0x0028F001, 0x0028F805, 0x00291C02, 0x00292C03, 0x00294401,
59
+ 0x0029C002, 0x0029D402, 0x002A0403, 0x002AF001, 0x002AF808,
60
+ 0x002B1C03, 0x002B2C03, 0x002B8802, 0x002BC002, 0x002BE806,
61
+ 0x002C0403, 0x002CF001, 0x002CF807, 0x002D1C02, 0x002D2C03,
62
+ 0x002D5403, 0x002D8802, 0x002DC001, 0x002E0801, 0x002EF805,
63
+ 0x002F1803, 0x002F2804, 0x002F5C01, 0x002FCC08, 0x00300005,
64
+ 0x0030F001, 0x0030F807, 0x00311803, 0x00312804, 0x00315402,
65
+ 0x00318802, 0x0031DC01, 0x0031FC01, 0x00320404, 0x0032F001,
66
+ 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
67
+ 0x0033CC01, 0x00340004, 0x0034EC02, 0x0034F807, 0x00351803,
68
+ 0x00352804, 0x00353C01, 0x00355C01, 0x00358802, 0x0035E401,
69
+ 0x00360403, 0x00372801, 0x00373C06, 0x00375801, 0x00376008,
70
+ 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01, 0x00391C09,
71
+ 0x00396802, 0x003AC401, 0x003AD009, 0x003B2007, 0x003C041F,
72
+ 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424, 0x003EF80F,
73
+ 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804, 0x00417803,
74
+ 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C, 0x00423C01,
75
+ 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A, 0x00500001,
76
+ 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03, 0x005C4804,
77
+ 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023, 0x005F6004,
78
+ 0x005F7401, 0x00600010, 0x00621402, 0x0062A401, 0x0064800C,
79
+ 0x0064C00C, 0x00650001, 0x00651002, 0x00677822, 0x00685C05,
80
+ 0x00687802, 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007,
81
+ 0x006AA006, 0x006AC02E, 0x006B800C, 0x006C0005, 0x006CD011,
82
+ 0x006D3802, 0x006D6829, 0x006E840D, 0x006F980E, 0x006FF004,
8283
0x00709014, 0x0070EC05, 0x0071F802, 0x00730008, 0x00734019,
83
- 0x0073B401, 0x0073D001, 0x0073DC03, 0x0077003A, 0x0077EC05,
84
- 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403, 0x007FB403,
85
- 0x007FF402, 0x00800065, 0x0081980A, 0x0081E805, 0x00822805,
86
- 0x00828020, 0x00834021, 0x00840002, 0x00840C04, 0x00842002,
87
- 0x00845001, 0x00845803, 0x00847806, 0x00849401, 0x00849C01,
88
- 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005, 0x00852804,
89
- 0x00853C01, 0x00862802, 0x00864297, 0x0091000B, 0x0092704E,
90
- 0x00940276, 0x009E53E0, 0x00ADD820, 0x00AE5C69, 0x00B39406,
91
- 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001, 0x00B5FC01,
92
- 0x00B7804F, 0x00B8C023, 0x00BA001A, 0x00BA6C59, 0x00BC00D6,
93
- 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807, 0x00C0D802,
94
- 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01, 0x00C64002,
95
- 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E, 0x00C94001,
96
- 0x00C98020, 0x00CA2827, 0x00CB0140, 0x01370040, 0x02924037,
97
- 0x0293F802, 0x02983403, 0x0299BC10, 0x029A7802, 0x029BC008,
98
- 0x029C0017, 0x029C8002, 0x029E2402, 0x02A00801, 0x02A01801,
99
- 0x02A02C01, 0x02A08C0A, 0x02A0D804, 0x02A1D004, 0x02A20002,
100
- 0x02A2D012, 0x02A33802, 0x02A38012, 0x02A3E003, 0x02A3F001,
101
- 0x02A3FC01, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
102
- 0x02A6CC1B, 0x02A77802, 0x02A79401, 0x02A8A40E, 0x02A90C01,
103
- 0x02A93002, 0x02A97004, 0x02A9DC03, 0x02A9EC03, 0x02AAC001,
104
- 0x02AAC803, 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802,
105
- 0x02ABAC07, 0x02ABD402, 0x02AD6C01, 0x02ADA802, 0x02AF8C0B,
106
- 0x03600001, 0x036DFC02, 0x036FFC02, 0x037FFC01, 0x03EC7801,
107
- 0x03ECA401, 0x03EEC810, 0x03F4F802, 0x03F7F002, 0x03F8001A,
108
- 0x03F88033, 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F,
109
- 0x03FC6807, 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007,
110
- 0x03FFE405, 0x04040003, 0x0404DC09, 0x0405E411, 0x04063003,
111
- 0x0406400D, 0x04068001, 0x0407402E, 0x040B8001, 0x040DD805,
112
- 0x040E7C01, 0x040F4001, 0x0415BC01, 0x04215C01, 0x0421DC02,
113
- 0x04247C01, 0x0424FC01, 0x04280403, 0x04281402, 0x04283004,
114
- 0x0428E003, 0x0428FC01, 0x04294009, 0x0429FC01, 0x042B2001,
115
- 0x042B9402, 0x042BC007, 0x042CE407, 0x042E6404, 0x04349004,
116
- 0x043AAC03, 0x043D180B, 0x043D5405, 0x04400003, 0x0440E016,
117
- 0x0441FC04, 0x0442C012, 0x04433401, 0x04440003, 0x04449C0E,
118
- 0x04450004, 0x04451402, 0x0445CC03, 0x04460003, 0x0446CC0E,
119
- 0x0447140B, 0x04476C01, 0x04477403, 0x0448B013, 0x044AA401,
120
- 0x044B7C0C, 0x044C0004, 0x044CEC02, 0x044CF807, 0x044D1C02,
121
- 0x044D2C03, 0x044D5C01, 0x044D8802, 0x044D9807, 0x044DC005,
122
- 0x0450D412, 0x04512C05, 0x04516802, 0x04517402, 0x0452C014,
123
- 0x04531801, 0x0456BC07, 0x0456E020, 0x04577002, 0x0458C014,
124
- 0x0459800D, 0x045AAC0D, 0x045C740F, 0x045CF004, 0x0460B010,
125
- 0x0464C006, 0x0464DC02, 0x0464EC04, 0x04650001, 0x04650805,
126
- 0x04674407, 0x04676807, 0x04678801, 0x04679001, 0x0468040A,
127
- 0x0468CC07, 0x0468EC0D, 0x0469440B, 0x046A2813, 0x046A7805,
84
+ 0x0073B401, 0x0073D001, 0x0073DC03, 0x00770040, 0x007EF401,
85
+ 0x007EFC03, 0x007F3403, 0x007F7403, 0x007FB403, 0x007FF402,
86
+ 0x00800065, 0x0081980A, 0x0081E805, 0x00822805, 0x00828022,
87
+ 0x00834021, 0x00840002, 0x00840C04, 0x00842002, 0x00845001,
88
+ 0x00845803, 0x00847806, 0x00849401, 0x00849C01, 0x0084A401,
89
+ 0x0084B801, 0x0084E802, 0x00850005, 0x00852804, 0x00853C01,
90
+ 0x00862802, 0x0086429A, 0x0091000B, 0x0092704E, 0x00940276,
91
+ 0x009E53E0, 0x00ADD88A, 0x00B39406, 0x00B3BC03, 0x00B3E404,
92
+ 0x00B3F802, 0x00B5C001, 0x00B5FC01, 0x00B7804F, 0x00B8C02E,
93
+ 0x00BA001A, 0x00BA6C59, 0x00BC00D6, 0x00BFC015, 0x00C02019,
94
+ 0x00C0A807, 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001,
95
+ 0x00C3EC01, 0x00C64002, 0x00C6580A, 0x00C70026, 0x00C7BC01,
96
+ 0x00C8001F, 0x00C8A81E, 0x00C94001, 0x00C98020, 0x00CA2827,
97
+ 0x00CB0140, 0x01370040, 0x02924037, 0x0293F802, 0x02983403,
98
+ 0x0299BC10, 0x029A7802, 0x029BC008, 0x029C0017, 0x029C8002,
99
+ 0x029E2402, 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C0A,
100
+ 0x02A0D804, 0x02A1D004, 0x02A20002, 0x02A2D012, 0x02A33802,
101
+ 0x02A38012, 0x02A3E003, 0x02A3F001, 0x02A3FC01, 0x02A4980A,
102
+ 0x02A51C0D, 0x02A57C01, 0x02A60004, 0x02A6CC1B, 0x02A77802,
103
+ 0x02A79401, 0x02A8A40E, 0x02A90C01, 0x02A93002, 0x02A97004,
104
+ 0x02A9DC03, 0x02A9EC03, 0x02AAC001, 0x02AAC803, 0x02AADC02,
105
+ 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07, 0x02ABD402,
106
+ 0x02AD6C01, 0x02ADA802, 0x02AF8C0B, 0x03600001, 0x036DFC02,
107
+ 0x036FFC02, 0x037FFC01, 0x03EC7801, 0x03ECA401, 0x03EEC821,
108
+ 0x03F4F812, 0x03F64002, 0x03F72008, 0x03F7F01E, 0x03F88033,
109
+ 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807,
110
+ 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405,
111
+ 0x04040003, 0x0404DC09, 0x0405E411, 0x04063003, 0x0406400D,
112
+ 0x04068001, 0x0407402E, 0x040B8001, 0x040DD805, 0x040E7C01,
113
+ 0x040F4001, 0x0415BC01, 0x04215C01, 0x0421DC02, 0x04247C01,
114
+ 0x0424FC01, 0x04280403, 0x04281402, 0x04283004, 0x0428E003,
115
+ 0x0428FC01, 0x04294009, 0x0429FC01, 0x042B2001, 0x042B9402,
116
+ 0x042BC007, 0x042CE407, 0x042E6404, 0x04349004, 0x0435A406,
117
+ 0x04363802, 0x043AAC03, 0x043B4009, 0x043BE806, 0x043D180B,
118
+ 0x043D5405, 0x043E0808, 0x04400003, 0x0440E016, 0x0441C001,
119
+ 0x0441CC02, 0x0441FC04, 0x0442C013, 0x04433401, 0x04440003,
120
+ 0x04449C0E, 0x04450004, 0x04451402, 0x0445CC03, 0x04460003,
121
+ 0x0446CC0E, 0x0447140B, 0x04476C01, 0x04477403, 0x0448B013,
122
+ 0x04490401, 0x044AA401, 0x044B7C0C, 0x044C0004, 0x044CEC02,
123
+ 0x044CF807, 0x044D1C02, 0x044D2C03, 0x044D5C01, 0x044D8802,
124
+ 0x044D9807, 0x044DC005, 0x044EE009, 0x044F0801, 0x044F1401,
125
+ 0x044F1C04, 0x044F3005, 0x044F4801, 0x044F5002, 0x044F5C02,
126
+ 0x044F8402, 0x0450D412, 0x04512C05, 0x04516802, 0x04517402,
127
+ 0x0452C014, 0x04531801, 0x0456BC07, 0x0456E020, 0x04577002,
128
+ 0x0458C014, 0x0459800D, 0x045AAC0D, 0x045AE401, 0x045C740F,
129
+ 0x045CF004, 0x0460B010, 0x0464C006, 0x0464DC02, 0x0464EC04,
130
+ 0x04650001, 0x04650805, 0x04674407, 0x04676807, 0x04678801,
131
+ 0x04679001, 0x0468040A, 0x0468CC07, 0x0468EC0D, 0x0469440B,
132
+ 0x046A2813, 0x046A7805, 0x046C000A, 0x046D8008, 0x046F8401,
128133
0x0470BC08, 0x0470E008, 0x04710405, 0x0471C002, 0x04724816,
129134
0x0472A40E, 0x0474C406, 0x0474E801, 0x0474F002, 0x0474FC07,
130135
0x04751C01, 0x04762805, 0x04764002, 0x04764C05, 0x047BCC06,
131
- 0x047F541D, 0x047FFC01, 0x0491C005, 0x04D0C009, 0x05A9B802,
132
- 0x05ABC006, 0x05ACC010, 0x05AD1002, 0x05BA5C04, 0x05BD3C01,
133
- 0x05BD4437, 0x05BE3C04, 0x05BF8801, 0x05BF9001, 0x05BFC002,
134
- 0x06F27008, 0x074000F6, 0x07440027, 0x0744A4C0, 0x07480046,
135
- 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01, 0x075C5401,
136
- 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401, 0x075EA401,
137
- 0x075F0C01, 0x0760028C, 0x076A6C05, 0x076A840F, 0x07800007,
138
- 0x07802011, 0x07806C07, 0x07808C02, 0x07809805, 0x0784C007,
139
- 0x07853C01, 0x078BB004, 0x078BFC01, 0x07A34007, 0x07A51007,
140
- 0x07A57802, 0x07B2B001, 0x07B2C001, 0x07B4B801, 0x07BBC002,
141
- 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F, 0x07C3040F,
142
- 0x07C34425, 0x07C434A1, 0x07C7981D, 0x07C8402C, 0x07C90009,
143
- 0x07C94002, 0x07C98006, 0x07CC03D8, 0x07DB800D, 0x07DBC00D,
144
- 0x07DC0074, 0x07DE0059, 0x07DF800C, 0x07E0000C, 0x07E04038,
145
- 0x07E1400A, 0x07E18028, 0x07E2401E, 0x07E2C002, 0x07E40079,
146
- 0x07E5E852, 0x07E73487, 0x07E9800E, 0x07E9C005, 0x07E9E003,
147
- 0x07EA0007, 0x07EA4019, 0x07EAC007, 0x07EB0003, 0x07EB4007,
148
- 0x07EC0093, 0x07EE5037, 0x38000401, 0x38008060, 0x380400F0,
136
+ 0x047C0002, 0x047C0C01, 0x047CD007, 0x047CF812, 0x047D6801,
137
+ 0x047F541D, 0x047FFC01, 0x0491C005, 0x04BFC402, 0x04D0C011,
138
+ 0x04D11C0F, 0x05847812, 0x05A9B802, 0x05ABC006, 0x05ACC010,
139
+ 0x05AD1002, 0x05B5B403, 0x05BA5C04, 0x05BD3C01, 0x05BD4437,
140
+ 0x05BE3C04, 0x05BF8801, 0x05BF9001, 0x05BFC002, 0x06F27008,
141
+ 0x073000F0, 0x0733E803, 0x073401B4, 0x073AE817, 0x073B8011,
142
+ 0x073C002E, 0x073CC017, 0x073D4074, 0x074000F6, 0x07440027,
143
+ 0x0744A4C2, 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01,
144
+ 0x075BEC01, 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01,
145
+ 0x075E2401, 0x075EA401, 0x075F0C01, 0x0760028C, 0x076A6C05,
146
+ 0x076A840F, 0x07800007, 0x07802011, 0x07806C07, 0x07808C02,
147
+ 0x07809805, 0x07823C01, 0x0784C007, 0x07853C01, 0x078AB801,
148
+ 0x078BB004, 0x078BFC01, 0x0793B004, 0x0797B802, 0x0797FC01,
149
+ 0x079B8C01, 0x079B9801, 0x079BB802, 0x079BD401, 0x07A34007,
150
+ 0x07A51007, 0x07A57802, 0x07B2B001, 0x07B2C001, 0x07B4B801,
151
+ 0x07BBC002, 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F,
152
+ 0x07C3040F, 0x07C34425, 0x07C434A1, 0x07C7981D, 0x07C8402C,
153
+ 0x07C90009, 0x07C94002, 0x07C98006, 0x07CC03D9, 0x07DB7011,
154
+ 0x07DBC00D, 0x07DC00DA, 0x07DF800C, 0x07DFC001, 0x07E0000C,
155
+ 0x07E04038, 0x07E1400A, 0x07E18028, 0x07E2401E, 0x07E2C00C,
156
+ 0x07E30002, 0x07E34009, 0x07E40158, 0x07E9800E, 0x07E9C00D,
157
+ 0x07EA000B, 0x07EA3839, 0x07EB2001, 0x07EB3410, 0x07EB7C0C,
158
+ 0x07EBBC0A, 0x07EC0093, 0x07EE505C, 0x07EFE801, 0x38000401,
159
+ 0x38008060, 0x380400F0,
149160
};
150161
static const unsigned int aAscii[4] = {
151162
0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
152163
};
153164
@@ -240,12 +251,11 @@
240251
iHi = iTest-1;
241252
}
242253
}
243254
assert( key>=aDia[iRes] );
244255
if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
245
- return (c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c :
246
- ((int)aChar[iRes] & 0x7F);
256
+ return (c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : ((int)aChar[iRes] & 0x7F);
247257
}
248258
249259
250260
/*
251261
** Return true if the argument interpreted as a unicode codepoint
@@ -291,89 +301,91 @@
291301
static const struct TableEntry {
292302
unsigned short iCode;
293303
unsigned char flags;
294304
unsigned char nRange;
295305
} aEntry[] = {
296
- {65, 14, 26}, {181, 66, 1}, {192, 14, 23},
297
- {216, 14, 7}, {256, 1, 48}, {306, 1, 6},
298
- {313, 1, 16}, {330, 1, 46}, {376, 156, 1},
299
- {377, 1, 6}, {383, 144, 1}, {385, 52, 1},
300
- {386, 1, 4}, {390, 46, 1}, {391, 0, 1},
301
- {393, 44, 2}, {395, 0, 1}, {398, 34, 1},
302
- {399, 40, 1}, {400, 42, 1}, {401, 0, 1},
303
- {403, 44, 1}, {404, 48, 1}, {406, 54, 1},
304
- {407, 50, 1}, {408, 0, 1}, {412, 54, 1},
305
- {413, 56, 1}, {415, 58, 1}, {416, 1, 6},
306
- {422, 62, 1}, {423, 0, 1}, {425, 62, 1},
307
- {428, 0, 1}, {430, 62, 1}, {431, 0, 1},
308
- {433, 60, 2}, {435, 1, 4}, {439, 64, 1},
306
+ {65, 16, 26}, {181, 70, 1}, {192, 16, 23},
307
+ {216, 16, 7}, {256, 1, 48}, {306, 1, 6},
308
+ {313, 1, 16}, {330, 1, 46}, {376, 168, 1},
309
+ {377, 1, 6}, {383, 156, 1}, {385, 56, 1},
310
+ {386, 1, 4}, {390, 50, 1}, {391, 0, 1},
311
+ {393, 48, 2}, {395, 0, 1}, {398, 38, 1},
312
+ {399, 44, 1}, {400, 46, 1}, {401, 0, 1},
313
+ {403, 48, 1}, {404, 52, 1}, {406, 58, 1},
314
+ {407, 54, 1}, {408, 0, 1}, {412, 58, 1},
315
+ {413, 60, 1}, {415, 62, 1}, {416, 1, 6},
316
+ {422, 66, 1}, {423, 0, 1}, {425, 66, 1},
317
+ {428, 0, 1}, {430, 66, 1}, {431, 0, 1},
318
+ {433, 64, 2}, {435, 1, 4}, {439, 68, 1},
309319
{440, 0, 1}, {444, 0, 1}, {452, 2, 1},
310320
{453, 0, 1}, {455, 2, 1}, {456, 0, 1},
311321
{458, 2, 1}, {459, 1, 18}, {478, 1, 18},
312
- {497, 2, 1}, {498, 1, 4}, {502, 162, 1},
313
- {503, 174, 1}, {504, 1, 40}, {544, 150, 1},
314
- {546, 1, 18}, {570, 74, 1}, {571, 0, 1},
315
- {573, 148, 1}, {574, 72, 1}, {577, 0, 1},
316
- {579, 146, 1}, {580, 30, 1}, {581, 32, 1},
317
- {582, 1, 10}, {837, 38, 1}, {880, 1, 4},
318
- {886, 0, 1}, {895, 38, 1}, {902, 20, 1},
319
- {904, 18, 3}, {908, 28, 1}, {910, 26, 2},
320
- {913, 14, 17}, {931, 14, 9}, {962, 0, 1},
321
- {975, 4, 1}, {976, 180, 1}, {977, 182, 1},
322
- {981, 186, 1}, {982, 184, 1}, {984, 1, 24},
323
- {1008, 176, 1}, {1009, 178, 1}, {1012, 170, 1},
324
- {1013, 168, 1}, {1015, 0, 1}, {1017, 192, 1},
325
- {1018, 0, 1}, {1021, 150, 3}, {1024, 36, 16},
326
- {1040, 14, 32}, {1120, 1, 34}, {1162, 1, 54},
322
+ {497, 2, 1}, {498, 1, 4}, {502, 174, 1},
323
+ {503, 186, 1}, {504, 1, 40}, {544, 162, 1},
324
+ {546, 1, 18}, {570, 78, 1}, {571, 0, 1},
325
+ {573, 160, 1}, {574, 76, 1}, {577, 0, 1},
326
+ {579, 158, 1}, {580, 34, 1}, {581, 36, 1},
327
+ {582, 1, 10}, {837, 42, 1}, {880, 1, 4},
328
+ {886, 0, 1}, {895, 42, 1}, {902, 22, 1},
329
+ {904, 20, 3}, {908, 32, 1}, {910, 30, 2},
330
+ {913, 16, 17}, {931, 16, 9}, {962, 0, 1},
331
+ {975, 4, 1}, {976, 192, 1}, {977, 194, 1},
332
+ {981, 198, 1}, {982, 196, 1}, {984, 1, 24},
333
+ {1008, 188, 1}, {1009, 190, 1}, {1012, 182, 1},
334
+ {1013, 180, 1}, {1015, 0, 1}, {1017, 204, 1},
335
+ {1018, 0, 1}, {1021, 162, 3}, {1024, 40, 16},
336
+ {1040, 16, 32}, {1120, 1, 34}, {1162, 1, 54},
327337
{1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
328
- {1329, 24, 38}, {4256, 70, 38}, {4295, 70, 1},
329
- {4301, 70, 1}, {5112, 190, 6}, {7296, 126, 1},
330
- {7297, 128, 1}, {7298, 130, 1}, {7299, 134, 2},
331
- {7301, 132, 1}, {7302, 136, 1}, {7303, 138, 1},
332
- {7304, 100, 1}, {7312, 142, 43}, {7357, 142, 3},
333
- {7680, 1, 150}, {7835, 172, 1}, {7838, 120, 1},
334
- {7840, 1, 96}, {7944, 190, 8}, {7960, 190, 6},
335
- {7976, 190, 8}, {7992, 190, 8}, {8008, 190, 6},
336
- {8025, 191, 8}, {8040, 190, 8}, {8072, 190, 8},
337
- {8088, 190, 8}, {8104, 190, 8}, {8120, 190, 2},
338
- {8122, 166, 2}, {8124, 188, 1}, {8126, 124, 1},
339
- {8136, 164, 4}, {8140, 188, 1}, {8152, 190, 2},
340
- {8154, 160, 2}, {8168, 190, 2}, {8170, 158, 2},
341
- {8172, 192, 1}, {8184, 152, 2}, {8186, 154, 2},
342
- {8188, 188, 1}, {8486, 122, 1}, {8490, 116, 1},
343
- {8491, 118, 1}, {8498, 12, 1}, {8544, 8, 16},
344
- {8579, 0, 1}, {9398, 10, 26}, {11264, 24, 47},
345
- {11360, 0, 1}, {11362, 112, 1}, {11363, 140, 1},
346
- {11364, 114, 1}, {11367, 1, 6}, {11373, 108, 1},
347
- {11374, 110, 1}, {11375, 104, 1}, {11376, 106, 1},
348
- {11378, 0, 1}, {11381, 0, 1}, {11390, 102, 2},
338
+ {1329, 28, 38}, {4256, 74, 38}, {4295, 74, 1},
339
+ {4301, 74, 1}, {5112, 202, 6}, {7296, 138, 1},
340
+ {7297, 140, 1}, {7298, 142, 1}, {7299, 146, 2},
341
+ {7301, 144, 1}, {7302, 148, 1}, {7303, 150, 1},
342
+ {7304, 108, 1}, {7305, 0, 1}, {7312, 154, 43},
343
+ {7357, 154, 3}, {7680, 1, 150}, {7835, 184, 1},
344
+ {7838, 128, 1}, {7840, 1, 96}, {7944, 202, 8},
345
+ {7960, 202, 6}, {7976, 202, 8}, {7992, 202, 8},
346
+ {8008, 202, 6}, {8025, 203, 8}, {8040, 202, 8},
347
+ {8072, 202, 8}, {8088, 202, 8}, {8104, 202, 8},
348
+ {8120, 202, 2}, {8122, 178, 2}, {8124, 200, 1},
349
+ {8126, 136, 1}, {8136, 176, 4}, {8140, 200, 1},
350
+ {8147, 132, 1}, {8152, 202, 2}, {8154, 172, 2},
351
+ {8163, 134, 1}, {8168, 202, 2}, {8170, 170, 2},
352
+ {8172, 204, 1}, {8184, 164, 2}, {8186, 166, 2},
353
+ {8188, 200, 1}, {8486, 130, 1}, {8490, 124, 1},
354
+ {8491, 126, 1}, {8498, 14, 1}, {8544, 8, 16},
355
+ {8579, 0, 1}, {9398, 10, 26}, {11264, 28, 48},
356
+ {11360, 0, 1}, {11362, 120, 1}, {11363, 152, 1},
357
+ {11364, 122, 1}, {11367, 1, 6}, {11373, 116, 1},
358
+ {11374, 118, 1}, {11375, 112, 1}, {11376, 114, 1},
359
+ {11378, 0, 1}, {11381, 0, 1}, {11390, 110, 2},
349360
{11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
350361
{42560, 1, 46}, {42624, 1, 28}, {42786, 1, 14},
351
- {42802, 1, 62}, {42873, 1, 4}, {42877, 98, 1},
352
- {42878, 1, 10}, {42891, 0, 1}, {42893, 88, 1},
353
- {42896, 1, 4}, {42902, 1, 20}, {42922, 80, 1},
354
- {42923, 76, 1}, {42924, 78, 1}, {42925, 84, 1},
355
- {42926, 80, 1}, {42928, 92, 1}, {42929, 86, 1},
356
- {42930, 90, 1}, {42931, 68, 1}, {42932, 1, 12},
357
- {42946, 0, 1}, {42948, 178, 1}, {42949, 82, 1},
358
- {42950, 96, 1}, {42951, 1, 4}, {42997, 0, 1},
359
- {43888, 94, 80}, {65313, 14, 26},
362
+ {42802, 1, 62}, {42873, 1, 4}, {42877, 106, 1},
363
+ {42878, 1, 10}, {42891, 0, 1}, {42893, 96, 1},
364
+ {42896, 1, 4}, {42902, 1, 20}, {42922, 88, 1},
365
+ {42923, 84, 1}, {42924, 86, 1}, {42925, 92, 1},
366
+ {42926, 88, 1}, {42928, 100, 1}, {42929, 94, 1},
367
+ {42930, 98, 1}, {42931, 72, 1}, {42932, 1, 16},
368
+ {42948, 190, 1}, {42949, 90, 1}, {42950, 104, 1},
369
+ {42951, 1, 4}, {42955, 82, 1}, {42956, 1, 16},
370
+ {42972, 80, 1}, {42997, 0, 1}, {43888, 102, 80},
371
+ {64261, 0, 1}, {65313, 16, 26},
360372
};
361373
static const unsigned short aiOff[] = {
362
- 1, 2, 8, 15, 16, 26, 28, 32,
363
- 34, 37, 38, 40, 48, 63, 64, 69,
364
- 71, 79, 80, 116, 202, 203, 205, 206,
365
- 207, 209, 210, 211, 213, 214, 217, 218,
366
- 219, 775, 928, 7264, 10792, 10795, 23217, 23221,
367
- 23228, 23229, 23231, 23254, 23256, 23275, 23278, 26672,
368
- 30152, 30204, 35267, 54721, 54753, 54754, 54756, 54787,
369
- 54793, 54809, 57153, 57274, 57921, 58019, 58363, 59314,
370
- 59315, 59324, 59325, 59326, 59332, 59356, 61722, 62528,
371
- 65268, 65341, 65373, 65406, 65408, 65410, 65415, 65424,
372
- 65436, 65439, 65450, 65462, 65472, 65476, 65478, 65480,
373
- 65482, 65488, 65506, 65511, 65514, 65521, 65527, 65528,
374
- 65529,
374
+ 1, 2, 8, 15, 16, 26, 27, 28,
375
+ 32, 34, 37, 38, 39, 40, 48, 63,
376
+ 64, 69, 71, 79, 80, 116, 202, 203,
377
+ 205, 206, 207, 209, 210, 211, 213, 214,
378
+ 217, 218, 219, 775, 928, 7264, 10792, 10795,
379
+ 22975, 23193, 23217, 23221, 23228, 23229, 23231, 23254,
380
+ 23256, 23275, 23278, 26672, 30152, 30204, 35267, 54721,
381
+ 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274,
382
+ 57921, 58019, 58301, 58317, 58363, 59314, 59315, 59324,
383
+ 59325, 59326, 59332, 59356, 61722, 62528, 65268, 65341,
384
+ 65373, 65406, 65408, 65410, 65415, 65424, 65436, 65439,
385
+ 65450, 65462, 65472, 65476, 65478, 65480, 65482, 65488,
386
+ 65506, 65511, 65514, 65521, 65527, 65528, 65529,
375387
};
376388
377389
int ret = c;
378390
379391
assert( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 );
@@ -413,21 +425,39 @@
413425
else if( c>=66560 && c<66600 ){
414426
ret = c + 40;
415427
}
416428
else if( c>=66736 && c<66772 ){
417429
ret = c + 40;
430
+ }
431
+ else if( c>=66928 && c<66939 ){
432
+ ret = c + 39;
433
+ }
434
+ else if( c>=66940 && c<66955 ){
435
+ ret = c + 39;
436
+ }
437
+ else if( c>=66956 && c<66963 ){
438
+ ret = c + 39;
439
+ }
440
+ else if( c>=66964 && c<66966 ){
441
+ ret = c + 39;
418442
}
419443
else if( c>=68736 && c<68787 ){
420444
ret = c + 64;
445
+ }
446
+ else if( c>=68944 && c<68966 ){
447
+ ret = c + 32;
421448
}
422449
else if( c>=71840 && c<71872 ){
423450
ret = c + 32;
424451
}
425452
else if( c>=93760 && c<93792 ){
426453
ret = c + 32;
454
+ }
455
+ else if( c>=93856 && c<93881 ){
456
+ ret = c + 27;
427457
}
428458
else if( c>=125184 && c<125218 ){
429459
ret = c + 34;
430460
}
431461
432462
return ret;
433463
}
434464
--- src/unicode.c
+++ src/unicode.c
@@ -44,110 +44,121 @@
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, 0x001FF403, 0x00205804,
53 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403,
54 0x00217801, 0x00234C31, 0x0024E803, 0x0024F812, 0x00254407,
55 0x00258804, 0x0025C001, 0x00260403, 0x0026F001, 0x0026F807,
56 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802, 0x0027C802,
57 0x0027E802, 0x0027F402, 0x00280403, 0x0028F001, 0x0028F805,
58 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D402,
59 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03,
60 0x002B8802, 0x002BC002, 0x002BE806, 0x002C0403, 0x002CF001,
61 0x002CF807, 0x002D1C02, 0x002D2C03, 0x002D5403, 0x002D8802,
62 0x002DC001, 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804,
63 0x002F5C01, 0x002FCC08, 0x00300005, 0x0030F807, 0x00311803,
64 0x00312804, 0x00315402, 0x00318802, 0x0031DC01, 0x0031FC01,
65 0x00320404, 0x0032F001, 0x0032F807, 0x00331803, 0x00332804,
66 0x00335402, 0x00338802, 0x00340004, 0x0034EC02, 0x0034F807,
67 0x00351803, 0x00352804, 0x00353C01, 0x00355C01, 0x00358802,
68 0x0035E401, 0x00360403, 0x00372801, 0x00373C06, 0x00375801,
69 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01,
70 0x00391C09, 0x00396802, 0x003AC401, 0x003AD009, 0x003B2006,
71 0x003C041F, 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424,
72 0x003EF80F, 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804,
73 0x00417803, 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C,
74 0x00423C01, 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A,
75 0x00500001, 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03,
76 0x005C4803, 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023,
77 0x005F6004, 0x005F7401, 0x0060000F, 0x00621402, 0x0062A401,
78 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002, 0x00677822,
79 0x00685C05, 0x00687802, 0x0069540A, 0x0069801D, 0x0069FC01,
80 0x006A8007, 0x006AA006, 0x006AC011, 0x006C0005, 0x006CD011,
81 0x006D6823, 0x006E0003, 0x006E840D, 0x006F980E, 0x006FF004,
 
82 0x00709014, 0x0070EC05, 0x0071F802, 0x00730008, 0x00734019,
83 0x0073B401, 0x0073D001, 0x0073DC03, 0x0077003A, 0x0077EC05,
84 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403, 0x007FB403,
85 0x007FF402, 0x00800065, 0x0081980A, 0x0081E805, 0x00822805,
86 0x00828020, 0x00834021, 0x00840002, 0x00840C04, 0x00842002,
87 0x00845001, 0x00845803, 0x00847806, 0x00849401, 0x00849C01,
88 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005, 0x00852804,
89 0x00853C01, 0x00862802, 0x00864297, 0x0091000B, 0x0092704E,
90 0x00940276, 0x009E53E0, 0x00ADD820, 0x00AE5C69, 0x00B39406,
91 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001, 0x00B5FC01,
92 0x00B7804F, 0x00B8C023, 0x00BA001A, 0x00BA6C59, 0x00BC00D6,
93 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807, 0x00C0D802,
94 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01, 0x00C64002,
95 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E, 0x00C94001,
96 0x00C98020, 0x00CA2827, 0x00CB0140, 0x01370040, 0x02924037,
97 0x0293F802, 0x02983403, 0x0299BC10, 0x029A7802, 0x029BC008,
98 0x029C0017, 0x029C8002, 0x029E2402, 0x02A00801, 0x02A01801,
99 0x02A02C01, 0x02A08C0A, 0x02A0D804, 0x02A1D004, 0x02A20002,
100 0x02A2D012, 0x02A33802, 0x02A38012, 0x02A3E003, 0x02A3F001,
101 0x02A3FC01, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004,
102 0x02A6CC1B, 0x02A77802, 0x02A79401, 0x02A8A40E, 0x02A90C01,
103 0x02A93002, 0x02A97004, 0x02A9DC03, 0x02A9EC03, 0x02AAC001,
104 0x02AAC803, 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802,
105 0x02ABAC07, 0x02ABD402, 0x02AD6C01, 0x02ADA802, 0x02AF8C0B,
106 0x03600001, 0x036DFC02, 0x036FFC02, 0x037FFC01, 0x03EC7801,
107 0x03ECA401, 0x03EEC810, 0x03F4F802, 0x03F7F002, 0x03F8001A,
108 0x03F88033, 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F,
109 0x03FC6807, 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007,
110 0x03FFE405, 0x04040003, 0x0404DC09, 0x0405E411, 0x04063003,
111 0x0406400D, 0x04068001, 0x0407402E, 0x040B8001, 0x040DD805,
112 0x040E7C01, 0x040F4001, 0x0415BC01, 0x04215C01, 0x0421DC02,
113 0x04247C01, 0x0424FC01, 0x04280403, 0x04281402, 0x04283004,
114 0x0428E003, 0x0428FC01, 0x04294009, 0x0429FC01, 0x042B2001,
115 0x042B9402, 0x042BC007, 0x042CE407, 0x042E6404, 0x04349004,
116 0x043AAC03, 0x043D180B, 0x043D5405, 0x04400003, 0x0440E016,
117 0x0441FC04, 0x0442C012, 0x04433401, 0x04440003, 0x04449C0E,
118 0x04450004, 0x04451402, 0x0445CC03, 0x04460003, 0x0446CC0E,
119 0x0447140B, 0x04476C01, 0x04477403, 0x0448B013, 0x044AA401,
120 0x044B7C0C, 0x044C0004, 0x044CEC02, 0x044CF807, 0x044D1C02,
121 0x044D2C03, 0x044D5C01, 0x044D8802, 0x044D9807, 0x044DC005,
122 0x0450D412, 0x04512C05, 0x04516802, 0x04517402, 0x0452C014,
123 0x04531801, 0x0456BC07, 0x0456E020, 0x04577002, 0x0458C014,
124 0x0459800D, 0x045AAC0D, 0x045C740F, 0x045CF004, 0x0460B010,
125 0x0464C006, 0x0464DC02, 0x0464EC04, 0x04650001, 0x04650805,
126 0x04674407, 0x04676807, 0x04678801, 0x04679001, 0x0468040A,
127 0x0468CC07, 0x0468EC0D, 0x0469440B, 0x046A2813, 0x046A7805,
 
 
 
 
128 0x0470BC08, 0x0470E008, 0x04710405, 0x0471C002, 0x04724816,
129 0x0472A40E, 0x0474C406, 0x0474E801, 0x0474F002, 0x0474FC07,
130 0x04751C01, 0x04762805, 0x04764002, 0x04764C05, 0x047BCC06,
131 0x047F541D, 0x047FFC01, 0x0491C005, 0x04D0C009, 0x05A9B802,
132 0x05ABC006, 0x05ACC010, 0x05AD1002, 0x05BA5C04, 0x05BD3C01,
133 0x05BD4437, 0x05BE3C04, 0x05BF8801, 0x05BF9001, 0x05BFC002,
134 0x06F27008, 0x074000F6, 0x07440027, 0x0744A4C0, 0x07480046,
135 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01, 0x075C5401,
136 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401, 0x075EA401,
137 0x075F0C01, 0x0760028C, 0x076A6C05, 0x076A840F, 0x07800007,
138 0x07802011, 0x07806C07, 0x07808C02, 0x07809805, 0x0784C007,
139 0x07853C01, 0x078BB004, 0x078BFC01, 0x07A34007, 0x07A51007,
140 0x07A57802, 0x07B2B001, 0x07B2C001, 0x07B4B801, 0x07BBC002,
141 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F, 0x07C3040F,
142 0x07C34425, 0x07C434A1, 0x07C7981D, 0x07C8402C, 0x07C90009,
143 0x07C94002, 0x07C98006, 0x07CC03D8, 0x07DB800D, 0x07DBC00D,
144 0x07DC0074, 0x07DE0059, 0x07DF800C, 0x07E0000C, 0x07E04038,
145 0x07E1400A, 0x07E18028, 0x07E2401E, 0x07E2C002, 0x07E40079,
146 0x07E5E852, 0x07E73487, 0x07E9800E, 0x07E9C005, 0x07E9E003,
147 0x07EA0007, 0x07EA4019, 0x07EAC007, 0x07EB0003, 0x07EB4007,
148 0x07EC0093, 0x07EE5037, 0x38000401, 0x38008060, 0x380400F0,
 
 
 
 
 
 
149 };
150 static const unsigned int aAscii[4] = {
151 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
152 };
153
@@ -240,12 +251,11 @@
240 iHi = iTest-1;
241 }
242 }
243 assert( key>=aDia[iRes] );
244 if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
245 return (c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c :
246 ((int)aChar[iRes] & 0x7F);
247 }
248
249
250 /*
251 ** Return true if the argument interpreted as a unicode codepoint
@@ -291,89 +301,91 @@
291 static const struct TableEntry {
292 unsigned short iCode;
293 unsigned char flags;
294 unsigned char nRange;
295 } aEntry[] = {
296 {65, 14, 26}, {181, 66, 1}, {192, 14, 23},
297 {216, 14, 7}, {256, 1, 48}, {306, 1, 6},
298 {313, 1, 16}, {330, 1, 46}, {376, 156, 1},
299 {377, 1, 6}, {383, 144, 1}, {385, 52, 1},
300 {386, 1, 4}, {390, 46, 1}, {391, 0, 1},
301 {393, 44, 2}, {395, 0, 1}, {398, 34, 1},
302 {399, 40, 1}, {400, 42, 1}, {401, 0, 1},
303 {403, 44, 1}, {404, 48, 1}, {406, 54, 1},
304 {407, 50, 1}, {408, 0, 1}, {412, 54, 1},
305 {413, 56, 1}, {415, 58, 1}, {416, 1, 6},
306 {422, 62, 1}, {423, 0, 1}, {425, 62, 1},
307 {428, 0, 1}, {430, 62, 1}, {431, 0, 1},
308 {433, 60, 2}, {435, 1, 4}, {439, 64, 1},
309 {440, 0, 1}, {444, 0, 1}, {452, 2, 1},
310 {453, 0, 1}, {455, 2, 1}, {456, 0, 1},
311 {458, 2, 1}, {459, 1, 18}, {478, 1, 18},
312 {497, 2, 1}, {498, 1, 4}, {502, 162, 1},
313 {503, 174, 1}, {504, 1, 40}, {544, 150, 1},
314 {546, 1, 18}, {570, 74, 1}, {571, 0, 1},
315 {573, 148, 1}, {574, 72, 1}, {577, 0, 1},
316 {579, 146, 1}, {580, 30, 1}, {581, 32, 1},
317 {582, 1, 10}, {837, 38, 1}, {880, 1, 4},
318 {886, 0, 1}, {895, 38, 1}, {902, 20, 1},
319 {904, 18, 3}, {908, 28, 1}, {910, 26, 2},
320 {913, 14, 17}, {931, 14, 9}, {962, 0, 1},
321 {975, 4, 1}, {976, 180, 1}, {977, 182, 1},
322 {981, 186, 1}, {982, 184, 1}, {984, 1, 24},
323 {1008, 176, 1}, {1009, 178, 1}, {1012, 170, 1},
324 {1013, 168, 1}, {1015, 0, 1}, {1017, 192, 1},
325 {1018, 0, 1}, {1021, 150, 3}, {1024, 36, 16},
326 {1040, 14, 32}, {1120, 1, 34}, {1162, 1, 54},
327 {1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
328 {1329, 24, 38}, {4256, 70, 38}, {4295, 70, 1},
329 {4301, 70, 1}, {5112, 190, 6}, {7296, 126, 1},
330 {7297, 128, 1}, {7298, 130, 1}, {7299, 134, 2},
331 {7301, 132, 1}, {7302, 136, 1}, {7303, 138, 1},
332 {7304, 100, 1}, {7312, 142, 43}, {7357, 142, 3},
333 {7680, 1, 150}, {7835, 172, 1}, {7838, 120, 1},
334 {7840, 1, 96}, {7944, 190, 8}, {7960, 190, 6},
335 {7976, 190, 8}, {7992, 190, 8}, {8008, 190, 6},
336 {8025, 191, 8}, {8040, 190, 8}, {8072, 190, 8},
337 {8088, 190, 8}, {8104, 190, 8}, {8120, 190, 2},
338 {8122, 166, 2}, {8124, 188, 1}, {8126, 124, 1},
339 {8136, 164, 4}, {8140, 188, 1}, {8152, 190, 2},
340 {8154, 160, 2}, {8168, 190, 2}, {8170, 158, 2},
341 {8172, 192, 1}, {8184, 152, 2}, {8186, 154, 2},
342 {8188, 188, 1}, {8486, 122, 1}, {8490, 116, 1},
343 {8491, 118, 1}, {8498, 12, 1}, {8544, 8, 16},
344 {8579, 0, 1}, {9398, 10, 26}, {11264, 24, 47},
345 {11360, 0, 1}, {11362, 112, 1}, {11363, 140, 1},
346 {11364, 114, 1}, {11367, 1, 6}, {11373, 108, 1},
347 {11374, 110, 1}, {11375, 104, 1}, {11376, 106, 1},
348 {11378, 0, 1}, {11381, 0, 1}, {11390, 102, 2},
 
349 {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
350 {42560, 1, 46}, {42624, 1, 28}, {42786, 1, 14},
351 {42802, 1, 62}, {42873, 1, 4}, {42877, 98, 1},
352 {42878, 1, 10}, {42891, 0, 1}, {42893, 88, 1},
353 {42896, 1, 4}, {42902, 1, 20}, {42922, 80, 1},
354 {42923, 76, 1}, {42924, 78, 1}, {42925, 84, 1},
355 {42926, 80, 1}, {42928, 92, 1}, {42929, 86, 1},
356 {42930, 90, 1}, {42931, 68, 1}, {42932, 1, 12},
357 {42946, 0, 1}, {42948, 178, 1}, {42949, 82, 1},
358 {42950, 96, 1}, {42951, 1, 4}, {42997, 0, 1},
359 {43888, 94, 80}, {65313, 14, 26},
 
360 };
361 static const unsigned short aiOff[] = {
362 1, 2, 8, 15, 16, 26, 28, 32,
363 34, 37, 38, 40, 48, 63, 64, 69,
364 71, 79, 80, 116, 202, 203, 205, 206,
365 207, 209, 210, 211, 213, 214, 217, 218,
366 219, 775, 928, 7264, 10792, 10795, 23217, 23221,
367 23228, 23229, 23231, 23254, 23256, 23275, 23278, 26672,
368 30152, 30204, 35267, 54721, 54753, 54754, 54756, 54787,
369 54793, 54809, 57153, 57274, 57921, 58019, 58363, 59314,
370 59315, 59324, 59325, 59326, 59332, 59356, 61722, 62528,
371 65268, 65341, 65373, 65406, 65408, 65410, 65415, 65424,
372 65436, 65439, 65450, 65462, 65472, 65476, 65478, 65480,
373 65482, 65488, 65506, 65511, 65514, 65521, 65527, 65528,
374 65529,
375 };
376
377 int ret = c;
378
379 assert( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 );
@@ -413,21 +425,39 @@
413 else if( c>=66560 && c<66600 ){
414 ret = c + 40;
415 }
416 else if( c>=66736 && c<66772 ){
417 ret = c + 40;
 
 
 
 
 
 
 
 
 
 
 
 
418 }
419 else if( c>=68736 && c<68787 ){
420 ret = c + 64;
 
 
 
421 }
422 else if( c>=71840 && c<71872 ){
423 ret = c + 32;
424 }
425 else if( c>=93760 && c<93792 ){
426 ret = c + 32;
 
 
 
427 }
428 else if( c>=125184 && c<125218 ){
429 ret = c + 34;
430 }
431
432 return ret;
433 }
434
--- src/unicode.c
+++ src/unicode.c
@@ -44,110 +44,121 @@
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, 0x00180020, 0x00192C15, 0x0019A804,
50 0x0019C001, 0x001B5001, 0x001B580F, 0x001B9C07, 0x001BF402,
51 0x001C000E, 0x001C3C01, 0x001C4401, 0x001CC01B, 0x001E980B,
52 0x001FAC09, 0x001FD804, 0x001FF403, 0x00205804, 0x00206C09,
53 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, 0x00217801,
54 0x00222001, 0x00224002, 0x00225C09, 0x0023283A, 0x0024E803,
55 0x0024F812, 0x00254407, 0x00258804, 0x0025C001, 0x00260403,
56 0x0026F001, 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01,
57 0x00278802, 0x0027C802, 0x0027E802, 0x0027F402, 0x00280403,
58 0x0028F001, 0x0028F805, 0x00291C02, 0x00292C03, 0x00294401,
59 0x0029C002, 0x0029D402, 0x002A0403, 0x002AF001, 0x002AF808,
60 0x002B1C03, 0x002B2C03, 0x002B8802, 0x002BC002, 0x002BE806,
61 0x002C0403, 0x002CF001, 0x002CF807, 0x002D1C02, 0x002D2C03,
62 0x002D5403, 0x002D8802, 0x002DC001, 0x002E0801, 0x002EF805,
63 0x002F1803, 0x002F2804, 0x002F5C01, 0x002FCC08, 0x00300005,
64 0x0030F001, 0x0030F807, 0x00311803, 0x00312804, 0x00315402,
65 0x00318802, 0x0031DC01, 0x0031FC01, 0x00320404, 0x0032F001,
66 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802,
67 0x0033CC01, 0x00340004, 0x0034EC02, 0x0034F807, 0x00351803,
68 0x00352804, 0x00353C01, 0x00355C01, 0x00358802, 0x0035E401,
69 0x00360403, 0x00372801, 0x00373C06, 0x00375801, 0x00376008,
70 0x0037C803, 0x0038C401, 0x0038D007, 0x0038FC01, 0x00391C09,
71 0x00396802, 0x003AC401, 0x003AD009, 0x003B2007, 0x003C041F,
72 0x003CD00C, 0x003DC417, 0x003E340B, 0x003E6424, 0x003EF80F,
73 0x003F380D, 0x0040AC14, 0x00412806, 0x00415804, 0x00417803,
74 0x00418803, 0x00419C07, 0x0041C404, 0x0042080C, 0x00423C01,
75 0x00426806, 0x0043EC01, 0x004D740C, 0x004E400A, 0x00500001,
76 0x0059B402, 0x005A0001, 0x005A6C02, 0x005BAC03, 0x005C4804,
77 0x005CC805, 0x005D4802, 0x005DC802, 0x005ED023, 0x005F6004,
78 0x005F7401, 0x00600010, 0x00621402, 0x0062A401, 0x0064800C,
79 0x0064C00C, 0x00650001, 0x00651002, 0x00677822, 0x00685C05,
80 0x00687802, 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007,
81 0x006AA006, 0x006AC02E, 0x006B800C, 0x006C0005, 0x006CD011,
82 0x006D3802, 0x006D6829, 0x006E840D, 0x006F980E, 0x006FF004,
83 0x00709014, 0x0070EC05, 0x0071F802, 0x00730008, 0x00734019,
84 0x0073B401, 0x0073D001, 0x0073DC03, 0x00770040, 0x007EF401,
85 0x007EFC03, 0x007F3403, 0x007F7403, 0x007FB403, 0x007FF402,
86 0x00800065, 0x0081980A, 0x0081E805, 0x00822805, 0x00828022,
87 0x00834021, 0x00840002, 0x00840C04, 0x00842002, 0x00845001,
88 0x00845803, 0x00847806, 0x00849401, 0x00849C01, 0x0084A401,
89 0x0084B801, 0x0084E802, 0x00850005, 0x00852804, 0x00853C01,
90 0x00862802, 0x0086429A, 0x0091000B, 0x0092704E, 0x00940276,
91 0x009E53E0, 0x00ADD88A, 0x00B39406, 0x00B3BC03, 0x00B3E404,
92 0x00B3F802, 0x00B5C001, 0x00B5FC01, 0x00B7804F, 0x00B8C02E,
93 0x00BA001A, 0x00BA6C59, 0x00BC00D6, 0x00BFC015, 0x00C02019,
94 0x00C0A807, 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001,
95 0x00C3EC01, 0x00C64002, 0x00C6580A, 0x00C70026, 0x00C7BC01,
96 0x00C8001F, 0x00C8A81E, 0x00C94001, 0x00C98020, 0x00CA2827,
97 0x00CB0140, 0x01370040, 0x02924037, 0x0293F802, 0x02983403,
98 0x0299BC10, 0x029A7802, 0x029BC008, 0x029C0017, 0x029C8002,
99 0x029E2402, 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C0A,
100 0x02A0D804, 0x02A1D004, 0x02A20002, 0x02A2D012, 0x02A33802,
101 0x02A38012, 0x02A3E003, 0x02A3F001, 0x02A3FC01, 0x02A4980A,
102 0x02A51C0D, 0x02A57C01, 0x02A60004, 0x02A6CC1B, 0x02A77802,
103 0x02A79401, 0x02A8A40E, 0x02A90C01, 0x02A93002, 0x02A97004,
104 0x02A9DC03, 0x02A9EC03, 0x02AAC001, 0x02AAC803, 0x02AADC02,
105 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07, 0x02ABD402,
106 0x02AD6C01, 0x02ADA802, 0x02AF8C0B, 0x03600001, 0x036DFC02,
107 0x036FFC02, 0x037FFC01, 0x03EC7801, 0x03ECA401, 0x03EEC821,
108 0x03F4F812, 0x03F64002, 0x03F72008, 0x03F7F01E, 0x03F88033,
109 0x03F95013, 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807,
110 0x03FCEC06, 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405,
111 0x04040003, 0x0404DC09, 0x0405E411, 0x04063003, 0x0406400D,
112 0x04068001, 0x0407402E, 0x040B8001, 0x040DD805, 0x040E7C01,
113 0x040F4001, 0x0415BC01, 0x04215C01, 0x0421DC02, 0x04247C01,
114 0x0424FC01, 0x04280403, 0x04281402, 0x04283004, 0x0428E003,
115 0x0428FC01, 0x04294009, 0x0429FC01, 0x042B2001, 0x042B9402,
116 0x042BC007, 0x042CE407, 0x042E6404, 0x04349004, 0x0435A406,
117 0x04363802, 0x043AAC03, 0x043B4009, 0x043BE806, 0x043D180B,
118 0x043D5405, 0x043E0808, 0x04400003, 0x0440E016, 0x0441C001,
119 0x0441CC02, 0x0441FC04, 0x0442C013, 0x04433401, 0x04440003,
120 0x04449C0E, 0x04450004, 0x04451402, 0x0445CC03, 0x04460003,
121 0x0446CC0E, 0x0447140B, 0x04476C01, 0x04477403, 0x0448B013,
122 0x04490401, 0x044AA401, 0x044B7C0C, 0x044C0004, 0x044CEC02,
123 0x044CF807, 0x044D1C02, 0x044D2C03, 0x044D5C01, 0x044D8802,
124 0x044D9807, 0x044DC005, 0x044EE009, 0x044F0801, 0x044F1401,
125 0x044F1C04, 0x044F3005, 0x044F4801, 0x044F5002, 0x044F5C02,
126 0x044F8402, 0x0450D412, 0x04512C05, 0x04516802, 0x04517402,
127 0x0452C014, 0x04531801, 0x0456BC07, 0x0456E020, 0x04577002,
128 0x0458C014, 0x0459800D, 0x045AAC0D, 0x045AE401, 0x045C740F,
129 0x045CF004, 0x0460B010, 0x0464C006, 0x0464DC02, 0x0464EC04,
130 0x04650001, 0x04650805, 0x04674407, 0x04676807, 0x04678801,
131 0x04679001, 0x0468040A, 0x0468CC07, 0x0468EC0D, 0x0469440B,
132 0x046A2813, 0x046A7805, 0x046C000A, 0x046D8008, 0x046F8401,
133 0x0470BC08, 0x0470E008, 0x04710405, 0x0471C002, 0x04724816,
134 0x0472A40E, 0x0474C406, 0x0474E801, 0x0474F002, 0x0474FC07,
135 0x04751C01, 0x04762805, 0x04764002, 0x04764C05, 0x047BCC06,
136 0x047C0002, 0x047C0C01, 0x047CD007, 0x047CF812, 0x047D6801,
137 0x047F541D, 0x047FFC01, 0x0491C005, 0x04BFC402, 0x04D0C011,
138 0x04D11C0F, 0x05847812, 0x05A9B802, 0x05ABC006, 0x05ACC010,
139 0x05AD1002, 0x05B5B403, 0x05BA5C04, 0x05BD3C01, 0x05BD4437,
140 0x05BE3C04, 0x05BF8801, 0x05BF9001, 0x05BFC002, 0x06F27008,
141 0x073000F0, 0x0733E803, 0x073401B4, 0x073AE817, 0x073B8011,
142 0x073C002E, 0x073CC017, 0x073D4074, 0x074000F6, 0x07440027,
143 0x0744A4C2, 0x07480046, 0x074C0057, 0x075B0401, 0x075B6C01,
144 0x075BEC01, 0x075C5401, 0x075CD401, 0x075D3C01, 0x075DBC01,
145 0x075E2401, 0x075EA401, 0x075F0C01, 0x0760028C, 0x076A6C05,
146 0x076A840F, 0x07800007, 0x07802011, 0x07806C07, 0x07808C02,
147 0x07809805, 0x07823C01, 0x0784C007, 0x07853C01, 0x078AB801,
148 0x078BB004, 0x078BFC01, 0x0793B004, 0x0797B802, 0x0797FC01,
149 0x079B8C01, 0x079B9801, 0x079BB802, 0x079BD401, 0x07A34007,
150 0x07A51007, 0x07A57802, 0x07B2B001, 0x07B2C001, 0x07B4B801,
151 0x07BBC002, 0x07C0002C, 0x07C0C064, 0x07C2800F, 0x07C2C40F,
152 0x07C3040F, 0x07C34425, 0x07C434A1, 0x07C7981D, 0x07C8402C,
153 0x07C90009, 0x07C94002, 0x07C98006, 0x07CC03D9, 0x07DB7011,
154 0x07DBC00D, 0x07DC00DA, 0x07DF800C, 0x07DFC001, 0x07E0000C,
155 0x07E04038, 0x07E1400A, 0x07E18028, 0x07E2401E, 0x07E2C00C,
156 0x07E30002, 0x07E34009, 0x07E40158, 0x07E9800E, 0x07E9C00D,
157 0x07EA000B, 0x07EA3839, 0x07EB2001, 0x07EB3410, 0x07EB7C0C,
158 0x07EBBC0A, 0x07EC0093, 0x07EE505C, 0x07EFE801, 0x38000401,
159 0x38008060, 0x380400F0,
160 };
161 static const unsigned int aAscii[4] = {
162 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001,
163 };
164
@@ -240,12 +251,11 @@
251 iHi = iTest-1;
252 }
253 }
254 assert( key>=aDia[iRes] );
255 if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
256 return (c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : ((int)aChar[iRes] & 0x7F);
 
257 }
258
259
260 /*
261 ** Return true if the argument interpreted as a unicode codepoint
@@ -291,89 +301,91 @@
301 static const struct TableEntry {
302 unsigned short iCode;
303 unsigned char flags;
304 unsigned char nRange;
305 } aEntry[] = {
306 {65, 16, 26}, {181, 70, 1}, {192, 16, 23},
307 {216, 16, 7}, {256, 1, 48}, {306, 1, 6},
308 {313, 1, 16}, {330, 1, 46}, {376, 168, 1},
309 {377, 1, 6}, {383, 156, 1}, {385, 56, 1},
310 {386, 1, 4}, {390, 50, 1}, {391, 0, 1},
311 {393, 48, 2}, {395, 0, 1}, {398, 38, 1},
312 {399, 44, 1}, {400, 46, 1}, {401, 0, 1},
313 {403, 48, 1}, {404, 52, 1}, {406, 58, 1},
314 {407, 54, 1}, {408, 0, 1}, {412, 58, 1},
315 {413, 60, 1}, {415, 62, 1}, {416, 1, 6},
316 {422, 66, 1}, {423, 0, 1}, {425, 66, 1},
317 {428, 0, 1}, {430, 66, 1}, {431, 0, 1},
318 {433, 64, 2}, {435, 1, 4}, {439, 68, 1},
319 {440, 0, 1}, {444, 0, 1}, {452, 2, 1},
320 {453, 0, 1}, {455, 2, 1}, {456, 0, 1},
321 {458, 2, 1}, {459, 1, 18}, {478, 1, 18},
322 {497, 2, 1}, {498, 1, 4}, {502, 174, 1},
323 {503, 186, 1}, {504, 1, 40}, {544, 162, 1},
324 {546, 1, 18}, {570, 78, 1}, {571, 0, 1},
325 {573, 160, 1}, {574, 76, 1}, {577, 0, 1},
326 {579, 158, 1}, {580, 34, 1}, {581, 36, 1},
327 {582, 1, 10}, {837, 42, 1}, {880, 1, 4},
328 {886, 0, 1}, {895, 42, 1}, {902, 22, 1},
329 {904, 20, 3}, {908, 32, 1}, {910, 30, 2},
330 {913, 16, 17}, {931, 16, 9}, {962, 0, 1},
331 {975, 4, 1}, {976, 192, 1}, {977, 194, 1},
332 {981, 198, 1}, {982, 196, 1}, {984, 1, 24},
333 {1008, 188, 1}, {1009, 190, 1}, {1012, 182, 1},
334 {1013, 180, 1}, {1015, 0, 1}, {1017, 204, 1},
335 {1018, 0, 1}, {1021, 162, 3}, {1024, 40, 16},
336 {1040, 16, 32}, {1120, 1, 34}, {1162, 1, 54},
337 {1216, 6, 1}, {1217, 1, 14}, {1232, 1, 96},
338 {1329, 28, 38}, {4256, 74, 38}, {4295, 74, 1},
339 {4301, 74, 1}, {5112, 202, 6}, {7296, 138, 1},
340 {7297, 140, 1}, {7298, 142, 1}, {7299, 146, 2},
341 {7301, 144, 1}, {7302, 148, 1}, {7303, 150, 1},
342 {7304, 108, 1}, {7305, 0, 1}, {7312, 154, 43},
343 {7357, 154, 3}, {7680, 1, 150}, {7835, 184, 1},
344 {7838, 128, 1}, {7840, 1, 96}, {7944, 202, 8},
345 {7960, 202, 6}, {7976, 202, 8}, {7992, 202, 8},
346 {8008, 202, 6}, {8025, 203, 8}, {8040, 202, 8},
347 {8072, 202, 8}, {8088, 202, 8}, {8104, 202, 8},
348 {8120, 202, 2}, {8122, 178, 2}, {8124, 200, 1},
349 {8126, 136, 1}, {8136, 176, 4}, {8140, 200, 1},
350 {8147, 132, 1}, {8152, 202, 2}, {8154, 172, 2},
351 {8163, 134, 1}, {8168, 202, 2}, {8170, 170, 2},
352 {8172, 204, 1}, {8184, 164, 2}, {8186, 166, 2},
353 {8188, 200, 1}, {8486, 130, 1}, {8490, 124, 1},
354 {8491, 126, 1}, {8498, 14, 1}, {8544, 8, 16},
355 {8579, 0, 1}, {9398, 10, 26}, {11264, 28, 48},
356 {11360, 0, 1}, {11362, 120, 1}, {11363, 152, 1},
357 {11364, 122, 1}, {11367, 1, 6}, {11373, 116, 1},
358 {11374, 118, 1}, {11375, 112, 1}, {11376, 114, 1},
359 {11378, 0, 1}, {11381, 0, 1}, {11390, 110, 2},
360 {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1},
361 {42560, 1, 46}, {42624, 1, 28}, {42786, 1, 14},
362 {42802, 1, 62}, {42873, 1, 4}, {42877, 106, 1},
363 {42878, 1, 10}, {42891, 0, 1}, {42893, 96, 1},
364 {42896, 1, 4}, {42902, 1, 20}, {42922, 88, 1},
365 {42923, 84, 1}, {42924, 86, 1}, {42925, 92, 1},
366 {42926, 88, 1}, {42928, 100, 1}, {42929, 94, 1},
367 {42930, 98, 1}, {42931, 72, 1}, {42932, 1, 16},
368 {42948, 190, 1}, {42949, 90, 1}, {42950, 104, 1},
369 {42951, 1, 4}, {42955, 82, 1}, {42956, 1, 16},
370 {42972, 80, 1}, {42997, 0, 1}, {43888, 102, 80},
371 {64261, 0, 1}, {65313, 16, 26},
372 };
373 static const unsigned short aiOff[] = {
374 1, 2, 8, 15, 16, 26, 27, 28,
375 32, 34, 37, 38, 39, 40, 48, 63,
376 64, 69, 71, 79, 80, 116, 202, 203,
377 205, 206, 207, 209, 210, 211, 213, 214,
378 217, 218, 219, 775, 928, 7264, 10792, 10795,
379 22975, 23193, 23217, 23221, 23228, 23229, 23231, 23254,
380 23256, 23275, 23278, 26672, 30152, 30204, 35267, 54721,
381 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274,
382 57921, 58019, 58301, 58317, 58363, 59314, 59315, 59324,
383 59325, 59326, 59332, 59356, 61722, 62528, 65268, 65341,
384 65373, 65406, 65408, 65410, 65415, 65424, 65436, 65439,
385 65450, 65462, 65472, 65476, 65478, 65480, 65482, 65488,
386 65506, 65511, 65514, 65521, 65527, 65528, 65529,
387 };
388
389 int ret = c;
390
391 assert( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 );
@@ -413,21 +425,39 @@
425 else if( c>=66560 && c<66600 ){
426 ret = c + 40;
427 }
428 else if( c>=66736 && c<66772 ){
429 ret = c + 40;
430 }
431 else if( c>=66928 && c<66939 ){
432 ret = c + 39;
433 }
434 else if( c>=66940 && c<66955 ){
435 ret = c + 39;
436 }
437 else if( c>=66956 && c<66963 ){
438 ret = c + 39;
439 }
440 else if( c>=66964 && c<66966 ){
441 ret = c + 39;
442 }
443 else if( c>=68736 && c<68787 ){
444 ret = c + 64;
445 }
446 else if( c>=68944 && c<68966 ){
447 ret = c + 32;
448 }
449 else if( c>=71840 && c<71872 ){
450 ret = c + 32;
451 }
452 else if( c>=93760 && c<93792 ){
453 ret = c + 32;
454 }
455 else if( c>=93856 && c<93881 ){
456 ret = c + 27;
457 }
458 else if( c>=125184 && c<125218 ){
459 ret = c + 34;
460 }
461
462 return ret;
463 }
464

Keyboard Shortcuts

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