📄 chartype.c
字号:
/* $Id: chartype.c 21951 2006-05-20 17:21:53Z fireball $
*
* KERNEL32.DLL locale functions
*
* Ported from Wine
* Copyright 1995 Martin von Loewis
* Copyright 1998 David Lee Lambert
* Copyright 2000 Julio C閟ar G醶quez
* Copyright 2002 Alexandre Julliard for CodeWeavers
*
*/
#include <k32.h>
#define NDEBUG
#include "../include/debug.h"
/* the character type contains the C1_* flags in the low 12 bits */
/* and the C2_* type in the high 4 bits */
#define GetCharType(Ch) (CharTypeTable[CharTypeTable[(Ch) >> 8] + ((Ch) & 0xff)])
static const unsigned short CharTypeTable[] =
{
/* offsets */
0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800,
0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x0f00, 0x1000,
0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800,
0x1900, 0x1a00, 0x0900, 0x0900, 0x0900, 0x1b00, 0x1c00, 0x1d00,
0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500,
0x2300, 0x2300, 0x2300, 0x2600, 0x0900, 0x0900, 0x2700, 0x2800,
0x2900, 0x2a00, 0x2b00, 0x2c00, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x2d00, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x2e00,
0x1600, 0x1600, 0x1600, 0x1600, 0x2f00, 0x0900, 0x0900, 0x0900,
0x0900, 0x0900, 0x0900, 0x0900, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600,
0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3000,
0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100,
0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100,
0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100,
0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100, 0x3100,
0x3100, 0x1600, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700,
/* values */
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x9068, 0x8028, 0x9028, 0xa028, 0x8028, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x8020, 0x8020, 0x8020, 0x9020,
0xa048, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010,
0xb010, 0xb010, 0xb010, 0x5010, 0x7010, 0x5010, 0x7010, 0x4010,
0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084,
0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x8020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
0x7048, 0xb010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010,
0xb010, 0xb010, 0x1102, 0xb010, 0xb010, 0xb000, 0xb010, 0xb010,
0x5010, 0x5010, 0x3010, 0x3010, 0xb010, 0x1102, 0xb010, 0xb010,
0xb010, 0x3010, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101,
0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101,
0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102,
0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101,
0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101,
0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101,
0x1101, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101,
0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101,
0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101,
0x1101, 0x1102, 0x1102, 0x1100, 0x1101, 0x1102, 0x1102, 0x1102,
0x1100, 0x1100, 0x1100, 0x1100, 0x1101, 0x1103, 0x1102, 0x1101,
0x1103, 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101,
0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101,
0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010,
0x1010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010,
0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010,
0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010,
0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0112, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000,
0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0xb010, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1101, 0xb010,
0x1101, 0x1101, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x1101,
0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000,
0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0xb010, 0x1101,
0x1102, 0x1101, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -