1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
#include "dictP.h"
static const wint_t start [] = {
0,
48, 65, 97, 170, 181, 186, 192, 216,
248, 546, 592, 688, 699, 720, 736, 750,
890, 902, 904, 908, 910, 931, 976,
986, 1024, 1164, 1223, 1227, 1232, 1272, 1329,
1369, 1377, 1488, 1520, 1569, 1600, 1632, 1649,
1749, 1765, 1776, 1808, 1810, 1920, 2309, 2365,
2384, 2392, 2406, 2437, 2447, 2451, 2474, 2482,
2486, 2524, 2527, 2534, 2565, 2575, 2579, 2602,
2610, 2613, 2616, 2649, 2654, 2662, 2674, 2693,
2701, 2703, 2707, 2730, 2738, 2741, 2749, 2768,
2784, 2790, 2821, 2831, 2835, 2858, 2866, 2870,
2877, 2908, 2911, 2918, 2949, 2958, 2962, 2969,
2972, 2974, 2979, 2984, 2990, 2999, 3047, 3077,
3086, 3090, 3114, 3125, 3168, 3174, 3205, 3214,
3218, 3242, 3253, 3294, 3296, 3302, 3333, 3342,
3346, 3370, 3424, 3430, 3461, 3482, 3507, 3517,
3520, 3585, 3632, 3648, 3655, 3664, 3713, 3716,
3719, 3722, 3725, 3732, 3737, 3745, 3749, 3751,
3754, 3757, 3762, 3773, 3776, 3782, 3792, 3804,
3840, 3872, 3904, 3913, 3976, 4096, 4131, 4137,
4160, 4176, 4256, 4304, 4352, 4447, 4520, 4608,
4616, 4680, 4682, 4688, 4696, 4698, 4704, 4744,
4746, 4752, 4784, 4786, 4792, 4800, 4802, 4808,
4816, 4824, 4848, 4880, 4882, 4888, 4896, 4936,
4969, 5024, 5121, 5743, 5761, 5792, 5870, 6016,
6112, 6160, 6176, 6272, 7680, 7840, 7936, 7960,
7968, 8008, 8016, 8025, 8027, 8029, 8031, 8064,
8118, 8126, 8130, 8134, 8144, 8150, 8160, 8178,
8182, 8319, 8450, 8455, 8458, 8469, 8473, 8484,
8486, 8488, 8495, 8499, 8544, 9372, 12293, 12321,
12337, 12344, 12353, 12445, 12449, 12540, 12549, 12593,
12704, 13312, 19968, 40960, 44032, 63744, 64256, 64275,
64285, 64287, 64298, 64312, 64318, 64320, 64323, 64326,
64467, 64848, 64914, 65008, 65136, 65140, 65142, 65296,
65313, 65345, 65382, 65474, 65482, 65490, 65498,
/* over BMP */
66304, 66352, 66560, 66600, 119808,119894,119966,119970,
119973,119977,119982,119995,119997,120002,120005,120071,
120077,120086,120094,120123,120128,120134,120138,120146,
120488,120514,120540,120572,120598,120630,120656,120688,
120714,120746,120772,120782,131072,194560,
};
static int count [] = {
0,
10, 26, 26, 1, 1, 1, 23, 31,
296, 18, 94, 9, 7, 2, 5, 1,
1, 1, 3, 1, 20, 44, 8,
28, 130, 57, 2, 2, 38, 2, 38,
1, 39, 27, 3, 26, 11, 10, 99,
1, 2, 13, 1, 27, 38, 53, 1,
1, 10, 10, 8, 2, 22, 7, 1,
4, 2, 3, 12, 6, 2, 22, 7,
2, 2, 2, 4, 1, 10, 3, 7,
1, 3, 22, 7, 2, 5, 1, 1,
1, 10, 8, 2, 22, 7, 2, 4,
1, 2, 3, 10, 6, 3, 4, 2,
1, 2, 2, 3, 8, 3, 9, 8,
3, 23, 10, 5, 2, 10, 8, 3,
23, 10, 5, 1, 2, 10, 8, 3,
23, 16, 2, 10, 18, 24, 9, 1,
7, 46, 11, 6, 8, 10, 2, 1,
2, 1, 1, 4, 7, 3, 1, 1,
2, 4, 2, 1, 5, 1, 10, 2,
1, 10, 8, 34, 4, 34, 5, 2,
10, 6, 38, 39, 90, 68, 82, 7,
63, 1, 4, 7, 1, 4, 39, 1,
4, 31, 1, 4, 7, 1, 4, 7,
7, 23, 31, 1, 4, 7, 39, 19,
9, 85, 620, 8, 26, 75, 3, 52,
10, 10, 88, 41, 156, 90, 22, 6,
38, 6, 8, 1, 1, 1, 31, 53,
7, 1, 3, 7, 4, 6, 13, 3,
7, 1, 1, 1, 10, 1, 5, 1,
1, 6, 3, 7, 36, 78, 3, 9,
5, 3, 84, 2, 90, 3, 40, 94,
24, 6582, 20902, 1165, 11172, 302, 7, 5,
1, 10, 13, 5, 1, 2, 2, 108,
363, 64, 54, 12, 3, 1, 135, 10,
26, 26, 89, 6, 6, 6, 3,
/* over BMP */
31, 27, 38, 38, 85, 71, 2, 1,
2, 4, 12, 1, 4, 2, 65, 4,
8, 7, 28, 4, 5, 1, 7, 338,
25, 25, 31, 25, 31, 25, 31, 25,
31, 25, 6, 50, 42711, 542,
};
#define ARRAY_SIZE (sizeof (start) / sizeof (start [0]))
int iswalnum__ (wint_t wc);
int iswalnum__ (wint_t wc)
{
const wint_t *l = start;
const wint_t *r = start + ARRAY_SIZE;
const wint_t *s = NULL;
if (wc == WEOF)
return 0;
while (l < r) {
s = l + ((r - l) >> 1);
if (*s <= wc){
l = s + 1;
}else{
r = s;
}
}
--l;
if (wc < l [0] + count [l - start])
return 1;
else
return 0;
}
|