mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
1051 lines
33 KiB
C
1051 lines
33 KiB
C
#include "pocketpy/common/str.h"
|
|
#include "pocketpy/pocketpy.h"
|
|
|
|
const static c11_u32_range kEastAsianWidthRanges[] = {
|
|
{32, 126, "Na\0"},
|
|
{161, 161, "A\0" },
|
|
{162, 163, "Na\0"},
|
|
{164, 164, "A\0" },
|
|
{165, 166, "Na\0"},
|
|
{167, 168, "A\0" },
|
|
{170, 170, "A\0" },
|
|
{172, 172, "Na\0"},
|
|
{173, 174, "A\0" },
|
|
{175, 175, "Na\0"},
|
|
{176, 180, "A\0" },
|
|
{182, 186, "A\0" },
|
|
{188, 191, "A\0" },
|
|
{198, 198, "A\0" },
|
|
{208, 208, "A\0" },
|
|
{215, 216, "A\0" },
|
|
{222, 225, "A\0" },
|
|
{230, 230, "A\0" },
|
|
{232, 234, "A\0" },
|
|
{236, 237, "A\0" },
|
|
{240, 240, "A\0" },
|
|
{242, 243, "A\0" },
|
|
{247, 250, "A\0" },
|
|
{252, 252, "A\0" },
|
|
{254, 254, "A\0" },
|
|
{257, 257, "A\0" },
|
|
{273, 273, "A\0" },
|
|
{275, 275, "A\0" },
|
|
{283, 283, "A\0" },
|
|
{294, 295, "A\0" },
|
|
{299, 299, "A\0" },
|
|
{305, 307, "A\0" },
|
|
{312, 312, "A\0" },
|
|
{319, 322, "A\0" },
|
|
{324, 324, "A\0" },
|
|
{328, 331, "A\0" },
|
|
{333, 333, "A\0" },
|
|
{338, 339, "A\0" },
|
|
{358, 359, "A\0" },
|
|
{363, 363, "A\0" },
|
|
{462, 462, "A\0" },
|
|
{464, 464, "A\0" },
|
|
{466, 466, "A\0" },
|
|
{468, 468, "A\0" },
|
|
{470, 470, "A\0" },
|
|
{472, 472, "A\0" },
|
|
{474, 474, "A\0" },
|
|
{476, 476, "A\0" },
|
|
{593, 593, "A\0" },
|
|
{609, 609, "A\0" },
|
|
{708, 708, "A\0" },
|
|
{711, 711, "A\0" },
|
|
{713, 715, "A\0" },
|
|
{717, 717, "A\0" },
|
|
{720, 720, "A\0" },
|
|
{728, 731, "A\0" },
|
|
{733, 733, "A\0" },
|
|
{735, 735, "A\0" },
|
|
{768, 879, "A\0" },
|
|
{888, 889, "F\0" },
|
|
{896, 899, "F\0" },
|
|
{907, 907, "F\0" },
|
|
{909, 909, "F\0" },
|
|
{913, 929, "A\0" },
|
|
{930, 930, "F\0" },
|
|
{931, 937, "A\0" },
|
|
{945, 961, "A\0" },
|
|
{963, 969, "A\0" },
|
|
{1025, 1025, "A\0" },
|
|
{1040, 1103, "A\0" },
|
|
{1105, 1105, "A\0" },
|
|
{1328, 1328, "F\0" },
|
|
{1367, 1368, "F\0" },
|
|
{1419, 1420, "F\0" },
|
|
{1424, 1424, "F\0" },
|
|
{1480, 1487, "F\0" },
|
|
{1515, 1518, "F\0" },
|
|
{1525, 1535, "F\0" },
|
|
{1806, 1806, "F\0" },
|
|
{1867, 1868, "F\0" },
|
|
{1970, 1983, "F\0" },
|
|
{2043, 2044, "F\0" },
|
|
{2094, 2095, "F\0" },
|
|
{2111, 2111, "F\0" },
|
|
{2140, 2141, "F\0" },
|
|
{2143, 2143, "F\0" },
|
|
{2155, 2159, "F\0" },
|
|
{2191, 2191, "F\0" },
|
|
{2194, 2199, "F\0" },
|
|
{2436, 2436, "F\0" },
|
|
{2445, 2446, "F\0" },
|
|
{2449, 2450, "F\0" },
|
|
{2473, 2473, "F\0" },
|
|
{2481, 2481, "F\0" },
|
|
{2483, 2485, "F\0" },
|
|
{2490, 2491, "F\0" },
|
|
{2501, 2502, "F\0" },
|
|
{2505, 2506, "F\0" },
|
|
{2511, 2518, "F\0" },
|
|
{2520, 2523, "F\0" },
|
|
{2526, 2526, "F\0" },
|
|
{2532, 2533, "F\0" },
|
|
{2559, 2560, "F\0" },
|
|
{2564, 2564, "F\0" },
|
|
{2571, 2574, "F\0" },
|
|
{2577, 2578, "F\0" },
|
|
{2601, 2601, "F\0" },
|
|
{2609, 2609, "F\0" },
|
|
{2612, 2612, "F\0" },
|
|
{2615, 2615, "F\0" },
|
|
{2618, 2619, "F\0" },
|
|
{2621, 2621, "F\0" },
|
|
{2627, 2630, "F\0" },
|
|
{2633, 2634, "F\0" },
|
|
{2638, 2640, "F\0" },
|
|
{2642, 2648, "F\0" },
|
|
{2653, 2653, "F\0" },
|
|
{2655, 2661, "F\0" },
|
|
{2679, 2688, "F\0" },
|
|
{2692, 2692, "F\0" },
|
|
{2702, 2702, "F\0" },
|
|
{2706, 2706, "F\0" },
|
|
{2729, 2729, "F\0" },
|
|
{2737, 2737, "F\0" },
|
|
{2740, 2740, "F\0" },
|
|
{2746, 2747, "F\0" },
|
|
{2758, 2758, "F\0" },
|
|
{2762, 2762, "F\0" },
|
|
{2766, 2767, "F\0" },
|
|
{2769, 2783, "F\0" },
|
|
{2788, 2789, "F\0" },
|
|
{2802, 2808, "F\0" },
|
|
{2816, 2816, "F\0" },
|
|
{2820, 2820, "F\0" },
|
|
{2829, 2830, "F\0" },
|
|
{2833, 2834, "F\0" },
|
|
{2857, 2857, "F\0" },
|
|
{2865, 2865, "F\0" },
|
|
{2868, 2868, "F\0" },
|
|
{2874, 2875, "F\0" },
|
|
{2885, 2886, "F\0" },
|
|
{2889, 2890, "F\0" },
|
|
{2894, 2900, "F\0" },
|
|
{2904, 2907, "F\0" },
|
|
{2910, 2910, "F\0" },
|
|
{2916, 2917, "F\0" },
|
|
{2936, 2945, "F\0" },
|
|
{2948, 2948, "F\0" },
|
|
{2955, 2957, "F\0" },
|
|
{2961, 2961, "F\0" },
|
|
{2966, 2968, "F\0" },
|
|
{2971, 2971, "F\0" },
|
|
{2973, 2973, "F\0" },
|
|
{2976, 2978, "F\0" },
|
|
{2981, 2983, "F\0" },
|
|
{2987, 2989, "F\0" },
|
|
{3002, 3005, "F\0" },
|
|
{3011, 3013, "F\0" },
|
|
{3017, 3017, "F\0" },
|
|
{3022, 3023, "F\0" },
|
|
{3025, 3030, "F\0" },
|
|
{3032, 3045, "F\0" },
|
|
{3067, 3071, "F\0" },
|
|
{3085, 3085, "F\0" },
|
|
{3089, 3089, "F\0" },
|
|
{3113, 3113, "F\0" },
|
|
{3130, 3131, "F\0" },
|
|
{3141, 3141, "F\0" },
|
|
{3145, 3145, "F\0" },
|
|
{3150, 3156, "F\0" },
|
|
{3159, 3159, "F\0" },
|
|
{3163, 3164, "F\0" },
|
|
{3166, 3167, "F\0" },
|
|
{3172, 3173, "F\0" },
|
|
{3184, 3190, "F\0" },
|
|
{3213, 3213, "F\0" },
|
|
{3217, 3217, "F\0" },
|
|
{3241, 3241, "F\0" },
|
|
{3252, 3252, "F\0" },
|
|
{3258, 3259, "F\0" },
|
|
{3269, 3269, "F\0" },
|
|
{3273, 3273, "F\0" },
|
|
{3278, 3284, "F\0" },
|
|
{3287, 3292, "F\0" },
|
|
{3295, 3295, "F\0" },
|
|
{3300, 3301, "F\0" },
|
|
{3312, 3312, "F\0" },
|
|
{3315, 3327, "F\0" },
|
|
{3341, 3341, "F\0" },
|
|
{3345, 3345, "F\0" },
|
|
{3397, 3397, "F\0" },
|
|
{3401, 3401, "F\0" },
|
|
{3408, 3411, "F\0" },
|
|
{3428, 3429, "F\0" },
|
|
{3456, 3456, "F\0" },
|
|
{3460, 3460, "F\0" },
|
|
{3479, 3481, "F\0" },
|
|
{3506, 3506, "F\0" },
|
|
{3516, 3516, "F\0" },
|
|
{3518, 3519, "F\0" },
|
|
{3527, 3529, "F\0" },
|
|
{3531, 3534, "F\0" },
|
|
{3541, 3541, "F\0" },
|
|
{3543, 3543, "F\0" },
|
|
{3552, 3557, "F\0" },
|
|
{3568, 3569, "F\0" },
|
|
{3573, 3584, "F\0" },
|
|
{3643, 3646, "F\0" },
|
|
{3676, 3712, "F\0" },
|
|
{3715, 3715, "F\0" },
|
|
{3717, 3717, "F\0" },
|
|
{3723, 3723, "F\0" },
|
|
{3748, 3748, "F\0" },
|
|
{3750, 3750, "F\0" },
|
|
{3774, 3775, "F\0" },
|
|
{3781, 3781, "F\0" },
|
|
{3783, 3783, "F\0" },
|
|
{3790, 3791, "F\0" },
|
|
{3802, 3803, "F\0" },
|
|
{3808, 3839, "F\0" },
|
|
{3912, 3912, "F\0" },
|
|
{3949, 3952, "F\0" },
|
|
{3992, 3992, "F\0" },
|
|
{4029, 4029, "F\0" },
|
|
{4045, 4045, "F\0" },
|
|
{4059, 4095, "F\0" },
|
|
{4294, 4294, "F\0" },
|
|
{4296, 4300, "F\0" },
|
|
{4302, 4303, "F\0" },
|
|
{4352, 4447, "W\0" },
|
|
{4681, 4681, "F\0" },
|
|
{4686, 4687, "F\0" },
|
|
{4695, 4695, "F\0" },
|
|
{4697, 4697, "F\0" },
|
|
{4702, 4703, "F\0" },
|
|
{4745, 4745, "F\0" },
|
|
{4750, 4751, "F\0" },
|
|
{4785, 4785, "F\0" },
|
|
{4790, 4791, "F\0" },
|
|
{4799, 4799, "F\0" },
|
|
{4801, 4801, "F\0" },
|
|
{4806, 4807, "F\0" },
|
|
{4823, 4823, "F\0" },
|
|
{4881, 4881, "F\0" },
|
|
{4886, 4887, "F\0" },
|
|
{4955, 4956, "F\0" },
|
|
{4989, 4991, "F\0" },
|
|
{5018, 5023, "F\0" },
|
|
{5110, 5111, "F\0" },
|
|
{5118, 5119, "F\0" },
|
|
{5789, 5791, "F\0" },
|
|
{5881, 5887, "F\0" },
|
|
{5910, 5918, "F\0" },
|
|
{5943, 5951, "F\0" },
|
|
{5972, 5983, "F\0" },
|
|
{5997, 5997, "F\0" },
|
|
{6001, 6001, "F\0" },
|
|
{6004, 6015, "F\0" },
|
|
{6110, 6111, "F\0" },
|
|
{6122, 6127, "F\0" },
|
|
{6138, 6143, "F\0" },
|
|
{6170, 6175, "F\0" },
|
|
{6265, 6271, "F\0" },
|
|
{6315, 6319, "F\0" },
|
|
{6390, 6399, "F\0" },
|
|
{6431, 6431, "F\0" },
|
|
{6444, 6447, "F\0" },
|
|
{6460, 6463, "F\0" },
|
|
{6465, 6467, "F\0" },
|
|
{6510, 6511, "F\0" },
|
|
{6517, 6527, "F\0" },
|
|
{6572, 6575, "F\0" },
|
|
{6602, 6607, "F\0" },
|
|
{6619, 6621, "F\0" },
|
|
{6684, 6685, "F\0" },
|
|
{6751, 6751, "F\0" },
|
|
{6781, 6782, "F\0" },
|
|
{6794, 6799, "F\0" },
|
|
{6810, 6815, "F\0" },
|
|
{6830, 6831, "F\0" },
|
|
{6863, 6911, "F\0" },
|
|
{6989, 6991, "F\0" },
|
|
{7039, 7039, "F\0" },
|
|
{7156, 7163, "F\0" },
|
|
{7224, 7226, "F\0" },
|
|
{7242, 7244, "F\0" },
|
|
{7305, 7311, "F\0" },
|
|
{7355, 7356, "F\0" },
|
|
{7368, 7375, "F\0" },
|
|
{7419, 7423, "F\0" },
|
|
{7958, 7959, "F\0" },
|
|
{7966, 7967, "F\0" },
|
|
{8006, 8007, "F\0" },
|
|
{8014, 8015, "F\0" },
|
|
{8024, 8024, "F\0" },
|
|
{8026, 8026, "F\0" },
|
|
{8028, 8028, "F\0" },
|
|
{8030, 8030, "F\0" },
|
|
{8062, 8063, "F\0" },
|
|
{8117, 8117, "F\0" },
|
|
{8133, 8133, "F\0" },
|
|
{8148, 8149, "F\0" },
|
|
{8156, 8156, "F\0" },
|
|
{8176, 8177, "F\0" },
|
|
{8181, 8181, "F\0" },
|
|
{8191, 8191, "F\0" },
|
|
{8208, 8208, "A\0" },
|
|
{8211, 8214, "A\0" },
|
|
{8216, 8217, "A\0" },
|
|
{8220, 8221, "A\0" },
|
|
{8224, 8226, "A\0" },
|
|
{8228, 8231, "A\0" },
|
|
{8240, 8240, "A\0" },
|
|
{8242, 8243, "A\0" },
|
|
{8245, 8245, "A\0" },
|
|
{8251, 8251, "A\0" },
|
|
{8254, 8254, "A\0" },
|
|
{8293, 8293, "F\0" },
|
|
{8306, 8307, "F\0" },
|
|
{8308, 8308, "A\0" },
|
|
{8319, 8319, "A\0" },
|
|
{8321, 8324, "A\0" },
|
|
{8335, 8335, "F\0" },
|
|
{8349, 8351, "F\0" },
|
|
{8361, 8361, "H\0" },
|
|
{8364, 8364, "A\0" },
|
|
{8385, 8399, "F\0" },
|
|
{8433, 8447, "F\0" },
|
|
{8451, 8451, "A\0" },
|
|
{8453, 8453, "A\0" },
|
|
{8457, 8457, "A\0" },
|
|
{8467, 8467, "A\0" },
|
|
{8470, 8470, "A\0" },
|
|
{8481, 8482, "A\0" },
|
|
{8486, 8486, "A\0" },
|
|
{8491, 8491, "A\0" },
|
|
{8531, 8532, "A\0" },
|
|
{8539, 8542, "A\0" },
|
|
{8544, 8555, "A\0" },
|
|
{8560, 8569, "A\0" },
|
|
{8585, 8585, "A\0" },
|
|
{8588, 8591, "F\0" },
|
|
{8592, 8601, "A\0" },
|
|
{8632, 8633, "A\0" },
|
|
{8658, 8658, "A\0" },
|
|
{8660, 8660, "A\0" },
|
|
{8679, 8679, "A\0" },
|
|
{8704, 8704, "A\0" },
|
|
{8706, 8707, "A\0" },
|
|
{8711, 8712, "A\0" },
|
|
{8715, 8715, "A\0" },
|
|
{8719, 8719, "A\0" },
|
|
{8721, 8721, "A\0" },
|
|
{8725, 8725, "A\0" },
|
|
{8730, 8730, "A\0" },
|
|
{8733, 8736, "A\0" },
|
|
{8739, 8739, "A\0" },
|
|
{8741, 8741, "A\0" },
|
|
{8743, 8748, "A\0" },
|
|
{8750, 8750, "A\0" },
|
|
{8756, 8759, "A\0" },
|
|
{8764, 8765, "A\0" },
|
|
{8776, 8776, "A\0" },
|
|
{8780, 8780, "A\0" },
|
|
{8786, 8786, "A\0" },
|
|
{8800, 8801, "A\0" },
|
|
{8804, 8807, "A\0" },
|
|
{8810, 8811, "A\0" },
|
|
{8814, 8815, "A\0" },
|
|
{8834, 8835, "A\0" },
|
|
{8838, 8839, "A\0" },
|
|
{8853, 8853, "A\0" },
|
|
{8857, 8857, "A\0" },
|
|
{8869, 8869, "A\0" },
|
|
{8895, 8895, "A\0" },
|
|
{8978, 8978, "A\0" },
|
|
{8986, 8987, "W\0" },
|
|
{9001, 9002, "W\0" },
|
|
{9193, 9196, "W\0" },
|
|
{9200, 9200, "W\0" },
|
|
{9203, 9203, "W\0" },
|
|
{9255, 9279, "F\0" },
|
|
{9291, 9311, "F\0" },
|
|
{9312, 9449, "A\0" },
|
|
{9451, 9547, "A\0" },
|
|
{9552, 9587, "A\0" },
|
|
{9600, 9615, "A\0" },
|
|
{9618, 9621, "A\0" },
|
|
{9632, 9633, "A\0" },
|
|
{9635, 9641, "A\0" },
|
|
{9650, 9651, "A\0" },
|
|
{9654, 9655, "A\0" },
|
|
{9660, 9661, "A\0" },
|
|
{9664, 9665, "A\0" },
|
|
{9670, 9672, "A\0" },
|
|
{9675, 9675, "A\0" },
|
|
{9678, 9681, "A\0" },
|
|
{9698, 9701, "A\0" },
|
|
{9711, 9711, "A\0" },
|
|
{9725, 9726, "W\0" },
|
|
{9733, 9734, "A\0" },
|
|
{9737, 9737, "A\0" },
|
|
{9742, 9743, "A\0" },
|
|
{9748, 9749, "W\0" },
|
|
{9756, 9756, "A\0" },
|
|
{9758, 9758, "A\0" },
|
|
{9792, 9792, "A\0" },
|
|
{9794, 9794, "A\0" },
|
|
{9800, 9811, "W\0" },
|
|
{9824, 9825, "A\0" },
|
|
{9827, 9829, "A\0" },
|
|
{9831, 9834, "A\0" },
|
|
{9836, 9837, "A\0" },
|
|
{9839, 9839, "A\0" },
|
|
{9855, 9855, "W\0" },
|
|
{9875, 9875, "W\0" },
|
|
{9886, 9887, "A\0" },
|
|
{9889, 9889, "W\0" },
|
|
{9898, 9899, "W\0" },
|
|
{9917, 9918, "W\0" },
|
|
{9919, 9919, "A\0" },
|
|
{9924, 9925, "W\0" },
|
|
{9926, 9933, "A\0" },
|
|
{9934, 9934, "W\0" },
|
|
{9935, 9939, "A\0" },
|
|
{9940, 9940, "W\0" },
|
|
{9941, 9953, "A\0" },
|
|
{9955, 9955, "A\0" },
|
|
{9960, 9961, "A\0" },
|
|
{9962, 9962, "W\0" },
|
|
{9963, 9969, "A\0" },
|
|
{9970, 9971, "W\0" },
|
|
{9972, 9972, "A\0" },
|
|
{9973, 9973, "W\0" },
|
|
{9974, 9977, "A\0" },
|
|
{9978, 9978, "W\0" },
|
|
{9979, 9980, "A\0" },
|
|
{9981, 9981, "W\0" },
|
|
{9982, 9983, "A\0" },
|
|
{9989, 9989, "W\0" },
|
|
{9994, 9995, "W\0" },
|
|
{10024, 10024, "W\0" },
|
|
{10045, 10045, "A\0" },
|
|
{10060, 10060, "W\0" },
|
|
{10062, 10062, "W\0" },
|
|
{10067, 10069, "W\0" },
|
|
{10071, 10071, "W\0" },
|
|
{10102, 10111, "A\0" },
|
|
{10133, 10135, "W\0" },
|
|
{10160, 10160, "W\0" },
|
|
{10175, 10175, "W\0" },
|
|
{10214, 10221, "Na\0"},
|
|
{10629, 10630, "Na\0"},
|
|
{11035, 11036, "W\0" },
|
|
{11088, 11088, "W\0" },
|
|
{11093, 11093, "W\0" },
|
|
{11094, 11097, "A\0" },
|
|
{11124, 11125, "F\0" },
|
|
{11158, 11158, "F\0" },
|
|
{11508, 11512, "F\0" },
|
|
{11558, 11558, "F\0" },
|
|
{11560, 11564, "F\0" },
|
|
{11566, 11567, "F\0" },
|
|
{11624, 11630, "F\0" },
|
|
{11633, 11646, "F\0" },
|
|
{11671, 11679, "F\0" },
|
|
{11687, 11687, "F\0" },
|
|
{11695, 11695, "F\0" },
|
|
{11703, 11703, "F\0" },
|
|
{11711, 11711, "F\0" },
|
|
{11719, 11719, "F\0" },
|
|
{11727, 11727, "F\0" },
|
|
{11735, 11735, "F\0" },
|
|
{11743, 11743, "F\0" },
|
|
{11870, 11903, "F\0" },
|
|
{11904, 11929, "W\0" },
|
|
{11930, 11930, "F\0" },
|
|
{11931, 12019, "W\0" },
|
|
{12020, 12031, "F\0" },
|
|
{12032, 12245, "W\0" },
|
|
{12246, 12271, "F\0" },
|
|
{12272, 12283, "W\0" },
|
|
{12284, 12288, "F\0" },
|
|
{12289, 12350, "W\0" },
|
|
{12352, 12352, "F\0" },
|
|
{12353, 12438, "W\0" },
|
|
{12439, 12440, "F\0" },
|
|
{12441, 12543, "W\0" },
|
|
{12544, 12548, "F\0" },
|
|
{12549, 12591, "W\0" },
|
|
{12592, 12592, "F\0" },
|
|
{12593, 12686, "W\0" },
|
|
{12687, 12687, "F\0" },
|
|
{12688, 12771, "W\0" },
|
|
{12772, 12783, "F\0" },
|
|
{12784, 12830, "W\0" },
|
|
{12831, 12831, "F\0" },
|
|
{12832, 12871, "W\0" },
|
|
{12872, 12879, "A\0" },
|
|
{12880, 19903, "W\0" },
|
|
{19968, 42124, "W\0" },
|
|
{42125, 42127, "F\0" },
|
|
{42128, 42182, "W\0" },
|
|
{42183, 42191, "F\0" },
|
|
{42540, 42559, "F\0" },
|
|
{42744, 42751, "F\0" },
|
|
{42955, 42959, "F\0" },
|
|
{42962, 42962, "F\0" },
|
|
{42964, 42964, "F\0" },
|
|
{42970, 42993, "F\0" },
|
|
{43053, 43055, "F\0" },
|
|
{43066, 43071, "F\0" },
|
|
{43128, 43135, "F\0" },
|
|
{43206, 43213, "F\0" },
|
|
{43226, 43231, "F\0" },
|
|
{43348, 43358, "F\0" },
|
|
{43360, 43388, "W\0" },
|
|
{43389, 43391, "F\0" },
|
|
{43470, 43470, "F\0" },
|
|
{43482, 43485, "F\0" },
|
|
{43519, 43519, "F\0" },
|
|
{43575, 43583, "F\0" },
|
|
{43598, 43599, "F\0" },
|
|
{43610, 43611, "F\0" },
|
|
{43715, 43738, "F\0" },
|
|
{43767, 43776, "F\0" },
|
|
{43783, 43784, "F\0" },
|
|
{43791, 43792, "F\0" },
|
|
{43799, 43807, "F\0" },
|
|
{43815, 43815, "F\0" },
|
|
{43823, 43823, "F\0" },
|
|
{43884, 43887, "F\0" },
|
|
{44014, 44015, "F\0" },
|
|
{44026, 44031, "F\0" },
|
|
{44032, 55203, "W\0" },
|
|
{55204, 55215, "F\0" },
|
|
{55239, 55242, "F\0" },
|
|
{55292, 55295, "F\0" },
|
|
{57344, 63743, "A\0" },
|
|
{63744, 64109, "W\0" },
|
|
{64110, 64111, "F\0" },
|
|
{64112, 64217, "W\0" },
|
|
{64218, 64255, "F\0" },
|
|
{64263, 64274, "F\0" },
|
|
{64280, 64284, "F\0" },
|
|
{64311, 64311, "F\0" },
|
|
{64317, 64317, "F\0" },
|
|
{64319, 64319, "F\0" },
|
|
{64322, 64322, "F\0" },
|
|
{64325, 64325, "F\0" },
|
|
{64451, 64466, "F\0" },
|
|
{64912, 64913, "F\0" },
|
|
{64968, 64974, "F\0" },
|
|
{64976, 65007, "F\0" },
|
|
{65024, 65039, "A\0" },
|
|
{65040, 65049, "W\0" },
|
|
{65050, 65055, "F\0" },
|
|
{65072, 65106, "W\0" },
|
|
{65107, 65107, "F\0" },
|
|
{65108, 65126, "W\0" },
|
|
{65127, 65127, "F\0" },
|
|
{65128, 65131, "W\0" },
|
|
{65132, 65135, "F\0" },
|
|
{65141, 65141, "F\0" },
|
|
{65277, 65278, "F\0" },
|
|
{65280, 65376, "F\0" },
|
|
{65377, 65470, "H\0" },
|
|
{65471, 65473, "F\0" },
|
|
{65474, 65479, "H\0" },
|
|
{65480, 65481, "F\0" },
|
|
{65482, 65487, "H\0" },
|
|
{65488, 65489, "F\0" },
|
|
{65490, 65495, "H\0" },
|
|
{65496, 65497, "F\0" },
|
|
{65498, 65500, "H\0" },
|
|
{65501, 65511, "F\0" },
|
|
{65512, 65518, "H\0" },
|
|
{65519, 65528, "F\0" },
|
|
{65533, 65533, "A\0" },
|
|
{65534, 65535, "F\0" },
|
|
{65548, 65548, "F\0" },
|
|
{65575, 65575, "F\0" },
|
|
{65595, 65595, "F\0" },
|
|
{65598, 65598, "F\0" },
|
|
{65614, 65615, "F\0" },
|
|
{65630, 65663, "F\0" },
|
|
{65787, 65791, "F\0" },
|
|
{65795, 65798, "F\0" },
|
|
{65844, 65846, "F\0" },
|
|
{65935, 65935, "F\0" },
|
|
{65949, 65951, "F\0" },
|
|
{65953, 65999, "F\0" },
|
|
{66046, 66175, "F\0" },
|
|
{66205, 66207, "F\0" },
|
|
{66257, 66271, "F\0" },
|
|
{66300, 66303, "F\0" },
|
|
{66340, 66348, "F\0" },
|
|
{66379, 66383, "F\0" },
|
|
{66427, 66431, "F\0" },
|
|
{66462, 66462, "F\0" },
|
|
{66500, 66503, "F\0" },
|
|
{66518, 66559, "F\0" },
|
|
{66718, 66719, "F\0" },
|
|
{66730, 66735, "F\0" },
|
|
{66772, 66775, "F\0" },
|
|
{66812, 66815, "F\0" },
|
|
{66856, 66863, "F\0" },
|
|
{66916, 66926, "F\0" },
|
|
{66939, 66939, "F\0" },
|
|
{66955, 66955, "F\0" },
|
|
{66963, 66963, "F\0" },
|
|
{66966, 66966, "F\0" },
|
|
{66978, 66978, "F\0" },
|
|
{66994, 66994, "F\0" },
|
|
{67002, 67002, "F\0" },
|
|
{67005, 67071, "F\0" },
|
|
{67383, 67391, "F\0" },
|
|
{67414, 67423, "F\0" },
|
|
{67432, 67455, "F\0" },
|
|
{67462, 67462, "F\0" },
|
|
{67505, 67505, "F\0" },
|
|
{67515, 67583, "F\0" },
|
|
{67590, 67591, "F\0" },
|
|
{67593, 67593, "F\0" },
|
|
{67638, 67638, "F\0" },
|
|
{67641, 67643, "F\0" },
|
|
{67645, 67646, "F\0" },
|
|
{67670, 67670, "F\0" },
|
|
{67743, 67750, "F\0" },
|
|
{67760, 67807, "F\0" },
|
|
{67827, 67827, "F\0" },
|
|
{67830, 67834, "F\0" },
|
|
{67868, 67870, "F\0" },
|
|
{67898, 67902, "F\0" },
|
|
{67904, 67967, "F\0" },
|
|
{68024, 68027, "F\0" },
|
|
{68048, 68049, "F\0" },
|
|
{68100, 68100, "F\0" },
|
|
{68103, 68107, "F\0" },
|
|
{68116, 68116, "F\0" },
|
|
{68120, 68120, "F\0" },
|
|
{68150, 68151, "F\0" },
|
|
{68155, 68158, "F\0" },
|
|
{68169, 68175, "F\0" },
|
|
{68185, 68191, "F\0" },
|
|
{68256, 68287, "F\0" },
|
|
{68327, 68330, "F\0" },
|
|
{68343, 68351, "F\0" },
|
|
{68406, 68408, "F\0" },
|
|
{68438, 68439, "F\0" },
|
|
{68467, 68471, "F\0" },
|
|
{68498, 68504, "F\0" },
|
|
{68509, 68520, "F\0" },
|
|
{68528, 68607, "F\0" },
|
|
{68681, 68735, "F\0" },
|
|
{68787, 68799, "F\0" },
|
|
{68851, 68857, "F\0" },
|
|
{68904, 68911, "F\0" },
|
|
{68922, 69215, "F\0" },
|
|
{69247, 69247, "F\0" },
|
|
{69290, 69290, "F\0" },
|
|
{69294, 69295, "F\0" },
|
|
{69298, 69375, "F\0" },
|
|
{69416, 69423, "F\0" },
|
|
{69466, 69487, "F\0" },
|
|
{69514, 69551, "F\0" },
|
|
{69580, 69599, "F\0" },
|
|
{69623, 69631, "F\0" },
|
|
{69710, 69713, "F\0" },
|
|
{69750, 69758, "F\0" },
|
|
{69827, 69836, "F\0" },
|
|
{69838, 69839, "F\0" },
|
|
{69865, 69871, "F\0" },
|
|
{69882, 69887, "F\0" },
|
|
{69941, 69941, "F\0" },
|
|
{69960, 69967, "F\0" },
|
|
{70007, 70015, "F\0" },
|
|
{70112, 70112, "F\0" },
|
|
{70133, 70143, "F\0" },
|
|
{70162, 70162, "F\0" },
|
|
{70207, 70271, "F\0" },
|
|
{70279, 70279, "F\0" },
|
|
{70281, 70281, "F\0" },
|
|
{70286, 70286, "F\0" },
|
|
{70302, 70302, "F\0" },
|
|
{70314, 70319, "F\0" },
|
|
{70379, 70383, "F\0" },
|
|
{70394, 70399, "F\0" },
|
|
{70404, 70404, "F\0" },
|
|
{70413, 70414, "F\0" },
|
|
{70417, 70418, "F\0" },
|
|
{70441, 70441, "F\0" },
|
|
{70449, 70449, "F\0" },
|
|
{70452, 70452, "F\0" },
|
|
{70458, 70458, "F\0" },
|
|
{70469, 70470, "F\0" },
|
|
{70473, 70474, "F\0" },
|
|
{70478, 70479, "F\0" },
|
|
{70481, 70486, "F\0" },
|
|
{70488, 70492, "F\0" },
|
|
{70500, 70501, "F\0" },
|
|
{70509, 70511, "F\0" },
|
|
{70517, 70655, "F\0" },
|
|
{70748, 70748, "F\0" },
|
|
{70754, 70783, "F\0" },
|
|
{70856, 70863, "F\0" },
|
|
{70874, 71039, "F\0" },
|
|
{71094, 71095, "F\0" },
|
|
{71134, 71167, "F\0" },
|
|
{71237, 71247, "F\0" },
|
|
{71258, 71263, "F\0" },
|
|
{71277, 71295, "F\0" },
|
|
{71354, 71359, "F\0" },
|
|
{71370, 71423, "F\0" },
|
|
{71451, 71452, "F\0" },
|
|
{71468, 71471, "F\0" },
|
|
{71495, 71679, "F\0" },
|
|
{71740, 71839, "F\0" },
|
|
{71923, 71934, "F\0" },
|
|
{71943, 71944, "F\0" },
|
|
{71946, 71947, "F\0" },
|
|
{71956, 71956, "F\0" },
|
|
{71959, 71959, "F\0" },
|
|
{71990, 71990, "F\0" },
|
|
{71993, 71994, "F\0" },
|
|
{72007, 72015, "F\0" },
|
|
{72026, 72095, "F\0" },
|
|
{72104, 72105, "F\0" },
|
|
{72152, 72153, "F\0" },
|
|
{72165, 72191, "F\0" },
|
|
{72264, 72271, "F\0" },
|
|
{72355, 72367, "F\0" },
|
|
{72441, 72703, "F\0" },
|
|
{72713, 72713, "F\0" },
|
|
{72759, 72759, "F\0" },
|
|
{72774, 72783, "F\0" },
|
|
{72813, 72815, "F\0" },
|
|
{72848, 72849, "F\0" },
|
|
{72872, 72872, "F\0" },
|
|
{72887, 72959, "F\0" },
|
|
{72967, 72967, "F\0" },
|
|
{72970, 72970, "F\0" },
|
|
{73015, 73017, "F\0" },
|
|
{73019, 73019, "F\0" },
|
|
{73022, 73022, "F\0" },
|
|
{73032, 73039, "F\0" },
|
|
{73050, 73055, "F\0" },
|
|
{73062, 73062, "F\0" },
|
|
{73065, 73065, "F\0" },
|
|
{73103, 73103, "F\0" },
|
|
{73106, 73106, "F\0" },
|
|
{73113, 73119, "F\0" },
|
|
{73130, 73439, "F\0" },
|
|
{73465, 73647, "F\0" },
|
|
{73649, 73663, "F\0" },
|
|
{73714, 73726, "F\0" },
|
|
{74650, 74751, "F\0" },
|
|
{74863, 74863, "F\0" },
|
|
{74869, 74879, "F\0" },
|
|
{75076, 77711, "F\0" },
|
|
{77811, 77823, "F\0" },
|
|
{78895, 78895, "F\0" },
|
|
{78905, 82943, "F\0" },
|
|
{83527, 92159, "F\0" },
|
|
{92729, 92735, "F\0" },
|
|
{92767, 92767, "F\0" },
|
|
{92778, 92781, "F\0" },
|
|
{92863, 92863, "F\0" },
|
|
{92874, 92879, "F\0" },
|
|
{92910, 92911, "F\0" },
|
|
{92918, 92927, "F\0" },
|
|
{92998, 93007, "F\0" },
|
|
{93018, 93018, "F\0" },
|
|
{93026, 93026, "F\0" },
|
|
{93048, 93052, "F\0" },
|
|
{93072, 93759, "F\0" },
|
|
{93851, 93951, "F\0" },
|
|
{94027, 94030, "F\0" },
|
|
{94088, 94094, "F\0" },
|
|
{94112, 94175, "F\0" },
|
|
{94176, 94180, "W\0" },
|
|
{94181, 94191, "F\0" },
|
|
{94192, 94193, "W\0" },
|
|
{94194, 94207, "F\0" },
|
|
{94208, 100343, "W\0" },
|
|
{100344, 100351, "F\0" },
|
|
{100352, 101589, "W\0" },
|
|
{101590, 101631, "F\0" },
|
|
{101632, 101640, "W\0" },
|
|
{101641, 110575, "F\0" },
|
|
{110576, 110579, "W\0" },
|
|
{110580, 110580, "F\0" },
|
|
{110581, 110587, "W\0" },
|
|
{110588, 110588, "F\0" },
|
|
{110589, 110590, "W\0" },
|
|
{110591, 110591, "F\0" },
|
|
{110592, 110882, "W\0" },
|
|
{110883, 110927, "F\0" },
|
|
{110928, 110930, "W\0" },
|
|
{110931, 110947, "F\0" },
|
|
{110948, 110951, "W\0" },
|
|
{110952, 110959, "F\0" },
|
|
{110960, 111355, "W\0" },
|
|
{111356, 113663, "F\0" },
|
|
{113771, 113775, "F\0" },
|
|
{113789, 113791, "F\0" },
|
|
{113801, 113807, "F\0" },
|
|
{113818, 113819, "F\0" },
|
|
{113828, 118527, "F\0" },
|
|
{118574, 118575, "F\0" },
|
|
{118599, 118607, "F\0" },
|
|
{118724, 118783, "F\0" },
|
|
{119030, 119039, "F\0" },
|
|
{119079, 119080, "F\0" },
|
|
{119275, 119295, "F\0" },
|
|
{119366, 119519, "F\0" },
|
|
{119540, 119551, "F\0" },
|
|
{119639, 119647, "F\0" },
|
|
{119673, 119807, "F\0" },
|
|
{119893, 119893, "F\0" },
|
|
{119965, 119965, "F\0" },
|
|
{119968, 119969, "F\0" },
|
|
{119971, 119972, "F\0" },
|
|
{119975, 119976, "F\0" },
|
|
{119981, 119981, "F\0" },
|
|
{119994, 119994, "F\0" },
|
|
{119996, 119996, "F\0" },
|
|
{120004, 120004, "F\0" },
|
|
{120070, 120070, "F\0" },
|
|
{120075, 120076, "F\0" },
|
|
{120085, 120085, "F\0" },
|
|
{120093, 120093, "F\0" },
|
|
{120122, 120122, "F\0" },
|
|
{120127, 120127, "F\0" },
|
|
{120133, 120133, "F\0" },
|
|
{120135, 120137, "F\0" },
|
|
{120145, 120145, "F\0" },
|
|
{120486, 120487, "F\0" },
|
|
{120780, 120781, "F\0" },
|
|
{121484, 121498, "F\0" },
|
|
{121504, 121504, "F\0" },
|
|
{121520, 122623, "F\0" },
|
|
{122655, 122879, "F\0" },
|
|
{122887, 122887, "F\0" },
|
|
{122905, 122906, "F\0" },
|
|
{122914, 122914, "F\0" },
|
|
{122917, 122917, "F\0" },
|
|
{122923, 123135, "F\0" },
|
|
{123181, 123183, "F\0" },
|
|
{123198, 123199, "F\0" },
|
|
{123210, 123213, "F\0" },
|
|
{123216, 123535, "F\0" },
|
|
{123567, 123583, "F\0" },
|
|
{123642, 123646, "F\0" },
|
|
{123648, 124895, "F\0" },
|
|
{124903, 124903, "F\0" },
|
|
{124908, 124908, "F\0" },
|
|
{124911, 124911, "F\0" },
|
|
{124927, 124927, "F\0" },
|
|
{125125, 125126, "F\0" },
|
|
{125143, 125183, "F\0" },
|
|
{125260, 125263, "F\0" },
|
|
{125274, 125277, "F\0" },
|
|
{125280, 126064, "F\0" },
|
|
{126133, 126208, "F\0" },
|
|
{126270, 126463, "F\0" },
|
|
{126468, 126468, "F\0" },
|
|
{126496, 126496, "F\0" },
|
|
{126499, 126499, "F\0" },
|
|
{126501, 126502, "F\0" },
|
|
{126504, 126504, "F\0" },
|
|
{126515, 126515, "F\0" },
|
|
{126520, 126520, "F\0" },
|
|
{126522, 126522, "F\0" },
|
|
{126524, 126529, "F\0" },
|
|
{126531, 126534, "F\0" },
|
|
{126536, 126536, "F\0" },
|
|
{126538, 126538, "F\0" },
|
|
{126540, 126540, "F\0" },
|
|
{126544, 126544, "F\0" },
|
|
{126547, 126547, "F\0" },
|
|
{126549, 126550, "F\0" },
|
|
{126552, 126552, "F\0" },
|
|
{126554, 126554, "F\0" },
|
|
{126556, 126556, "F\0" },
|
|
{126558, 126558, "F\0" },
|
|
{126560, 126560, "F\0" },
|
|
{126563, 126563, "F\0" },
|
|
{126565, 126566, "F\0" },
|
|
{126571, 126571, "F\0" },
|
|
{126579, 126579, "F\0" },
|
|
{126584, 126584, "F\0" },
|
|
{126589, 126589, "F\0" },
|
|
{126591, 126591, "F\0" },
|
|
{126602, 126602, "F\0" },
|
|
{126620, 126624, "F\0" },
|
|
{126628, 126628, "F\0" },
|
|
{126634, 126634, "F\0" },
|
|
{126652, 126703, "F\0" },
|
|
{126706, 126975, "F\0" },
|
|
{126980, 126980, "W\0" },
|
|
{127020, 127023, "F\0" },
|
|
{127124, 127135, "F\0" },
|
|
{127151, 127152, "F\0" },
|
|
{127168, 127168, "F\0" },
|
|
{127183, 127183, "W\0" },
|
|
{127184, 127184, "F\0" },
|
|
{127222, 127231, "F\0" },
|
|
{127232, 127242, "A\0" },
|
|
{127248, 127277, "A\0" },
|
|
{127280, 127337, "A\0" },
|
|
{127344, 127373, "A\0" },
|
|
{127374, 127374, "W\0" },
|
|
{127375, 127376, "A\0" },
|
|
{127377, 127386, "W\0" },
|
|
{127387, 127404, "A\0" },
|
|
{127406, 127461, "F\0" },
|
|
{127488, 127490, "W\0" },
|
|
{127491, 127503, "F\0" },
|
|
{127504, 127547, "W\0" },
|
|
{127548, 127551, "F\0" },
|
|
{127552, 127560, "W\0" },
|
|
{127561, 127567, "F\0" },
|
|
{127568, 127569, "W\0" },
|
|
{127570, 127583, "F\0" },
|
|
{127584, 127589, "W\0" },
|
|
{127590, 127743, "F\0" },
|
|
{127744, 127776, "W\0" },
|
|
{127789, 127797, "W\0" },
|
|
{127799, 127868, "W\0" },
|
|
{127870, 127891, "W\0" },
|
|
{127904, 127946, "W\0" },
|
|
{127951, 127955, "W\0" },
|
|
{127968, 127984, "W\0" },
|
|
{127988, 127988, "W\0" },
|
|
{127992, 128062, "W\0" },
|
|
{128064, 128064, "W\0" },
|
|
{128066, 128252, "W\0" },
|
|
{128255, 128317, "W\0" },
|
|
{128331, 128334, "W\0" },
|
|
{128336, 128359, "W\0" },
|
|
{128378, 128378, "W\0" },
|
|
{128405, 128406, "W\0" },
|
|
{128420, 128420, "W\0" },
|
|
{128507, 128591, "W\0" },
|
|
{128640, 128709, "W\0" },
|
|
{128716, 128716, "W\0" },
|
|
{128720, 128722, "W\0" },
|
|
{128725, 128727, "W\0" },
|
|
{128728, 128732, "F\0" },
|
|
{128733, 128735, "W\0" },
|
|
{128747, 128748, "W\0" },
|
|
{128749, 128751, "F\0" },
|
|
{128756, 128764, "W\0" },
|
|
{128765, 128767, "F\0" },
|
|
{128884, 128895, "F\0" },
|
|
{128985, 128991, "F\0" },
|
|
{128992, 129003, "W\0" },
|
|
{129004, 129007, "F\0" },
|
|
{129008, 129008, "W\0" },
|
|
{129009, 129023, "F\0" },
|
|
{129036, 129039, "F\0" },
|
|
{129096, 129103, "F\0" },
|
|
{129114, 129119, "F\0" },
|
|
{129160, 129167, "F\0" },
|
|
{129198, 129199, "F\0" },
|
|
{129202, 129279, "F\0" },
|
|
{129292, 129338, "W\0" },
|
|
{129340, 129349, "W\0" },
|
|
{129351, 129535, "W\0" },
|
|
{129620, 129631, "F\0" },
|
|
{129646, 129647, "F\0" },
|
|
{129648, 129652, "W\0" },
|
|
{129653, 129655, "F\0" },
|
|
{129656, 129660, "W\0" },
|
|
{129661, 129663, "F\0" },
|
|
{129664, 129670, "W\0" },
|
|
{129671, 129679, "F\0" },
|
|
{129680, 129708, "W\0" },
|
|
{129709, 129711, "F\0" },
|
|
{129712, 129722, "W\0" },
|
|
{129723, 129727, "F\0" },
|
|
{129728, 129733, "W\0" },
|
|
{129734, 129743, "F\0" },
|
|
{129744, 129753, "W\0" },
|
|
{129754, 129759, "F\0" },
|
|
{129760, 129767, "W\0" },
|
|
{129768, 129775, "F\0" },
|
|
{129776, 129782, "W\0" },
|
|
{129783, 129791, "F\0" },
|
|
{129939, 129939, "F\0" },
|
|
{129995, 130031, "F\0" },
|
|
{130042, 131071, "F\0" },
|
|
{131072, 173791, "W\0" },
|
|
{173792, 173823, "F\0" },
|
|
{173824, 177976, "W\0" },
|
|
{177977, 177983, "F\0" },
|
|
{177984, 178205, "W\0" },
|
|
{178206, 178207, "F\0" },
|
|
{178208, 183969, "W\0" },
|
|
{183970, 183983, "F\0" },
|
|
{183984, 191456, "W\0" },
|
|
{191457, 194559, "F\0" },
|
|
{194560, 195101, "W\0" },
|
|
{195102, 196607, "F\0" },
|
|
{196608, 201546, "W\0" },
|
|
{201547, 917504, "F\0" },
|
|
{917506, 917535, "F\0" },
|
|
{917632, 917759, "F\0" },
|
|
{917760, 917999, "A\0" },
|
|
{918000, 983039, "F\0" },
|
|
{983040, 1048573, "A\0" },
|
|
{1048574, 1048575, "F\0" },
|
|
{1048576, 1114109, "A\0" },
|
|
{1114110, 1114111, "F\0" },
|
|
};
|
|
|
|
const static char* c11__u32_east_asian_width(int c) {
|
|
const char* data =
|
|
c11__search_u32_ranges(c,
|
|
kEastAsianWidthRanges,
|
|
sizeof(kEastAsianWidthRanges) / sizeof(c11_u32_range));
|
|
if(data == NULL) return "N";
|
|
return data;
|
|
}
|
|
|
|
static bool unicodedata_east_asian_width(int argc, py_Ref argv) {
|
|
PY_CHECK_ARGC(1);
|
|
PY_CHECK_ARG_TYPE(0, tp_str);
|
|
c11_sv sv = py_tosv(py_arg(0));
|
|
if(c11_sv__u8_length(sv) != 1) {
|
|
return TypeError("east_asian_width() expected a character, but string of length %d found",
|
|
c11_sv__u8_length(sv));
|
|
}
|
|
int u8bytes = c11__u8_header(sv.data[0], true);
|
|
if(u8bytes == 0) return ValueError("invalid utf-8 char: %c", sv.data[0]);
|
|
int value = c11__u8_value(u8bytes, sv.data);
|
|
const char* width = c11__u32_east_asian_width(value);
|
|
py_newstr(py_retval(), width);
|
|
return true;
|
|
}
|
|
|
|
void pk__add_module_unicodedata() {
|
|
py_Ref mod = py_newmodule("unicodedata");
|
|
|
|
py_bindfunc(mod, "east_asian_width", unicodedata_east_asian_width);
|
|
} |