1
by brian
clean slate |
1 |
/* Copyright (C) 2000 MySQL AB
|
2 |
||
3 |
This library is free software; you can redistribute it and/or
|
|
4 |
modify it under the terms of the GNU Library General Public
|
|
5 |
License as published by the Free Software Foundation; version 2
|
|
6 |
of the License.
|
|
7 |
||
8 |
This library is distributed in the hope that it will be useful,
|
|
9 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
11 |
Library General Public License for more details.
|
|
12 |
||
13 |
You should have received a copy of the GNU Library General Public
|
|
14 |
License along with this library; if not, write to the Free
|
|
1802.10.2
by Monty Taylor
Update all of the copyright headers to include the correct address. |
15 |
Software Foundation, Inc., 51 Franklin Place - Suite 330, Boston,
|
16 |
MA 02110-1301, USA */
|
|
1
by brian
clean slate |
17 |
|
18 |
/* UTF8 according RFC 2279 */
|
|
19 |
/* Written by Alexander Barkov <bar@udm.net> */
|
|
20 |
||
1241.9.1
by Monty Taylor
Removed global.h. Fixed all the headers. |
21 |
#include "config.h" |
1130.3.26
by Monty Taylor
Removed global.h from headers. |
22 |
|
1241.9.64
by Monty Taylor
Moved remaining non-public portions of mysys and mystrings to drizzled/internal. |
23 |
#include "drizzled/internal/m_string.h" |
1241.9.61
by Monty Taylor
No more mystrings in drizzled/ |
24 |
#include "drizzled/charset_info.h" |
1
by brian
clean slate |
25 |
#include <errno.h> |
26 |
||
1067.4.9
by Nathan Williams
Converted all usages of cmin/cmax in mystrings directory to use std::min/max |
27 |
#include <algorithm> |
28 |
||
1
by brian
clean slate |
29 |
#ifndef EILSEQ
|
30 |
#define EILSEQ ENOENT
|
|
31 |
#endif
|
|
32 |
||
33 |
||
34 |
#define MY_UTF8MB3_GENERAL_CI MY_UTF8MB3 "_general_ci"
|
|
35 |
#define MY_UTF8MB3_BIN MY_UTF8MB3 "_bin"
|
|
36 |
#define MY_UTF8MB4_GENERAL_CI MY_UTF8MB4 "_general_ci"
|
|
37 |
#define MY_UTF8MB4_BIN MY_UTF8MB4 "_bin"
|
|
38 |
||
39 |
||
1280.1.10
by Monty Taylor
Put everything in drizzled into drizzled namespace. |
40 |
using namespace std; |
41 |
||
42 |
namespace drizzled |
|
43 |
{
|
|
44 |
||
1085.1.2
by Monty Taylor
Fixed -Wmissing-declarations |
45 |
void my_hash_sort_utf8mb4(const CHARSET_INFO * const cs, |
46 |
const unsigned char *s, size_t slen, |
|
47 |
uint32_t *n1, uint32_t *n2); |
|
48 |
||
1
by brian
clean slate |
49 |
static MY_UNICASE_INFO plane00[]={ |
50 |
{0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, |
|
51 |
{0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, |
|
52 |
{0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, |
|
53 |
{0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, |
|
54 |
{0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, |
|
55 |
{0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, |
|
56 |
{0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, |
|
57 |
{0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, |
|
58 |
{0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, |
|
59 |
{0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, |
|
60 |
{0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, |
|
61 |
{0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, |
|
62 |
{0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, |
|
63 |
{0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, |
|
64 |
{0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, |
|
65 |
{0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, |
|
66 |
{0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, |
|
67 |
{0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, |
|
68 |
{0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, |
|
69 |
{0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, |
|
70 |
{0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, |
|
71 |
{0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, |
|
72 |
{0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, |
|
73 |
{0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, |
|
74 |
{0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, |
|
75 |
{0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, |
|
76 |
{0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, |
|
77 |
{0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, |
|
78 |
{0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, |
|
79 |
{0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, |
|
80 |
{0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, |
|
81 |
{0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, |
|
82 |
{0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, |
|
83 |
{0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, |
|
84 |
{0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, |
|
85 |
{0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, |
|
86 |
{0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, |
|
87 |
{0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, |
|
88 |
{0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, |
|
89 |
{0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, |
|
90 |
{0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, |
|
91 |
{0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, |
|
92 |
{0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, |
|
93 |
{0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, |
|
94 |
{0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, |
|
95 |
{0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, |
|
96 |
{0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, |
|
97 |
{0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, |
|
98 |
{0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, |
|
99 |
{0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, |
|
100 |
{0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, |
|
101 |
{0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, |
|
102 |
{0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, |
|
103 |
{0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, |
|
104 |
{0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, |
|
105 |
{0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, |
|
106 |
{0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, |
|
107 |
{0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, |
|
108 |
{0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, |
|
109 |
{0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, |
|
110 |
{0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, |
|
111 |
{0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, |
|
112 |
{0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, |
|
113 |
{0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, |
|
114 |
{0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, |
|
115 |
{0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, |
|
116 |
{0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, |
|
117 |
{0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, |
|
118 |
{0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, |
|
119 |
{0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, |
|
120 |
{0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, |
|
121 |
{0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, |
|
122 |
{0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, |
|
123 |
{0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, |
|
124 |
{0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, |
|
125 |
{0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, |
|
126 |
{0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, |
|
127 |
{0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, |
|
128 |
{0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, |
|
129 |
{0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, |
|
130 |
{0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, |
|
131 |
{0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, |
|
132 |
{0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, |
|
133 |
{0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, |
|
134 |
{0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, |
|
135 |
{0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, |
|
136 |
{0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, |
|
137 |
{0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, |
|
138 |
{0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, |
|
139 |
{0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, |
|
140 |
{0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, |
|
141 |
{0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, |
|
142 |
{0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, |
|
143 |
{0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, |
|
144 |
{0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, |
|
145 |
{0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, |
|
146 |
{0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, |
|
147 |
{0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, |
|
148 |
{0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, |
|
149 |
{0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, |
|
150 |
{0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, |
|
151 |
{0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, |
|
152 |
{0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, |
|
153 |
{0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, |
|
154 |
{0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, |
|
155 |
{0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, |
|
156 |
{0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, |
|
157 |
{0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, |
|
158 |
{0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, |
|
159 |
{0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, |
|
160 |
{0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, |
|
161 |
{0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053}, |
|
162 |
{0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, |
|
163 |
{0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, |
|
164 |
{0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, |
|
165 |
{0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, |
|
166 |
{0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, |
|
167 |
{0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, |
|
168 |
{0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, |
|
169 |
{0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, |
|
170 |
{0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, |
|
171 |
{0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, |
|
172 |
{0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, |
|
173 |
{0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, |
|
174 |
{0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, |
|
175 |
{0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, |
|
176 |
{0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, |
|
177 |
{0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} |
|
178 |
};
|
|
179 |
||
180 |
||
181 |
||
182 |
static MY_UNICASE_INFO plane01[]={ |
|
183 |
{0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, |
|
184 |
{0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, |
|
185 |
{0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, |
|
186 |
{0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043}, |
|
187 |
{0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043}, |
|
188 |
{0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043}, |
|
189 |
{0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043}, |
|
190 |
{0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044}, |
|
191 |
{0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110}, |
|
192 |
{0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045}, |
|
193 |
{0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045}, |
|
194 |
{0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045}, |
|
195 |
{0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045}, |
|
196 |
{0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045}, |
|
197 |
{0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047}, |
|
198 |
{0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047}, |
|
199 |
{0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047}, |
|
200 |
{0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047}, |
|
201 |
{0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048}, |
|
202 |
{0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126}, |
|
203 |
{0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049}, |
|
204 |
{0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049}, |
|
205 |
{0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049}, |
|
206 |
{0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049}, |
|
207 |
{0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049}, |
|
208 |
{0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132}, |
|
209 |
{0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A}, |
|
210 |
{0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B}, |
|
211 |
{0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C}, |
|
212 |
{0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C}, |
|
213 |
{0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C}, |
|
214 |
{0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F}, |
|
215 |
{0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141}, |
|
216 |
{0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E}, |
|
217 |
{0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E}, |
|
218 |
{0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E}, |
|
219 |
{0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149}, |
|
220 |
{0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A}, |
|
221 |
{0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F}, |
|
222 |
{0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F}, |
|
223 |
{0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F}, |
|
224 |
{0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152}, |
|
225 |
{0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052}, |
|
226 |
{0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052}, |
|
227 |
{0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052}, |
|
228 |
{0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053}, |
|
229 |
{0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053}, |
|
230 |
{0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053}, |
|
231 |
{0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053}, |
|
232 |
{0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054}, |
|
233 |
{0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054}, |
|
234 |
{0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166}, |
|
235 |
{0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055}, |
|
236 |
{0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055}, |
|
237 |
{0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055}, |
|
238 |
{0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055}, |
|
239 |
{0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055}, |
|
240 |
{0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055}, |
|
241 |
{0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057}, |
|
242 |
{0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059}, |
|
243 |
{0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A}, |
|
244 |
{0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A}, |
|
245 |
{0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A}, |
|
246 |
{0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053}, |
|
247 |
{0x0180,0x0180,0x0180}, {0x0181,0x0253,0x0181}, |
|
248 |
{0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182}, |
|
249 |
{0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184}, |
|
250 |
{0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187}, |
|
251 |
{0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189}, |
|
252 |
{0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B}, |
|
253 |
{0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D}, |
|
254 |
{0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F}, |
|
255 |
{0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191}, |
|
256 |
{0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193}, |
|
257 |
{0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6}, |
|
258 |
{0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197}, |
|
259 |
{0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198}, |
|
260 |
{0x019A,0x019A,0x019A}, {0x019B,0x019B,0x019B}, |
|
261 |
{0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D}, |
|
262 |
{0x019E,0x019E,0x019E}, {0x019F,0x0275,0x019F}, |
|
263 |
{0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F}, |
|
264 |
{0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2}, |
|
265 |
{0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4}, |
|
266 |
{0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7}, |
|
267 |
{0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9}, |
|
268 |
{0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB}, |
|
269 |
{0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC}, |
|
270 |
{0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055}, |
|
271 |
{0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1}, |
|
272 |
{0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3}, |
|
273 |
{0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5}, |
|
274 |
{0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7}, |
|
275 |
{0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8}, |
|
276 |
{0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB}, |
|
277 |
{0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC}, |
|
278 |
{0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7}, |
|
279 |
{0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1}, |
|
280 |
{0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3}, |
|
281 |
{0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4}, |
|
282 |
{0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7}, |
|
283 |
{0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7}, |
|
284 |
{0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA}, |
|
285 |
{0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041}, |
|
286 |
{0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049}, |
|
287 |
{0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F}, |
|
288 |
{0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055}, |
|
289 |
{0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055}, |
|
290 |
{0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055}, |
|
291 |
{0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055}, |
|
292 |
{0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055}, |
|
293 |
{0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E}, |
|
294 |
{0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041}, |
|
295 |
{0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041}, |
|
296 |
{0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6}, |
|
297 |
{0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4}, |
|
298 |
{0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047}, |
|
299 |
{0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B}, |
|
300 |
{0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F}, |
|
301 |
{0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F}, |
|
302 |
{0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7}, |
|
303 |
{0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1}, |
|
304 |
{0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1}, |
|
305 |
{0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047}, |
|
306 |
{0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7}, |
|
307 |
{0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E}, |
|
308 |
{0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041}, |
|
309 |
{0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6}, |
|
310 |
{0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} |
|
311 |
};
|
|
312 |
||
313 |
static MY_UNICASE_INFO plane02[]={ |
|
314 |
{0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, |
|
315 |
{0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, |
|
316 |
{0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, |
|
317 |
{0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045}, |
|
318 |
{0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049}, |
|
319 |
{0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049}, |
|
320 |
{0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F}, |
|
321 |
{0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F}, |
|
322 |
{0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052}, |
|
323 |
{0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052}, |
|
324 |
{0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055}, |
|
325 |
{0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055}, |
|
326 |
{0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053}, |
|
327 |
{0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054}, |
|
328 |
{0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C}, |
|
329 |
{0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048}, |
|
330 |
{0x0220,0x0220,0x0220}, {0x0221,0x0221,0x0221}, |
|
331 |
{0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222}, |
|
332 |
{0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224}, |
|
333 |
{0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041}, |
|
334 |
{0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045}, |
|
335 |
{0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F}, |
|
336 |
{0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F}, |
|
337 |
{0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F}, |
|
338 |
{0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F}, |
|
339 |
{0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059}, |
|
340 |
{0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235}, |
|
341 |
{0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237}, |
|
342 |
{0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239}, |
|
343 |
{0x023A,0x023A,0x023A}, {0x023B,0x023B,0x023B}, |
|
344 |
{0x023C,0x023C,0x023C}, {0x023D,0x023D,0x023D}, |
|
345 |
{0x023E,0x023E,0x023E}, {0x023F,0x023F,0x023F}, |
|
346 |
{0x0240,0x0240,0x0240}, {0x0241,0x0241,0x0241}, |
|
347 |
{0x0242,0x0242,0x0242}, {0x0243,0x0243,0x0243}, |
|
348 |
{0x0244,0x0244,0x0244}, {0x0245,0x0245,0x0245}, |
|
349 |
{0x0246,0x0246,0x0246}, {0x0247,0x0247,0x0247}, |
|
350 |
{0x0248,0x0248,0x0248}, {0x0249,0x0249,0x0249}, |
|
351 |
{0x024A,0x024A,0x024A}, {0x024B,0x024B,0x024B}, |
|
352 |
{0x024C,0x024C,0x024C}, {0x024D,0x024D,0x024D}, |
|
353 |
{0x024E,0x024E,0x024E}, {0x024F,0x024F,0x024F}, |
|
354 |
{0x0250,0x0250,0x0250}, {0x0251,0x0251,0x0251}, |
|
355 |
{0x0252,0x0252,0x0252}, {0x0181,0x0253,0x0181}, |
|
356 |
{0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255}, |
|
357 |
{0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A}, |
|
358 |
{0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F}, |
|
359 |
{0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190}, |
|
360 |
{0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D}, |
|
361 |
{0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F}, |
|
362 |
{0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261}, |
|
363 |
{0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194}, |
|
364 |
{0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265}, |
|
365 |
{0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267}, |
|
366 |
{0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196}, |
|
367 |
{0x026A,0x026A,0x026A}, {0x026B,0x026B,0x026B}, |
|
368 |
{0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D}, |
|
369 |
{0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C}, |
|
370 |
{0x0270,0x0270,0x0270}, {0x0271,0x0271,0x0271}, |
|
371 |
{0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273}, |
|
372 |
{0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F}, |
|
373 |
{0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277}, |
|
374 |
{0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279}, |
|
375 |
{0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B}, |
|
376 |
{0x027C,0x027C,0x027C}, {0x027D,0x027D,0x027D}, |
|
377 |
{0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F}, |
|
378 |
{0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281}, |
|
379 |
{0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9}, |
|
380 |
{0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285}, |
|
381 |
{0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287}, |
|
382 |
{0x01AE,0x0288,0x01AE}, {0x0289,0x0289,0x0289}, |
|
383 |
{0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2}, |
|
384 |
{0x028C,0x028C,0x028C}, {0x028D,0x028D,0x028D}, |
|
385 |
{0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F}, |
|
386 |
{0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291}, |
|
387 |
{0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293}, |
|
388 |
{0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295}, |
|
389 |
{0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297}, |
|
390 |
{0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299}, |
|
391 |
{0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B}, |
|
392 |
{0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D}, |
|
393 |
{0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F}, |
|
394 |
{0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1}, |
|
395 |
{0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3}, |
|
396 |
{0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5}, |
|
397 |
{0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7}, |
|
398 |
{0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9}, |
|
399 |
{0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB}, |
|
400 |
{0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD}, |
|
401 |
{0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF}, |
|
402 |
{0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1}, |
|
403 |
{0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3}, |
|
404 |
{0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5}, |
|
405 |
{0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7}, |
|
406 |
{0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9}, |
|
407 |
{0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB}, |
|
408 |
{0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD}, |
|
409 |
{0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF}, |
|
410 |
{0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1}, |
|
411 |
{0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3}, |
|
412 |
{0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5}, |
|
413 |
{0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7}, |
|
414 |
{0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9}, |
|
415 |
{0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB}, |
|
416 |
{0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD}, |
|
417 |
{0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF}, |
|
418 |
{0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1}, |
|
419 |
{0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3}, |
|
420 |
{0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5}, |
|
421 |
{0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7}, |
|
422 |
{0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9}, |
|
423 |
{0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB}, |
|
424 |
{0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD}, |
|
425 |
{0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF}, |
|
426 |
{0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1}, |
|
427 |
{0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3}, |
|
428 |
{0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5}, |
|
429 |
{0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7}, |
|
430 |
{0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9}, |
|
431 |
{0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB}, |
|
432 |
{0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED}, |
|
433 |
{0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF}, |
|
434 |
{0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1}, |
|
435 |
{0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3}, |
|
436 |
{0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5}, |
|
437 |
{0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7}, |
|
438 |
{0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9}, |
|
439 |
{0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB}, |
|
440 |
{0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD}, |
|
441 |
{0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} |
|
442 |
};
|
|
443 |
||
444 |
static MY_UNICASE_INFO plane03[]={ |
|
445 |
{0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, |
|
446 |
{0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, |
|
447 |
{0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, |
|
448 |
{0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307}, |
|
449 |
{0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309}, |
|
450 |
{0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B}, |
|
451 |
{0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D}, |
|
452 |
{0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F}, |
|
453 |
{0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311}, |
|
454 |
{0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313}, |
|
455 |
{0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315}, |
|
456 |
{0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317}, |
|
457 |
{0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319}, |
|
458 |
{0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B}, |
|
459 |
{0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D}, |
|
460 |
{0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F}, |
|
461 |
{0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321}, |
|
462 |
{0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323}, |
|
463 |
{0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325}, |
|
464 |
{0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327}, |
|
465 |
{0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329}, |
|
466 |
{0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B}, |
|
467 |
{0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D}, |
|
468 |
{0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F}, |
|
469 |
{0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331}, |
|
470 |
{0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333}, |
|
471 |
{0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335}, |
|
472 |
{0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337}, |
|
473 |
{0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339}, |
|
474 |
{0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B}, |
|
475 |
{0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D}, |
|
476 |
{0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F}, |
|
477 |
{0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341}, |
|
478 |
{0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343}, |
|
479 |
{0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399}, |
|
480 |
{0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347}, |
|
481 |
{0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349}, |
|
482 |
{0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B}, |
|
483 |
{0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D}, |
|
484 |
{0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F}, |
|
485 |
{0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351}, |
|
486 |
{0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353}, |
|
487 |
{0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355}, |
|
488 |
{0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357}, |
|
489 |
{0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359}, |
|
490 |
{0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B}, |
|
491 |
{0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D}, |
|
492 |
{0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F}, |
|
493 |
{0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361}, |
|
494 |
{0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363}, |
|
495 |
{0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365}, |
|
496 |
{0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367}, |
|
497 |
{0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369}, |
|
498 |
{0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B}, |
|
499 |
{0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D}, |
|
500 |
{0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F}, |
|
501 |
{0x0370,0x0370,0x0370}, {0x0371,0x0371,0x0371}, |
|
502 |
{0x0372,0x0372,0x0372}, {0x0373,0x0373,0x0373}, |
|
503 |
{0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375}, |
|
504 |
{0x0376,0x0376,0x0376}, {0x0377,0x0377,0x0377}, |
|
505 |
{0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379}, |
|
506 |
{0x037A,0x037A,0x037A}, {0x037B,0x037B,0x037B}, |
|
507 |
{0x037C,0x037C,0x037C}, {0x037D,0x037D,0x037D}, |
|
508 |
{0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F}, |
|
509 |
{0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381}, |
|
510 |
{0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383}, |
|
511 |
{0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385}, |
|
512 |
{0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387}, |
|
513 |
{0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397}, |
|
514 |
{0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B}, |
|
515 |
{0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D}, |
|
516 |
{0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9}, |
|
517 |
{0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391}, |
|
518 |
{0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, |
|
519 |
{0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, |
|
520 |
{0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, |
|
521 |
{0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, |
|
522 |
{0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, |
|
523 |
{0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, |
|
524 |
{0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, |
|
525 |
{0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, |
|
526 |
{0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3}, |
|
527 |
{0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, |
|
528 |
{0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, |
|
529 |
{0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, |
|
530 |
{0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, |
|
531 |
{0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395}, |
|
532 |
{0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399}, |
|
533 |
{0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391}, |
|
534 |
{0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, |
|
535 |
{0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, |
|
536 |
{0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, |
|
537 |
{0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, |
|
538 |
{0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, |
|
539 |
{0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, |
|
540 |
{0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, |
|
541 |
{0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, |
|
542 |
{0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3}, |
|
543 |
{0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, |
|
544 |
{0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, |
|
545 |
{0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, |
|
546 |
{0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, |
|
547 |
{0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5}, |
|
548 |
{0x038F,0x03CE,0x03A9}, {0x03CF,0x03CF,0x03CF}, |
|
549 |
{0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398}, |
|
550 |
{0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2}, |
|
551 |
{0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6}, |
|
552 |
{0x03A0,0x03D6,0x03A0}, {0x03D7,0x03D7,0x03D7}, |
|
553 |
{0x03D8,0x03D8,0x03D8}, {0x03D9,0x03D9,0x03D9}, |
|
554 |
{0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA}, |
|
555 |
{0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC}, |
|
556 |
{0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE}, |
|
557 |
{0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0}, |
|
558 |
{0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2}, |
|
559 |
{0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4}, |
|
560 |
{0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6}, |
|
561 |
{0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8}, |
|
562 |
{0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA}, |
|
563 |
{0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC}, |
|
564 |
{0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE}, |
|
565 |
{0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1}, |
|
566 |
{0x03A3,0x03F2,0x03A3}, {0x03F3,0x03F3,0x03F3}, |
|
567 |
{0x03F4,0x03F4,0x03F4}, {0x03F5,0x03F5,0x03F5}, |
|
568 |
{0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F7,0x03F7}, |
|
569 |
{0x03F8,0x03F8,0x03F8}, {0x03F9,0x03F9,0x03F9}, |
|
570 |
{0x03FA,0x03FA,0x03FA}, {0x03FB,0x03FB,0x03FB}, |
|
571 |
{0x03FC,0x03FC,0x03FC}, {0x03FD,0x03FD,0x03FD}, |
|
572 |
{0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF} |
|
573 |
};
|
|
574 |
||
575 |
static MY_UNICASE_INFO plane04[]={ |
|
576 |
{0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, |
|
577 |
{0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, |
|
578 |
{0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, |
|
579 |
{0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, |
|
580 |
{0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, |
|
581 |
{0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, |
|
582 |
{0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, |
|
583 |
{0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, |
|
584 |
{0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, |
|
585 |
{0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, |
|
586 |
{0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, |
|
587 |
{0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, |
|
588 |
{0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, |
|
589 |
{0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, |
|
590 |
{0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, |
|
591 |
{0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, |
|
592 |
{0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, |
|
593 |
{0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, |
|
594 |
{0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, |
|
595 |
{0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, |
|
596 |
{0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, |
|
597 |
{0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, |
|
598 |
{0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, |
|
599 |
{0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, |
|
600 |
{0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, |
|
601 |
{0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, |
|
602 |
{0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, |
|
603 |
{0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, |
|
604 |
{0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, |
|
605 |
{0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, |
|
606 |
{0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, |
|
607 |
{0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, |
|
608 |
{0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, |
|
609 |
{0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, |
|
610 |
{0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, |
|
611 |
{0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, |
|
612 |
{0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, |
|
613 |
{0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, |
|
614 |
{0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, |
|
615 |
{0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, |
|
616 |
{0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, |
|
617 |
{0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, |
|
618 |
{0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, |
|
619 |
{0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, |
|
620 |
{0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, |
|
621 |
{0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, |
|
622 |
{0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, |
|
623 |
{0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, |
|
624 |
{0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460}, |
|
625 |
{0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462}, |
|
626 |
{0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464}, |
|
627 |
{0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466}, |
|
628 |
{0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468}, |
|
629 |
{0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A}, |
|
630 |
{0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C}, |
|
631 |
{0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E}, |
|
632 |
{0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470}, |
|
633 |
{0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472}, |
|
634 |
{0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474}, |
|
635 |
{0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474}, |
|
636 |
{0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478}, |
|
637 |
{0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A}, |
|
638 |
{0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C}, |
|
639 |
{0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E}, |
|
640 |
{0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480}, |
|
641 |
{0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483}, |
|
642 |
{0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485}, |
|
643 |
{0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487}, |
|
644 |
{0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489}, |
|
645 |
{0x048A,0x048A,0x048A}, {0x048B,0x048B,0x048B}, |
|
646 |
{0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C}, |
|
647 |
{0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E}, |
|
648 |
{0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490}, |
|
649 |
{0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492}, |
|
650 |
{0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494}, |
|
651 |
{0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496}, |
|
652 |
{0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498}, |
|
653 |
{0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A}, |
|
654 |
{0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C}, |
|
655 |
{0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E}, |
|
656 |
{0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0}, |
|
657 |
{0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2}, |
|
658 |
{0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4}, |
|
659 |
{0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6}, |
|
660 |
{0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8}, |
|
661 |
{0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA}, |
|
662 |
{0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC}, |
|
663 |
{0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE}, |
|
664 |
{0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0}, |
|
665 |
{0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2}, |
|
666 |
{0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4}, |
|
667 |
{0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6}, |
|
668 |
{0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8}, |
|
669 |
{0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA}, |
|
670 |
{0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC}, |
|
671 |
{0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE}, |
|
672 |
{0x04C0,0x04C0,0x04C0}, {0x04C1,0x04C2,0x0416}, |
|
673 |
{0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3}, |
|
674 |
{0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C5,0x04C5}, |
|
675 |
{0x04C6,0x04C6,0x04C6}, {0x04C7,0x04C8,0x04C7}, |
|
676 |
{0x04C7,0x04C8,0x04C7}, {0x04C9,0x04C9,0x04C9}, |
|
677 |
{0x04CA,0x04CA,0x04CA}, {0x04CB,0x04CC,0x04CB}, |
|
678 |
{0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CD,0x04CD}, |
|
679 |
{0x04CE,0x04CE,0x04CE}, {0x04CF,0x04CF,0x04CF}, |
|
680 |
{0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410}, |
|
681 |
{0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410}, |
|
682 |
{0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4}, |
|
683 |
{0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415}, |
|
684 |
{0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8}, |
|
685 |
{0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8}, |
|
686 |
{0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416}, |
|
687 |
{0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417}, |
|
688 |
{0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0}, |
|
689 |
{0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418}, |
|
690 |
{0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418}, |
|
691 |
{0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E}, |
|
692 |
{0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8}, |
|
693 |
{0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8}, |
|
694 |
{0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D}, |
|
695 |
{0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423}, |
|
696 |
{0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423}, |
|
697 |
{0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423}, |
|
698 |
{0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427}, |
|
699 |
{0x04F6,0x04F6,0x04F6}, {0x04F7,0x04F7,0x04F7}, |
|
700 |
{0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B}, |
|
701 |
{0x04FA,0x04FA,0x04FA}, {0x04FB,0x04FB,0x04FB}, |
|
702 |
{0x04FC,0x04FC,0x04FC}, {0x04FD,0x04FD,0x04FD}, |
|
703 |
{0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF} |
|
704 |
};
|
|
705 |
||
706 |
static MY_UNICASE_INFO plane05[]={ |
|
707 |
{0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501}, |
|
708 |
{0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503}, |
|
709 |
{0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505}, |
|
710 |
{0x0506,0x0506,0x0506}, {0x0507,0x0507,0x0507}, |
|
711 |
{0x0508,0x0508,0x0508}, {0x0509,0x0509,0x0509}, |
|
712 |
{0x050A,0x050A,0x050A}, {0x050B,0x050B,0x050B}, |
|
713 |
{0x050C,0x050C,0x050C}, {0x050D,0x050D,0x050D}, |
|
714 |
{0x050E,0x050E,0x050E}, {0x050F,0x050F,0x050F}, |
|
715 |
{0x0510,0x0510,0x0510}, {0x0511,0x0511,0x0511}, |
|
716 |
{0x0512,0x0512,0x0512}, {0x0513,0x0513,0x0513}, |
|
717 |
{0x0514,0x0514,0x0514}, {0x0515,0x0515,0x0515}, |
|
718 |
{0x0516,0x0516,0x0516}, {0x0517,0x0517,0x0517}, |
|
719 |
{0x0518,0x0518,0x0518}, {0x0519,0x0519,0x0519}, |
|
720 |
{0x051A,0x051A,0x051A}, {0x051B,0x051B,0x051B}, |
|
721 |
{0x051C,0x051C,0x051C}, {0x051D,0x051D,0x051D}, |
|
722 |
{0x051E,0x051E,0x051E}, {0x051F,0x051F,0x051F}, |
|
723 |
{0x0520,0x0520,0x0520}, {0x0521,0x0521,0x0521}, |
|
724 |
{0x0522,0x0522,0x0522}, {0x0523,0x0523,0x0523}, |
|
725 |
{0x0524,0x0524,0x0524}, {0x0525,0x0525,0x0525}, |
|
726 |
{0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527}, |
|
727 |
{0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529}, |
|
728 |
{0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B}, |
|
729 |
{0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D}, |
|
730 |
{0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F}, |
|
731 |
{0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531}, |
|
732 |
{0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, |
|
733 |
{0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, |
|
734 |
{0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, |
|
735 |
{0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, |
|
736 |
{0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, |
|
737 |
{0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, |
|
738 |
{0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, |
|
739 |
{0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, |
|
740 |
{0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, |
|
741 |
{0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, |
|
742 |
{0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, |
|
743 |
{0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, |
|
744 |
{0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, |
|
745 |
{0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, |
|
746 |
{0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, |
|
747 |
{0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, |
|
748 |
{0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, |
|
749 |
{0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, |
|
750 |
{0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557}, |
|
751 |
{0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559}, |
|
752 |
{0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B}, |
|
753 |
{0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D}, |
|
754 |
{0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F}, |
|
755 |
{0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531}, |
|
756 |
{0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, |
|
757 |
{0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, |
|
758 |
{0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, |
|
759 |
{0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, |
|
760 |
{0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, |
|
761 |
{0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, |
|
762 |
{0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, |
|
763 |
{0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, |
|
764 |
{0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, |
|
765 |
{0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, |
|
766 |
{0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, |
|
767 |
{0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, |
|
768 |
{0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, |
|
769 |
{0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, |
|
770 |
{0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, |
|
771 |
{0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, |
|
772 |
{0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, |
|
773 |
{0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, |
|
774 |
{0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587}, |
|
775 |
{0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589}, |
|
776 |
{0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B}, |
|
777 |
{0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D}, |
|
778 |
{0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F}, |
|
779 |
{0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591}, |
|
780 |
{0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593}, |
|
781 |
{0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595}, |
|
782 |
{0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597}, |
|
783 |
{0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599}, |
|
784 |
{0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B}, |
|
785 |
{0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D}, |
|
786 |
{0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F}, |
|
787 |
{0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1}, |
|
788 |
{0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3}, |
|
789 |
{0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5}, |
|
790 |
{0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7}, |
|
791 |
{0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9}, |
|
792 |
{0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB}, |
|
793 |
{0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD}, |
|
794 |
{0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF}, |
|
795 |
{0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1}, |
|
796 |
{0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3}, |
|
797 |
{0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5}, |
|
798 |
{0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7}, |
|
799 |
{0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9}, |
|
800 |
{0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB}, |
|
801 |
{0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD}, |
|
802 |
{0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF}, |
|
803 |
{0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1}, |
|
804 |
{0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3}, |
|
805 |
{0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5}, |
|
806 |
{0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7}, |
|
807 |
{0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9}, |
|
808 |
{0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB}, |
|
809 |
{0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD}, |
|
810 |
{0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF}, |
|
811 |
{0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1}, |
|
812 |
{0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3}, |
|
813 |
{0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5}, |
|
814 |
{0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7}, |
|
815 |
{0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9}, |
|
816 |
{0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB}, |
|
817 |
{0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD}, |
|
818 |
{0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF}, |
|
819 |
{0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1}, |
|
820 |
{0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3}, |
|
821 |
{0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5}, |
|
822 |
{0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7}, |
|
823 |
{0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9}, |
|
824 |
{0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB}, |
|
825 |
{0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED}, |
|
826 |
{0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF}, |
|
827 |
{0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1}, |
|
828 |
{0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3}, |
|
829 |
{0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5}, |
|
830 |
{0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7}, |
|
831 |
{0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9}, |
|
832 |
{0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB}, |
|
833 |
{0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD}, |
|
834 |
{0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} |
|
835 |
};
|
|
836 |
||
837 |
static MY_UNICASE_INFO plane1E[]={ |
|
838 |
{0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, |
|
839 |
{0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, |
|
840 |
{0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, |
|
841 |
{0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042}, |
|
842 |
{0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043}, |
|
843 |
{0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044}, |
|
844 |
{0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044}, |
|
845 |
{0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044}, |
|
846 |
{0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044}, |
|
847 |
{0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044}, |
|
848 |
{0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045}, |
|
849 |
{0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045}, |
|
850 |
{0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045}, |
|
851 |
{0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045}, |
|
852 |
{0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045}, |
|
853 |
{0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046}, |
|
854 |
{0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047}, |
|
855 |
{0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048}, |
|
856 |
{0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048}, |
|
857 |
{0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048}, |
|
858 |
{0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048}, |
|
859 |
{0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048}, |
|
860 |
{0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049}, |
|
861 |
{0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049}, |
|
862 |
{0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B}, |
|
863 |
{0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B}, |
|
864 |
{0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B}, |
|
865 |
{0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C}, |
|
866 |
{0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C}, |
|
867 |
{0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C}, |
|
868 |
{0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C}, |
|
869 |
{0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D}, |
|
870 |
{0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D}, |
|
871 |
{0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D}, |
|
872 |
{0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E}, |
|
873 |
{0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E}, |
|
874 |
{0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E}, |
|
875 |
{0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E}, |
|
876 |
{0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F}, |
|
877 |
{0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F}, |
|
878 |
{0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F}, |
|
879 |
{0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F}, |
|
880 |
{0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050}, |
|
881 |
{0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050}, |
|
882 |
{0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052}, |
|
883 |
{0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052}, |
|
884 |
{0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052}, |
|
885 |
{0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052}, |
|
886 |
{0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053}, |
|
887 |
{0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053}, |
|
888 |
{0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053}, |
|
889 |
{0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053}, |
|
890 |
{0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053}, |
|
891 |
{0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054}, |
|
892 |
{0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054}, |
|
893 |
{0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054}, |
|
894 |
{0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054}, |
|
895 |
{0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055}, |
|
896 |
{0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055}, |
|
897 |
{0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055}, |
|
898 |
{0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055}, |
|
899 |
{0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055}, |
|
900 |
{0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056}, |
|
901 |
{0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056}, |
|
902 |
{0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057}, |
|
903 |
{0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057}, |
|
904 |
{0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057}, |
|
905 |
{0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057}, |
|
906 |
{0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057}, |
|
907 |
{0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058}, |
|
908 |
{0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058}, |
|
909 |
{0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059}, |
|
910 |
{0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A}, |
|
911 |
{0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A}, |
|
912 |
{0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A}, |
|
913 |
{0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054}, |
|
914 |
{0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059}, |
|
915 |
{0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053}, |
|
916 |
{0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D}, |
|
917 |
{0x1E9E,0x1E9E,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F}, |
|
918 |
{0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041}, |
|
919 |
{0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041}, |
|
920 |
{0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041}, |
|
921 |
{0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041}, |
|
922 |
{0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041}, |
|
923 |
{0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041}, |
|
924 |
{0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041}, |
|
925 |
{0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041}, |
|
926 |
{0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041}, |
|
927 |
{0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041}, |
|
928 |
{0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041}, |
|
929 |
{0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041}, |
|
930 |
{0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045}, |
|
931 |
{0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045}, |
|
932 |
{0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045}, |
|
933 |
{0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045}, |
|
934 |
{0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045}, |
|
935 |
{0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045}, |
|
936 |
{0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045}, |
|
937 |
{0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045}, |
|
938 |
{0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049}, |
|
939 |
{0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049}, |
|
940 |
{0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F}, |
|
941 |
{0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F}, |
|
942 |
{0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F}, |
|
943 |
{0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F}, |
|
944 |
{0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F}, |
|
945 |
{0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F}, |
|
946 |
{0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F}, |
|
947 |
{0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F}, |
|
948 |
{0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F}, |
|
949 |
{0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F}, |
|
950 |
{0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F}, |
|
951 |
{0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F}, |
|
952 |
{0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055}, |
|
953 |
{0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055}, |
|
954 |
{0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055}, |
|
955 |
{0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055}, |
|
956 |
{0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055}, |
|
957 |
{0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055}, |
|
958 |
{0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055}, |
|
959 |
{0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059}, |
|
960 |
{0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059}, |
|
961 |
{0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059}, |
|
962 |
{0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059}, |
|
963 |
{0x1EFA,0x1EFA,0x1EFA}, {0x1EFB,0x1EFB,0x1EFB}, |
|
964 |
{0x1EFC,0x1EFC,0x1EFC}, {0x1EFD,0x1EFD,0x1EFD}, |
|
965 |
{0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF} |
|
966 |
};
|
|
967 |
||
968 |
static MY_UNICASE_INFO plane1F[]={ |
|
969 |
{0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, |
|
970 |
{0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, |
|
971 |
{0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, |
|
972 |
{0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, |
|
973 |
{0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, |
|
974 |
{0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, |
|
975 |
{0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, |
|
976 |
{0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, |
|
977 |
{0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, |
|
978 |
{0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, |
|
979 |
{0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, |
|
980 |
{0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17}, |
|
981 |
{0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, |
|
982 |
{0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, |
|
983 |
{0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, |
|
984 |
{0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F}, |
|
985 |
{0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, |
|
986 |
{0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, |
|
987 |
{0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, |
|
988 |
{0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, |
|
989 |
{0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, |
|
990 |
{0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, |
|
991 |
{0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, |
|
992 |
{0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, |
|
993 |
{0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, |
|
994 |
{0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, |
|
995 |
{0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, |
|
996 |
{0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, |
|
997 |
{0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, |
|
998 |
{0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, |
|
999 |
{0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, |
|
1000 |
{0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, |
|
1001 |
{0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, |
|
1002 |
{0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, |
|
1003 |
{0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, |
|
1004 |
{0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47}, |
|
1005 |
{0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, |
|
1006 |
{0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, |
|
1007 |
{0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, |
|
1008 |
{0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F}, |
|
1009 |
{0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5}, |
|
1010 |
{0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5}, |
|
1011 |
{0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5}, |
|
1012 |
{0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5}, |
|
1013 |
{0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5}, |
|
1014 |
{0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5}, |
|
1015 |
{0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5}, |
|
1016 |
{0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5}, |
|
1017 |
{0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, |
|
1018 |
{0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, |
|
1019 |
{0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, |
|
1020 |
{0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, |
|
1021 |
{0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, |
|
1022 |
{0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, |
|
1023 |
{0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, |
|
1024 |
{0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, |
|
1025 |
{0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, |
|
1026 |
{0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, |
|
1027 |
{0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, |
|
1028 |
{0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, |
|
1029 |
{0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, |
|
1030 |
{0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, |
|
1031 |
{0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, |
|
1032 |
{0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F}, |
|
1033 |
{0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, |
|
1034 |
{0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, |
|
1035 |
{0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, |
|
1036 |
{0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, |
|
1037 |
{0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, |
|
1038 |
{0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, |
|
1039 |
{0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, |
|
1040 |
{0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, |
|
1041 |
{0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, |
|
1042 |
{0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, |
|
1043 |
{0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, |
|
1044 |
{0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, |
|
1045 |
{0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, |
|
1046 |
{0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, |
|
1047 |
{0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, |
|
1048 |
{0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, |
|
1049 |
{0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, |
|
1050 |
{0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, |
|
1051 |
{0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, |
|
1052 |
{0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, |
|
1053 |
{0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, |
|
1054 |
{0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, |
|
1055 |
{0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, |
|
1056 |
{0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, |
|
1057 |
{0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, |
|
1058 |
{0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391}, |
|
1059 |
{0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5}, |
|
1060 |
{0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391}, |
|
1061 |
{0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, |
|
1062 |
{0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, |
|
1063 |
{0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD}, |
|
1064 |
{0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF}, |
|
1065 |
{0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1}, |
|
1066 |
{0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397}, |
|
1067 |
{0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5}, |
|
1068 |
{0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397}, |
|
1069 |
{0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, |
|
1070 |
{0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, |
|
1071 |
{0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD}, |
|
1072 |
{0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF}, |
|
1073 |
{0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, |
|
1074 |
{0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3}, |
|
1075 |
{0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5}, |
|
1076 |
{0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399}, |
|
1077 |
{0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, |
|
1078 |
{0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, |
|
1079 |
{0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD}, |
|
1080 |
{0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF}, |
|
1081 |
{0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, |
|
1082 |
{0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3}, |
|
1083 |
{0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1}, |
|
1084 |
{0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5}, |
|
1085 |
{0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, |
|
1086 |
{0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, |
|
1087 |
{0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED}, |
|
1088 |
{0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF}, |
|
1089 |
{0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1}, |
|
1090 |
{0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9}, |
|
1091 |
{0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5}, |
|
1092 |
{0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9}, |
|
1093 |
{0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, |
|
1094 |
{0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, |
|
1095 |
{0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD}, |
|
1096 |
{0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} |
|
1097 |
};
|
|
1098 |
||
1099 |
static MY_UNICASE_INFO plane21[]={ |
|
1100 |
{0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, |
|
1101 |
{0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, |
|
1102 |
{0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, |
|
1103 |
{0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107}, |
|
1104 |
{0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109}, |
|
1105 |
{0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B}, |
|
1106 |
{0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D}, |
|
1107 |
{0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F}, |
|
1108 |
{0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111}, |
|
1109 |
{0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113}, |
|
1110 |
{0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115}, |
|
1111 |
{0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117}, |
|
1112 |
{0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119}, |
|
1113 |
{0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B}, |
|
1114 |
{0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D}, |
|
1115 |
{0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F}, |
|
1116 |
{0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121}, |
|
1117 |
{0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123}, |
|
1118 |
{0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125}, |
|
1119 |
{0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127}, |
|
1120 |
{0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129}, |
|
1121 |
{0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B}, |
|
1122 |
{0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D}, |
|
1123 |
{0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F}, |
|
1124 |
{0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131}, |
|
1125 |
{0x2132,0x2132,0x2132}, {0x2133,0x2133,0x2133}, |
|
1126 |
{0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135}, |
|
1127 |
{0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137}, |
|
1128 |
{0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139}, |
|
1129 |
{0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B}, |
|
1130 |
{0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D}, |
|
1131 |
{0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F}, |
|
1132 |
{0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141}, |
|
1133 |
{0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143}, |
|
1134 |
{0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145}, |
|
1135 |
{0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147}, |
|
1136 |
{0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149}, |
|
1137 |
{0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B}, |
|
1138 |
{0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D}, |
|
1139 |
{0x214E,0x214E,0x214E}, {0x214F,0x214F,0x214F}, |
|
1140 |
{0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151}, |
|
1141 |
{0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153}, |
|
1142 |
{0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155}, |
|
1143 |
{0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157}, |
|
1144 |
{0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159}, |
|
1145 |
{0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B}, |
|
1146 |
{0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D}, |
|
1147 |
{0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F}, |
|
1148 |
{0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, |
|
1149 |
{0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, |
|
1150 |
{0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, |
|
1151 |
{0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, |
|
1152 |
{0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, |
|
1153 |
{0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, |
|
1154 |
{0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, |
|
1155 |
{0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, |
|
1156 |
{0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, |
|
1157 |
{0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, |
|
1158 |
{0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, |
|
1159 |
{0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, |
|
1160 |
{0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, |
|
1161 |
{0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, |
|
1162 |
{0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, |
|
1163 |
{0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, |
|
1164 |
{0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181}, |
|
1165 |
{0x2182,0x2182,0x2182}, {0x2183,0x2183,0x2183}, |
|
1166 |
{0x2184,0x2184,0x2184}, {0x2185,0x2185,0x2185}, |
|
1167 |
{0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187}, |
|
1168 |
{0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189}, |
|
1169 |
{0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B}, |
|
1170 |
{0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D}, |
|
1171 |
{0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F}, |
|
1172 |
{0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191}, |
|
1173 |
{0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193}, |
|
1174 |
{0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195}, |
|
1175 |
{0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197}, |
|
1176 |
{0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199}, |
|
1177 |
{0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B}, |
|
1178 |
{0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D}, |
|
1179 |
{0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F}, |
|
1180 |
{0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1}, |
|
1181 |
{0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3}, |
|
1182 |
{0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5}, |
|
1183 |
{0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7}, |
|
1184 |
{0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9}, |
|
1185 |
{0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB}, |
|
1186 |
{0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD}, |
|
1187 |
{0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF}, |
|
1188 |
{0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1}, |
|
1189 |
{0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3}, |
|
1190 |
{0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5}, |
|
1191 |
{0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7}, |
|
1192 |
{0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9}, |
|
1193 |
{0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB}, |
|
1194 |
{0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD}, |
|
1195 |
{0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF}, |
|
1196 |
{0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1}, |
|
1197 |
{0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3}, |
|
1198 |
{0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5}, |
|
1199 |
{0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7}, |
|
1200 |
{0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9}, |
|
1201 |
{0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB}, |
|
1202 |
{0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD}, |
|
1203 |
{0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF}, |
|
1204 |
{0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1}, |
|
1205 |
{0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3}, |
|
1206 |
{0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5}, |
|
1207 |
{0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7}, |
|
1208 |
{0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9}, |
|
1209 |
{0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB}, |
|
1210 |
{0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD}, |
|
1211 |
{0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF}, |
|
1212 |
{0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1}, |
|
1213 |
{0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3}, |
|
1214 |
{0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5}, |
|
1215 |
{0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7}, |
|
1216 |
{0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9}, |
|
1217 |
{0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB}, |
|
1218 |
{0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED}, |
|
1219 |
{0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF}, |
|
1220 |
{0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1}, |
|
1221 |
{0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3}, |
|
1222 |
{0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5}, |
|
1223 |
{0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7}, |
|
1224 |
{0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9}, |
|
1225 |
{0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB}, |
|
1226 |
{0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD}, |
|
1227 |
{0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} |
|
1228 |
};
|
|
1229 |
||
1230 |
static MY_UNICASE_INFO plane24[]={ |
|
1231 |
{0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, |
|
1232 |
{0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, |
|
1233 |
{0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, |
|
1234 |
{0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407}, |
|
1235 |
{0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409}, |
|
1236 |
{0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B}, |
|
1237 |
{0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D}, |
|
1238 |
{0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F}, |
|
1239 |
{0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411}, |
|
1240 |
{0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413}, |
|
1241 |
{0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415}, |
|
1242 |
{0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417}, |
|
1243 |
{0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419}, |
|
1244 |
{0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B}, |
|
1245 |
{0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D}, |
|
1246 |
{0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F}, |
|
1247 |
{0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421}, |
|
1248 |
{0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423}, |
|
1249 |
{0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425}, |
|
1250 |
{0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427}, |
|
1251 |
{0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429}, |
|
1252 |
{0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B}, |
|
1253 |
{0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D}, |
|
1254 |
{0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F}, |
|
1255 |
{0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431}, |
|
1256 |
{0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433}, |
|
1257 |
{0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435}, |
|
1258 |
{0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437}, |
|
1259 |
{0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439}, |
|
1260 |
{0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B}, |
|
1261 |
{0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D}, |
|
1262 |
{0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F}, |
|
1263 |
{0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441}, |
|
1264 |
{0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443}, |
|
1265 |
{0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445}, |
|
1266 |
{0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447}, |
|
1267 |
{0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449}, |
|
1268 |
{0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B}, |
|
1269 |
{0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D}, |
|
1270 |
{0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F}, |
|
1271 |
{0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451}, |
|
1272 |
{0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453}, |
|
1273 |
{0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455}, |
|
1274 |
{0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457}, |
|
1275 |
{0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459}, |
|
1276 |
{0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B}, |
|
1277 |
{0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D}, |
|
1278 |
{0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F}, |
|
1279 |
{0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461}, |
|
1280 |
{0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463}, |
|
1281 |
{0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465}, |
|
1282 |
{0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467}, |
|
1283 |
{0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469}, |
|
1284 |
{0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B}, |
|
1285 |
{0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D}, |
|
1286 |
{0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F}, |
|
1287 |
{0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471}, |
|
1288 |
{0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473}, |
|
1289 |
{0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475}, |
|
1290 |
{0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477}, |
|
1291 |
{0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479}, |
|
1292 |
{0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B}, |
|
1293 |
{0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D}, |
|
1294 |
{0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F}, |
|
1295 |
{0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481}, |
|
1296 |
{0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483}, |
|
1297 |
{0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485}, |
|
1298 |
{0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487}, |
|
1299 |
{0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489}, |
|
1300 |
{0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B}, |
|
1301 |
{0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D}, |
|
1302 |
{0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F}, |
|
1303 |
{0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491}, |
|
1304 |
{0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493}, |
|
1305 |
{0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495}, |
|
1306 |
{0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497}, |
|
1307 |
{0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499}, |
|
1308 |
{0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B}, |
|
1309 |
{0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D}, |
|
1310 |
{0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F}, |
|
1311 |
{0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1}, |
|
1312 |
{0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3}, |
|
1313 |
{0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5}, |
|
1314 |
{0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7}, |
|
1315 |
{0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9}, |
|
1316 |
{0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB}, |
|
1317 |
{0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD}, |
|
1318 |
{0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF}, |
|
1319 |
{0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1}, |
|
1320 |
{0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3}, |
|
1321 |
{0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5}, |
|
1322 |
{0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, |
|
1323 |
{0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, |
|
1324 |
{0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, |
|
1325 |
{0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, |
|
1326 |
{0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, |
|
1327 |
{0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, |
|
1328 |
{0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, |
|
1329 |
{0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, |
|
1330 |
{0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, |
|
1331 |
{0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, |
|
1332 |
{0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, |
|
1333 |
{0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, |
|
1334 |
{0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, |
|
1335 |
{0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, |
|
1336 |
{0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, |
|
1337 |
{0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, |
|
1338 |
{0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, |
|
1339 |
{0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, |
|
1340 |
{0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, |
|
1341 |
{0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, |
|
1342 |
{0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, |
|
1343 |
{0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, |
|
1344 |
{0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, |
|
1345 |
{0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, |
|
1346 |
{0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, |
|
1347 |
{0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, |
|
1348 |
{0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB}, |
|
1349 |
{0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED}, |
|
1350 |
{0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF}, |
|
1351 |
{0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1}, |
|
1352 |
{0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3}, |
|
1353 |
{0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5}, |
|
1354 |
{0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7}, |
|
1355 |
{0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9}, |
|
1356 |
{0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB}, |
|
1357 |
{0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD}, |
|
1358 |
{0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} |
|
1359 |
};
|
|
1360 |
||
1361 |
static MY_UNICASE_INFO planeFF[]={ |
|
1362 |
{0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, |
|
1363 |
{0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, |
|
1364 |
{0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, |
|
1365 |
{0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07}, |
|
1366 |
{0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09}, |
|
1367 |
{0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B}, |
|
1368 |
{0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D}, |
|
1369 |
{0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F}, |
|
1370 |
{0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11}, |
|
1371 |
{0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13}, |
|
1372 |
{0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15}, |
|
1373 |
{0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17}, |
|
1374 |
{0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19}, |
|
1375 |
{0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B}, |
|
1376 |
{0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D}, |
|
1377 |
{0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F}, |
|
1378 |
{0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21}, |
|
1379 |
{0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, |
|
1380 |
{0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, |
|
1381 |
{0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, |
|
1382 |
{0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, |
|
1383 |
{0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, |
|
1384 |
{0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, |
|
1385 |
{0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, |
|
1386 |
{0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, |
|
1387 |
{0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, |
|
1388 |
{0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, |
|
1389 |
{0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, |
|
1390 |
{0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, |
|
1391 |
{0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B}, |
|
1392 |
{0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D}, |
|
1393 |
{0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F}, |
|
1394 |
{0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21}, |
|
1395 |
{0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, |
|
1396 |
{0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, |
|
1397 |
{0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, |
|
1398 |
{0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, |
|
1399 |
{0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, |
|
1400 |
{0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, |
|
1401 |
{0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, |
|
1402 |
{0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, |
|
1403 |
{0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, |
|
1404 |
{0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, |
|
1405 |
{0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, |
|
1406 |
{0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, |
|
1407 |
{0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B}, |
|
1408 |
{0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D}, |
|
1409 |
{0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F}, |
|
1410 |
{0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61}, |
|
1411 |
{0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63}, |
|
1412 |
{0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65}, |
|
1413 |
{0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67}, |
|
1414 |
{0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69}, |
|
1415 |
{0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B}, |
|
1416 |
{0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D}, |
|
1417 |
{0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F}, |
|
1418 |
{0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71}, |
|
1419 |
{0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73}, |
|
1420 |
{0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75}, |
|
1421 |
{0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77}, |
|
1422 |
{0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79}, |
|
1423 |
{0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B}, |
|
1424 |
{0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D}, |
|
1425 |
{0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F}, |
|
1426 |
{0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81}, |
|
1427 |
{0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83}, |
|
1428 |
{0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85}, |
|
1429 |
{0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87}, |
|
1430 |
{0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89}, |
|
1431 |
{0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B}, |
|
1432 |
{0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D}, |
|
1433 |
{0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F}, |
|
1434 |
{0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91}, |
|
1435 |
{0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93}, |
|
1436 |
{0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95}, |
|
1437 |
{0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97}, |
|
1438 |
{0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99}, |
|
1439 |
{0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B}, |
|
1440 |
{0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D}, |
|
1441 |
{0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F}, |
|
1442 |
{0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1}, |
|
1443 |
{0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3}, |
|
1444 |
{0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5}, |
|
1445 |
{0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7}, |
|
1446 |
{0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9}, |
|
1447 |
{0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB}, |
|
1448 |
{0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD}, |
|
1449 |
{0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF}, |
|
1450 |
{0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1}, |
|
1451 |
{0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3}, |
|
1452 |
{0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5}, |
|
1453 |
{0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7}, |
|
1454 |
{0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9}, |
|
1455 |
{0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB}, |
|
1456 |
{0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD}, |
|
1457 |
{0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF}, |
|
1458 |
{0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1}, |
|
1459 |
{0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3}, |
|
1460 |
{0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5}, |
|
1461 |
{0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7}, |
|
1462 |
{0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9}, |
|
1463 |
{0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB}, |
|
1464 |
{0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD}, |
|
1465 |
{0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF}, |
|
1466 |
{0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1}, |
|
1467 |
{0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3}, |
|
1468 |
{0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5}, |
|
1469 |
{0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7}, |
|
1470 |
{0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9}, |
|
1471 |
{0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB}, |
|
1472 |
{0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD}, |
|
1473 |
{0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF}, |
|
1474 |
{0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1}, |
|
1475 |
{0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3}, |
|
1476 |
{0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5}, |
|
1477 |
{0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7}, |
|
1478 |
{0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9}, |
|
1479 |
{0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB}, |
|
1480 |
{0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED}, |
|
1481 |
{0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF}, |
|
1482 |
{0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1}, |
|
1483 |
{0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3}, |
|
1484 |
{0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5}, |
|
1485 |
{0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7}, |
|
1486 |
{0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9}, |
|
1487 |
{0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB}, |
|
1488 |
{0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD}, |
|
1489 |
{0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} |
|
1490 |
};
|
|
1491 |
||
1492 |
MY_UNICASE_INFO *my_unicase_default[256]={ |
|
1493 |
plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, |
|
1494 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1495 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1496 |
NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, |
|
1497 |
NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, |
|
1498 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1499 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1500 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1501 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1502 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1503 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1504 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1505 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1506 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1507 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1508 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1509 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1510 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1511 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1512 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1513 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1514 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1515 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1516 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1517 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1518 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1519 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1520 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1521 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1522 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1523 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1524 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF |
|
1525 |
||
1526 |
};
|
|
1527 |
||
1528 |
||
1529 |
/*
|
|
1530 |
Turkish lower/upper mapping:
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1531 |
1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
|
1
by brian
clean slate |
1532 |
0x0131 LATIN SMALL LETTER DOTLESS I
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1533 |
2. UPPER(0x0069 LATIN SMALL LETTER I) ->
|
1
by brian
clean slate |
1534 |
0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
|
1535 |
*/
|
|
1536 |
||
1537 |
static MY_UNICASE_INFO turk00[]= |
|
1538 |
{
|
|
1539 |
{0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, |
|
1540 |
{0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, |
|
1541 |
{0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, |
|
1542 |
{0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, |
|
1543 |
{0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, |
|
1544 |
{0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, |
|
1545 |
{0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, |
|
1546 |
{0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, |
|
1547 |
{0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, |
|
1548 |
{0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, |
|
1549 |
{0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, |
|
1550 |
{0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, |
|
1551 |
{0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, |
|
1552 |
{0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, |
|
1553 |
{0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, |
|
1554 |
{0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, |
|
1555 |
{0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, |
|
1556 |
{0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, |
|
1557 |
{0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, |
|
1558 |
{0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, |
|
1559 |
{0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, |
|
1560 |
{0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, |
|
1561 |
{0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, |
|
1562 |
{0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, |
|
1563 |
{0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, |
|
1564 |
{0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, |
|
1565 |
{0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, |
|
1566 |
{0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, |
|
1567 |
{0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, |
|
1568 |
{0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, |
|
1569 |
{0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, |
|
1570 |
{0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, |
|
1571 |
{0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, |
|
1572 |
{0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, |
|
1573 |
{0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, |
|
1574 |
{0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, |
|
1575 |
{0x0048,0x0068,0x0048}, {0x0049,0x0131,0x0049}, |
|
1576 |
{0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, |
|
1577 |
{0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, |
|
1578 |
{0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, |
|
1579 |
{0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, |
|
1580 |
{0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, |
|
1581 |
{0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, |
|
1582 |
{0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, |
|
1583 |
{0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, |
|
1584 |
{0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, |
|
1585 |
{0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, |
|
1586 |
{0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, |
|
1587 |
{0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, |
|
1588 |
{0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, |
|
1589 |
{0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, |
|
1590 |
{0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, |
|
1591 |
{0x0048,0x0068,0x0048}, {0x0130,0x0069,0x0049}, |
|
1592 |
{0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, |
|
1593 |
{0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, |
|
1594 |
{0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, |
|
1595 |
{0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, |
|
1596 |
{0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, |
|
1597 |
{0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, |
|
1598 |
{0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, |
|
1599 |
{0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, |
|
1600 |
{0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, |
|
1601 |
{0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, |
|
1602 |
{0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, |
|
1603 |
{0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, |
|
1604 |
{0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, |
|
1605 |
{0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, |
|
1606 |
{0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, |
|
1607 |
{0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, |
|
1608 |
{0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, |
|
1609 |
{0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, |
|
1610 |
{0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, |
|
1611 |
{0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, |
|
1612 |
{0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, |
|
1613 |
{0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, |
|
1614 |
{0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, |
|
1615 |
{0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, |
|
1616 |
{0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, |
|
1617 |
{0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, |
|
1618 |
{0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, |
|
1619 |
{0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, |
|
1620 |
{0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, |
|
1621 |
{0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, |
|
1622 |
{0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, |
|
1623 |
{0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, |
|
1624 |
{0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, |
|
1625 |
{0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, |
|
1626 |
{0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, |
|
1627 |
{0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, |
|
1628 |
{0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, |
|
1629 |
{0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, |
|
1630 |
{0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, |
|
1631 |
{0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, |
|
1632 |
{0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, |
|
1633 |
{0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, |
|
1634 |
{0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, |
|
1635 |
{0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, |
|
1636 |
{0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, |
|
1637 |
{0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, |
|
1638 |
{0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, |
|
1639 |
{0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, |
|
1640 |
{0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, |
|
1641 |
{0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, |
|
1642 |
{0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, |
|
1643 |
{0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, |
|
1644 |
{0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, |
|
1645 |
{0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, |
|
1646 |
{0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, |
|
1647 |
{0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, |
|
1648 |
{0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, |
|
1649 |
{0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, |
|
1650 |
{0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF}, |
|
1651 |
{0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, |
|
1652 |
{0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, |
|
1653 |
{0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, |
|
1654 |
{0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, |
|
1655 |
{0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, |
|
1656 |
{0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, |
|
1657 |
{0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, |
|
1658 |
{0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, |
|
1659 |
{0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, |
|
1660 |
{0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, |
|
1661 |
{0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, |
|
1662 |
{0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, |
|
1663 |
{0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, |
|
1664 |
{0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, |
|
1665 |
{0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, |
|
1666 |
{0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} |
|
1667 |
};
|
|
1668 |
||
1669 |
||
1670 |
||
1671 |
MY_UNICASE_INFO *my_unicase_turkish[256]= |
|
1672 |
{
|
|
1673 |
turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL, |
|
1674 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1675 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1676 |
NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, |
|
1677 |
NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, |
|
1678 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1679 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1680 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1681 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1682 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1683 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1684 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1685 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1686 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1687 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1688 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1689 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1690 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1691 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1692 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1693 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1694 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1695 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1696 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1697 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1698 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1699 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1700 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1701 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1702 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1703 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
|
1704 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF |
|
1705 |
};
|
|
1706 |
||
1707 |
||
1708 |
||
1709 |
/**
|
|
1710 |
Compare string against string with wildcard
|
|
1711 |
This function is used for utf8mb3, utf8mb4, ucs2, utf16, utf32
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1712 |
|
1
by brian
clean slate |
1713 |
@param cs Character set.
|
1714 |
@str String.
|
|
1715 |
@str_end End of string.
|
|
1716 |
@wildstr Wildcard pattern.
|
|
1717 |
@wildend End of wildcard pattern.
|
|
1718 |
@escape Escape characters, typically \\.
|
|
1719 |
@w_one "One character", typically _.
|
|
1720 |
@w_many "Many characters", typically %.
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1721 |
|
1
by brian
clean slate |
1722 |
@return Comparison result.
|
1723 |
@retval 0 if matched.
|
|
1724 |
@retval -1 if not matched with wildcard.
|
|
1725 |
@retval 1 if matched with wildcard.
|
|
1726 |
*/
|
|
1727 |
||
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
1728 |
int my_wildcmp_unicode(const CHARSET_INFO * const cs, |
1
by brian
clean slate |
1729 |
const char *str,const char *str_end, |
1730 |
const char *wildstr,const char *wildend, |
|
1731 |
int escape, int w_one, int w_many, |
|
1732 |
MY_UNICASE_INFO **weights) |
|
1733 |
{
|
|
1734 |
int result= -1; /* Not found, using wildcards */ |
|
77.1.71
by Monty Taylor
Uninitialized use. |
1735 |
my_wc_t s_wc=0, w_wc=0; |
1
by brian
clean slate |
1736 |
int scan, plane; |
236.3.9
by Andrey Hristov
- Fix build of exotic, mostly non-western, charsets (--with-extra-charsets) |
1737 |
my_charset_conv_mb_wc mb_wc; |
1
by brian
clean slate |
1738 |
mb_wc= cs->cset->mb_wc; |
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1739 |
|
1
by brian
clean slate |
1740 |
while (wildstr != wildend) |
1741 |
{
|
|
1742 |
while (1) |
|
1743 |
{
|
|
276
by Brian Aker
Cleaned out my_bool from strings. |
1744 |
bool escaped= 0; |
481
by Brian Aker
Remove all of uchar. |
1745 |
if ((scan= mb_wc(cs, &w_wc, (const unsigned char*)wildstr, |
1746 |
(const unsigned char*)wildend)) <= 0) |
|
1
by brian
clean slate |
1747 |
return 1; |
1748 |
||
1749 |
if (w_wc == (my_wc_t)w_many) |
|
1750 |
{
|
|
1751 |
result= 1; /* Found an anchor char */ |
|
1752 |
break; |
|
1753 |
}
|
|
1754 |
||
1755 |
wildstr+= scan; |
|
1756 |
if (w_wc == (my_wc_t)escape && wildstr < wildend) |
|
1757 |
{
|
|
481
by Brian Aker
Remove all of uchar. |
1758 |
if ((scan= mb_wc(cs, &w_wc, (const unsigned char*)wildstr, |
1759 |
(const unsigned char*)wildend)) <= 0) |
|
1
by brian
clean slate |
1760 |
return 1; |
1761 |
wildstr+= scan; |
|
1762 |
escaped= 1; |
|
1763 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1764 |
|
481
by Brian Aker
Remove all of uchar. |
1765 |
if ((scan= mb_wc(cs, &s_wc, (const unsigned char*)str, |
1766 |
(const unsigned char*)str_end)) <= 0) |
|
1
by brian
clean slate |
1767 |
return 1; |
1768 |
str+= scan; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1769 |
|
1
by brian
clean slate |
1770 |
if (!escaped && w_wc == (my_wc_t)w_one) |
1771 |
{
|
|
1772 |
result= 1; /* Found an anchor char */ |
|
1773 |
}
|
|
1774 |
else
|
|
1775 |
{
|
|
1776 |
if (weights) |
|
1777 |
{
|
|
1778 |
if (s_wc < 0x10000) |
|
1779 |
{
|
|
1780 |
plane=(s_wc>>8) & 0xFF; |
|
1781 |
s_wc = weights[plane] ? weights[plane][s_wc & 0xFF].sort : s_wc; |
|
1782 |
}
|
|
1783 |
if (w_wc < 0x10000) |
|
1784 |
{
|
|
1785 |
plane=(w_wc>>8) & 0xFF; |
|
1786 |
w_wc = weights[plane] ? weights[plane][w_wc & 0xFF].sort : w_wc; |
|
1787 |
}
|
|
1788 |
}
|
|
1789 |
if (s_wc != w_wc) |
|
1790 |
return 1; /* No match */ |
|
1791 |
}
|
|
1792 |
if (wildstr == wildend) |
|
1793 |
return (str != str_end); /* Match if both are at end */ |
|
1794 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1795 |
|
1796 |
||
1
by brian
clean slate |
1797 |
if (w_wc == (my_wc_t)w_many) |
1798 |
{ /* Found w_many */ |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1799 |
|
1
by brian
clean slate |
1800 |
/* Remove any '%' and '_' from the wild search string */
|
1801 |
for (; wildstr != wildend ;) |
|
1802 |
{
|
|
481
by Brian Aker
Remove all of uchar. |
1803 |
if ((scan= mb_wc(cs, &w_wc, (const unsigned char*)wildstr, |
1804 |
(const unsigned char*)wildend)) <= 0) |
|
1
by brian
clean slate |
1805 |
return 1; |
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1806 |
|
1
by brian
clean slate |
1807 |
if (w_wc == (my_wc_t)w_many) |
1808 |
{
|
|
1809 |
wildstr+= scan; |
|
1810 |
continue; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1811 |
}
|
1812 |
||
1
by brian
clean slate |
1813 |
if (w_wc == (my_wc_t)w_one) |
1814 |
{
|
|
1815 |
wildstr+= scan; |
|
481
by Brian Aker
Remove all of uchar. |
1816 |
if ((scan= mb_wc(cs, &s_wc, (const unsigned char*)str, |
1817 |
(const unsigned char*)str_end)) <=0) |
|
1
by brian
clean slate |
1818 |
return 1; |
1819 |
str+= scan; |
|
1820 |
continue; |
|
1821 |
}
|
|
1822 |
break; /* Not a wild character */ |
|
1823 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1824 |
|
1
by brian
clean slate |
1825 |
if (wildstr == wildend) |
1826 |
return 0; /* Ok if w_many is last */ |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1827 |
|
1
by brian
clean slate |
1828 |
if (str == str_end) |
1829 |
return -1; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1830 |
|
481
by Brian Aker
Remove all of uchar. |
1831 |
if ((scan= mb_wc(cs, &w_wc, (const unsigned char*)wildstr, |
1832 |
(const unsigned char*)wildend)) <=0) |
|
1
by brian
clean slate |
1833 |
return 1; |
1834 |
wildstr+= scan; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1835 |
|
1
by brian
clean slate |
1836 |
if (w_wc == (my_wc_t)escape) |
1837 |
{
|
|
1838 |
if (wildstr < wildend) |
|
1839 |
{
|
|
481
by Brian Aker
Remove all of uchar. |
1840 |
if ((scan= mb_wc(cs, &w_wc, (const unsigned char*)wildstr, |
1841 |
(const unsigned char*)wildend)) <=0) |
|
1
by brian
clean slate |
1842 |
return 1; |
1843 |
wildstr+= scan; |
|
1844 |
}
|
|
1845 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1846 |
|
1
by brian
clean slate |
1847 |
while (1) |
1848 |
{
|
|
1849 |
/* Skip until the first character from wildstr is found */
|
|
1850 |
while (str != str_end) |
|
1851 |
{
|
|
481
by Brian Aker
Remove all of uchar. |
1852 |
if ((scan= mb_wc(cs, &s_wc, (const unsigned char*)str, |
1853 |
(const unsigned char*)str_end)) <=0) |
|
1
by brian
clean slate |
1854 |
return 1; |
1855 |
if (weights) |
|
1856 |
{
|
|
1857 |
plane=(s_wc>>8) & 0xFF; |
|
1858 |
s_wc = weights[plane] ? weights[plane][s_wc & 0xFF].sort : s_wc; |
|
1859 |
plane=(w_wc>>8) & 0xFF; |
|
1860 |
w_wc = weights[plane] ? weights[plane][w_wc & 0xFF].sort : w_wc; |
|
1861 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1862 |
|
1
by brian
clean slate |
1863 |
if (s_wc == w_wc) |
1864 |
break; |
|
1865 |
str+= scan; |
|
1866 |
}
|
|
1867 |
if (str == str_end) |
|
1868 |
return -1; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1869 |
|
1
by brian
clean slate |
1870 |
str+= scan; |
1871 |
result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, |
|
1872 |
escape, w_one, w_many, |
|
1873 |
weights); |
|
1874 |
if (result <= 0) |
|
1875 |
return result; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
1876 |
}
|
1
by brian
clean slate |
1877 |
}
|
1878 |
}
|
|
1879 |
return (str != str_end ? 1 : 0); |
|
1880 |
}
|
|
1881 |
||
1054.2.11
by Monty Taylor
Removed copy_and_convert. |
1882 |
|
1883 |
int make_escape_code(const CHARSET_INFO * const cs, const char *escape) |
|
1884 |
{
|
|
1885 |
my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc; |
|
1886 |
my_wc_t escape_wc; |
|
1887 |
int rc= mb_wc(cs, &escape_wc, |
|
1888 |
(const unsigned char*) escape, |
|
1889 |
(const unsigned char*) escape + strlen(escape)); |
|
1890 |
return (int)(rc > 0 ? escape_wc : '\\'); |
|
1891 |
}
|
|
1892 |
||
1
by brian
clean slate |
1893 |
/*
|
1894 |
We consider bytes with code more than 127 as a letter.
|
|
1895 |
This garantees that word boundaries work fine with regular
|
|
1896 |
expressions. Note, there is no need to mark byte 255 as a
|
|
1897 |
letter, it is illegal byte in UTF8.
|
|
1898 |
*/
|
|
481
by Brian Aker
Remove all of uchar. |
1899 |
static unsigned char ctype_utf8mb4[]= |
1
by brian
clean slate |
1900 |
{
|
1901 |
0, |
|
1902 |
32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, |
|
1903 |
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
|
1904 |
72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
|
1905 |
132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16, |
|
1906 |
16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
1907 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, |
|
1908 |
16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
1909 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32, |
|
1910 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1911 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1912 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1913 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1914 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1915 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1916 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
1917 |
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 |
|
1918 |
};
|
|
1919 |
||
1920 |
||
481
by Brian Aker
Remove all of uchar. |
1921 |
static unsigned char to_lower_utf8mb4[]= |
1
by brian
clean slate |
1922 |
{
|
1923 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
1924 |
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
1925 |
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
1926 |
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
1927 |
64, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, |
|
1928 |
112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95, |
|
1929 |
96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111, |
|
1930 |
112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, |
|
1931 |
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, |
|
1932 |
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, |
|
1933 |
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, |
|
1934 |
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, |
|
1935 |
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, |
|
1936 |
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, |
|
1937 |
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, |
|
1938 |
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 |
|
1939 |
};
|
|
1940 |
||
1941 |
||
481
by Brian Aker
Remove all of uchar. |
1942 |
static unsigned char to_upper_utf8mb4[]= |
1
by brian
clean slate |
1943 |
{
|
1944 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
1945 |
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
1946 |
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
1947 |
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
1948 |
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
|
1949 |
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, |
|
1950 |
96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, |
|
1951 |
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, |
|
1952 |
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, |
|
1953 |
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, |
|
1954 |
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, |
|
1955 |
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, |
|
1956 |
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, |
|
1957 |
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, |
|
1958 |
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, |
|
1959 |
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 |
|
1960 |
};
|
|
1961 |
||
1962 |
||
1963 |
static inline int |
|
481
by Brian Aker
Remove all of uchar. |
1964 |
bincmp_utf8mb4(const unsigned char *s, const unsigned char *se, |
1965 |
const unsigned char *t, const unsigned char *te) |
|
1
by brian
clean slate |
1966 |
{
|
1967 |
int slen= (int) (se - s), tlen= (int) (te - t); |
|
1067.4.9
by Nathan Williams
Converted all usages of cmin/cmax in mystrings directory to use std::min/max |
1968 |
int len= min(slen, tlen); |
1
by brian
clean slate |
1969 |
int cmp= memcmp(s, t, len); |
1970 |
return cmp ? cmp : slen - tlen; |
|
1971 |
}
|
|
1972 |
||
1973 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
1974 |
int
|
1975 |
my_mb_wc_utf8mb4(const CHARSET_INFO * const, |
|
481
by Brian Aker
Remove all of uchar. |
1976 |
my_wc_t * pwc, const unsigned char *s, const unsigned char *e) |
1
by brian
clean slate |
1977 |
{
|
481
by Brian Aker
Remove all of uchar. |
1978 |
unsigned char c; |
1
by brian
clean slate |
1979 |
|
1980 |
if (s >= e) |
|
1981 |
return MY_CS_TOOSMALL; |
|
1982 |
||
1983 |
c= s[0]; |
|
1984 |
if (c < 0x80) |
|
1985 |
{
|
|
1986 |
*pwc= c; |
|
1987 |
return 1; |
|
1988 |
}
|
|
1989 |
else if (c < 0xc2) |
|
1990 |
return MY_CS_ILSEQ; |
|
1991 |
else if (c < 0xe0) |
|
1992 |
{
|
|
1993 |
if (s + 2 > e) /* We need 2 characters */ |
|
1994 |
return MY_CS_TOOSMALL2; |
|
1995 |
||
1996 |
if (!((s[1] ^ 0x80) < 0x40)) |
|
1997 |
return MY_CS_ILSEQ; |
|
1998 |
||
1999 |
*pwc= ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80); |
|
2000 |
return 2; |
|
2001 |
}
|
|
2002 |
else if (c < 0xf0) |
|
2003 |
{
|
|
2004 |
if (s + 3 > e) /* We need 3 characters */ |
|
2005 |
return MY_CS_TOOSMALL3; |
|
2006 |
||
2007 |
if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 && |
|
2008 |
(c >= 0xe1 || s[1] >= 0xa0))) |
|
2009 |
return MY_CS_ILSEQ; |
|
2010 |
||
2011 |
*pwc= ((my_wc_t) (c & 0x0f) << 12) | |
|
2012 |
((my_wc_t) (s[1] ^ 0x80) << 6) | |
|
2013 |
(my_wc_t) (s[2] ^ 0x80); |
|
2014 |
return 3; |
|
2015 |
}
|
|
2016 |
else if (c < 0xf8) |
|
2017 |
{
|
|
2018 |
if (s + 4 > e) /* We need 4 characters */ |
|
2019 |
return MY_CS_TOOSMALL4; |
|
2020 |
||
2021 |
if (!((s[1] ^ 0x80) < 0x40 && |
|
2022 |
(s[2] ^ 0x80) < 0x40 && |
|
2023 |
(s[3] ^ 0x80) < 0x40 && |
|
2024 |
(c >= 0xf1 || s[1] >= 0x90))) |
|
2025 |
return MY_CS_ILSEQ; |
|
2026 |
*pwc = ((my_wc_t) (c & 0x07) << 18) | |
|
2027 |
((my_wc_t) (s[1] ^ 0x80) << 12) | |
|
2028 |
((my_wc_t) (s[2] ^ 0x80) << 6) | |
|
2029 |
(my_wc_t) (s[3] ^ 0x80); |
|
2030 |
return 4; |
|
2031 |
}
|
|
2032 |
return MY_CS_ILSEQ; |
|
2033 |
}
|
|
2034 |
||
2035 |
||
2036 |
/*
|
|
2037 |
The same as above, but without range check
|
|
2038 |
for example, for a null-terminated string
|
|
2039 |
*/
|
|
2040 |
static int |
|
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2041 |
my_mb_wc_utf8mb4_no_range(const CHARSET_INFO * const, |
481
by Brian Aker
Remove all of uchar. |
2042 |
my_wc_t *pwc, const unsigned char *s) |
1
by brian
clean slate |
2043 |
{
|
481
by Brian Aker
Remove all of uchar. |
2044 |
unsigned char c; |
1
by brian
clean slate |
2045 |
|
2046 |
c= s[0]; |
|
2047 |
if (c < 0x80) |
|
2048 |
{
|
|
2049 |
*pwc = c; |
|
2050 |
return 1; |
|
2051 |
}
|
|
2052 |
||
2053 |
if (c < 0xc2) |
|
2054 |
return MY_CS_ILSEQ; |
|
2055 |
||
2056 |
if (c < 0xe0) |
|
2057 |
{
|
|
2058 |
if (!((s[1] ^ 0x80) < 0x40)) |
|
2059 |
return MY_CS_ILSEQ; |
|
2060 |
||
2061 |
*pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80); |
|
2062 |
return 2; |
|
2063 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2064 |
|
1
by brian
clean slate |
2065 |
if (c < 0xf0) |
2066 |
{
|
|
2067 |
if (!((s[1] ^ 0x80) < 0x40 && |
|
2068 |
(s[2] ^ 0x80) < 0x40 && |
|
2069 |
(c >= 0xe1 || s[1] >= 0xa0))) |
|
2070 |
return MY_CS_ILSEQ; |
|
2071 |
*pwc= ((my_wc_t) (c & 0x0f) << 12) | |
|
2072 |
((my_wc_t) (s[1] ^ 0x80) << 6) | |
|
2073 |
(my_wc_t) (s[2] ^ 0x80); |
|
2074 |
||
2075 |
return 3; |
|
2076 |
}
|
|
2077 |
else if (c < 0xf8) |
|
2078 |
{
|
|
2079 |
if (!((s[1] ^ 0x80) < 0x40 && |
|
2080 |
(s[2] ^ 0x80) < 0x40 && |
|
2081 |
(s[3] ^ 0x80) < 0x40 && |
|
2082 |
(c >= 0xf1 || s[1] >= 0x90))) |
|
2083 |
return MY_CS_ILSEQ; |
|
2084 |
*pwc = ((my_wc_t) (c & 0x07) << 18) | |
|
2085 |
((my_wc_t) (s[1] ^ 0x80) << 12) | |
|
2086 |
((my_wc_t) (s[2] ^ 0x80) << 6) | |
|
2087 |
(my_wc_t) (s[3] ^ 0x80); |
|
2088 |
return 4; |
|
2089 |
}
|
|
2090 |
return MY_CS_ILSEQ; |
|
2091 |
}
|
|
2092 |
||
2093 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2094 |
int
|
2095 |
my_wc_mb_utf8mb4(const CHARSET_INFO * const, |
|
481
by Brian Aker
Remove all of uchar. |
2096 |
my_wc_t wc, unsigned char *r, unsigned char *e) |
1
by brian
clean slate |
2097 |
{
|
2098 |
int count; |
|
2099 |
||
2100 |
if (r >= e) |
|
2101 |
return MY_CS_TOOSMALL; |
|
2102 |
||
2103 |
if (wc < 0x80) |
|
2104 |
count= 1; |
|
2105 |
else if (wc < 0x800) |
|
2106 |
count= 2; |
|
2107 |
else if (wc < 0x10000) |
|
2108 |
count= 3; |
|
2109 |
else if (wc < 0x200000) |
|
2110 |
count= 4; |
|
2111 |
else return MY_CS_ILUNI; |
|
2112 |
||
2113 |
if (r + count > e) |
|
1892.5.2
by Gustaf Thorslund
Replaced macros with functions/templates. Part of blueprint: |
2114 |
return my_cs_toosmalln(count); |
1
by brian
clean slate |
2115 |
|
2116 |
switch (count) { |
|
2117 |
/* Fall through all cases!!! */
|
|
481
by Brian Aker
Remove all of uchar. |
2118 |
case 4: r[3] = (unsigned char) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000; |
2119 |
case 3: r[2] = (unsigned char) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800; |
|
2120 |
case 2: r[1] = (unsigned char) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0; |
|
2121 |
case 1: r[0] = (unsigned char) wc; |
|
1
by brian
clean slate |
2122 |
}
|
2123 |
return count; |
|
2124 |
}
|
|
2125 |
||
2126 |
||
2127 |
/*
|
|
2128 |
The same as above, but without range check.
|
|
2129 |
*/
|
|
2130 |
static int |
|
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2131 |
my_wc_mb_utf8mb4_no_range(const CHARSET_INFO * const, |
481
by Brian Aker
Remove all of uchar. |
2132 |
my_wc_t wc, unsigned char *r) |
1
by brian
clean slate |
2133 |
{
|
2134 |
int count; |
|
2135 |
||
2136 |
if (wc < 0x80) |
|
2137 |
count= 1; |
|
2138 |
else if (wc < 0x800) |
|
2139 |
count= 2; |
|
2140 |
else if (wc < 0x10000) |
|
2141 |
count= 3; |
|
2142 |
else if (wc < 0x200000) |
|
2143 |
count= 4; |
|
2144 |
else
|
|
2145 |
return MY_CS_ILUNI; |
|
2146 |
||
2147 |
switch (count) |
|
2148 |
{
|
|
2149 |
/* Fall through all cases!!! */
|
|
481
by Brian Aker
Remove all of uchar. |
2150 |
case 4: r[3]= (unsigned char) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x10000; |
2151 |
case 3: r[2]= (unsigned char) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800; |
|
2152 |
case 2: r[1]= (unsigned char) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0; |
|
2153 |
case 1: r[0]= (unsigned char) wc; |
|
1
by brian
clean slate |
2154 |
}
|
2155 |
return count; |
|
2156 |
}
|
|
2157 |
||
2158 |
||
2159 |
#define REPLACEMENT_CHAR 0xFFFD;
|
|
2160 |
||
2161 |
||
2162 |
static inline void |
|
2163 |
my_tolower_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc) |
|
2164 |
{
|
|
2165 |
int page= *wc >> 8; |
|
2166 |
if (page < 256 && uni_plane[page]) |
|
2167 |
*wc= uni_plane[page][*wc & 0xFF].tolower; |
|
2168 |
}
|
|
2169 |
||
2170 |
||
2171 |
static inline void |
|
2172 |
my_toupper_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc) |
|
2173 |
{
|
|
2174 |
int page= *wc >> 8; |
|
2175 |
if (page < 256 && uni_plane[page]) |
|
2176 |
*wc= uni_plane[page][*wc & 0xFF].toupper; |
|
2177 |
}
|
|
2178 |
||
2179 |
||
2180 |
static inline void |
|
2181 |
my_tosort_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc) |
|
2182 |
{
|
|
2183 |
int page= *wc >> 8; |
|
2184 |
if (page < 256) |
|
2185 |
{
|
|
2186 |
if (uni_plane[page]) |
|
2187 |
*wc= uni_plane[page][*wc & 0xFF].sort; |
|
2188 |
}
|
|
2189 |
else
|
|
2190 |
{
|
|
2191 |
*wc= REPLACEMENT_CHAR; |
|
2192 |
}
|
|
2193 |
}
|
|
2194 |
||
2195 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2196 |
size_t
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2197 |
my_caseup_utf8mb4(const CHARSET_INFO * const cs, char *src, size_t srclen, |
1
by brian
clean slate |
2198 |
char *dst, size_t dstlen) |
2199 |
{
|
|
2200 |
my_wc_t wc; |
|
2201 |
int srcres, dstres; |
|
2202 |
char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; |
|
2203 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
|
51.3.9
by Jay Pipes
Removal of DBUG from strings/ library |
2204 |
assert(src != dst || cs->caseup_multiply == 1); |
1
by brian
clean slate |
2205 |
|
2206 |
while ((src < srcend) && |
|
2207 |
(srcres= my_mb_wc_utf8mb4(cs, &wc, |
|
481
by Brian Aker
Remove all of uchar. |
2208 |
(unsigned char *) src, (unsigned char*) srcend)) > 0) |
1
by brian
clean slate |
2209 |
{
|
2210 |
my_toupper_utf8mb4(uni_plane, &wc); |
|
481
by Brian Aker
Remove all of uchar. |
2211 |
if ((dstres= my_wc_mb_utf8mb4(cs, wc, (unsigned char*) dst, (unsigned char*) dstend)) <= 0) |
1
by brian
clean slate |
2212 |
break; |
2213 |
src+= srcres; |
|
2214 |
dst+= dstres; |
|
2215 |
}
|
|
2216 |
return (size_t) (dst - dst0); |
|
2217 |
}
|
|
2218 |
||
2219 |
||
2220 |
static inline void |
|
482
by Brian Aker
Remove uint. |
2221 |
my_hash_add(uint32_t *n1, uint32_t *n2, uint32_t ch) |
1
by brian
clean slate |
2222 |
{
|
2223 |
n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8); |
|
2224 |
n2[0]+= 3; |
|
2225 |
}
|
|
2226 |
||
2227 |
||
612.2.11
by Monty Taylor
Cleanup up the extern+static combo (plus some attributes because I got bored.) |
2228 |
void my_hash_sort_utf8mb4(const CHARSET_INFO * const cs, |
2229 |
const unsigned char *s, size_t slen, |
|
2230 |
uint32_t *n1, uint32_t *n2) |
|
1
by brian
clean slate |
2231 |
{
|
2232 |
my_wc_t wc; |
|
2233 |
int res; |
|
481
by Brian Aker
Remove all of uchar. |
2234 |
const unsigned char *e= s + slen; |
1
by brian
clean slate |
2235 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
2236 |
||
2237 |
/*
|
|
2238 |
Remove end space. We do this to be able to compare
|
|
2239 |
'A ' and 'A' as identical
|
|
2240 |
*/
|
|
2241 |
while (e > s && e[-1] == ' ') |
|
2242 |
e--; |
|
2243 |
||
481
by Brian Aker
Remove all of uchar. |
2244 |
while ((res= my_mb_wc_utf8mb4(cs, &wc, (const unsigned char*) s, (const unsigned char*) e)) > 0) |
1
by brian
clean slate |
2245 |
{
|
2246 |
my_tosort_utf8mb4(uni_plane, &wc); |
|
895
by Brian Aker
Completion (?) of uint conversion. |
2247 |
my_hash_add(n1, n2, (uint32_t) (wc & 0xFF)); |
2248 |
my_hash_add(n1, n2, (uint32_t) (wc >> 8) & 0xFF); |
|
1
by brian
clean slate |
2249 |
if (wc > 0xFFFF) |
2250 |
{
|
|
2251 |
/*
|
|
2252 |
Put the highest byte only if it is non-zero,
|
|
2253 |
to make hash functions for utf8mb3 and utf8mb4
|
|
2254 |
compatible for BMP characters.
|
|
2255 |
This is useful to keep order of records in
|
|
2256 |
test results, e.g. for "SHOW GRANTS".
|
|
2257 |
*/
|
|
895
by Brian Aker
Completion (?) of uint conversion. |
2258 |
my_hash_add(n1, n2, (uint32_t) (wc >> 16) & 0xFF); |
1
by brian
clean slate |
2259 |
}
|
2260 |
s+= res; |
|
2261 |
}
|
|
2262 |
}
|
|
2263 |
||
2264 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2265 |
size_t
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2266 |
my_caseup_str_utf8mb4(const CHARSET_INFO * const cs, char *src) |
1
by brian
clean slate |
2267 |
{
|
2268 |
my_wc_t wc; |
|
2269 |
int srcres, dstres; |
|
2270 |
char *dst= src, *dst0= src; |
|
2271 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
|
51.3.9
by Jay Pipes
Removal of DBUG from strings/ library |
2272 |
assert(cs->caseup_multiply == 1); |
1
by brian
clean slate |
2273 |
|
2274 |
while (*src && |
|
481
by Brian Aker
Remove all of uchar. |
2275 |
(srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (unsigned char *) src)) > 0) |
1
by brian
clean slate |
2276 |
{
|
2277 |
my_toupper_utf8mb4(uni_plane, &wc); |
|
481
by Brian Aker
Remove all of uchar. |
2278 |
if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (unsigned char*) dst)) <= 0) |
1
by brian
clean slate |
2279 |
break; |
2280 |
src+= srcres; |
|
2281 |
dst+= dstres; |
|
2282 |
}
|
|
2283 |
*dst= '\0'; |
|
2284 |
return (size_t) (dst - dst0); |
|
2285 |
}
|
|
2286 |
||
2287 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2288 |
size_t
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2289 |
my_casedn_utf8mb4(const CHARSET_INFO * const cs, |
1
by brian
clean slate |
2290 |
char *src, size_t srclen, |
2291 |
char *dst, size_t dstlen) |
|
2292 |
{
|
|
2293 |
my_wc_t wc; |
|
2294 |
int srcres, dstres; |
|
2295 |
char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst; |
|
2296 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
|
51.3.9
by Jay Pipes
Removal of DBUG from strings/ library |
2297 |
assert(src != dst || cs->casedn_multiply == 1); |
1
by brian
clean slate |
2298 |
|
2299 |
while ((src < srcend) && |
|
2300 |
(srcres= my_mb_wc_utf8mb4(cs, &wc, |
|
481
by Brian Aker
Remove all of uchar. |
2301 |
(unsigned char*) src, (unsigned char*) srcend)) > 0) |
1
by brian
clean slate |
2302 |
{
|
2303 |
my_tolower_utf8mb4(uni_plane, &wc); |
|
481
by Brian Aker
Remove all of uchar. |
2304 |
if ((dstres= my_wc_mb_utf8mb4(cs, wc, (unsigned char*) dst, (unsigned char*) dstend)) <= 0) |
1
by brian
clean slate |
2305 |
break; |
2306 |
src+= srcres; |
|
2307 |
dst+= dstres; |
|
2308 |
}
|
|
2309 |
return (size_t) (dst - dst0); |
|
2310 |
}
|
|
2311 |
||
2312 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2313 |
size_t
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2314 |
my_casedn_str_utf8mb4(const CHARSET_INFO * const cs, char *src) |
1
by brian
clean slate |
2315 |
{
|
2316 |
my_wc_t wc; |
|
2317 |
int srcres, dstres; |
|
2318 |
char *dst= src, *dst0= src; |
|
2319 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
|
51.3.9
by Jay Pipes
Removal of DBUG from strings/ library |
2320 |
assert(cs->casedn_multiply == 1); |
1
by brian
clean slate |
2321 |
|
2322 |
while (*src && |
|
481
by Brian Aker
Remove all of uchar. |
2323 |
(srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (unsigned char *) src)) > 0) |
1
by brian
clean slate |
2324 |
{
|
2325 |
my_tolower_utf8mb4(uni_plane, &wc); |
|
481
by Brian Aker
Remove all of uchar. |
2326 |
if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (unsigned char*) dst)) <= 0) |
1
by brian
clean slate |
2327 |
break; |
2328 |
src+= srcres; |
|
2329 |
dst+= dstres; |
|
2330 |
}
|
|
2331 |
||
2332 |
/*
|
|
2333 |
In rare cases lower string can be shorter than
|
|
2334 |
the original string, for example:
|
|
2335 |
||
2336 |
"U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE"
|
|
2337 |
(which is 0xC4B0 in utf8, i.e. two bytes)
|
|
2338 |
||
2339 |
is converted into
|
|
2340 |
||
2341 |
"U+0069 LATIN SMALL LETTER I"
|
|
2342 |
(which is 0x69 in utf8, i.e. one byte)
|
|
2343 |
||
2344 |
So, we need to put '\0' terminator after converting.
|
|
2345 |
*/
|
|
2346 |
||
2347 |
*dst= '\0'; |
|
2348 |
return (size_t) (dst - dst0); |
|
2349 |
}
|
|
2350 |
||
2351 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2352 |
int
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2353 |
my_strnncoll_utf8mb4(const CHARSET_INFO * const cs, |
481
by Brian Aker
Remove all of uchar. |
2354 |
const unsigned char *s, size_t slen, |
2355 |
const unsigned char *t, size_t tlen, |
|
276
by Brian Aker
Cleaned out my_bool from strings. |
2356 |
bool t_is_prefix) |
1
by brian
clean slate |
2357 |
{
|
435.1.2
by Monty
Fixed older compiler warning. |
2358 |
my_wc_t s_wc=0; |
2359 |
my_wc_t t_wc=0; |
|
481
by Brian Aker
Remove all of uchar. |
2360 |
const unsigned char *se= s + slen; |
2361 |
const unsigned char *te= t + tlen; |
|
1
by brian
clean slate |
2362 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
2363 |
||
2364 |
while ( s < se && t < te ) |
|
2365 |
{
|
|
2366 |
int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se); |
|
2367 |
int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te); |
|
2368 |
||
2369 |
if ( s_res <= 0 || t_res <= 0 ) |
|
2370 |
{
|
|
2371 |
/* Incorrect string, compare bytewise */
|
|
2372 |
return bincmp_utf8mb4(s, se, t, te); |
|
2373 |
}
|
|
2374 |
||
2375 |
my_tosort_utf8mb4(uni_plane, &s_wc); |
|
2376 |
my_tosort_utf8mb4(uni_plane, &t_wc); |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2377 |
|
1
by brian
clean slate |
2378 |
if ( s_wc != t_wc ) |
2379 |
{
|
|
2380 |
return s_wc > t_wc ? 1 : -1; |
|
2381 |
}
|
|
2382 |
||
2383 |
s+= s_res; |
|
2384 |
t+= t_res; |
|
2385 |
}
|
|
2386 |
return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t))); |
|
2387 |
}
|
|
2388 |
||
2389 |
||
2390 |
/**
|
|
2391 |
Compare strings, discarding end space
|
|
2392 |
||
2393 |
If one string is shorter as the other, then we space extend the other
|
|
2394 |
so that the strings have equal length.
|
|
2395 |
||
2396 |
This will ensure that the following things hold:
|
|
2397 |
||
2398 |
"a" == "a "
|
|
2399 |
"a\0" < "a"
|
|
2400 |
"a\0" < "a "
|
|
2401 |
||
2402 |
@param cs Character set pinter.
|
|
2403 |
@param a First string to compare.
|
|
2404 |
@param a_length Length of 'a'.
|
|
2405 |
@param b Second string to compare.
|
|
2406 |
@param b_length Length of 'b'.
|
|
2407 |
@param diff_if_only_endspace_difference
|
|
2408 |
Set to 1 if the strings should be regarded as different
|
|
2409 |
if they only difference in end space
|
|
2410 |
||
2411 |
@return Comparison result.
|
|
2412 |
@retval Negative number, if a less than b.
|
|
2413 |
@retval 0, if a is equal to b
|
|
2414 |
@retval Positive number, if a > b
|
|
2415 |
*/
|
|
2416 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2417 |
int
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2418 |
my_strnncollsp_utf8mb4(const CHARSET_INFO * const cs, |
481
by Brian Aker
Remove all of uchar. |
2419 |
const unsigned char *s, size_t slen, |
2420 |
const unsigned char *t, size_t tlen, |
|
276
by Brian Aker
Cleaned out my_bool from strings. |
2421 |
bool diff_if_only_endspace_difference) |
1
by brian
clean slate |
2422 |
{
|
2423 |
int res; |
|
435.1.2
by Monty
Fixed older compiler warning. |
2424 |
my_wc_t s_wc=0; |
2425 |
my_wc_t t_wc=0; |
|
481
by Brian Aker
Remove all of uchar. |
2426 |
const unsigned char *se= s + slen, *te= t + tlen; |
1
by brian
clean slate |
2427 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
2428 |
||
2429 |
#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
|
|
163
by Brian Aker
Merge Monty's code. |
2430 |
diff_if_only_endspace_difference= false; |
1
by brian
clean slate |
2431 |
#endif
|
2432 |
||
2433 |
while ( s < se && t < te ) |
|
2434 |
{
|
|
2435 |
int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se); |
|
2436 |
int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te); |
|
2437 |
||
2438 |
if ( s_res <= 0 || t_res <= 0 ) |
|
2439 |
{
|
|
2440 |
/* Incorrect string, compare bytewise */
|
|
2441 |
return bincmp_utf8mb4(s, se, t, te); |
|
2442 |
}
|
|
2443 |
||
2444 |
my_tosort_utf8mb4(uni_plane, &s_wc); |
|
2445 |
my_tosort_utf8mb4(uni_plane, &t_wc); |
|
2446 |
||
2447 |
if ( s_wc != t_wc ) |
|
2448 |
{
|
|
2449 |
return s_wc > t_wc ? 1 : -1; |
|
2450 |
}
|
|
2451 |
||
2452 |
s+=s_res; |
|
2453 |
t+=t_res; |
|
2454 |
}
|
|
2455 |
||
2456 |
slen= (size_t) (se-s); |
|
2457 |
tlen= (size_t) (te-t); |
|
2458 |
res= 0; |
|
2459 |
||
2460 |
if (slen != tlen) |
|
2461 |
{
|
|
2462 |
int swap= 1; |
|
2463 |
if (diff_if_only_endspace_difference) |
|
2464 |
res= 1; /* Assume 'a' is bigger */ |
|
2465 |
if (slen < tlen) |
|
2466 |
{
|
|
2467 |
slen= tlen; |
|
2468 |
s= t; |
|
2469 |
se= te; |
|
2470 |
swap= -1; |
|
2471 |
res= -res; |
|
2472 |
}
|
|
2473 |
/*
|
|
2474 |
This following loop uses the fact that in UTF-8
|
|
2475 |
all multibyte characters are greater than space,
|
|
2476 |
and all multibyte head characters are greater than
|
|
2477 |
space. It means if we meet a character greater
|
|
2478 |
than space, it always means that the longer string
|
|
2479 |
is greater. So we can reuse the same loop from the
|
|
2480 |
8bit version, without having to process full multibute
|
|
2481 |
sequences.
|
|
2482 |
*/
|
|
2483 |
for ( ; s < se; s++) |
|
2484 |
{
|
|
2485 |
if (*s != ' ') |
|
2486 |
return (*s < ' ') ? -swap : swap; |
|
2487 |
}
|
|
2488 |
}
|
|
2489 |
return res; |
|
2490 |
}
|
|
2491 |
||
2492 |
||
2493 |
/**
|
|
2494 |
Compare 0-terminated UTF8 strings.
|
|
2495 |
||
2496 |
@param cs character set handler
|
|
2497 |
@param s First 0-terminated string to compare
|
|
2498 |
@param t Second 0-terminated string to compare
|
|
2499 |
||
2500 |
@return Comparison result.
|
|
2501 |
@retval negative number if s < t
|
|
2502 |
@retval positive number if s > t
|
|
2503 |
@retval 0 is the strings are equal
|
|
2504 |
*/
|
|
2505 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2506 |
int my_strcasecmp_utf8mb4(const CHARSET_INFO * const cs, |
2507 |
const char *s, const char *t) |
|
1
by brian
clean slate |
2508 |
{
|
2509 |
MY_UNICASE_INFO **uni_plane= cs->caseinfo; |
|
2510 |
while (s[0] && t[0]) |
|
2511 |
{
|
|
2512 |
my_wc_t s_wc,t_wc; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2513 |
|
481
by Brian Aker
Remove all of uchar. |
2514 |
if ((unsigned char) s[0] < 128) |
1
by brian
clean slate |
2515 |
{
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2516 |
/*
|
1
by brian
clean slate |
2517 |
s[0] is between 0 and 127.
|
2518 |
It represents a single byte character.
|
|
2519 |
Convert it into weight according to collation.
|
|
2520 |
*/
|
|
481
by Brian Aker
Remove all of uchar. |
2521 |
s_wc= plane00[(unsigned char) s[0]].tolower; |
1
by brian
clean slate |
2522 |
s++; |
2523 |
}
|
|
2524 |
else
|
|
2525 |
{
|
|
481
by Brian Aker
Remove all of uchar. |
2526 |
int res= my_mb_wc_utf8mb4_no_range(cs, &s_wc, (const unsigned char*) s); |
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2527 |
|
2528 |
/*
|
|
1
by brian
clean slate |
2529 |
In the case of wrong multibyte sequence we will
|
2530 |
call strcmp() for byte-to-byte comparison.
|
|
2531 |
*/
|
|
2532 |
if (res <= 0) |
|
2533 |
return strcmp(s, t); |
|
2534 |
s+= res; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2535 |
|
1
by brian
clean slate |
2536 |
my_tolower_utf8mb4(uni_plane, &s_wc); |
2537 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2538 |
|
2539 |
||
1
by brian
clean slate |
2540 |
/* Do the same for the second string */
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2541 |
|
481
by Brian Aker
Remove all of uchar. |
2542 |
if ((unsigned char) t[0] < 128) |
1
by brian
clean slate |
2543 |
{
|
2544 |
/* Convert single byte character into weight */
|
|
481
by Brian Aker
Remove all of uchar. |
2545 |
t_wc= plane00[(unsigned char) t[0]].tolower; |
1
by brian
clean slate |
2546 |
t++; |
2547 |
}
|
|
2548 |
else
|
|
2549 |
{
|
|
481
by Brian Aker
Remove all of uchar. |
2550 |
int res= my_mb_wc_utf8mb4_no_range(cs, &t_wc, (const unsigned char*) t); |
1
by brian
clean slate |
2551 |
if (res <= 0) |
2552 |
return strcmp(s, t); |
|
2553 |
t+= res; |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2554 |
|
1
by brian
clean slate |
2555 |
my_tolower_utf8mb4(uni_plane, &t_wc); |
2556 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2557 |
|
1
by brian
clean slate |
2558 |
/* Now we have two weights, let's compare them */
|
2559 |
if ( s_wc != t_wc ) |
|
2560 |
return ((int) s_wc) - ((int) t_wc); |
|
2561 |
}
|
|
481
by Brian Aker
Remove all of uchar. |
2562 |
return ((int) (unsigned char) s[0]) - ((int) (unsigned char) t[0]); |
1
by brian
clean slate |
2563 |
}
|
2564 |
||
2565 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2566 |
int
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2567 |
my_wildcmp_utf8mb4(const CHARSET_INFO * const cs, |
1
by brian
clean slate |
2568 |
const char *str, const char *strend, |
2569 |
const char *wildstr, const char *wildend, |
|
2570 |
int escape, int w_one, int w_many) |
|
2571 |
{
|
|
2572 |
return my_wildcmp_unicode(cs, str, strend, wildstr, wildend, |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2573 |
escape, w_one, w_many, cs->caseinfo); |
1
by brian
clean slate |
2574 |
}
|
2575 |
||
2576 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2577 |
size_t
|
2578 |
my_strnxfrmlen_utf8mb4(const CHARSET_INFO * const, size_t len) |
|
1
by brian
clean slate |
2579 |
{
|
2580 |
/* TODO: fix when working on WL "Unicode new version" */
|
|
2581 |
return (len * 2 + 2) / 4; |
|
2582 |
}
|
|
2583 |
||
2584 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2585 |
size_t
|
264.2.6
by Andrey Hristov
Constify the usage of CHARSET_INFO almost to the last place in the code. |
2586 |
my_strnxfrm_utf8mb4(const CHARSET_INFO * const cs, |
482
by Brian Aker
Remove uint. |
2587 |
unsigned char *dst, size_t dstlen, uint32_t nweights, |
2588 |
const unsigned char *src, size_t srclen, uint32_t flags) |
|
1
by brian
clean slate |
2589 |
{
|
2590 |
my_wc_t wc; |
|
2591 |
int res; |
|
481
by Brian Aker
Remove all of uchar. |
2592 |
unsigned char *dst0= dst; |
2593 |
unsigned char *de= dst + dstlen; |
|
2594 |
unsigned char *de_beg= de - 1; |
|
2595 |
const unsigned char *se = src + srclen; |
|
1
by brian
clean slate |
2596 |
MY_UNICASE_INFO **uni_plane= (cs->state & MY_CS_BINSORT) ? |
2597 |
NULL : cs->caseinfo; |
|
2598 |
||
2599 |
for (; dst < de_beg && nweights; nweights--) |
|
2600 |
{
|
|
2601 |
if ((res= my_mb_wc_utf8mb4(cs,&wc, src, se)) <= 0) |
|
2602 |
break; |
|
2603 |
src+=res; |
|
2604 |
||
2605 |
if (uni_plane) |
|
2606 |
my_tosort_utf8mb4(uni_plane, &wc); |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2607 |
|
481
by Brian Aker
Remove all of uchar. |
2608 |
*dst++= (unsigned char)(wc >> 8); |
2609 |
*dst++= (unsigned char)(wc & 0xFF); |
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2610 |
|
1
by brian
clean slate |
2611 |
}
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2612 |
|
1
by brian
clean slate |
2613 |
if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE)) |
2614 |
{
|
|
2615 |
/* Fill the tail with keys for space character */
|
|
2616 |
for (; dst < de_beg && nweights; nweights--) |
|
2617 |
{
|
|
2618 |
*dst++= 0x00; |
|
2619 |
*dst++= 0x20; |
|
2620 |
}
|
|
660.1.3
by Eric Herman
removed trailing whitespace with simple script: |
2621 |
|
1
by brian
clean slate |
2622 |
if (dst < de) /* Clear the last byte, if "dstlen" was an odd number */ |
2623 |
*dst++= 0x00; |
|
2624 |
}
|
|
2625 |
my_strxfrm_desc_and_reverse(dst0, dst, flags, 0); |
|
2626 |
return dst - dst0; |
|
2627 |
}
|
|
2628 |
||
2629 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2630 |
unsigned int my_ismbchar_utf8mb4(const CHARSET_INFO * const cs, |
2631 |
const char *b, const char *e) |
|
1
by brian
clean slate |
2632 |
{
|
2633 |
my_wc_t wc; |
|
481
by Brian Aker
Remove all of uchar. |
2634 |
int res= my_mb_wc_utf8mb4(cs,&wc, (const unsigned char*)b, (const unsigned char*)e); |
1
by brian
clean slate |
2635 |
return (res > 1) ? res : 0; |
2636 |
}
|
|
2637 |
||
2638 |
||
632.1.10
by Monty Taylor
Got rid of Sun Studio warnings. |
2639 |
unsigned int my_mbcharlen_utf8mb4(const CHARSET_INFO * const, uint32_t c) |
1
by brian
clean slate |
2640 |
{
|
2641 |
if (c < 0x80) |
|
2642 |
return 1; |
|
2643 |
if (c < 0xc2) |
|
2644 |
return 0; /* Illegal mb head */ |
|
2645 |
if (c < 0xe0) |
|
2646 |
return 2; |
|
2647 |
if (c < 0xf0) |
|
2648 |
return 3; |
|
2649 |
if (c < 0xf8) |
|
2650 |
return 4; |
|
2651 |
return 0; /* Illegal mb head */; |
|
2652 |
}
|
|
2653 |
||
2654 |
||
2655 |
static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler= |
|
2656 |
{
|
|
2657 |
NULL, /* init */ |
|
2658 |
my_strnncoll_utf8mb4, |
|
2659 |
my_strnncollsp_utf8mb4, |
|
2660 |
my_strnxfrm_utf8mb4, |
|
2661 |
my_strnxfrmlen_utf8mb4, |
|
2662 |
my_like_range_mb, |
|
2663 |
my_wildcmp_utf8mb4, |
|
2664 |
my_strcasecmp_utf8mb4, |
|
2665 |
my_instr_mb, |
|
2666 |
my_hash_sort_utf8mb4, |
|
2667 |
my_propagate_complex
|
|
2668 |
};
|
|
2669 |
||
2670 |
||
2671 |
static MY_COLLATION_HANDLER my_collation_utf8mb4_bin_handler = |
|
2672 |
{
|
|
2673 |
NULL, /* init */ |
|
2674 |
my_strnncoll_mb_bin, |
|
2675 |
my_strnncollsp_mb_bin, |
|
2676 |
my_strnxfrm_utf8mb4, |
|
2677 |
my_strnxfrmlen_utf8mb4, |
|
2678 |
my_like_range_mb, |
|
2679 |
my_wildcmp_mb_bin, |
|
2680 |
my_strcasecmp_mb_bin, |
|
2681 |
my_instr_mb, |
|
2682 |
my_hash_sort_mb_bin, |
|
2683 |
my_propagate_simple
|
|
2684 |
};
|
|
2685 |
||
2686 |
||
2687 |
MY_CHARSET_HANDLER my_charset_utf8mb4_handler= |
|
2688 |
{
|
|
2689 |
NULL, /* init */ |
|
2690 |
my_ismbchar_utf8mb4, |
|
2691 |
my_mbcharlen_utf8mb4, |
|
2692 |
my_numchars_mb, |
|
2693 |
my_charpos_mb, |
|
2694 |
my_well_formed_len_mb, |
|
2695 |
my_lengthsp_8bit, |
|
2696 |
my_numcells_mb, |
|
2697 |
my_mb_wc_utf8mb4, |
|
2698 |
my_wc_mb_utf8mb4, |
|
2699 |
my_mb_ctype_mb, |
|
2700 |
my_caseup_str_utf8mb4, |
|
2701 |
my_casedn_str_utf8mb4, |
|
2702 |
my_caseup_utf8mb4, |
|
2703 |
my_casedn_utf8mb4, |
|
2704 |
my_snprintf_8bit, |
|
2705 |
my_long10_to_str_8bit, |
|
152
by Brian Aker
longlong replacement |
2706 |
my_int64_t10_to_str_8bit, |
1
by brian
clean slate |
2707 |
my_fill_8bit, |
2708 |
my_strntol_8bit, |
|
2709 |
my_strntoul_8bit, |
|
2710 |
my_strntoll_8bit, |
|
2711 |
my_strntoull_8bit, |
|
2712 |
my_strntod_8bit, |
|
2713 |
my_strtoll10_8bit, |
|
2714 |
my_strntoull10rnd_8bit, |
|
2715 |
my_scan_8bit
|
|
2716 |
};
|
|
2717 |
||
2718 |
||
2719 |
||
2720 |
CHARSET_INFO my_charset_utf8mb4_general_ci= |
|
2721 |
{
|
|
2722 |
45,0,0, /* number */ |
|
2723 |
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ |
|
2724 |
MY_UTF8MB4, /* cs name */ |
|
2725 |
MY_UTF8MB4_GENERAL_CI,/* name */ |
|
2726 |
"UTF-8 Unicode", /* comment */ |
|
2727 |
NULL, /* tailoring */ |
|
2728 |
ctype_utf8mb4, /* ctype */ |
|
2729 |
to_lower_utf8mb4, /* to_lower */ |
|
2730 |
to_upper_utf8mb4, /* to_upper */ |
|
2731 |
to_upper_utf8mb4, /* sort_order */ |
|
2732 |
NULL, /* contractions */ |
|
2733 |
NULL, /* sort_order_big*/ |
|
2734 |
NULL, /* tab_to_uni */ |
|
2735 |
NULL, /* tab_from_uni */ |
|
2736 |
my_unicase_default, /* caseinfo */ |
|
2737 |
NULL, /* state_map */ |
|
2738 |
NULL, /* ident_map */ |
|
2739 |
1, /* strxfrm_multiply */ |
|
2740 |
1, /* caseup_multiply */ |
|
2741 |
1, /* casedn_multiply */ |
|
2742 |
1, /* mbminlen */ |
|
2743 |
4, /* mbmaxlen */ |
|
2744 |
0, /* min_sort_char */ |
|
2745 |
0xFFFF, /* max_sort_char */ |
|
2746 |
' ', /* pad char */ |
|
2747 |
0, /* escape_with_backslash_is_dangerous */ |
|
2748 |
1, /* levels_for_compare */ |
|
2749 |
1, /* levels_for_order */ |
|
2750 |
&my_charset_utf8mb4_handler, |
|
2751 |
&my_collation_utf8mb4_general_ci_handler |
|
2752 |
};
|
|
2753 |
||
2754 |
||
2755 |
CHARSET_INFO my_charset_utf8mb4_bin= |
|
2756 |
{
|
|
2757 |
46,0,0, /* number */ |
|
2758 |
MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE, /* state */ |
|
2759 |
MY_UTF8MB4, /* cs name */ |
|
2760 |
MY_UTF8MB4_BIN, /* name */ |
|
2761 |
"UTF-8 Unicode", /* comment */ |
|
2762 |
NULL, /* tailoring */ |
|
2763 |
ctype_utf8mb4, /* ctype */ |
|
2764 |
to_lower_utf8mb4, /* to_lower */ |
|
2765 |
to_upper_utf8mb4, /* to_upper */ |
|
2766 |
NULL, /* sort_order */ |
|
2767 |
NULL, /* contractions */ |
|
2768 |
NULL, /* sort_order_big*/ |
|
2769 |
NULL, /* tab_to_uni */ |
|
2770 |
NULL, /* tab_from_uni */ |
|
2771 |
my_unicase_default, /* caseinfo */ |
|
2772 |
NULL, /* state_map */ |
|
2773 |
NULL, /* ident_map */ |
|
2774 |
1, /* strxfrm_multiply */ |
|
2775 |
1, /* caseup_multiply */ |
|
2776 |
1, /* casedn_multiply */ |
|
2777 |
1, /* mbminlen */ |
|
2778 |
4, /* mbmaxlen */ |
|
2779 |
0, /* min_sort_char */ |
|
2780 |
0xFFFF, /* max_sort_char */ |
|
2781 |
' ', /* pad char */ |
|
2782 |
0, /* escape_with_backslash_is_dangerous */ |
|
2783 |
1, /* levels_for_compare */ |
|
2784 |
1, /* levels_for_order */ |
|
2785 |
&my_charset_utf8mb4_handler, |
|
2786 |
&my_collation_utf8mb4_bin_handler |
|
2787 |
};
|
|
2788 |
||
1054.2.18
by Monty Taylor
Removed my_charset_filename... since we no longer use it. (hip hip, hoorah!) |
2789 |
|
1
by brian
clean slate |
2790 |
|
481
by Brian Aker
Remove all of uchar. |
2791 |
static inline int bincmp(const unsigned char *s, const unsigned char *se, |
2792 |
const unsigned char *t, const unsigned char *te) |
|
1
by brian
clean slate |
2793 |
{
|
2794 |
int slen= (int) (se-s), tlen= (int) (te-t); |
|
1067.4.9
by Nathan Williams
Converted all usages of cmin/cmax in mystrings directory to use std::min/max |
2795 |
int len= min(slen,tlen); |
1
by brian
clean slate |
2796 |
int cmp= memcmp(s,t,len); |
2797 |
return cmp ? cmp : slen-tlen; |
|
2798 |
}
|
|
2799 |
||
2800 |
||
2801 |
/*
|
|
2802 |
File system encoding components:
|
|
2803 |
||
2804 |
Code range Pattern Number Used Unused Blocks
|
|
2805 |
-----------------------------------------------------------------------------
|
|
2806 |
00C0..017F [.][0..4][g..z] 5*20= 100 97 3 Latin1 Supplement + Ext A
|
|
2807 |
0370..03FF [.][5..9][g..z] 5*20= 100 88 12 Greek + Coptic
|
|
2808 |
0400..052F [.][g..z][0..6] 20*7= 140 140 137 Cyrillic
|
|
2809 |
0530..058F [.][g..z][7..8] 20*2= 40 38 2 Armenian
|
|
2810 |
2160..217F [.][g..z][9] 20*1= 20 16 4 Number Forms
|
|
2811 |
0180..02AF [.][g..z][a..k] 28*11=220 203 17 Latin Ext B + IPA
|
|
2812 |
1E00..0EFF [.][g..z][l..r] 20*7= 140 136 4 Latin Additional Extended
|
|
2813 |
1F00..1FFF [.][g..z][s..z] 20*8= 160 144 16 Greek Extended
|
|
2814 |
.... .... [.][a..f][g..z] 6*20= 120 0 120 RESERVED
|
|
2815 |
24B6..24E9 [.][@][a..z] 26 26 0 Enclosed Alphanumerics
|
|
2816 |
FF21..FF5A [.][a..z][@] 26 26 0 Full Width forms
|
|
2817 |
||
2818 |
All other characters are encoded using five bytes:
|
|
2819 |
||
2820 |
[.][0..9a..z][0..9a..z][0..9a..z][0..9a..z]
|
|
2821 |
||
2822 |
*/
|
|
2823 |
||
1280.1.10
by Monty Taylor
Put everything in drizzled into drizzled namespace. |
2824 |
} /* namespace drizzled */ |
1
by brian
clean slate |
2825 |
|
2826 |
#ifdef MY_TEST_UTF8
|
|
2827 |
#include <stdio.h> |
|
2828 |
||
481
by Brian Aker
Remove all of uchar. |
2829 |
static void test_mb(CHARSET_INFO *cs, unsigned char *s) |
1
by brian
clean slate |
2830 |
{
|
2831 |
while(*s) |
|
2832 |
{
|
|
2833 |
if (my_ismbhead_utf8(cs,*s)) |
|
2834 |
{
|
|
482
by Brian Aker
Remove uint. |
2835 |
uint32_t len=my_mbcharlen_utf8(cs,*s); |
1
by brian
clean slate |
2836 |
while(len--) |
2837 |
{
|
|
2838 |
printf("%c",*s); |
|
2839 |
s++; |
|
2840 |
}
|
|
2841 |
printf("\n"); |
|
2842 |
}
|
|
2843 |
else
|
|
2844 |
{
|
|
2845 |
printf("%c\n",*s); |
|
2846 |
s++; |
|
2847 |
}
|
|
2848 |
}
|
|
2849 |
}
|
|
2850 |
||
2851 |
int main() |
|
2852 |
{
|
|
2853 |
char str[1024]=" utf8 test проба ПЕРА по-РУССКИ"; |
|
2854 |
CHARSET_INFO *cs; |
|
2855 |
||
481
by Brian Aker
Remove all of uchar. |
2856 |
test_mb(cs,(unsigned char*)str); |
1
by brian
clean slate |
2857 |
|
2858 |
printf("orig :'%s'\n",str); |
|
2859 |
||
2860 |
my_caseup_utf8(cs,str,15); |
|
2861 |
printf("caseup :'%s'\n",str); |
|
2862 |
||
2863 |
my_caseup_str_utf8(cs,str); |
|
2864 |
printf("caseup_str:'%s'\n",str); |
|
2865 |
||
2866 |
my_casedn_utf8(cs,str,15); |
|
2867 |
printf("casedn :'%s'\n",str); |
|
2868 |
||
2869 |
my_casedn_str_utf8(cs,str); |
|
2870 |
printf("casedn_str:'%s'\n",str); |
|
2871 |
||
2872 |
return 0; |
|
2873 |
}
|
|
2874 |
||
2875 |
#endif
|