comparison src/mbyte.c @ 25062:042560a16d4e v8.2.3068

patch 8.2.3068: Unicode tables are slightly outdated Commit: https://github.com/vim/vim/commit/d887297ad0164516dd52cdab0308c3626337d124 Author: Christian Brabandt <cb@256bit.org> Date: Sun Jun 27 21:30:14 2021 +0200 patch 8.2.3068: Unicode tables are slightly outdated Problem: Unicode tables are slightly outdated. Solution: Update the tables for Unicode release 13. (Christian Brabandt closes #8430)
author Bram Moolenaar <Bram@vim.org>
date Sun, 27 Jun 2021 21:45:02 +0200
parents 02fa8d72e4e3
children cd5e8df05a64
comparison
equal deleted inserted replaced
25061:d4239ea7cdd6 25062:042560a16d4e
1387 {0x26bd, 0x26be}, 1387 {0x26bd, 0x26be},
1388 {0x26c4, 0x26c5}, 1388 {0x26c4, 0x26c5},
1389 {0x26ce, 0x26ce}, 1389 {0x26ce, 0x26ce},
1390 {0x26d4, 0x26d4}, 1390 {0x26d4, 0x26d4},
1391 {0x26ea, 0x26ea}, 1391 {0x26ea, 0x26ea},
1392 {0x26f2, 0x26f5}, 1392 {0x26f2, 0x26f3},
1393 {0x26f5, 0x26f5},
1393 {0x26fa, 0x26fa}, 1394 {0x26fa, 0x26fa},
1394 {0x26fd, 0x26fd}, 1395 {0x26fd, 0x26fd},
1395 {0x2705, 0x2705}, 1396 {0x2705, 0x2705},
1396 {0x270a, 0x270b}, 1397 {0x270a, 0x270b},
1397 {0x2728, 0x2728}, 1398 {0x2728, 0x2728},
1412 {0x3000, 0x303e}, 1413 {0x3000, 0x303e},
1413 {0x3041, 0x3096}, 1414 {0x3041, 0x3096},
1414 {0x3099, 0x30ff}, 1415 {0x3099, 0x30ff},
1415 {0x3105, 0x312f}, 1416 {0x3105, 0x312f},
1416 {0x3131, 0x318e}, 1417 {0x3131, 0x318e},
1417 {0x3190, 0x31ba}, 1418 {0x3190, 0x31e3},
1418 {0x31c0, 0x31e3},
1419 {0x31f0, 0x321e}, 1419 {0x31f0, 0x321e},
1420 {0x3220, 0x3247}, 1420 {0x3220, 0x3247},
1421 {0x3250, 0x4dbf}, 1421 {0x3250, 0x4dbf},
1422 {0x4e00, 0xa48c}, 1422 {0x4e00, 0xa48c},
1423 {0xa490, 0xa4c6}, 1423 {0xa490, 0xa4c6},
1429 {0xfe54, 0xfe66}, 1429 {0xfe54, 0xfe66},
1430 {0xfe68, 0xfe6b}, 1430 {0xfe68, 0xfe6b},
1431 {0xff01, 0xff60}, 1431 {0xff01, 0xff60},
1432 {0xffe0, 0xffe6}, 1432 {0xffe0, 0xffe6},
1433 {0x16fe0, 0x16fe3}, 1433 {0x16fe0, 0x16fe3},
1434 {0x16ff0, 0x16ff1},
1434 {0x17000, 0x187f7}, 1435 {0x17000, 0x187f7},
1435 {0x18800, 0x18af2}, 1436 {0x18800, 0x18cd5},
1437 {0x18d00, 0x18d08},
1436 {0x1b000, 0x1b11e}, 1438 {0x1b000, 0x1b11e},
1437 {0x1b150, 0x1b152}, 1439 {0x1b150, 0x1b152},
1438 {0x1b164, 0x1b167}, 1440 {0x1b164, 0x1b167},
1439 {0x1b170, 0x1b2fb}, 1441 {0x1b170, 0x1b2fb},
1440 {0x1f004, 0x1f004}, 1442 {0x1f004, 0x1f004},
1465 {0x1f5a4, 0x1f5a4}, 1467 {0x1f5a4, 0x1f5a4},
1466 {0x1f5fb, 0x1f64f}, 1468 {0x1f5fb, 0x1f64f},
1467 {0x1f680, 0x1f6c5}, 1469 {0x1f680, 0x1f6c5},
1468 {0x1f6cc, 0x1f6cc}, 1470 {0x1f6cc, 0x1f6cc},
1469 {0x1f6d0, 0x1f6d2}, 1471 {0x1f6d0, 0x1f6d2},
1470 {0x1f6d5, 0x1f6d5}, 1472 {0x1f6d5, 0x1f6d7},
1471 {0x1f6eb, 0x1f6ec}, 1473 {0x1f6eb, 0x1f6ec},
1472 {0x1f6f4, 0x1f6fa}, 1474 {0x1f6f4, 0x1f6fc},
1473 {0x1f7e0, 0x1f7eb}, 1475 {0x1f7e0, 0x1f7eb},
1474 {0x1f90d, 0x1f971}, 1476 {0x1f90c, 0x1f93a},
1475 {0x1f973, 0x1f976}, 1477 {0x1f93c, 0x1f945},
1476 {0x1f97a, 0x1f9a2}, 1478 {0x1f947, 0x1f978},
1477 {0x1f9a5, 0x1f9aa}, 1479 {0x1f97a, 0x1f9cb},
1478 {0x1f9ae, 0x1f9ca},
1479 {0x1f9cd, 0x1f9ff}, 1480 {0x1f9cd, 0x1f9ff},
1480 {0x1fa70, 0x1fa73}, 1481 {0x1fa70, 0x1fa74},
1481 {0x1fa78, 0x1fa7a}, 1482 {0x1fa78, 0x1fa7a},
1482 {0x1fa80, 0x1fa82}, 1483 {0x1fa80, 0x1fa86},
1483 {0x1fa90, 0x1fa95}, 1484 {0x1fa90, 0x1faa8},
1485 {0x1fab0, 0x1fab6},
1486 {0x1fac0, 0x1fac2},
1487 {0x1fad0, 0x1fad6},
1484 {0x20000, 0x2fffd}, 1488 {0x20000, 0x2fffd},
1485 {0x30000, 0x3fffd} 1489 {0x30000, 0x3fffd}
1486 }; 1490 };
1487 1491
1488 // Sorted list of non-overlapping intervals of Emoji characters that don't 1492 // Sorted list of non-overlapping intervals of Emoji characters that don't
2348 {0x0b01, 0x0b03}, 2352 {0x0b01, 0x0b03},
2349 {0x0b3c, 0x0b3c}, 2353 {0x0b3c, 0x0b3c},
2350 {0x0b3e, 0x0b44}, 2354 {0x0b3e, 0x0b44},
2351 {0x0b47, 0x0b48}, 2355 {0x0b47, 0x0b48},
2352 {0x0b4b, 0x0b4d}, 2356 {0x0b4b, 0x0b4d},
2353 {0x0b56, 0x0b57}, 2357 {0x0b55, 0x0b57},
2354 {0x0b62, 0x0b63}, 2358 {0x0b62, 0x0b63},
2355 {0x0b82, 0x0b82}, 2359 {0x0b82, 0x0b82},
2356 {0x0bbe, 0x0bc2}, 2360 {0x0bbe, 0x0bc2},
2357 {0x0bc6, 0x0bc8}, 2361 {0x0bc6, 0x0bc8},
2358 {0x0bca, 0x0bcd}, 2362 {0x0bca, 0x0bcd},
2375 {0x0d3e, 0x0d44}, 2379 {0x0d3e, 0x0d44},
2376 {0x0d46, 0x0d48}, 2380 {0x0d46, 0x0d48},
2377 {0x0d4a, 0x0d4d}, 2381 {0x0d4a, 0x0d4d},
2378 {0x0d57, 0x0d57}, 2382 {0x0d57, 0x0d57},
2379 {0x0d62, 0x0d63}, 2383 {0x0d62, 0x0d63},
2380 {0x0d82, 0x0d83}, 2384 {0x0d81, 0x0d83},
2381 {0x0dca, 0x0dca}, 2385 {0x0dca, 0x0dca},
2382 {0x0dcf, 0x0dd4}, 2386 {0x0dcf, 0x0dd4},
2383 {0x0dd6, 0x0dd6}, 2387 {0x0dd6, 0x0dd6},
2384 {0x0dd8, 0x0ddf}, 2388 {0x0dd8, 0x0ddf},
2385 {0x0df2, 0x0df3}, 2389 {0x0df2, 0x0df3},
2422 {0x1930, 0x193b}, 2426 {0x1930, 0x193b},
2423 {0x1a17, 0x1a1b}, 2427 {0x1a17, 0x1a1b},
2424 {0x1a55, 0x1a5e}, 2428 {0x1a55, 0x1a5e},
2425 {0x1a60, 0x1a7c}, 2429 {0x1a60, 0x1a7c},
2426 {0x1a7f, 0x1a7f}, 2430 {0x1a7f, 0x1a7f},
2427 {0x1ab0, 0x1abe}, 2431 {0x1ab0, 0x1ac0},
2428 {0x1b00, 0x1b04}, 2432 {0x1b00, 0x1b04},
2429 {0x1b34, 0x1b44}, 2433 {0x1b34, 0x1b44},
2430 {0x1b6b, 0x1b73}, 2434 {0x1b6b, 0x1b73},
2431 {0x1b80, 0x1b82}, 2435 {0x1b80, 0x1b82},
2432 {0x1ba1, 0x1bad}, 2436 {0x1ba1, 0x1bad},
2451 {0xa6f0, 0xa6f1}, 2455 {0xa6f0, 0xa6f1},
2452 {0xa802, 0xa802}, 2456 {0xa802, 0xa802},
2453 {0xa806, 0xa806}, 2457 {0xa806, 0xa806},
2454 {0xa80b, 0xa80b}, 2458 {0xa80b, 0xa80b},
2455 {0xa823, 0xa827}, 2459 {0xa823, 0xa827},
2460 {0xa82c, 0xa82c},
2456 {0xa880, 0xa881}, 2461 {0xa880, 0xa881},
2457 {0xa8b4, 0xa8c5}, 2462 {0xa8b4, 0xa8c5},
2458 {0xa8e0, 0xa8f1}, 2463 {0xa8e0, 0xa8f1},
2459 {0xa8ff, 0xa8ff}, 2464 {0xa8ff, 0xa8ff},
2460 {0xa926, 0xa92d}, 2465 {0xa926, 0xa92d},
2486 {0x10a0c, 0x10a0f}, 2491 {0x10a0c, 0x10a0f},
2487 {0x10a38, 0x10a3a}, 2492 {0x10a38, 0x10a3a},
2488 {0x10a3f, 0x10a3f}, 2493 {0x10a3f, 0x10a3f},
2489 {0x10ae5, 0x10ae6}, 2494 {0x10ae5, 0x10ae6},
2490 {0x10d24, 0x10d27}, 2495 {0x10d24, 0x10d27},
2496 {0x10eab, 0x10eac},
2491 {0x10f46, 0x10f50}, 2497 {0x10f46, 0x10f50},
2492 {0x11000, 0x11002}, 2498 {0x11000, 0x11002},
2493 {0x11038, 0x11046}, 2499 {0x11038, 0x11046},
2494 {0x1107f, 0x11082}, 2500 {0x1107f, 0x11082},
2495 {0x110b0, 0x110ba}, 2501 {0x110b0, 0x110ba},
2498 {0x11145, 0x11146}, 2504 {0x11145, 0x11146},
2499 {0x11173, 0x11173}, 2505 {0x11173, 0x11173},
2500 {0x11180, 0x11182}, 2506 {0x11180, 0x11182},
2501 {0x111b3, 0x111c0}, 2507 {0x111b3, 0x111c0},
2502 {0x111c9, 0x111cc}, 2508 {0x111c9, 0x111cc},
2509 {0x111ce, 0x111cf},
2503 {0x1122c, 0x11237}, 2510 {0x1122c, 0x11237},
2504 {0x1123e, 0x1123e}, 2511 {0x1123e, 0x1123e},
2505 {0x112df, 0x112ea}, 2512 {0x112df, 0x112ea},
2506 {0x11300, 0x11303}, 2513 {0x11300, 0x11303},
2507 {0x1133b, 0x1133c}, 2514 {0x1133b, 0x1133c},
2520 {0x115dc, 0x115dd}, 2527 {0x115dc, 0x115dd},
2521 {0x11630, 0x11640}, 2528 {0x11630, 0x11640},
2522 {0x116ab, 0x116b7}, 2529 {0x116ab, 0x116b7},
2523 {0x1171d, 0x1172b}, 2530 {0x1171d, 0x1172b},
2524 {0x1182c, 0x1183a}, 2531 {0x1182c, 0x1183a},
2532 {0x11930, 0x11935},
2533 {0x11937, 0x11938},
2534 {0x1193b, 0x1193e},
2535 {0x11940, 0x11940},
2536 {0x11942, 0x11943},
2525 {0x119d1, 0x119d7}, 2537 {0x119d1, 0x119d7},
2526 {0x119da, 0x119e0}, 2538 {0x119da, 0x119e0},
2527 {0x119e4, 0x119e4}, 2539 {0x119e4, 0x119e4},
2528 {0x11a01, 0x11a0a}, 2540 {0x11a01, 0x11a0a},
2529 {0x11a33, 0x11a39}, 2541 {0x11a33, 0x11a39},
2547 {0x16af0, 0x16af4}, 2559 {0x16af0, 0x16af4},
2548 {0x16b30, 0x16b36}, 2560 {0x16b30, 0x16b36},
2549 {0x16f4f, 0x16f4f}, 2561 {0x16f4f, 0x16f4f},
2550 {0x16f51, 0x16f87}, 2562 {0x16f51, 0x16f87},
2551 {0x16f8f, 0x16f92}, 2563 {0x16f8f, 0x16f92},
2564 {0x16fe4, 0x16fe4},
2565 {0x16ff0, 0x16ff1},
2552 {0x1bc9d, 0x1bc9e}, 2566 {0x1bc9d, 0x1bc9e},
2553 {0x1d165, 0x1d169}, 2567 {0x1d165, 0x1d169},
2554 {0x1d16d, 0x1d172}, 2568 {0x1d16d, 0x1d172},
2555 {0x1d17b, 0x1d182}, 2569 {0x1d17b, 0x1d182},
2556 {0x1d185, 0x1d18b}, 2570 {0x1d185, 0x1d18b},
2648 {0x267e, 0x267f}, 2662 {0x267e, 0x267f},
2649 {0x2692, 0x2697}, 2663 {0x2692, 0x2697},
2650 {0x2699, 0x2699}, 2664 {0x2699, 0x2699},
2651 {0x269b, 0x269c}, 2665 {0x269b, 0x269c},
2652 {0x26a0, 0x26a1}, 2666 {0x26a0, 0x26a1},
2667 {0x26a7, 0x26a7},
2653 {0x26aa, 0x26ab}, 2668 {0x26aa, 0x26ab},
2654 {0x26b0, 0x26b1}, 2669 {0x26b0, 0x26b1},
2655 {0x26bd, 0x26be}, 2670 {0x26bd, 0x26be},
2656 {0x26c4, 0x26c5}, 2671 {0x26c4, 0x26c5},
2657 {0x26c8, 0x26c8}, 2672 {0x26c8, 0x26c8},
2693 {0x303d, 0x303d}, 2708 {0x303d, 0x303d},
2694 {0x3297, 0x3297}, 2709 {0x3297, 0x3297},
2695 {0x3299, 0x3299}, 2710 {0x3299, 0x3299},
2696 {0x1f004, 0x1f004}, 2711 {0x1f004, 0x1f004},
2697 {0x1f0cf, 0x1f0cf}, 2712 {0x1f0cf, 0x1f0cf},
2698 {0x1f170, 0x1f189}, 2713 {0x1f170, 0x1f171},
2714 {0x1f17e, 0x1f17f},
2699 {0x1f18e, 0x1f18e}, 2715 {0x1f18e, 0x1f18e},
2700 {0x1f191, 0x1f19a}, 2716 {0x1f191, 0x1f19a},
2701 {0x1f1e6, 0x1f1ff}, 2717 {0x1f1e6, 0x1f1ff},
2702 {0x1f201, 0x1f202}, 2718 {0x1f201, 0x1f202},
2703 {0x1f21a, 0x1f21a}, 2719 {0x1f21a, 0x1f21a},
2733 {0x1f5ef, 0x1f5ef}, 2749 {0x1f5ef, 0x1f5ef},
2734 {0x1f5f3, 0x1f5f3}, 2750 {0x1f5f3, 0x1f5f3},
2735 {0x1f5fa, 0x1f64f}, 2751 {0x1f5fa, 0x1f64f},
2736 {0x1f680, 0x1f6c5}, 2752 {0x1f680, 0x1f6c5},
2737 {0x1f6cb, 0x1f6d2}, 2753 {0x1f6cb, 0x1f6d2},
2754 {0x1f6d5, 0x1f6d7},
2738 {0x1f6e0, 0x1f6e5}, 2755 {0x1f6e0, 0x1f6e5},
2739 {0x1f6e9, 0x1f6e9}, 2756 {0x1f6e9, 0x1f6e9},
2740 {0x1f6eb, 0x1f6ec}, 2757 {0x1f6eb, 0x1f6ec},
2741 {0x1f6f0, 0x1f6f0}, 2758 {0x1f6f0, 0x1f6f0},
2742 {0x1f6f3, 0x1f6f9}, 2759 {0x1f6f3, 0x1f6fc},
2743 {0x1f910, 0x1f93a}, 2760 {0x1f7e0, 0x1f7eb},
2744 {0x1f93c, 0x1f93e}, 2761 {0x1f90c, 0x1f93a},
2745 {0x1f940, 0x1f945}, 2762 {0x1f93c, 0x1f945},
2746 {0x1f947, 0x1f970}, 2763 {0x1f947, 0x1f978},
2747 {0x1f973, 0x1f976}, 2764 {0x1f97a, 0x1f9cb},
2748 {0x1f97a, 0x1f97a}, 2765 {0x1f9cd, 0x1f9ff},
2749 {0x1f97c, 0x1f9a2}, 2766 {0x1fa70, 0x1fa74},
2750 {0x1f9b0, 0x1f9b9}, 2767 {0x1fa78, 0x1fa7a},
2751 {0x1f9c0, 0x1f9c2}, 2768 {0x1fa80, 0x1fa86},
2752 {0x1f9d0, 0x1f9ff} 2769 {0x1fa90, 0x1faa8},
2770 {0x1fab0, 0x1fab6},
2771 {0x1fac0, 0x1fac2},
2772 {0x1fad0, 0x1fad6}
2753 }; 2773 };
2754 2774
2755 /* 2775 /*
2756 * Get class of a Unicode character. 2776 * Get class of a Unicode character.
2757 * 0: white space 2777 * 0: white space
3095 {0xa7b4,0xa7be,2,1}, 3115 {0xa7b4,0xa7be,2,1},
3096 {0xa7c2,0xa7c2,-1,1}, 3116 {0xa7c2,0xa7c2,-1,1},
3097 {0xa7c4,0xa7c4,-1,-48}, 3117 {0xa7c4,0xa7c4,-1,-48},
3098 {0xa7c5,0xa7c5,-1,-42307}, 3118 {0xa7c5,0xa7c5,-1,-42307},
3099 {0xa7c6,0xa7c6,-1,-35384}, 3119 {0xa7c6,0xa7c6,-1,-35384},
3120 {0xa7c7,0xa7c9,2,1},
3121 {0xa7f5,0xa7f5,-1,1},
3100 {0xab70,0xabbf,1,-38864}, 3122 {0xab70,0xabbf,1,-38864},
3101 {0xff21,0xff3a,1,32}, 3123 {0xff21,0xff3a,1,32},
3102 {0x10400,0x10427,1,40}, 3124 {0x10400,0x10427,1,40},
3103 {0x104b0,0x104d3,1,40}, 3125 {0x104b0,0x104d3,1,40},
3104 {0x10c80,0x10cb2,1,64}, 3126 {0x10c80,0x10cb2,1,64},
3319 {0xa7b4,0xa7be,2,1}, 3341 {0xa7b4,0xa7be,2,1},
3320 {0xa7c2,0xa7c2,-1,1}, 3342 {0xa7c2,0xa7c2,-1,1},
3321 {0xa7c4,0xa7c4,-1,-48}, 3343 {0xa7c4,0xa7c4,-1,-48},
3322 {0xa7c5,0xa7c5,-1,-42307}, 3344 {0xa7c5,0xa7c5,-1,-42307},
3323 {0xa7c6,0xa7c6,-1,-35384}, 3345 {0xa7c6,0xa7c6,-1,-35384},
3346 {0xa7c7,0xa7c9,2,1},
3347 {0xa7f5,0xa7f5,-1,1},
3324 {0xff21,0xff3a,1,32}, 3348 {0xff21,0xff3a,1,32},
3325 {0x10400,0x10427,1,40}, 3349 {0x10400,0x10427,1,40},
3326 {0x104b0,0x104d3,1,40}, 3350 {0x104b0,0x104d3,1,40},
3327 {0x10c80,0x10cb2,1,64}, 3351 {0x10c80,0x10cb2,1,64},
3328 {0x118a0,0x118bf,1,32}, 3352 {0x118a0,0x118bf,1,32},
3507 {0xa78c,0xa791,5,-1}, 3531 {0xa78c,0xa791,5,-1},
3508 {0xa793,0xa793,-1,-1}, 3532 {0xa793,0xa793,-1,-1},
3509 {0xa794,0xa794,-1,48}, 3533 {0xa794,0xa794,-1,48},
3510 {0xa797,0xa7a9,2,-1}, 3534 {0xa797,0xa7a9,2,-1},
3511 {0xa7b5,0xa7bf,2,-1}, 3535 {0xa7b5,0xa7bf,2,-1},
3512 {0xa7c3,0xa7c3,-1,-1}, 3536 {0xa7c3,0xa7c8,5,-1},
3537 {0xa7ca,0xa7f6,44,-1},
3513 {0xab53,0xab53,-1,-928}, 3538 {0xab53,0xab53,-1,-928},
3514 {0xab70,0xabbf,1,-38864}, 3539 {0xab70,0xabbf,1,-38864},
3515 {0xff41,0xff5a,1,-32}, 3540 {0xff41,0xff5a,1,-32},
3516 {0x10428,0x1044f,1,-40}, 3541 {0x10428,0x1044f,1,-40},
3517 {0x104d8,0x104fb,1,-40}, 3542 {0x104d8,0x104fb,1,-40},