📄 uni_data.c
字号:
* Bit 5 D.1 * * Bit 6 D.2 * * Bit 7 Case maps to several characters * * Bits 8-15 Reserved for future use. * * Bits 16-31 Case delta: delta for case conversions. This should be the * highest field so we can easily sign extend. */static int groups[] = { 4, 2, 0, 64, 2097184, 32, 1, 8, 50790432, 160, 65568, 65696, 131232, -7929824, -17563616, 13762592, 13500448, 13434912, 5177376, 13238304, 13303840, 13565984, 13828128, 13697056, 13959200, 14024736, 14286880, 14221344, 14352416, 131104, 196768, -6356960, -3669984, -8519648, 7602176, 262304, 2490400, 2424864, 4194336, 4128800, 327840, 393376, -1966048, -1638368, -851936, -393184, -589792, -983008, -1441760, -3538912, -3145696, -3080160, -3932128, -4194272, 5242912, 3145760, 458912, 16, 17, 524448, 589984, 655520, 721056, 786592, -3801056, -524256, 852128, 917664, 983200, 1048736, 1114272, 1179808, 1245344, 1310880, 1376416, 1441952, 1507488, 1573024, 1638560, 1704096, 1769632, 1835168, 1900704, 1966240, 2031776, 2097312, 2162848, 2228384, 2293920, 2359456, 2424992, 2490528, 2556064, 2621600, 2687136, 2752672, 2818208, 2883744, 2949280, 3014816, 3080352, 3145888, 3211424, 3276960, 3342496, 3408032, 3473568, 3539104, 3604640, 3670176, 3735712, 3801248, 3866784, 3932320, 3997856, 4063392, 4128928, 4194464, 4260000, 4325536, 4391072, 4456608, 4522144, -4849632, 4587680, -470089696, 4653216, 4718752, 4784288, 4849824, 4915360, -5636064, 4980896, 5046432, 5111968, 5177504, 5243040, -6553568, 5308576, 5374112, 5439648, 5505184, 5570720, -7340000, -458720, 5636256, 5701792, 5767328, 5832864, 5898400, -8388576, -8257504, 5963936, 9, 33, 6029440, -547291104, 6094976, -514588640, 6160512, -547553248, -547618784, -547684320, -547815392, -547880928, -547749856, 6226048, -547946464, -548012000, -548077536, 6291584, 6357120, 6422656, -492634080, -548274144, -549388256, -541458400, -550109152, -550174688, -549847008, -495648736, -494862304, -551616480, 1048608, 1703968, 6488224, 6553760, 6619296, 6684832, 6750368, 6815904, 6881440, 6946976, 7012512, 7078048, 7143584, 7209120, 7274656, 7340192, 7405728, 7471264, 7536800, 7602336, 7667872, 7733408, 7798944, 7864480, 7930016, 7995552, 8061088, 8126624, 8192160, 8257696, 8323232, 8388768, 8454304, 8519840, 8585376, 8650912, 8716448, 8781984, 8847520, 8913056, 8978592, 9044128, 9109664, 9175200, 9240736, 9306272, 9371808, 9437344, 9502880, 9568416, 9633952, 9699488, 9765024, 9830560, 9896096, 9961632, 10027168, 10092704, 10158240, 10223776, 10289312, 10354848, 10420384};/* * Table for characters that lowercased to multiple ones */static int multiCaseTable[][4] = { {2, 115, 115}, {2, 105, 775}, {2, 700, 110}, {2, 106, 780}, {2, 32, 953}, {3, 953, 776, 769}, {3, 965, 776, 769}, {2, 1381, 1410}, {2, 104, 817}, {2, 116, 776}, {2, 119, 778}, {2, 121, 778}, {2, 97, 702}, {2, 965, 787}, {3, 965, 787, 768}, {3, 965, 787, 769}, {3, 965, 787, 834}, {2, 7936, 953}, {2, 7937, 953}, {2, 7938, 953}, {2, 7939, 953}, {2, 7940, 953}, {2, 7941, 953}, {2, 7942, 953}, {2, 7943, 953}, {2, 7936, 953}, {2, 7937, 953}, {2, 7938, 953}, {2, 7939, 953}, {2, 7940, 953}, {2, 7941, 953}, {2, 7942, 953}, {2, 7943, 953}, {2, 7968, 953}, {2, 7969, 953}, {2, 7970, 953}, {2, 7971, 953}, {2, 7972, 953}, {2, 7973, 953}, {2, 7974, 953}, {2, 7975, 953}, {2, 7968, 953}, {2, 7969, 953}, {2, 7970, 953}, {2, 7971, 953}, {2, 7972, 953}, {2, 7973, 953}, {2, 7974, 953}, {2, 7975, 953}, {2, 8032, 953}, {2, 8033, 953}, {2, 8034, 953}, {2, 8035, 953}, {2, 8036, 953}, {2, 8037, 953}, {2, 8038, 953}, {2, 8039, 953}, {2, 8032, 953}, {2, 8033, 953}, {2, 8034, 953}, {2, 8035, 953}, {2, 8036, 953}, {2, 8037, 953}, {2, 8038, 953}, {2, 8039, 953}, {2, 8048, 953}, {2, 945, 953}, {2, 940, 953}, {2, 945, 834}, {3, 945, 834, 953}, {2, 945, 953}, {2, 8052, 953}, {2, 951, 953}, {2, 942, 953}, {2, 951, 834}, {3, 951, 834, 953}, {2, 951, 953}, {3, 953, 776, 768}, {3, 953, 776, 769}, {2, 953, 834}, {3, 953, 776, 834}, {3, 965, 776, 768}, {3, 965, 776, 769}, {2, 961, 787}, {2, 965, 834}, {3, 965, 776, 834}, {2, 8060, 953}, {2, 969, 953}, {2, 974, 953}, {2, 969, 834}, {3, 969, 834, 953}, {2, 969, 953}, {2, 114, 115}, {2, 176, 99}, {2, 176, 102}, {2, 110, 111}, {2, 115, 109}, {3, 116, 101, 108}, {2, 116, 109}, {3, 104, 112, 97}, {2, 97, 117}, {2, 111, 118}, {2, 112, 97}, {2, 110, 97}, {2, 956, 97}, {2, 109, 97}, {2, 107, 97}, {2, 107, 98}, {2, 109, 98}, {2, 103, 98}, {2, 112, 102}, {2, 110, 102}, {2, 956, 102}, {2, 104, 122}, {3, 107, 104, 122}, {3, 109, 104, 122}, {3, 103, 104, 122}, {3, 116, 104, 122}, {2, 112, 97}, {3, 107, 112, 97}, {3, 109, 112, 97}, {3, 103, 112, 97}, {2, 112, 118}, {2, 110, 118}, {2, 956, 118}, {2, 109, 118}, {2, 107, 118}, {2, 109, 118}, {2, 112, 119}, {2, 110, 119}, {2, 956, 119}, {2, 109, 119}, {2, 107, 119}, {2, 109, 119}, {2, 107, 969}, {2, 109, 969}, {2, 98, 113}, {3, 99, 111, 46}, {2, 100, 98}, {2, 103, 121}, {2, 104, 112}, {2, 107, 107}, {2, 107, 109}, {2, 112, 104}, {3, 112, 112, 109}, {2, 112, 114}, {2, 115, 118}, {2, 119, 98}, {2, 102, 102}, {2, 102, 105}, {2, 102, 108}, {3, 102, 102, 105}, {3, 102, 102, 108}, {2, 115, 116}, {2, 115, 116}, {2, 1396, 1398}, {2, 1396, 1381}, {2, 1396, 1387}, {2, 1406, 1398}, {2, 1396, 1389}};/* * The following constants are used to determine the category of a * Unicode character. */#define ACMask (1 << 0)#define C11Mask (1 << 1)#define C21Mask (1 << 2)#define B1Mask (1 << 3)#define D1Mask (1 << 4)#define D2Mask (1 << 5)#define XNPMask (1 << 6)#define MCMask (1 << 7)/* * The following macros extract the fields of the character info. The * GetDelta() macro is complicated because we can't rely on the C compiler * to do sign extension on right shifts. */#define GetCaseType(info) (((info) & 0xE0) >> 5)#define GetCategory(info) ((info) & 0x1F)#define GetDelta(info) (((info) > 0) ? ((info) >> 16) : (~(~((info)) >> 16)))#define GetMC(info) (multiCaseTable[GetDelta(info)])/* * This macro extracts the information about a character from the * Unicode character tables. */#define GetUniCharInfo(ch) (groups[groupMap[(pageMap[(((int)(ch)) & 0xffff) >> OFFSET_BITS] << OFFSET_BITS) | ((ch) & ((1 << OFFSET_BITS)-1))]])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -