[UNICODE] Sync with Wine Staging 4.18. CORE-16441

This commit is contained in:
Amine Khaldi 2019-12-23 00:58:51 +01:00
parent 3cfeed64b1
commit 1a472d9453
84 changed files with 1111 additions and 1845 deletions

View file

@ -984,6 +984,7 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28597",0x00000000,"c_28597
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28598",0x00000000,"c_28598.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28599",0x00000000,"c_28599.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28600",0x00000000,"c_28600.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28601",0x00000000,"c_28601.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28603",0x00000000,"c_28603.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28604",0x00000000,"c_28604.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28605",0x00000000,"c_28605.nls"

View file

@ -15,7 +15,7 @@ wine-patches@winehq.com and ros-dev@reactos.org
The following build tools are shared with Wine.
sdk/tools/unicode # Synced to WineStaging-3.3
sdk/tools/unicode # Synced to WineStaging-4.18
sdk/tools/widl # Synced to WineStaging-4.0
sdk/tools/wpp # Synced to WineStaging-2.9

View file

@ -45,6 +45,7 @@ list(APPEND SOURCE
c_28598.c
c_28599.c
c_28600.c
c_28601.c
c_28603.c
c_28604.c
c_28605.c

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7
};
static const unsigned char uni2cp_low[4894] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

File diff suppressed because it is too large Load diff

View file

@ -2947,7 +2947,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x56, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const unsigned short uni2cp_low[27673] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -3046,7 +3046,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x00, 0x00
};
static const unsigned short uni2cp_low[39984] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x06af, 0x0688, 0x0691, 0xf83e, 0xf83f, 0xf840, 0x0698, 0x06d2
};
static const unsigned char uni2cp_low[5476] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x05e8, 0x05e9, 0x05ea, 0xf81a, 0xf81b, 0xf81c, 0xf81d, 0xf81e
};
static const unsigned char uni2cp_low[5610] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0x003f
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4
};
static const unsigned char uni2cp_low[5406] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -2749,7 +2749,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const unsigned short uni2cp_low[27310] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7
};
static const unsigned char uni2cp_low[5145] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x20ac
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0e58, 0x0e59, 0x00ae, 0x00a9, 0x003f, 0x003f, 0x00fe, 0x003f
};
static const unsigned char uni2cp_low[5138] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7
};
static const unsigned char uni2cp_low[4887] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0xfe8b, 0xfef1, 0xfef2, 0xfef3, 0xfbb0, 0xfbae, 0xfe7c, 0xfe7d
};
static const unsigned char uni2cp_low[5165] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7
};
static const unsigned char uni2cp_low[4889] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7
};
static const unsigned char uni2cp_low[5104] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7
};
static const unsigned char uni2cp_low[5145] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9
};
static const unsigned char uni2cp_low[4055] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f
};
static const unsigned char uni2cp_low[2803] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
};
static const unsigned char uni2cp_low[4043] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xf8fb
};
static const unsigned char uni2cp_low[2881] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff
};
static const unsigned char uni2cp_low[4055] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x05e8, 0x05e9, 0x05ea, 0xf894, 0xf895, 0x200e, 0x200f, 0xf896
};
static const unsigned char uni2cp_low[2060] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2
};
static const unsigned char uni2cp_low[2318] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9
};
static const unsigned char uni2cp_low[1739] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff
};
static const unsigned char uni2cp_low[2010] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -3805,7 +3805,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x70, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const unsigned short uni2cp_low[37401] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -39,7 +39,7 @@ static const WCHAR cp2uni[256] =
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -2683,7 +2683,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00
};
static const unsigned short uni2cp_low[27558] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9
};
static const unsigned char uni2cp_low[5136] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0xf7ed, 0xf7ee, 0xf7ef, 0xf7f0, 0xf7f1, 0xf7f2, 0xf7f3, 0xf7f4
};
static const unsigned char uni2cp_low[5372] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xf7c7
};
static const unsigned char uni2cp_low[5142] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x05e8, 0x05e9, 0x05ea, 0xf7bd, 0xf7be, 0x200e, 0x200f, 0xf7bf
};
static const unsigned char uni2cp_low[5346] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

725
sdk/tools/unicode/c_28601.c Normal file
View file

@ -0,0 +1,725 @@
/* code page 28601 (ISO 8859-11 Latin (Thai)) */
/* generated from http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-11.TXT */
/* DO NOT EDIT!! */
#include "wine/unicode.h"
static const WCHAR cp2uni[256] =
{
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,
0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,
0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,
0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,
0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,
0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,
0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,
0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,
0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,
0x0e38, 0x0e39, 0x0e3a, 0x003f, 0x003f, 0x003f, 0x00de, 0x0e3f,
0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,
0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,
0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x003f, 0x003f, 0x00fe, 0x003f
};
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x7c, 0x3f,
0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d,
0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f,
0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43,
0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49,
0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78,
0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0x3f,
0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63,
0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69,
0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f,
0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79,
/* 0x0100 .. 0x01ff */
0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63,
0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64,
0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65,
0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67,
0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68,
0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69,
0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b,
0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f,
0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e,
0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f,
0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72,
0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74,
0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75,
0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79,
0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73,
0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49,
0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f,
0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55,
0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49,
0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55,
0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61,
0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67,
0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f,
0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f,
0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f,
/* 0x0200 .. 0x02ff */
0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65,
0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f,
0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75,
0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61,
0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f,
0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77,
0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76,
0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f,
0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x0300 .. 0x03ff */
0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f,
0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f,
0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f,
0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48,
0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f,
0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58,
0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x0e01 .. 0x0eff */
0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0,
0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8,
0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0,
0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,
0xd9, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0xe0,
0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8,
0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
0xf9, 0xfa, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x1d2c .. 0x1dff */
0x41, 0x41, 0x42, 0x3f, 0x44, 0x45, 0x3f, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x3f,
0x4f, 0x3f, 0x50, 0x52, 0x54, 0x55, 0x57, 0x61,
0x3f, 0x3f, 0x3f, 0x62, 0x64, 0x65, 0x3f, 0x3f,
0x3f, 0x67, 0x3f, 0x6b, 0x6d, 0x3f, 0x6f, 0x3f,
0x3f, 0x3f, 0x70, 0x74, 0x75, 0x3f, 0x3f, 0x76,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x72,
0x75, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x63, 0x3f, 0x64, 0x3f, 0x66, 0x3f, 0x67, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x74, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f,
/* 0x1e00 .. 0x1eff */
0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62,
0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64,
0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65,
0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66,
0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68,
0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69,
0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c,
0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d,
0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e,
0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f,
0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70,
0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72,
0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74,
0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75,
0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76,
0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77,
0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79,
0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74,
0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f,
0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61,
0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61,
0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61,
0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65,
0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65,
0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f,
0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f,
0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f,
0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75,
0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75,
0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79,
0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x1f06 .. 0x1fff */
0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59,
0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f,
0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22,
0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27,
0x3f, 0x3f,
/* 0x2000 .. 0x20ff */
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f,
0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20,
0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f,
0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f,
0x61, 0x65, 0x6f, 0x78, 0x3f, 0x68, 0x6b, 0x6c,
0x6d, 0x6e, 0x70, 0x73, 0x74, 0x3f, 0x3f, 0x3f,
0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x2102 .. 0x21ff */
0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f,
0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49,
0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50,
0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f,
0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46,
0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f,
0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58,
0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f,
0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78,
0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e,
0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f,
0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x2205 .. 0x22ff */
0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f,
0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f,
0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c,
0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e,
0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f,
0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f,
/* 0x2303 .. 0x23ff */
0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x2460 .. 0x24ff */
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42,
0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a,
0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52,
0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a,
0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x2500 .. 0x25ff */
0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x7c, 0x7c,
0x2d, 0x2d, 0x7c, 0x7c, 0x2b, 0x2b, 0x2b, 0x2b,
0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c,
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54,
0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x7c, 0x7c,
0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f,
0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b,
0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f,
0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c,
0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x2c10 .. 0x2cff */
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x56, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0x3000 .. 0x30ff */
0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0xa7e0 .. 0xa7ff */
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x48, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0xfb06 .. 0xfbff */
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f,
/* 0xfe49 .. 0xfeff */
0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c,
0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d,
0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26,
0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c,
0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* 0xff01 .. 0xffff */
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63,
0x4c, 0x3f, 0x2d, 0x7c, 0x59, 0x3f, 0x3f, 0x7c,
0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
/* defaults */
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f
};
static const unsigned short uni2cp_high[256] =
{
0x0000, 0x0100, 0x0200, 0x0300, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x03ff, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x04d3, 0x05d3, 0x06cd,
0x07cd, 0x08cb, 0x09c6, 0x0ac3, 0x0b63, 0x0c63, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x0d53, 0x1212, 0x1212, 0x1212,
0x0e53, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x0e73,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212, 0x1212,
0x1212, 0x1212, 0x1212, 0x0f6d, 0x1212, 0x1212, 0x1024, 0x1123
};
const struct sbcs_table DECLSPEC_HIDDEN cptable_28601 =
{
{ 28601, 1, 0x003f, 0x003f, "ISO 8859-11 Latin (Thai)" },
cp2uni,
cp2uni,
uni2cp_low,
uni2cp_high
};

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0038, 0x0039, 0x00b3, 0x003f, 0x003f, 0x003f, 0x00fe, 0x009f
};
static const unsigned char uni2cp_low[5119] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4884] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[5119] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[5099] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[5162] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xf8c0
};
static const unsigned char uni2cp_low[5342] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -73,7 +73,7 @@ static const WCHAR cp2uni[512] =
0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xf8c5, 0xf8c6, 0xf8c7, 0xf8c8
};
static const unsigned char uni2cp_low[2588] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x0038, 0x0039, 0x00b3, 0x00a9, 0x001a, 0x001a, 0x00bb, 0x009f
};
static const unsigned char uni2cp_low[4927] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,

View file

@ -40,7 +40,7 @@ static const WCHAR cp2uni[256] =
0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
};
static const unsigned char uni2cp_low[5403] =
static const unsigned char uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,

View file

@ -2056,7 +2056,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x00, 0x00, 0x00
};
static const unsigned short uni2cp_low[27210] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -4234,7 +4234,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00
};
static const unsigned short uni2cp_low[28622] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -4234,7 +4234,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00
};
static const unsigned short uni2cp_low[37466] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -4234,7 +4234,7 @@ static const unsigned char cp2uni_leadbytes[256] =
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00
};
static const unsigned short uni2cp_low[31731] =
static const unsigned short uni2cp_low[] =
{
/* 0x0000 .. 0x00ff */
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,

View file

@ -1,18 +1,18 @@
/* Unicode case mappings */
/* generated from http://www.unicode.org/Public/10.0.0/ucd/UnicodeData.txt */
/* generated from http://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt */
/* DO NOT EDIT!! */
#include "wine/unicode.h"
#include "windef.h"
const WCHAR wine_casemap_lower[4013] =
const WCHAR wine_casemap_lower[4259] =
{
/* index */
0x01bf, 0x02bf, 0x03bf, 0x044f, 0x054f, 0x064f, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x06af, 0x0100, 0x0100, 0x077d, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x087d, 0x097c,
0x0100, 0x0a79, 0x0100, 0x0100, 0x0afd, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0bfd, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0873, 0x0100, 0x0973, 0x0a72,
0x0100, 0x0b6f, 0x0100, 0x0100, 0x0bf3, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0cf3, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
@ -27,7 +27,7 @@ const WCHAR wine_casemap_lower[4013] =
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0cf0, 0x0dce,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0de6, 0x0ec4,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
@ -38,7 +38,7 @@ const WCHAR wine_casemap_lower[4013] =
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0ead,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0fa3,
/* defaults */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -288,6 +288,38 @@ const WCHAR wine_casemap_lower[4013] =
0x97d0, 0x97d0, 0x97d0, 0x97d0, 0x97d0, 0x97d0, 0x0008, 0x0008,
0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
/* 0x1c0a .. 0x1cff */
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, 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, 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, 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, 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, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf440, 0xf440,
0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440,
0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440,
0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440,
0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440,
0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440, 0xf440,
0xf440, 0x0000, 0x0000, 0xf440, 0xf440, 0xf440, 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, 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,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
/* 0x1e00 .. 0x1eff */
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
@ -489,9 +521,9 @@ const WCHAR wine_casemap_lower[4013] =
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
0x5abc, 0x5ab1, 0x5ab5, 0x5abf, 0x5abc, 0x0000, 0x5aee, 0x5ad6,
0x5aeb, 0x03a0, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x5aeb, 0x03a0, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000,
0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
0x0001, 0x0000, 0xffd0, 0x5abd, 0x75c8, 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, 0x0000, 0x0000,
@ -530,15 +562,15 @@ const WCHAR wine_casemap_lower[4013] =
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};
const WCHAR wine_casemap_upper[4570] =
const WCHAR wine_casemap_upper[4838] =
{
/* index */
0x019f, 0x029f, 0x039f, 0x045a, 0x0556, 0x0656, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x06dd, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x07db, 0x0864, 0x0963, 0x0a63,
0x0100, 0x0b57, 0x0100, 0x0100, 0x0bdc, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0cc6, 0x0dc6, 0x0100, 0x0100,
0x06dd, 0x0100, 0x0100, 0x07dd, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x08db, 0x0964, 0x0a63, 0x0b63,
0x0100, 0x0c57, 0x0100, 0x0100, 0x0cdc, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0dc6, 0x0ec6, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
@ -553,8 +585,8 @@ const WCHAR wine_casemap_upper[4570] =
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0e85, 0x0f62,
0x0100, 0x0100, 0x0100, 0x101a, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0f85, 0x1062,
0x0100, 0x0100, 0x0100, 0x1126, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
@ -564,7 +596,7 @@ const WCHAR wine_casemap_upper[4570] =
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x10da,
0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x11e6,
/* defaults */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -669,7 +701,7 @@ const WCHAR wine_casemap_upper[4570] =
0xff2f, 0xff2d, 0xa544, 0x29f7, 0xa541, 0x0000, 0x0000, 0xff2d,
0x0000, 0x29fd, 0xff2b, 0x0000, 0x0000, 0xff2a, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29e7, 0x0000, 0x0000,
0xff26, 0x0000, 0x0000, 0xff26, 0x0000, 0x0000, 0x0000, 0xa52a,
0xff26, 0x0000, 0xa543, 0xff26, 0x0000, 0x0000, 0x0000, 0xa52a,
0xff26, 0xffbb, 0xff27, 0xff27, 0xffb9, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xff25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa515, 0xa512, 0x0000,
@ -776,7 +808,25 @@ const WCHAR wine_casemap_upper[4570] =
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
/* 0x1379 .. 0x13ff */
/* 0x1079 .. 0x10ff */
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, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0bc0,
0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0,
0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0,
0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0,
0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0,
0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0, 0x0bc0,
0x0bc0, 0x0bc0, 0x0000, 0x0000, 0x0bc0, 0x0bc0, 0x0bc0,
/* 0x1300 .. 0x13ff */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -792,8 +842,23 @@ const WCHAR wine_casemap_upper[4570] =
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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8,
0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 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, 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,
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, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000,
/* 0x1c02 .. 0x1cff */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -830,7 +895,7 @@ const WCHAR wine_casemap_upper[4570] =
/* 0x1d77 .. 0x1dff */
0x0000, 0x0000, 0x8a04, 0x0000, 0x0000, 0x0000, 0x0ee6, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8a38,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -1066,13 +1131,13 @@ const WCHAR wine_casemap_upper[4570] =
0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000,
0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000,
0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000,
0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000,
0xffff, 0x0030, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000,
0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000,
0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000,
0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000,
0xffff, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -1080,12 +1145,14 @@ const WCHAR wine_casemap_upper[4570] =
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
/* 0xab48 .. 0xabff */
/* 0xab3c .. 0xabff */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xfc60, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfc60,
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, 0x0000, 0x0000, 0x0000, 0x6830, 0x6830, 0x6830, 0x6830,
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
@ -1095,8 +1162,7 @@ const WCHAR wine_casemap_upper[4570] =
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830, 0x6830,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6830, 0x6830, 0x6830, 0x6830, 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, 0x0000, 0x0000, 0x0000,
@ -1104,6 +1170,7 @@ const WCHAR wine_casemap_upper[4570] =
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, 0x0000, 0x0000, 0x0000,
/* 0xff40 .. 0xffff */
0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0,
0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0,

View file

@ -2,7 +2,9 @@
/* generated from http://www.unicode.org/reports/tr10/allkeys.txt */
/* DO NOT EDIT!! */
const unsigned int collation_table[12800] =
#include "windef.h"
const unsigned int DECLSPEC_HIDDEN collation_table[12800] =
{
/* index */
0x00000200, 0x00000300, 0x00000400, 0x00000500, 0x00000600, 0x00000700, 0x00000800, 0x00000900,

View file

@ -1,8 +1,8 @@
/* Unicode char composition */
/* generated from http://www.unicode.org/Public/10.0.0/ucd/UnicodeData.txt */
/* generated from http://www.unicode.org/Public/12.0.0/ucd/UnicodeData.txt */
/* DO NOT EDIT!! */
#include "wine/unicode.h"
#include "windef.h"
static const WCHAR table[0x85e] =
{

View file

@ -22,6 +22,10 @@
#include "wine/unicode.h"
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#endif
/* Everything below this line is generated automatically by make_unicode */
/* ### cpmap begin ### */
extern union cptable cptable_037;
@ -92,12 +96,13 @@ extern union cptable cptable_28597;
extern union cptable cptable_28598;
extern union cptable cptable_28599;
extern union cptable cptable_28600;
extern union cptable cptable_28601;
extern union cptable cptable_28603;
extern union cptable cptable_28604;
extern union cptable cptable_28605;
extern union cptable cptable_28606;
static const union cptable * const cptables[72] =
static const union cptable * const cptables[73] =
{
&cptable_037,
&cptable_424,
@ -167,6 +172,7 @@ static const union cptable * const cptables[72] =
&cptable_28598,
&cptable_28599,
&cptable_28600,
&cptable_28601,
&cptable_28603,
&cptable_28604,
&cptable_28605,
@ -175,8 +181,6 @@ static const union cptable * const cptables[72] =
/* ### cpmap end ### */
/* Everything above this line is generated automatically by make_unicode */
#define NB_CODEPAGES (sizeof(cptables)/sizeof(cptables[0]))
static int cmp_codepage( const void *codepage, const void *entry )
{
@ -189,7 +193,7 @@ const union cptable *wine_cp_get_table( unsigned int codepage )
{
const union cptable **res;
if (!(res = bsearch( &codepage, cptables, NB_CODEPAGES,
if (!(res = bsearch( &codepage, cptables, ARRAY_SIZE( cptables ),
sizeof(cptables[0]), cmp_codepage ))) return NULL;
return *res;
}
@ -198,6 +202,6 @@ const union cptable *wine_cp_get_table( unsigned int codepage )
/* enum valid codepages */
const union cptable *wine_cp_enum_table( unsigned int index )
{
if (index >= NB_CODEPAGES) return NULL;
if (index >= ARRAY_SIZE( cptables )) return NULL;
return cptables[index];
}

View file

@ -22,7 +22,7 @@
#include "wine/unicode.h"
extern unsigned int wine_decompose( WCHAR ch, WCHAR *dst, unsigned int dstlen ) DECLSPEC_HIDDEN;
extern unsigned int wine_decompose( int flags, WCHAR ch, WCHAR *dst, unsigned int dstlen ) DECLSPEC_HIDDEN;
/* check the code whether it is in Unicode Private Use Area (PUA). */
/* MB_ERR_INVALID_CHARS raises an error converting from 1-byte character to PUA. */
@ -65,34 +65,52 @@ static inline int mbstowcs_sbcs( const struct sbcs_table *table, int flags,
ret = -1;
}
for (;;)
while (srclen >= 16)
{
switch(srclen)
{
default:
case 16: dst[15] = cp2uni[src[15]];
case 15: dst[14] = cp2uni[src[14]];
case 14: dst[13] = cp2uni[src[13]];
case 13: dst[12] = cp2uni[src[12]];
case 12: dst[11] = cp2uni[src[11]];
case 11: dst[10] = cp2uni[src[10]];
case 10: dst[9] = cp2uni[src[9]];
case 9: dst[8] = cp2uni[src[8]];
case 8: dst[7] = cp2uni[src[7]];
case 7: dst[6] = cp2uni[src[6]];
case 6: dst[5] = cp2uni[src[5]];
case 5: dst[4] = cp2uni[src[4]];
case 4: dst[3] = cp2uni[src[3]];
case 3: dst[2] = cp2uni[src[2]];
case 2: dst[1] = cp2uni[src[1]];
case 1: dst[0] = cp2uni[src[0]];
case 0: break;
}
if (srclen < 16) return ret;
dst += 16;
dst[0] = cp2uni[src[0]];
dst[1] = cp2uni[src[1]];
dst[2] = cp2uni[src[2]];
dst[3] = cp2uni[src[3]];
dst[4] = cp2uni[src[4]];
dst[5] = cp2uni[src[5]];
dst[6] = cp2uni[src[6]];
dst[7] = cp2uni[src[7]];
dst[8] = cp2uni[src[8]];
dst[9] = cp2uni[src[9]];
dst[10] = cp2uni[src[10]];
dst[11] = cp2uni[src[11]];
dst[12] = cp2uni[src[12]];
dst[13] = cp2uni[src[13]];
dst[14] = cp2uni[src[14]];
dst[15] = cp2uni[src[15]];
src += 16;
dst += 16;
srclen -= 16;
}
/* now handle the remaining characters */
src += srclen;
dst += srclen;
switch (srclen)
{
case 15: dst[-15] = cp2uni[src[-15]];
case 14: dst[-14] = cp2uni[src[-14]];
case 13: dst[-13] = cp2uni[src[-13]];
case 12: dst[-12] = cp2uni[src[-12]];
case 11: dst[-11] = cp2uni[src[-11]];
case 10: dst[-10] = cp2uni[src[-10]];
case 9: dst[-9] = cp2uni[src[-9]];
case 8: dst[-8] = cp2uni[src[-8]];
case 7: dst[-7] = cp2uni[src[-7]];
case 6: dst[-6] = cp2uni[src[-6]];
case 5: dst[-5] = cp2uni[src[-5]];
case 4: dst[-4] = cp2uni[src[-4]];
case 3: dst[-3] = cp2uni[src[-3]];
case 2: dst[-2] = cp2uni[src[-2]];
case 1: dst[-1] = cp2uni[src[-1]];
case 0: break;
}
return ret;
}
/* mbstowcs for single-byte code page with char decomposition */
@ -107,13 +125,13 @@ static int mbstowcs_sbcs_decompose( const struct sbcs_table *table, int flags,
{
WCHAR dummy[4]; /* no decomposition is larger than 4 chars */
for (len = 0; srclen; srclen--, src++)
len += wine_decompose( cp2uni[*src], dummy, 4 );
len += wine_decompose( 0, cp2uni[*src], dummy, 4 );
return len;
}
for (len = dstlen; srclen && len; srclen--, src++)
{
unsigned int res = wine_decompose( cp2uni[*src], dst, len );
unsigned int res = wine_decompose( 0, cp2uni[*src], dst, len );
if (!res) break;
len -= res;
dst += res;
@ -219,7 +237,7 @@ static int mbstowcs_dbcs_decompose( const struct dbcs_table *table,
ch = cp2uni[(off << 8) + *src];
}
else ch = cp2uni[*src];
len += wine_decompose( ch, dummy, 4 );
len += wine_decompose( 0, ch, dummy, 4 );
}
return len;
}
@ -234,7 +252,7 @@ static int mbstowcs_dbcs_decompose( const struct dbcs_table *table,
ch = cp2uni[(off << 8) + *src];
}
else ch = cp2uni[*src];
if (!(res = wine_decompose( ch, dst, len ))) break;
if (!(res = wine_decompose( 0, ch, dst, len ))) break;
dst += res;
len -= res;
}

View file

@ -19,7 +19,7 @@
*/
#include "wine/unicode.h"
extern unsigned int wine_decompose( WCHAR ch, WCHAR *dst, unsigned int dstlen );
extern unsigned int wine_decompose( int flags, WCHAR ch, WCHAR *dst, unsigned int dstlen );
extern const unsigned int collation_table[];
/*
@ -79,8 +79,8 @@ int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dst
}
if (!dstlen) /* compute length */
/* 4 * '\1' + 1 * '\0' + key length */
return key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1;
/* 4 * '\1' + key length */
return key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4;
if (dstlen < key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1)
return 0; /* overflow */
@ -153,11 +153,50 @@ int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dst
return key_ptr[3] - dst;
}
static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1,
const WCHAR *str2, int len2)
enum weight
{
UNICODE_WEIGHT,
DIACRITIC_WEIGHT,
CASE_WEIGHT
};
static unsigned int get_weight(WCHAR ch, enum weight type)
{
unsigned int ret;
ret = collation_table[collation_table[ch >> 8] + (ch & 0xff)];
if (ret == (unsigned int)-1)
return ch;
switch(type)
{
case UNICODE_WEIGHT:
return ret >> 16;
case DIACRITIC_WEIGHT:
return (ret >> 8) & 0xff;
case CASE_WEIGHT:
default:
return (ret >> 4) & 0x0f;
}
}
static void inc_str_pos(const WCHAR **str, int *len, int *dpos, int *dlen)
{
(*dpos)++;
if (*dpos == *dlen)
{
*dpos = *dlen = 0;
(*str)++;
(*len)--;
}
}
static inline int compare_weights(int flags, const WCHAR *str1, int len1,
const WCHAR *str2, int len2, enum weight type)
{
int dpos1 = 0, dpos2 = 0, dlen1 = 0, dlen2 = 0;
WCHAR dstr1[4], dstr2[4];
unsigned int ce1, ce2;
int ret;
/* 32-bit collation element table format:
* unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit,
@ -165,20 +204,21 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1
*/
while (len1 > 0 && len2 > 0)
{
if (!dlen1) dlen1 = wine_decompose(0, *str1, dstr1, 4);
if (!dlen2) dlen2 = wine_decompose(0, *str2, dstr2, 4);
if (flags & NORM_IGNORESYMBOLS)
{
int skip = 0;
/* FIXME: not tested */
if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE))
if (get_char_typeW(dstr1[dpos1]) & (C1_PUNCT | C1_SPACE))
{
str1++;
len1--;
inc_str_pos(&str1, &len1, &dpos1, &dlen1);
skip = 1;
}
if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE))
if (get_char_typeW(dstr2[dpos2]) & (C1_PUNCT | C1_SPACE))
{
str2++;
len2--;
inc_str_pos(&str2, &len2, &dpos2, &dlen2);
skip = 1;
}
if (skip) continue;
@ -187,167 +227,56 @@ static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1
/* hyphen and apostrophe are treated differently depending on
* whether SORT_STRINGSORT specified or not
*/
if (!(flags & SORT_STRINGSORT))
if (type == UNICODE_WEIGHT && !(flags & SORT_STRINGSORT))
{
if (*str1 == '-' || *str1 == '\'')
if (dstr1[dpos1] == '-' || dstr1[dpos1] == '\'')
{
if (*str2 != '-' && *str2 != '\'')
if (dstr2[dpos2] != '-' && dstr2[dpos2] != '\'')
{
str1++;
len1--;
inc_str_pos(&str1, &len1, &dpos1, &dlen1);
continue;
}
}
else if (*str2 == '-' || *str2 == '\'')
else if (dstr2[dpos2] == '-' || dstr2[dpos2] == '\'')
{
str2++;
len2--;
inc_str_pos(&str2, &len2, &dpos2, &dlen2);
continue;
}
}
ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)];
ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)];
if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1)
ret = (ce1 >> 16) - (ce2 >> 16);
else
ret = *str1 - *str2;
if (ret) return ret;
str1++;
str2++;
len1--;
len2--;
}
while (len1 && !*str1)
{
str1++;
len1--;
}
while (len2 && !*str2)
{
str2++;
len2--;
}
return len1 - len2;
}
static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int len1,
const WCHAR *str2, int len2)
{
unsigned int ce1, ce2;
int ret;
/* 32-bit collation element table format:
* unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit,
* case weight - high 4 bit of low 8 bit.
*/
while (len1 > 0 && len2 > 0)
{
if (flags & NORM_IGNORESYMBOLS)
ce1 = get_weight(dstr1[dpos1], type);
if (!ce1)
{
int skip = 0;
/* FIXME: not tested */
if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE))
{
str1++;
len1--;
skip = 1;
}
if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE))
{
str2++;
len2--;
skip = 1;
}
if (skip) continue;
inc_str_pos(&str1, &len1, &dpos1, &dlen1);
continue;
}
ce2 = get_weight(dstr2[dpos2], type);
if (!ce2)
{
inc_str_pos(&str2, &len2, &dpos2, &dlen2);
continue;
}
ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)];
ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)];
if (ce1 - ce2) return ce1 - ce2;
if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1)
ret = ((ce1 >> 8) & 0xff) - ((ce2 >> 8) & 0xff);
else
ret = *str1 - *str2;
if (ret) return ret;
str1++;
str2++;
len1--;
len2--;
inc_str_pos(&str1, &len1, &dpos1, &dlen1);
inc_str_pos(&str2, &len2, &dpos2, &dlen2);
}
while (len1 && !*str1)
while (len1)
{
str1++;
len1--;
if (!dlen1) dlen1 = wine_decompose(0, *str1, dstr1, 4);
ce1 = get_weight(dstr1[dpos1], type);
if (ce1) break;
inc_str_pos(&str1, &len1, &dpos1, &dlen1);
}
while (len2 && !*str2)
while (len2)
{
str2++;
len2--;
}
return len1 - len2;
}
if (!dlen2) dlen2 = wine_decompose(0, *str2, dstr2, 4);
static inline int compare_case_weights(int flags, const WCHAR *str1, int len1,
const WCHAR *str2, int len2)
{
unsigned int ce1, ce2;
int ret;
/* 32-bit collation element table format:
* unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit,
* case weight - high 4 bit of low 8 bit.
*/
while (len1 > 0 && len2 > 0)
{
if (flags & NORM_IGNORESYMBOLS)
{
int skip = 0;
/* FIXME: not tested */
if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE))
{
str1++;
len1--;
skip = 1;
}
if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE))
{
str2++;
len2--;
skip = 1;
}
if (skip) continue;
}
ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)];
ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)];
if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1)
ret = ((ce1 >> 4) & 0x0f) - ((ce2 >> 4) & 0x0f);
else
ret = *str1 - *str2;
if (ret) return ret;
str1++;
str2++;
len1--;
len2--;
}
while (len1 && !*str1)
{
str1++;
len1--;
}
while (len2 && !*str2)
{
str2++;
len2--;
ce2 = get_weight(dstr2[dpos2], type);
if (ce2) break;
inc_str_pos(&str2, &len2, &dpos2, &dlen2);
}
return len1 - len2;
}
@ -357,13 +286,13 @@ int wine_compare_string(int flags, const WCHAR *str1, int len1,
{
int ret;
ret = compare_unicode_weights(flags, str1, len1, str2, len2);
ret = compare_weights(flags, str1, len1, str2, len2, UNICODE_WEIGHT);
if (!ret)
{
if (!(flags & NORM_IGNORENONSPACE))
ret = compare_diacritic_weights(flags, str1, len1, str2, len2);
ret = compare_weights(flags, str1, len1, str2, len2, DIACRITIC_WEIGHT);
if (!ret && !(flags & NORM_IGNORECASE))
ret = compare_case_weights(flags, str1, len1, str2, len2);
ret = compare_weights(flags, str1, len1, str2, len2, CASE_WEIGHT);
}
return ret;
}

View file

@ -23,7 +23,6 @@
#include <limits.h>
#include <stdio.h>
#define WINE_UNICODE_INLINE /* nothing */
#include "wine/unicode.h"
#ifdef __REACTOS__
@ -469,14 +468,19 @@ int vsnprintfW(WCHAR *str, size_t len, const WCHAR *format, va_list valist)
/* FIXME: for unrecognised types, should ignore % when printing */
char *bufaiter = bufa;
if (*iter == 'p')
#ifdef __REACTOS__
sprintf(bufaiter, "%p", va_arg(valist, void*));
#else
sprintf(bufaiter, "%0*lX", 2 * (int)sizeof(void*),
(unsigned long)va_arg(valist, void *));
#endif
else
{
*fmta++ = *iter;
*fmta = '\0';
if (*iter == 'a' || *iter == 'A' ||
*iter == 'e' || *iter == 'E' ||
*iter == 'f' || *iter == 'F' ||
*iter == 'f' || *iter == 'F' ||
*iter == 'g' || *iter == 'G')
sprintf(bufaiter, fmtbufa, va_arg(valist, double));
else

View file

@ -1,7 +1,7 @@
/* Unicode ctype tables */
/* Automatically generated; DO NOT EDIT!! */
#include "wine/unicode.h"
#include "windef.h"
const unsigned short wine_wctype_table[17152] =
{
@ -211,12 +211,12 @@ const unsigned short wine_wctype_table[17152] =
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000,
0x0000, 0x1300, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210,
0x0000, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x0000, 0x1210, 0xb210, 0x0000, 0x0000, 0xb200, 0xb200, 0x5200,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1210, 0xb210, 0x0000, 0x0000, 0xb200, 0xb200, 0x5200,
0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
@ -228,7 +228,7 @@ const unsigned short wine_wctype_table[17152] =
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300,
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300,
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300,
0x2300, 0x2300, 0x2300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x2300, 0x2300, 0x2300, 0x0000, 0x0000, 0x0000, 0x0000, 0x2300,
0x2300, 0x2300, 0x2300, 0x2210, 0x2210, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6220, 0x6220, 0x6220, 0x6220, 0x6220, 0x6220, 0xb200, 0xb200,
@ -294,7 +294,7 @@ const unsigned short wine_wctype_table[17152] =
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300,
0x2300, 0x2300, 0x2300, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0x2300, 0x2300, 0xb200, 0xb210,
0xb210, 0xb210, 0x2300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xb210, 0xb210, 0x2300, 0x0000, 0x0000, 0xd200, 0x2200, 0x2200,
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300,
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300,
0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0x2300, 0xd200, 0xd200,
@ -321,7 +321,7 @@ const unsigned short wine_wctype_table[17152] =
0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200,
0x0000, 0x0000, 0x0000, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0x6220, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
@ -358,7 +358,7 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204,
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
0x1300, 0x1300, 0x5200, 0x5200, 0x1200, 0x1200, 0x1200, 0x1200,
0x1200, 0x1200, 0x1200, 0x5200, 0x1300, 0x1210, 0x0000, 0x0000,
0x1200, 0x1200, 0x1200, 0x5200, 0x1300, 0x1210, 0xd200, 0x0000,
0x0000, 0xd200, 0xd200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300,
0x1300, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -373,7 +373,7 @@ const unsigned short wine_wctype_table[17152] =
0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1204, 0x1204,
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0xd200, 0x0000, 0x0000,
0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0xd200, 0x1210, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0xd200, 0xd200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300,
@ -423,7 +423,7 @@ const unsigned short wine_wctype_table[17152] =
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
0x1200, 0x1200, 0x1200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0x5200, 0xb200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xd200, 0x1200, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300,
0xd200, 0x1200, 0x1200, 0x1200, 0xd200, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300,
0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -437,9 +437,9 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1300, 0x1300, 0xd200, 0xd200, 0x0000, 0x0000, 0x1204, 0x1204,
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1210,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0x1200,
0x1300, 0xd200, 0x1200, 0x1200, 0x0000, 0x1300, 0x1300, 0x1300,
0x1300, 0xd200, 0x1200, 0x1200, 0x1210, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300,
0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -503,14 +503,14 @@ const unsigned short wine_wctype_table[17152] =
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, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x0000, 0x1300,
0x1300, 0x0000, 0x1300, 0x0000, 0x0000, 0x1300, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300,
0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x0000, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300,
0x0000, 0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300,
0x0000, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0xd200, 0x1300, 0x1300, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0x0000, 0xd200, 0xd200, 0x1300, 0x0000, 0x0000,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x1300, 0x0000, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000, 0x1300, 0x0000,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0x0000, 0x0000,
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
@ -577,12 +577,12 @@ const unsigned short wine_wctype_table[17152] =
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000, 0x1301,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1301, 0x0000, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1210, 0x1300, 0x1300, 0x1300, 0x1300,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1210, 0x1300, 0x1302, 0x1302, 0x1302,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -724,7 +724,7 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1210, 0x1210, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1200, 0x1210, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0xa208, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -790,7 +790,7 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0xd200, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -921,20 +921,20 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1210, 0x1210,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 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, 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, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x0000, 0x0000, 0x1301, 0x1301, 0x1301,
0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xd200, 0xd200, 0xd200, 0x1210, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0x1200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300,
0x1300, 0x1300, 0x1200, 0x1200, 0xd200, 0x1300, 0x1300, 0x1200,
0xd200, 0xd200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0xd200, 0x1300, 0x1300, 0x1200,
0xd200, 0xd200, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
@ -1374,15 +1374,15 @@ const unsigned short wine_wctype_table[17152] =
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0x0000, 0x0000, 0x0000, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0x0000, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 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, 0xb200, 0xb200, 0xb200, 0xb200,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200, 0xb200,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301,
@ -1456,7 +1456,7 @@ const unsigned short wine_wctype_table[17152] =
0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210,
0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210,
0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210,
0xb210, 0xb210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -1548,7 +1548,7 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x0000, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -1700,7 +1700,7 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -1788,10 +1788,10 @@ const unsigned short wine_wctype_table[17152] =
0x1301, 0x1302, 0x1301, 0x1302, 0x1302, 0x1302, 0x1301, 0x1302,
0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302,
0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302,
0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x0000,
0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1302,
0x1301, 0x1301, 0x1301, 0x1301, 0x1301, 0x1302, 0x1301, 0x1302,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302, 0x1301, 0x1302,
0x0000, 0x0000, 0x1301, 0x1302, 0x1301, 0x1301, 0x1301, 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,
@ -1830,7 +1830,7 @@ const unsigned short wine_wctype_table[17152] =
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200, 0xd200,
0xd200, 0xd200, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1210, 0x1210, 0x1210, 0x1300, 0x1210, 0x1300, 0x0000, 0x0000,
0x1210, 0x1210, 0x1210, 0x1300, 0x1210, 0x1300, 0x1300, 0xd200,
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
0x1204, 0x1204, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
@ -1854,7 +1854,7 @@ const unsigned short wine_wctype_table[17152] =
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300, 0x1300,
0x1300, 0x1300, 0x1300, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200,
0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0x1200, 0x1200, 0x1200,
0xd200, 0xd200, 0x1200, 0x1200, 0xd200, 0xd200, 0x1200, 0x1200,
0x1200, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210,
0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x1210, 0x0000, 0x1300,
0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204, 0x1204,
@ -1907,7 +1907,7 @@ const unsigned short wine_wctype_table[17152] =
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1200, 0x1300, 0x1300, 0x1300, 0x1300,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x0000, 0x0000,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,
0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302, 0x1302,