Index: src/unicode.h ================================================================== --- src/unicode.h +++ src/unicode.h @@ -14,14 +14,14 @@ * file. */ #import "OFString.h" -#define OF_UNICODE_UPPERCASE_TABLE_SIZE 0x105 -#define OF_UNICODE_LOWERCASE_TABLE_SIZE 0x105 -#define OF_UNICODE_TITLECASE_TABLE_SIZE 0x105 -#define OF_UNICODE_CASEFOLDING_TABLE_SIZE 0x105 +#define OF_UNICODE_UPPERCASE_TABLE_SIZE 0x119 +#define OF_UNICODE_LOWERCASE_TABLE_SIZE 0x119 +#define OF_UNICODE_TITLECASE_TABLE_SIZE 0x119 +#define OF_UNICODE_CASEFOLDING_TABLE_SIZE 0x119 #ifdef __cplusplus extern "C" { #endif extern const of_unichar_t* const Index: src/unicode.m ================================================================== --- src/unicode.m +++ src/unicode.m @@ -100,19 +100,19 @@ 0, 560, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 0, 11390, 11391, 0, 577, 0, 0, 0, 0, 582, 0, 584, 0, 586, 0, 588, 0, 590, 11375, 11373, 11376, 385, 390, 0, 393, 394, - 0, 399, 0, 400, 0, 0, 0, 0, - 403, 0, 0, 404, 0, 42893, 42922, 0, - 407, 406, 0, 11362, 0, 0, 0, 412, + 0, 399, 0, 400, 42923, 0, 0, 0, + 403, 42924, 0, 404, 0, 42893, 42922, 0, + 407, 406, 0, 11362, 42925, 0, 0, 412, 0, 11374, 413, 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 11364, 0, 0, - 422, 0, 0, 425, 0, 0, 0, 0, + 422, 0, 0, 425, 0, 0, 0, 42929, 430, 580, 433, 434, 581, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 42928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -154,11 +154,11 @@ 936, 937, 938, 939, 908, 910, 911, 0, 914, 920, 0, 0, 0, 934, 928, 975, 0, 984, 0, 986, 0, 988, 0, 990, 0, 992, 0, 994, 0, 996, 0, 998, 0, 1000, 0, 1002, 0, 1004, 0, 1006, - 922, 929, 1017, 0, 0, 917, 0, 0, + 922, 929, 1017, 895, 0, 917, 0, 0, 1015, 0, 0, 1018, 0, 0, 0, 0, }; static const of_unichar_t uppercasePage4[0x100] = { 0, 0, 0, 0, 0, 0, 0, 0, @@ -199,11 +199,11 @@ 0, 1280, 0, 1282, 0, 1284, 0, 1286, 0, 1288, 0, 1290, 0, 1292, 0, 1294, 0, 1296, 0, 1298, 0, 1300, 0, 1302, 0, 1304, 0, 1306, 0, 1308, 0, 1310, 0, 1312, 0, 1314, 0, 1316, 0, 1318, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1320, 0, 1322, 0, 1324, 0, 1326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -493,11 +493,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42624, 0, 42626, 0, 42628, 0, 42630, 0, 42632, 0, 42634, 0, 42636, 0, 42638, 0, 42640, 0, 42642, 0, 42644, 0, 42646, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42648, 0, 42650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -527,12 +527,12 @@ 0, 42856, 0, 42858, 0, 42860, 0, 42862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42873, 0, 42875, 0, 0, 42878, 0, 42880, 0, 42882, 0, 42884, 0, 42886, 0, 0, 0, 0, 42891, 0, 0, 0, - 0, 42896, 0, 42898, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42896, 0, 42898, 0, 0, 0, 42902, + 0, 42904, 0, 42906, 0, 42908, 0, 42910, 0, 42912, 0, 42914, 0, 42916, 0, 42918, 0, 42920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -608,10 +608,45 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const of_unichar_t uppercasePage280[0x100] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 71840, 71841, 71842, 71843, 71844, 71845, 71846, 71847, + 71848, 71849, 71850, 71851, 71852, 71853, 71854, 71855, + 71856, 71857, 71858, 71859, 71860, 71861, 71862, 71863, + 71864, 71865, 71866, 71867, 71868, 71869, 71870, 71871, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; @@ -734,11 +769,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 883, 0, 0, 0, 887, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 940, 0, 941, 942, 943, 0, 972, 0, 973, 974, 0, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 0, 963, 964, 965, 966, 967, @@ -794,11 +829,11 @@ 1281, 0, 1283, 0, 1285, 0, 1287, 0, 1289, 0, 1291, 0, 1293, 0, 1295, 0, 1297, 0, 1299, 0, 1301, 0, 1303, 0, 1305, 0, 1307, 0, 1309, 0, 1311, 0, 1313, 0, 1315, 0, 1317, 0, 1319, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 1321, 0, 1323, 0, 1325, 0, 1327, 0, 0, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 0, @@ -1053,11 +1088,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42625, 0, 42627, 0, 42629, 0, 42631, 0, 42633, 0, 42635, 0, 42637, 0, 42639, 0, 42641, 0, 42643, 0, 42645, 0, 42647, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 42649, 0, 42651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1087,15 +1122,15 @@ 42857, 0, 42859, 0, 42861, 0, 42863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42874, 0, 42876, 0, 7545, 42879, 0, 42881, 0, 42883, 0, 42885, 0, 42887, 0, 0, 0, 0, 42892, 0, 613, 0, 0, - 42897, 0, 42899, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 42897, 0, 42899, 0, 0, 0, 42903, 0, + 42905, 0, 42907, 0, 42909, 0, 42911, 0, 42913, 0, 42915, 0, 42917, 0, 42919, 0, - 42921, 0, 614, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 42921, 0, 614, 604, 609, 620, 0, 0, + 670, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1164,10 +1199,45 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const of_unichar_t lowercasePage280[0x100] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 71872, 71873, 71874, 71875, 71876, 71877, 71878, 71879, + 71880, 71881, 71882, 71883, 71884, 71885, 71886, 71887, + 71888, 71889, 71890, 71891, 71892, 71893, 71894, 71895, + 71896, 71897, 71898, 71899, 71900, 71901, 71902, 71903, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1294,11 +1364,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 883, 0, 0, 0, 887, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, 0, 0, 0, 0, 940, 0, 941, 942, 943, 0, 972, 0, 973, 974, 0, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 0, 963, 964, 965, 966, 967, @@ -1383,11 +1453,11 @@ 8160, 8161, 8058, 8059, 8165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8056, 8057, 8060, 8061, 8179, 0, 0, 0, }; -const of_unichar_t* const of_unicode_uppercase_table[0x105] = { +const of_unichar_t* const of_unicode_uppercase_table[0x119] = { uppercasePage0, uppercasePage1, uppercasePage2, uppercasePage3, uppercasePage4, uppercasePage5, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, @@ -1449,14 +1519,19 @@ emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, uppercasePage255, emptyPage, emptyPage, emptyPage, emptyPage, - uppercasePage260 + uppercasePage260, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + uppercasePage280 }; -const of_unichar_t* const of_unicode_lowercase_table[0x105] = { +const of_unichar_t* const of_unicode_lowercase_table[0x119] = { lowercasePage0, lowercasePage1, lowercasePage2, lowercasePage3, lowercasePage4, lowercasePage5, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, lowercasePage16, emptyPage, emptyPage, emptyPage, @@ -1518,14 +1593,19 @@ emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, lowercasePage255, emptyPage, emptyPage, emptyPage, emptyPage, - lowercasePage260 + lowercasePage260, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + lowercasePage280 }; -const of_unichar_t* const of_unicode_titlecase_table[0x105] = { +const of_unichar_t* const of_unicode_titlecase_table[0x119] = { uppercasePage0, titlecasePage1, uppercasePage2, uppercasePage3, uppercasePage4, uppercasePage5, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, @@ -1587,14 +1667,19 @@ emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, uppercasePage255, emptyPage, emptyPage, emptyPage, emptyPage, - uppercasePage260 + uppercasePage260, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, emptyPage, + uppercasePage280 }; -const of_unichar_t* const of_unicode_casefolding_table[0x105] = { +const of_unichar_t* const of_unicode_casefolding_table[0x119] = { casefoldingPage0, casefoldingPage1, lowercasePage2, casefoldingPage3, lowercasePage4, lowercasePage5, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, @@ -1677,7 +1762,14 @@ emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, emptyPage, lowercasePage255, emptyPage, emptyPage, - emptyPage, emptyPage, lowercasePage260 + emptyPage, emptyPage, lowercasePage260, + emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, + emptyPage, emptyPage, emptyPage, + emptyPage, lowercasePage280 };