diff options
author | unknown <bar@gw.udmsearch.izhnet.ru> | 2002-03-29 16:06:06 +0400 |
---|---|---|
committer | unknown <bar@gw.udmsearch.izhnet.ru> | 2002-03-29 16:06:06 +0400 |
commit | 4fd893e5d3a0ff652ab21dcdb748f7aad4d7ebdf (patch) | |
tree | d444c80b3c0ba33ab823c67eb8b92c2d59ab58e7 /strings | |
parent | 48f993484ac510eff44314c18afd880f656c3f02 (diff) | |
download | mariadb-git-4fd893e5d3a0ff652ab21dcdb748f7aad4d7ebdf.tar.gz |
charset<->unicode conversion tables and routines
some warnings fixes
include/m_ctype.h:
New charset conversion fields in CHARSET_INFO
mysys/hash.c:
Fix for "unused argument" warning
strings/ctype-big5.c:
Fix for "unused argument" warning
strings/ctype-czech.c:
Fix for "unused argument" warning
strings/ctype-euc_kr.c:
Fix for "unused argument" warning
strings/ctype-gb2312.c:
Fix for "unused argument" warning
strings/ctype-gbk.c:
Fix for "unused argument" warning
strings/ctype-latin1_de.c:
Fix for "unused argument" warning
strings/ctype-simple.c:
8bit<->unicode convertion routines
strings/ctype-sjis.c:
Fix for "unused argument" warning
strings/ctype-tis620.c:
Fix for "unused argument" warning
strings/ctype-ujis.c:
Fix for "unused argument" warning
strings/ctype-utf8.c:
Fix for "unused argument" warning
strings/ctype.c:
8bit <-> unicode conversion tables
Diffstat (limited to 'strings')
-rw-r--r-- | strings/ctype-big5.c | 13 | ||||
-rw-r--r-- | strings/ctype-czech.c | 6 | ||||
-rw-r--r-- | strings/ctype-euc_kr.c | 7 | ||||
-rw-r--r-- | strings/ctype-gb2312.c | 7 | ||||
-rw-r--r-- | strings/ctype-gbk.c | 13 | ||||
-rw-r--r-- | strings/ctype-latin1_de.c | 6 | ||||
-rw-r--r-- | strings/ctype-simple.c | 23 | ||||
-rw-r--r-- | strings/ctype-sjis.c | 13 | ||||
-rw-r--r-- | strings/ctype-tis620.c | 6 | ||||
-rw-r--r-- | strings/ctype-ujis.c | 7 | ||||
-rw-r--r-- | strings/ctype-utf8.c | 8 | ||||
-rw-r--r-- | strings/ctype.c | 1571 |
12 files changed, 1344 insertions, 336 deletions
diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c index 00eada424b1..3bfc5f3ab9b 100644 --- a/strings/ctype-big5.c +++ b/strings/ctype-big5.c @@ -215,7 +215,7 @@ static uint16 big5strokexfrm(uint16 i) return 0xA140; } -int my_strnncoll_big5(CHARSET_INFO *cs, +int my_strnncoll_big5(CHARSET_INFO *cs __attribute__((unused)), const uchar * s1, uint len1, const uchar * s2, uint len2) { @@ -239,7 +239,7 @@ int my_strnncoll_big5(CHARSET_INFO *cs, return (int) (len1-len2); } -int my_strnxfrm_big5(CHARSET_INFO *cs, +int my_strnxfrm_big5(CHARSET_INFO *cs __attribute__((unused)), uchar * dest, uint len, const uchar * src, uint srclen) { @@ -328,7 +328,7 @@ int my_strxfrm_big5(uchar * dest, const uchar * src, int len) #define wild_one '_' #define wild_many '%' -my_bool my_like_range_big5(CHARSET_INFO *cs, +my_bool my_like_range_big5(CHARSET_INFO *cs __attribute__((unused)), const char *ptr,uint ptr_length,pchar escape, uint res_length, char *min_str,char *max_str, uint *min_length,uint *max_length) @@ -378,17 +378,18 @@ my_bool my_like_range_big5(CHARSET_INFO *cs, return 0; } -int ismbchar_big5(CHARSET_INFO *cs,const char* p, const char *e) +int ismbchar_big5(CHARSET_INFO *cs __attribute__((unused)), + const char* p, const char *e) { return (isbig5head(*(p)) && (e)-(p)>1 && isbig5tail(*((p)+1))? 2: 0); } -my_bool ismbhead_big5(CHARSET_INFO *cs, uint c) +my_bool ismbhead_big5(CHARSET_INFO *cs __attribute__((unused)), uint c) { return isbig5head(c); } -int mbcharlen_big5(CHARSET_INFO *cs, uint c) +int mbcharlen_big5(CHARSET_INFO *cs __attribute__((unused)), uint c) { return (isbig5head(c)? 2: 0); } diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c index eaf0b1ef38b..f3b7777a6d4 100644 --- a/strings/ctype-czech.c +++ b/strings/ctype-czech.c @@ -282,7 +282,7 @@ int my_strxfrm_czech(uchar * dest, const uchar * src, int len) /* Function strnncoll, actually strcoll, with Czech sorting, which expect the length of the strings being specified */ -int my_strnncoll_czech(CHARSET_INFO *cs, +int my_strnncoll_czech(CHARSET_INFO *cs __attribute__((unused)), const uchar * s1, uint len1, const uchar * s2, uint len2) { @@ -308,7 +308,7 @@ int my_strnncoll_czech(CHARSET_INFO *cs, /* Function strnxfrm, actually strxfrm, with Czech sorting, which expect the length of the strings being specified */ -int my_strnxfrm_czech(CHARSET_INFO *cs, +int my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)), uchar * dest, uint len, const uchar * src, uint srclen) { @@ -378,7 +378,7 @@ int my_strnxfrm_czech(CHARSET_INFO *cs, #define EXAMPLE -my_bool my_like_range_czech(CHARSET_INFO *cs, +my_bool my_like_range_czech(CHARSET_INFO *cs __attribute__((unused)), const char *ptr,uint ptr_length,pchar escape, uint res_length, char *min_str,char *max_str, uint *min_length,uint *max_length) diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 4fd8600dd99..b54c80ffe99 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -183,19 +183,20 @@ uchar NEAR sort_order_euc_kr[]= #define iseuc_kr(c) ((0xa1<=(uchar)(c) && (uchar)(c)<=0xfe)) -int ismbchar_euc_kr(CHARSET_INFO *cs,const char* p, const char *e) +int ismbchar_euc_kr(CHARSET_INFO *cs __attribute__((unused)), + const char* p, const char *e) { return ((*(uchar*)(p)<0x80)? 0:\ iseuc_kr(*(p)) && (e)-(p)>1 && iseuc_kr(*((p)+1))? 2:\ 0); } -my_bool ismbhead_euc_kr(CHARSET_INFO *cs,uint c) +my_bool ismbhead_euc_kr(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (iseuc_kr(c)); } -int mbcharlen_euc_kr(CHARSET_INFO *cs,uint c) +int mbcharlen_euc_kr(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (iseuc_kr(c) ? 2 : 0); } diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index 96ad352a97e..556bae0747c 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -166,17 +166,18 @@ uchar NEAR sort_order_gb2312[]= #define isgb2312tail(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe) -int ismbchar_gb2312(CHARSET_INFO *cs,const char* p, const char *e) +int ismbchar_gb2312(CHARSET_INFO *cs __attribute__((unused)), + const char* p, const char *e) { return (isgb2312head(*(p)) && (e)-(p)>1 && isgb2312tail(*((p)+1))? 2: 0); } -my_bool ismbhead_gb2312(CHARSET_INFO *cs,uint c) +my_bool ismbhead_gb2312(CHARSET_INFO *cs __attribute__((unused)),uint c) { return isgb2312head(c); } -int mbcharlen_gb2312(CHARSET_INFO *cs,uint c) +int mbcharlen_gb2312(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (isgb2312head(c)? 2:0); } diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c index 5bc2d490fd4..68ee90651d6 100644 --- a/strings/ctype-gbk.c +++ b/strings/ctype-gbk.c @@ -2582,7 +2582,7 @@ static uint16 gbksortorder(uint16 i) } -int my_strnncoll_gbk(CHARSET_INFO *cs, +int my_strnncoll_gbk(CHARSET_INFO *cs __attribute__((unused)), const uchar * s1, uint len1, const uchar * s2, uint len2) { @@ -2609,7 +2609,7 @@ int my_strnncoll_gbk(CHARSET_INFO *cs, } -int my_strnxfrm_gbk(CHARSET_INFO *cs, +int my_strnxfrm_gbk(CHARSET_INFO *cs __attribute__((unused)), uchar * dest, uint len, const uchar * src, uint srclen) { @@ -2653,7 +2653,7 @@ int my_strnxfrm_gbk(CHARSET_INFO *cs, #define wild_one '_' #define wild_many '%' -extern my_bool my_like_range_gbk(CHARSET_INFO *cs, +extern my_bool my_like_range_gbk(CHARSET_INFO *cs __attribute__((unused)), const char *ptr,uint ptr_length,pchar escape, uint res_length, char *min_str,char *max_str, uint *min_length,uint *max_length) @@ -2704,17 +2704,18 @@ extern my_bool my_like_range_gbk(CHARSET_INFO *cs, } -int ismbchar_gbk(CHARSET_INFO *cs,const char* p, const char *e) +int ismbchar_gbk(CHARSET_INFO *cs __attribute__((unused)), + const char* p, const char *e) { return (isgbkhead(*(p)) && (e)-(p)>1 && isgbktail(*((p)+1))? 2: 0); } -my_bool ismbhead_gbk(CHARSET_INFO *cs,uint c) +my_bool ismbhead_gbk(CHARSET_INFO *cs __attribute__((unused)),uint c) { return isgbkhead(c); } -int mbcharlen_gbk(CHARSET_INFO *cs,uint c) +int mbcharlen_gbk(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (isgbkhead(c)? 2:0); } diff --git a/strings/ctype-latin1_de.c b/strings/ctype-latin1_de.c index e7bbf1438a6..acaa668b24e 100644 --- a/strings/ctype-latin1_de.c +++ b/strings/ctype-latin1_de.c @@ -164,7 +164,7 @@ uchar sort_order_latin1_de[] = { } -int my_strnncoll_latin1_de(CHARSET_INFO *cs, +int my_strnncoll_latin1_de(CHARSET_INFO *cs __attribute__((unused)), const uchar * s1, uint len1, const uchar * s2, uint len2) { @@ -238,7 +238,7 @@ int my_strnncoll_latin1_de(CHARSET_INFO *cs, } -int my_strnxfrm_latin1_de(CHARSET_INFO *cs, +int my_strnxfrm_latin1_de(CHARSET_INFO *cs __attribute__((unused)), uchar * dest, uint len, const uchar * src, uint srclen) { @@ -303,7 +303,7 @@ int my_strnxfrm_latin1_de(CHARSET_INFO *cs, #define wild_one '_' #define wild_many '%' -my_bool my_like_range_latin1_de(CHARSET_INFO *cs, +my_bool my_like_range_latin1_de(CHARSET_INFO *cs __attribute__((unused)), const char *ptr, uint ptr_length, pchar escape, uint res_length, char *min_str, char *max_str, diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 5473a15e4fe..52c66f0ad4e 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -85,3 +85,26 @@ int my_strncasecmp_8bit(CHARSET_INFO * cs, while (len-- != 0 && my_toupper(cs,(uchar)*s++) == my_toupper(cs,(uchar)*t++)) ; return (int) len+1; } + +int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc, + const unsigned char *str, + const unsigned char *end __attribute__((unused))) +{ + *wc=cs->tab_to_uni[*str]; + return (!wc[0] && str[0]) ? MY_CS_ILSEQ : 1; +} + +int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc, + unsigned char *s, + unsigned char *e __attribute__((unused))) +{ + MY_UNI_IDX *idx; + + for(idx=cs->tab_from_uni; idx->tab ; idx++){ + if(idx->from<=wc && idx->to>=wc){ + s[0]=idx->tab[wc-idx->from]; + return (!s[0] && wc) ? MY_CS_ILUNI : 1; + } + } + return MY_CS_ILUNI; +} diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index 3d74ddceda7..0d99ed452cf 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -183,17 +183,18 @@ uchar NEAR sort_order_sjis[]= (0x80<=(c) && (c)<=0xfc)) -int ismbchar_sjis(CHARSET_INFO *cs,const char* p, const char *e) +int ismbchar_sjis(CHARSET_INFO *cs __attribute__((unused)), + const char* p, const char *e) { return (issjishead((uchar) *p) && (e-p)>1 && issjistail((uchar)p[1]) ? 2: 0); } -my_bool ismbhead_sjis(CHARSET_INFO *cs,uint c) +my_bool ismbhead_sjis(CHARSET_INFO *cs __attribute__((unused)),uint c) { return issjishead((uchar) c); } -int mbcharlen_sjis(CHARSET_INFO *cs,uint c) +int mbcharlen_sjis(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (issjishead((uchar) c) ? 2: 0); } @@ -201,7 +202,7 @@ int mbcharlen_sjis(CHARSET_INFO *cs,uint c) #define sjiscode(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d)) -int my_strnncoll_sjis(CHARSET_INFO *cs, +int my_strnncoll_sjis(CHARSET_INFO *cs __attribute__((unused)), const uchar *s1, uint len1, const uchar *s2, uint len2) { @@ -226,7 +227,7 @@ int my_strnncoll_sjis(CHARSET_INFO *cs, return len1 - len2; } -int my_strnxfrm_sjis(CHARSET_INFO *cs, +int my_strnxfrm_sjis(CHARSET_INFO *cs __attribute__((unused)), uchar *dest, uint len, const uchar *src, uint srclen) { @@ -265,7 +266,7 @@ int my_strnxfrm_sjis(CHARSET_INFO *cs, #define wild_one '_' #define wild_many '%' -my_bool my_like_range_sjis(CHARSET_INFO *cs, +my_bool my_like_range_sjis(CHARSET_INFO *cs __attribute__((unused)), const char *ptr,uint ptr_length,pchar escape, uint res_length, char *min_str,char *max_str, uint *min_length,uint *max_length) diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c index 5df8b1d8cc6..8510ba21d0a 100644 --- a/strings/ctype-tis620.c +++ b/strings/ctype-tis620.c @@ -537,7 +537,7 @@ static uchar* thai2sortable(const uchar * tstr,uint len) Arg: 2 Strings and it compare length Ret: strcmp result */ -int my_strnncoll_tis620(CHARSET_INFO *cs, +int my_strnncoll_tis620(CHARSET_INFO *cs __attribute__((unused)), const uchar * s1, uint len1, const uchar * s2, uint len2) { @@ -555,7 +555,7 @@ int my_strnncoll_tis620(CHARSET_INFO *cs, Arg: Destination buffer, source string, dest length and source length Ret: Conveted string size */ -int my_strnxfrm_tis620(CHARSET_INFO *cs, +int my_strnxfrm_tis620(CHARSET_INFO *cs __attribute__((unused)), uchar * dest, uint len, const uchar * src, uint srclen) { @@ -613,7 +613,7 @@ int my_strxfrm_tis620(uchar * dest, const uchar * src, int len) #define wild_one '_' #define wild_many '%' -my_bool my_like_range_tis620(CHARSET_INFO *cs, +my_bool my_like_range_tis620(CHARSET_INFO *cs __attribute__((unused)), const char *ptr, uint ptr_length, pchar escape, uint res_length, char *min_str, char *max_str, uint *min_length, uint *max_length) diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index 5398b93816e..fb8804c2253 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -183,7 +183,8 @@ uchar NEAR sort_order_ujis[]= #define isujis_ss3(c) (((c)&0xff) == 0x8f) -int ismbchar_ujis(CHARSET_INFO *cs,const char* p, const char *e) +int ismbchar_ujis(CHARSET_INFO *cs __attribute__((unused)), + const char* p, const char *e) { return ((*(uchar*)(p)<0x80)? 0:\ isujis(*(p)) && (e)-(p)>1 && isujis(*((p)+1))? 2:\ @@ -192,12 +193,12 @@ int ismbchar_ujis(CHARSET_INFO *cs,const char* p, const char *e) 0); } -my_bool ismbhead_ujis(CHARSET_INFO *cs,uint c) +my_bool ismbhead_ujis(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (isujis(c) || isujis_ss2(c) || isujis_ss3(c)); } -int mbcharlen_ujis(CHARSET_INFO *cs,uint c) +int mbcharlen_ujis(CHARSET_INFO *cs __attribute__((unused)),uint c) { return (isujis(c)? 2: isujis_ss2(c)? 2: isujis_ss3(c)? 3: 0); } diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 6070f2ecb5c..ab2a2db9acc 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -1571,7 +1571,7 @@ uchar to_upper_utf8[] = { }; -int my_utf8_uni (__attribute__((unused)) CHARSET_INFO *cs, +int my_utf8_uni (CHARSET_INFO *cs __attribute__((unused)) , my_wc_t * pwc, const uchar *s, const uchar *e) { unsigned char c = s[0]; @@ -1673,7 +1673,7 @@ int my_utf8_uni (__attribute__((unused)) CHARSET_INFO *cs, return MY_CS_ILSEQ; } -int my_uni_utf8 (__attribute__((unused)) CHARSET_INFO *cs, +int my_uni_utf8 (CHARSET_INFO *cs __attribute__((unused)) , my_wc_t wc, uchar *r, uchar *e) { int count; @@ -1879,12 +1879,12 @@ int my_ismbchar_utf8(CHARSET_INFO *cs,const char *b, const char *e) return (res>1) ? res : 0; } -my_bool my_ismbhead_utf8(__attribute__((unused)) CHARSET_INFO *cs, uint ch) +my_bool my_ismbhead_utf8(CHARSET_INFO *cs __attribute__((unused)) , uint ch) { return ( ch >= 0xc2 ); } -int my_mbcharlen_utf8(__attribute__((unused)) CHARSET_INFO *cs, uint c) +int my_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)) , uint c) { if (c < 0x80) return 1; diff --git a/strings/ctype.c b/strings/ctype.c index 9fed9ebafb6..5972dfdeafa 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -20,6 +20,235 @@ #include <m_string.h> #endif +#if defined(HAVE_CHARSET_latin1)||defined(HAVE_CHARSET_latin1_de)||\ +defined(HAVE_CHARSET_danish)||defined(HAVE_CHARSET_german1) + +static uint16 tab_8859_1_uni[256]={ + 0,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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF +}; + +static uchar tab_uni_8859_1_plane00[]={ +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,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,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,0xDB,0xDC,0xDD,0xDE,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,0xFC,0xFD,0xFE,0xFF}; + +static MY_UNI_IDX idx_uni_8859_1[]={ + {0x0000,0x00FF,tab_uni_8859_1_plane00}, + {0,0,NULL} +}; +#endif + +#if defined(HAVE_CHARSET_latin2)||defined(HAVE_CHARSET_croat)||\ +defined(HAVE_CHARSET_hungarian)||defined(HAVE_CHARSET_czech) + +static uint16 tab_8859_2_uni[256]={ + 0,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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7, +0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B, +0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7, +0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + + +/* 0000-00FD , 254 chars */ +static uchar tab_uni_8859_2_plane00[]={ +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,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0x00,0x00,0x00,0xA4,0x00,0x00,0xA7,0xA8,0x00,0x00,0x00,0x00,0xAD,0x00,0x00, +0xB0,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xC1,0xC2,0x00,0xC4,0x00,0x00,0xC7,0x00,0xC9,0x00,0xCB,0x00,0xCD,0xCE,0x00, +0x00,0x00,0x00,0xD3,0xD4,0x00,0xD6,0xD7,0x00,0x00,0xDA,0x00,0xDC,0xDD,0x00,0xDF, +0x00,0xE1,0xE2,0x00,0xE4,0x00,0x00,0xE7,0x00,0xE9,0x00,0xEB,0x00,0xED,0xEE,0x00, +0x00,0x00,0x00,0xF3,0xF4,0x00,0xF6,0xF7,0x00,0x00,0xFA,0x00,0xFC,0xFD}; + +/* 0102-017E , 125 chars */ +static uchar tab_uni_8859_2_plane01[]={ +0xC3,0xE3,0xA1,0xB1,0xC6,0xE6,0x00,0x00,0x00,0x00,0xC8,0xE8,0xCF,0xEF,0xD0,0xF0, +0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC5,0xE5,0x00,0x00,0xA5,0xB5,0x00,0x00,0xA3, +0xB3,0xD1,0xF1,0x00,0x00,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD5,0xF5, +0x00,0x00,0xC0,0xE0,0x00,0x00,0xD8,0xF8,0xA6,0xB6,0x00,0x00,0xAA,0xBA,0xA9,0xB9, +0xDE,0xFE,0xAB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD9,0xF9,0xDB,0xFB, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAC,0xBC,0xAF,0xBF,0xAE,0xBE}; + +/* 02C7-02DD , 23 chars */ +static uchar tab_uni_8859_2_plane02[]={ +0xB7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xA2,0xFF,0x00,0xB2,0x00,0xBD}; + +static MY_UNI_IDX idx_uni_8859_2[]={ + {0x0000,0x00FD,tab_uni_8859_2_plane00}, + {0x0102,0x017E,tab_uni_8859_2_plane01}, + {0x02C7,0x02DD,tab_uni_8859_2_plane02}, + {0,0,NULL} +}; +#endif + +#if defined(HAVE_CHARSET_cp1251) || defined(HAVE_CHARSET_win1251) || defined(HAVE_CHARSET_win1251ukr) +static uint16 tab_cp1251_uni[256]={ + 0,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, +0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, + 0,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, +0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, + 0,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, +0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, +0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, +0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, +0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, +0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, +0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, +0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F +}; + +/* 0000-00BB , 188 chars */ +static uchar tab_uni_cp1251_plane00[]={ +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, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0x00,0x00,0x00,0xA4,0x00,0xA6,0xA7,0x00,0xA9,0x00,0xAB,0xAC,0xAD,0xAE,0x00, +0xB0,0xB1,0x00,0x00,0x00,0xB5,0xB6,0xB7,0x00,0x00,0x00,0xBB}; + +/* 0401-0491 , 145 chars */ +static uchar tab_uni_cp1251_plane04[]={ +0xA8,0x80,0x81,0xAA,0xBD,0xB2,0xAF,0xA3,0x8A,0x8C,0x8E,0x8D,0x00,0xA1,0x8F,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,0xDB,0xDC,0xDD,0xDE,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,0xFC,0xFD,0xFE,0xFF,0x00, +0xB8,0x90,0x83,0xBA,0xBE,0xB3,0xBF,0xBC,0x9A,0x9C,0x9E,0x9D,0x00,0xA2,0x9F,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA5, +0xB4}; + +/* 2013-203A , 40 chars */ +static uchar tab_uni_cp1251_plane20[]={ +0x96,0x97,0x00,0x00,0x00,0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00,0x86,0x87,0x95, +0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x8B,0x9B}; + +/* 2116-2122 , 13 chars */ +static uchar tab_uni_cp1251_plane21[]={ +0xB9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99}; + +static MY_UNI_IDX idx_uni_cp1251[]={ + {0x0000,0x00BB,tab_uni_cp1251_plane00}, + {0x0401,0x0491,tab_uni_cp1251_plane04}, + {0x2013,0x203A,tab_uni_cp1251_plane20}, + {0x2116,0x2122,tab_uni_cp1251_plane21}, + {0,0,NULL} +}; +#endif + + + #ifdef HAVE_CHARSET_armscii8 static uchar ctype_armscii8[] = { 0, @@ -97,6 +326,85 @@ static uchar sort_order_armscii8[] = { 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; + +static uint16 tab_armscii_8_uni[256]={ + 0,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,0x2741,0x00A7,0x0589,0x0029,0x0028,0x00BB,0x00AB, +0x2014,0x002E,0x055D,0x002C,0x002D,0x055F,0x2026,0x055C, +0x055B,0x055E,0x0531,0x0561,0x0532,0x0562,0x0533,0x0563, +0x0534,0x0564,0x0535,0x0565,0x0536,0x0566,0x0537,0x0567, +0x0538,0x0568,0x0539,0x0569,0x053A,0x056A,0x053B,0x056B, +0x053C,0x056C,0x053D,0x056D,0x053E,0x056E,0x053F,0x056F, +0x0540,0x0570,0x0541,0x0571,0x0542,0x0572,0x0543,0x0573, +0x0544,0x0574,0x0545,0x0575,0x0546,0x0576,0x0547,0x0577, +0x0548,0x0578,0x0549,0x0579,0x054A,0x057A,0x054B,0x057B, +0x054C,0x057C,0x054D,0x057D,0x054E,0x057E,0x054F,0x057F, +0x0550,0x0580,0x0551,0x0581,0x0552,0x0582,0x0553,0x0583, +0x0554,0x0584,0x0555,0x0585,0x0556,0x0586,0x2019,0x0027 +}; + + +/* 0000-00BB , 188 chars */ +static uchar tab_uni_armscii_8_plane00[]={ +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,0xFF,0xA5,0xA4,0x2A,0x2B,0xAB,0xAC,0xA9,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,0x00,0x00,0x00,0x00,0x00,0x00,0xA2,0x00,0x00,0x00,0xA7,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA6}; + +/* 0531-0589 , 89 chars */ +static uchar tab_uni_armscii_8_plane05[]={ +0xB2,0xB4,0xB6,0xB8,0xBA,0xBC,0xBE,0xC0,0xC2,0xC4,0xC6,0xC8,0xCA,0xCC,0xCE,0xD0, +0xD2,0xD4,0xD6,0xD8,0xDA,0xDC,0xDE,0xE0,0xE2,0xE4,0xE6,0xE8,0xEA,0xEC,0xEE,0xF0, +0xF2,0xF4,0xF6,0xF8,0xFA,0xFC,0x00,0x00,0x00,0x00,0xB0,0xAF,0xAA,0xB1,0xAD,0x00, +0xB3,0xB5,0xB7,0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1, +0xD3,0xD5,0xD7,0xD9,0xDB,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEB,0xED,0xEF,0xF1, +0xF3,0xF5,0xF7,0xF9,0xFB,0xFD,0x00,0x00,0xA3}; + +/* 2014-2026 , 19 chars */ +static uchar tab_uni_armscii_8_plane20[]={ +0xA8,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xAE}; + +/* 2741-2741 , 1 chars */ +static uchar tab_uni_armscii_8_plane27[]={ +0xA1}; + + +static MY_UNI_IDX idx_uni_armscii_8[]={ + {0x0000,0x00BB,tab_uni_armscii_8_plane00}, + {0x0531,0x0589,tab_uni_armscii_8_plane05}, + {0x2014,0x2026,tab_uni_armscii_8_plane20}, + {0x2741,0x2741,tab_uni_armscii_8_plane27}, + {0,0,NULL} +}; + #endif @@ -182,6 +490,7 @@ static uchar sort_order_cp1251[] = { 91, 92, 93, 94, 95, 96, 98, 99,100,101,102,103,104,105,106,107, 108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123 }; + #endif @@ -267,6 +576,104 @@ static uchar sort_order_cp1257[] = { 255, 79,255,255,255,255, 72,255, 69,255,255, 73,255,255,255,255, 90,255,255,255,255,255,255,255, 94,255,255, 93,255,255,255,255 }; + +static uint16 tab_cp1257_uni[256]={ + 0,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, +0x20AC, 0,0x201A, 0,0x201E,0x2026,0x2020,0x2021, + 0,0x2030, 0,0x2039, 0,0x00A8,0x02C7,0x00B8, + 0,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, + 0,0x2122, 0,0x203A, 0,0x00AF,0x02DB, 0, +0x00A0, 0,0x00A2,0x00A3,0x00A4, 0,0x00A6,0x00A7, +0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6, +0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112, +0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B, +0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7, +0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF, +0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113, +0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C, +0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7, +0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9 +}; + + +/* 0000-00FC , 253 chars */ +static uchar tab_uni_cp1257_plane00[]={ +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, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0x00,0xA2,0xA3,0xA4,0x00,0xA6,0xA7,0x8D,0xA9,0x00,0xAB,0xAC,0xAD,0xAE,0x9D, +0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0x8F,0xB9,0x00,0xBB,0xBC,0xBD,0xBE,0x00, +0x00,0x00,0x00,0x00,0xC4,0xC5,0xAF,0x00,0x00,0xC9,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xD3,0x00,0xD5,0xD6,0xD7,0xA8,0x00,0x00,0x00,0xDC,0x00,0x00,0xDF, +0x00,0x00,0x00,0x00,0xE4,0xE5,0xBF,0x00,0x00,0xE9,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xF3,0x00,0xF5,0xF6,0xF7,0xB8,0x00,0x00,0x00,0xFC}; + +/* 0100-017E , 127 chars */ +static uchar tab_uni_cp1257_plane01[]={ +0xC2,0xE2,0x00,0x00,0xC0,0xE0,0xC3,0xE3,0x00,0x00,0x00,0x00,0xC8,0xE8,0x00,0x00, +0x00,0x00,0xC7,0xE7,0x00,0x00,0xCB,0xEB,0xC6,0xE6,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0xCE,0xEE,0x00,0x00,0xC1,0xE1, +0x00,0x00,0x00,0x00,0x00,0x00,0xCD,0xED,0x00,0x00,0x00,0xCF,0xEF,0x00,0x00,0x00, +0x00,0xD9,0xF9,0xD1,0xF1,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0xD4,0xF4,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0xBA,0x00,0x00,0xDA,0xFA,0x00,0x00,0x00,0x00, +0xD0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDB,0xFB,0x00,0x00,0x00,0x00, +0x00,0x00,0xD8,0xF8,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xDD,0xFD,0xDE,0xFE}; + +/* 2013-20AC , 154 chars */ +static uchar tab_uni_cp1257_plane20[]={ +0x96,0x97,0x00,0x00,0x00,0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00,0x86,0x87,0x95, +0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x8B,0x9B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80}; + +/* 02C7-02DB , 21 chars */ +static uchar tab_uni_cp1257_plane02[]={ +0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xFF,0x00,0x9E}; + +/* 2122-2122 , 1 chars */ +static uchar tab_uni_cp1257_plane21[]={ +0x99}; + +static MY_UNI_IDX idx_uni_cp1257[]={ + {0x0000,0x00FC,tab_uni_cp1257_plane00}, + {0x0100,0x017E,tab_uni_cp1257_plane01}, + {0x2013,0x20AC,tab_uni_cp1257_plane20}, + {0x02C7,0x02DB,tab_uni_cp1257_plane02}, + {0x2122,0x2122,tab_uni_cp1257_plane21}, + {0,0,NULL} +}; + #endif @@ -1196,6 +1603,107 @@ static uchar sort_order_koi8_ru[] = { 254,223,224,246,227,228,244,226,245,232,233,234,235,236,237,238, 239,255,240,241,242,243,230,225,252,251,231,248,253,249,247,250 }; + +static uint16 tab_koi8_r_uni[256]={ + 0,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, +0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, +0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, +0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248, +0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, +0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556, +0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E, +0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565, +0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9, +0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, +0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A +}; + + +/* 0000-00F7 , 248 chars */ +static uchar tab_uni_koi8_r_plane00[]={ +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, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x9A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0x00,0x00,0x00,0x00,0x00,0x00, +0x9C,0x00,0x9D,0x00,0x00,0x00,0x00,0x9E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9F}; + +/* 0401-0451 , 81 chars */ +static uchar tab_uni_koi8_r_plane04[]={ +0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE1, +0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF2, +0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1,0xC1, +0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD2, +0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1,0x00, +0xA3}; + +/* 2500-25A0 , 161 chars */ +static uchar tab_uni_koi8_r_plane25[]={ +0x80,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8A,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0xA1,0xA2,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0, +0xB1,0xB2,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x8B,0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x8D,0x00,0x00,0x00,0x8E,0x00,0x00,0x00, +0x8F,0x90,0x91,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x94}; + +/* 2219-2265 , 77 chars */ +static uchar tab_uni_koi8_r_plane22[]={ +0x95,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x99}; + +/* 2320-2321 , 2 chars */ +static uchar tab_uni_koi8_r_plane23[]={ +0x93,0x9B}; + + +static MY_UNI_IDX idx_uni_koi8_r[]={ + {0x0000,0x00F7,tab_uni_koi8_r_plane00}, + {0x0401,0x0451,tab_uni_koi8_r_plane04}, + {0x2500,0x25A0,tab_uni_koi8_r_plane25}, + {0x2219,0x2265,tab_uni_koi8_r_plane22}, + {0x2320,0x2321,tab_uni_koi8_r_plane23}, + {0,0,NULL} +}; + #endif #ifdef HAVE_CHARSET_koi8_ukr @@ -1280,6 +1788,116 @@ static uchar sort_order_koi8_ukr[] = { 163,128,129,155,133,134,153,131,154,139,142,143,144,145,146,147, 148,164,149,150,151,152,137,130,161,160,138,157,162,158,156,159 }; + +static uint16 tab_koi8_u_uni[256]={ + 0,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, 0, +0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524, +0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590, +0x2591,0x2592,0x2593,0x2320,0x25A0,0x2022,0x221A,0x2248, +0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7, +0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457, +0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E, +0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407, +0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9, +0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E, +0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A, +0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E, +0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A +}; + + +/* 0000-00F7 , 248 chars */ +static uchar tab_uni_koi8_u_plane00[]={ +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,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x9A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0x00,0x00,0x00,0x00,0x00,0x00, +0x9C,0x00,0x9D,0x00,0x00,0x00,0x00,0x9E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9F}; + +/* 0401-0491 , 145 chars */ +static uchar tab_uni_koi8_u_plane04[]={ +0xB3,0x00,0x00,0xB4,0x00,0xB6,0xB7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE1, +0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF2, +0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1,0xC1, +0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD2, +0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1,0x00, +0xA3,0x00,0x00,0xA4,0x00,0xA6,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBD, +0xAD}; + +/* 2500-25A0 , 161 chars */ +static uchar tab_uni_koi8_u_plane25[]={ +0x80,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x00,0x00, +0x83,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x86,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8A,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0xA1,0xA2,0x00,0xA5,0x00,0x00,0xA8,0xA9,0xAA,0xAB,0xAC,0x00,0xAE,0xAF,0xB0, +0xB1,0xB2,0x00,0xB5,0x00,0x00,0xB8,0xB9,0xBA,0xBB,0xBC,0x00,0xBE,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x8B,0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x8D,0x00,0x00,0x00,0x8E,0x00,0x00,0x00, +0x8F,0x90,0x91,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x94}; + +/* 221A-2265 , 76 chars */ +static uchar tab_uni_koi8_u_plane22[]={ +0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x99}; + +/* 2320-2321 , 2 chars */ +static uchar tab_uni_koi8_u_plane23[]={ +0x93,0x9B}; + +/* 2022-2022 , 1 chars */ +static uchar tab_uni_koi8_u_plane20[]={ +0x95}; + + +static MY_UNI_IDX idx_uni_koi8_u[]={ + {0x0000,0x00F7,tab_uni_koi8_u_plane00}, + {0x0401,0x0491,tab_uni_koi8_u_plane04}, + {0x2500,0x25A0,tab_uni_koi8_u_plane25}, + {0x221A,0x2265,tab_uni_koi8_u_plane22}, + {0x2320,0x2321,tab_uni_koi8_u_plane23}, + {0x2022,0x2022,tab_uni_koi8_u_plane20}, + {0,0,NULL} +}; + #endif #ifdef HAVE_CHARSET_latin1 @@ -1532,6 +2150,77 @@ static uchar sort_order_latin5[] = { 204,205,206,207,208,209,210, 68,211,212,213,214,215,216,217,218, 73,219,220,221,222,223, 83,250,225,226,227,228, 91, 75, 88,255 }; + +static uint16 tab_8859_9_uni[256]={ + 0,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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, +0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, +0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, +0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF, +0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7, +0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF, +0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7, +0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF, +0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7, +0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF, +0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7, +0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF +}; + + +/* 0000-00FF , 256 chars */ +static uchar tab_uni_8859_9_plane00[]={ +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,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,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, +0x00,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0x00,0x00,0xDF, +0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, +0x00,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0x00,0x00,0xFF}; + +/* 011E-015F , 66 chars */ +static uchar tab_uni_8859_9_plane01[]={ +0xD0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xDD,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xDE,0xFE}; + + +static MY_UNI_IDX idx_uni_8859_9[]={ + {0x0000,0x00FF,tab_uni_8859_9_plane00}, + {0x011E,0x015F,tab_uni_8859_9_plane01}, + {0,0,NULL} +}; + #endif #ifdef HAVE_CHARSET_swe7 @@ -1700,6 +2389,60 @@ static uchar sort_order_usa7[] = { 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; + +static uint16 tab_us_ascii_uni[256]={ + 0,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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; + + +/* 0000-007E , 127 chars */ +static uchar tab_uni_us_ascii_plane00[]={ +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}; + + +static MY_UNI_IDX idx_uni_us_ascii[]={ + {0x0000,0x007E,tab_uni_us_ascii_plane00}, + {0,0,NULL} +}; + #endif #ifdef HAVE_CHARSET_win1250 @@ -1784,6 +2527,105 @@ static uchar sort_order_win1250[] = { 88, 65, 65, 65, 65, 80, 69, 67, 68, 73, 73, 73, 73, 77, 77, 70, 71, 83, 83, 85, 85, 85, 85,247, 88, 92, 92, 92, 92, 96, 91,255 }; + +static uint16 tab_cp1250_uni[256]={ + 0,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, +0x20AC, 0,0x201A, 0,0x201E,0x2026,0x2020,0x2021, + 0,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179, + 0,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, + 0,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A, +0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7, +0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B, +0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7, +0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C, +0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7, +0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E, +0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7, +0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF, +0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7, +0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F, +0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7, +0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9 +}; + + +/* 0000-00FD , 254 chars */ +static uchar tab_uni_cp1250_plane00[]={ +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, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xA0,0x00,0x00,0x00,0xA4,0x00,0xA6,0xA7,0xA8,0xA9,0x00,0xAB,0xAC,0xAD,0xAE,0x00, +0xB0,0xB1,0x00,0x00,0xB4,0xB5,0xB6,0xB7,0xB8,0x00,0x00,0xBB,0x00,0x00,0x00,0x00, +0x00,0xC1,0xC2,0x00,0xC4,0x00,0x00,0xC7,0x00,0xC9,0x00,0xCB,0x00,0xCD,0xCE,0x00, +0x00,0x00,0x00,0xD3,0xD4,0x00,0xD6,0xD7,0x00,0x00,0xDA,0x00,0xDC,0xDD,0x00,0xDF, +0x00,0xE1,0xE2,0x00,0xE4,0x00,0x00,0xE7,0x00,0xE9,0x00,0xEB,0x00,0xED,0xEE,0x00, +0x00,0x00,0x00,0xF3,0xF4,0x00,0xF6,0xF7,0x00,0x00,0xFA,0x00,0xFC,0xFD}; + +/* 0102-017E , 125 chars */ +static uchar tab_uni_cp1250_plane01[]={ +0xC3,0xE3,0xA5,0xB9,0xC6,0xE6,0x00,0x00,0x00,0x00,0xC8,0xE8,0xCF,0xEF,0xD0,0xF0, +0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC5,0xE5,0x00,0x00,0xBC,0xBE,0x00,0x00,0xA3, +0xB3,0xD1,0xF1,0x00,0x00,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD5,0xF5, +0x00,0x00,0xC0,0xE0,0x00,0x00,0xD8,0xF8,0x8C,0x9C,0x00,0x00,0xAA,0xBA,0x8A,0x9A, +0xDE,0xFE,0x8D,0x9D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD9,0xF9,0xDB,0xFB, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8F,0x9F,0xAF,0xBF,0x8E,0x9E}; + +/* 2013-20AC , 154 chars */ +static uchar tab_uni_cp1250_plane20[]={ +0x96,0x97,0x00,0x00,0x00,0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00,0x86,0x87,0x95, +0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x8B,0x9B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80}; + +/* 02C7-02DD , 23 chars */ +static uchar tab_uni_cp1250_plane02[]={ +0xA1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xA2,0xFF,0x00,0xB2,0x00,0xBD}; + +/* 2122-2122 , 1 chars */ +static uchar tab_uni_cp1250_plane21[]={ +0x99}; + + +static MY_UNI_IDX idx_uni_cp1250[]={ + {0x0000,0x00FD,tab_uni_cp1250_plane00}, + {0x0102,0x017E,tab_uni_cp1250_plane01}, + {0x2013,0x20AC,tab_uni_cp1250_plane20}, + {0x02C7,0x02DD,tab_uni_cp1250_plane02}, + {0x2122,0x2122,tab_uni_cp1250_plane21}, + {0,0,NULL} +}; + #endif #ifdef HAVE_CHARSET_win1251 @@ -1966,14 +2808,18 @@ CHARSET_INFO compiled_charsets[] = { to_lower_latin1, to_upper_latin1, sort_order_latin1, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_1_uni, /* tab_to_uni */ + idx_uni_8859_1, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -1986,20 +2832,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_big5 { - 1, /* number */ - "big5", /* name */ + 1, /* number */ + "big5", /* name */ ctype_big5, to_lower_big5, to_upper_big5, sort_order_big5, - 1, /* strxfrm_multiply */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 1, /* strxfrm_multiply */ my_strnncoll_big5, my_strnxfrm_big5, my_like_range_big5, - 2, /* mbmaxlen */ + 2, /* mbmaxlen */ ismbchar_big5, ismbhead_big5, mbcharlen_big5, + NULL, /* mb_wc */ + NULL, /* wc_mb */ my_caseup_str_mb, my_casedn_str_mb, my_caseup_mb, @@ -2012,20 +2862,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_cp1251 { - 14, /* number */ - "cp1251", /* name */ + 14, /* number */ + "cp1251", /* name */ ctype_cp1251, to_lower_cp1251, to_upper_cp1251, sort_order_cp1251, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_cp1251_uni, /* tab_to_uni */ + idx_uni_cp1251, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2038,20 +2892,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_cp1257 { - 29, /* number */ - "cp1257", /* name */ + 29, /* number */ + "cp1257", /* name */ ctype_cp1257, to_lower_cp1257, to_upper_cp1257, sort_order_cp1257, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_cp1257_uni, /* tab_to_uni */ + idx_uni_cp1257, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2064,20 +2922,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_croat { - 27, /* number */ - "croat", /* name */ + 27, /* number */ + "croat", /* name */ ctype_croat, to_lower_croat, to_upper_croat, sort_order_croat, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_2_uni, /* tab_to_uni */ + idx_uni_8859_2, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2090,20 +2952,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_czech { - 2, /* number */ - "czech", /* name */ + 2, /* number */ + "czech", /* name */ ctype_czech, to_lower_czech, to_upper_czech, sort_order_czech, - 4, /* strxfrm_multiply */ + tab_8859_2_uni, /* tab_to_uni */ + idx_uni_8859_2, /* tab_from_uni */ + 4, /* strxfrm_multiply */ my_strnncoll_czech, my_strnxfrm_czech, my_like_range_czech, - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2116,20 +2982,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_danish { - 15, /* number */ - "danish", /* name */ + 15, /* number */ + "danish", /* name */ ctype_danish, to_lower_danish, to_upper_danish, sort_order_danish, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_1_uni, /* tab_to_uni */ + idx_uni_8859_1, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2142,20 +3012,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_dec8 { - 3, /* number */ - "dec8", /* name */ + 3, /* number */ + "dec8", /* name */ ctype_dec8, to_lower_dec8, to_upper_dec8, sort_order_dec8, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2168,20 +3042,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_dos { - 4, /* number */ - "dos", /* name */ + 4, /* number */ + "dos", /* name */ ctype_dos, to_lower_dos, to_upper_dos, sort_order_dos, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2194,20 +3072,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_estonia { - 20, /* number */ - "estonia", /* name */ + 20, /* number */ + "estonia", /* name */ ctype_estonia, to_lower_estonia, to_upper_estonia, sort_order_estonia, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2220,20 +3102,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_euc_kr { - 19, /* number */ - "euc_kr", /* name */ + 19, /* number */ + "euc_kr", /* name */ ctype_euc_kr, to_lower_euc_kr, to_upper_euc_kr, sort_order_euc_kr, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 2, /* mbmaxlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 2, /* mbmaxlen */ ismbchar_euc_kr, ismbhead_euc_kr, mbcharlen_euc_kr, + NULL, /* mb_wc */ + NULL, /* wc_mb */ my_caseup_str_mb, my_casedn_str_mb, my_caseup_mb, @@ -2246,20 +3132,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_gb2312 { - 24, /* number */ - "gb2312", /* name */ + 24, /* number */ + "gb2312", /* name */ ctype_gb2312, to_lower_gb2312, to_upper_gb2312, sort_order_gb2312, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 2, /* mbmaxlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 2, /* mbmaxlen */ ismbchar_gb2312, ismbhead_gb2312, mbcharlen_gb2312, + NULL, /* mb_wc */ + NULL, /* wc_mb */ my_caseup_str_mb, my_casedn_str_mb, my_caseup_mb, @@ -2272,20 +3162,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_gbk { - 28, /* number */ - "gbk", /* name */ + 28, /* number */ + "gbk", /* name */ ctype_gbk, to_lower_gbk, to_upper_gbk, sort_order_gbk, - 1, /* strxfrm_multiply */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 1, /* strxfrm_multiply */ my_strnncoll_gbk, my_strnxfrm_gbk, my_like_range_gbk, - 2, /* mbmaxlen */ + 2, /* mbmaxlen */ ismbchar_gbk, ismbhead_gbk, mbcharlen_gbk, + NULL, /* mb_wc */ + NULL, /* wc_mb */ my_caseup_str_mb, my_casedn_str_mb, my_caseup_mb, @@ -2298,20 +3192,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_german1 { - 5, /* number */ - "german1", /* name */ + 5, /* number */ + "german1", /* name */ ctype_german1, to_lower_german1, to_upper_german1, sort_order_german1, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_1_uni, /* tab_to_uni */ + idx_uni_8859_1, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2324,20 +3222,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_greek { - 25, /* number */ - "greek", /* name */ + 25, /* number */ + "greek", /* name */ ctype_greek, to_lower_greek, to_upper_greek, sort_order_greek, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2350,20 +3252,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_hebrew { - 16, /* number */ - "hebrew", /* name */ + 16, /* number */ + "hebrew", /* name */ ctype_hebrew, to_lower_hebrew, to_upper_hebrew, sort_order_hebrew, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2376,20 +3282,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_hp8 { - 6, /* number */ - "hp8", /* name */ + 6, /* number */ + "hp8", /* name */ ctype_hp8, to_lower_hp8, to_upper_hp8, sort_order_hp8, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2402,20 +3312,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_hungarian { - 21, /* number */ - "hungarian", /* name */ + 21, /* number */ + "hungarian", /* name */ ctype_hungarian, to_lower_hungarian, to_upper_hungarian, sort_order_hungarian, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_2_uni, /* tab_to_uni */ + idx_uni_8859_2, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2428,20 +3342,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_koi8_ru { - 7, /* number */ - "koi8_ru", /* name */ + 7, /* number */ + "koi8_ru", /* name */ ctype_koi8_ru, to_lower_koi8_ru, to_upper_koi8_ru, sort_order_koi8_ru, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_koi8_r_uni, /* tab_to_uni */ + idx_uni_koi8_r, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2454,20 +3372,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_koi8_ukr { - 22, /* number */ - "koi8_ukr", /* name */ + 22, /* number */ + "koi8_ukr", /* name */ ctype_koi8_ukr, to_lower_koi8_ukr, to_upper_koi8_ukr, sort_order_koi8_ukr, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_koi8_u_uni, /* tab_to_uni */ + idx_uni_koi8_u, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2480,20 +3402,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_latin1_de { - 31, /* number */ - "latin1_de", /* name */ + 31, /* number */ + "latin1_de", /* name */ ctype_latin1_de, to_lower_latin1_de, to_upper_latin1_de, sort_order_latin1_de, - 2, /* strxfrm_multiply */ + tab_8859_1_uni, /* tab_to_uni */ + idx_uni_8859_1, /* tab_from_uni */ + 2, /* strxfrm_multiply */ my_strnncoll_latin1_de, my_strnxfrm_latin1_de, my_like_range_latin1_de, - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2506,20 +3432,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_latin2 { - 9, /* number */ - "latin2", /* name */ + 9, /* number */ + "latin2", /* name */ ctype_latin2, to_lower_latin2, to_upper_latin2, sort_order_latin2, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_2_uni, /* tab_to_uni */ + idx_uni_8859_2, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2532,20 +3462,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_latin5 { - 30, /* number */ - "latin5", /* name */ + 30, /* number */ + "latin5", /* name */ ctype_latin5, to_lower_latin5, to_upper_latin5, sort_order_latin5, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_8859_9_uni, /* tab_to_uni */ + idx_uni_8859_9, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2558,20 +3492,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_sjis { - 13, /* number */ - "sjis", /* name */ + 13, /* number */ + "sjis", /* name */ ctype_sjis, to_lower_sjis, to_upper_sjis, sort_order_sjis, - 1, /* strxfrm_multiply */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 1, /* strxfrm_multiply */ my_strnncoll_sjis, my_strnxfrm_sjis, my_like_range_sjis, - 2, /* mbmaxlen */ + 2, /* mbmaxlen */ ismbchar_sjis, ismbhead_sjis, mbcharlen_sjis, + NULL, /* mb_wc */ + NULL, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2584,20 +3522,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_swe7 { - 10, /* number */ - "swe7", /* name */ + 10, /* number */ + "swe7", /* name */ ctype_swe7, to_lower_swe7, to_upper_swe7, sort_order_swe7, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2610,20 +3552,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_tis620 { - 18, /* number */ - "tis620", /* name */ + 18, /* number */ + "tis620", /* name */ ctype_tis620, to_lower_tis620, to_upper_tis620, sort_order_tis620, - 4, /* strxfrm_multiply */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 4, /* strxfrm_multiply */ my_strnncoll_tis620, my_strnxfrm_tis620, my_like_range_tis620, - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2642,14 +3588,18 @@ CHARSET_INFO compiled_charsets[] = { to_lower_ujis, to_upper_ujis, sort_order_ujis, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 3, /* mbmaxlen */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 3, /* mbmaxlen */ ismbchar_ujis, ismbhead_ujis, mbcharlen_ujis, + NULL, /* mb_wc */ + NULL, /* wc_mb */ my_caseup_str_mb, my_casedn_str_mb, my_caseup_mb, @@ -2662,20 +3612,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_utf8 { - 33, /* number */ - "utf8", /* name */ - ctype_utf8, /* ctype */ - to_lower_utf8, /* to_lower */ - to_upper_utf8, /* to_upper */ - to_upper_utf8, /* sort_order */ - 1, /* strxfrm_multiply */ - my_strnncoll_utf8, /* strnncoll */ - my_strnxfrm_utf8, /* strnxfrm */ - NULL, /* like_range */ - 6, /* mbmaxlen */ - my_ismbchar_utf8, /* ismbchar */ - my_ismbhead_utf8, /* ismbhead */ - my_mbcharlen_utf8, /* mbcharlen */ + 33, /* number */ + "utf8", /* name */ + ctype_utf8, /* ctype */ + to_lower_utf8, /* to_lower */ + to_upper_utf8, /* to_upper */ + to_upper_utf8, /* sort_order */ + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ + 1, /* strxfrm_multiply */ + my_strnncoll_utf8, /* strnncoll */ + my_strnxfrm_utf8, /* strnxfrm */ + NULL, /* like_range */ + 6, /* mbmaxlen */ + my_ismbchar_utf8, /* ismbchar */ + my_ismbhead_utf8, /* ismbhead */ + my_mbcharlen_utf8, /* mbcharlen */ + my_utf8_uni, /* mb_wc */ + my_uni_utf8, /* wc_mb */ my_caseup_str_utf8, my_casedn_str_utf8, my_caseup_utf8, @@ -2688,20 +3642,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_usa7 { - 11, /* number */ - "usa7", /* name */ + 11, /* number */ + "usa7", /* name */ ctype_usa7, to_lower_usa7, to_upper_usa7, sort_order_usa7, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_us_ascii_uni, /* tab_to_uni */ + idx_uni_us_ascii, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2714,20 +3672,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_win1250 { - 26, /* number */ - "win1250", /* name */ + 26, /* number */ + "win1250", /* name */ ctype_win1250, to_lower_win1250, to_upper_win1250, sort_order_win1250, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_cp1250_uni, /* tab_to_uni */ + idx_uni_cp1250, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2740,20 +3702,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_win1251ukr { - 23, /* number */ - "win1251ukr", /* name */ + 23, /* number */ + "win1251ukr", /* name */ ctype_win1251ukr, to_lower_win1251ukr, to_upper_win1251ukr, sort_order_win1251ukr, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_cp1251_uni, /* tab_to_uni */ + idx_uni_cp1251, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2766,20 +3732,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_armscii8 { - 32, /* number */ - "armscii8", /* name */ + 32, /* number */ + "armscii8", /* name */ ctype_armscii8, to_lower_armscii8, to_upper_armscii8, sort_order_armscii8, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_armscii_8_uni, /* tab_to_uni */ + idx_uni_armscii_8, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2792,20 +3762,24 @@ CHARSET_INFO compiled_charsets[] = { #ifdef HAVE_CHARSET_win1251 { - 17, /* number */ - "win1251", /* name */ + 17, /* number */ + "win1251", /* name */ ctype_win1251, to_lower_win1251, to_upper_win1251, sort_order_win1251, - 0, /* strxfrm_multiply */ - NULL, /* strnncoll */ - NULL, /* strnxfrm */ - NULL, /* like_range */ - 0, /* mbmaxlen */ - NULL, /* ismbchar */ - NULL, /* ismbhead */ - NULL, /* mbcharlen */ + tab_cp1251_uni, /* tab_to_uni */ + idx_uni_cp1251, /* tab_from_uni */ + 0, /* strxfrm_multiply */ + NULL, /* strnncoll */ + NULL, /* strnxfrm */ + NULL, /* like_range */ + 0, /* mbmaxlen */ + NULL, /* ismbchar */ + NULL, /* ismbhead */ + NULL, /* mbcharlen */ + my_mb_wc_8bit, /* mb_wc */ + my_wc_mb_8bit, /* wc_mb */ my_caseup_str_8bit, my_casedn_str_8bit, my_caseup_8bit, @@ -2816,14 +3790,15 @@ CHARSET_INFO compiled_charsets[] = { }, #endif - { - 0, /* end-of-list marker */ + 0, /* end-of-list marker */ NullS, NULL, NULL, NULL, NULL, + NULL, /* tab_to_uni */ + NULL, /* tab_from_uni */ 0, NULL, NULL, @@ -2832,6 +3807,10 @@ CHARSET_INFO compiled_charsets[] = { NULL, NULL, NULL, + + NULL, /* mb_wc */ + NULL, /* wc_mb */ + NULL, NULL, NULL, |