1
/* generated automatically by mkrunetype.c from UnicodeData-6.0.0.txt */
3
static Rune __isspacer[] = {
23
p = rbsearch(c, __isspacer, nelem(__isspacer)/2, 2);
24
if(p && c >= p[0] && c <= p[1])
29
static Rune __isdigitr[] = {
75
p = rbsearch(c, __isdigitr, nelem(__isdigitr)/2, 2);
76
if(p && c >= p[0] && c <= p[1])
81
static Rune __isalphar[] = {
437
static Rune __isalphas[] = {
527
p = rbsearch(c, __isalphar, nelem(__isalphar)/2, 2);
528
if(p && c >= p[0] && c <= p[1])
530
p = rbsearch(c, __isalphas, nelem(__isalphas), 1);
536
static Rune __isupperr[] = {
625
static Rune __isupperp[] = {
658
static Rune __isuppers[] = {
696
p = rbsearch(c, __isupperr, nelem(__isupperr)/2, 2);
697
if(p && c >= p[0] && c <= p[1])
699
p = rbsearch(c, __isupperp, nelem(__isupperp)/2, 2);
700
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
702
p = rbsearch(c, __isuppers, nelem(__isuppers), 1);
708
static Rune __islowerr[] = {
804
static Rune __islowerp[] = {
838
static Rune __islowers[] = {
878
p = rbsearch(c, __islowerr, nelem(__islowerr)/2, 2);
879
if(p && c >= p[0] && c <= p[1])
881
p = rbsearch(c, __islowerp, nelem(__islowerp)/2, 2);
882
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
884
p = rbsearch(c, __islowers, nelem(__islowers), 1);
890
static Rune __istitler[] = {
945
static Rune __istitlep[] = {
979
static Rune __istitles[] = {
1006
p = rbsearch(c, __istitler, nelem(__istitler)/2, 2);
1007
if(p && c >= p[0] && c <= p[1])
1009
p = rbsearch(c, __istitlep, nelem(__istitlep)/2, 2);
1010
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1012
p = rbsearch(c, __istitles, nelem(__istitles), 1);
1018
static Rune __toupperr[] = {
1019
0x0061, 0x007a, 1048544,
1020
0x00e0, 0x00f6, 1048544,
1021
0x00f8, 0x00fe, 1048544,
1022
0x023f, 0x0240, 1059391,
1023
0x0256, 0x0257, 1048371,
1024
0x028a, 0x028b, 1048359,
1025
0x037b, 0x037d, 1048706,
1026
0x03ad, 0x03af, 1048539,
1027
0x03b1, 0x03c1, 1048544,
1028
0x03c3, 0x03cb, 1048544,
1029
0x03cd, 0x03ce, 1048513,
1030
0x0430, 0x044f, 1048544,
1031
0x0450, 0x045f, 1048496,
1032
0x0561, 0x0586, 1048528,
1033
0x1f00, 0x1f07, 1048584,
1034
0x1f10, 0x1f15, 1048584,
1035
0x1f20, 0x1f27, 1048584,
1036
0x1f30, 0x1f37, 1048584,
1037
0x1f40, 0x1f45, 1048584,
1038
0x1f60, 0x1f67, 1048584,
1039
0x1f70, 0x1f71, 1048650,
1040
0x1f72, 0x1f75, 1048662,
1041
0x1f76, 0x1f77, 1048676,
1042
0x1f78, 0x1f79, 1048704,
1043
0x1f7a, 0x1f7b, 1048688,
1044
0x1f7c, 0x1f7d, 1048702,
1045
0x1f80, 0x1f87, 1048584,
1046
0x1f90, 0x1f97, 1048584,
1047
0x1fa0, 0x1fa7, 1048584,
1048
0x1fb0, 0x1fb1, 1048584,
1049
0x1fd0, 0x1fd1, 1048584,
1050
0x1fe0, 0x1fe1, 1048584,
1051
0x2170, 0x217f, 1048560,
1052
0x24d0, 0x24e9, 1048550,
1053
0x2c30, 0x2c5e, 1048528,
1054
0x2d00, 0x2d25, 1041312,
1055
0xff41, 0xff5a, 1048544,
1056
0x10428, 0x1044f, 1048536,
1059
static Rune __toupperp[] = {
1060
0x0101, 0x012f, 1048575,
1061
0x0133, 0x0137, 1048575,
1062
0x013a, 0x0148, 1048575,
1063
0x014b, 0x0177, 1048575,
1064
0x017a, 0x017e, 1048575,
1065
0x0183, 0x0185, 1048575,
1066
0x01a1, 0x01a5, 1048575,
1067
0x01b4, 0x01b6, 1048575,
1068
0x01ce, 0x01dc, 1048575,
1069
0x01df, 0x01ef, 1048575,
1070
0x01f9, 0x021f, 1048575,
1071
0x0223, 0x0233, 1048575,
1072
0x0247, 0x024f, 1048575,
1073
0x0371, 0x0373, 1048575,
1074
0x03d9, 0x03ef, 1048575,
1075
0x0461, 0x0481, 1048575,
1076
0x048b, 0x04bf, 1048575,
1077
0x04c2, 0x04ce, 1048575,
1078
0x04d1, 0x0527, 1048575,
1079
0x1e01, 0x1e95, 1048575,
1080
0x1ea1, 0x1eff, 1048575,
1081
0x1f51, 0x1f57, 1048584,
1082
0x2c68, 0x2c6c, 1048575,
1083
0x2c81, 0x2ce3, 1048575,
1084
0x2cec, 0x2cee, 1048575,
1085
0xa641, 0xa66d, 1048575,
1086
0xa681, 0xa697, 1048575,
1087
0xa723, 0xa72f, 1048575,
1088
0xa733, 0xa76f, 1048575,
1089
0xa77a, 0xa77c, 1048575,
1090
0xa77f, 0xa787, 1048575,
1091
0xa7a1, 0xa7a9, 1048575,
1094
static Rune __touppers[] = {
1190
p = rbsearch(c, __toupperr, nelem(__toupperr)/3, 3);
1191
if(p && c >= p[0] && c <= p[1])
1192
return c + p[2] - 1048576;
1193
p = rbsearch(c, __toupperp, nelem(__toupperp)/3, 3);
1194
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1195
return c + p[2] - 1048576;
1196
p = rbsearch(c, __touppers, nelem(__touppers)/2, 2);
1198
return c + p[1] - 1048576;
1202
static Rune __tolowerr[] = {
1203
0x0041, 0x005a, 1048608,
1204
0x00c0, 0x00d6, 1048608,
1205
0x00d8, 0x00de, 1048608,
1206
0x0189, 0x018a, 1048781,
1207
0x01b1, 0x01b2, 1048793,
1208
0x0388, 0x038a, 1048613,
1209
0x038e, 0x038f, 1048639,
1210
0x0391, 0x03a1, 1048608,
1211
0x03a3, 0x03ab, 1048608,
1212
0x03fd, 0x03ff, 1048446,
1213
0x0400, 0x040f, 1048656,
1214
0x0410, 0x042f, 1048608,
1215
0x0531, 0x0556, 1048624,
1216
0x10a0, 0x10c5, 1055840,
1217
0x1f08, 0x1f0f, 1048568,
1218
0x1f18, 0x1f1d, 1048568,
1219
0x1f28, 0x1f2f, 1048568,
1220
0x1f38, 0x1f3f, 1048568,
1221
0x1f48, 0x1f4d, 1048568,
1222
0x1f68, 0x1f6f, 1048568,
1223
0x1f88, 0x1f8f, 1048568,
1224
0x1f98, 0x1f9f, 1048568,
1225
0x1fa8, 0x1faf, 1048568,
1226
0x1fb8, 0x1fb9, 1048568,
1227
0x1fba, 0x1fbb, 1048502,
1228
0x1fc8, 0x1fcb, 1048490,
1229
0x1fd8, 0x1fd9, 1048568,
1230
0x1fda, 0x1fdb, 1048476,
1231
0x1fe8, 0x1fe9, 1048568,
1232
0x1fea, 0x1feb, 1048464,
1233
0x1ff8, 0x1ff9, 1048448,
1234
0x1ffa, 0x1ffb, 1048450,
1235
0x2160, 0x216f, 1048592,
1236
0x24b6, 0x24cf, 1048602,
1237
0x2c00, 0x2c2e, 1048624,
1238
0x2c7e, 0x2c7f, 1037761,
1239
0xff21, 0xff3a, 1048608,
1240
0x10400, 0x10427, 1048616,
1243
static Rune __tolowerp[] = {
1244
0x0100, 0x012e, 1048577,
1245
0x0132, 0x0136, 1048577,
1246
0x0139, 0x0147, 1048577,
1247
0x014a, 0x0176, 1048577,
1248
0x017b, 0x017d, 1048577,
1249
0x01a2, 0x01a4, 1048577,
1250
0x01b3, 0x01b5, 1048577,
1251
0x01cd, 0x01db, 1048577,
1252
0x01de, 0x01ee, 1048577,
1253
0x01f8, 0x021e, 1048577,
1254
0x0222, 0x0232, 1048577,
1255
0x0248, 0x024e, 1048577,
1256
0x0370, 0x0372, 1048577,
1257
0x03d8, 0x03ee, 1048577,
1258
0x0460, 0x0480, 1048577,
1259
0x048a, 0x04be, 1048577,
1260
0x04c3, 0x04cd, 1048577,
1261
0x04d0, 0x0526, 1048577,
1262
0x1e00, 0x1e94, 1048577,
1263
0x1ea0, 0x1efe, 1048577,
1264
0x1f59, 0x1f5f, 1048568,
1265
0x2c67, 0x2c6b, 1048577,
1266
0x2c80, 0x2ce2, 1048577,
1267
0x2ceb, 0x2ced, 1048577,
1268
0xa640, 0xa66c, 1048577,
1269
0xa680, 0xa696, 1048577,
1270
0xa722, 0xa72e, 1048577,
1271
0xa732, 0xa76e, 1048577,
1272
0xa779, 0xa77b, 1048577,
1273
0xa780, 0xa786, 1048577,
1274
0xa7a0, 0xa7a8, 1048577,
1277
static Rune __tolowers[] = {
1372
p = rbsearch(c, __tolowerr, nelem(__tolowerr)/3, 3);
1373
if(p && c >= p[0] && c <= p[1])
1374
return c + p[2] - 1048576;
1375
p = rbsearch(c, __tolowerp, nelem(__tolowerp)/3, 3);
1376
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1377
return c + p[2] - 1048576;
1378
p = rbsearch(c, __tolowers, nelem(__tolowers)/2, 2);
1380
return c + p[1] - 1048576;
1384
static Rune __totitler[] = {
1385
0x0061, 0x007a, 1048544,
1386
0x00e0, 0x00f6, 1048544,
1387
0x00f8, 0x00fe, 1048544,
1388
0x023f, 0x0240, 1059391,
1389
0x0256, 0x0257, 1048371,
1390
0x028a, 0x028b, 1048359,
1391
0x037b, 0x037d, 1048706,
1392
0x03ad, 0x03af, 1048539,
1393
0x03b1, 0x03c1, 1048544,
1394
0x03c3, 0x03cb, 1048544,
1395
0x03cd, 0x03ce, 1048513,
1396
0x0430, 0x044f, 1048544,
1397
0x0450, 0x045f, 1048496,
1398
0x0561, 0x0586, 1048528,
1399
0x1f00, 0x1f07, 1048584,
1400
0x1f10, 0x1f15, 1048584,
1401
0x1f20, 0x1f27, 1048584,
1402
0x1f30, 0x1f37, 1048584,
1403
0x1f40, 0x1f45, 1048584,
1404
0x1f60, 0x1f67, 1048584,
1405
0x1f70, 0x1f71, 1048650,
1406
0x1f72, 0x1f75, 1048662,
1407
0x1f76, 0x1f77, 1048676,
1408
0x1f78, 0x1f79, 1048704,
1409
0x1f7a, 0x1f7b, 1048688,
1410
0x1f7c, 0x1f7d, 1048702,
1411
0x1f80, 0x1f87, 1048584,
1412
0x1f90, 0x1f97, 1048584,
1413
0x1fa0, 0x1fa7, 1048584,
1414
0x1fb0, 0x1fb1, 1048584,
1415
0x1fd0, 0x1fd1, 1048584,
1416
0x1fe0, 0x1fe1, 1048584,
1417
0x2170, 0x217f, 1048560,
1418
0x24d0, 0x24e9, 1048550,
1419
0x2c30, 0x2c5e, 1048528,
1420
0x2d00, 0x2d25, 1041312,
1421
0xff41, 0xff5a, 1048544,
1422
0x10428, 0x1044f, 1048536,
1425
static Rune __totitlep[] = {
1426
0x0101, 0x012f, 1048575,
1427
0x0133, 0x0137, 1048575,
1428
0x013a, 0x0148, 1048575,
1429
0x014b, 0x0177, 1048575,
1430
0x017a, 0x017e, 1048575,
1431
0x0183, 0x0185, 1048575,
1432
0x01a1, 0x01a5, 1048575,
1433
0x01b4, 0x01b6, 1048575,
1434
0x01cc, 0x01dc, 1048575,
1435
0x01df, 0x01ef, 1048575,
1436
0x01f3, 0x01f5, 1048575,
1437
0x01f9, 0x021f, 1048575,
1438
0x0223, 0x0233, 1048575,
1439
0x0247, 0x024f, 1048575,
1440
0x0371, 0x0373, 1048575,
1441
0x03d9, 0x03ef, 1048575,
1442
0x0461, 0x0481, 1048575,
1443
0x048b, 0x04bf, 1048575,
1444
0x04c2, 0x04ce, 1048575,
1445
0x04d1, 0x0527, 1048575,
1446
0x1e01, 0x1e95, 1048575,
1447
0x1ea1, 0x1eff, 1048575,
1448
0x1f51, 0x1f57, 1048584,
1449
0x2c68, 0x2c6c, 1048575,
1450
0x2c81, 0x2ce3, 1048575,
1451
0x2cec, 0x2cee, 1048575,
1452
0xa641, 0xa66d, 1048575,
1453
0xa681, 0xa697, 1048575,
1454
0xa723, 0xa72f, 1048575,
1455
0xa733, 0xa76f, 1048575,
1456
0xa77a, 0xa77c, 1048575,
1457
0xa77f, 0xa787, 1048575,
1458
0xa7a1, 0xa7a9, 1048575,
1461
static Rune __totitles[] = {
1554
p = rbsearch(c, __totitler, nelem(__totitler)/3, 3);
1555
if(p && c >= p[0] && c <= p[1])
1556
return c + p[2] - 1048576;
1557
p = rbsearch(c, __totitlep, nelem(__totitlep)/3, 3);
1558
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1559
return c + p[2] - 1048576;
1560
p = rbsearch(c, __totitles, nelem(__totitles)/2, 2);
1562
return c + p[1] - 1048576;