1
/* generated automatically by mkrunetype.c from UnicodeData-6.2.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[] = {
79
p = rbsearch(c, __isdigitr, nelem(__isdigitr)/2, 2);
80
if(p && c >= p[0] && c <= p[1])
85
static Rune __isalphar[] = {
471
static Rune __isalphas[] = {
582
p = rbsearch(c, __isalphar, nelem(__isalphar)/2, 2);
583
if(p && c >= p[0] && c <= p[1])
585
p = rbsearch(c, __isalphas, nelem(__isalphas), 1);
591
static Rune __isupperr[] = {
680
static Rune __isupperp[] = {
714
static Rune __isuppers[] = {
754
p = rbsearch(c, __isupperr, nelem(__isupperr)/2, 2);
755
if(p && c >= p[0] && c <= p[1])
757
p = rbsearch(c, __isupperp, nelem(__isupperp)/2, 2);
758
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
760
p = rbsearch(c, __isuppers, nelem(__isuppers), 1);
766
static Rune __islowerr[] = {
862
static Rune __islowerp[] = {
897
static Rune __islowers[] = {
937
p = rbsearch(c, __islowerr, nelem(__islowerr)/2, 2);
938
if(p && c >= p[0] && c <= p[1])
940
p = rbsearch(c, __islowerp, nelem(__islowerp)/2, 2);
941
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
943
p = rbsearch(c, __islowers, nelem(__islowers), 1);
949
static Rune __istitler[] = {
1004
static Rune __istitlep[] = {
1039
static Rune __istitles[] = {
1068
p = rbsearch(c, __istitler, nelem(__istitler)/2, 2);
1069
if(p && c >= p[0] && c <= p[1])
1071
p = rbsearch(c, __istitlep, nelem(__istitlep)/2, 2);
1072
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1074
p = rbsearch(c, __istitles, nelem(__istitles), 1);
1080
static Rune __toupperr[] = {
1081
0x0061, 0x007a, 1048544,
1082
0x00e0, 0x00f6, 1048544,
1083
0x00f8, 0x00fe, 1048544,
1084
0x023f, 0x0240, 1059391,
1085
0x0256, 0x0257, 1048371,
1086
0x028a, 0x028b, 1048359,
1087
0x037b, 0x037d, 1048706,
1088
0x03ad, 0x03af, 1048539,
1089
0x03b1, 0x03c1, 1048544,
1090
0x03c3, 0x03cb, 1048544,
1091
0x03cd, 0x03ce, 1048513,
1092
0x0430, 0x044f, 1048544,
1093
0x0450, 0x045f, 1048496,
1094
0x0561, 0x0586, 1048528,
1095
0x1f00, 0x1f07, 1048584,
1096
0x1f10, 0x1f15, 1048584,
1097
0x1f20, 0x1f27, 1048584,
1098
0x1f30, 0x1f37, 1048584,
1099
0x1f40, 0x1f45, 1048584,
1100
0x1f60, 0x1f67, 1048584,
1101
0x1f70, 0x1f71, 1048650,
1102
0x1f72, 0x1f75, 1048662,
1103
0x1f76, 0x1f77, 1048676,
1104
0x1f78, 0x1f79, 1048704,
1105
0x1f7a, 0x1f7b, 1048688,
1106
0x1f7c, 0x1f7d, 1048702,
1107
0x1f80, 0x1f87, 1048584,
1108
0x1f90, 0x1f97, 1048584,
1109
0x1fa0, 0x1fa7, 1048584,
1110
0x1fb0, 0x1fb1, 1048584,
1111
0x1fd0, 0x1fd1, 1048584,
1112
0x1fe0, 0x1fe1, 1048584,
1113
0x2170, 0x217f, 1048560,
1114
0x24d0, 0x24e9, 1048550,
1115
0x2c30, 0x2c5e, 1048528,
1116
0x2d00, 0x2d25, 1041312,
1117
0xff41, 0xff5a, 1048544,
1118
0x10428, 0x1044f, 1048536,
1121
static Rune __toupperp[] = {
1122
0x0101, 0x012f, 1048575,
1123
0x0133, 0x0137, 1048575,
1124
0x013a, 0x0148, 1048575,
1125
0x014b, 0x0177, 1048575,
1126
0x017a, 0x017e, 1048575,
1127
0x0183, 0x0185, 1048575,
1128
0x01a1, 0x01a5, 1048575,
1129
0x01b4, 0x01b6, 1048575,
1130
0x01ce, 0x01dc, 1048575,
1131
0x01df, 0x01ef, 1048575,
1132
0x01f9, 0x021f, 1048575,
1133
0x0223, 0x0233, 1048575,
1134
0x0247, 0x024f, 1048575,
1135
0x0371, 0x0373, 1048575,
1136
0x03d9, 0x03ef, 1048575,
1137
0x0461, 0x0481, 1048575,
1138
0x048b, 0x04bf, 1048575,
1139
0x04c2, 0x04ce, 1048575,
1140
0x04d1, 0x0527, 1048575,
1141
0x1e01, 0x1e95, 1048575,
1142
0x1ea1, 0x1eff, 1048575,
1143
0x1f51, 0x1f57, 1048584,
1144
0x2c68, 0x2c6c, 1048575,
1145
0x2c81, 0x2ce3, 1048575,
1146
0x2cec, 0x2cee, 1048575,
1147
0xa641, 0xa66d, 1048575,
1148
0xa681, 0xa697, 1048575,
1149
0xa723, 0xa72f, 1048575,
1150
0xa733, 0xa76f, 1048575,
1151
0xa77a, 0xa77c, 1048575,
1152
0xa77f, 0xa787, 1048575,
1153
0xa791, 0xa793, 1048575,
1154
0xa7a1, 0xa7a9, 1048575,
1157
static Rune __touppers[] = {
1256
p = rbsearch(c, __toupperr, nelem(__toupperr)/3, 3);
1257
if(p && c >= p[0] && c <= p[1])
1258
return c + p[2] - 1048576;
1259
p = rbsearch(c, __toupperp, nelem(__toupperp)/3, 3);
1260
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1261
return c + p[2] - 1048576;
1262
p = rbsearch(c, __touppers, nelem(__touppers)/2, 2);
1264
return c + p[1] - 1048576;
1268
static Rune __tolowerr[] = {
1269
0x0041, 0x005a, 1048608,
1270
0x00c0, 0x00d6, 1048608,
1271
0x00d8, 0x00de, 1048608,
1272
0x0189, 0x018a, 1048781,
1273
0x01b1, 0x01b2, 1048793,
1274
0x0388, 0x038a, 1048613,
1275
0x038e, 0x038f, 1048639,
1276
0x0391, 0x03a1, 1048608,
1277
0x03a3, 0x03ab, 1048608,
1278
0x03fd, 0x03ff, 1048446,
1279
0x0400, 0x040f, 1048656,
1280
0x0410, 0x042f, 1048608,
1281
0x0531, 0x0556, 1048624,
1282
0x10a0, 0x10c5, 1055840,
1283
0x1f08, 0x1f0f, 1048568,
1284
0x1f18, 0x1f1d, 1048568,
1285
0x1f28, 0x1f2f, 1048568,
1286
0x1f38, 0x1f3f, 1048568,
1287
0x1f48, 0x1f4d, 1048568,
1288
0x1f68, 0x1f6f, 1048568,
1289
0x1f88, 0x1f8f, 1048568,
1290
0x1f98, 0x1f9f, 1048568,
1291
0x1fa8, 0x1faf, 1048568,
1292
0x1fb8, 0x1fb9, 1048568,
1293
0x1fba, 0x1fbb, 1048502,
1294
0x1fc8, 0x1fcb, 1048490,
1295
0x1fd8, 0x1fd9, 1048568,
1296
0x1fda, 0x1fdb, 1048476,
1297
0x1fe8, 0x1fe9, 1048568,
1298
0x1fea, 0x1feb, 1048464,
1299
0x1ff8, 0x1ff9, 1048448,
1300
0x1ffa, 0x1ffb, 1048450,
1301
0x2160, 0x216f, 1048592,
1302
0x24b6, 0x24cf, 1048602,
1303
0x2c00, 0x2c2e, 1048624,
1304
0x2c7e, 0x2c7f, 1037761,
1305
0xff21, 0xff3a, 1048608,
1306
0x10400, 0x10427, 1048616,
1309
static Rune __tolowerp[] = {
1310
0x0100, 0x012e, 1048577,
1311
0x0132, 0x0136, 1048577,
1312
0x0139, 0x0147, 1048577,
1313
0x014a, 0x0176, 1048577,
1314
0x017b, 0x017d, 1048577,
1315
0x01a2, 0x01a4, 1048577,
1316
0x01b3, 0x01b5, 1048577,
1317
0x01cd, 0x01db, 1048577,
1318
0x01de, 0x01ee, 1048577,
1319
0x01f8, 0x021e, 1048577,
1320
0x0222, 0x0232, 1048577,
1321
0x0248, 0x024e, 1048577,
1322
0x0370, 0x0372, 1048577,
1323
0x03d8, 0x03ee, 1048577,
1324
0x0460, 0x0480, 1048577,
1325
0x048a, 0x04be, 1048577,
1326
0x04c3, 0x04cd, 1048577,
1327
0x04d0, 0x0526, 1048577,
1328
0x1e00, 0x1e94, 1048577,
1329
0x1ea0, 0x1efe, 1048577,
1330
0x1f59, 0x1f5f, 1048568,
1331
0x2c67, 0x2c6b, 1048577,
1332
0x2c80, 0x2ce2, 1048577,
1333
0x2ceb, 0x2ced, 1048577,
1334
0xa640, 0xa66c, 1048577,
1335
0xa680, 0xa696, 1048577,
1336
0xa722, 0xa72e, 1048577,
1337
0xa732, 0xa76e, 1048577,
1338
0xa779, 0xa77b, 1048577,
1339
0xa780, 0xa786, 1048577,
1340
0xa790, 0xa792, 1048577,
1341
0xa7a0, 0xa7a8, 1048577,
1344
static Rune __tolowers[] = {
1442
p = rbsearch(c, __tolowerr, nelem(__tolowerr)/3, 3);
1443
if(p && c >= p[0] && c <= p[1])
1444
return c + p[2] - 1048576;
1445
p = rbsearch(c, __tolowerp, nelem(__tolowerp)/3, 3);
1446
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1447
return c + p[2] - 1048576;
1448
p = rbsearch(c, __tolowers, nelem(__tolowers)/2, 2);
1450
return c + p[1] - 1048576;
1454
static Rune __totitler[] = {
1455
0x0061, 0x007a, 1048544,
1456
0x00e0, 0x00f6, 1048544,
1457
0x00f8, 0x00fe, 1048544,
1458
0x023f, 0x0240, 1059391,
1459
0x0256, 0x0257, 1048371,
1460
0x028a, 0x028b, 1048359,
1461
0x037b, 0x037d, 1048706,
1462
0x03ad, 0x03af, 1048539,
1463
0x03b1, 0x03c1, 1048544,
1464
0x03c3, 0x03cb, 1048544,
1465
0x03cd, 0x03ce, 1048513,
1466
0x0430, 0x044f, 1048544,
1467
0x0450, 0x045f, 1048496,
1468
0x0561, 0x0586, 1048528,
1469
0x1f00, 0x1f07, 1048584,
1470
0x1f10, 0x1f15, 1048584,
1471
0x1f20, 0x1f27, 1048584,
1472
0x1f30, 0x1f37, 1048584,
1473
0x1f40, 0x1f45, 1048584,
1474
0x1f60, 0x1f67, 1048584,
1475
0x1f70, 0x1f71, 1048650,
1476
0x1f72, 0x1f75, 1048662,
1477
0x1f76, 0x1f77, 1048676,
1478
0x1f78, 0x1f79, 1048704,
1479
0x1f7a, 0x1f7b, 1048688,
1480
0x1f7c, 0x1f7d, 1048702,
1481
0x1f80, 0x1f87, 1048584,
1482
0x1f90, 0x1f97, 1048584,
1483
0x1fa0, 0x1fa7, 1048584,
1484
0x1fb0, 0x1fb1, 1048584,
1485
0x1fd0, 0x1fd1, 1048584,
1486
0x1fe0, 0x1fe1, 1048584,
1487
0x2170, 0x217f, 1048560,
1488
0x24d0, 0x24e9, 1048550,
1489
0x2c30, 0x2c5e, 1048528,
1490
0x2d00, 0x2d25, 1041312,
1491
0xff41, 0xff5a, 1048544,
1492
0x10428, 0x1044f, 1048536,
1495
static Rune __totitlep[] = {
1496
0x0101, 0x012f, 1048575,
1497
0x0133, 0x0137, 1048575,
1498
0x013a, 0x0148, 1048575,
1499
0x014b, 0x0177, 1048575,
1500
0x017a, 0x017e, 1048575,
1501
0x0183, 0x0185, 1048575,
1502
0x01a1, 0x01a5, 1048575,
1503
0x01b4, 0x01b6, 1048575,
1504
0x01cc, 0x01dc, 1048575,
1505
0x01df, 0x01ef, 1048575,
1506
0x01f3, 0x01f5, 1048575,
1507
0x01f9, 0x021f, 1048575,
1508
0x0223, 0x0233, 1048575,
1509
0x0247, 0x024f, 1048575,
1510
0x0371, 0x0373, 1048575,
1511
0x03d9, 0x03ef, 1048575,
1512
0x0461, 0x0481, 1048575,
1513
0x048b, 0x04bf, 1048575,
1514
0x04c2, 0x04ce, 1048575,
1515
0x04d1, 0x0527, 1048575,
1516
0x1e01, 0x1e95, 1048575,
1517
0x1ea1, 0x1eff, 1048575,
1518
0x1f51, 0x1f57, 1048584,
1519
0x2c68, 0x2c6c, 1048575,
1520
0x2c81, 0x2ce3, 1048575,
1521
0x2cec, 0x2cee, 1048575,
1522
0xa641, 0xa66d, 1048575,
1523
0xa681, 0xa697, 1048575,
1524
0xa723, 0xa72f, 1048575,
1525
0xa733, 0xa76f, 1048575,
1526
0xa77a, 0xa77c, 1048575,
1527
0xa77f, 0xa787, 1048575,
1528
0xa791, 0xa793, 1048575,
1529
0xa7a1, 0xa7a9, 1048575,
1532
static Rune __totitles[] = {
1628
p = rbsearch(c, __totitler, nelem(__totitler)/3, 3);
1629
if(p && c >= p[0] && c <= p[1])
1630
return c + p[2] - 1048576;
1631
p = rbsearch(c, __totitlep, nelem(__totitlep)/3, 3);
1632
if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
1633
return c + p[2] - 1048576;
1634
p = rbsearch(c, __totitles, nelem(__totitles)/2, 2);
1636
return c + p[1] - 1048576;