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]
Commit
3088939eb1397b8a6da80982e909d68b2abadcd8
Parent
13f8ba6ca89c8ae…
1 file changed
+132
-120
+132
-120
| --- src/unicode.c | ||
| +++ src/unicode.c | ||
| @@ -43,89 +43,95 @@ | ||
| 43 | 43 | static const unsigned int aEntry[] = { |
| 44 | 44 | 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07, |
| 45 | 45 | 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01, |
| 46 | 46 | 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401, |
| 47 | 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, | |
| 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 | 83 | 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, | |
| 86 | 86 | 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401, |
| 87 | 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, | |
| 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, | |
| 127 | 133 | }; |
| 128 | 134 | static const unsigned int aAscii[4] = { |
| 129 | 135 | 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001, |
| 130 | 136 | }; |
| 131 | 137 | |
| @@ -253,12 +259,12 @@ | ||
| 253 | 259 | unsigned char flags; |
| 254 | 260 | unsigned char nRange; |
| 255 | 261 | } aEntry[] = { |
| 256 | 262 | {65, 14, 26}, {181, 64, 1}, {192, 14, 23}, |
| 257 | 263 | {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}, | |
| 260 | 266 | {386, 1, 4}, {390, 44, 1}, {391, 0, 1}, |
| 261 | 267 | {393, 42, 2}, {395, 0, 1}, {398, 32, 1}, |
| 262 | 268 | {399, 38, 1}, {400, 40, 1}, {401, 0, 1}, |
| 263 | 269 | {403, 42, 1}, {404, 46, 1}, {406, 52, 1}, |
| 264 | 270 | {407, 48, 1}, {408, 0, 1}, {412, 52, 1}, |
| @@ -267,61 +273,64 @@ | ||
| 267 | 273 | {428, 0, 1}, {430, 60, 1}, {431, 0, 1}, |
| 268 | 274 | {433, 58, 2}, {435, 1, 4}, {439, 62, 1}, |
| 269 | 275 | {440, 0, 1}, {444, 0, 1}, {452, 2, 1}, |
| 270 | 276 | {453, 0, 1}, {455, 2, 1}, {456, 0, 1}, |
| 271 | 277 | {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}, | |
| 274 | 280 | {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}, | |
| 277 | 283 | {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}, | |
| 310 | 318 | {65313, 14, 26}, |
| 311 | 319 | }; |
| 312 | 320 | static const unsigned short aiOff[] = { |
| 313 | 321 | 1, 2, 8, 15, 16, 26, 28, 32, |
| 314 | 322 | 37, 38, 40, 48, 63, 64, 69, 71, |
| 315 | 323 | 79, 80, 116, 202, 203, 205, 206, 207, |
| 316 | 324 | 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, | |
| 323 | 332 | }; |
| 324 | 333 | |
| 325 | 334 | int ret = c; |
| 326 | 335 | |
| 327 | 336 | assert( c>=0 ); |
| @@ -357,9 +366,12 @@ | ||
| 357 | 366 | if( bRemoveDiacritic ) ret = unicode_remove_diacritic(ret); |
| 358 | 367 | } |
| 359 | 368 | |
| 360 | 369 | else if( c>=66560 && c<66600 ){ |
| 361 | 370 | ret = c + 40; |
| 371 | + } | |
| 372 | + else if( c>=71840 && c<71872 ){ | |
| 373 | + ret = c + 32; | |
| 362 | 374 | } |
| 363 | 375 | |
| 364 | 376 | return ret; |
| 365 | 377 | } |
| 366 | 378 |
| --- 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 |