⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uni_data.c

📁 ejabberd-0.7.5 分布式Jabber服务器
💻 C
📖 第 1 页 / 共 3 页
字号:
 * 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 + -