OLD | NEW |
| (Empty) |
1 #include "license.hunspell" | |
2 #include "license.myspell" | |
3 | |
4 #include <stdlib.h> | |
5 #include <string.h> | |
6 #include <stdio.h> | |
7 #include <ctype.h> | |
8 | |
9 #include "csutil.hxx" | |
10 #include "atypes.hxx" | |
11 #include "langnum.hxx" | |
12 | |
13 // Unicode character encoding information | |
14 struct unicode_info { | |
15 unsigned short c; | |
16 unsigned short cupper; | |
17 unsigned short clower; | |
18 }; | |
19 | |
20 #ifdef OPENOFFICEORG | |
21 # include <unicode/uchar.h> | |
22 #else | |
23 # ifndef MOZILLA_CLIENT | |
24 # include "utf_info.cxx" | |
25 # define UTF_LST_LEN (sizeof(utf_lst) / (sizeof(unicode_info))) | |
26 # endif | |
27 #endif | |
28 | |
29 #ifdef MOZILLA_CLIENT | |
30 #include "nsCOMPtr.h" | |
31 #include "nsServiceManagerUtils.h" | |
32 #include "nsIUnicodeEncoder.h" | |
33 #include "nsIUnicodeDecoder.h" | |
34 #include "nsUnicharUtils.h" | |
35 #include "nsICharsetConverterManager.h" | |
36 | |
37 static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CI
D); | |
38 #endif | |
39 | |
40 struct unicode_info2 { | |
41 char cletter; | |
42 unsigned short cupper; | |
43 unsigned short clower; | |
44 }; | |
45 | |
46 static struct unicode_info2 * utf_tbl = NULL; | |
47 static int utf_tbl_count = 0; // utf_tbl can be used by multiple Hunspell instan
ces | |
48 | |
49 /* only UTF-16 (BMP) implementation */ | |
50 char * u16_u8(char * dest, int size, const w_char * src, int srclen) { | |
51 signed char * u8 = (signed char *)dest; | |
52 signed char * u8_max = (signed char *)(u8 + size); | |
53 const w_char * u2 = src; | |
54 const w_char * u2_max = src + srclen; | |
55 while ((u2 < u2_max) && (u8 < u8_max)) { | |
56 if (u2->h) { // > 0xFF | |
57 // XXX 4-byte haven't implemented yet. | |
58 if (u2->h >= 0x08) { // >= 0x800 (3-byte UTF-8 character) | |
59 *u8 = 0xe0 + (u2->h >> 4); | |
60 u8++; | |
61 if (u8 < u8_max) { | |
62 *u8 = 0x80 + ((u2->h & 0xf) << 2) + (u2->l >> 6); | |
63 u8++; | |
64 if (u8 < u8_max) { | |
65 *u8 = 0x80 + (u2->l & 0x3f); | |
66 u8++; | |
67 } | |
68 } | |
69 } else { // < 0x800 (2-byte UTF-8 character) | |
70 *u8 = 0xc0 + (u2->h << 2) + (u2->l >> 6); | |
71 u8++; | |
72 if (u8 < u8_max) { | |
73 *u8 = 0x80 + (u2->l & 0x3f); | |
74 u8++; | |
75 } | |
76 } | |
77 } else { // <= 0xFF | |
78 if (u2->l & 0x80) { // >0x80 (2-byte UTF-8 character) | |
79 *u8 = 0xc0 + (u2->l >> 6); | |
80 u8++; | |
81 if (u8 < u8_max) { | |
82 *u8 = 0x80 + (u2->l & 0x3f); | |
83 u8++; | |
84 } | |
85 } else { // < 0x80 (1-byte UTF-8 character) | |
86 *u8 = u2->l; | |
87 u8++; | |
88 } | |
89 } | |
90 u2++; | |
91 } | |
92 *u8 = '\0'; | |
93 return dest; | |
94 } | |
95 | |
96 | |
97 /* only UTF-16 (BMP) implementation */ | |
98 int u8_u16(w_char * dest, int size, const char * src) { | |
99 const signed char * u8 = (const signed char *)src; | |
100 w_char * u2 = dest; | |
101 w_char * u2_max = u2 + size; | |
102 | |
103 while ((u2 < u2_max) && *u8) { | |
104 switch ((*u8) & 0xf0) { | |
105 case 0x00: | |
106 case 0x10: | |
107 case 0x20: | |
108 case 0x30: | |
109 case 0x40: | |
110 case 0x50: | |
111 case 0x60: | |
112 case 0x70: { | |
113 u2->h = 0; | |
114 u2->l = *u8; | |
115 break; | |
116 } | |
117 case 0x80: | |
118 case 0x90: | |
119 case 0xa0: | |
120 case 0xb0: { | |
121 HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Unexpected continuat
ion bytes in %ld. character position\n%s\n", static_cast<long>(u8 - (signed char
*)src), src); | |
122 u2->h = 0xff; | |
123 u2->l = 0xfd; | |
124 break; | |
125 } | |
126 case 0xc0: | |
127 case 0xd0: { // 2-byte UTF-8 codes | |
128 if ((*(u8+1) & 0xc0) == 0x80) { | |
129 u2->h = (*u8 & 0x1f) >> 2; | |
130 u2->l = (*u8 << 6) + (*(u8+1) & 0x3f); | |
131 u8++; | |
132 } else { | |
133 HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continua
tion byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed cha
r *)src), src); | |
134 u2->h = 0xff; | |
135 u2->l = 0xfd; | |
136 } | |
137 break; | |
138 } | |
139 case 0xe0: { // 3-byte UTF-8 codes | |
140 if ((*(u8+1) & 0xc0) == 0x80) { | |
141 u2->h = ((*u8 & 0x0f) << 4) + ((*(u8+1) & 0x3f) >> 2); | |
142 u8++; | |
143 if ((*(u8+1) & 0xc0) == 0x80) { | |
144 u2->l = (*u8 << 6) + (*(u8+1) & 0x3f); | |
145 u8++; | |
146 } else { | |
147 HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing cont
inuation byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed
char *)src), src); | |
148 u2->h = 0xff; | |
149 u2->l = 0xfd; | |
150 } | |
151 } else { | |
152 HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continua
tion byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed cha
r *)src), src); | |
153 u2->h = 0xff; | |
154 u2->l = 0xfd; | |
155 } | |
156 break; | |
157 } | |
158 case 0xf0: { // 4 or more byte UTF-8 codes | |
159 HUNSPELL_WARNING(stderr, "This UTF-8 encoding can't convert to UTF-1
6:\n%s\n", src); | |
160 u2->h = 0xff; | |
161 u2->l = 0xfd; | |
162 return -1; | |
163 } | |
164 } | |
165 u8++; | |
166 u2++; | |
167 } | |
168 return (int)(u2 - dest); | |
169 } | |
170 | |
171 void flag_qsort(unsigned short flags[], int begin, int end) { | |
172 unsigned short reg; | |
173 if (end > begin) { | |
174 unsigned short pivot = flags[begin]; | |
175 int l = begin + 1; | |
176 int r = end; | |
177 while(l < r) { | |
178 if (flags[l] <= pivot) { | |
179 l++; | |
180 } else { | |
181 r--; | |
182 reg = flags[l]; | |
183 flags[l] = flags[r]; | |
184 flags[r] = reg; | |
185 } | |
186 } | |
187 l--; | |
188 reg = flags[begin]; | |
189 flags[begin] = flags[l]; | |
190 flags[l] = reg; | |
191 | |
192 flag_qsort(flags, begin, l); | |
193 flag_qsort(flags, r, end); | |
194 } | |
195 } | |
196 | |
197 int flag_bsearch(unsigned short flags[], unsigned short flag, int length) { | |
198 int mid; | |
199 int left = 0; | |
200 int right = length - 1; | |
201 while (left <= right) { | |
202 mid = (left + right) / 2; | |
203 if (flags[mid] == flag) return 1; | |
204 if (flag < flags[mid]) right = mid - 1; | |
205 else left = mid + 1; | |
206 } | |
207 return 0; | |
208 } | |
209 | |
210 // strip strings into token based on single char delimiter | |
211 // acts like strsep() but only uses a delim char and not | |
212 // a delim string | |
213 // default delimiter: white space characters | |
214 | |
215 char * mystrsep(char ** stringp, const char delim) | |
216 { | |
217 char * mp = *stringp; | |
218 if (*mp != '\0') { | |
219 char * dp; | |
220 if (delim) { | |
221 dp = strchr(mp, delim); | |
222 } else { | |
223 // don't use isspace() here, the string can be in some random charset | |
224 // that's way different than the locale's | |
225 for (dp = mp; (*dp && *dp != ' ' && *dp != '\t'); dp++); | |
226 if (!*dp) dp = NULL; | |
227 } | |
228 if (dp) { | |
229 *stringp = dp+1; | |
230 *dp = '\0'; | |
231 } else { | |
232 *stringp = mp + strlen(mp); | |
233 } | |
234 return mp; | |
235 } | |
236 return NULL; | |
237 } | |
238 | |
239 // replaces strdup with ansi version | |
240 char * mystrdup(const char * s) | |
241 { | |
242 char * d = NULL; | |
243 if (s) { | |
244 size_t sl = strlen(s)+1; | |
245 d = (char *) malloc(sl); | |
246 if (d) { | |
247 memcpy(d,s,sl); | |
248 } else { | |
249 HUNSPELL_WARNING(stderr, "Can't allocate memory.\n"); | |
250 } | |
251 } | |
252 return d; | |
253 } | |
254 | |
255 // strcat for limited length destination string | |
256 char * mystrcat(char * dest, const char * st, int max) { | |
257 int len; | |
258 int len2; | |
259 if (dest == NULL || st == NULL) return dest; | |
260 len = strlen(dest); | |
261 len2 = strlen(st); | |
262 if (len + len2 + 1 > max) return dest; | |
263 strcpy(dest + len, st); | |
264 return dest; | |
265 } | |
266 | |
267 // remove cross-platform text line end characters | |
268 void mychomp(char * s) | |
269 { | |
270 size_t k = strlen(s); | |
271 if ((k > 0) && ((*(s+k-1)=='\r') || (*(s+k-1)=='\n'))) *(s+k-1) = '\0'; | |
272 if ((k > 1) && (*(s+k-2) == '\r')) *(s+k-2) = '\0'; | |
273 } | |
274 | |
275 | |
276 // does an ansi strdup of the reverse of a string | |
277 char * myrevstrdup(const char * s) | |
278 { | |
279 char * d = NULL; | |
280 if (s) { | |
281 size_t sl = strlen(s); | |
282 d = (char *) malloc(sl+1); | |
283 if (d) { | |
284 const char * p = s + sl - 1; | |
285 char * q = d; | |
286 while (p >= s) *q++ = *p--; | |
287 *q = '\0'; | |
288 } else { | |
289 HUNSPELL_WARNING(stderr, "Can't allocate memory.\n"); | |
290 } | |
291 } | |
292 return d; | |
293 } | |
294 | |
295 // break text to lines | |
296 // return number of lines | |
297 int line_tok(const char * text, char *** lines, char breakchar) { | |
298 int linenum = 0; | |
299 if (!text) { | |
300 return linenum; | |
301 } | |
302 char * dup = mystrdup(text); | |
303 char * p = strchr(dup, breakchar); | |
304 while (p) { | |
305 linenum++; | |
306 *p = '\0'; | |
307 p++; | |
308 p = strchr(p, breakchar); | |
309 } | |
310 linenum++; | |
311 *lines = (char **) malloc(linenum * sizeof(char *)); | |
312 if (!(*lines)) { | |
313 free(dup); | |
314 return 0; | |
315 } | |
316 | |
317 p = dup; | |
318 int l = 0; | |
319 for (int i = 0; i < linenum; i++) { | |
320 if (*p != '\0') { | |
321 (*lines)[l] = mystrdup(p); | |
322 if (!(*lines)[l]) { | |
323 for (i = 0; i < l; i++) free((*lines)[i]); | |
324 free(dup); | |
325 return 0; | |
326 } | |
327 l++; | |
328 } | |
329 p += strlen(p) + 1; | |
330 } | |
331 free(dup); | |
332 if (!l) free(*lines); | |
333 return l; | |
334 } | |
335 | |
336 // uniq line in place | |
337 char * line_uniq(char * text, char breakchar) { | |
338 char ** lines; | |
339 int linenum = line_tok(text, &lines, breakchar); | |
340 int i; | |
341 strcpy(text, lines[0]); | |
342 for ( i = 1; i < linenum; i++ ) { | |
343 int dup = 0; | |
344 for (int j = 0; j < i; j++) { | |
345 if (strcmp(lines[i], lines[j]) == 0) dup = 1; | |
346 } | |
347 if (!dup) { | |
348 if ((i > 1) || (*(lines[0]) != '\0')) { | |
349 sprintf(text + strlen(text), "%c", breakchar); | |
350 } | |
351 strcat(text, lines[i]); | |
352 } | |
353 } | |
354 for ( i = 0; i < linenum; i++ ) { | |
355 if (lines[i]) free(lines[i]); | |
356 } | |
357 if (lines) free(lines); | |
358 return text; | |
359 } | |
360 | |
361 // uniq and boundary for compound analysis: "1\n\2\n\1" -> " ( \1 | \2 ) " | |
362 char * line_uniq_app(char ** text, char breakchar) { | |
363 if (!strchr(*text, breakchar)) { | |
364 return *text; | |
365 } | |
366 | |
367 char ** lines; | |
368 int i; | |
369 int linenum = line_tok(*text, &lines, breakchar); | |
370 int dup = 0; | |
371 for (i = 0; i < linenum; i++) { | |
372 for (int j = 0; j < (i - 1); j++) { | |
373 if (strcmp(lines[i], lines[j]) == 0) { | |
374 *(lines[i]) = '\0'; | |
375 dup++; | |
376 break; | |
377 } | |
378 } | |
379 } | |
380 if ((linenum - dup) == 1) { | |
381 strcpy(*text, lines[0]); | |
382 freelist(&lines, linenum); | |
383 return *text; | |
384 } | |
385 char * newtext = (char *) malloc(strlen(*text) + 2 * linenum + 3 + 1); | |
386 if (newtext) { | |
387 free(*text); | |
388 *text = newtext; | |
389 } else { | |
390 freelist(&lines, linenum); | |
391 return *text; | |
392 } | |
393 strcpy(*text," ( "); | |
394 for (i = 0; i < linenum; i++) if (*(lines[i])) { | |
395 sprintf(*text + strlen(*text), "%s%s", lines[i], " | "); | |
396 } | |
397 (*text)[strlen(*text) - 2] = ')'; // " ) " | |
398 freelist(&lines, linenum); | |
399 return *text; | |
400 } | |
401 | |
402 // append s to ends of every lines in text | |
403 void strlinecat(char * dest, const char * s) | |
404 { | |
405 char * dup = mystrdup(dest); | |
406 char * source = dup; | |
407 int len = strlen(s); | |
408 if (dup) { | |
409 while (*source) { | |
410 if (*source == '\n') { | |
411 strncpy(dest, s, len); | |
412 dest += len; | |
413 } | |
414 *dest = *source; | |
415 source++; dest++; | |
416 } | |
417 strcpy(dest, s); | |
418 free(dup); | |
419 } | |
420 } | |
421 | |
422 // change \n to char c | |
423 char * tr(char * text, char oldc, char newc) { | |
424 char * p; | |
425 for (p = text; *p; p++) if (*p == oldc) *p = newc; | |
426 return text; | |
427 } | |
428 | |
429 // morphcmp(): compare MORPH_DERI_SFX, MORPH_INFL_SFX and MORPH_TERM_SFX fields | |
430 // in the first line of the inputs | |
431 // return 0, if inputs equal | |
432 // return 1, if inputs may equal with a secondary suffix | |
433 // otherwise return -1 | |
434 int morphcmp(const char * s, const char * t) | |
435 { | |
436 int se = 0; | |
437 int te = 0; | |
438 const char * sl; | |
439 const char * tl; | |
440 const char * olds; | |
441 const char * oldt; | |
442 if (!s || !t) return 1; | |
443 olds = s; | |
444 sl = strchr(s, '\n'); | |
445 s = strstr(s, MORPH_DERI_SFX); | |
446 if (!s || (sl && sl < s)) s = strstr(olds, MORPH_INFL_SFX); | |
447 if (!s || (sl && sl < s)) { | |
448 s= strstr(olds, MORPH_TERM_SFX); | |
449 olds = NULL; | |
450 } | |
451 oldt = t; | |
452 tl = strchr(t, '\n'); | |
453 t = strstr(t, MORPH_DERI_SFX); | |
454 if (!t || (tl && tl < t)) t = strstr(oldt, MORPH_INFL_SFX); | |
455 if (!t || (tl && tl < t)) { | |
456 t = strstr(oldt, MORPH_TERM_SFX); | |
457 oldt = NULL; | |
458 } | |
459 while (s && t && (!sl || sl > s) && (!tl || tl > t)) { | |
460 s += MORPH_TAG_LEN; | |
461 t += MORPH_TAG_LEN; | |
462 se = 0; | |
463 te = 0; | |
464 while ((*s == *t) && !se && !te) { | |
465 s++; | |
466 t++; | |
467 switch(*s) { | |
468 case ' ': | |
469 case '\n': | |
470 case '\t': | |
471 case '\0': se = 1; | |
472 } | |
473 switch(*t) { | |
474 case ' ': | |
475 case '\n': | |
476 case '\t': | |
477 case '\0': te = 1; | |
478 } | |
479 } | |
480 if (!se || !te) { | |
481 // not terminal suffix difference | |
482 if (olds) return -1; | |
483 return 1; | |
484 } | |
485 olds = s; | |
486 s = strstr(s, MORPH_DERI_SFX); | |
487 if (!s || (sl && sl < s)) s = strstr(olds, MORPH_INFL_SFX); | |
488 if (!s || (sl && sl < s)) { | |
489 s = strstr(olds, MORPH_TERM_SFX); | |
490 olds = NULL; | |
491 } | |
492 oldt = t; | |
493 t = strstr(t, MORPH_DERI_SFX); | |
494 if (!t || (tl && tl < t)) t = strstr(oldt, MORPH_INFL_SFX); | |
495 if (!t || (tl && tl < t)) { | |
496 t = strstr(oldt, MORPH_TERM_SFX); | |
497 oldt = NULL; | |
498 } | |
499 } | |
500 if (!s && !t && se && te) return 0; | |
501 return 1; | |
502 } | |
503 | |
504 int get_sfxcount(const char * morph) | |
505 { | |
506 if (!morph || !*morph) return 0; | |
507 int n = 0; | |
508 const char * old = morph; | |
509 morph = strstr(morph, MORPH_DERI_SFX); | |
510 if (!morph) morph = strstr(old, MORPH_INFL_SFX); | |
511 if (!morph) morph = strstr(old, MORPH_TERM_SFX); | |
512 while (morph) { | |
513 n++; | |
514 old = morph; | |
515 morph = strstr(morph + 1, MORPH_DERI_SFX); | |
516 if (!morph) morph = strstr(old + 1, MORPH_INFL_SFX); | |
517 if (!morph) morph = strstr(old + 1, MORPH_TERM_SFX); | |
518 } | |
519 return n; | |
520 } | |
521 | |
522 | |
523 int fieldlen(const char * r) | |
524 { | |
525 int n = 0; | |
526 while (r && *r != ' ' && *r != '\t' && *r != '\0' && *r != '\n') { | |
527 r++; | |
528 n++; | |
529 } | |
530 return n; | |
531 } | |
532 | |
533 char * copy_field(char * dest, const char * morph, const char * var) | |
534 { | |
535 if (!morph) return NULL; | |
536 const char * beg = strstr(morph, var); | |
537 if (beg) { | |
538 char * d = dest; | |
539 for (beg += MORPH_TAG_LEN; *beg != ' ' && *beg != '\t' && | |
540 *beg != '\n' && *beg != '\0'; d++, beg++) { | |
541 *d = *beg; | |
542 } | |
543 *d = '\0'; | |
544 return dest; | |
545 } | |
546 return NULL; | |
547 } | |
548 | |
549 char * mystrrep(char * word, const char * pat, const char * rep) { | |
550 char * pos = strstr(word, pat); | |
551 if (pos) { | |
552 int replen = strlen(rep); | |
553 int patlen = strlen(pat); | |
554 while (pos) { | |
555 if (replen < patlen) { | |
556 char * end = word + strlen(word); | |
557 char * next = pos + replen; | |
558 char * prev = pos + strlen(pat); | |
559 for (; prev < end; *next = *prev, prev++, next++); | |
560 *next = '\0'; | |
561 } else if (replen > patlen) { | |
562 char * end = pos + patlen; | |
563 char * next = word + strlen(word) + replen - patlen; | |
564 char * prev = next - replen + patlen; | |
565 for (; prev >= end; *next = *prev, prev--, next--); | |
566 } | |
567 strncpy(pos, rep, replen); | |
568 pos = strstr(word, pat); | |
569 } | |
570 } | |
571 return word; | |
572 } | |
573 | |
574 // reverse word | |
575 int reverseword(char * word) { | |
576 char r; | |
577 for (char * dest = word + strlen(word) - 1; word < dest; word++, dest--) { | |
578 r=*word; | |
579 *word = *dest; | |
580 *dest = r; | |
581 } | |
582 return 0; | |
583 } | |
584 | |
585 // reverse word (error: 1) | |
586 int reverseword_utf(char * word) { | |
587 w_char w[MAXWORDLEN]; | |
588 w_char * p; | |
589 w_char r; | |
590 int l = u8_u16(w, MAXWORDLEN, word); | |
591 if (l == -1) return 1; | |
592 p = w; | |
593 for (w_char * dest = w + l - 1; p < dest; p++, dest--) { | |
594 r=*p; | |
595 *p = *dest; | |
596 *dest = r; | |
597 } | |
598 u16_u8(word, MAXWORDUTF8LEN, w, l); | |
599 return 0; | |
600 } | |
601 | |
602 int uniqlist(char ** list, int n) { | |
603 int i; | |
604 if (n < 2) return n; | |
605 for (i = 0; i < n; i++) { | |
606 for (int j = 0; j < i; j++) { | |
607 if (list[j] && list[i] && (strcmp(list[j], list[i]) == 0)) { | |
608 free(list[i]); | |
609 list[i] = NULL; | |
610 break; | |
611 } | |
612 } | |
613 } | |
614 int m = 1; | |
615 for (i = 1; i < n; i++) if (list[i]) { | |
616 list[m] = list[i]; | |
617 m++; | |
618 } | |
619 return m; | |
620 } | |
621 | |
622 void freelist(char *** list, int n) { | |
623 if (list && *list && n > 0) { | |
624 for (int i = 0; i < n; i++) if ((*list)[i]) free((*list)[i]); | |
625 free(*list); | |
626 *list = NULL; | |
627 } | |
628 } | |
629 | |
630 // convert null terminated string to all caps | |
631 void mkallcap(char * p, const struct cs_info * csconv) | |
632 { | |
633 while (*p != '\0') { | |
634 *p = csconv[((unsigned char) *p)].cupper; | |
635 p++; | |
636 } | |
637 } | |
638 | |
639 // convert null terminated string to all little | |
640 void mkallsmall(char * p, const struct cs_info * csconv) | |
641 { | |
642 while (*p != '\0') { | |
643 *p = csconv[((unsigned char) *p)].clower; | |
644 p++; | |
645 } | |
646 } | |
647 | |
648 void mkallsmall_utf(w_char * u, int nc, int langnum) { | |
649 for (int i = 0; i < nc; i++) { | |
650 unsigned short idx = (u[i].h << 8) + u[i].l; | |
651 if (idx != unicodetolower(idx, langnum)) { | |
652 u[i].h = (unsigned char) (unicodetolower(idx, langnum) >> 8); | |
653 u[i].l = (unsigned char) (unicodetolower(idx, langnum) & 0x00FF); | |
654 } | |
655 } | |
656 } | |
657 | |
658 void mkallcap_utf(w_char * u, int nc, int langnum) { | |
659 for (int i = 0; i < nc; i++) { | |
660 unsigned short idx = (u[i].h << 8) + u[i].l; | |
661 if (idx != unicodetoupper(idx, langnum)) { | |
662 u[i].h = (unsigned char) (unicodetoupper(idx, langnum) >> 8); | |
663 u[i].l = (unsigned char) (unicodetoupper(idx, langnum) & 0x00FF); | |
664 } | |
665 } | |
666 } | |
667 | |
668 // convert null terminated string to have initial capital | |
669 void mkinitcap(char * p, const struct cs_info * csconv) | |
670 { | |
671 if (*p != '\0') *p = csconv[((unsigned char)*p)].cupper; | |
672 } | |
673 | |
674 // conversion function for protected memory | |
675 void store_pointer(char * dest, char * source) | |
676 { | |
677 memcpy(dest, &source, sizeof(char *)); | |
678 } | |
679 | |
680 // conversion function for protected memory | |
681 char * get_stored_pointer(const char * s) | |
682 { | |
683 char * p; | |
684 memcpy(&p, s, sizeof(char *)); | |
685 return p; | |
686 } | |
687 | |
688 #ifndef MOZILLA_CLIENT | |
689 // convert null terminated string to all caps using encoding | |
690 void enmkallcap(char * d, const char * p, const char * encoding) | |
691 | |
692 { | |
693 struct cs_info * csconv = get_current_cs(encoding); | |
694 while (*p != '\0') { | |
695 *d++ = csconv[((unsigned char) *p)].cupper; | |
696 p++; | |
697 } | |
698 *d = '\0'; | |
699 } | |
700 | |
701 // convert null terminated string to all little using encoding | |
702 void enmkallsmall(char * d, const char * p, const char * encoding) | |
703 { | |
704 struct cs_info * csconv = get_current_cs(encoding); | |
705 while (*p != '\0') { | |
706 *d++ = csconv[((unsigned char) *p)].clower; | |
707 p++; | |
708 } | |
709 *d = '\0'; | |
710 } | |
711 | |
712 // convert null terminated string to have initial capital using encoding | |
713 void enmkinitcap(char * d, const char * p, const char * encoding) | |
714 { | |
715 struct cs_info * csconv = get_current_cs(encoding); | |
716 memcpy(d,p,(strlen(p)+1)); | |
717 if (*p != '\0') *d= csconv[((unsigned char)*p)].cupper; | |
718 } | |
719 | |
720 // these are simple character mappings for the | |
721 // encodings supported | |
722 // supplying isupper, tolower, and toupper | |
723 | |
724 static struct cs_info iso1_tbl[] = { | |
725 { 0x00, 0x00, 0x00 }, | |
726 { 0x00, 0x01, 0x01 }, | |
727 { 0x00, 0x02, 0x02 }, | |
728 { 0x00, 0x03, 0x03 }, | |
729 { 0x00, 0x04, 0x04 }, | |
730 { 0x00, 0x05, 0x05 }, | |
731 { 0x00, 0x06, 0x06 }, | |
732 { 0x00, 0x07, 0x07 }, | |
733 { 0x00, 0x08, 0x08 }, | |
734 { 0x00, 0x09, 0x09 }, | |
735 { 0x00, 0x0a, 0x0a }, | |
736 { 0x00, 0x0b, 0x0b }, | |
737 { 0x00, 0x0c, 0x0c }, | |
738 { 0x00, 0x0d, 0x0d }, | |
739 { 0x00, 0x0e, 0x0e }, | |
740 { 0x00, 0x0f, 0x0f }, | |
741 { 0x00, 0x10, 0x10 }, | |
742 { 0x00, 0x11, 0x11 }, | |
743 { 0x00, 0x12, 0x12 }, | |
744 { 0x00, 0x13, 0x13 }, | |
745 { 0x00, 0x14, 0x14 }, | |
746 { 0x00, 0x15, 0x15 }, | |
747 { 0x00, 0x16, 0x16 }, | |
748 { 0x00, 0x17, 0x17 }, | |
749 { 0x00, 0x18, 0x18 }, | |
750 { 0x00, 0x19, 0x19 }, | |
751 { 0x00, 0x1a, 0x1a }, | |
752 { 0x00, 0x1b, 0x1b }, | |
753 { 0x00, 0x1c, 0x1c }, | |
754 { 0x00, 0x1d, 0x1d }, | |
755 { 0x00, 0x1e, 0x1e }, | |
756 { 0x00, 0x1f, 0x1f }, | |
757 { 0x00, 0x20, 0x20 }, | |
758 { 0x00, 0x21, 0x21 }, | |
759 { 0x00, 0x22, 0x22 }, | |
760 { 0x00, 0x23, 0x23 }, | |
761 { 0x00, 0x24, 0x24 }, | |
762 { 0x00, 0x25, 0x25 }, | |
763 { 0x00, 0x26, 0x26 }, | |
764 { 0x00, 0x27, 0x27 }, | |
765 { 0x00, 0x28, 0x28 }, | |
766 { 0x00, 0x29, 0x29 }, | |
767 { 0x00, 0x2a, 0x2a }, | |
768 { 0x00, 0x2b, 0x2b }, | |
769 { 0x00, 0x2c, 0x2c }, | |
770 { 0x00, 0x2d, 0x2d }, | |
771 { 0x00, 0x2e, 0x2e }, | |
772 { 0x00, 0x2f, 0x2f }, | |
773 { 0x00, 0x30, 0x30 }, | |
774 { 0x00, 0x31, 0x31 }, | |
775 { 0x00, 0x32, 0x32 }, | |
776 { 0x00, 0x33, 0x33 }, | |
777 { 0x00, 0x34, 0x34 }, | |
778 { 0x00, 0x35, 0x35 }, | |
779 { 0x00, 0x36, 0x36 }, | |
780 { 0x00, 0x37, 0x37 }, | |
781 { 0x00, 0x38, 0x38 }, | |
782 { 0x00, 0x39, 0x39 }, | |
783 { 0x00, 0x3a, 0x3a }, | |
784 { 0x00, 0x3b, 0x3b }, | |
785 { 0x00, 0x3c, 0x3c }, | |
786 { 0x00, 0x3d, 0x3d }, | |
787 { 0x00, 0x3e, 0x3e }, | |
788 { 0x00, 0x3f, 0x3f }, | |
789 { 0x00, 0x40, 0x40 }, | |
790 { 0x01, 0x61, 0x41 }, | |
791 { 0x01, 0x62, 0x42 }, | |
792 { 0x01, 0x63, 0x43 }, | |
793 { 0x01, 0x64, 0x44 }, | |
794 { 0x01, 0x65, 0x45 }, | |
795 { 0x01, 0x66, 0x46 }, | |
796 { 0x01, 0x67, 0x47 }, | |
797 { 0x01, 0x68, 0x48 }, | |
798 { 0x01, 0x69, 0x49 }, | |
799 { 0x01, 0x6a, 0x4a }, | |
800 { 0x01, 0x6b, 0x4b }, | |
801 { 0x01, 0x6c, 0x4c }, | |
802 { 0x01, 0x6d, 0x4d }, | |
803 { 0x01, 0x6e, 0x4e }, | |
804 { 0x01, 0x6f, 0x4f }, | |
805 { 0x01, 0x70, 0x50 }, | |
806 { 0x01, 0x71, 0x51 }, | |
807 { 0x01, 0x72, 0x52 }, | |
808 { 0x01, 0x73, 0x53 }, | |
809 { 0x01, 0x74, 0x54 }, | |
810 { 0x01, 0x75, 0x55 }, | |
811 { 0x01, 0x76, 0x56 }, | |
812 { 0x01, 0x77, 0x57 }, | |
813 { 0x01, 0x78, 0x58 }, | |
814 { 0x01, 0x79, 0x59 }, | |
815 { 0x01, 0x7a, 0x5a }, | |
816 { 0x00, 0x5b, 0x5b }, | |
817 { 0x00, 0x5c, 0x5c }, | |
818 { 0x00, 0x5d, 0x5d }, | |
819 { 0x00, 0x5e, 0x5e }, | |
820 { 0x00, 0x5f, 0x5f }, | |
821 { 0x00, 0x60, 0x60 }, | |
822 { 0x00, 0x61, 0x41 }, | |
823 { 0x00, 0x62, 0x42 }, | |
824 { 0x00, 0x63, 0x43 }, | |
825 { 0x00, 0x64, 0x44 }, | |
826 { 0x00, 0x65, 0x45 }, | |
827 { 0x00, 0x66, 0x46 }, | |
828 { 0x00, 0x67, 0x47 }, | |
829 { 0x00, 0x68, 0x48 }, | |
830 { 0x00, 0x69, 0x49 }, | |
831 { 0x00, 0x6a, 0x4a }, | |
832 { 0x00, 0x6b, 0x4b }, | |
833 { 0x00, 0x6c, 0x4c }, | |
834 { 0x00, 0x6d, 0x4d }, | |
835 { 0x00, 0x6e, 0x4e }, | |
836 { 0x00, 0x6f, 0x4f }, | |
837 { 0x00, 0x70, 0x50 }, | |
838 { 0x00, 0x71, 0x51 }, | |
839 { 0x00, 0x72, 0x52 }, | |
840 { 0x00, 0x73, 0x53 }, | |
841 { 0x00, 0x74, 0x54 }, | |
842 { 0x00, 0x75, 0x55 }, | |
843 { 0x00, 0x76, 0x56 }, | |
844 { 0x00, 0x77, 0x57 }, | |
845 { 0x00, 0x78, 0x58 }, | |
846 { 0x00, 0x79, 0x59 }, | |
847 { 0x00, 0x7a, 0x5a }, | |
848 { 0x00, 0x7b, 0x7b }, | |
849 { 0x00, 0x7c, 0x7c }, | |
850 { 0x00, 0x7d, 0x7d }, | |
851 { 0x00, 0x7e, 0x7e }, | |
852 { 0x00, 0x7f, 0x7f }, | |
853 { 0x00, 0x80, 0x80 }, | |
854 { 0x00, 0x81, 0x81 }, | |
855 { 0x00, 0x82, 0x82 }, | |
856 { 0x00, 0x83, 0x83 }, | |
857 { 0x00, 0x84, 0x84 }, | |
858 { 0x00, 0x85, 0x85 }, | |
859 { 0x00, 0x86, 0x86 }, | |
860 { 0x00, 0x87, 0x87 }, | |
861 { 0x00, 0x88, 0x88 }, | |
862 { 0x00, 0x89, 0x89 }, | |
863 { 0x00, 0x8a, 0x8a }, | |
864 { 0x00, 0x8b, 0x8b }, | |
865 { 0x00, 0x8c, 0x8c }, | |
866 { 0x00, 0x8d, 0x8d }, | |
867 { 0x00, 0x8e, 0x8e }, | |
868 { 0x00, 0x8f, 0x8f }, | |
869 { 0x00, 0x90, 0x90 }, | |
870 { 0x00, 0x91, 0x91 }, | |
871 { 0x00, 0x92, 0x92 }, | |
872 { 0x00, 0x93, 0x93 }, | |
873 { 0x00, 0x94, 0x94 }, | |
874 { 0x00, 0x95, 0x95 }, | |
875 { 0x00, 0x96, 0x96 }, | |
876 { 0x00, 0x97, 0x97 }, | |
877 { 0x00, 0x98, 0x98 }, | |
878 { 0x00, 0x99, 0x99 }, | |
879 { 0x00, 0x9a, 0x9a }, | |
880 { 0x00, 0x9b, 0x9b }, | |
881 { 0x00, 0x9c, 0x9c }, | |
882 { 0x00, 0x9d, 0x9d }, | |
883 { 0x00, 0x9e, 0x9e }, | |
884 { 0x00, 0x9f, 0x9f }, | |
885 { 0x00, 0xa0, 0xa0 }, | |
886 { 0x00, 0xa1, 0xa1 }, | |
887 { 0x00, 0xa2, 0xa2 }, | |
888 { 0x00, 0xa3, 0xa3 }, | |
889 { 0x00, 0xa4, 0xa4 }, | |
890 { 0x00, 0xa5, 0xa5 }, | |
891 { 0x00, 0xa6, 0xa6 }, | |
892 { 0x00, 0xa7, 0xa7 }, | |
893 { 0x00, 0xa8, 0xa8 }, | |
894 { 0x00, 0xa9, 0xa9 }, | |
895 { 0x00, 0xaa, 0xaa }, | |
896 { 0x00, 0xab, 0xab }, | |
897 { 0x00, 0xac, 0xac }, | |
898 { 0x00, 0xad, 0xad }, | |
899 { 0x00, 0xae, 0xae }, | |
900 { 0x00, 0xaf, 0xaf }, | |
901 { 0x00, 0xb0, 0xb0 }, | |
902 { 0x00, 0xb1, 0xb1 }, | |
903 { 0x00, 0xb2, 0xb2 }, | |
904 { 0x00, 0xb3, 0xb3 }, | |
905 { 0x00, 0xb4, 0xb4 }, | |
906 { 0x00, 0xb5, 0xb5 }, | |
907 { 0x00, 0xb6, 0xb6 }, | |
908 { 0x00, 0xb7, 0xb7 }, | |
909 { 0x00, 0xb8, 0xb8 }, | |
910 { 0x00, 0xb9, 0xb9 }, | |
911 { 0x00, 0xba, 0xba }, | |
912 { 0x00, 0xbb, 0xbb }, | |
913 { 0x00, 0xbc, 0xbc }, | |
914 { 0x00, 0xbd, 0xbd }, | |
915 { 0x00, 0xbe, 0xbe }, | |
916 { 0x00, 0xbf, 0xbf }, | |
917 { 0x01, 0xe0, 0xc0 }, | |
918 { 0x01, 0xe1, 0xc1 }, | |
919 { 0x01, 0xe2, 0xc2 }, | |
920 { 0x01, 0xe3, 0xc3 }, | |
921 { 0x01, 0xe4, 0xc4 }, | |
922 { 0x01, 0xe5, 0xc5 }, | |
923 { 0x01, 0xe6, 0xc6 }, | |
924 { 0x01, 0xe7, 0xc7 }, | |
925 { 0x01, 0xe8, 0xc8 }, | |
926 { 0x01, 0xe9, 0xc9 }, | |
927 { 0x01, 0xea, 0xca }, | |
928 { 0x01, 0xeb, 0xcb }, | |
929 { 0x01, 0xec, 0xcc }, | |
930 { 0x01, 0xed, 0xcd }, | |
931 { 0x01, 0xee, 0xce }, | |
932 { 0x01, 0xef, 0xcf }, | |
933 { 0x01, 0xf0, 0xd0 }, | |
934 { 0x01, 0xf1, 0xd1 }, | |
935 { 0x01, 0xf2, 0xd2 }, | |
936 { 0x01, 0xf3, 0xd3 }, | |
937 { 0x01, 0xf4, 0xd4 }, | |
938 { 0x01, 0xf5, 0xd5 }, | |
939 { 0x01, 0xf6, 0xd6 }, | |
940 { 0x00, 0xd7, 0xd7 }, | |
941 { 0x01, 0xf8, 0xd8 }, | |
942 { 0x01, 0xf9, 0xd9 }, | |
943 { 0x01, 0xfa, 0xda }, | |
944 { 0x01, 0xfb, 0xdb }, | |
945 { 0x01, 0xfc, 0xdc }, | |
946 { 0x01, 0xfd, 0xdd }, | |
947 { 0x01, 0xfe, 0xde }, | |
948 { 0x00, 0xdf, 0xdf }, | |
949 { 0x00, 0xe0, 0xc0 }, | |
950 { 0x00, 0xe1, 0xc1 }, | |
951 { 0x00, 0xe2, 0xc2 }, | |
952 { 0x00, 0xe3, 0xc3 }, | |
953 { 0x00, 0xe4, 0xc4 }, | |
954 { 0x00, 0xe5, 0xc5 }, | |
955 { 0x00, 0xe6, 0xc6 }, | |
956 { 0x00, 0xe7, 0xc7 }, | |
957 { 0x00, 0xe8, 0xc8 }, | |
958 { 0x00, 0xe9, 0xc9 }, | |
959 { 0x00, 0xea, 0xca }, | |
960 { 0x00, 0xeb, 0xcb }, | |
961 { 0x00, 0xec, 0xcc }, | |
962 { 0x00, 0xed, 0xcd }, | |
963 { 0x00, 0xee, 0xce }, | |
964 { 0x00, 0xef, 0xcf }, | |
965 { 0x00, 0xf0, 0xd0 }, | |
966 { 0x00, 0xf1, 0xd1 }, | |
967 { 0x00, 0xf2, 0xd2 }, | |
968 { 0x00, 0xf3, 0xd3 }, | |
969 { 0x00, 0xf4, 0xd4 }, | |
970 { 0x00, 0xf5, 0xd5 }, | |
971 { 0x00, 0xf6, 0xd6 }, | |
972 { 0x00, 0xf7, 0xf7 }, | |
973 { 0x00, 0xf8, 0xd8 }, | |
974 { 0x00, 0xf9, 0xd9 }, | |
975 { 0x00, 0xfa, 0xda }, | |
976 { 0x00, 0xfb, 0xdb }, | |
977 { 0x00, 0xfc, 0xdc }, | |
978 { 0x00, 0xfd, 0xdd }, | |
979 { 0x00, 0xfe, 0xde }, | |
980 { 0x00, 0xff, 0xff } | |
981 }; | |
982 | |
983 | |
984 static struct cs_info iso2_tbl[] = { | |
985 { 0x00, 0x00, 0x00 }, | |
986 { 0x00, 0x01, 0x01 }, | |
987 { 0x00, 0x02, 0x02 }, | |
988 { 0x00, 0x03, 0x03 }, | |
989 { 0x00, 0x04, 0x04 }, | |
990 { 0x00, 0x05, 0x05 }, | |
991 { 0x00, 0x06, 0x06 }, | |
992 { 0x00, 0x07, 0x07 }, | |
993 { 0x00, 0x08, 0x08 }, | |
994 { 0x00, 0x09, 0x09 }, | |
995 { 0x00, 0x0a, 0x0a }, | |
996 { 0x00, 0x0b, 0x0b }, | |
997 { 0x00, 0x0c, 0x0c }, | |
998 { 0x00, 0x0d, 0x0d }, | |
999 { 0x00, 0x0e, 0x0e }, | |
1000 { 0x00, 0x0f, 0x0f }, | |
1001 { 0x00, 0x10, 0x10 }, | |
1002 { 0x00, 0x11, 0x11 }, | |
1003 { 0x00, 0x12, 0x12 }, | |
1004 { 0x00, 0x13, 0x13 }, | |
1005 { 0x00, 0x14, 0x14 }, | |
1006 { 0x00, 0x15, 0x15 }, | |
1007 { 0x00, 0x16, 0x16 }, | |
1008 { 0x00, 0x17, 0x17 }, | |
1009 { 0x00, 0x18, 0x18 }, | |
1010 { 0x00, 0x19, 0x19 }, | |
1011 { 0x00, 0x1a, 0x1a }, | |
1012 { 0x00, 0x1b, 0x1b }, | |
1013 { 0x00, 0x1c, 0x1c }, | |
1014 { 0x00, 0x1d, 0x1d }, | |
1015 { 0x00, 0x1e, 0x1e }, | |
1016 { 0x00, 0x1f, 0x1f }, | |
1017 { 0x00, 0x20, 0x20 }, | |
1018 { 0x00, 0x21, 0x21 }, | |
1019 { 0x00, 0x22, 0x22 }, | |
1020 { 0x00, 0x23, 0x23 }, | |
1021 { 0x00, 0x24, 0x24 }, | |
1022 { 0x00, 0x25, 0x25 }, | |
1023 { 0x00, 0x26, 0x26 }, | |
1024 { 0x00, 0x27, 0x27 }, | |
1025 { 0x00, 0x28, 0x28 }, | |
1026 { 0x00, 0x29, 0x29 }, | |
1027 { 0x00, 0x2a, 0x2a }, | |
1028 { 0x00, 0x2b, 0x2b }, | |
1029 { 0x00, 0x2c, 0x2c }, | |
1030 { 0x00, 0x2d, 0x2d }, | |
1031 { 0x00, 0x2e, 0x2e }, | |
1032 { 0x00, 0x2f, 0x2f }, | |
1033 { 0x00, 0x30, 0x30 }, | |
1034 { 0x00, 0x31, 0x31 }, | |
1035 { 0x00, 0x32, 0x32 }, | |
1036 { 0x00, 0x33, 0x33 }, | |
1037 { 0x00, 0x34, 0x34 }, | |
1038 { 0x00, 0x35, 0x35 }, | |
1039 { 0x00, 0x36, 0x36 }, | |
1040 { 0x00, 0x37, 0x37 }, | |
1041 { 0x00, 0x38, 0x38 }, | |
1042 { 0x00, 0x39, 0x39 }, | |
1043 { 0x00, 0x3a, 0x3a }, | |
1044 { 0x00, 0x3b, 0x3b }, | |
1045 { 0x00, 0x3c, 0x3c }, | |
1046 { 0x00, 0x3d, 0x3d }, | |
1047 { 0x00, 0x3e, 0x3e }, | |
1048 { 0x00, 0x3f, 0x3f }, | |
1049 { 0x00, 0x40, 0x40 }, | |
1050 { 0x01, 0x61, 0x41 }, | |
1051 { 0x01, 0x62, 0x42 }, | |
1052 { 0x01, 0x63, 0x43 }, | |
1053 { 0x01, 0x64, 0x44 }, | |
1054 { 0x01, 0x65, 0x45 }, | |
1055 { 0x01, 0x66, 0x46 }, | |
1056 { 0x01, 0x67, 0x47 }, | |
1057 { 0x01, 0x68, 0x48 }, | |
1058 { 0x01, 0x69, 0x49 }, | |
1059 { 0x01, 0x6a, 0x4a }, | |
1060 { 0x01, 0x6b, 0x4b }, | |
1061 { 0x01, 0x6c, 0x4c }, | |
1062 { 0x01, 0x6d, 0x4d }, | |
1063 { 0x01, 0x6e, 0x4e }, | |
1064 { 0x01, 0x6f, 0x4f }, | |
1065 { 0x01, 0x70, 0x50 }, | |
1066 { 0x01, 0x71, 0x51 }, | |
1067 { 0x01, 0x72, 0x52 }, | |
1068 { 0x01, 0x73, 0x53 }, | |
1069 { 0x01, 0x74, 0x54 }, | |
1070 { 0x01, 0x75, 0x55 }, | |
1071 { 0x01, 0x76, 0x56 }, | |
1072 { 0x01, 0x77, 0x57 }, | |
1073 { 0x01, 0x78, 0x58 }, | |
1074 { 0x01, 0x79, 0x59 }, | |
1075 { 0x01, 0x7a, 0x5a }, | |
1076 { 0x00, 0x5b, 0x5b }, | |
1077 { 0x00, 0x5c, 0x5c }, | |
1078 { 0x00, 0x5d, 0x5d }, | |
1079 { 0x00, 0x5e, 0x5e }, | |
1080 { 0x00, 0x5f, 0x5f }, | |
1081 { 0x00, 0x60, 0x60 }, | |
1082 { 0x00, 0x61, 0x41 }, | |
1083 { 0x00, 0x62, 0x42 }, | |
1084 { 0x00, 0x63, 0x43 }, | |
1085 { 0x00, 0x64, 0x44 }, | |
1086 { 0x00, 0x65, 0x45 }, | |
1087 { 0x00, 0x66, 0x46 }, | |
1088 { 0x00, 0x67, 0x47 }, | |
1089 { 0x00, 0x68, 0x48 }, | |
1090 { 0x00, 0x69, 0x49 }, | |
1091 { 0x00, 0x6a, 0x4a }, | |
1092 { 0x00, 0x6b, 0x4b }, | |
1093 { 0x00, 0x6c, 0x4c }, | |
1094 { 0x00, 0x6d, 0x4d }, | |
1095 { 0x00, 0x6e, 0x4e }, | |
1096 { 0x00, 0x6f, 0x4f }, | |
1097 { 0x00, 0x70, 0x50 }, | |
1098 { 0x00, 0x71, 0x51 }, | |
1099 { 0x00, 0x72, 0x52 }, | |
1100 { 0x00, 0x73, 0x53 }, | |
1101 { 0x00, 0x74, 0x54 }, | |
1102 { 0x00, 0x75, 0x55 }, | |
1103 { 0x00, 0x76, 0x56 }, | |
1104 { 0x00, 0x77, 0x57 }, | |
1105 { 0x00, 0x78, 0x58 }, | |
1106 { 0x00, 0x79, 0x59 }, | |
1107 { 0x00, 0x7a, 0x5a }, | |
1108 { 0x00, 0x7b, 0x7b }, | |
1109 { 0x00, 0x7c, 0x7c }, | |
1110 { 0x00, 0x7d, 0x7d }, | |
1111 { 0x00, 0x7e, 0x7e }, | |
1112 { 0x00, 0x7f, 0x7f }, | |
1113 { 0x00, 0x80, 0x80 }, | |
1114 { 0x00, 0x81, 0x81 }, | |
1115 { 0x00, 0x82, 0x82 }, | |
1116 { 0x00, 0x83, 0x83 }, | |
1117 { 0x00, 0x84, 0x84 }, | |
1118 { 0x00, 0x85, 0x85 }, | |
1119 { 0x00, 0x86, 0x86 }, | |
1120 { 0x00, 0x87, 0x87 }, | |
1121 { 0x00, 0x88, 0x88 }, | |
1122 { 0x00, 0x89, 0x89 }, | |
1123 { 0x00, 0x8a, 0x8a }, | |
1124 { 0x00, 0x8b, 0x8b }, | |
1125 { 0x00, 0x8c, 0x8c }, | |
1126 { 0x00, 0x8d, 0x8d }, | |
1127 { 0x00, 0x8e, 0x8e }, | |
1128 { 0x00, 0x8f, 0x8f }, | |
1129 { 0x00, 0x90, 0x90 }, | |
1130 { 0x00, 0x91, 0x91 }, | |
1131 { 0x00, 0x92, 0x92 }, | |
1132 { 0x00, 0x93, 0x93 }, | |
1133 { 0x00, 0x94, 0x94 }, | |
1134 { 0x00, 0x95, 0x95 }, | |
1135 { 0x00, 0x96, 0x96 }, | |
1136 { 0x00, 0x97, 0x97 }, | |
1137 { 0x00, 0x98, 0x98 }, | |
1138 { 0x00, 0x99, 0x99 }, | |
1139 { 0x00, 0x9a, 0x9a }, | |
1140 { 0x00, 0x9b, 0x9b }, | |
1141 { 0x00, 0x9c, 0x9c }, | |
1142 { 0x00, 0x9d, 0x9d }, | |
1143 { 0x00, 0x9e, 0x9e }, | |
1144 { 0x00, 0x9f, 0x9f }, | |
1145 { 0x00, 0xa0, 0xa0 }, | |
1146 { 0x01, 0xb1, 0xa1 }, | |
1147 { 0x00, 0xa2, 0xa2 }, | |
1148 { 0x01, 0xb3, 0xa3 }, | |
1149 { 0x00, 0xa4, 0xa4 }, | |
1150 { 0x01, 0xb5, 0xa5 }, | |
1151 { 0x01, 0xb6, 0xa6 }, | |
1152 { 0x00, 0xa7, 0xa7 }, | |
1153 { 0x00, 0xa8, 0xa8 }, | |
1154 { 0x01, 0xb9, 0xa9 }, | |
1155 { 0x01, 0xba, 0xaa }, | |
1156 { 0x01, 0xbb, 0xab }, | |
1157 { 0x01, 0xbc, 0xac }, | |
1158 { 0x00, 0xad, 0xad }, | |
1159 { 0x01, 0xbe, 0xae }, | |
1160 { 0x01, 0xbf, 0xaf }, | |
1161 { 0x00, 0xb0, 0xb0 }, | |
1162 { 0x00, 0xb1, 0xa1 }, | |
1163 { 0x00, 0xb2, 0xb2 }, | |
1164 { 0x00, 0xb3, 0xa3 }, | |
1165 { 0x00, 0xb4, 0xb4 }, | |
1166 { 0x00, 0xb5, 0xa5 }, | |
1167 { 0x00, 0xb6, 0xa6 }, | |
1168 { 0x00, 0xb7, 0xb7 }, | |
1169 { 0x00, 0xb8, 0xb8 }, | |
1170 { 0x00, 0xb9, 0xa9 }, | |
1171 { 0x00, 0xba, 0xaa }, | |
1172 { 0x00, 0xbb, 0xab }, | |
1173 { 0x00, 0xbc, 0xac }, | |
1174 { 0x00, 0xbd, 0xbd }, | |
1175 { 0x00, 0xbe, 0xae }, | |
1176 { 0x00, 0xbf, 0xaf }, | |
1177 { 0x01, 0xe0, 0xc0 }, | |
1178 { 0x01, 0xe1, 0xc1 }, | |
1179 { 0x01, 0xe2, 0xc2 }, | |
1180 { 0x01, 0xe3, 0xc3 }, | |
1181 { 0x01, 0xe4, 0xc4 }, | |
1182 { 0x01, 0xe5, 0xc5 }, | |
1183 { 0x01, 0xe6, 0xc6 }, | |
1184 { 0x01, 0xe7, 0xc7 }, | |
1185 { 0x01, 0xe8, 0xc8 }, | |
1186 { 0x01, 0xe9, 0xc9 }, | |
1187 { 0x01, 0xea, 0xca }, | |
1188 { 0x01, 0xeb, 0xcb }, | |
1189 { 0x01, 0xec, 0xcc }, | |
1190 { 0x01, 0xed, 0xcd }, | |
1191 { 0x01, 0xee, 0xce }, | |
1192 { 0x01, 0xef, 0xcf }, | |
1193 { 0x01, 0xf0, 0xd0 }, | |
1194 { 0x01, 0xf1, 0xd1 }, | |
1195 { 0x01, 0xf2, 0xd2 }, | |
1196 { 0x01, 0xf3, 0xd3 }, | |
1197 { 0x01, 0xf4, 0xd4 }, | |
1198 { 0x01, 0xf5, 0xd5 }, | |
1199 { 0x01, 0xf6, 0xd6 }, | |
1200 { 0x00, 0xd7, 0xd7 }, | |
1201 { 0x01, 0xf8, 0xd8 }, | |
1202 { 0x01, 0xf9, 0xd9 }, | |
1203 { 0x01, 0xfa, 0xda }, | |
1204 { 0x01, 0xfb, 0xdb }, | |
1205 { 0x01, 0xfc, 0xdc }, | |
1206 { 0x01, 0xfd, 0xdd }, | |
1207 { 0x01, 0xfe, 0xde }, | |
1208 { 0x00, 0xdf, 0xdf }, | |
1209 { 0x00, 0xe0, 0xc0 }, | |
1210 { 0x00, 0xe1, 0xc1 }, | |
1211 { 0x00, 0xe2, 0xc2 }, | |
1212 { 0x00, 0xe3, 0xc3 }, | |
1213 { 0x00, 0xe4, 0xc4 }, | |
1214 { 0x00, 0xe5, 0xc5 }, | |
1215 { 0x00, 0xe6, 0xc6 }, | |
1216 { 0x00, 0xe7, 0xc7 }, | |
1217 { 0x00, 0xe8, 0xc8 }, | |
1218 { 0x00, 0xe9, 0xc9 }, | |
1219 { 0x00, 0xea, 0xca }, | |
1220 { 0x00, 0xeb, 0xcb }, | |
1221 { 0x00, 0xec, 0xcc }, | |
1222 { 0x00, 0xed, 0xcd }, | |
1223 { 0x00, 0xee, 0xce }, | |
1224 { 0x00, 0xef, 0xcf }, | |
1225 { 0x00, 0xf0, 0xd0 }, | |
1226 { 0x00, 0xf1, 0xd1 }, | |
1227 { 0x00, 0xf2, 0xd2 }, | |
1228 { 0x00, 0xf3, 0xd3 }, | |
1229 { 0x00, 0xf4, 0xd4 }, | |
1230 { 0x00, 0xf5, 0xd5 }, | |
1231 { 0x00, 0xf6, 0xd6 }, | |
1232 { 0x00, 0xf7, 0xf7 }, | |
1233 { 0x00, 0xf8, 0xd8 }, | |
1234 { 0x00, 0xf9, 0xd9 }, | |
1235 { 0x00, 0xfa, 0xda }, | |
1236 { 0x00, 0xfb, 0xdb }, | |
1237 { 0x00, 0xfc, 0xdc }, | |
1238 { 0x00, 0xfd, 0xdd }, | |
1239 { 0x00, 0xfe, 0xde }, | |
1240 { 0x00, 0xff, 0xff } | |
1241 }; | |
1242 | |
1243 | |
1244 static struct cs_info iso3_tbl[] = { | |
1245 { 0x00, 0x00, 0x00 }, | |
1246 { 0x00, 0x01, 0x01 }, | |
1247 { 0x00, 0x02, 0x02 }, | |
1248 { 0x00, 0x03, 0x03 }, | |
1249 { 0x00, 0x04, 0x04 }, | |
1250 { 0x00, 0x05, 0x05 }, | |
1251 { 0x00, 0x06, 0x06 }, | |
1252 { 0x00, 0x07, 0x07 }, | |
1253 { 0x00, 0x08, 0x08 }, | |
1254 { 0x00, 0x09, 0x09 }, | |
1255 { 0x00, 0x0a, 0x0a }, | |
1256 { 0x00, 0x0b, 0x0b }, | |
1257 { 0x00, 0x0c, 0x0c }, | |
1258 { 0x00, 0x0d, 0x0d }, | |
1259 { 0x00, 0x0e, 0x0e }, | |
1260 { 0x00, 0x0f, 0x0f }, | |
1261 { 0x00, 0x10, 0x10 }, | |
1262 { 0x00, 0x11, 0x11 }, | |
1263 { 0x00, 0x12, 0x12 }, | |
1264 { 0x00, 0x13, 0x13 }, | |
1265 { 0x00, 0x14, 0x14 }, | |
1266 { 0x00, 0x15, 0x15 }, | |
1267 { 0x00, 0x16, 0x16 }, | |
1268 { 0x00, 0x17, 0x17 }, | |
1269 { 0x00, 0x18, 0x18 }, | |
1270 { 0x00, 0x19, 0x19 }, | |
1271 { 0x00, 0x1a, 0x1a }, | |
1272 { 0x00, 0x1b, 0x1b }, | |
1273 { 0x00, 0x1c, 0x1c }, | |
1274 { 0x00, 0x1d, 0x1d }, | |
1275 { 0x00, 0x1e, 0x1e }, | |
1276 { 0x00, 0x1f, 0x1f }, | |
1277 { 0x00, 0x20, 0x20 }, | |
1278 { 0x00, 0x21, 0x21 }, | |
1279 { 0x00, 0x22, 0x22 }, | |
1280 { 0x00, 0x23, 0x23 }, | |
1281 { 0x00, 0x24, 0x24 }, | |
1282 { 0x00, 0x25, 0x25 }, | |
1283 { 0x00, 0x26, 0x26 }, | |
1284 { 0x00, 0x27, 0x27 }, | |
1285 { 0x00, 0x28, 0x28 }, | |
1286 { 0x00, 0x29, 0x29 }, | |
1287 { 0x00, 0x2a, 0x2a }, | |
1288 { 0x00, 0x2b, 0x2b }, | |
1289 { 0x00, 0x2c, 0x2c }, | |
1290 { 0x00, 0x2d, 0x2d }, | |
1291 { 0x00, 0x2e, 0x2e }, | |
1292 { 0x00, 0x2f, 0x2f }, | |
1293 { 0x00, 0x30, 0x30 }, | |
1294 { 0x00, 0x31, 0x31 }, | |
1295 { 0x00, 0x32, 0x32 }, | |
1296 { 0x00, 0x33, 0x33 }, | |
1297 { 0x00, 0x34, 0x34 }, | |
1298 { 0x00, 0x35, 0x35 }, | |
1299 { 0x00, 0x36, 0x36 }, | |
1300 { 0x00, 0x37, 0x37 }, | |
1301 { 0x00, 0x38, 0x38 }, | |
1302 { 0x00, 0x39, 0x39 }, | |
1303 { 0x00, 0x3a, 0x3a }, | |
1304 { 0x00, 0x3b, 0x3b }, | |
1305 { 0x00, 0x3c, 0x3c }, | |
1306 { 0x00, 0x3d, 0x3d }, | |
1307 { 0x00, 0x3e, 0x3e }, | |
1308 { 0x00, 0x3f, 0x3f }, | |
1309 { 0x00, 0x40, 0x40 }, | |
1310 { 0x01, 0x61, 0x41 }, | |
1311 { 0x01, 0x62, 0x42 }, | |
1312 { 0x01, 0x63, 0x43 }, | |
1313 { 0x01, 0x64, 0x44 }, | |
1314 { 0x01, 0x65, 0x45 }, | |
1315 { 0x01, 0x66, 0x46 }, | |
1316 { 0x01, 0x67, 0x47 }, | |
1317 { 0x01, 0x68, 0x48 }, | |
1318 { 0x01, 0x69, 0x49 }, | |
1319 { 0x01, 0x6a, 0x4a }, | |
1320 { 0x01, 0x6b, 0x4b }, | |
1321 { 0x01, 0x6c, 0x4c }, | |
1322 { 0x01, 0x6d, 0x4d }, | |
1323 { 0x01, 0x6e, 0x4e }, | |
1324 { 0x01, 0x6f, 0x4f }, | |
1325 { 0x01, 0x70, 0x50 }, | |
1326 { 0x01, 0x71, 0x51 }, | |
1327 { 0x01, 0x72, 0x52 }, | |
1328 { 0x01, 0x73, 0x53 }, | |
1329 { 0x01, 0x74, 0x54 }, | |
1330 { 0x01, 0x75, 0x55 }, | |
1331 { 0x01, 0x76, 0x56 }, | |
1332 { 0x01, 0x77, 0x57 }, | |
1333 { 0x01, 0x78, 0x58 }, | |
1334 { 0x01, 0x79, 0x59 }, | |
1335 { 0x01, 0x7a, 0x5a }, | |
1336 { 0x00, 0x5b, 0x5b }, | |
1337 { 0x00, 0x5c, 0x5c }, | |
1338 { 0x00, 0x5d, 0x5d }, | |
1339 { 0x00, 0x5e, 0x5e }, | |
1340 { 0x00, 0x5f, 0x5f }, | |
1341 { 0x00, 0x60, 0x60 }, | |
1342 { 0x00, 0x61, 0x41 }, | |
1343 { 0x00, 0x62, 0x42 }, | |
1344 { 0x00, 0x63, 0x43 }, | |
1345 { 0x00, 0x64, 0x44 }, | |
1346 { 0x00, 0x65, 0x45 }, | |
1347 { 0x00, 0x66, 0x46 }, | |
1348 { 0x00, 0x67, 0x47 }, | |
1349 { 0x00, 0x68, 0x48 }, | |
1350 { 0x00, 0x69, 0x49 }, | |
1351 { 0x00, 0x6a, 0x4a }, | |
1352 { 0x00, 0x6b, 0x4b }, | |
1353 { 0x00, 0x6c, 0x4c }, | |
1354 { 0x00, 0x6d, 0x4d }, | |
1355 { 0x00, 0x6e, 0x4e }, | |
1356 { 0x00, 0x6f, 0x4f }, | |
1357 { 0x00, 0x70, 0x50 }, | |
1358 { 0x00, 0x71, 0x51 }, | |
1359 { 0x00, 0x72, 0x52 }, | |
1360 { 0x00, 0x73, 0x53 }, | |
1361 { 0x00, 0x74, 0x54 }, | |
1362 { 0x00, 0x75, 0x55 }, | |
1363 { 0x00, 0x76, 0x56 }, | |
1364 { 0x00, 0x77, 0x57 }, | |
1365 { 0x00, 0x78, 0x58 }, | |
1366 { 0x00, 0x79, 0x59 }, | |
1367 { 0x00, 0x7a, 0x5a }, | |
1368 { 0x00, 0x7b, 0x7b }, | |
1369 { 0x00, 0x7c, 0x7c }, | |
1370 { 0x00, 0x7d, 0x7d }, | |
1371 { 0x00, 0x7e, 0x7e }, | |
1372 { 0x00, 0x7f, 0x7f }, | |
1373 { 0x00, 0x80, 0x80 }, | |
1374 { 0x00, 0x81, 0x81 }, | |
1375 { 0x00, 0x82, 0x82 }, | |
1376 { 0x00, 0x83, 0x83 }, | |
1377 { 0x00, 0x84, 0x84 }, | |
1378 { 0x00, 0x85, 0x85 }, | |
1379 { 0x00, 0x86, 0x86 }, | |
1380 { 0x00, 0x87, 0x87 }, | |
1381 { 0x00, 0x88, 0x88 }, | |
1382 { 0x00, 0x89, 0x89 }, | |
1383 { 0x00, 0x8a, 0x8a }, | |
1384 { 0x00, 0x8b, 0x8b }, | |
1385 { 0x00, 0x8c, 0x8c }, | |
1386 { 0x00, 0x8d, 0x8d }, | |
1387 { 0x00, 0x8e, 0x8e }, | |
1388 { 0x00, 0x8f, 0x8f }, | |
1389 { 0x00, 0x90, 0x90 }, | |
1390 { 0x00, 0x91, 0x91 }, | |
1391 { 0x00, 0x92, 0x92 }, | |
1392 { 0x00, 0x93, 0x93 }, | |
1393 { 0x00, 0x94, 0x94 }, | |
1394 { 0x00, 0x95, 0x95 }, | |
1395 { 0x00, 0x96, 0x96 }, | |
1396 { 0x00, 0x97, 0x97 }, | |
1397 { 0x00, 0x98, 0x98 }, | |
1398 { 0x00, 0x99, 0x99 }, | |
1399 { 0x00, 0x9a, 0x9a }, | |
1400 { 0x00, 0x9b, 0x9b }, | |
1401 { 0x00, 0x9c, 0x9c }, | |
1402 { 0x00, 0x9d, 0x9d }, | |
1403 { 0x00, 0x9e, 0x9e }, | |
1404 { 0x00, 0x9f, 0x9f }, | |
1405 { 0x00, 0xa0, 0xa0 }, | |
1406 { 0x01, 0xb1, 0xa1 }, | |
1407 { 0x00, 0xa2, 0xa2 }, | |
1408 { 0x00, 0xa3, 0xa3 }, | |
1409 { 0x00, 0xa4, 0xa4 }, | |
1410 { 0x00, 0xa5, 0xa5 }, | |
1411 { 0x01, 0xb6, 0xa6 }, | |
1412 { 0x00, 0xa7, 0xa7 }, | |
1413 { 0x00, 0xa8, 0xa8 }, | |
1414 { 0x01, 0x69, 0xa9 }, | |
1415 { 0x01, 0xba, 0xaa }, | |
1416 { 0x01, 0xbb, 0xab }, | |
1417 { 0x01, 0xbc, 0xac }, | |
1418 { 0x00, 0xad, 0xad }, | |
1419 { 0x00, 0xae, 0xae }, | |
1420 { 0x01, 0xbf, 0xaf }, | |
1421 { 0x00, 0xb0, 0xb0 }, | |
1422 { 0x00, 0xb1, 0xa1 }, | |
1423 { 0x00, 0xb2, 0xb2 }, | |
1424 { 0x00, 0xb3, 0xb3 }, | |
1425 { 0x00, 0xb4, 0xb4 }, | |
1426 { 0x00, 0xb5, 0xb5 }, | |
1427 { 0x00, 0xb6, 0xa6 }, | |
1428 { 0x00, 0xb7, 0xb7 }, | |
1429 { 0x00, 0xb8, 0xb8 }, | |
1430 { 0x00, 0xb9, 0x49 }, | |
1431 { 0x00, 0xba, 0xaa }, | |
1432 { 0x00, 0xbb, 0xab }, | |
1433 { 0x00, 0xbc, 0xac }, | |
1434 { 0x00, 0xbd, 0xbd }, | |
1435 { 0x00, 0xbe, 0xbe }, | |
1436 { 0x00, 0xbf, 0xaf }, | |
1437 { 0x01, 0xe0, 0xc0 }, | |
1438 { 0x01, 0xe1, 0xc1 }, | |
1439 { 0x01, 0xe2, 0xc2 }, | |
1440 { 0x00, 0xc3, 0xc3 }, | |
1441 { 0x01, 0xe4, 0xc4 }, | |
1442 { 0x01, 0xe5, 0xc5 }, | |
1443 { 0x01, 0xe6, 0xc6 }, | |
1444 { 0x01, 0xe7, 0xc7 }, | |
1445 { 0x01, 0xe8, 0xc8 }, | |
1446 { 0x01, 0xe9, 0xc9 }, | |
1447 { 0x01, 0xea, 0xca }, | |
1448 { 0x01, 0xeb, 0xcb }, | |
1449 { 0x01, 0xec, 0xcc }, | |
1450 { 0x01, 0xed, 0xcd }, | |
1451 { 0x01, 0xee, 0xce }, | |
1452 { 0x01, 0xef, 0xcf }, | |
1453 { 0x00, 0xd0, 0xd0 }, | |
1454 { 0x01, 0xf1, 0xd1 }, | |
1455 { 0x01, 0xf2, 0xd2 }, | |
1456 { 0x01, 0xf3, 0xd3 }, | |
1457 { 0x01, 0xf4, 0xd4 }, | |
1458 { 0x01, 0xf5, 0xd5 }, | |
1459 { 0x01, 0xf6, 0xd6 }, | |
1460 { 0x00, 0xd7, 0xd7 }, | |
1461 { 0x01, 0xf8, 0xd8 }, | |
1462 { 0x01, 0xf9, 0xd9 }, | |
1463 { 0x01, 0xfa, 0xda }, | |
1464 { 0x01, 0xfb, 0xdb }, | |
1465 { 0x01, 0xfc, 0xdc }, | |
1466 { 0x01, 0xfd, 0xdd }, | |
1467 { 0x01, 0xfe, 0xde }, | |
1468 { 0x00, 0xdf, 0xdf }, | |
1469 { 0x00, 0xe0, 0xc0 }, | |
1470 { 0x00, 0xe1, 0xc1 }, | |
1471 { 0x00, 0xe2, 0xc2 }, | |
1472 { 0x00, 0xe3, 0xe3 }, | |
1473 { 0x00, 0xe4, 0xc4 }, | |
1474 { 0x00, 0xe5, 0xc5 }, | |
1475 { 0x00, 0xe6, 0xc6 }, | |
1476 { 0x00, 0xe7, 0xc7 }, | |
1477 { 0x00, 0xe8, 0xc8 }, | |
1478 { 0x00, 0xe9, 0xc9 }, | |
1479 { 0x00, 0xea, 0xca }, | |
1480 { 0x00, 0xeb, 0xcb }, | |
1481 { 0x00, 0xec, 0xcc }, | |
1482 { 0x00, 0xed, 0xcd }, | |
1483 { 0x00, 0xee, 0xce }, | |
1484 { 0x00, 0xef, 0xcf }, | |
1485 { 0x00, 0xf0, 0xf0 }, | |
1486 { 0x00, 0xf1, 0xd1 }, | |
1487 { 0x00, 0xf2, 0xd2 }, | |
1488 { 0x00, 0xf3, 0xd3 }, | |
1489 { 0x00, 0xf4, 0xd4 }, | |
1490 { 0x00, 0xf5, 0xd5 }, | |
1491 { 0x00, 0xf6, 0xd6 }, | |
1492 { 0x00, 0xf7, 0xf7 }, | |
1493 { 0x00, 0xf8, 0xd8 }, | |
1494 { 0x00, 0xf9, 0xd9 }, | |
1495 { 0x00, 0xfa, 0xda }, | |
1496 { 0x00, 0xfb, 0xdb }, | |
1497 { 0x00, 0xfc, 0xdc }, | |
1498 { 0x00, 0xfd, 0xdd }, | |
1499 { 0x00, 0xfe, 0xde }, | |
1500 { 0x00, 0xff, 0xff } | |
1501 }; | |
1502 | |
1503 static struct cs_info iso4_tbl[] = { | |
1504 { 0x00, 0x00, 0x00 }, | |
1505 { 0x00, 0x01, 0x01 }, | |
1506 { 0x00, 0x02, 0x02 }, | |
1507 { 0x00, 0x03, 0x03 }, | |
1508 { 0x00, 0x04, 0x04 }, | |
1509 { 0x00, 0x05, 0x05 }, | |
1510 { 0x00, 0x06, 0x06 }, | |
1511 { 0x00, 0x07, 0x07 }, | |
1512 { 0x00, 0x08, 0x08 }, | |
1513 { 0x00, 0x09, 0x09 }, | |
1514 { 0x00, 0x0a, 0x0a }, | |
1515 { 0x00, 0x0b, 0x0b }, | |
1516 { 0x00, 0x0c, 0x0c }, | |
1517 { 0x00, 0x0d, 0x0d }, | |
1518 { 0x00, 0x0e, 0x0e }, | |
1519 { 0x00, 0x0f, 0x0f }, | |
1520 { 0x00, 0x10, 0x10 }, | |
1521 { 0x00, 0x11, 0x11 }, | |
1522 { 0x00, 0x12, 0x12 }, | |
1523 { 0x00, 0x13, 0x13 }, | |
1524 { 0x00, 0x14, 0x14 }, | |
1525 { 0x00, 0x15, 0x15 }, | |
1526 { 0x00, 0x16, 0x16 }, | |
1527 { 0x00, 0x17, 0x17 }, | |
1528 { 0x00, 0x18, 0x18 }, | |
1529 { 0x00, 0x19, 0x19 }, | |
1530 { 0x00, 0x1a, 0x1a }, | |
1531 { 0x00, 0x1b, 0x1b }, | |
1532 { 0x00, 0x1c, 0x1c }, | |
1533 { 0x00, 0x1d, 0x1d }, | |
1534 { 0x00, 0x1e, 0x1e }, | |
1535 { 0x00, 0x1f, 0x1f }, | |
1536 { 0x00, 0x20, 0x20 }, | |
1537 { 0x00, 0x21, 0x21 }, | |
1538 { 0x00, 0x22, 0x22 }, | |
1539 { 0x00, 0x23, 0x23 }, | |
1540 { 0x00, 0x24, 0x24 }, | |
1541 { 0x00, 0x25, 0x25 }, | |
1542 { 0x00, 0x26, 0x26 }, | |
1543 { 0x00, 0x27, 0x27 }, | |
1544 { 0x00, 0x28, 0x28 }, | |
1545 { 0x00, 0x29, 0x29 }, | |
1546 { 0x00, 0x2a, 0x2a }, | |
1547 { 0x00, 0x2b, 0x2b }, | |
1548 { 0x00, 0x2c, 0x2c }, | |
1549 { 0x00, 0x2d, 0x2d }, | |
1550 { 0x00, 0x2e, 0x2e }, | |
1551 { 0x00, 0x2f, 0x2f }, | |
1552 { 0x00, 0x30, 0x30 }, | |
1553 { 0x00, 0x31, 0x31 }, | |
1554 { 0x00, 0x32, 0x32 }, | |
1555 { 0x00, 0x33, 0x33 }, | |
1556 { 0x00, 0x34, 0x34 }, | |
1557 { 0x00, 0x35, 0x35 }, | |
1558 { 0x00, 0x36, 0x36 }, | |
1559 { 0x00, 0x37, 0x37 }, | |
1560 { 0x00, 0x38, 0x38 }, | |
1561 { 0x00, 0x39, 0x39 }, | |
1562 { 0x00, 0x3a, 0x3a }, | |
1563 { 0x00, 0x3b, 0x3b }, | |
1564 { 0x00, 0x3c, 0x3c }, | |
1565 { 0x00, 0x3d, 0x3d }, | |
1566 { 0x00, 0x3e, 0x3e }, | |
1567 { 0x00, 0x3f, 0x3f }, | |
1568 { 0x00, 0x40, 0x40 }, | |
1569 { 0x01, 0x61, 0x41 }, | |
1570 { 0x01, 0x62, 0x42 }, | |
1571 { 0x01, 0x63, 0x43 }, | |
1572 { 0x01, 0x64, 0x44 }, | |
1573 { 0x01, 0x65, 0x45 }, | |
1574 { 0x01, 0x66, 0x46 }, | |
1575 { 0x01, 0x67, 0x47 }, | |
1576 { 0x01, 0x68, 0x48 }, | |
1577 { 0x01, 0x69, 0x49 }, | |
1578 { 0x01, 0x6a, 0x4a }, | |
1579 { 0x01, 0x6b, 0x4b }, | |
1580 { 0x01, 0x6c, 0x4c }, | |
1581 { 0x01, 0x6d, 0x4d }, | |
1582 { 0x01, 0x6e, 0x4e }, | |
1583 { 0x01, 0x6f, 0x4f }, | |
1584 { 0x01, 0x70, 0x50 }, | |
1585 { 0x01, 0x71, 0x51 }, | |
1586 { 0x01, 0x72, 0x52 }, | |
1587 { 0x01, 0x73, 0x53 }, | |
1588 { 0x01, 0x74, 0x54 }, | |
1589 { 0x01, 0x75, 0x55 }, | |
1590 { 0x01, 0x76, 0x56 }, | |
1591 { 0x01, 0x77, 0x57 }, | |
1592 { 0x01, 0x78, 0x58 }, | |
1593 { 0x01, 0x79, 0x59 }, | |
1594 { 0x01, 0x7a, 0x5a }, | |
1595 { 0x00, 0x5b, 0x5b }, | |
1596 { 0x00, 0x5c, 0x5c }, | |
1597 { 0x00, 0x5d, 0x5d }, | |
1598 { 0x00, 0x5e, 0x5e }, | |
1599 { 0x00, 0x5f, 0x5f }, | |
1600 { 0x00, 0x60, 0x60 }, | |
1601 { 0x00, 0x61, 0x41 }, | |
1602 { 0x00, 0x62, 0x42 }, | |
1603 { 0x00, 0x63, 0x43 }, | |
1604 { 0x00, 0x64, 0x44 }, | |
1605 { 0x00, 0x65, 0x45 }, | |
1606 { 0x00, 0x66, 0x46 }, | |
1607 { 0x00, 0x67, 0x47 }, | |
1608 { 0x00, 0x68, 0x48 }, | |
1609 { 0x00, 0x69, 0x49 }, | |
1610 { 0x00, 0x6a, 0x4a }, | |
1611 { 0x00, 0x6b, 0x4b }, | |
1612 { 0x00, 0x6c, 0x4c }, | |
1613 { 0x00, 0x6d, 0x4d }, | |
1614 { 0x00, 0x6e, 0x4e }, | |
1615 { 0x00, 0x6f, 0x4f }, | |
1616 { 0x00, 0x70, 0x50 }, | |
1617 { 0x00, 0x71, 0x51 }, | |
1618 { 0x00, 0x72, 0x52 }, | |
1619 { 0x00, 0x73, 0x53 }, | |
1620 { 0x00, 0x74, 0x54 }, | |
1621 { 0x00, 0x75, 0x55 }, | |
1622 { 0x00, 0x76, 0x56 }, | |
1623 { 0x00, 0x77, 0x57 }, | |
1624 { 0x00, 0x78, 0x58 }, | |
1625 { 0x00, 0x79, 0x59 }, | |
1626 { 0x00, 0x7a, 0x5a }, | |
1627 { 0x00, 0x7b, 0x7b }, | |
1628 { 0x00, 0x7c, 0x7c }, | |
1629 { 0x00, 0x7d, 0x7d }, | |
1630 { 0x00, 0x7e, 0x7e }, | |
1631 { 0x00, 0x7f, 0x7f }, | |
1632 { 0x00, 0x80, 0x80 }, | |
1633 { 0x00, 0x81, 0x81 }, | |
1634 { 0x00, 0x82, 0x82 }, | |
1635 { 0x00, 0x83, 0x83 }, | |
1636 { 0x00, 0x84, 0x84 }, | |
1637 { 0x00, 0x85, 0x85 }, | |
1638 { 0x00, 0x86, 0x86 }, | |
1639 { 0x00, 0x87, 0x87 }, | |
1640 { 0x00, 0x88, 0x88 }, | |
1641 { 0x00, 0x89, 0x89 }, | |
1642 { 0x00, 0x8a, 0x8a }, | |
1643 { 0x00, 0x8b, 0x8b }, | |
1644 { 0x00, 0x8c, 0x8c }, | |
1645 { 0x00, 0x8d, 0x8d }, | |
1646 { 0x00, 0x8e, 0x8e }, | |
1647 { 0x00, 0x8f, 0x8f }, | |
1648 { 0x00, 0x90, 0x90 }, | |
1649 { 0x00, 0x91, 0x91 }, | |
1650 { 0x00, 0x92, 0x92 }, | |
1651 { 0x00, 0x93, 0x93 }, | |
1652 { 0x00, 0x94, 0x94 }, | |
1653 { 0x00, 0x95, 0x95 }, | |
1654 { 0x00, 0x96, 0x96 }, | |
1655 { 0x00, 0x97, 0x97 }, | |
1656 { 0x00, 0x98, 0x98 }, | |
1657 { 0x00, 0x99, 0x99 }, | |
1658 { 0x00, 0x9a, 0x9a }, | |
1659 { 0x00, 0x9b, 0x9b }, | |
1660 { 0x00, 0x9c, 0x9c }, | |
1661 { 0x00, 0x9d, 0x9d }, | |
1662 { 0x00, 0x9e, 0x9e }, | |
1663 { 0x00, 0x9f, 0x9f }, | |
1664 { 0x00, 0xa0, 0xa0 }, | |
1665 { 0x01, 0xb1, 0xa1 }, | |
1666 { 0x00, 0xa2, 0xa2 }, | |
1667 { 0x01, 0xb3, 0xa3 }, | |
1668 { 0x00, 0xa4, 0xa4 }, | |
1669 { 0x01, 0xb5, 0xa5 }, | |
1670 { 0x01, 0xb6, 0xa6 }, | |
1671 { 0x00, 0xa7, 0xa7 }, | |
1672 { 0x00, 0xa8, 0xa8 }, | |
1673 { 0x01, 0xb9, 0xa9 }, | |
1674 { 0x01, 0xba, 0xaa }, | |
1675 { 0x01, 0xbb, 0xab }, | |
1676 { 0x01, 0xbc, 0xac }, | |
1677 { 0x00, 0xad, 0xad }, | |
1678 { 0x01, 0xbe, 0xae }, | |
1679 { 0x00, 0xaf, 0xaf }, | |
1680 { 0x00, 0xb0, 0xb0 }, | |
1681 { 0x00, 0xb1, 0xa1 }, | |
1682 { 0x00, 0xb2, 0xb2 }, | |
1683 { 0x00, 0xb3, 0xa3 }, | |
1684 { 0x00, 0xb4, 0xb4 }, | |
1685 { 0x00, 0xb5, 0xa5 }, | |
1686 { 0x00, 0xb6, 0xa6 }, | |
1687 { 0x00, 0xb7, 0xb7 }, | |
1688 { 0x00, 0xb8, 0xb8 }, | |
1689 { 0x00, 0xb9, 0xa9 }, | |
1690 { 0x00, 0xba, 0xaa }, | |
1691 { 0x00, 0xbb, 0xab }, | |
1692 { 0x00, 0xbc, 0xac }, | |
1693 { 0x00, 0xbd, 0xbd }, | |
1694 { 0x00, 0xbe, 0xae }, | |
1695 { 0x00, 0xbf, 0xbf }, | |
1696 { 0x01, 0xe0, 0xc0 }, | |
1697 { 0x01, 0xe1, 0xc1 }, | |
1698 { 0x01, 0xe2, 0xc2 }, | |
1699 { 0x01, 0xe3, 0xc3 }, | |
1700 { 0x01, 0xe4, 0xc4 }, | |
1701 { 0x01, 0xe5, 0xc5 }, | |
1702 { 0x01, 0xe6, 0xc6 }, | |
1703 { 0x01, 0xe7, 0xc7 }, | |
1704 { 0x01, 0xe8, 0xc8 }, | |
1705 { 0x01, 0xe9, 0xc9 }, | |
1706 { 0x01, 0xea, 0xca }, | |
1707 { 0x01, 0xeb, 0xcb }, | |
1708 { 0x01, 0xec, 0xcc }, | |
1709 { 0x01, 0xed, 0xcd }, | |
1710 { 0x01, 0xee, 0xce }, | |
1711 { 0x01, 0xef, 0xcf }, | |
1712 { 0x01, 0xf0, 0xd0 }, | |
1713 { 0x01, 0xf1, 0xd1 }, | |
1714 { 0x01, 0xf2, 0xd2 }, | |
1715 { 0x01, 0xf3, 0xd3 }, | |
1716 { 0x01, 0xf4, 0xd4 }, | |
1717 { 0x01, 0xf5, 0xd5 }, | |
1718 { 0x01, 0xf6, 0xd6 }, | |
1719 { 0x00, 0xd7, 0xd7 }, | |
1720 { 0x01, 0xf8, 0xd8 }, | |
1721 { 0x01, 0xf9, 0xd9 }, | |
1722 { 0x01, 0xfa, 0xda }, | |
1723 { 0x01, 0xfb, 0xdb }, | |
1724 { 0x01, 0xfc, 0xdc }, | |
1725 { 0x01, 0xfd, 0xdd }, | |
1726 { 0x01, 0xfe, 0xde }, | |
1727 { 0x00, 0xdf, 0xdf }, | |
1728 { 0x00, 0xe0, 0xc0 }, | |
1729 { 0x00, 0xe1, 0xc1 }, | |
1730 { 0x00, 0xe2, 0xc2 }, | |
1731 { 0x00, 0xe3, 0xc3 }, | |
1732 { 0x00, 0xe4, 0xc4 }, | |
1733 { 0x00, 0xe5, 0xc5 }, | |
1734 { 0x00, 0xe6, 0xc6 }, | |
1735 { 0x00, 0xe7, 0xc7 }, | |
1736 { 0x00, 0xe8, 0xc8 }, | |
1737 { 0x00, 0xe9, 0xc9 }, | |
1738 { 0x00, 0xea, 0xca }, | |
1739 { 0x00, 0xeb, 0xcb }, | |
1740 { 0x00, 0xec, 0xcc }, | |
1741 { 0x00, 0xed, 0xcd }, | |
1742 { 0x00, 0xee, 0xce }, | |
1743 { 0x00, 0xef, 0xcf }, | |
1744 { 0x00, 0xf0, 0xd0 }, | |
1745 { 0x00, 0xf1, 0xd1 }, | |
1746 { 0x00, 0xf2, 0xd2 }, | |
1747 { 0x00, 0xf3, 0xd3 }, | |
1748 { 0x00, 0xf4, 0xd4 }, | |
1749 { 0x00, 0xf5, 0xd5 }, | |
1750 { 0x00, 0xf6, 0xd6 }, | |
1751 { 0x00, 0xf7, 0xf7 }, | |
1752 { 0x00, 0xf8, 0xd8 }, | |
1753 { 0x00, 0xf9, 0xd9 }, | |
1754 { 0x00, 0xfa, 0xda }, | |
1755 { 0x00, 0xfb, 0xdb }, | |
1756 { 0x00, 0xfc, 0xdc }, | |
1757 { 0x00, 0xfd, 0xdd }, | |
1758 { 0x00, 0xfe, 0xde }, | |
1759 { 0x00, 0xff, 0xff } | |
1760 }; | |
1761 | |
1762 static struct cs_info iso5_tbl[] = { | |
1763 { 0x00, 0x00, 0x00 }, | |
1764 { 0x00, 0x01, 0x01 }, | |
1765 { 0x00, 0x02, 0x02 }, | |
1766 { 0x00, 0x03, 0x03 }, | |
1767 { 0x00, 0x04, 0x04 }, | |
1768 { 0x00, 0x05, 0x05 }, | |
1769 { 0x00, 0x06, 0x06 }, | |
1770 { 0x00, 0x07, 0x07 }, | |
1771 { 0x00, 0x08, 0x08 }, | |
1772 { 0x00, 0x09, 0x09 }, | |
1773 { 0x00, 0x0a, 0x0a }, | |
1774 { 0x00, 0x0b, 0x0b }, | |
1775 { 0x00, 0x0c, 0x0c }, | |
1776 { 0x00, 0x0d, 0x0d }, | |
1777 { 0x00, 0x0e, 0x0e }, | |
1778 { 0x00, 0x0f, 0x0f }, | |
1779 { 0x00, 0x10, 0x10 }, | |
1780 { 0x00, 0x11, 0x11 }, | |
1781 { 0x00, 0x12, 0x12 }, | |
1782 { 0x00, 0x13, 0x13 }, | |
1783 { 0x00, 0x14, 0x14 }, | |
1784 { 0x00, 0x15, 0x15 }, | |
1785 { 0x00, 0x16, 0x16 }, | |
1786 { 0x00, 0x17, 0x17 }, | |
1787 { 0x00, 0x18, 0x18 }, | |
1788 { 0x00, 0x19, 0x19 }, | |
1789 { 0x00, 0x1a, 0x1a }, | |
1790 { 0x00, 0x1b, 0x1b }, | |
1791 { 0x00, 0x1c, 0x1c }, | |
1792 { 0x00, 0x1d, 0x1d }, | |
1793 { 0x00, 0x1e, 0x1e }, | |
1794 { 0x00, 0x1f, 0x1f }, | |
1795 { 0x00, 0x20, 0x20 }, | |
1796 { 0x00, 0x21, 0x21 }, | |
1797 { 0x00, 0x22, 0x22 }, | |
1798 { 0x00, 0x23, 0x23 }, | |
1799 { 0x00, 0x24, 0x24 }, | |
1800 { 0x00, 0x25, 0x25 }, | |
1801 { 0x00, 0x26, 0x26 }, | |
1802 { 0x00, 0x27, 0x27 }, | |
1803 { 0x00, 0x28, 0x28 }, | |
1804 { 0x00, 0x29, 0x29 }, | |
1805 { 0x00, 0x2a, 0x2a }, | |
1806 { 0x00, 0x2b, 0x2b }, | |
1807 { 0x00, 0x2c, 0x2c }, | |
1808 { 0x00, 0x2d, 0x2d }, | |
1809 { 0x00, 0x2e, 0x2e }, | |
1810 { 0x00, 0x2f, 0x2f }, | |
1811 { 0x00, 0x30, 0x30 }, | |
1812 { 0x00, 0x31, 0x31 }, | |
1813 { 0x00, 0x32, 0x32 }, | |
1814 { 0x00, 0x33, 0x33 }, | |
1815 { 0x00, 0x34, 0x34 }, | |
1816 { 0x00, 0x35, 0x35 }, | |
1817 { 0x00, 0x36, 0x36 }, | |
1818 { 0x00, 0x37, 0x37 }, | |
1819 { 0x00, 0x38, 0x38 }, | |
1820 { 0x00, 0x39, 0x39 }, | |
1821 { 0x00, 0x3a, 0x3a }, | |
1822 { 0x00, 0x3b, 0x3b }, | |
1823 { 0x00, 0x3c, 0x3c }, | |
1824 { 0x00, 0x3d, 0x3d }, | |
1825 { 0x00, 0x3e, 0x3e }, | |
1826 { 0x00, 0x3f, 0x3f }, | |
1827 { 0x00, 0x40, 0x40 }, | |
1828 { 0x01, 0x61, 0x41 }, | |
1829 { 0x01, 0x62, 0x42 }, | |
1830 { 0x01, 0x63, 0x43 }, | |
1831 { 0x01, 0x64, 0x44 }, | |
1832 { 0x01, 0x65, 0x45 }, | |
1833 { 0x01, 0x66, 0x46 }, | |
1834 { 0x01, 0x67, 0x47 }, | |
1835 { 0x01, 0x68, 0x48 }, | |
1836 { 0x01, 0x69, 0x49 }, | |
1837 { 0x01, 0x6a, 0x4a }, | |
1838 { 0x01, 0x6b, 0x4b }, | |
1839 { 0x01, 0x6c, 0x4c }, | |
1840 { 0x01, 0x6d, 0x4d }, | |
1841 { 0x01, 0x6e, 0x4e }, | |
1842 { 0x01, 0x6f, 0x4f }, | |
1843 { 0x01, 0x70, 0x50 }, | |
1844 { 0x01, 0x71, 0x51 }, | |
1845 { 0x01, 0x72, 0x52 }, | |
1846 { 0x01, 0x73, 0x53 }, | |
1847 { 0x01, 0x74, 0x54 }, | |
1848 { 0x01, 0x75, 0x55 }, | |
1849 { 0x01, 0x76, 0x56 }, | |
1850 { 0x01, 0x77, 0x57 }, | |
1851 { 0x01, 0x78, 0x58 }, | |
1852 { 0x01, 0x79, 0x59 }, | |
1853 { 0x01, 0x7a, 0x5a }, | |
1854 { 0x00, 0x5b, 0x5b }, | |
1855 { 0x00, 0x5c, 0x5c }, | |
1856 { 0x00, 0x5d, 0x5d }, | |
1857 { 0x00, 0x5e, 0x5e }, | |
1858 { 0x00, 0x5f, 0x5f }, | |
1859 { 0x00, 0x60, 0x60 }, | |
1860 { 0x00, 0x61, 0x41 }, | |
1861 { 0x00, 0x62, 0x42 }, | |
1862 { 0x00, 0x63, 0x43 }, | |
1863 { 0x00, 0x64, 0x44 }, | |
1864 { 0x00, 0x65, 0x45 }, | |
1865 { 0x00, 0x66, 0x46 }, | |
1866 { 0x00, 0x67, 0x47 }, | |
1867 { 0x00, 0x68, 0x48 }, | |
1868 { 0x00, 0x69, 0x49 }, | |
1869 { 0x00, 0x6a, 0x4a }, | |
1870 { 0x00, 0x6b, 0x4b }, | |
1871 { 0x00, 0x6c, 0x4c }, | |
1872 { 0x00, 0x6d, 0x4d }, | |
1873 { 0x00, 0x6e, 0x4e }, | |
1874 { 0x00, 0x6f, 0x4f }, | |
1875 { 0x00, 0x70, 0x50 }, | |
1876 { 0x00, 0x71, 0x51 }, | |
1877 { 0x00, 0x72, 0x52 }, | |
1878 { 0x00, 0x73, 0x53 }, | |
1879 { 0x00, 0x74, 0x54 }, | |
1880 { 0x00, 0x75, 0x55 }, | |
1881 { 0x00, 0x76, 0x56 }, | |
1882 { 0x00, 0x77, 0x57 }, | |
1883 { 0x00, 0x78, 0x58 }, | |
1884 { 0x00, 0x79, 0x59 }, | |
1885 { 0x00, 0x7a, 0x5a }, | |
1886 { 0x00, 0x7b, 0x7b }, | |
1887 { 0x00, 0x7c, 0x7c }, | |
1888 { 0x00, 0x7d, 0x7d }, | |
1889 { 0x00, 0x7e, 0x7e }, | |
1890 { 0x00, 0x7f, 0x7f }, | |
1891 { 0x00, 0x80, 0x80 }, | |
1892 { 0x00, 0x81, 0x81 }, | |
1893 { 0x00, 0x82, 0x82 }, | |
1894 { 0x00, 0x83, 0x83 }, | |
1895 { 0x00, 0x84, 0x84 }, | |
1896 { 0x00, 0x85, 0x85 }, | |
1897 { 0x00, 0x86, 0x86 }, | |
1898 { 0x00, 0x87, 0x87 }, | |
1899 { 0x00, 0x88, 0x88 }, | |
1900 { 0x00, 0x89, 0x89 }, | |
1901 { 0x00, 0x8a, 0x8a }, | |
1902 { 0x00, 0x8b, 0x8b }, | |
1903 { 0x00, 0x8c, 0x8c }, | |
1904 { 0x00, 0x8d, 0x8d }, | |
1905 { 0x00, 0x8e, 0x8e }, | |
1906 { 0x00, 0x8f, 0x8f }, | |
1907 { 0x00, 0x90, 0x90 }, | |
1908 { 0x00, 0x91, 0x91 }, | |
1909 { 0x00, 0x92, 0x92 }, | |
1910 { 0x00, 0x93, 0x93 }, | |
1911 { 0x00, 0x94, 0x94 }, | |
1912 { 0x00, 0x95, 0x95 }, | |
1913 { 0x00, 0x96, 0x96 }, | |
1914 { 0x00, 0x97, 0x97 }, | |
1915 { 0x00, 0x98, 0x98 }, | |
1916 { 0x00, 0x99, 0x99 }, | |
1917 { 0x00, 0x9a, 0x9a }, | |
1918 { 0x00, 0x9b, 0x9b }, | |
1919 { 0x00, 0x9c, 0x9c }, | |
1920 { 0x00, 0x9d, 0x9d }, | |
1921 { 0x00, 0x9e, 0x9e }, | |
1922 { 0x00, 0x9f, 0x9f }, | |
1923 { 0x00, 0xa0, 0xa0 }, | |
1924 { 0x01, 0xf1, 0xa1 }, | |
1925 { 0x01, 0xf2, 0xa2 }, | |
1926 { 0x01, 0xf3, 0xa3 }, | |
1927 { 0x01, 0xf4, 0xa4 }, | |
1928 { 0x01, 0xf5, 0xa5 }, | |
1929 { 0x01, 0xf6, 0xa6 }, | |
1930 { 0x01, 0xf7, 0xa7 }, | |
1931 { 0x01, 0xf8, 0xa8 }, | |
1932 { 0x01, 0xf9, 0xa9 }, | |
1933 { 0x01, 0xfa, 0xaa }, | |
1934 { 0x01, 0xfb, 0xab }, | |
1935 { 0x01, 0xfc, 0xac }, | |
1936 { 0x00, 0xad, 0xad }, | |
1937 { 0x01, 0xfe, 0xae }, | |
1938 { 0x01, 0xff, 0xaf }, | |
1939 { 0x01, 0xd0, 0xb0 }, | |
1940 { 0x01, 0xd1, 0xb1 }, | |
1941 { 0x01, 0xd2, 0xb2 }, | |
1942 { 0x01, 0xd3, 0xb3 }, | |
1943 { 0x01, 0xd4, 0xb4 }, | |
1944 { 0x01, 0xd5, 0xb5 }, | |
1945 { 0x01, 0xd6, 0xb6 }, | |
1946 { 0x01, 0xd7, 0xb7 }, | |
1947 { 0x01, 0xd8, 0xb8 }, | |
1948 { 0x01, 0xd9, 0xb9 }, | |
1949 { 0x01, 0xda, 0xba }, | |
1950 { 0x01, 0xdb, 0xbb }, | |
1951 { 0x01, 0xdc, 0xbc }, | |
1952 { 0x01, 0xdd, 0xbd }, | |
1953 { 0x01, 0xde, 0xbe }, | |
1954 { 0x01, 0xdf, 0xbf }, | |
1955 { 0x01, 0xe0, 0xc0 }, | |
1956 { 0x01, 0xe1, 0xc1 }, | |
1957 { 0x01, 0xe2, 0xc2 }, | |
1958 { 0x01, 0xe3, 0xc3 }, | |
1959 { 0x01, 0xe4, 0xc4 }, | |
1960 { 0x01, 0xe5, 0xc5 }, | |
1961 { 0x01, 0xe6, 0xc6 }, | |
1962 { 0x01, 0xe7, 0xc7 }, | |
1963 { 0x01, 0xe8, 0xc8 }, | |
1964 { 0x01, 0xe9, 0xc9 }, | |
1965 { 0x01, 0xea, 0xca }, | |
1966 { 0x01, 0xeb, 0xcb }, | |
1967 { 0x01, 0xec, 0xcc }, | |
1968 { 0x01, 0xed, 0xcd }, | |
1969 { 0x01, 0xee, 0xce }, | |
1970 { 0x01, 0xef, 0xcf }, | |
1971 { 0x00, 0xd0, 0xb0 }, | |
1972 { 0x00, 0xd1, 0xb1 }, | |
1973 { 0x00, 0xd2, 0xb2 }, | |
1974 { 0x00, 0xd3, 0xb3 }, | |
1975 { 0x00, 0xd4, 0xb4 }, | |
1976 { 0x00, 0xd5, 0xb5 }, | |
1977 { 0x00, 0xd6, 0xb6 }, | |
1978 { 0x00, 0xd7, 0xb7 }, | |
1979 { 0x00, 0xd8, 0xb8 }, | |
1980 { 0x00, 0xd9, 0xb9 }, | |
1981 { 0x00, 0xda, 0xba }, | |
1982 { 0x00, 0xdb, 0xbb }, | |
1983 { 0x00, 0xdc, 0xbc }, | |
1984 { 0x00, 0xdd, 0xbd }, | |
1985 { 0x00, 0xde, 0xbe }, | |
1986 { 0x00, 0xdf, 0xbf }, | |
1987 { 0x00, 0xe0, 0xc0 }, | |
1988 { 0x00, 0xe1, 0xc1 }, | |
1989 { 0x00, 0xe2, 0xc2 }, | |
1990 { 0x00, 0xe3, 0xc3 }, | |
1991 { 0x00, 0xe4, 0xc4 }, | |
1992 { 0x00, 0xe5, 0xc5 }, | |
1993 { 0x00, 0xe6, 0xc6 }, | |
1994 { 0x00, 0xe7, 0xc7 }, | |
1995 { 0x00, 0xe8, 0xc8 }, | |
1996 { 0x00, 0xe9, 0xc9 }, | |
1997 { 0x00, 0xea, 0xca }, | |
1998 { 0x00, 0xeb, 0xcb }, | |
1999 { 0x00, 0xec, 0xcc }, | |
2000 { 0x00, 0xed, 0xcd }, | |
2001 { 0x00, 0xee, 0xce }, | |
2002 { 0x00, 0xef, 0xcf }, | |
2003 { 0x00, 0xf0, 0xf0 }, | |
2004 { 0x00, 0xf1, 0xa1 }, | |
2005 { 0x00, 0xf2, 0xa2 }, | |
2006 { 0x00, 0xf3, 0xa3 }, | |
2007 { 0x00, 0xf4, 0xa4 }, | |
2008 { 0x00, 0xf5, 0xa5 }, | |
2009 { 0x00, 0xf6, 0xa6 }, | |
2010 { 0x00, 0xf7, 0xa7 }, | |
2011 { 0x00, 0xf8, 0xa8 }, | |
2012 { 0x00, 0xf9, 0xa9 }, | |
2013 { 0x00, 0xfa, 0xaa }, | |
2014 { 0x00, 0xfb, 0xab }, | |
2015 { 0x00, 0xfc, 0xac }, | |
2016 { 0x00, 0xfd, 0xfd }, | |
2017 { 0x00, 0xfe, 0xae }, | |
2018 { 0x00, 0xff, 0xaf } | |
2019 }; | |
2020 | |
2021 static struct cs_info iso6_tbl[] = { | |
2022 { 0x00, 0x00, 0x00 }, | |
2023 { 0x00, 0x01, 0x01 }, | |
2024 { 0x00, 0x02, 0x02 }, | |
2025 { 0x00, 0x03, 0x03 }, | |
2026 { 0x00, 0x04, 0x04 }, | |
2027 { 0x00, 0x05, 0x05 }, | |
2028 { 0x00, 0x06, 0x06 }, | |
2029 { 0x00, 0x07, 0x07 }, | |
2030 { 0x00, 0x08, 0x08 }, | |
2031 { 0x00, 0x09, 0x09 }, | |
2032 { 0x00, 0x0a, 0x0a }, | |
2033 { 0x00, 0x0b, 0x0b }, | |
2034 { 0x00, 0x0c, 0x0c }, | |
2035 { 0x00, 0x0d, 0x0d }, | |
2036 { 0x00, 0x0e, 0x0e }, | |
2037 { 0x00, 0x0f, 0x0f }, | |
2038 { 0x00, 0x10, 0x10 }, | |
2039 { 0x00, 0x11, 0x11 }, | |
2040 { 0x00, 0x12, 0x12 }, | |
2041 { 0x00, 0x13, 0x13 }, | |
2042 { 0x00, 0x14, 0x14 }, | |
2043 { 0x00, 0x15, 0x15 }, | |
2044 { 0x00, 0x16, 0x16 }, | |
2045 { 0x00, 0x17, 0x17 }, | |
2046 { 0x00, 0x18, 0x18 }, | |
2047 { 0x00, 0x19, 0x19 }, | |
2048 { 0x00, 0x1a, 0x1a }, | |
2049 { 0x00, 0x1b, 0x1b }, | |
2050 { 0x00, 0x1c, 0x1c }, | |
2051 { 0x00, 0x1d, 0x1d }, | |
2052 { 0x00, 0x1e, 0x1e }, | |
2053 { 0x00, 0x1f, 0x1f }, | |
2054 { 0x00, 0x20, 0x20 }, | |
2055 { 0x00, 0x21, 0x21 }, | |
2056 { 0x00, 0x22, 0x22 }, | |
2057 { 0x00, 0x23, 0x23 }, | |
2058 { 0x00, 0x24, 0x24 }, | |
2059 { 0x00, 0x25, 0x25 }, | |
2060 { 0x00, 0x26, 0x26 }, | |
2061 { 0x00, 0x27, 0x27 }, | |
2062 { 0x00, 0x28, 0x28 }, | |
2063 { 0x00, 0x29, 0x29 }, | |
2064 { 0x00, 0x2a, 0x2a }, | |
2065 { 0x00, 0x2b, 0x2b }, | |
2066 { 0x00, 0x2c, 0x2c }, | |
2067 { 0x00, 0x2d, 0x2d }, | |
2068 { 0x00, 0x2e, 0x2e }, | |
2069 { 0x00, 0x2f, 0x2f }, | |
2070 { 0x00, 0x30, 0x30 }, | |
2071 { 0x00, 0x31, 0x31 }, | |
2072 { 0x00, 0x32, 0x32 }, | |
2073 { 0x00, 0x33, 0x33 }, | |
2074 { 0x00, 0x34, 0x34 }, | |
2075 { 0x00, 0x35, 0x35 }, | |
2076 { 0x00, 0x36, 0x36 }, | |
2077 { 0x00, 0x37, 0x37 }, | |
2078 { 0x00, 0x38, 0x38 }, | |
2079 { 0x00, 0x39, 0x39 }, | |
2080 { 0x00, 0x3a, 0x3a }, | |
2081 { 0x00, 0x3b, 0x3b }, | |
2082 { 0x00, 0x3c, 0x3c }, | |
2083 { 0x00, 0x3d, 0x3d }, | |
2084 { 0x00, 0x3e, 0x3e }, | |
2085 { 0x00, 0x3f, 0x3f }, | |
2086 { 0x00, 0x40, 0x40 }, | |
2087 { 0x01, 0x61, 0x41 }, | |
2088 { 0x01, 0x62, 0x42 }, | |
2089 { 0x01, 0x63, 0x43 }, | |
2090 { 0x01, 0x64, 0x44 }, | |
2091 { 0x01, 0x65, 0x45 }, | |
2092 { 0x01, 0x66, 0x46 }, | |
2093 { 0x01, 0x67, 0x47 }, | |
2094 { 0x01, 0x68, 0x48 }, | |
2095 { 0x01, 0x69, 0x49 }, | |
2096 { 0x01, 0x6a, 0x4a }, | |
2097 { 0x01, 0x6b, 0x4b }, | |
2098 { 0x01, 0x6c, 0x4c }, | |
2099 { 0x01, 0x6d, 0x4d }, | |
2100 { 0x01, 0x6e, 0x4e }, | |
2101 { 0x01, 0x6f, 0x4f }, | |
2102 { 0x01, 0x70, 0x50 }, | |
2103 { 0x01, 0x71, 0x51 }, | |
2104 { 0x01, 0x72, 0x52 }, | |
2105 { 0x01, 0x73, 0x53 }, | |
2106 { 0x01, 0x74, 0x54 }, | |
2107 { 0x01, 0x75, 0x55 }, | |
2108 { 0x01, 0x76, 0x56 }, | |
2109 { 0x01, 0x77, 0x57 }, | |
2110 { 0x01, 0x78, 0x58 }, | |
2111 { 0x01, 0x79, 0x59 }, | |
2112 { 0x01, 0x7a, 0x5a }, | |
2113 { 0x00, 0x5b, 0x5b }, | |
2114 { 0x00, 0x5c, 0x5c }, | |
2115 { 0x00, 0x5d, 0x5d }, | |
2116 { 0x00, 0x5e, 0x5e }, | |
2117 { 0x00, 0x5f, 0x5f }, | |
2118 { 0x00, 0x60, 0x60 }, | |
2119 { 0x00, 0x61, 0x41 }, | |
2120 { 0x00, 0x62, 0x42 }, | |
2121 { 0x00, 0x63, 0x43 }, | |
2122 { 0x00, 0x64, 0x44 }, | |
2123 { 0x00, 0x65, 0x45 }, | |
2124 { 0x00, 0x66, 0x46 }, | |
2125 { 0x00, 0x67, 0x47 }, | |
2126 { 0x00, 0x68, 0x48 }, | |
2127 { 0x00, 0x69, 0x49 }, | |
2128 { 0x00, 0x6a, 0x4a }, | |
2129 { 0x00, 0x6b, 0x4b }, | |
2130 { 0x00, 0x6c, 0x4c }, | |
2131 { 0x00, 0x6d, 0x4d }, | |
2132 { 0x00, 0x6e, 0x4e }, | |
2133 { 0x00, 0x6f, 0x4f }, | |
2134 { 0x00, 0x70, 0x50 }, | |
2135 { 0x00, 0x71, 0x51 }, | |
2136 { 0x00, 0x72, 0x52 }, | |
2137 { 0x00, 0x73, 0x53 }, | |
2138 { 0x00, 0x74, 0x54 }, | |
2139 { 0x00, 0x75, 0x55 }, | |
2140 { 0x00, 0x76, 0x56 }, | |
2141 { 0x00, 0x77, 0x57 }, | |
2142 { 0x00, 0x78, 0x58 }, | |
2143 { 0x00, 0x79, 0x59 }, | |
2144 { 0x00, 0x7a, 0x5a }, | |
2145 { 0x00, 0x7b, 0x7b }, | |
2146 { 0x00, 0x7c, 0x7c }, | |
2147 { 0x00, 0x7d, 0x7d }, | |
2148 { 0x00, 0x7e, 0x7e }, | |
2149 { 0x00, 0x7f, 0x7f }, | |
2150 { 0x00, 0x80, 0x80 }, | |
2151 { 0x00, 0x81, 0x81 }, | |
2152 { 0x00, 0x82, 0x82 }, | |
2153 { 0x00, 0x83, 0x83 }, | |
2154 { 0x00, 0x84, 0x84 }, | |
2155 { 0x00, 0x85, 0x85 }, | |
2156 { 0x00, 0x86, 0x86 }, | |
2157 { 0x00, 0x87, 0x87 }, | |
2158 { 0x00, 0x88, 0x88 }, | |
2159 { 0x00, 0x89, 0x89 }, | |
2160 { 0x00, 0x8a, 0x8a }, | |
2161 { 0x00, 0x8b, 0x8b }, | |
2162 { 0x00, 0x8c, 0x8c }, | |
2163 { 0x00, 0x8d, 0x8d }, | |
2164 { 0x00, 0x8e, 0x8e }, | |
2165 { 0x00, 0x8f, 0x8f }, | |
2166 { 0x00, 0x90, 0x90 }, | |
2167 { 0x00, 0x91, 0x91 }, | |
2168 { 0x00, 0x92, 0x92 }, | |
2169 { 0x00, 0x93, 0x93 }, | |
2170 { 0x00, 0x94, 0x94 }, | |
2171 { 0x00, 0x95, 0x95 }, | |
2172 { 0x00, 0x96, 0x96 }, | |
2173 { 0x00, 0x97, 0x97 }, | |
2174 { 0x00, 0x98, 0x98 }, | |
2175 { 0x00, 0x99, 0x99 }, | |
2176 { 0x00, 0x9a, 0x9a }, | |
2177 { 0x00, 0x9b, 0x9b }, | |
2178 { 0x00, 0x9c, 0x9c }, | |
2179 { 0x00, 0x9d, 0x9d }, | |
2180 { 0x00, 0x9e, 0x9e }, | |
2181 { 0x00, 0x9f, 0x9f }, | |
2182 { 0x00, 0xa0, 0xa0 }, | |
2183 { 0x00, 0xa1, 0xa1 }, | |
2184 { 0x00, 0xa2, 0xa2 }, | |
2185 { 0x00, 0xa3, 0xa3 }, | |
2186 { 0x00, 0xa4, 0xa4 }, | |
2187 { 0x00, 0xa5, 0xa5 }, | |
2188 { 0x00, 0xa6, 0xa6 }, | |
2189 { 0x00, 0xa7, 0xa7 }, | |
2190 { 0x00, 0xa8, 0xa8 }, | |
2191 { 0x00, 0xa9, 0xa9 }, | |
2192 { 0x00, 0xaa, 0xaa }, | |
2193 { 0x00, 0xab, 0xab }, | |
2194 { 0x00, 0xac, 0xac }, | |
2195 { 0x00, 0xad, 0xad }, | |
2196 { 0x00, 0xae, 0xae }, | |
2197 { 0x00, 0xaf, 0xaf }, | |
2198 { 0x00, 0xb0, 0xb0 }, | |
2199 { 0x00, 0xb1, 0xb1 }, | |
2200 { 0x00, 0xb2, 0xb2 }, | |
2201 { 0x00, 0xb3, 0xb3 }, | |
2202 { 0x00, 0xb4, 0xb4 }, | |
2203 { 0x00, 0xb5, 0xb5 }, | |
2204 { 0x00, 0xb6, 0xb6 }, | |
2205 { 0x00, 0xb7, 0xb7 }, | |
2206 { 0x00, 0xb8, 0xb8 }, | |
2207 { 0x00, 0xb9, 0xb9 }, | |
2208 { 0x00, 0xba, 0xba }, | |
2209 { 0x00, 0xbb, 0xbb }, | |
2210 { 0x00, 0xbc, 0xbc }, | |
2211 { 0x00, 0xbd, 0xbd }, | |
2212 { 0x00, 0xbe, 0xbe }, | |
2213 { 0x00, 0xbf, 0xbf }, | |
2214 { 0x00, 0xc0, 0xc0 }, | |
2215 { 0x00, 0xc1, 0xc1 }, | |
2216 { 0x00, 0xc2, 0xc2 }, | |
2217 { 0x00, 0xc3, 0xc3 }, | |
2218 { 0x00, 0xc4, 0xc4 }, | |
2219 { 0x00, 0xc5, 0xc5 }, | |
2220 { 0x00, 0xc6, 0xc6 }, | |
2221 { 0x00, 0xc7, 0xc7 }, | |
2222 { 0x00, 0xc8, 0xc8 }, | |
2223 { 0x00, 0xc9, 0xc9 }, | |
2224 { 0x00, 0xca, 0xca }, | |
2225 { 0x00, 0xcb, 0xcb }, | |
2226 { 0x00, 0xcc, 0xcc }, | |
2227 { 0x00, 0xcd, 0xcd }, | |
2228 { 0x00, 0xce, 0xce }, | |
2229 { 0x00, 0xcf, 0xcf }, | |
2230 { 0x00, 0xd0, 0xd0 }, | |
2231 { 0x00, 0xd1, 0xd1 }, | |
2232 { 0x00, 0xd2, 0xd2 }, | |
2233 { 0x00, 0xd3, 0xd3 }, | |
2234 { 0x00, 0xd4, 0xd4 }, | |
2235 { 0x00, 0xd5, 0xd5 }, | |
2236 { 0x00, 0xd6, 0xd6 }, | |
2237 { 0x00, 0xd7, 0xd7 }, | |
2238 { 0x00, 0xd8, 0xd8 }, | |
2239 { 0x00, 0xd9, 0xd9 }, | |
2240 { 0x00, 0xda, 0xda }, | |
2241 { 0x00, 0xdb, 0xdb }, | |
2242 { 0x00, 0xdc, 0xdc }, | |
2243 { 0x00, 0xdd, 0xdd }, | |
2244 { 0x00, 0xde, 0xde }, | |
2245 { 0x00, 0xdf, 0xdf }, | |
2246 { 0x00, 0xe0, 0xe0 }, | |
2247 { 0x00, 0xe1, 0xe1 }, | |
2248 { 0x00, 0xe2, 0xe2 }, | |
2249 { 0x00, 0xe3, 0xe3 }, | |
2250 { 0x00, 0xe4, 0xe4 }, | |
2251 { 0x00, 0xe5, 0xe5 }, | |
2252 { 0x00, 0xe6, 0xe6 }, | |
2253 { 0x00, 0xe7, 0xe7 }, | |
2254 { 0x00, 0xe8, 0xe8 }, | |
2255 { 0x00, 0xe9, 0xe9 }, | |
2256 { 0x00, 0xea, 0xea }, | |
2257 { 0x00, 0xeb, 0xeb }, | |
2258 { 0x00, 0xec, 0xec }, | |
2259 { 0x00, 0xed, 0xed }, | |
2260 { 0x00, 0xee, 0xee }, | |
2261 { 0x00, 0xef, 0xef }, | |
2262 { 0x00, 0xf0, 0xf0 }, | |
2263 { 0x00, 0xf1, 0xf1 }, | |
2264 { 0x00, 0xf2, 0xf2 }, | |
2265 { 0x00, 0xf3, 0xf3 }, | |
2266 { 0x00, 0xf4, 0xf4 }, | |
2267 { 0x00, 0xf5, 0xf5 }, | |
2268 { 0x00, 0xf6, 0xf6 }, | |
2269 { 0x00, 0xf7, 0xf7 }, | |
2270 { 0x00, 0xf8, 0xf8 }, | |
2271 { 0x00, 0xf9, 0xf9 }, | |
2272 { 0x00, 0xfa, 0xfa }, | |
2273 { 0x00, 0xfb, 0xfb }, | |
2274 { 0x00, 0xfc, 0xfc }, | |
2275 { 0x00, 0xfd, 0xfd }, | |
2276 { 0x00, 0xfe, 0xfe }, | |
2277 { 0x00, 0xff, 0xff } | |
2278 }; | |
2279 | |
2280 static struct cs_info iso7_tbl[] = { | |
2281 { 0x00, 0x00, 0x00 }, | |
2282 { 0x00, 0x01, 0x01 }, | |
2283 { 0x00, 0x02, 0x02 }, | |
2284 { 0x00, 0x03, 0x03 }, | |
2285 { 0x00, 0x04, 0x04 }, | |
2286 { 0x00, 0x05, 0x05 }, | |
2287 { 0x00, 0x06, 0x06 }, | |
2288 { 0x00, 0x07, 0x07 }, | |
2289 { 0x00, 0x08, 0x08 }, | |
2290 { 0x00, 0x09, 0x09 }, | |
2291 { 0x00, 0x0a, 0x0a }, | |
2292 { 0x00, 0x0b, 0x0b }, | |
2293 { 0x00, 0x0c, 0x0c }, | |
2294 { 0x00, 0x0d, 0x0d }, | |
2295 { 0x00, 0x0e, 0x0e }, | |
2296 { 0x00, 0x0f, 0x0f }, | |
2297 { 0x00, 0x10, 0x10 }, | |
2298 { 0x00, 0x11, 0x11 }, | |
2299 { 0x00, 0x12, 0x12 }, | |
2300 { 0x00, 0x13, 0x13 }, | |
2301 { 0x00, 0x14, 0x14 }, | |
2302 { 0x00, 0x15, 0x15 }, | |
2303 { 0x00, 0x16, 0x16 }, | |
2304 { 0x00, 0x17, 0x17 }, | |
2305 { 0x00, 0x18, 0x18 }, | |
2306 { 0x00, 0x19, 0x19 }, | |
2307 { 0x00, 0x1a, 0x1a }, | |
2308 { 0x00, 0x1b, 0x1b }, | |
2309 { 0x00, 0x1c, 0x1c }, | |
2310 { 0x00, 0x1d, 0x1d }, | |
2311 { 0x00, 0x1e, 0x1e }, | |
2312 { 0x00, 0x1f, 0x1f }, | |
2313 { 0x00, 0x20, 0x20 }, | |
2314 { 0x00, 0x21, 0x21 }, | |
2315 { 0x00, 0x22, 0x22 }, | |
2316 { 0x00, 0x23, 0x23 }, | |
2317 { 0x00, 0x24, 0x24 }, | |
2318 { 0x00, 0x25, 0x25 }, | |
2319 { 0x00, 0x26, 0x26 }, | |
2320 { 0x00, 0x27, 0x27 }, | |
2321 { 0x00, 0x28, 0x28 }, | |
2322 { 0x00, 0x29, 0x29 }, | |
2323 { 0x00, 0x2a, 0x2a }, | |
2324 { 0x00, 0x2b, 0x2b }, | |
2325 { 0x00, 0x2c, 0x2c }, | |
2326 { 0x00, 0x2d, 0x2d }, | |
2327 { 0x00, 0x2e, 0x2e }, | |
2328 { 0x00, 0x2f, 0x2f }, | |
2329 { 0x00, 0x30, 0x30 }, | |
2330 { 0x00, 0x31, 0x31 }, | |
2331 { 0x00, 0x32, 0x32 }, | |
2332 { 0x00, 0x33, 0x33 }, | |
2333 { 0x00, 0x34, 0x34 }, | |
2334 { 0x00, 0x35, 0x35 }, | |
2335 { 0x00, 0x36, 0x36 }, | |
2336 { 0x00, 0x37, 0x37 }, | |
2337 { 0x00, 0x38, 0x38 }, | |
2338 { 0x00, 0x39, 0x39 }, | |
2339 { 0x00, 0x3a, 0x3a }, | |
2340 { 0x00, 0x3b, 0x3b }, | |
2341 { 0x00, 0x3c, 0x3c }, | |
2342 { 0x00, 0x3d, 0x3d }, | |
2343 { 0x00, 0x3e, 0x3e }, | |
2344 { 0x00, 0x3f, 0x3f }, | |
2345 { 0x00, 0x40, 0x40 }, | |
2346 { 0x01, 0x61, 0x41 }, | |
2347 { 0x01, 0x62, 0x42 }, | |
2348 { 0x01, 0x63, 0x43 }, | |
2349 { 0x01, 0x64, 0x44 }, | |
2350 { 0x01, 0x65, 0x45 }, | |
2351 { 0x01, 0x66, 0x46 }, | |
2352 { 0x01, 0x67, 0x47 }, | |
2353 { 0x01, 0x68, 0x48 }, | |
2354 { 0x01, 0x69, 0x49 }, | |
2355 { 0x01, 0x6a, 0x4a }, | |
2356 { 0x01, 0x6b, 0x4b }, | |
2357 { 0x01, 0x6c, 0x4c }, | |
2358 { 0x01, 0x6d, 0x4d }, | |
2359 { 0x01, 0x6e, 0x4e }, | |
2360 { 0x01, 0x6f, 0x4f }, | |
2361 { 0x01, 0x70, 0x50 }, | |
2362 { 0x01, 0x71, 0x51 }, | |
2363 { 0x01, 0x72, 0x52 }, | |
2364 { 0x01, 0x73, 0x53 }, | |
2365 { 0x01, 0x74, 0x54 }, | |
2366 { 0x01, 0x75, 0x55 }, | |
2367 { 0x01, 0x76, 0x56 }, | |
2368 { 0x01, 0x77, 0x57 }, | |
2369 { 0x01, 0x78, 0x58 }, | |
2370 { 0x01, 0x79, 0x59 }, | |
2371 { 0x01, 0x7a, 0x5a }, | |
2372 { 0x00, 0x5b, 0x5b }, | |
2373 { 0x00, 0x5c, 0x5c }, | |
2374 { 0x00, 0x5d, 0x5d }, | |
2375 { 0x00, 0x5e, 0x5e }, | |
2376 { 0x00, 0x5f, 0x5f }, | |
2377 { 0x00, 0x60, 0x60 }, | |
2378 { 0x00, 0x61, 0x41 }, | |
2379 { 0x00, 0x62, 0x42 }, | |
2380 { 0x00, 0x63, 0x43 }, | |
2381 { 0x00, 0x64, 0x44 }, | |
2382 { 0x00, 0x65, 0x45 }, | |
2383 { 0x00, 0x66, 0x46 }, | |
2384 { 0x00, 0x67, 0x47 }, | |
2385 { 0x00, 0x68, 0x48 }, | |
2386 { 0x00, 0x69, 0x49 }, | |
2387 { 0x00, 0x6a, 0x4a }, | |
2388 { 0x00, 0x6b, 0x4b }, | |
2389 { 0x00, 0x6c, 0x4c }, | |
2390 { 0x00, 0x6d, 0x4d }, | |
2391 { 0x00, 0x6e, 0x4e }, | |
2392 { 0x00, 0x6f, 0x4f }, | |
2393 { 0x00, 0x70, 0x50 }, | |
2394 { 0x00, 0x71, 0x51 }, | |
2395 { 0x00, 0x72, 0x52 }, | |
2396 { 0x00, 0x73, 0x53 }, | |
2397 { 0x00, 0x74, 0x54 }, | |
2398 { 0x00, 0x75, 0x55 }, | |
2399 { 0x00, 0x76, 0x56 }, | |
2400 { 0x00, 0x77, 0x57 }, | |
2401 { 0x00, 0x78, 0x58 }, | |
2402 { 0x00, 0x79, 0x59 }, | |
2403 { 0x00, 0x7a, 0x5a }, | |
2404 { 0x00, 0x7b, 0x7b }, | |
2405 { 0x00, 0x7c, 0x7c }, | |
2406 { 0x00, 0x7d, 0x7d }, | |
2407 { 0x00, 0x7e, 0x7e }, | |
2408 { 0x00, 0x7f, 0x7f }, | |
2409 { 0x00, 0x80, 0x80 }, | |
2410 { 0x00, 0x81, 0x81 }, | |
2411 { 0x00, 0x82, 0x82 }, | |
2412 { 0x00, 0x83, 0x83 }, | |
2413 { 0x00, 0x84, 0x84 }, | |
2414 { 0x00, 0x85, 0x85 }, | |
2415 { 0x00, 0x86, 0x86 }, | |
2416 { 0x00, 0x87, 0x87 }, | |
2417 { 0x00, 0x88, 0x88 }, | |
2418 { 0x00, 0x89, 0x89 }, | |
2419 { 0x00, 0x8a, 0x8a }, | |
2420 { 0x00, 0x8b, 0x8b }, | |
2421 { 0x00, 0x8c, 0x8c }, | |
2422 { 0x00, 0x8d, 0x8d }, | |
2423 { 0x00, 0x8e, 0x8e }, | |
2424 { 0x00, 0x8f, 0x8f }, | |
2425 { 0x00, 0x90, 0x90 }, | |
2426 { 0x00, 0x91, 0x91 }, | |
2427 { 0x00, 0x92, 0x92 }, | |
2428 { 0x00, 0x93, 0x93 }, | |
2429 { 0x00, 0x94, 0x94 }, | |
2430 { 0x00, 0x95, 0x95 }, | |
2431 { 0x00, 0x96, 0x96 }, | |
2432 { 0x00, 0x97, 0x97 }, | |
2433 { 0x00, 0x98, 0x98 }, | |
2434 { 0x00, 0x99, 0x99 }, | |
2435 { 0x00, 0x9a, 0x9a }, | |
2436 { 0x00, 0x9b, 0x9b }, | |
2437 { 0x00, 0x9c, 0x9c }, | |
2438 { 0x00, 0x9d, 0x9d }, | |
2439 { 0x00, 0x9e, 0x9e }, | |
2440 { 0x00, 0x9f, 0x9f }, | |
2441 { 0x00, 0xa0, 0xa0 }, | |
2442 { 0x00, 0xa1, 0xa1 }, | |
2443 { 0x00, 0xa2, 0xa2 }, | |
2444 { 0x00, 0xa3, 0xa3 }, | |
2445 { 0x00, 0xa4, 0xa4 }, | |
2446 { 0x00, 0xa5, 0xa5 }, | |
2447 { 0x00, 0xa6, 0xa6 }, | |
2448 { 0x00, 0xa7, 0xa7 }, | |
2449 { 0x00, 0xa8, 0xa8 }, | |
2450 { 0x00, 0xa9, 0xa9 }, | |
2451 { 0x00, 0xaa, 0xaa }, | |
2452 { 0x00, 0xab, 0xab }, | |
2453 { 0x00, 0xac, 0xac }, | |
2454 { 0x00, 0xad, 0xad }, | |
2455 { 0x00, 0xae, 0xae }, | |
2456 { 0x00, 0xaf, 0xaf }, | |
2457 { 0x00, 0xb0, 0xb0 }, | |
2458 { 0x00, 0xb1, 0xb1 }, | |
2459 { 0x00, 0xb2, 0xb2 }, | |
2460 { 0x00, 0xb3, 0xb3 }, | |
2461 { 0x00, 0xb4, 0xb4 }, | |
2462 { 0x00, 0xb5, 0xb5 }, | |
2463 { 0x01, 0xdc, 0xb6 }, | |
2464 { 0x00, 0xb7, 0xb7 }, | |
2465 { 0x01, 0xdd, 0xb8 }, | |
2466 { 0x01, 0xde, 0xb9 }, | |
2467 { 0x01, 0xdf, 0xba }, | |
2468 { 0x00, 0xbb, 0xbb }, | |
2469 { 0x01, 0xfc, 0xbc }, | |
2470 { 0x00, 0xbd, 0xbd }, | |
2471 { 0x01, 0xfd, 0xbe }, | |
2472 { 0x01, 0xfe, 0xbf }, | |
2473 { 0x00, 0xc0, 0xc0 }, | |
2474 { 0x01, 0xe1, 0xc1 }, | |
2475 { 0x01, 0xe2, 0xc2 }, | |
2476 { 0x01, 0xe3, 0xc3 }, | |
2477 { 0x01, 0xe4, 0xc4 }, | |
2478 { 0x01, 0xe5, 0xc5 }, | |
2479 { 0x01, 0xe6, 0xc6 }, | |
2480 { 0x01, 0xe7, 0xc7 }, | |
2481 { 0x01, 0xe8, 0xc8 }, | |
2482 { 0x01, 0xe9, 0xc9 }, | |
2483 { 0x01, 0xea, 0xca }, | |
2484 { 0x01, 0xeb, 0xcb }, | |
2485 { 0x01, 0xec, 0xcc }, | |
2486 { 0x01, 0xed, 0xcd }, | |
2487 { 0x01, 0xee, 0xce }, | |
2488 { 0x01, 0xef, 0xcf }, | |
2489 { 0x01, 0xf0, 0xd0 }, | |
2490 { 0x01, 0xf1, 0xd1 }, | |
2491 { 0x00, 0xd2, 0xd2 }, | |
2492 { 0x01, 0xf3, 0xd3 }, | |
2493 { 0x01, 0xf4, 0xd4 }, | |
2494 { 0x01, 0xf5, 0xd5 }, | |
2495 { 0x01, 0xf6, 0xd6 }, | |
2496 { 0x01, 0xf7, 0xd7 }, | |
2497 { 0x01, 0xf8, 0xd8 }, | |
2498 { 0x01, 0xf9, 0xd9 }, | |
2499 { 0x01, 0xfa, 0xda }, | |
2500 { 0x01, 0xfb, 0xdb }, | |
2501 { 0x00, 0xdc, 0xb6 }, | |
2502 { 0x00, 0xdd, 0xb8 }, | |
2503 { 0x00, 0xde, 0xb9 }, | |
2504 { 0x00, 0xdf, 0xba }, | |
2505 { 0x00, 0xe0, 0xe0 }, | |
2506 { 0x00, 0xe1, 0xc1 }, | |
2507 { 0x00, 0xe2, 0xc2 }, | |
2508 { 0x00, 0xe3, 0xc3 }, | |
2509 { 0x00, 0xe4, 0xc4 }, | |
2510 { 0x00, 0xe5, 0xc5 }, | |
2511 { 0x00, 0xe6, 0xc6 }, | |
2512 { 0x00, 0xe7, 0xc7 }, | |
2513 { 0x00, 0xe8, 0xc8 }, | |
2514 { 0x00, 0xe9, 0xc9 }, | |
2515 { 0x00, 0xea, 0xca }, | |
2516 { 0x00, 0xeb, 0xcb }, | |
2517 { 0x00, 0xec, 0xcc }, | |
2518 { 0x00, 0xed, 0xcd }, | |
2519 { 0x00, 0xee, 0xce }, | |
2520 { 0x00, 0xef, 0xcf }, | |
2521 { 0x00, 0xf0, 0xd0 }, | |
2522 { 0x00, 0xf1, 0xd1 }, | |
2523 { 0x00, 0xf2, 0xd3 }, | |
2524 { 0x00, 0xf3, 0xd3 }, | |
2525 { 0x00, 0xf4, 0xd4 }, | |
2526 { 0x00, 0xf5, 0xd5 }, | |
2527 { 0x00, 0xf6, 0xd6 }, | |
2528 { 0x00, 0xf7, 0xd7 }, | |
2529 { 0x00, 0xf8, 0xd8 }, | |
2530 { 0x00, 0xf9, 0xd9 }, | |
2531 { 0x00, 0xfa, 0xda }, | |
2532 { 0x00, 0xfb, 0xdb }, | |
2533 { 0x00, 0xfc, 0xbc }, | |
2534 { 0x00, 0xfd, 0xbe }, | |
2535 { 0x00, 0xfe, 0xbf }, | |
2536 { 0x00, 0xff, 0xff } | |
2537 }; | |
2538 | |
2539 static struct cs_info iso8_tbl[] = { | |
2540 { 0x00, 0x00, 0x00 }, | |
2541 { 0x00, 0x01, 0x01 }, | |
2542 { 0x00, 0x02, 0x02 }, | |
2543 { 0x00, 0x03, 0x03 }, | |
2544 { 0x00, 0x04, 0x04 }, | |
2545 { 0x00, 0x05, 0x05 }, | |
2546 { 0x00, 0x06, 0x06 }, | |
2547 { 0x00, 0x07, 0x07 }, | |
2548 { 0x00, 0x08, 0x08 }, | |
2549 { 0x00, 0x09, 0x09 }, | |
2550 { 0x00, 0x0a, 0x0a }, | |
2551 { 0x00, 0x0b, 0x0b }, | |
2552 { 0x00, 0x0c, 0x0c }, | |
2553 { 0x00, 0x0d, 0x0d }, | |
2554 { 0x00, 0x0e, 0x0e }, | |
2555 { 0x00, 0x0f, 0x0f }, | |
2556 { 0x00, 0x10, 0x10 }, | |
2557 { 0x00, 0x11, 0x11 }, | |
2558 { 0x00, 0x12, 0x12 }, | |
2559 { 0x00, 0x13, 0x13 }, | |
2560 { 0x00, 0x14, 0x14 }, | |
2561 { 0x00, 0x15, 0x15 }, | |
2562 { 0x00, 0x16, 0x16 }, | |
2563 { 0x00, 0x17, 0x17 }, | |
2564 { 0x00, 0x18, 0x18 }, | |
2565 { 0x00, 0x19, 0x19 }, | |
2566 { 0x00, 0x1a, 0x1a }, | |
2567 { 0x00, 0x1b, 0x1b }, | |
2568 { 0x00, 0x1c, 0x1c }, | |
2569 { 0x00, 0x1d, 0x1d }, | |
2570 { 0x00, 0x1e, 0x1e }, | |
2571 { 0x00, 0x1f, 0x1f }, | |
2572 { 0x00, 0x20, 0x20 }, | |
2573 { 0x00, 0x21, 0x21 }, | |
2574 { 0x00, 0x22, 0x22 }, | |
2575 { 0x00, 0x23, 0x23 }, | |
2576 { 0x00, 0x24, 0x24 }, | |
2577 { 0x00, 0x25, 0x25 }, | |
2578 { 0x00, 0x26, 0x26 }, | |
2579 { 0x00, 0x27, 0x27 }, | |
2580 { 0x00, 0x28, 0x28 }, | |
2581 { 0x00, 0x29, 0x29 }, | |
2582 { 0x00, 0x2a, 0x2a }, | |
2583 { 0x00, 0x2b, 0x2b }, | |
2584 { 0x00, 0x2c, 0x2c }, | |
2585 { 0x00, 0x2d, 0x2d }, | |
2586 { 0x00, 0x2e, 0x2e }, | |
2587 { 0x00, 0x2f, 0x2f }, | |
2588 { 0x00, 0x30, 0x30 }, | |
2589 { 0x00, 0x31, 0x31 }, | |
2590 { 0x00, 0x32, 0x32 }, | |
2591 { 0x00, 0x33, 0x33 }, | |
2592 { 0x00, 0x34, 0x34 }, | |
2593 { 0x00, 0x35, 0x35 }, | |
2594 { 0x00, 0x36, 0x36 }, | |
2595 { 0x00, 0x37, 0x37 }, | |
2596 { 0x00, 0x38, 0x38 }, | |
2597 { 0x00, 0x39, 0x39 }, | |
2598 { 0x00, 0x3a, 0x3a }, | |
2599 { 0x00, 0x3b, 0x3b }, | |
2600 { 0x00, 0x3c, 0x3c }, | |
2601 { 0x00, 0x3d, 0x3d }, | |
2602 { 0x00, 0x3e, 0x3e }, | |
2603 { 0x00, 0x3f, 0x3f }, | |
2604 { 0x00, 0x40, 0x40 }, | |
2605 { 0x01, 0x61, 0x41 }, | |
2606 { 0x01, 0x62, 0x42 }, | |
2607 { 0x01, 0x63, 0x43 }, | |
2608 { 0x01, 0x64, 0x44 }, | |
2609 { 0x01, 0x65, 0x45 }, | |
2610 { 0x01, 0x66, 0x46 }, | |
2611 { 0x01, 0x67, 0x47 }, | |
2612 { 0x01, 0x68, 0x48 }, | |
2613 { 0x01, 0x69, 0x49 }, | |
2614 { 0x01, 0x6a, 0x4a }, | |
2615 { 0x01, 0x6b, 0x4b }, | |
2616 { 0x01, 0x6c, 0x4c }, | |
2617 { 0x01, 0x6d, 0x4d }, | |
2618 { 0x01, 0x6e, 0x4e }, | |
2619 { 0x01, 0x6f, 0x4f }, | |
2620 { 0x01, 0x70, 0x50 }, | |
2621 { 0x01, 0x71, 0x51 }, | |
2622 { 0x01, 0x72, 0x52 }, | |
2623 { 0x01, 0x73, 0x53 }, | |
2624 { 0x01, 0x74, 0x54 }, | |
2625 { 0x01, 0x75, 0x55 }, | |
2626 { 0x01, 0x76, 0x56 }, | |
2627 { 0x01, 0x77, 0x57 }, | |
2628 { 0x01, 0x78, 0x58 }, | |
2629 { 0x01, 0x79, 0x59 }, | |
2630 { 0x01, 0x7a, 0x5a }, | |
2631 { 0x00, 0x5b, 0x5b }, | |
2632 { 0x00, 0x5c, 0x5c }, | |
2633 { 0x00, 0x5d, 0x5d }, | |
2634 { 0x00, 0x5e, 0x5e }, | |
2635 { 0x00, 0x5f, 0x5f }, | |
2636 { 0x00, 0x60, 0x60 }, | |
2637 { 0x00, 0x61, 0x41 }, | |
2638 { 0x00, 0x62, 0x42 }, | |
2639 { 0x00, 0x63, 0x43 }, | |
2640 { 0x00, 0x64, 0x44 }, | |
2641 { 0x00, 0x65, 0x45 }, | |
2642 { 0x00, 0x66, 0x46 }, | |
2643 { 0x00, 0x67, 0x47 }, | |
2644 { 0x00, 0x68, 0x48 }, | |
2645 { 0x00, 0x69, 0x49 }, | |
2646 { 0x00, 0x6a, 0x4a }, | |
2647 { 0x00, 0x6b, 0x4b }, | |
2648 { 0x00, 0x6c, 0x4c }, | |
2649 { 0x00, 0x6d, 0x4d }, | |
2650 { 0x00, 0x6e, 0x4e }, | |
2651 { 0x00, 0x6f, 0x4f }, | |
2652 { 0x00, 0x70, 0x50 }, | |
2653 { 0x00, 0x71, 0x51 }, | |
2654 { 0x00, 0x72, 0x52 }, | |
2655 { 0x00, 0x73, 0x53 }, | |
2656 { 0x00, 0x74, 0x54 }, | |
2657 { 0x00, 0x75, 0x55 }, | |
2658 { 0x00, 0x76, 0x56 }, | |
2659 { 0x00, 0x77, 0x57 }, | |
2660 { 0x00, 0x78, 0x58 }, | |
2661 { 0x00, 0x79, 0x59 }, | |
2662 { 0x00, 0x7a, 0x5a }, | |
2663 { 0x00, 0x7b, 0x7b }, | |
2664 { 0x00, 0x7c, 0x7c }, | |
2665 { 0x00, 0x7d, 0x7d }, | |
2666 { 0x00, 0x7e, 0x7e }, | |
2667 { 0x00, 0x7f, 0x7f }, | |
2668 { 0x00, 0x80, 0x80 }, | |
2669 { 0x00, 0x81, 0x81 }, | |
2670 { 0x00, 0x82, 0x82 }, | |
2671 { 0x00, 0x83, 0x83 }, | |
2672 { 0x00, 0x84, 0x84 }, | |
2673 { 0x00, 0x85, 0x85 }, | |
2674 { 0x00, 0x86, 0x86 }, | |
2675 { 0x00, 0x87, 0x87 }, | |
2676 { 0x00, 0x88, 0x88 }, | |
2677 { 0x00, 0x89, 0x89 }, | |
2678 { 0x00, 0x8a, 0x8a }, | |
2679 { 0x00, 0x8b, 0x8b }, | |
2680 { 0x00, 0x8c, 0x8c }, | |
2681 { 0x00, 0x8d, 0x8d }, | |
2682 { 0x00, 0x8e, 0x8e }, | |
2683 { 0x00, 0x8f, 0x8f }, | |
2684 { 0x00, 0x90, 0x90 }, | |
2685 { 0x00, 0x91, 0x91 }, | |
2686 { 0x00, 0x92, 0x92 }, | |
2687 { 0x00, 0x93, 0x93 }, | |
2688 { 0x00, 0x94, 0x94 }, | |
2689 { 0x00, 0x95, 0x95 }, | |
2690 { 0x00, 0x96, 0x96 }, | |
2691 { 0x00, 0x97, 0x97 }, | |
2692 { 0x00, 0x98, 0x98 }, | |
2693 { 0x00, 0x99, 0x99 }, | |
2694 { 0x00, 0x9a, 0x9a }, | |
2695 { 0x00, 0x9b, 0x9b }, | |
2696 { 0x00, 0x9c, 0x9c }, | |
2697 { 0x00, 0x9d, 0x9d }, | |
2698 { 0x00, 0x9e, 0x9e }, | |
2699 { 0x00, 0x9f, 0x9f }, | |
2700 { 0x00, 0xa0, 0xa0 }, | |
2701 { 0x00, 0xa1, 0xa1 }, | |
2702 { 0x00, 0xa2, 0xa2 }, | |
2703 { 0x00, 0xa3, 0xa3 }, | |
2704 { 0x00, 0xa4, 0xa4 }, | |
2705 { 0x00, 0xa5, 0xa5 }, | |
2706 { 0x00, 0xa6, 0xa6 }, | |
2707 { 0x00, 0xa7, 0xa7 }, | |
2708 { 0x00, 0xa8, 0xa8 }, | |
2709 { 0x00, 0xa9, 0xa9 }, | |
2710 { 0x00, 0xaa, 0xaa }, | |
2711 { 0x00, 0xab, 0xab }, | |
2712 { 0x00, 0xac, 0xac }, | |
2713 { 0x00, 0xad, 0xad }, | |
2714 { 0x00, 0xae, 0xae }, | |
2715 { 0x00, 0xaf, 0xaf }, | |
2716 { 0x00, 0xb0, 0xb0 }, | |
2717 { 0x00, 0xb1, 0xb1 }, | |
2718 { 0x00, 0xb2, 0xb2 }, | |
2719 { 0x00, 0xb3, 0xb3 }, | |
2720 { 0x00, 0xb4, 0xb4 }, | |
2721 { 0x00, 0xb5, 0xb5 }, | |
2722 { 0x00, 0xb6, 0xb6 }, | |
2723 { 0x00, 0xb7, 0xb7 }, | |
2724 { 0x00, 0xb8, 0xb8 }, | |
2725 { 0x00, 0xb9, 0xb9 }, | |
2726 { 0x00, 0xba, 0xba }, | |
2727 { 0x00, 0xbb, 0xbb }, | |
2728 { 0x00, 0xbc, 0xbc }, | |
2729 { 0x00, 0xbd, 0xbd }, | |
2730 { 0x00, 0xbe, 0xbe }, | |
2731 { 0x00, 0xbf, 0xbf }, | |
2732 { 0x00, 0xc0, 0xc0 }, | |
2733 { 0x00, 0xc1, 0xc1 }, | |
2734 { 0x00, 0xc2, 0xc2 }, | |
2735 { 0x00, 0xc3, 0xc3 }, | |
2736 { 0x00, 0xc4, 0xc4 }, | |
2737 { 0x00, 0xc5, 0xc5 }, | |
2738 { 0x00, 0xc6, 0xc6 }, | |
2739 { 0x00, 0xc7, 0xc7 }, | |
2740 { 0x00, 0xc8, 0xc8 }, | |
2741 { 0x00, 0xc9, 0xc9 }, | |
2742 { 0x00, 0xca, 0xca }, | |
2743 { 0x00, 0xcb, 0xcb }, | |
2744 { 0x00, 0xcc, 0xcc }, | |
2745 { 0x00, 0xcd, 0xcd }, | |
2746 { 0x00, 0xce, 0xce }, | |
2747 { 0x00, 0xcf, 0xcf }, | |
2748 { 0x00, 0xd0, 0xd0 }, | |
2749 { 0x00, 0xd1, 0xd1 }, | |
2750 { 0x00, 0xd2, 0xd2 }, | |
2751 { 0x00, 0xd3, 0xd3 }, | |
2752 { 0x00, 0xd4, 0xd4 }, | |
2753 { 0x00, 0xd5, 0xd5 }, | |
2754 { 0x00, 0xd6, 0xd6 }, | |
2755 { 0x00, 0xd7, 0xd7 }, | |
2756 { 0x00, 0xd8, 0xd8 }, | |
2757 { 0x00, 0xd9, 0xd9 }, | |
2758 { 0x00, 0xda, 0xda }, | |
2759 { 0x00, 0xdb, 0xdb }, | |
2760 { 0x00, 0xdc, 0xdc }, | |
2761 { 0x00, 0xdd, 0xdd }, | |
2762 { 0x00, 0xde, 0xde }, | |
2763 { 0x00, 0xdf, 0xdf }, | |
2764 { 0x00, 0xe0, 0xe0 }, | |
2765 { 0x00, 0xe1, 0xe1 }, | |
2766 { 0x00, 0xe2, 0xe2 }, | |
2767 { 0x00, 0xe3, 0xe3 }, | |
2768 { 0x00, 0xe4, 0xe4 }, | |
2769 { 0x00, 0xe5, 0xe5 }, | |
2770 { 0x00, 0xe6, 0xe6 }, | |
2771 { 0x00, 0xe7, 0xe7 }, | |
2772 { 0x00, 0xe8, 0xe8 }, | |
2773 { 0x00, 0xe9, 0xe9 }, | |
2774 { 0x00, 0xea, 0xea }, | |
2775 { 0x00, 0xeb, 0xeb }, | |
2776 { 0x00, 0xec, 0xec }, | |
2777 { 0x00, 0xed, 0xed }, | |
2778 { 0x00, 0xee, 0xee }, | |
2779 { 0x00, 0xef, 0xef }, | |
2780 { 0x00, 0xf0, 0xf0 }, | |
2781 { 0x00, 0xf1, 0xf1 }, | |
2782 { 0x00, 0xf2, 0xf2 }, | |
2783 { 0x00, 0xf3, 0xf3 }, | |
2784 { 0x00, 0xf4, 0xf4 }, | |
2785 { 0x00, 0xf5, 0xf5 }, | |
2786 { 0x00, 0xf6, 0xf6 }, | |
2787 { 0x00, 0xf7, 0xf7 }, | |
2788 { 0x00, 0xf8, 0xf8 }, | |
2789 { 0x00, 0xf9, 0xf9 }, | |
2790 { 0x00, 0xfa, 0xfa }, | |
2791 { 0x00, 0xfb, 0xfb }, | |
2792 { 0x00, 0xfc, 0xfc }, | |
2793 { 0x00, 0xfd, 0xfd }, | |
2794 { 0x00, 0xfe, 0xfe }, | |
2795 { 0x00, 0xff, 0xff } | |
2796 }; | |
2797 | |
2798 static struct cs_info iso9_tbl[] = { | |
2799 { 0x00, 0x00, 0x00 }, | |
2800 { 0x00, 0x01, 0x01 }, | |
2801 { 0x00, 0x02, 0x02 }, | |
2802 { 0x00, 0x03, 0x03 }, | |
2803 { 0x00, 0x04, 0x04 }, | |
2804 { 0x00, 0x05, 0x05 }, | |
2805 { 0x00, 0x06, 0x06 }, | |
2806 { 0x00, 0x07, 0x07 }, | |
2807 { 0x00, 0x08, 0x08 }, | |
2808 { 0x00, 0x09, 0x09 }, | |
2809 { 0x00, 0x0a, 0x0a }, | |
2810 { 0x00, 0x0b, 0x0b }, | |
2811 { 0x00, 0x0c, 0x0c }, | |
2812 { 0x00, 0x0d, 0x0d }, | |
2813 { 0x00, 0x0e, 0x0e }, | |
2814 { 0x00, 0x0f, 0x0f }, | |
2815 { 0x00, 0x10, 0x10 }, | |
2816 { 0x00, 0x11, 0x11 }, | |
2817 { 0x00, 0x12, 0x12 }, | |
2818 { 0x00, 0x13, 0x13 }, | |
2819 { 0x00, 0x14, 0x14 }, | |
2820 { 0x00, 0x15, 0x15 }, | |
2821 { 0x00, 0x16, 0x16 }, | |
2822 { 0x00, 0x17, 0x17 }, | |
2823 { 0x00, 0x18, 0x18 }, | |
2824 { 0x00, 0x19, 0x19 }, | |
2825 { 0x00, 0x1a, 0x1a }, | |
2826 { 0x00, 0x1b, 0x1b }, | |
2827 { 0x00, 0x1c, 0x1c }, | |
2828 { 0x00, 0x1d, 0x1d }, | |
2829 { 0x00, 0x1e, 0x1e }, | |
2830 { 0x00, 0x1f, 0x1f }, | |
2831 { 0x00, 0x20, 0x20 }, | |
2832 { 0x00, 0x21, 0x21 }, | |
2833 { 0x00, 0x22, 0x22 }, | |
2834 { 0x00, 0x23, 0x23 }, | |
2835 { 0x00, 0x24, 0x24 }, | |
2836 { 0x00, 0x25, 0x25 }, | |
2837 { 0x00, 0x26, 0x26 }, | |
2838 { 0x00, 0x27, 0x27 }, | |
2839 { 0x00, 0x28, 0x28 }, | |
2840 { 0x00, 0x29, 0x29 }, | |
2841 { 0x00, 0x2a, 0x2a }, | |
2842 { 0x00, 0x2b, 0x2b }, | |
2843 { 0x00, 0x2c, 0x2c }, | |
2844 { 0x00, 0x2d, 0x2d }, | |
2845 { 0x00, 0x2e, 0x2e }, | |
2846 { 0x00, 0x2f, 0x2f }, | |
2847 { 0x00, 0x30, 0x30 }, | |
2848 { 0x00, 0x31, 0x31 }, | |
2849 { 0x00, 0x32, 0x32 }, | |
2850 { 0x00, 0x33, 0x33 }, | |
2851 { 0x00, 0x34, 0x34 }, | |
2852 { 0x00, 0x35, 0x35 }, | |
2853 { 0x00, 0x36, 0x36 }, | |
2854 { 0x00, 0x37, 0x37 }, | |
2855 { 0x00, 0x38, 0x38 }, | |
2856 { 0x00, 0x39, 0x39 }, | |
2857 { 0x00, 0x3a, 0x3a }, | |
2858 { 0x00, 0x3b, 0x3b }, | |
2859 { 0x00, 0x3c, 0x3c }, | |
2860 { 0x00, 0x3d, 0x3d }, | |
2861 { 0x00, 0x3e, 0x3e }, | |
2862 { 0x00, 0x3f, 0x3f }, | |
2863 { 0x00, 0x40, 0x40 }, | |
2864 { 0x01, 0x61, 0x41 }, | |
2865 { 0x01, 0x62, 0x42 }, | |
2866 { 0x01, 0x63, 0x43 }, | |
2867 { 0x01, 0x64, 0x44 }, | |
2868 { 0x01, 0x65, 0x45 }, | |
2869 { 0x01, 0x66, 0x46 }, | |
2870 { 0x01, 0x67, 0x47 }, | |
2871 { 0x01, 0x68, 0x48 }, | |
2872 { 0x01, 0xfd, 0x49 }, | |
2873 { 0x01, 0x6a, 0x4a }, | |
2874 { 0x01, 0x6b, 0x4b }, | |
2875 { 0x01, 0x6c, 0x4c }, | |
2876 { 0x01, 0x6d, 0x4d }, | |
2877 { 0x01, 0x6e, 0x4e }, | |
2878 { 0x01, 0x6f, 0x4f }, | |
2879 { 0x01, 0x70, 0x50 }, | |
2880 { 0x01, 0x71, 0x51 }, | |
2881 { 0x01, 0x72, 0x52 }, | |
2882 { 0x01, 0x73, 0x53 }, | |
2883 { 0x01, 0x74, 0x54 }, | |
2884 { 0x01, 0x75, 0x55 }, | |
2885 { 0x01, 0x76, 0x56 }, | |
2886 { 0x01, 0x77, 0x57 }, | |
2887 { 0x01, 0x78, 0x58 }, | |
2888 { 0x01, 0x79, 0x59 }, | |
2889 { 0x01, 0x7a, 0x5a }, | |
2890 { 0x00, 0x5b, 0x5b }, | |
2891 { 0x00, 0x5c, 0x5c }, | |
2892 { 0x00, 0x5d, 0x5d }, | |
2893 { 0x00, 0x5e, 0x5e }, | |
2894 { 0x00, 0x5f, 0x5f }, | |
2895 { 0x00, 0x60, 0x60 }, | |
2896 { 0x00, 0x61, 0x41 }, | |
2897 { 0x00, 0x62, 0x42 }, | |
2898 { 0x00, 0x63, 0x43 }, | |
2899 { 0x00, 0x64, 0x44 }, | |
2900 { 0x00, 0x65, 0x45 }, | |
2901 { 0x00, 0x66, 0x46 }, | |
2902 { 0x00, 0x67, 0x47 }, | |
2903 { 0x00, 0x68, 0x48 }, | |
2904 { 0x00, 0x69, 0xdd }, | |
2905 { 0x00, 0x6a, 0x4a }, | |
2906 { 0x00, 0x6b, 0x4b }, | |
2907 { 0x00, 0x6c, 0x4c }, | |
2908 { 0x00, 0x6d, 0x4d }, | |
2909 { 0x00, 0x6e, 0x4e }, | |
2910 { 0x00, 0x6f, 0x4f }, | |
2911 { 0x00, 0x70, 0x50 }, | |
2912 { 0x00, 0x71, 0x51 }, | |
2913 { 0x00, 0x72, 0x52 }, | |
2914 { 0x00, 0x73, 0x53 }, | |
2915 { 0x00, 0x74, 0x54 }, | |
2916 { 0x00, 0x75, 0x55 }, | |
2917 { 0x00, 0x76, 0x56 }, | |
2918 { 0x00, 0x77, 0x57 }, | |
2919 { 0x00, 0x78, 0x58 }, | |
2920 { 0x00, 0x79, 0x59 }, | |
2921 { 0x00, 0x7a, 0x5a }, | |
2922 { 0x00, 0x7b, 0x7b }, | |
2923 { 0x00, 0x7c, 0x7c }, | |
2924 { 0x00, 0x7d, 0x7d }, | |
2925 { 0x00, 0x7e, 0x7e }, | |
2926 { 0x00, 0x7f, 0x7f }, | |
2927 { 0x00, 0x80, 0x80 }, | |
2928 { 0x00, 0x81, 0x81 }, | |
2929 { 0x00, 0x82, 0x82 }, | |
2930 { 0x00, 0x83, 0x83 }, | |
2931 { 0x00, 0x84, 0x84 }, | |
2932 { 0x00, 0x85, 0x85 }, | |
2933 { 0x00, 0x86, 0x86 }, | |
2934 { 0x00, 0x87, 0x87 }, | |
2935 { 0x00, 0x88, 0x88 }, | |
2936 { 0x00, 0x89, 0x89 }, | |
2937 { 0x00, 0x8a, 0x8a }, | |
2938 { 0x00, 0x8b, 0x8b }, | |
2939 { 0x00, 0x8c, 0x8c }, | |
2940 { 0x00, 0x8d, 0x8d }, | |
2941 { 0x00, 0x8e, 0x8e }, | |
2942 { 0x00, 0x8f, 0x8f }, | |
2943 { 0x00, 0x90, 0x90 }, | |
2944 { 0x00, 0x91, 0x91 }, | |
2945 { 0x00, 0x92, 0x92 }, | |
2946 { 0x00, 0x93, 0x93 }, | |
2947 { 0x00, 0x94, 0x94 }, | |
2948 { 0x00, 0x95, 0x95 }, | |
2949 { 0x00, 0x96, 0x96 }, | |
2950 { 0x00, 0x97, 0x97 }, | |
2951 { 0x00, 0x98, 0x98 }, | |
2952 { 0x00, 0x99, 0x99 }, | |
2953 { 0x00, 0x9a, 0x9a }, | |
2954 { 0x00, 0x9b, 0x9b }, | |
2955 { 0x00, 0x9c, 0x9c }, | |
2956 { 0x00, 0x9d, 0x9d }, | |
2957 { 0x00, 0x9e, 0x9e }, | |
2958 { 0x00, 0x9f, 0x9f }, | |
2959 { 0x00, 0xa0, 0xa0 }, | |
2960 { 0x00, 0xa1, 0xa1 }, | |
2961 { 0x00, 0xa2, 0xa2 }, | |
2962 { 0x00, 0xa3, 0xa3 }, | |
2963 { 0x00, 0xa4, 0xa4 }, | |
2964 { 0x00, 0xa5, 0xa5 }, | |
2965 { 0x00, 0xa6, 0xa6 }, | |
2966 { 0x00, 0xa7, 0xa7 }, | |
2967 { 0x00, 0xa8, 0xa8 }, | |
2968 { 0x00, 0xa9, 0xa9 }, | |
2969 { 0x00, 0xaa, 0xaa }, | |
2970 { 0x00, 0xab, 0xab }, | |
2971 { 0x00, 0xac, 0xac }, | |
2972 { 0x00, 0xad, 0xad }, | |
2973 { 0x00, 0xae, 0xae }, | |
2974 { 0x00, 0xaf, 0xaf }, | |
2975 { 0x00, 0xb0, 0xb0 }, | |
2976 { 0x00, 0xb1, 0xb1 }, | |
2977 { 0x00, 0xb2, 0xb2 }, | |
2978 { 0x00, 0xb3, 0xb3 }, | |
2979 { 0x00, 0xb4, 0xb4 }, | |
2980 { 0x00, 0xb5, 0xb5 }, | |
2981 { 0x00, 0xb6, 0xb6 }, | |
2982 { 0x00, 0xb7, 0xb7 }, | |
2983 { 0x00, 0xb8, 0xb8 }, | |
2984 { 0x00, 0xb9, 0xb9 }, | |
2985 { 0x00, 0xba, 0xba }, | |
2986 { 0x00, 0xbb, 0xbb }, | |
2987 { 0x00, 0xbc, 0xbc }, | |
2988 { 0x00, 0xbd, 0xbd }, | |
2989 { 0x00, 0xbe, 0xbe }, | |
2990 { 0x00, 0xbf, 0xbf }, | |
2991 { 0x01, 0xe0, 0xc0 }, | |
2992 { 0x01, 0xe1, 0xc1 }, | |
2993 { 0x01, 0xe2, 0xc2 }, | |
2994 { 0x01, 0xe3, 0xc3 }, | |
2995 { 0x01, 0xe4, 0xc4 }, | |
2996 { 0x01, 0xe5, 0xc5 }, | |
2997 { 0x01, 0xe6, 0xc6 }, | |
2998 { 0x01, 0xe7, 0xc7 }, | |
2999 { 0x01, 0xe8, 0xc8 }, | |
3000 { 0x01, 0xe9, 0xc9 }, | |
3001 { 0x01, 0xea, 0xca }, | |
3002 { 0x01, 0xeb, 0xcb }, | |
3003 { 0x01, 0xec, 0xcc }, | |
3004 { 0x01, 0xed, 0xcd }, | |
3005 { 0x01, 0xee, 0xce }, | |
3006 { 0x01, 0xef, 0xcf }, | |
3007 { 0x01, 0xf0, 0xd0 }, | |
3008 { 0x01, 0xf1, 0xd1 }, | |
3009 { 0x01, 0xf2, 0xd2 }, | |
3010 { 0x01, 0xf3, 0xd3 }, | |
3011 { 0x01, 0xf4, 0xd4 }, | |
3012 { 0x01, 0xf5, 0xd5 }, | |
3013 { 0x01, 0xf6, 0xd6 }, | |
3014 { 0x00, 0xd7, 0xd7 }, | |
3015 { 0x01, 0xf8, 0xd8 }, | |
3016 { 0x01, 0xf9, 0xd9 }, | |
3017 { 0x01, 0xfa, 0xda }, | |
3018 { 0x01, 0xfb, 0xdb }, | |
3019 { 0x01, 0xfc, 0xdc }, | |
3020 { 0x01, 0x69, 0xdd }, | |
3021 { 0x01, 0xfe, 0xde }, | |
3022 { 0x00, 0xdf, 0xdf }, | |
3023 { 0x00, 0xe0, 0xc0 }, | |
3024 { 0x00, 0xe1, 0xc1 }, | |
3025 { 0x00, 0xe2, 0xc2 }, | |
3026 { 0x00, 0xe3, 0xc3 }, | |
3027 { 0x00, 0xe4, 0xc4 }, | |
3028 { 0x00, 0xe5, 0xc5 }, | |
3029 { 0x00, 0xe6, 0xc6 }, | |
3030 { 0x00, 0xe7, 0xc7 }, | |
3031 { 0x00, 0xe8, 0xc8 }, | |
3032 { 0x00, 0xe9, 0xc9 }, | |
3033 { 0x00, 0xea, 0xca }, | |
3034 { 0x00, 0xeb, 0xcb }, | |
3035 { 0x00, 0xec, 0xcc }, | |
3036 { 0x00, 0xed, 0xcd }, | |
3037 { 0x00, 0xee, 0xce }, | |
3038 { 0x00, 0xef, 0xcf }, | |
3039 { 0x00, 0xf0, 0xd0 }, | |
3040 { 0x00, 0xf1, 0xd1 }, | |
3041 { 0x00, 0xf2, 0xd2 }, | |
3042 { 0x00, 0xf3, 0xd3 }, | |
3043 { 0x00, 0xf4, 0xd4 }, | |
3044 { 0x00, 0xf5, 0xd5 }, | |
3045 { 0x00, 0xf6, 0xd6 }, | |
3046 { 0x00, 0xf7, 0xf7 }, | |
3047 { 0x00, 0xf8, 0xd8 }, | |
3048 { 0x00, 0xf9, 0xd9 }, | |
3049 { 0x00, 0xfa, 0xda }, | |
3050 { 0x00, 0xfb, 0xdb }, | |
3051 { 0x00, 0xfc, 0xdc }, | |
3052 { 0x00, 0xfd, 0x49 }, | |
3053 { 0x00, 0xfe, 0xde }, | |
3054 { 0x00, 0xff, 0xff } | |
3055 }; | |
3056 | |
3057 static struct cs_info iso10_tbl[] = { | |
3058 { 0x00, 0x00, 0x00 }, | |
3059 { 0x00, 0x01, 0x01 }, | |
3060 { 0x00, 0x02, 0x02 }, | |
3061 { 0x00, 0x03, 0x03 }, | |
3062 { 0x00, 0x04, 0x04 }, | |
3063 { 0x00, 0x05, 0x05 }, | |
3064 { 0x00, 0x06, 0x06 }, | |
3065 { 0x00, 0x07, 0x07 }, | |
3066 { 0x00, 0x08, 0x08 }, | |
3067 { 0x00, 0x09, 0x09 }, | |
3068 { 0x00, 0x0a, 0x0a }, | |
3069 { 0x00, 0x0b, 0x0b }, | |
3070 { 0x00, 0x0c, 0x0c }, | |
3071 { 0x00, 0x0d, 0x0d }, | |
3072 { 0x00, 0x0e, 0x0e }, | |
3073 { 0x00, 0x0f, 0x0f }, | |
3074 { 0x00, 0x10, 0x10 }, | |
3075 { 0x00, 0x11, 0x11 }, | |
3076 { 0x00, 0x12, 0x12 }, | |
3077 { 0x00, 0x13, 0x13 }, | |
3078 { 0x00, 0x14, 0x14 }, | |
3079 { 0x00, 0x15, 0x15 }, | |
3080 { 0x00, 0x16, 0x16 }, | |
3081 { 0x00, 0x17, 0x17 }, | |
3082 { 0x00, 0x18, 0x18 }, | |
3083 { 0x00, 0x19, 0x19 }, | |
3084 { 0x00, 0x1a, 0x1a }, | |
3085 { 0x00, 0x1b, 0x1b }, | |
3086 { 0x00, 0x1c, 0x1c }, | |
3087 { 0x00, 0x1d, 0x1d }, | |
3088 { 0x00, 0x1e, 0x1e }, | |
3089 { 0x00, 0x1f, 0x1f }, | |
3090 { 0x00, 0x20, 0x20 }, | |
3091 { 0x00, 0x21, 0x21 }, | |
3092 { 0x00, 0x22, 0x22 }, | |
3093 { 0x00, 0x23, 0x23 }, | |
3094 { 0x00, 0x24, 0x24 }, | |
3095 { 0x00, 0x25, 0x25 }, | |
3096 { 0x00, 0x26, 0x26 }, | |
3097 { 0x00, 0x27, 0x27 }, | |
3098 { 0x00, 0x28, 0x28 }, | |
3099 { 0x00, 0x29, 0x29 }, | |
3100 { 0x00, 0x2a, 0x2a }, | |
3101 { 0x00, 0x2b, 0x2b }, | |
3102 { 0x00, 0x2c, 0x2c }, | |
3103 { 0x00, 0x2d, 0x2d }, | |
3104 { 0x00, 0x2e, 0x2e }, | |
3105 { 0x00, 0x2f, 0x2f }, | |
3106 { 0x00, 0x30, 0x30 }, | |
3107 { 0x00, 0x31, 0x31 }, | |
3108 { 0x00, 0x32, 0x32 }, | |
3109 { 0x00, 0x33, 0x33 }, | |
3110 { 0x00, 0x34, 0x34 }, | |
3111 { 0x00, 0x35, 0x35 }, | |
3112 { 0x00, 0x36, 0x36 }, | |
3113 { 0x00, 0x37, 0x37 }, | |
3114 { 0x00, 0x38, 0x38 }, | |
3115 { 0x00, 0x39, 0x39 }, | |
3116 { 0x00, 0x3a, 0x3a }, | |
3117 { 0x00, 0x3b, 0x3b }, | |
3118 { 0x00, 0x3c, 0x3c }, | |
3119 { 0x00, 0x3d, 0x3d }, | |
3120 { 0x00, 0x3e, 0x3e }, | |
3121 { 0x00, 0x3f, 0x3f }, | |
3122 { 0x00, 0x40, 0x40 }, | |
3123 { 0x01, 0x61, 0x41 }, | |
3124 { 0x01, 0x62, 0x42 }, | |
3125 { 0x01, 0x63, 0x43 }, | |
3126 { 0x01, 0x64, 0x44 }, | |
3127 { 0x01, 0x65, 0x45 }, | |
3128 { 0x01, 0x66, 0x46 }, | |
3129 { 0x01, 0x67, 0x47 }, | |
3130 { 0x01, 0x68, 0x48 }, | |
3131 { 0x01, 0x69, 0x49 }, | |
3132 { 0x01, 0x6a, 0x4a }, | |
3133 { 0x01, 0x6b, 0x4b }, | |
3134 { 0x01, 0x6c, 0x4c }, | |
3135 { 0x01, 0x6d, 0x4d }, | |
3136 { 0x01, 0x6e, 0x4e }, | |
3137 { 0x01, 0x6f, 0x4f }, | |
3138 { 0x01, 0x70, 0x50 }, | |
3139 { 0x01, 0x71, 0x51 }, | |
3140 { 0x01, 0x72, 0x52 }, | |
3141 { 0x01, 0x73, 0x53 }, | |
3142 { 0x01, 0x74, 0x54 }, | |
3143 { 0x01, 0x75, 0x55 }, | |
3144 { 0x01, 0x76, 0x56 }, | |
3145 { 0x01, 0x77, 0x57 }, | |
3146 { 0x01, 0x78, 0x58 }, | |
3147 { 0x01, 0x79, 0x59 }, | |
3148 { 0x01, 0x7a, 0x5a }, | |
3149 { 0x00, 0x5b, 0x5b }, | |
3150 { 0x00, 0x5c, 0x5c }, | |
3151 { 0x00, 0x5d, 0x5d }, | |
3152 { 0x00, 0x5e, 0x5e }, | |
3153 { 0x00, 0x5f, 0x5f }, | |
3154 { 0x00, 0x60, 0x60 }, | |
3155 { 0x00, 0x61, 0x41 }, | |
3156 { 0x00, 0x62, 0x42 }, | |
3157 { 0x00, 0x63, 0x43 }, | |
3158 { 0x00, 0x64, 0x44 }, | |
3159 { 0x00, 0x65, 0x45 }, | |
3160 { 0x00, 0x66, 0x46 }, | |
3161 { 0x00, 0x67, 0x47 }, | |
3162 { 0x00, 0x68, 0x48 }, | |
3163 { 0x00, 0x69, 0x49 }, | |
3164 { 0x00, 0x6a, 0x4a }, | |
3165 { 0x00, 0x6b, 0x4b }, | |
3166 { 0x00, 0x6c, 0x4c }, | |
3167 { 0x00, 0x6d, 0x4d }, | |
3168 { 0x00, 0x6e, 0x4e }, | |
3169 { 0x00, 0x6f, 0x4f }, | |
3170 { 0x00, 0x70, 0x50 }, | |
3171 { 0x00, 0x71, 0x51 }, | |
3172 { 0x00, 0x72, 0x52 }, | |
3173 { 0x00, 0x73, 0x53 }, | |
3174 { 0x00, 0x74, 0x54 }, | |
3175 { 0x00, 0x75, 0x55 }, | |
3176 { 0x00, 0x76, 0x56 }, | |
3177 { 0x00, 0x77, 0x57 }, | |
3178 { 0x00, 0x78, 0x58 }, | |
3179 { 0x00, 0x79, 0x59 }, | |
3180 { 0x00, 0x7a, 0x5a }, | |
3181 { 0x00, 0x7b, 0x7b }, | |
3182 { 0x00, 0x7c, 0x7c }, | |
3183 { 0x00, 0x7d, 0x7d }, | |
3184 { 0x00, 0x7e, 0x7e }, | |
3185 { 0x00, 0x7f, 0x7f }, | |
3186 { 0x00, 0x80, 0x80 }, | |
3187 { 0x00, 0x81, 0x81 }, | |
3188 { 0x00, 0x82, 0x82 }, | |
3189 { 0x00, 0x83, 0x83 }, | |
3190 { 0x00, 0x84, 0x84 }, | |
3191 { 0x00, 0x85, 0x85 }, | |
3192 { 0x00, 0x86, 0x86 }, | |
3193 { 0x00, 0x87, 0x87 }, | |
3194 { 0x00, 0x88, 0x88 }, | |
3195 { 0x00, 0x89, 0x89 }, | |
3196 { 0x00, 0x8a, 0x8a }, | |
3197 { 0x00, 0x8b, 0x8b }, | |
3198 { 0x00, 0x8c, 0x8c }, | |
3199 { 0x00, 0x8d, 0x8d }, | |
3200 { 0x00, 0x8e, 0x8e }, | |
3201 { 0x00, 0x8f, 0x8f }, | |
3202 { 0x00, 0x90, 0x90 }, | |
3203 { 0x00, 0x91, 0x91 }, | |
3204 { 0x00, 0x92, 0x92 }, | |
3205 { 0x00, 0x93, 0x93 }, | |
3206 { 0x00, 0x94, 0x94 }, | |
3207 { 0x00, 0x95, 0x95 }, | |
3208 { 0x00, 0x96, 0x96 }, | |
3209 { 0x00, 0x97, 0x97 }, | |
3210 { 0x00, 0x98, 0x98 }, | |
3211 { 0x00, 0x99, 0x99 }, | |
3212 { 0x00, 0x9a, 0x9a }, | |
3213 { 0x00, 0x9b, 0x9b }, | |
3214 { 0x00, 0x9c, 0x9c }, | |
3215 { 0x00, 0x9d, 0x9d }, | |
3216 { 0x00, 0x9e, 0x9e }, | |
3217 { 0x00, 0x9f, 0x9f }, | |
3218 { 0x00, 0xa0, 0xa0 }, | |
3219 { 0x00, 0xa1, 0xa1 }, | |
3220 { 0x00, 0xa2, 0xa2 }, | |
3221 { 0x00, 0xa3, 0xa3 }, | |
3222 { 0x00, 0xa4, 0xa4 }, | |
3223 { 0x00, 0xa5, 0xa5 }, | |
3224 { 0x00, 0xa6, 0xa6 }, | |
3225 { 0x00, 0xa7, 0xa7 }, | |
3226 { 0x00, 0xa8, 0xa8 }, | |
3227 { 0x00, 0xa9, 0xa9 }, | |
3228 { 0x00, 0xaa, 0xaa }, | |
3229 { 0x00, 0xab, 0xab }, | |
3230 { 0x00, 0xac, 0xac }, | |
3231 { 0x00, 0xad, 0xad }, | |
3232 { 0x00, 0xae, 0xae }, | |
3233 { 0x00, 0xaf, 0xaf }, | |
3234 { 0x00, 0xb0, 0xb0 }, | |
3235 { 0x00, 0xb1, 0xb1 }, | |
3236 { 0x00, 0xb2, 0xb2 }, | |
3237 { 0x00, 0xb3, 0xb3 }, | |
3238 { 0x00, 0xb4, 0xb4 }, | |
3239 { 0x00, 0xb5, 0xb5 }, | |
3240 { 0x00, 0xb6, 0xb6 }, | |
3241 { 0x00, 0xb7, 0xb7 }, | |
3242 { 0x00, 0xb8, 0xb8 }, | |
3243 { 0x00, 0xb9, 0xb9 }, | |
3244 { 0x00, 0xba, 0xba }, | |
3245 { 0x00, 0xbb, 0xbb }, | |
3246 { 0x00, 0xbc, 0xbc }, | |
3247 { 0x00, 0xbd, 0xbd }, | |
3248 { 0x00, 0xbe, 0xbe }, | |
3249 { 0x00, 0xbf, 0xbf }, | |
3250 { 0x00, 0xc0, 0xc0 }, | |
3251 { 0x00, 0xc1, 0xc1 }, | |
3252 { 0x00, 0xc2, 0xc2 }, | |
3253 { 0x00, 0xc3, 0xc3 }, | |
3254 { 0x00, 0xc4, 0xc4 }, | |
3255 { 0x00, 0xc5, 0xc5 }, | |
3256 { 0x00, 0xc6, 0xc6 }, | |
3257 { 0x00, 0xc7, 0xc7 }, | |
3258 { 0x00, 0xc8, 0xc8 }, | |
3259 { 0x00, 0xc9, 0xc9 }, | |
3260 { 0x00, 0xca, 0xca }, | |
3261 { 0x00, 0xcb, 0xcb }, | |
3262 { 0x00, 0xcc, 0xcc }, | |
3263 { 0x00, 0xcd, 0xcd }, | |
3264 { 0x00, 0xce, 0xce }, | |
3265 { 0x00, 0xcf, 0xcf }, | |
3266 { 0x00, 0xd0, 0xd0 }, | |
3267 { 0x00, 0xd1, 0xd1 }, | |
3268 { 0x00, 0xd2, 0xd2 }, | |
3269 { 0x00, 0xd3, 0xd3 }, | |
3270 { 0x00, 0xd4, 0xd4 }, | |
3271 { 0x00, 0xd5, 0xd5 }, | |
3272 { 0x00, 0xd6, 0xd6 }, | |
3273 { 0x00, 0xd7, 0xd7 }, | |
3274 { 0x00, 0xd8, 0xd8 }, | |
3275 { 0x00, 0xd9, 0xd9 }, | |
3276 { 0x00, 0xda, 0xda }, | |
3277 { 0x00, 0xdb, 0xdb }, | |
3278 { 0x00, 0xdc, 0xdc }, | |
3279 { 0x00, 0xdd, 0xdd }, | |
3280 { 0x00, 0xde, 0xde }, | |
3281 { 0x00, 0xdf, 0xdf }, | |
3282 { 0x00, 0xe0, 0xe0 }, | |
3283 { 0x00, 0xe1, 0xe1 }, | |
3284 { 0x00, 0xe2, 0xe2 }, | |
3285 { 0x00, 0xe3, 0xe3 }, | |
3286 { 0x00, 0xe4, 0xe4 }, | |
3287 { 0x00, 0xe5, 0xe5 }, | |
3288 { 0x00, 0xe6, 0xe6 }, | |
3289 { 0x00, 0xe7, 0xe7 }, | |
3290 { 0x00, 0xe8, 0xe8 }, | |
3291 { 0x00, 0xe9, 0xe9 }, | |
3292 { 0x00, 0xea, 0xea }, | |
3293 { 0x00, 0xeb, 0xeb }, | |
3294 { 0x00, 0xec, 0xec }, | |
3295 { 0x00, 0xed, 0xed }, | |
3296 { 0x00, 0xee, 0xee }, | |
3297 { 0x00, 0xef, 0xef }, | |
3298 { 0x00, 0xf0, 0xf0 }, | |
3299 { 0x00, 0xf1, 0xf1 }, | |
3300 { 0x00, 0xf2, 0xf2 }, | |
3301 { 0x00, 0xf3, 0xf3 }, | |
3302 { 0x00, 0xf4, 0xf4 }, | |
3303 { 0x00, 0xf5, 0xf5 }, | |
3304 { 0x00, 0xf6, 0xf6 }, | |
3305 { 0x00, 0xf7, 0xf7 }, | |
3306 { 0x00, 0xf8, 0xf8 }, | |
3307 { 0x00, 0xf9, 0xf9 }, | |
3308 { 0x00, 0xfa, 0xfa }, | |
3309 { 0x00, 0xfb, 0xfb }, | |
3310 { 0x00, 0xfc, 0xfc }, | |
3311 { 0x00, 0xfd, 0xfd }, | |
3312 { 0x00, 0xfe, 0xfe }, | |
3313 { 0x00, 0xff, 0xff } | |
3314 }; | |
3315 | |
3316 static struct cs_info koi8r_tbl[] = { | |
3317 { 0x00, 0x00, 0x00 }, | |
3318 { 0x00, 0x01, 0x01 }, | |
3319 { 0x00, 0x02, 0x02 }, | |
3320 { 0x00, 0x03, 0x03 }, | |
3321 { 0x00, 0x04, 0x04 }, | |
3322 { 0x00, 0x05, 0x05 }, | |
3323 { 0x00, 0x06, 0x06 }, | |
3324 { 0x00, 0x07, 0x07 }, | |
3325 { 0x00, 0x08, 0x08 }, | |
3326 { 0x00, 0x09, 0x09 }, | |
3327 { 0x00, 0x0a, 0x0a }, | |
3328 { 0x00, 0x0b, 0x0b }, | |
3329 { 0x00, 0x0c, 0x0c }, | |
3330 { 0x00, 0x0d, 0x0d }, | |
3331 { 0x00, 0x0e, 0x0e }, | |
3332 { 0x00, 0x0f, 0x0f }, | |
3333 { 0x00, 0x10, 0x10 }, | |
3334 { 0x00, 0x11, 0x11 }, | |
3335 { 0x00, 0x12, 0x12 }, | |
3336 { 0x00, 0x13, 0x13 }, | |
3337 { 0x00, 0x14, 0x14 }, | |
3338 { 0x00, 0x15, 0x15 }, | |
3339 { 0x00, 0x16, 0x16 }, | |
3340 { 0x00, 0x17, 0x17 }, | |
3341 { 0x00, 0x18, 0x18 }, | |
3342 { 0x00, 0x19, 0x19 }, | |
3343 { 0x00, 0x1a, 0x1a }, | |
3344 { 0x00, 0x1b, 0x1b }, | |
3345 { 0x00, 0x1c, 0x1c }, | |
3346 { 0x00, 0x1d, 0x1d }, | |
3347 { 0x00, 0x1e, 0x1e }, | |
3348 { 0x00, 0x1f, 0x1f }, | |
3349 { 0x00, 0x20, 0x20 }, | |
3350 { 0x00, 0x21, 0x21 }, | |
3351 { 0x00, 0x22, 0x22 }, | |
3352 { 0x00, 0x23, 0x23 }, | |
3353 { 0x00, 0x24, 0x24 }, | |
3354 { 0x00, 0x25, 0x25 }, | |
3355 { 0x00, 0x26, 0x26 }, | |
3356 { 0x00, 0x27, 0x27 }, | |
3357 { 0x00, 0x28, 0x28 }, | |
3358 { 0x00, 0x29, 0x29 }, | |
3359 { 0x00, 0x2a, 0x2a }, | |
3360 { 0x00, 0x2b, 0x2b }, | |
3361 { 0x00, 0x2c, 0x2c }, | |
3362 { 0x00, 0x2d, 0x2d }, | |
3363 { 0x00, 0x2e, 0x2e }, | |
3364 { 0x00, 0x2f, 0x2f }, | |
3365 { 0x00, 0x30, 0x30 }, | |
3366 { 0x00, 0x31, 0x31 }, | |
3367 { 0x00, 0x32, 0x32 }, | |
3368 { 0x00, 0x33, 0x33 }, | |
3369 { 0x00, 0x34, 0x34 }, | |
3370 { 0x00, 0x35, 0x35 }, | |
3371 { 0x00, 0x36, 0x36 }, | |
3372 { 0x00, 0x37, 0x37 }, | |
3373 { 0x00, 0x38, 0x38 }, | |
3374 { 0x00, 0x39, 0x39 }, | |
3375 { 0x00, 0x3a, 0x3a }, | |
3376 { 0x00, 0x3b, 0x3b }, | |
3377 { 0x00, 0x3c, 0x3c }, | |
3378 { 0x00, 0x3d, 0x3d }, | |
3379 { 0x00, 0x3e, 0x3e }, | |
3380 { 0x00, 0x3f, 0x3f }, | |
3381 { 0x00, 0x40, 0x40 }, | |
3382 { 0x01, 0x61, 0x41 }, | |
3383 { 0x01, 0x62, 0x42 }, | |
3384 { 0x01, 0x63, 0x43 }, | |
3385 { 0x01, 0x64, 0x44 }, | |
3386 { 0x01, 0x65, 0x45 }, | |
3387 { 0x01, 0x66, 0x46 }, | |
3388 { 0x01, 0x67, 0x47 }, | |
3389 { 0x01, 0x68, 0x48 }, | |
3390 { 0x01, 0x69, 0x49 }, | |
3391 { 0x01, 0x6a, 0x4a }, | |
3392 { 0x01, 0x6b, 0x4b }, | |
3393 { 0x01, 0x6c, 0x4c }, | |
3394 { 0x01, 0x6d, 0x4d }, | |
3395 { 0x01, 0x6e, 0x4e }, | |
3396 { 0x01, 0x6f, 0x4f }, | |
3397 { 0x01, 0x70, 0x50 }, | |
3398 { 0x01, 0x71, 0x51 }, | |
3399 { 0x01, 0x72, 0x52 }, | |
3400 { 0x01, 0x73, 0x53 }, | |
3401 { 0x01, 0x74, 0x54 }, | |
3402 { 0x01, 0x75, 0x55 }, | |
3403 { 0x01, 0x76, 0x56 }, | |
3404 { 0x01, 0x77, 0x57 }, | |
3405 { 0x01, 0x78, 0x58 }, | |
3406 { 0x01, 0x79, 0x59 }, | |
3407 { 0x01, 0x7a, 0x5a }, | |
3408 { 0x00, 0x5b, 0x5b }, | |
3409 { 0x00, 0x5c, 0x5c }, | |
3410 { 0x00, 0x5d, 0x5d }, | |
3411 { 0x00, 0x5e, 0x5e }, | |
3412 { 0x00, 0x5f, 0x5f }, | |
3413 { 0x00, 0x60, 0x60 }, | |
3414 { 0x00, 0x61, 0x41 }, | |
3415 { 0x00, 0x62, 0x42 }, | |
3416 { 0x00, 0x63, 0x43 }, | |
3417 { 0x00, 0x64, 0x44 }, | |
3418 { 0x00, 0x65, 0x45 }, | |
3419 { 0x00, 0x66, 0x46 }, | |
3420 { 0x00, 0x67, 0x47 }, | |
3421 { 0x00, 0x68, 0x48 }, | |
3422 { 0x00, 0x69, 0x49 }, | |
3423 { 0x00, 0x6a, 0x4a }, | |
3424 { 0x00, 0x6b, 0x4b }, | |
3425 { 0x00, 0x6c, 0x4c }, | |
3426 { 0x00, 0x6d, 0x4d }, | |
3427 { 0x00, 0x6e, 0x4e }, | |
3428 { 0x00, 0x6f, 0x4f }, | |
3429 { 0x00, 0x70, 0x50 }, | |
3430 { 0x00, 0x71, 0x51 }, | |
3431 { 0x00, 0x72, 0x52 }, | |
3432 { 0x00, 0x73, 0x53 }, | |
3433 { 0x00, 0x74, 0x54 }, | |
3434 { 0x00, 0x75, 0x55 }, | |
3435 { 0x00, 0x76, 0x56 }, | |
3436 { 0x00, 0x77, 0x57 }, | |
3437 { 0x00, 0x78, 0x58 }, | |
3438 { 0x00, 0x79, 0x59 }, | |
3439 { 0x00, 0x7a, 0x5a }, | |
3440 { 0x00, 0x7b, 0x7b }, | |
3441 { 0x00, 0x7c, 0x7c }, | |
3442 { 0x00, 0x7d, 0x7d }, | |
3443 { 0x00, 0x7e, 0x7e }, | |
3444 { 0x00, 0x7f, 0x7f }, | |
3445 { 0x00, 0x80, 0x80 }, | |
3446 { 0x00, 0x81, 0x81 }, | |
3447 { 0x00, 0x82, 0x82 }, | |
3448 { 0x00, 0x83, 0x83 }, | |
3449 { 0x00, 0x84, 0x84 }, | |
3450 { 0x00, 0x85, 0x85 }, | |
3451 { 0x00, 0x86, 0x86 }, | |
3452 { 0x00, 0x87, 0x87 }, | |
3453 { 0x00, 0x88, 0x88 }, | |
3454 { 0x00, 0x89, 0x89 }, | |
3455 { 0x00, 0x8a, 0x8a }, | |
3456 { 0x00, 0x8b, 0x8b }, | |
3457 { 0x00, 0x8c, 0x8c }, | |
3458 { 0x00, 0x8d, 0x8d }, | |
3459 { 0x00, 0x8e, 0x8e }, | |
3460 { 0x00, 0x8f, 0x8f }, | |
3461 { 0x00, 0x90, 0x90 }, | |
3462 { 0x00, 0x91, 0x91 }, | |
3463 { 0x00, 0x92, 0x92 }, | |
3464 { 0x00, 0x93, 0x93 }, | |
3465 { 0x00, 0x94, 0x94 }, | |
3466 { 0x00, 0x95, 0x95 }, | |
3467 { 0x00, 0x96, 0x96 }, | |
3468 { 0x00, 0x97, 0x97 }, | |
3469 { 0x00, 0x98, 0x98 }, | |
3470 { 0x00, 0x99, 0x99 }, | |
3471 { 0x00, 0x9a, 0x9a }, | |
3472 { 0x00, 0x9b, 0x9b }, | |
3473 { 0x00, 0x9c, 0x9c }, | |
3474 { 0x00, 0x9d, 0x9d }, | |
3475 { 0x00, 0x9e, 0x9e }, | |
3476 { 0x00, 0x9f, 0x9f }, | |
3477 { 0x00, 0xa0, 0xa0 }, | |
3478 { 0x00, 0xa1, 0xa1 }, | |
3479 { 0x00, 0xa2, 0xa2 }, | |
3480 { 0x00, 0xa3, 0xb3 }, | |
3481 { 0x00, 0xa4, 0xa4 }, | |
3482 { 0x00, 0xa5, 0xa5 }, | |
3483 { 0x00, 0xa6, 0xa6 }, | |
3484 { 0x00, 0xa7, 0xa7 }, | |
3485 { 0x00, 0xa8, 0xa8 }, | |
3486 { 0x00, 0xa9, 0xa9 }, | |
3487 { 0x00, 0xaa, 0xaa }, | |
3488 { 0x00, 0xab, 0xab }, | |
3489 { 0x00, 0xac, 0xac }, | |
3490 { 0x00, 0xad, 0xad }, | |
3491 { 0x00, 0xae, 0xae }, | |
3492 { 0x00, 0xaf, 0xaf }, | |
3493 { 0x00, 0xb0, 0xb0 }, | |
3494 { 0x00, 0xb1, 0xb1 }, | |
3495 { 0x00, 0xb2, 0xb2 }, | |
3496 { 0x01, 0xa3, 0xb3 }, | |
3497 { 0x00, 0xb4, 0xb4 }, | |
3498 { 0x00, 0xb5, 0xb5 }, | |
3499 { 0x00, 0xb6, 0xb6 }, | |
3500 { 0x00, 0xb7, 0xb7 }, | |
3501 { 0x00, 0xb8, 0xb8 }, | |
3502 { 0x00, 0xb9, 0xb9 }, | |
3503 { 0x00, 0xba, 0xba }, | |
3504 { 0x00, 0xbb, 0xbb }, | |
3505 { 0x00, 0xbc, 0xbc }, | |
3506 { 0x00, 0xbd, 0xbd }, | |
3507 { 0x00, 0xbe, 0xbe }, | |
3508 { 0x00, 0xbf, 0xbf }, | |
3509 { 0x00, 0xc0, 0xe0 }, | |
3510 { 0x00, 0xc1, 0xe1 }, | |
3511 { 0x00, 0xc2, 0xe2 }, | |
3512 { 0x00, 0xc3, 0xe3 }, | |
3513 { 0x00, 0xc4, 0xe4 }, | |
3514 { 0x00, 0xc5, 0xe5 }, | |
3515 { 0x00, 0xc6, 0xe6 }, | |
3516 { 0x00, 0xc7, 0xe7 }, | |
3517 { 0x00, 0xc8, 0xe8 }, | |
3518 { 0x00, 0xc9, 0xe9 }, | |
3519 { 0x00, 0xca, 0xea }, | |
3520 { 0x00, 0xcb, 0xeb }, | |
3521 { 0x00, 0xcc, 0xec }, | |
3522 { 0x00, 0xcd, 0xed }, | |
3523 { 0x00, 0xce, 0xee }, | |
3524 { 0x00, 0xcf, 0xef }, | |
3525 { 0x00, 0xd0, 0xf0 }, | |
3526 { 0x00, 0xd1, 0xf1 }, | |
3527 { 0x00, 0xd2, 0xf2 }, | |
3528 { 0x00, 0xd3, 0xf3 }, | |
3529 { 0x00, 0xd4, 0xf4 }, | |
3530 { 0x00, 0xd5, 0xf5 }, | |
3531 { 0x00, 0xd6, 0xf6 }, | |
3532 { 0x00, 0xd7, 0xf7 }, | |
3533 { 0x00, 0xd8, 0xf8 }, | |
3534 { 0x00, 0xd9, 0xf9 }, | |
3535 { 0x00, 0xda, 0xfa }, | |
3536 { 0x00, 0xdb, 0xfb }, | |
3537 { 0x00, 0xdc, 0xfc }, | |
3538 { 0x00, 0xdd, 0xfd }, | |
3539 { 0x00, 0xde, 0xfe }, | |
3540 { 0x00, 0xdf, 0xff }, | |
3541 { 0x01, 0xc0, 0xe0 }, | |
3542 { 0x01, 0xc1, 0xe1 }, | |
3543 { 0x01, 0xc2, 0xe2 }, | |
3544 { 0x01, 0xc3, 0xe3 }, | |
3545 { 0x01, 0xc4, 0xe4 }, | |
3546 { 0x01, 0xc5, 0xe5 }, | |
3547 { 0x01, 0xc6, 0xe6 }, | |
3548 { 0x01, 0xc7, 0xe7 }, | |
3549 { 0x01, 0xc8, 0xe8 }, | |
3550 { 0x01, 0xc9, 0xe9 }, | |
3551 { 0x01, 0xca, 0xea }, | |
3552 { 0x01, 0xcb, 0xeb }, | |
3553 { 0x01, 0xcc, 0xec }, | |
3554 { 0x01, 0xcd, 0xed }, | |
3555 { 0x01, 0xce, 0xee }, | |
3556 { 0x01, 0xcf, 0xef }, | |
3557 { 0x01, 0xd0, 0xf0 }, | |
3558 { 0x01, 0xd1, 0xf1 }, | |
3559 { 0x01, 0xd2, 0xf2 }, | |
3560 { 0x01, 0xd3, 0xf3 }, | |
3561 { 0x01, 0xd4, 0xf4 }, | |
3562 { 0x01, 0xd5, 0xf5 }, | |
3563 { 0x01, 0xd6, 0xf6 }, | |
3564 { 0x01, 0xd7, 0xf7 }, | |
3565 { 0x01, 0xd8, 0xf8 }, | |
3566 { 0x01, 0xd9, 0xf9 }, | |
3567 { 0x01, 0xda, 0xfa }, | |
3568 { 0x01, 0xdb, 0xfb }, | |
3569 { 0x01, 0xdc, 0xfc }, | |
3570 { 0x01, 0xdd, 0xfd }, | |
3571 { 0x01, 0xde, 0xfe }, | |
3572 { 0x01, 0xdf, 0xff } | |
3573 }; | |
3574 | |
3575 static struct cs_info koi8u_tbl[] = { | |
3576 { 0x00, 0x00, 0x00 }, | |
3577 { 0x00, 0x01, 0x01 }, | |
3578 { 0x00, 0x02, 0x02 }, | |
3579 { 0x00, 0x03, 0x03 }, | |
3580 { 0x00, 0x04, 0x04 }, | |
3581 { 0x00, 0x05, 0x05 }, | |
3582 { 0x00, 0x06, 0x06 }, | |
3583 { 0x00, 0x07, 0x07 }, | |
3584 { 0x00, 0x08, 0x08 }, | |
3585 { 0x00, 0x09, 0x09 }, | |
3586 { 0x00, 0x0a, 0x0a }, | |
3587 { 0x00, 0x0b, 0x0b }, | |
3588 { 0x00, 0x0c, 0x0c }, | |
3589 { 0x00, 0x0d, 0x0d }, | |
3590 { 0x00, 0x0e, 0x0e }, | |
3591 { 0x00, 0x0f, 0x0f }, | |
3592 { 0x00, 0x10, 0x10 }, | |
3593 { 0x00, 0x11, 0x11 }, | |
3594 { 0x00, 0x12, 0x12 }, | |
3595 { 0x00, 0x13, 0x13 }, | |
3596 { 0x00, 0x14, 0x14 }, | |
3597 { 0x00, 0x15, 0x15 }, | |
3598 { 0x00, 0x16, 0x16 }, | |
3599 { 0x00, 0x17, 0x17 }, | |
3600 { 0x00, 0x18, 0x18 }, | |
3601 { 0x00, 0x19, 0x19 }, | |
3602 { 0x00, 0x1a, 0x1a }, | |
3603 { 0x00, 0x1b, 0x1b }, | |
3604 { 0x00, 0x1c, 0x1c }, | |
3605 { 0x00, 0x1d, 0x1d }, | |
3606 { 0x00, 0x1e, 0x1e }, | |
3607 { 0x00, 0x1f, 0x1f }, | |
3608 { 0x00, 0x20, 0x20 }, | |
3609 { 0x00, 0x21, 0x21 }, | |
3610 { 0x00, 0x22, 0x22 }, | |
3611 { 0x00, 0x23, 0x23 }, | |
3612 { 0x00, 0x24, 0x24 }, | |
3613 { 0x00, 0x25, 0x25 }, | |
3614 { 0x00, 0x26, 0x26 }, | |
3615 { 0x00, 0x27, 0x27 }, | |
3616 { 0x00, 0x28, 0x28 }, | |
3617 { 0x00, 0x29, 0x29 }, | |
3618 { 0x00, 0x2a, 0x2a }, | |
3619 { 0x00, 0x2b, 0x2b }, | |
3620 { 0x00, 0x2c, 0x2c }, | |
3621 { 0x00, 0x2d, 0x2d }, | |
3622 { 0x00, 0x2e, 0x2e }, | |
3623 { 0x00, 0x2f, 0x2f }, | |
3624 { 0x00, 0x30, 0x30 }, | |
3625 { 0x00, 0x31, 0x31 }, | |
3626 { 0x00, 0x32, 0x32 }, | |
3627 { 0x00, 0x33, 0x33 }, | |
3628 { 0x00, 0x34, 0x34 }, | |
3629 { 0x00, 0x35, 0x35 }, | |
3630 { 0x00, 0x36, 0x36 }, | |
3631 { 0x00, 0x37, 0x37 }, | |
3632 { 0x00, 0x38, 0x38 }, | |
3633 { 0x00, 0x39, 0x39 }, | |
3634 { 0x00, 0x3a, 0x3a }, | |
3635 { 0x00, 0x3b, 0x3b }, | |
3636 { 0x00, 0x3c, 0x3c }, | |
3637 { 0x00, 0x3d, 0x3d }, | |
3638 { 0x00, 0x3e, 0x3e }, | |
3639 { 0x00, 0x3f, 0x3f }, | |
3640 { 0x00, 0x40, 0x40 }, | |
3641 { 0x01, 0x61, 0x41 }, | |
3642 { 0x01, 0x62, 0x42 }, | |
3643 { 0x01, 0x63, 0x43 }, | |
3644 { 0x01, 0x64, 0x44 }, | |
3645 { 0x01, 0x65, 0x45 }, | |
3646 { 0x01, 0x66, 0x46 }, | |
3647 { 0x01, 0x67, 0x47 }, | |
3648 { 0x01, 0x68, 0x48 }, | |
3649 { 0x01, 0x69, 0x49 }, | |
3650 { 0x01, 0x6a, 0x4a }, | |
3651 { 0x01, 0x6b, 0x4b }, | |
3652 { 0x01, 0x6c, 0x4c }, | |
3653 { 0x01, 0x6d, 0x4d }, | |
3654 { 0x01, 0x6e, 0x4e }, | |
3655 { 0x01, 0x6f, 0x4f }, | |
3656 { 0x01, 0x70, 0x50 }, | |
3657 { 0x01, 0x71, 0x51 }, | |
3658 { 0x01, 0x72, 0x52 }, | |
3659 { 0x01, 0x73, 0x53 }, | |
3660 { 0x01, 0x74, 0x54 }, | |
3661 { 0x01, 0x75, 0x55 }, | |
3662 { 0x01, 0x76, 0x56 }, | |
3663 { 0x01, 0x77, 0x57 }, | |
3664 { 0x01, 0x78, 0x58 }, | |
3665 { 0x01, 0x79, 0x59 }, | |
3666 { 0x01, 0x7a, 0x5a }, | |
3667 { 0x00, 0x5b, 0x5b }, | |
3668 { 0x00, 0x5c, 0x5c }, | |
3669 { 0x00, 0x5d, 0x5d }, | |
3670 { 0x00, 0x5e, 0x5e }, | |
3671 { 0x00, 0x5f, 0x5f }, | |
3672 { 0x00, 0x60, 0x60 }, | |
3673 { 0x00, 0x61, 0x41 }, | |
3674 { 0x00, 0x62, 0x42 }, | |
3675 { 0x00, 0x63, 0x43 }, | |
3676 { 0x00, 0x64, 0x44 }, | |
3677 { 0x00, 0x65, 0x45 }, | |
3678 { 0x00, 0x66, 0x46 }, | |
3679 { 0x00, 0x67, 0x47 }, | |
3680 { 0x00, 0x68, 0x48 }, | |
3681 { 0x00, 0x69, 0x49 }, | |
3682 { 0x00, 0x6a, 0x4a }, | |
3683 { 0x00, 0x6b, 0x4b }, | |
3684 { 0x00, 0x6c, 0x4c }, | |
3685 { 0x00, 0x6d, 0x4d }, | |
3686 { 0x00, 0x6e, 0x4e }, | |
3687 { 0x00, 0x6f, 0x4f }, | |
3688 { 0x00, 0x70, 0x50 }, | |
3689 { 0x00, 0x71, 0x51 }, | |
3690 { 0x00, 0x72, 0x52 }, | |
3691 { 0x00, 0x73, 0x53 }, | |
3692 { 0x00, 0x74, 0x54 }, | |
3693 { 0x00, 0x75, 0x55 }, | |
3694 { 0x00, 0x76, 0x56 }, | |
3695 { 0x00, 0x77, 0x57 }, | |
3696 { 0x00, 0x78, 0x58 }, | |
3697 { 0x00, 0x79, 0x59 }, | |
3698 { 0x00, 0x7a, 0x5a }, | |
3699 { 0x00, 0x7b, 0x7b }, | |
3700 { 0x00, 0x7c, 0x7c }, | |
3701 { 0x00, 0x7d, 0x7d }, | |
3702 { 0x00, 0x7e, 0x7e }, | |
3703 { 0x00, 0x7f, 0x7f }, | |
3704 { 0x00, 0x80, 0x80 }, | |
3705 { 0x00, 0x81, 0x81 }, | |
3706 { 0x00, 0x82, 0x82 }, | |
3707 { 0x00, 0x83, 0x83 }, | |
3708 { 0x00, 0x84, 0x84 }, | |
3709 { 0x00, 0x85, 0x85 }, | |
3710 { 0x00, 0x86, 0x86 }, | |
3711 { 0x00, 0x87, 0x87 }, | |
3712 { 0x00, 0x88, 0x88 }, | |
3713 { 0x00, 0x89, 0x89 }, | |
3714 { 0x00, 0x8a, 0x8a }, | |
3715 { 0x00, 0x8b, 0x8b }, | |
3716 { 0x00, 0x8c, 0x8c }, | |
3717 { 0x00, 0x8d, 0x8d }, | |
3718 { 0x00, 0x8e, 0x8e }, | |
3719 { 0x00, 0x8f, 0x8f }, | |
3720 { 0x00, 0x90, 0x90 }, | |
3721 { 0x00, 0x91, 0x91 }, | |
3722 { 0x00, 0x92, 0x92 }, | |
3723 { 0x00, 0x93, 0x93 }, | |
3724 { 0x00, 0x94, 0x94 }, | |
3725 { 0x00, 0x95, 0x95 }, | |
3726 { 0x00, 0x96, 0x96 }, | |
3727 { 0x00, 0x97, 0x97 }, | |
3728 { 0x00, 0x98, 0x98 }, | |
3729 { 0x00, 0x99, 0x99 }, | |
3730 { 0x00, 0x9a, 0x9a }, | |
3731 { 0x00, 0x9b, 0x9b }, | |
3732 { 0x00, 0x9c, 0x9c }, | |
3733 { 0x00, 0x9d, 0x9d }, | |
3734 { 0x00, 0x9e, 0x9e }, | |
3735 { 0x00, 0x9f, 0x9f }, | |
3736 { 0x00, 0xa0, 0xa0 }, | |
3737 { 0x00, 0xa1, 0xa1 }, | |
3738 { 0x00, 0xa2, 0xa2 }, | |
3739 { 0x00, 0xa3, 0xb3 }, | |
3740 { 0x00, 0xa4, 0xb4 }, /* ie */ | |
3741 { 0x00, 0xa5, 0xa5 }, | |
3742 { 0x00, 0xa6, 0xb6 }, /* i */ | |
3743 { 0x00, 0xa7, 0xb7 }, /* ii */ | |
3744 { 0x00, 0xa8, 0xa8 }, | |
3745 { 0x00, 0xa9, 0xa9 }, | |
3746 { 0x00, 0xaa, 0xaa }, | |
3747 { 0x00, 0xab, 0xab }, | |
3748 { 0x00, 0xac, 0xac }, | |
3749 { 0x00, 0xad, 0xbd }, /* g'' */ | |
3750 { 0x00, 0xae, 0xae }, | |
3751 { 0x00, 0xaf, 0xaf }, | |
3752 { 0x00, 0xb0, 0xb0 }, | |
3753 { 0x00, 0xb1, 0xb1 }, | |
3754 { 0x00, 0xb2, 0xb2 }, | |
3755 { 0x01, 0xa3, 0xb3 }, | |
3756 { 0x00, 0xb4, 0xb4 }, /* IE */ | |
3757 { 0x00, 0xb5, 0xb5 }, | |
3758 { 0x00, 0xb6, 0xb6 }, /* I */ | |
3759 { 0x00, 0xb7, 0xb7 }, /* II */ | |
3760 { 0x00, 0xb8, 0xb8 }, | |
3761 { 0x00, 0xb9, 0xb9 }, | |
3762 { 0x00, 0xba, 0xba }, | |
3763 { 0x00, 0xbb, 0xbb }, | |
3764 { 0x00, 0xbc, 0xbc }, | |
3765 { 0x00, 0xbd, 0xbd }, | |
3766 { 0x00, 0xbe, 0xbe }, | |
3767 { 0x00, 0xbf, 0xbf }, | |
3768 { 0x00, 0xc0, 0xe0 }, | |
3769 { 0x00, 0xc1, 0xe1 }, | |
3770 { 0x00, 0xc2, 0xe2 }, | |
3771 { 0x00, 0xc3, 0xe3 }, | |
3772 { 0x00, 0xc4, 0xe4 }, | |
3773 { 0x00, 0xc5, 0xe5 }, | |
3774 { 0x00, 0xc6, 0xe6 }, | |
3775 { 0x00, 0xc7, 0xe7 }, | |
3776 { 0x00, 0xc8, 0xe8 }, | |
3777 { 0x00, 0xc9, 0xe9 }, | |
3778 { 0x00, 0xca, 0xea }, | |
3779 { 0x00, 0xcb, 0xeb }, | |
3780 { 0x00, 0xcc, 0xec }, | |
3781 { 0x00, 0xcd, 0xed }, | |
3782 { 0x00, 0xce, 0xee }, | |
3783 { 0x00, 0xcf, 0xef }, | |
3784 { 0x00, 0xd0, 0xf0 }, | |
3785 { 0x00, 0xd1, 0xf1 }, | |
3786 { 0x00, 0xd2, 0xf2 }, | |
3787 { 0x00, 0xd3, 0xf3 }, | |
3788 { 0x00, 0xd4, 0xf4 }, | |
3789 { 0x00, 0xd5, 0xf5 }, | |
3790 { 0x00, 0xd6, 0xf6 }, | |
3791 { 0x00, 0xd7, 0xf7 }, | |
3792 { 0x00, 0xd8, 0xf8 }, | |
3793 { 0x00, 0xd9, 0xf9 }, | |
3794 { 0x00, 0xda, 0xfa }, | |
3795 { 0x00, 0xdb, 0xfb }, | |
3796 { 0x00, 0xdc, 0xfc }, | |
3797 { 0x00, 0xdd, 0xfd }, | |
3798 { 0x00, 0xde, 0xfe }, | |
3799 { 0x00, 0xdf, 0xff }, | |
3800 { 0x01, 0xc0, 0xe0 }, | |
3801 { 0x01, 0xc1, 0xe1 }, | |
3802 { 0x01, 0xc2, 0xe2 }, | |
3803 { 0x01, 0xc3, 0xe3 }, | |
3804 { 0x01, 0xc4, 0xe4 }, | |
3805 { 0x01, 0xc5, 0xe5 }, | |
3806 { 0x01, 0xc6, 0xe6 }, | |
3807 { 0x01, 0xc7, 0xe7 }, | |
3808 { 0x01, 0xc8, 0xe8 }, | |
3809 { 0x01, 0xc9, 0xe9 }, | |
3810 { 0x01, 0xca, 0xea }, | |
3811 { 0x01, 0xcb, 0xeb }, | |
3812 { 0x01, 0xcc, 0xec }, | |
3813 { 0x01, 0xcd, 0xed }, | |
3814 { 0x01, 0xce, 0xee }, | |
3815 { 0x01, 0xcf, 0xef }, | |
3816 { 0x01, 0xd0, 0xf0 }, | |
3817 { 0x01, 0xd1, 0xf1 }, | |
3818 { 0x01, 0xd2, 0xf2 }, | |
3819 { 0x01, 0xd3, 0xf3 }, | |
3820 { 0x01, 0xd4, 0xf4 }, | |
3821 { 0x01, 0xd5, 0xf5 }, | |
3822 { 0x01, 0xd6, 0xf6 }, | |
3823 { 0x01, 0xd7, 0xf7 }, | |
3824 { 0x01, 0xd8, 0xf8 }, | |
3825 { 0x01, 0xd9, 0xf9 }, | |
3826 { 0x01, 0xda, 0xfa }, | |
3827 { 0x01, 0xdb, 0xfb }, | |
3828 { 0x01, 0xdc, 0xfc }, | |
3829 { 0x01, 0xdd, 0xfd }, | |
3830 { 0x01, 0xde, 0xfe }, | |
3831 { 0x01, 0xdf, 0xff } | |
3832 }; | |
3833 | |
3834 static struct cs_info cp1251_tbl[] = { | |
3835 { 0x00, 0x00, 0x00 }, | |
3836 { 0x00, 0x01, 0x01 }, | |
3837 { 0x00, 0x02, 0x02 }, | |
3838 { 0x00, 0x03, 0x03 }, | |
3839 { 0x00, 0x04, 0x04 }, | |
3840 { 0x00, 0x05, 0x05 }, | |
3841 { 0x00, 0x06, 0x06 }, | |
3842 { 0x00, 0x07, 0x07 }, | |
3843 { 0x00, 0x08, 0x08 }, | |
3844 { 0x00, 0x09, 0x09 }, | |
3845 { 0x00, 0x0a, 0x0a }, | |
3846 { 0x00, 0x0b, 0x0b }, | |
3847 { 0x00, 0x0c, 0x0c }, | |
3848 { 0x00, 0x0d, 0x0d }, | |
3849 { 0x00, 0x0e, 0x0e }, | |
3850 { 0x00, 0x0f, 0x0f }, | |
3851 { 0x00, 0x10, 0x10 }, | |
3852 { 0x00, 0x11, 0x11 }, | |
3853 { 0x00, 0x12, 0x12 }, | |
3854 { 0x00, 0x13, 0x13 }, | |
3855 { 0x00, 0x14, 0x14 }, | |
3856 { 0x00, 0x15, 0x15 }, | |
3857 { 0x00, 0x16, 0x16 }, | |
3858 { 0x00, 0x17, 0x17 }, | |
3859 { 0x00, 0x18, 0x18 }, | |
3860 { 0x00, 0x19, 0x19 }, | |
3861 { 0x00, 0x1a, 0x1a }, | |
3862 { 0x00, 0x1b, 0x1b }, | |
3863 { 0x00, 0x1c, 0x1c }, | |
3864 { 0x00, 0x1d, 0x1d }, | |
3865 { 0x00, 0x1e, 0x1e }, | |
3866 { 0x00, 0x1f, 0x1f }, | |
3867 { 0x00, 0x20, 0x20 }, | |
3868 { 0x00, 0x21, 0x21 }, | |
3869 { 0x00, 0x22, 0x22 }, | |
3870 { 0x00, 0x23, 0x23 }, | |
3871 { 0x00, 0x24, 0x24 }, | |
3872 { 0x00, 0x25, 0x25 }, | |
3873 { 0x00, 0x26, 0x26 }, | |
3874 { 0x00, 0x27, 0x27 }, | |
3875 { 0x00, 0x28, 0x28 }, | |
3876 { 0x00, 0x29, 0x29 }, | |
3877 { 0x00, 0x2a, 0x2a }, | |
3878 { 0x00, 0x2b, 0x2b }, | |
3879 { 0x00, 0x2c, 0x2c }, | |
3880 { 0x00, 0x2d, 0x2d }, | |
3881 { 0x00, 0x2e, 0x2e }, | |
3882 { 0x00, 0x2f, 0x2f }, | |
3883 { 0x00, 0x30, 0x30 }, | |
3884 { 0x00, 0x31, 0x31 }, | |
3885 { 0x00, 0x32, 0x32 }, | |
3886 { 0x00, 0x33, 0x33 }, | |
3887 { 0x00, 0x34, 0x34 }, | |
3888 { 0x00, 0x35, 0x35 }, | |
3889 { 0x00, 0x36, 0x36 }, | |
3890 { 0x00, 0x37, 0x37 }, | |
3891 { 0x00, 0x38, 0x38 }, | |
3892 { 0x00, 0x39, 0x39 }, | |
3893 { 0x00, 0x3a, 0x3a }, | |
3894 { 0x00, 0x3b, 0x3b }, | |
3895 { 0x00, 0x3c, 0x3c }, | |
3896 { 0x00, 0x3d, 0x3d }, | |
3897 { 0x00, 0x3e, 0x3e }, | |
3898 { 0x00, 0x3f, 0x3f }, | |
3899 { 0x00, 0x40, 0x40 }, | |
3900 { 0x01, 0x61, 0x41 }, | |
3901 { 0x01, 0x62, 0x42 }, | |
3902 { 0x01, 0x63, 0x43 }, | |
3903 { 0x01, 0x64, 0x44 }, | |
3904 { 0x01, 0x65, 0x45 }, | |
3905 { 0x01, 0x66, 0x46 }, | |
3906 { 0x01, 0x67, 0x47 }, | |
3907 { 0x01, 0x68, 0x48 }, | |
3908 { 0x01, 0x69, 0x49 }, | |
3909 { 0x01, 0x6a, 0x4a }, | |
3910 { 0x01, 0x6b, 0x4b }, | |
3911 { 0x01, 0x6c, 0x4c }, | |
3912 { 0x01, 0x6d, 0x4d }, | |
3913 { 0x01, 0x6e, 0x4e }, | |
3914 { 0x01, 0x6f, 0x4f }, | |
3915 { 0x01, 0x70, 0x50 }, | |
3916 { 0x01, 0x71, 0x51 }, | |
3917 { 0x01, 0x72, 0x52 }, | |
3918 { 0x01, 0x73, 0x53 }, | |
3919 { 0x01, 0x74, 0x54 }, | |
3920 { 0x01, 0x75, 0x55 }, | |
3921 { 0x01, 0x76, 0x56 }, | |
3922 { 0x01, 0x77, 0x57 }, | |
3923 { 0x01, 0x78, 0x58 }, | |
3924 { 0x01, 0x79, 0x59 }, | |
3925 { 0x01, 0x7a, 0x5a }, | |
3926 { 0x00, 0x5b, 0x5b }, | |
3927 { 0x00, 0x5c, 0x5c }, | |
3928 { 0x00, 0x5d, 0x5d }, | |
3929 { 0x00, 0x5e, 0x5e }, | |
3930 { 0x00, 0x5f, 0x5f }, | |
3931 { 0x00, 0x60, 0x60 }, | |
3932 { 0x00, 0x61, 0x41 }, | |
3933 { 0x00, 0x62, 0x42 }, | |
3934 { 0x00, 0x63, 0x43 }, | |
3935 { 0x00, 0x64, 0x44 }, | |
3936 { 0x00, 0x65, 0x45 }, | |
3937 { 0x00, 0x66, 0x46 }, | |
3938 { 0x00, 0x67, 0x47 }, | |
3939 { 0x00, 0x68, 0x48 }, | |
3940 { 0x00, 0x69, 0x49 }, | |
3941 { 0x00, 0x6a, 0x4a }, | |
3942 { 0x00, 0x6b, 0x4b }, | |
3943 { 0x00, 0x6c, 0x4c }, | |
3944 { 0x00, 0x6d, 0x4d }, | |
3945 { 0x00, 0x6e, 0x4e }, | |
3946 { 0x00, 0x6f, 0x4f }, | |
3947 { 0x00, 0x70, 0x50 }, | |
3948 { 0x00, 0x71, 0x51 }, | |
3949 { 0x00, 0x72, 0x52 }, | |
3950 { 0x00, 0x73, 0x53 }, | |
3951 { 0x00, 0x74, 0x54 }, | |
3952 { 0x00, 0x75, 0x55 }, | |
3953 { 0x00, 0x76, 0x56 }, | |
3954 { 0x00, 0x77, 0x57 }, | |
3955 { 0x00, 0x78, 0x58 }, | |
3956 { 0x00, 0x79, 0x59 }, | |
3957 { 0x00, 0x7a, 0x5a }, | |
3958 { 0x00, 0x7b, 0x7b }, | |
3959 { 0x00, 0x7c, 0x7c }, | |
3960 { 0x00, 0x7d, 0x7d }, | |
3961 { 0x00, 0x7e, 0x7e }, | |
3962 { 0x00, 0x7f, 0x7f }, | |
3963 { 0x01, 0x90, 0x80 }, | |
3964 { 0x01, 0x83, 0x81 }, | |
3965 { 0x00, 0x82, 0x82 }, | |
3966 { 0x00, 0x83, 0x81 }, | |
3967 { 0x00, 0x84, 0x84 }, | |
3968 { 0x00, 0x85, 0x85 }, | |
3969 { 0x00, 0x86, 0x86 }, | |
3970 { 0x00, 0x87, 0x87 }, | |
3971 { 0x00, 0x88, 0x88 }, | |
3972 { 0x00, 0x89, 0x89 }, | |
3973 { 0x01, 0x9a, 0x8a }, | |
3974 { 0x00, 0x8b, 0x8b }, | |
3975 { 0x01, 0x9c, 0x8c }, | |
3976 { 0x01, 0x9d, 0x8d }, | |
3977 { 0x01, 0x9e, 0x8e }, | |
3978 { 0x01, 0x9f, 0x8f }, | |
3979 { 0x00, 0x90, 0x80 }, | |
3980 { 0x00, 0x91, 0x91 }, | |
3981 { 0x00, 0x92, 0x92 }, | |
3982 { 0x00, 0x93, 0x93 }, | |
3983 { 0x00, 0x94, 0x94 }, | |
3984 { 0x00, 0x95, 0x95 }, | |
3985 { 0x00, 0x96, 0x96 }, | |
3986 { 0x00, 0x97, 0x97 }, | |
3987 { 0x00, 0x98, 0x98 }, | |
3988 { 0x00, 0x99, 0x99 }, | |
3989 { 0x00, 0x9a, 0x8a }, | |
3990 { 0x00, 0x9b, 0x9b }, | |
3991 { 0x00, 0x9c, 0x8c }, | |
3992 { 0x00, 0x9d, 0x8d }, | |
3993 { 0x00, 0x9e, 0x8e }, | |
3994 { 0x00, 0x9f, 0x8f }, | |
3995 { 0x00, 0xa0, 0xa0 }, | |
3996 { 0x01, 0xa2, 0xa1 }, | |
3997 { 0x00, 0xa2, 0xa1 }, | |
3998 { 0x01, 0xbc, 0xa3 }, | |
3999 { 0x00, 0xa4, 0xa4 }, | |
4000 { 0x01, 0xb4, 0xa5 }, | |
4001 { 0x00, 0xa6, 0xa6 }, | |
4002 { 0x00, 0xa7, 0xa7 }, | |
4003 { 0x01, 0xb8, 0xa8 }, | |
4004 { 0x00, 0xa9, 0xa9 }, | |
4005 { 0x01, 0xba, 0xaa }, | |
4006 { 0x00, 0xab, 0xab }, | |
4007 { 0x00, 0xac, 0xac }, | |
4008 { 0x00, 0xad, 0xad }, | |
4009 { 0x00, 0xae, 0xae }, | |
4010 { 0x01, 0xbf, 0xaf }, | |
4011 { 0x00, 0xb0, 0xb0 }, | |
4012 { 0x00, 0xb1, 0xb1 }, | |
4013 { 0x01, 0xb3, 0xb2 }, | |
4014 { 0x00, 0xb3, 0xb2 }, | |
4015 { 0x00, 0xb4, 0xa5 }, | |
4016 { 0x00, 0xb5, 0xb5 }, | |
4017 { 0x00, 0xb6, 0xb6 }, | |
4018 { 0x00, 0xb7, 0xb7 }, | |
4019 { 0x00, 0xb8, 0xa8 }, | |
4020 { 0x00, 0xb9, 0xb9 }, | |
4021 { 0x00, 0xba, 0xaa }, | |
4022 { 0x00, 0xbb, 0xbb }, | |
4023 { 0x00, 0xbc, 0xa3 }, | |
4024 { 0x01, 0xbe, 0xbd }, | |
4025 { 0x00, 0xbe, 0xbd }, | |
4026 { 0x00, 0xbf, 0xaf }, | |
4027 { 0x01, 0xe0, 0xc0 }, | |
4028 { 0x01, 0xe1, 0xc1 }, | |
4029 { 0x01, 0xe2, 0xc2 }, | |
4030 { 0x01, 0xe3, 0xc3 }, | |
4031 { 0x01, 0xe4, 0xc4 }, | |
4032 { 0x01, 0xe5, 0xc5 }, | |
4033 { 0x01, 0xe6, 0xc6 }, | |
4034 { 0x01, 0xe7, 0xc7 }, | |
4035 { 0x01, 0xe8, 0xc8 }, | |
4036 { 0x01, 0xe9, 0xc9 }, | |
4037 { 0x01, 0xea, 0xca }, | |
4038 { 0x01, 0xeb, 0xcb }, | |
4039 { 0x01, 0xec, 0xcc }, | |
4040 { 0x01, 0xed, 0xcd }, | |
4041 { 0x01, 0xee, 0xce }, | |
4042 { 0x01, 0xef, 0xcf }, | |
4043 { 0x01, 0xf0, 0xd0 }, | |
4044 { 0x01, 0xf1, 0xd1 }, | |
4045 { 0x01, 0xf2, 0xd2 }, | |
4046 { 0x01, 0xf3, 0xd3 }, | |
4047 { 0x01, 0xf4, 0xd4 }, | |
4048 { 0x01, 0xf5, 0xd5 }, | |
4049 { 0x01, 0xf6, 0xd6 }, | |
4050 { 0x01, 0xf7, 0xd7 }, | |
4051 { 0x01, 0xf8, 0xd8 }, | |
4052 { 0x01, 0xf9, 0xd9 }, | |
4053 { 0x01, 0xfa, 0xda }, | |
4054 { 0x01, 0xfb, 0xdb }, | |
4055 { 0x01, 0xfc, 0xdc }, | |
4056 { 0x01, 0xfd, 0xdd }, | |
4057 { 0x01, 0xfe, 0xde }, | |
4058 { 0x01, 0xff, 0xdf }, | |
4059 { 0x00, 0xe0, 0xc0 }, | |
4060 { 0x00, 0xe1, 0xc1 }, | |
4061 { 0x00, 0xe2, 0xc2 }, | |
4062 { 0x00, 0xe3, 0xc3 }, | |
4063 { 0x00, 0xe4, 0xc4 }, | |
4064 { 0x00, 0xe5, 0xc5 }, | |
4065 { 0x00, 0xe6, 0xc6 }, | |
4066 { 0x00, 0xe7, 0xc7 }, | |
4067 { 0x00, 0xe8, 0xc8 }, | |
4068 { 0x00, 0xe9, 0xc9 }, | |
4069 { 0x00, 0xea, 0xca }, | |
4070 { 0x00, 0xeb, 0xcb }, | |
4071 { 0x00, 0xec, 0xcc }, | |
4072 { 0x00, 0xed, 0xcd }, | |
4073 { 0x00, 0xee, 0xce }, | |
4074 { 0x00, 0xef, 0xcf }, | |
4075 { 0x00, 0xf0, 0xd0 }, | |
4076 { 0x00, 0xf1, 0xd1 }, | |
4077 { 0x00, 0xf2, 0xd2 }, | |
4078 { 0x00, 0xf3, 0xd3 }, | |
4079 { 0x00, 0xf4, 0xd4 }, | |
4080 { 0x00, 0xf5, 0xd5 }, | |
4081 { 0x00, 0xf6, 0xd6 }, | |
4082 { 0x00, 0xf7, 0xd7 }, | |
4083 { 0x00, 0xf8, 0xd8 }, | |
4084 { 0x00, 0xf9, 0xd9 }, | |
4085 { 0x00, 0xfa, 0xda }, | |
4086 { 0x00, 0xfb, 0xdb }, | |
4087 { 0x00, 0xfc, 0xdc }, | |
4088 { 0x00, 0xfd, 0xdd }, | |
4089 { 0x00, 0xfe, 0xde }, | |
4090 { 0x00, 0xff, 0xdf } | |
4091 }; | |
4092 | |
4093 static struct cs_info iso13_tbl[] = { | |
4094 { 0x00, 0x00, 0x00 }, | |
4095 { 0x00, 0x01, 0x01 }, | |
4096 { 0x00, 0x02, 0x02 }, | |
4097 { 0x00, 0x03, 0x03 }, | |
4098 { 0x00, 0x04, 0x04 }, | |
4099 { 0x00, 0x05, 0x05 }, | |
4100 { 0x00, 0x06, 0x06 }, | |
4101 { 0x00, 0x07, 0x07 }, | |
4102 { 0x00, 0x08, 0x08 }, | |
4103 { 0x00, 0x09, 0x09 }, | |
4104 { 0x00, 0x0A, 0x0A }, | |
4105 { 0x00, 0x0B, 0x0B }, | |
4106 { 0x00, 0x0C, 0x0C }, | |
4107 { 0x00, 0x0D, 0x0D }, | |
4108 { 0x00, 0x0E, 0x0E }, | |
4109 { 0x00, 0x0F, 0x0F }, | |
4110 { 0x00, 0x10, 0x10 }, | |
4111 { 0x00, 0x11, 0x11 }, | |
4112 { 0x00, 0x12, 0x12 }, | |
4113 { 0x00, 0x13, 0x13 }, | |
4114 { 0x00, 0x14, 0x14 }, | |
4115 { 0x00, 0x15, 0x15 }, | |
4116 { 0x00, 0x16, 0x16 }, | |
4117 { 0x00, 0x17, 0x17 }, | |
4118 { 0x00, 0x18, 0x18 }, | |
4119 { 0x00, 0x19, 0x19 }, | |
4120 { 0x00, 0x1A, 0x1A }, | |
4121 { 0x00, 0x1B, 0x1B }, | |
4122 { 0x00, 0x1C, 0x1C }, | |
4123 { 0x00, 0x1D, 0x1D }, | |
4124 { 0x00, 0x1E, 0x1E }, | |
4125 { 0x00, 0x1F, 0x1F }, | |
4126 { 0x00, 0x20, 0x20 }, | |
4127 { 0x00, 0x21, 0x21 }, | |
4128 { 0x00, 0x22, 0x22 }, | |
4129 { 0x00, 0x23, 0x23 }, | |
4130 { 0x00, 0x24, 0x24 }, | |
4131 { 0x00, 0x25, 0x25 }, | |
4132 { 0x00, 0x26, 0x26 }, | |
4133 { 0x00, 0x27, 0x27 }, | |
4134 { 0x00, 0x28, 0x28 }, | |
4135 { 0x00, 0x29, 0x29 }, | |
4136 { 0x00, 0x2A, 0x2A }, | |
4137 { 0x00, 0x2B, 0x2B }, | |
4138 { 0x00, 0x2C, 0x2C }, | |
4139 { 0x00, 0x2D, 0x2D }, | |
4140 { 0x00, 0x2E, 0x2E }, | |
4141 { 0x00, 0x2F, 0x2F }, | |
4142 { 0x00, 0x30, 0x30 }, | |
4143 { 0x00, 0x31, 0x31 }, | |
4144 { 0x00, 0x32, 0x32 }, | |
4145 { 0x00, 0x33, 0x33 }, | |
4146 { 0x00, 0x34, 0x34 }, | |
4147 { 0x00, 0x35, 0x35 }, | |
4148 { 0x00, 0x36, 0x36 }, | |
4149 { 0x00, 0x37, 0x37 }, | |
4150 { 0x00, 0x38, 0x38 }, | |
4151 { 0x00, 0x39, 0x39 }, | |
4152 { 0x00, 0x3A, 0x3A }, | |
4153 { 0x00, 0x3B, 0x3B }, | |
4154 { 0x00, 0x3C, 0x3C }, | |
4155 { 0x00, 0x3D, 0x3D }, | |
4156 { 0x00, 0x3E, 0x3E }, | |
4157 { 0x00, 0x3F, 0x3F }, | |
4158 { 0x00, 0x40, 0x40 }, | |
4159 { 0x01, 0x61, 0x41 }, | |
4160 { 0x01, 0x62, 0x42 }, | |
4161 { 0x01, 0x63, 0x43 }, | |
4162 { 0x01, 0x64, 0x44 }, | |
4163 { 0x01, 0x65, 0x45 }, | |
4164 { 0x01, 0x66, 0x46 }, | |
4165 { 0x01, 0x67, 0x47 }, | |
4166 { 0x01, 0x68, 0x48 }, | |
4167 { 0x01, 0x69, 0x49 }, | |
4168 { 0x01, 0x6A, 0x4A }, | |
4169 { 0x01, 0x6B, 0x4B }, | |
4170 { 0x01, 0x6C, 0x4C }, | |
4171 { 0x01, 0x6D, 0x4D }, | |
4172 { 0x01, 0x6E, 0x4E }, | |
4173 { 0x01, 0x6F, 0x4F }, | |
4174 { 0x01, 0x70, 0x50 }, | |
4175 { 0x01, 0x71, 0x51 }, | |
4176 { 0x01, 0x72, 0x52 }, | |
4177 { 0x01, 0x73, 0x53 }, | |
4178 { 0x01, 0x74, 0x54 }, | |
4179 { 0x01, 0x75, 0x55 }, | |
4180 { 0x01, 0x76, 0x56 }, | |
4181 { 0x01, 0x77, 0x57 }, | |
4182 { 0x01, 0x78, 0x58 }, | |
4183 { 0x01, 0x79, 0x59 }, | |
4184 { 0x01, 0x7A, 0x5A }, | |
4185 { 0x00, 0x5B, 0x5B }, | |
4186 { 0x00, 0x5C, 0x5C }, | |
4187 { 0x00, 0x5D, 0x5D }, | |
4188 { 0x00, 0x5E, 0x5E }, | |
4189 { 0x00, 0x5F, 0x5F }, | |
4190 { 0x00, 0x60, 0x60 }, | |
4191 { 0x00, 0x61, 0x41 }, | |
4192 { 0x00, 0x62, 0x42 }, | |
4193 { 0x00, 0x63, 0x43 }, | |
4194 { 0x00, 0x64, 0x44 }, | |
4195 { 0x00, 0x65, 0x45 }, | |
4196 { 0x00, 0x66, 0x46 }, | |
4197 { 0x00, 0x67, 0x47 }, | |
4198 { 0x00, 0x68, 0x48 }, | |
4199 { 0x00, 0x69, 0x49 }, | |
4200 { 0x00, 0x6A, 0x4A }, | |
4201 { 0x00, 0x6B, 0x4B }, | |
4202 { 0x00, 0x6C, 0x4C }, | |
4203 { 0x00, 0x6D, 0x4D }, | |
4204 { 0x00, 0x6E, 0x4E }, | |
4205 { 0x00, 0x6F, 0x4F }, | |
4206 { 0x00, 0x70, 0x50 }, | |
4207 { 0x00, 0x71, 0x51 }, | |
4208 { 0x00, 0x72, 0x52 }, | |
4209 { 0x00, 0x73, 0x53 }, | |
4210 { 0x00, 0x74, 0x54 }, | |
4211 { 0x00, 0x75, 0x55 }, | |
4212 { 0x00, 0x76, 0x56 }, | |
4213 { 0x00, 0x77, 0x57 }, | |
4214 { 0x00, 0x78, 0x58 }, | |
4215 { 0x00, 0x79, 0x59 }, | |
4216 { 0x00, 0x7A, 0x5A }, | |
4217 { 0x00, 0x7B, 0x7B }, | |
4218 { 0x00, 0x7C, 0x7C }, | |
4219 { 0x00, 0x7D, 0x7D }, | |
4220 { 0x00, 0x7E, 0x7E }, | |
4221 { 0x00, 0x7F, 0x7F }, | |
4222 { 0x00, 0x80, 0x80 }, | |
4223 { 0x00, 0x81, 0x81 }, | |
4224 { 0x00, 0x82, 0x82 }, | |
4225 { 0x00, 0x83, 0x83 }, | |
4226 { 0x00, 0x84, 0x84 }, | |
4227 { 0x00, 0x85, 0x85 }, | |
4228 { 0x00, 0x86, 0x86 }, | |
4229 { 0x00, 0x87, 0x87 }, | |
4230 { 0x00, 0x88, 0x88 }, | |
4231 { 0x00, 0x89, 0x89 }, | |
4232 { 0x00, 0x8A, 0x8A }, | |
4233 { 0x00, 0x8B, 0x8B }, | |
4234 { 0x00, 0x8C, 0x8C }, | |
4235 { 0x00, 0x8D, 0x8D }, | |
4236 { 0x00, 0x8E, 0x8E }, | |
4237 { 0x00, 0x8F, 0x8F }, | |
4238 { 0x00, 0x90, 0x90 }, | |
4239 { 0x00, 0x91, 0x91 }, | |
4240 { 0x00, 0x92, 0x92 }, | |
4241 { 0x00, 0x93, 0x93 }, | |
4242 { 0x00, 0x94, 0x94 }, | |
4243 { 0x00, 0x95, 0x95 }, | |
4244 { 0x00, 0x96, 0x96 }, | |
4245 { 0x00, 0x97, 0x97 }, | |
4246 { 0x00, 0x98, 0x98 }, | |
4247 { 0x00, 0x99, 0x99 }, | |
4248 { 0x00, 0x9A, 0x9A }, | |
4249 { 0x00, 0x9B, 0x9B }, | |
4250 { 0x00, 0x9C, 0x9C }, | |
4251 { 0x00, 0x9D, 0x9D }, | |
4252 { 0x00, 0x9E, 0x9E }, | |
4253 { 0x00, 0x9F, 0x9F }, | |
4254 { 0x00, 0xA0, 0xA0 }, | |
4255 { 0x00, 0xA1, 0xA1 }, | |
4256 { 0x00, 0xA2, 0xA2 }, | |
4257 { 0x00, 0xA3, 0xA3 }, | |
4258 { 0x00, 0xA4, 0xA4 }, | |
4259 { 0x00, 0xA5, 0xA5 }, | |
4260 { 0x00, 0xA6, 0xA6 }, | |
4261 { 0x00, 0xA7, 0xA7 }, | |
4262 { 0x01, 0xB8, 0xA8 }, | |
4263 { 0x00, 0xA9, 0xA9 }, | |
4264 { 0x01, 0xBA, 0xAA }, | |
4265 { 0x00, 0xAB, 0xAB }, | |
4266 { 0x00, 0xAC, 0xAC }, | |
4267 { 0x00, 0xAD, 0xAD }, | |
4268 { 0x00, 0xAE, 0xAE }, | |
4269 { 0x01, 0xBF, 0xAF }, | |
4270 { 0x00, 0xB0, 0xB0 }, | |
4271 { 0x00, 0xB1, 0xB1 }, | |
4272 { 0x00, 0xB2, 0xB2 }, | |
4273 { 0x00, 0xB3, 0xB3 }, | |
4274 { 0x00, 0xB4, 0xB4 }, | |
4275 { 0x00, 0xB5, 0xB5 }, | |
4276 { 0x00, 0xB6, 0xB6 }, | |
4277 { 0x00, 0xB7, 0xB7 }, | |
4278 { 0x00, 0xB8, 0xA8 }, | |
4279 { 0x00, 0xB9, 0xB9 }, | |
4280 { 0x00, 0xBA, 0xAA }, | |
4281 { 0x00, 0xBB, 0xBB }, | |
4282 { 0x00, 0xBC, 0xBC }, | |
4283 { 0x00, 0xBD, 0xBD }, | |
4284 { 0x00, 0xBE, 0xBE }, | |
4285 { 0x00, 0xBF, 0xAF }, | |
4286 { 0x01, 0xE0, 0xC0 }, | |
4287 { 0x01, 0xE1, 0xC1 }, | |
4288 { 0x01, 0xE2, 0xC2 }, | |
4289 { 0x01, 0xE3, 0xC3 }, | |
4290 { 0x01, 0xE4, 0xC4 }, | |
4291 { 0x01, 0xE5, 0xC5 }, | |
4292 { 0x01, 0xE6, 0xC6 }, | |
4293 { 0x01, 0xE7, 0xC7 }, | |
4294 { 0x01, 0xE8, 0xC8 }, | |
4295 { 0x01, 0xE9, 0xC9 }, | |
4296 { 0x01, 0xEA, 0xCA }, | |
4297 { 0x01, 0xEB, 0xCB }, | |
4298 { 0x01, 0xEC, 0xCC }, | |
4299 { 0x01, 0xED, 0xCD }, | |
4300 { 0x01, 0xEE, 0xCE }, | |
4301 { 0x01, 0xEF, 0xCF }, | |
4302 { 0x01, 0xF0, 0xD0 }, | |
4303 { 0x01, 0xF1, 0xD1 }, | |
4304 { 0x01, 0xF2, 0xD2 }, | |
4305 { 0x01, 0xF3, 0xD3 }, | |
4306 { 0x01, 0xF4, 0xD4 }, | |
4307 { 0x01, 0xF5, 0xD5 }, | |
4308 { 0x01, 0xF6, 0xD6 }, | |
4309 { 0x00, 0xD7, 0xD7 }, | |
4310 { 0x01, 0xF8, 0xD8 }, | |
4311 { 0x01, 0xF9, 0xD9 }, | |
4312 { 0x01, 0xFA, 0xDA }, | |
4313 { 0x01, 0xFB, 0xDB }, | |
4314 { 0x01, 0xFC, 0xDC }, | |
4315 { 0x01, 0xFD, 0xDD }, | |
4316 { 0x01, 0xFE, 0xDE }, | |
4317 { 0x00, 0xDF, 0xDF }, | |
4318 { 0x00, 0xE0, 0xC0 }, | |
4319 { 0x00, 0xE1, 0xC1 }, | |
4320 { 0x00, 0xE2, 0xC2 }, | |
4321 { 0x00, 0xE3, 0xC3 }, | |
4322 { 0x00, 0xE4, 0xC4 }, | |
4323 { 0x00, 0xE5, 0xC5 }, | |
4324 { 0x00, 0xE6, 0xC6 }, | |
4325 { 0x00, 0xE7, 0xC7 }, | |
4326 { 0x00, 0xE8, 0xC8 }, | |
4327 { 0x00, 0xE9, 0xC9 }, | |
4328 { 0x00, 0xEA, 0xCA }, | |
4329 { 0x00, 0xEB, 0xCB }, | |
4330 { 0x00, 0xEC, 0xCC }, | |
4331 { 0x00, 0xED, 0xCD }, | |
4332 { 0x00, 0xEE, 0xCE }, | |
4333 { 0x00, 0xEF, 0xCF }, | |
4334 { 0x00, 0xF0, 0xD0 }, | |
4335 { 0x00, 0xF1, 0xD1 }, | |
4336 { 0x00, 0xF2, 0xD2 }, | |
4337 { 0x00, 0xF3, 0xD3 }, | |
4338 { 0x00, 0xF4, 0xD4 }, | |
4339 { 0x00, 0xF5, 0xD5 }, | |
4340 { 0x00, 0xF6, 0xD6 }, | |
4341 { 0x00, 0xF7, 0xF7 }, | |
4342 { 0x00, 0xF8, 0xD8 }, | |
4343 { 0x00, 0xF9, 0xD9 }, | |
4344 { 0x00, 0xFA, 0xDA }, | |
4345 { 0x00, 0xFB, 0xDB }, | |
4346 { 0x00, 0xFC, 0xDC }, | |
4347 { 0x00, 0xFD, 0xDD }, | |
4348 { 0x00, 0xFE, 0xDE }, | |
4349 { 0x00, 0xFF, 0xFF } | |
4350 }; | |
4351 | |
4352 | |
4353 static struct cs_info iso14_tbl[] = { | |
4354 { 0x00, 0x00, 0x00 }, | |
4355 { 0x00, 0x01, 0x01 }, | |
4356 { 0x00, 0x02, 0x02 }, | |
4357 { 0x00, 0x03, 0x03 }, | |
4358 { 0x00, 0x04, 0x04 }, | |
4359 { 0x00, 0x05, 0x05 }, | |
4360 { 0x00, 0x06, 0x06 }, | |
4361 { 0x00, 0x07, 0x07 }, | |
4362 { 0x00, 0x08, 0x08 }, | |
4363 { 0x00, 0x09, 0x09 }, | |
4364 { 0x00, 0x0a, 0x0a }, | |
4365 { 0x00, 0x0b, 0x0b }, | |
4366 { 0x00, 0x0c, 0x0c }, | |
4367 { 0x00, 0x0d, 0x0d }, | |
4368 { 0x00, 0x0e, 0x0e }, | |
4369 { 0x00, 0x0f, 0x0f }, | |
4370 { 0x00, 0x10, 0x10 }, | |
4371 { 0x00, 0x11, 0x11 }, | |
4372 { 0x00, 0x12, 0x12 }, | |
4373 { 0x00, 0x13, 0x13 }, | |
4374 { 0x00, 0x14, 0x14 }, | |
4375 { 0x00, 0x15, 0x15 }, | |
4376 { 0x00, 0x16, 0x16 }, | |
4377 { 0x00, 0x17, 0x17 }, | |
4378 { 0x00, 0x18, 0x18 }, | |
4379 { 0x00, 0x19, 0x19 }, | |
4380 { 0x00, 0x1a, 0x1a }, | |
4381 { 0x00, 0x1b, 0x1b }, | |
4382 { 0x00, 0x1c, 0x1c }, | |
4383 { 0x00, 0x1d, 0x1d }, | |
4384 { 0x00, 0x1e, 0x1e }, | |
4385 { 0x00, 0x1f, 0x1f }, | |
4386 { 0x00, 0x20, 0x20 }, | |
4387 { 0x00, 0x21, 0x21 }, | |
4388 { 0x00, 0x22, 0x22 }, | |
4389 { 0x00, 0x23, 0x23 }, | |
4390 { 0x00, 0x24, 0x24 }, | |
4391 { 0x00, 0x25, 0x25 }, | |
4392 { 0x00, 0x26, 0x26 }, | |
4393 { 0x00, 0x27, 0x27 }, | |
4394 { 0x00, 0x28, 0x28 }, | |
4395 { 0x00, 0x29, 0x29 }, | |
4396 { 0x00, 0x2a, 0x2a }, | |
4397 { 0x00, 0x2b, 0x2b }, | |
4398 { 0x00, 0x2c, 0x2c }, | |
4399 { 0x00, 0x2d, 0x2d }, | |
4400 { 0x00, 0x2e, 0x2e }, | |
4401 { 0x00, 0x2f, 0x2f }, | |
4402 { 0x00, 0x30, 0x30 }, | |
4403 { 0x00, 0x31, 0x31 }, | |
4404 { 0x00, 0x32, 0x32 }, | |
4405 { 0x00, 0x33, 0x33 }, | |
4406 { 0x00, 0x34, 0x34 }, | |
4407 { 0x00, 0x35, 0x35 }, | |
4408 { 0x00, 0x36, 0x36 }, | |
4409 { 0x00, 0x37, 0x37 }, | |
4410 { 0x00, 0x38, 0x38 }, | |
4411 { 0x00, 0x39, 0x39 }, | |
4412 { 0x00, 0x3a, 0x3a }, | |
4413 { 0x00, 0x3b, 0x3b }, | |
4414 { 0x00, 0x3c, 0x3c }, | |
4415 { 0x00, 0x3d, 0x3d }, | |
4416 { 0x00, 0x3e, 0x3e }, | |
4417 { 0x00, 0x3f, 0x3f }, | |
4418 { 0x00, 0x40, 0x40 }, | |
4419 { 0x01, 0x61, 0x41 }, | |
4420 { 0x01, 0x62, 0x42 }, | |
4421 { 0x01, 0x63, 0x43 }, | |
4422 { 0x01, 0x64, 0x44 }, | |
4423 { 0x01, 0x65, 0x45 }, | |
4424 { 0x01, 0x66, 0x46 }, | |
4425 { 0x01, 0x67, 0x47 }, | |
4426 { 0x01, 0x68, 0x48 }, | |
4427 { 0x01, 0x69, 0x49 }, | |
4428 { 0x01, 0x6a, 0x4a }, | |
4429 { 0x01, 0x6b, 0x4b }, | |
4430 { 0x01, 0x6c, 0x4c }, | |
4431 { 0x01, 0x6d, 0x4d }, | |
4432 { 0x01, 0x6e, 0x4e }, | |
4433 { 0x01, 0x6f, 0x4f }, | |
4434 { 0x01, 0x70, 0x50 }, | |
4435 { 0x01, 0x71, 0x51 }, | |
4436 { 0x01, 0x72, 0x52 }, | |
4437 { 0x01, 0x73, 0x53 }, | |
4438 { 0x01, 0x74, 0x54 }, | |
4439 { 0x01, 0x75, 0x55 }, | |
4440 { 0x01, 0x76, 0x56 }, | |
4441 { 0x01, 0x77, 0x57 }, | |
4442 { 0x01, 0x78, 0x58 }, | |
4443 { 0x01, 0x79, 0x59 }, | |
4444 { 0x01, 0x7a, 0x5a }, | |
4445 { 0x00, 0x5b, 0x5b }, | |
4446 { 0x00, 0x5c, 0x5c }, | |
4447 { 0x00, 0x5d, 0x5d }, | |
4448 { 0x00, 0x5e, 0x5e }, | |
4449 { 0x00, 0x5f, 0x5f }, | |
4450 { 0x00, 0x60, 0x60 }, | |
4451 { 0x00, 0x61, 0x41 }, | |
4452 { 0x00, 0x62, 0x42 }, | |
4453 { 0x00, 0x63, 0x43 }, | |
4454 { 0x00, 0x64, 0x44 }, | |
4455 { 0x00, 0x65, 0x45 }, | |
4456 { 0x00, 0x66, 0x46 }, | |
4457 { 0x00, 0x67, 0x47 }, | |
4458 { 0x00, 0x68, 0x48 }, | |
4459 { 0x00, 0x69, 0x49 }, | |
4460 { 0x00, 0x6a, 0x4a }, | |
4461 { 0x00, 0x6b, 0x4b }, | |
4462 { 0x00, 0x6c, 0x4c }, | |
4463 { 0x00, 0x6d, 0x4d }, | |
4464 { 0x00, 0x6e, 0x4e }, | |
4465 { 0x00, 0x6f, 0x4f }, | |
4466 { 0x00, 0x70, 0x50 }, | |
4467 { 0x00, 0x71, 0x51 }, | |
4468 { 0x00, 0x72, 0x52 }, | |
4469 { 0x00, 0x73, 0x53 }, | |
4470 { 0x00, 0x74, 0x54 }, | |
4471 { 0x00, 0x75, 0x55 }, | |
4472 { 0x00, 0x76, 0x56 }, | |
4473 { 0x00, 0x77, 0x57 }, | |
4474 { 0x00, 0x78, 0x58 }, | |
4475 { 0x00, 0x79, 0x59 }, | |
4476 { 0x00, 0x7a, 0x5a }, | |
4477 { 0x00, 0x7b, 0x7b }, | |
4478 { 0x00, 0x7c, 0x7c }, | |
4479 { 0x00, 0x7d, 0x7d }, | |
4480 { 0x00, 0x7e, 0x7e }, | |
4481 { 0x00, 0x7f, 0x7f }, | |
4482 { 0x00, 0x80, 0x80 }, | |
4483 { 0x00, 0x81, 0x81 }, | |
4484 { 0x00, 0x82, 0x82 }, | |
4485 { 0x00, 0x83, 0x83 }, | |
4486 { 0x00, 0x84, 0x84 }, | |
4487 { 0x00, 0x85, 0x85 }, | |
4488 { 0x00, 0x86, 0x86 }, | |
4489 { 0x00, 0x87, 0x87 }, | |
4490 { 0x00, 0x88, 0x88 }, | |
4491 { 0x00, 0x89, 0x89 }, | |
4492 { 0x00, 0x8a, 0x8a }, | |
4493 { 0x00, 0x8b, 0x8b }, | |
4494 { 0x00, 0x8c, 0x8c }, | |
4495 { 0x00, 0x8d, 0x8d }, | |
4496 { 0x00, 0x8e, 0x8e }, | |
4497 { 0x00, 0x8f, 0x8f }, | |
4498 { 0x00, 0x90, 0x90 }, | |
4499 { 0x00, 0x91, 0x91 }, | |
4500 { 0x00, 0x92, 0x92 }, | |
4501 { 0x00, 0x93, 0x93 }, | |
4502 { 0x00, 0x94, 0x94 }, | |
4503 { 0x00, 0x95, 0x95 }, | |
4504 { 0x00, 0x96, 0x96 }, | |
4505 { 0x00, 0x97, 0x97 }, | |
4506 { 0x00, 0x98, 0x98 }, | |
4507 { 0x00, 0x99, 0x99 }, | |
4508 { 0x00, 0x9a, 0x9a }, | |
4509 { 0x00, 0x9b, 0x9b }, | |
4510 { 0x00, 0x9c, 0x9c }, | |
4511 { 0x00, 0x9d, 0x9d }, | |
4512 { 0x00, 0x9e, 0x9e }, | |
4513 { 0x00, 0x9f, 0x9f }, | |
4514 { 0x00, 0xa0, 0xa0 }, | |
4515 { 0x01, 0xa2, 0xa1 }, | |
4516 { 0x00, 0xa2, 0xa1 }, | |
4517 { 0x00, 0xa3, 0xa3 }, | |
4518 { 0x01, 0xa5, 0xa4 }, | |
4519 { 0x00, 0xa5, 0xa4 }, | |
4520 { 0x01, 0xa6, 0xab }, | |
4521 { 0x00, 0xa7, 0xa7 }, | |
4522 { 0x01, 0xb8, 0xa8 }, | |
4523 { 0x00, 0xa9, 0xa9 }, | |
4524 { 0x01, 0xba, 0xaa }, | |
4525 { 0x00, 0xab, 0xa6 }, | |
4526 { 0x01, 0xbc, 0xac }, | |
4527 { 0x00, 0xad, 0xad }, | |
4528 { 0x00, 0xae, 0xae }, | |
4529 { 0x01, 0xff, 0xaf }, | |
4530 { 0x01, 0xb1, 0xb0 }, | |
4531 { 0x00, 0xb1, 0xb0 }, | |
4532 { 0x01, 0xb3, 0xb2 }, | |
4533 { 0x00, 0xb3, 0xb2 }, | |
4534 { 0x01, 0xb5, 0xb4 }, | |
4535 { 0x00, 0xb5, 0xb4 }, | |
4536 { 0x00, 0xb6, 0xb6 }, | |
4537 { 0x01, 0xb9, 0xb7 }, | |
4538 { 0x00, 0xb8, 0xa8 }, | |
4539 { 0x00, 0xb9, 0xb6 }, | |
4540 { 0x00, 0xba, 0xaa }, | |
4541 { 0x01, 0xbf, 0xbb }, | |
4542 { 0x00, 0xbc, 0xac }, | |
4543 { 0x01, 0xbe, 0xbd }, | |
4544 { 0x00, 0xbe, 0xbd }, | |
4545 { 0x00, 0xbf, 0xbb }, | |
4546 { 0x01, 0xe0, 0xc0 }, | |
4547 { 0x01, 0xe1, 0xc1 }, | |
4548 { 0x01, 0xe2, 0xc2 }, | |
4549 { 0x01, 0xe3, 0xc3 }, | |
4550 { 0x01, 0xe4, 0xc4 }, | |
4551 { 0x01, 0xe5, 0xc5 }, | |
4552 { 0x01, 0xe6, 0xc6 }, | |
4553 { 0x01, 0xe7, 0xc7 }, | |
4554 { 0x01, 0xe8, 0xc8 }, | |
4555 { 0x01, 0xe9, 0xc9 }, | |
4556 { 0x01, 0xea, 0xca }, | |
4557 { 0x01, 0xeb, 0xcb }, | |
4558 { 0x01, 0xec, 0xcc }, | |
4559 { 0x01, 0xed, 0xcd }, | |
4560 { 0x01, 0xee, 0xce }, | |
4561 { 0x01, 0xef, 0xcf }, | |
4562 { 0x01, 0xf0, 0xd0 }, | |
4563 { 0x01, 0xf1, 0xd1 }, | |
4564 { 0x01, 0xf2, 0xd2 }, | |
4565 { 0x01, 0xf3, 0xd3 }, | |
4566 { 0x01, 0xf4, 0xd4 }, | |
4567 { 0x01, 0xf5, 0xd5 }, | |
4568 { 0x01, 0xf6, 0xd6 }, | |
4569 { 0x01, 0xf7, 0xd7 }, | |
4570 { 0x01, 0xf8, 0xd8 }, | |
4571 { 0x01, 0xf9, 0xd9 }, | |
4572 { 0x01, 0xfa, 0xda }, | |
4573 { 0x01, 0xfb, 0xdb }, | |
4574 { 0x01, 0xfc, 0xdc }, | |
4575 { 0x01, 0xfd, 0xdd }, | |
4576 { 0x01, 0xfe, 0xde }, | |
4577 { 0x00, 0xdf, 0xdf }, | |
4578 { 0x00, 0xe0, 0xc0 }, | |
4579 { 0x00, 0xe1, 0xc1 }, | |
4580 { 0x00, 0xe2, 0xc2 }, | |
4581 { 0x00, 0xe3, 0xc3 }, | |
4582 { 0x00, 0xe4, 0xc4 }, | |
4583 { 0x00, 0xe5, 0xc5 }, | |
4584 { 0x00, 0xe6, 0xc6 }, | |
4585 { 0x00, 0xe7, 0xc7 }, | |
4586 { 0x00, 0xe8, 0xc8 }, | |
4587 { 0x00, 0xe9, 0xc9 }, | |
4588 { 0x00, 0xea, 0xca }, | |
4589 { 0x00, 0xeb, 0xcb }, | |
4590 { 0x00, 0xec, 0xcc }, | |
4591 { 0x00, 0xed, 0xcd }, | |
4592 { 0x00, 0xee, 0xce }, | |
4593 { 0x00, 0xef, 0xcf }, | |
4594 { 0x00, 0xf0, 0xd0 }, | |
4595 { 0x00, 0xf1, 0xd1 }, | |
4596 { 0x00, 0xf2, 0xd2 }, | |
4597 { 0x00, 0xf3, 0xd3 }, | |
4598 { 0x00, 0xf4, 0xd4 }, | |
4599 { 0x00, 0xf5, 0xd5 }, | |
4600 { 0x00, 0xf6, 0xd6 }, | |
4601 { 0x00, 0xf7, 0xd7 }, | |
4602 { 0x00, 0xf8, 0xd8 }, | |
4603 { 0x00, 0xf9, 0xd9 }, | |
4604 { 0x00, 0xfa, 0xda }, | |
4605 { 0x00, 0xfb, 0xdb }, | |
4606 { 0x00, 0xfc, 0xdc }, | |
4607 { 0x00, 0xfd, 0xdd }, | |
4608 { 0x00, 0xfe, 0xde }, | |
4609 { 0x00, 0xff, 0xff } | |
4610 }; | |
4611 | |
4612 static struct cs_info iso15_tbl[] = { | |
4613 { 0x00, 0x00, 0x00 }, | |
4614 { 0x00, 0x01, 0x01 }, | |
4615 { 0x00, 0x02, 0x02 }, | |
4616 { 0x00, 0x03, 0x03 }, | |
4617 { 0x00, 0x04, 0x04 }, | |
4618 { 0x00, 0x05, 0x05 }, | |
4619 { 0x00, 0x06, 0x06 }, | |
4620 { 0x00, 0x07, 0x07 }, | |
4621 { 0x00, 0x08, 0x08 }, | |
4622 { 0x00, 0x09, 0x09 }, | |
4623 { 0x00, 0x0a, 0x0a }, | |
4624 { 0x00, 0x0b, 0x0b }, | |
4625 { 0x00, 0x0c, 0x0c }, | |
4626 { 0x00, 0x0d, 0x0d }, | |
4627 { 0x00, 0x0e, 0x0e }, | |
4628 { 0x00, 0x0f, 0x0f }, | |
4629 { 0x00, 0x10, 0x10 }, | |
4630 { 0x00, 0x11, 0x11 }, | |
4631 { 0x00, 0x12, 0x12 }, | |
4632 { 0x00, 0x13, 0x13 }, | |
4633 { 0x00, 0x14, 0x14 }, | |
4634 { 0x00, 0x15, 0x15 }, | |
4635 { 0x00, 0x16, 0x16 }, | |
4636 { 0x00, 0x17, 0x17 }, | |
4637 { 0x00, 0x18, 0x18 }, | |
4638 { 0x00, 0x19, 0x19 }, | |
4639 { 0x00, 0x1a, 0x1a }, | |
4640 { 0x00, 0x1b, 0x1b }, | |
4641 { 0x00, 0x1c, 0x1c }, | |
4642 { 0x00, 0x1d, 0x1d }, | |
4643 { 0x00, 0x1e, 0x1e }, | |
4644 { 0x00, 0x1f, 0x1f }, | |
4645 { 0x00, 0x20, 0x20 }, | |
4646 { 0x00, 0x21, 0x21 }, | |
4647 { 0x00, 0x22, 0x22 }, | |
4648 { 0x00, 0x23, 0x23 }, | |
4649 { 0x00, 0x24, 0x24 }, | |
4650 { 0x00, 0x25, 0x25 }, | |
4651 { 0x00, 0x26, 0x26 }, | |
4652 { 0x00, 0x27, 0x27 }, | |
4653 { 0x00, 0x28, 0x28 }, | |
4654 { 0x00, 0x29, 0x29 }, | |
4655 { 0x00, 0x2a, 0x2a }, | |
4656 { 0x00, 0x2b, 0x2b }, | |
4657 { 0x00, 0x2c, 0x2c }, | |
4658 { 0x00, 0x2d, 0x2d }, | |
4659 { 0x00, 0x2e, 0x2e }, | |
4660 { 0x00, 0x2f, 0x2f }, | |
4661 { 0x00, 0x30, 0x30 }, | |
4662 { 0x00, 0x31, 0x31 }, | |
4663 { 0x00, 0x32, 0x32 }, | |
4664 { 0x00, 0x33, 0x33 }, | |
4665 { 0x00, 0x34, 0x34 }, | |
4666 { 0x00, 0x35, 0x35 }, | |
4667 { 0x00, 0x36, 0x36 }, | |
4668 { 0x00, 0x37, 0x37 }, | |
4669 { 0x00, 0x38, 0x38 }, | |
4670 { 0x00, 0x39, 0x39 }, | |
4671 { 0x00, 0x3a, 0x3a }, | |
4672 { 0x00, 0x3b, 0x3b }, | |
4673 { 0x00, 0x3c, 0x3c }, | |
4674 { 0x00, 0x3d, 0x3d }, | |
4675 { 0x00, 0x3e, 0x3e }, | |
4676 { 0x00, 0x3f, 0x3f }, | |
4677 { 0x00, 0x40, 0x40 }, | |
4678 { 0x01, 0x61, 0x41 }, | |
4679 { 0x01, 0x62, 0x42 }, | |
4680 { 0x01, 0x63, 0x43 }, | |
4681 { 0x01, 0x64, 0x44 }, | |
4682 { 0x01, 0x65, 0x45 }, | |
4683 { 0x01, 0x66, 0x46 }, | |
4684 { 0x01, 0x67, 0x47 }, | |
4685 { 0x01, 0x68, 0x48 }, | |
4686 { 0x01, 0x69, 0x49 }, | |
4687 { 0x01, 0x6a, 0x4a }, | |
4688 { 0x01, 0x6b, 0x4b }, | |
4689 { 0x01, 0x6c, 0x4c }, | |
4690 { 0x01, 0x6d, 0x4d }, | |
4691 { 0x01, 0x6e, 0x4e }, | |
4692 { 0x01, 0x6f, 0x4f }, | |
4693 { 0x01, 0x70, 0x50 }, | |
4694 { 0x01, 0x71, 0x51 }, | |
4695 { 0x01, 0x72, 0x52 }, | |
4696 { 0x01, 0x73, 0x53 }, | |
4697 { 0x01, 0x74, 0x54 }, | |
4698 { 0x01, 0x75, 0x55 }, | |
4699 { 0x01, 0x76, 0x56 }, | |
4700 { 0x01, 0x77, 0x57 }, | |
4701 { 0x01, 0x78, 0x58 }, | |
4702 { 0x01, 0x79, 0x59 }, | |
4703 { 0x01, 0x7a, 0x5a }, | |
4704 { 0x00, 0x5b, 0x5b }, | |
4705 { 0x00, 0x5c, 0x5c }, | |
4706 { 0x00, 0x5d, 0x5d }, | |
4707 { 0x00, 0x5e, 0x5e }, | |
4708 { 0x00, 0x5f, 0x5f }, | |
4709 { 0x00, 0x60, 0x60 }, | |
4710 { 0x00, 0x61, 0x41 }, | |
4711 { 0x00, 0x62, 0x42 }, | |
4712 { 0x00, 0x63, 0x43 }, | |
4713 { 0x00, 0x64, 0x44 }, | |
4714 { 0x00, 0x65, 0x45 }, | |
4715 { 0x00, 0x66, 0x46 }, | |
4716 { 0x00, 0x67, 0x47 }, | |
4717 { 0x00, 0x68, 0x48 }, | |
4718 { 0x00, 0x69, 0x49 }, | |
4719 { 0x00, 0x6a, 0x4a }, | |
4720 { 0x00, 0x6b, 0x4b }, | |
4721 { 0x00, 0x6c, 0x4c }, | |
4722 { 0x00, 0x6d, 0x4d }, | |
4723 { 0x00, 0x6e, 0x4e }, | |
4724 { 0x00, 0x6f, 0x4f }, | |
4725 { 0x00, 0x70, 0x50 }, | |
4726 { 0x00, 0x71, 0x51 }, | |
4727 { 0x00, 0x72, 0x52 }, | |
4728 { 0x00, 0x73, 0x53 }, | |
4729 { 0x00, 0x74, 0x54 }, | |
4730 { 0x00, 0x75, 0x55 }, | |
4731 { 0x00, 0x76, 0x56 }, | |
4732 { 0x00, 0x77, 0x57 }, | |
4733 { 0x00, 0x78, 0x58 }, | |
4734 { 0x00, 0x79, 0x59 }, | |
4735 { 0x00, 0x7a, 0x5a }, | |
4736 { 0x00, 0x7b, 0x7b }, | |
4737 { 0x00, 0x7c, 0x7c }, | |
4738 { 0x00, 0x7d, 0x7d }, | |
4739 { 0x00, 0x7e, 0x7e }, | |
4740 { 0x00, 0x7f, 0x7f }, | |
4741 { 0x00, 0x80, 0x80 }, | |
4742 { 0x00, 0x81, 0x81 }, | |
4743 { 0x00, 0x82, 0x82 }, | |
4744 { 0x00, 0x83, 0x83 }, | |
4745 { 0x00, 0x84, 0x84 }, | |
4746 { 0x00, 0x85, 0x85 }, | |
4747 { 0x00, 0x86, 0x86 }, | |
4748 { 0x00, 0x87, 0x87 }, | |
4749 { 0x00, 0x88, 0x88 }, | |
4750 { 0x00, 0x89, 0x89 }, | |
4751 { 0x00, 0x8a, 0x8a }, | |
4752 { 0x00, 0x8b, 0x8b }, | |
4753 { 0x00, 0x8c, 0x8c }, | |
4754 { 0x00, 0x8d, 0x8d }, | |
4755 { 0x00, 0x8e, 0x8e }, | |
4756 { 0x00, 0x8f, 0x8f }, | |
4757 { 0x00, 0x90, 0x90 }, | |
4758 { 0x00, 0x91, 0x91 }, | |
4759 { 0x00, 0x92, 0x92 }, | |
4760 { 0x00, 0x93, 0x93 }, | |
4761 { 0x00, 0x94, 0x94 }, | |
4762 { 0x00, 0x95, 0x95 }, | |
4763 { 0x00, 0x96, 0x96 }, | |
4764 { 0x00, 0x97, 0x97 }, | |
4765 { 0x00, 0x98, 0x98 }, | |
4766 { 0x00, 0x99, 0x99 }, | |
4767 { 0x00, 0x9a, 0x9a }, | |
4768 { 0x00, 0x9b, 0x9b }, | |
4769 { 0x00, 0x9c, 0x9c }, | |
4770 { 0x00, 0x9d, 0x9d }, | |
4771 { 0x00, 0x9e, 0x9e }, | |
4772 { 0x00, 0x9f, 0x9f }, | |
4773 { 0x00, 0xa0, 0xa0 }, | |
4774 { 0x00, 0xa1, 0xa1 }, | |
4775 { 0x00, 0xa2, 0xa2 }, | |
4776 { 0x00, 0xa3, 0xa3 }, | |
4777 { 0x00, 0xa4, 0xa4 }, | |
4778 { 0x00, 0xa5, 0xa5 }, | |
4779 { 0x01, 0xa8, 0xa6 }, | |
4780 { 0x00, 0xa7, 0xa7 }, | |
4781 { 0x00, 0xa8, 0xa6 }, | |
4782 { 0x00, 0xa9, 0xa9 }, | |
4783 { 0x00, 0xaa, 0xaa }, | |
4784 { 0x00, 0xab, 0xab }, | |
4785 { 0x00, 0xac, 0xac }, | |
4786 { 0x00, 0xad, 0xad }, | |
4787 { 0x00, 0xae, 0xae }, | |
4788 { 0x00, 0xaf, 0xaf }, | |
4789 { 0x00, 0xb0, 0xb0 }, | |
4790 { 0x00, 0xb1, 0xb1 }, | |
4791 { 0x00, 0xb2, 0xb2 }, | |
4792 { 0x00, 0xb3, 0xb3 }, | |
4793 { 0x01, 0xb8, 0xb4 }, | |
4794 { 0x00, 0xb5, 0xb5 }, | |
4795 { 0x00, 0xb6, 0xb6 }, | |
4796 { 0x00, 0xb7, 0xb7 }, | |
4797 { 0x00, 0xb8, 0xb4 }, | |
4798 { 0x00, 0xb9, 0xb9 }, | |
4799 { 0x00, 0xba, 0xba }, | |
4800 { 0x00, 0xbb, 0xbb }, | |
4801 { 0x01, 0xbd, 0xbc }, | |
4802 { 0x00, 0xbd, 0xbc }, | |
4803 { 0x01, 0xff, 0xbe }, | |
4804 { 0x00, 0xbf, 0xbf }, | |
4805 { 0x01, 0xe0, 0xc0 }, | |
4806 { 0x01, 0xe1, 0xc1 }, | |
4807 { 0x01, 0xe2, 0xc2 }, | |
4808 { 0x01, 0xe3, 0xc3 }, | |
4809 { 0x01, 0xe4, 0xc4 }, | |
4810 { 0x01, 0xe5, 0xc5 }, | |
4811 { 0x01, 0xe6, 0xc6 }, | |
4812 { 0x01, 0xe7, 0xc7 }, | |
4813 { 0x01, 0xe8, 0xc8 }, | |
4814 { 0x01, 0xe9, 0xc9 }, | |
4815 { 0x01, 0xea, 0xca }, | |
4816 { 0x01, 0xeb, 0xcb }, | |
4817 { 0x01, 0xec, 0xcc }, | |
4818 { 0x01, 0xed, 0xcd }, | |
4819 { 0x01, 0xee, 0xce }, | |
4820 { 0x01, 0xef, 0xcf }, | |
4821 { 0x01, 0xf0, 0xd0 }, | |
4822 { 0x01, 0xf1, 0xd1 }, | |
4823 { 0x01, 0xf2, 0xd2 }, | |
4824 { 0x01, 0xf3, 0xd3 }, | |
4825 { 0x01, 0xf4, 0xd4 }, | |
4826 { 0x01, 0xf5, 0xd5 }, | |
4827 { 0x01, 0xf6, 0xd6 }, | |
4828 { 0x00, 0xd7, 0xd7 }, | |
4829 { 0x01, 0xf8, 0xd8 }, | |
4830 { 0x01, 0xf9, 0xd9 }, | |
4831 { 0x01, 0xfa, 0xda }, | |
4832 { 0x01, 0xfb, 0xdb }, | |
4833 { 0x01, 0xfc, 0xdc }, | |
4834 { 0x01, 0xfd, 0xdd }, | |
4835 { 0x01, 0xfe, 0xde }, | |
4836 { 0x00, 0xdf, 0xdf }, | |
4837 { 0x00, 0xe0, 0xc0 }, | |
4838 { 0x00, 0xe1, 0xc1 }, | |
4839 { 0x00, 0xe2, 0xc2 }, | |
4840 { 0x00, 0xe3, 0xc3 }, | |
4841 { 0x00, 0xe4, 0xc4 }, | |
4842 { 0x00, 0xe5, 0xc5 }, | |
4843 { 0x00, 0xe6, 0xc6 }, | |
4844 { 0x00, 0xe7, 0xc7 }, | |
4845 { 0x00, 0xe8, 0xc8 }, | |
4846 { 0x00, 0xe9, 0xc9 }, | |
4847 { 0x00, 0xea, 0xca }, | |
4848 { 0x00, 0xeb, 0xcb }, | |
4849 { 0x00, 0xec, 0xcc }, | |
4850 { 0x00, 0xed, 0xcd }, | |
4851 { 0x00, 0xee, 0xce }, | |
4852 { 0x00, 0xef, 0xcf }, | |
4853 { 0x00, 0xf0, 0xd0 }, | |
4854 { 0x00, 0xf1, 0xd1 }, | |
4855 { 0x00, 0xf2, 0xd2 }, | |
4856 { 0x00, 0xf3, 0xd3 }, | |
4857 { 0x00, 0xf4, 0xd4 }, | |
4858 { 0x00, 0xf5, 0xd5 }, | |
4859 { 0x00, 0xf6, 0xd6 }, | |
4860 { 0x00, 0xf7, 0xf7 }, | |
4861 { 0x00, 0xf8, 0xd8 }, | |
4862 { 0x00, 0xf9, 0xd9 }, | |
4863 { 0x00, 0xfa, 0xda }, | |
4864 { 0x00, 0xfb, 0xdb }, | |
4865 { 0x00, 0xfc, 0xdc }, | |
4866 { 0x00, 0xfd, 0xdd }, | |
4867 { 0x00, 0xfe, 0xde }, | |
4868 { 0x00, 0xff, 0xbe } | |
4869 }; | |
4870 | |
4871 static struct cs_info iscii_devanagari_tbl[] = { | |
4872 { 0x00, 0x00, 0x00 }, | |
4873 { 0x00, 0x01, 0x01 }, | |
4874 { 0x00, 0x02, 0x02 }, | |
4875 { 0x00, 0x03, 0x03 }, | |
4876 { 0x00, 0x04, 0x04 }, | |
4877 { 0x00, 0x05, 0x05 }, | |
4878 { 0x00, 0x06, 0x06 }, | |
4879 { 0x00, 0x07, 0x07 }, | |
4880 { 0x00, 0x08, 0x08 }, | |
4881 { 0x00, 0x09, 0x09 }, | |
4882 { 0x00, 0x0a, 0x0a }, | |
4883 { 0x00, 0x0b, 0x0b }, | |
4884 { 0x00, 0x0c, 0x0c }, | |
4885 { 0x00, 0x0d, 0x0d }, | |
4886 { 0x00, 0x0e, 0x0e }, | |
4887 { 0x00, 0x0f, 0x0f }, | |
4888 { 0x00, 0x10, 0x10 }, | |
4889 { 0x00, 0x11, 0x11 }, | |
4890 { 0x00, 0x12, 0x12 }, | |
4891 { 0x00, 0x13, 0x13 }, | |
4892 { 0x00, 0x14, 0x14 }, | |
4893 { 0x00, 0x15, 0x15 }, | |
4894 { 0x00, 0x16, 0x16 }, | |
4895 { 0x00, 0x17, 0x17 }, | |
4896 { 0x00, 0x18, 0x18 }, | |
4897 { 0x00, 0x19, 0x19 }, | |
4898 { 0x00, 0x1a, 0x1a }, | |
4899 { 0x00, 0x1b, 0x1b }, | |
4900 { 0x00, 0x1c, 0x1c }, | |
4901 { 0x00, 0x1d, 0x1d }, | |
4902 { 0x00, 0x1e, 0x1e }, | |
4903 { 0x00, 0x1f, 0x1f }, | |
4904 { 0x00, 0x20, 0x20 }, | |
4905 { 0x00, 0x21, 0x21 }, | |
4906 { 0x00, 0x22, 0x22 }, | |
4907 { 0x00, 0x23, 0x23 }, | |
4908 { 0x00, 0x24, 0x24 }, | |
4909 { 0x00, 0x25, 0x25 }, | |
4910 { 0x00, 0x26, 0x26 }, | |
4911 { 0x00, 0x27, 0x27 }, | |
4912 { 0x00, 0x28, 0x28 }, | |
4913 { 0x00, 0x29, 0x29 }, | |
4914 { 0x00, 0x2a, 0x2a }, | |
4915 { 0x00, 0x2b, 0x2b }, | |
4916 { 0x00, 0x2c, 0x2c }, | |
4917 { 0x00, 0x2d, 0x2d }, | |
4918 { 0x00, 0x2e, 0x2e }, | |
4919 { 0x00, 0x2f, 0x2f }, | |
4920 { 0x00, 0x30, 0x30 }, | |
4921 { 0x00, 0x31, 0x31 }, | |
4922 { 0x00, 0x32, 0x32 }, | |
4923 { 0x00, 0x33, 0x33 }, | |
4924 { 0x00, 0x34, 0x34 }, | |
4925 { 0x00, 0x35, 0x35 }, | |
4926 { 0x00, 0x36, 0x36 }, | |
4927 { 0x00, 0x37, 0x37 }, | |
4928 { 0x00, 0x38, 0x38 }, | |
4929 { 0x00, 0x39, 0x39 }, | |
4930 { 0x00, 0x3a, 0x3a }, | |
4931 { 0x00, 0x3b, 0x3b }, | |
4932 { 0x00, 0x3c, 0x3c }, | |
4933 { 0x00, 0x3d, 0x3d }, | |
4934 { 0x00, 0x3e, 0x3e }, | |
4935 { 0x00, 0x3f, 0x3f }, | |
4936 { 0x00, 0x40, 0x40 }, | |
4937 { 0x01, 0x61, 0x41 }, | |
4938 { 0x01, 0x62, 0x42 }, | |
4939 { 0x01, 0x63, 0x43 }, | |
4940 { 0x01, 0x64, 0x44 }, | |
4941 { 0x01, 0x65, 0x45 }, | |
4942 { 0x01, 0x66, 0x46 }, | |
4943 { 0x01, 0x67, 0x47 }, | |
4944 { 0x01, 0x68, 0x48 }, | |
4945 { 0x01, 0x69, 0x49 }, | |
4946 { 0x01, 0x6a, 0x4a }, | |
4947 { 0x01, 0x6b, 0x4b }, | |
4948 { 0x01, 0x6c, 0x4c }, | |
4949 { 0x01, 0x6d, 0x4d }, | |
4950 { 0x01, 0x6e, 0x4e }, | |
4951 { 0x01, 0x6f, 0x4f }, | |
4952 { 0x01, 0x70, 0x50 }, | |
4953 { 0x01, 0x71, 0x51 }, | |
4954 { 0x01, 0x72, 0x52 }, | |
4955 { 0x01, 0x73, 0x53 }, | |
4956 { 0x01, 0x74, 0x54 }, | |
4957 { 0x01, 0x75, 0x55 }, | |
4958 { 0x01, 0x76, 0x56 }, | |
4959 { 0x01, 0x77, 0x57 }, | |
4960 { 0x01, 0x78, 0x58 }, | |
4961 { 0x01, 0x79, 0x59 }, | |
4962 { 0x01, 0x7a, 0x5a }, | |
4963 { 0x00, 0x5b, 0x5b }, | |
4964 { 0x00, 0x5c, 0x5c }, | |
4965 { 0x00, 0x5d, 0x5d }, | |
4966 { 0x00, 0x5e, 0x5e }, | |
4967 { 0x00, 0x5f, 0x5f }, | |
4968 { 0x00, 0x60, 0x60 }, | |
4969 { 0x00, 0x61, 0x41 }, | |
4970 { 0x00, 0x62, 0x42 }, | |
4971 { 0x00, 0x63, 0x43 }, | |
4972 { 0x00, 0x64, 0x44 }, | |
4973 { 0x00, 0x65, 0x45 }, | |
4974 { 0x00, 0x66, 0x46 }, | |
4975 { 0x00, 0x67, 0x47 }, | |
4976 { 0x00, 0x68, 0x48 }, | |
4977 { 0x00, 0x69, 0x49 }, | |
4978 { 0x00, 0x6a, 0x4a }, | |
4979 { 0x00, 0x6b, 0x4b }, | |
4980 { 0x00, 0x6c, 0x4c }, | |
4981 { 0x00, 0x6d, 0x4d }, | |
4982 { 0x00, 0x6e, 0x4e }, | |
4983 { 0x00, 0x6f, 0x4f }, | |
4984 { 0x00, 0x70, 0x50 }, | |
4985 { 0x00, 0x71, 0x51 }, | |
4986 { 0x00, 0x72, 0x52 }, | |
4987 { 0x00, 0x73, 0x53 }, | |
4988 { 0x00, 0x74, 0x54 }, | |
4989 { 0x00, 0x75, 0x55 }, | |
4990 { 0x00, 0x76, 0x56 }, | |
4991 { 0x00, 0x77, 0x57 }, | |
4992 { 0x00, 0x78, 0x58 }, | |
4993 { 0x00, 0x79, 0x59 }, | |
4994 { 0x00, 0x7a, 0x5a }, | |
4995 { 0x00, 0x7b, 0x7b }, | |
4996 { 0x00, 0x7c, 0x7c }, | |
4997 { 0x00, 0x7d, 0x7d }, | |
4998 { 0x00, 0x7e, 0x7e }, | |
4999 { 0x00, 0x7f, 0x7f }, | |
5000 { 0x00, 0x80, 0x80 }, | |
5001 { 0x00, 0x81, 0x81 }, | |
5002 { 0x00, 0x82, 0x82 }, | |
5003 { 0x00, 0x83, 0x83 }, | |
5004 { 0x00, 0x84, 0x84 }, | |
5005 { 0x00, 0x85, 0x85 }, | |
5006 { 0x00, 0x86, 0x86 }, | |
5007 { 0x00, 0x87, 0x87 }, | |
5008 { 0x00, 0x88, 0x88 }, | |
5009 { 0x00, 0x89, 0x89 }, | |
5010 { 0x00, 0x8a, 0x8a }, | |
5011 { 0x00, 0x8b, 0x8b }, | |
5012 { 0x00, 0x8c, 0x8c }, | |
5013 { 0x00, 0x8d, 0x8d }, | |
5014 { 0x00, 0x8e, 0x8e }, | |
5015 { 0x00, 0x8f, 0x8f }, | |
5016 { 0x00, 0x90, 0x90 }, | |
5017 { 0x00, 0x91, 0x91 }, | |
5018 { 0x00, 0x92, 0x92 }, | |
5019 { 0x00, 0x93, 0x93 }, | |
5020 { 0x00, 0x94, 0x94 }, | |
5021 { 0x00, 0x95, 0x95 }, | |
5022 { 0x00, 0x96, 0x96 }, | |
5023 { 0x00, 0x97, 0x97 }, | |
5024 { 0x00, 0x98, 0x98 }, | |
5025 { 0x00, 0x99, 0x99 }, | |
5026 { 0x00, 0x9a, 0x9a }, | |
5027 { 0x00, 0x9b, 0x9b }, | |
5028 { 0x00, 0x9c, 0x9c }, | |
5029 { 0x00, 0x9d, 0x9d }, | |
5030 { 0x00, 0x9e, 0x9e }, | |
5031 { 0x00, 0x9f, 0x9f }, | |
5032 { 0x00, 0xa0, 0xa0 }, | |
5033 { 0x00, 0xa1, 0xa1 }, | |
5034 { 0x00, 0xa2, 0xa2 }, | |
5035 { 0x00, 0xa3, 0xa3 }, | |
5036 { 0x00, 0xa4, 0xa4 }, | |
5037 { 0x00, 0xa5, 0xa5 }, | |
5038 { 0x00, 0xa6, 0xa6 }, | |
5039 { 0x00, 0xa7, 0xa7 }, | |
5040 { 0x00, 0xa8, 0xa8 }, | |
5041 { 0x00, 0xa9, 0xa9 }, | |
5042 { 0x00, 0xaa, 0xaa }, | |
5043 { 0x00, 0xab, 0xab }, | |
5044 { 0x00, 0xac, 0xac }, | |
5045 { 0x00, 0xad, 0xad }, | |
5046 { 0x00, 0xae, 0xae }, | |
5047 { 0x00, 0xaf, 0xaf }, | |
5048 { 0x00, 0xb0, 0xb0 }, | |
5049 { 0x00, 0xb1, 0xb1 }, | |
5050 { 0x00, 0xb2, 0xb2 }, | |
5051 { 0x00, 0xb3, 0xb3 }, | |
5052 { 0x00, 0xb4, 0xb4 }, | |
5053 { 0x00, 0xb5, 0xb5 }, | |
5054 { 0x00, 0xb6, 0xb6 }, | |
5055 { 0x00, 0xb7, 0xb7 }, | |
5056 { 0x00, 0xb8, 0xb8 }, | |
5057 { 0x00, 0xb9, 0xb9 }, | |
5058 { 0x00, 0xba, 0xba }, | |
5059 { 0x00, 0xbb, 0xbb }, | |
5060 { 0x00, 0xbc, 0xbc }, | |
5061 { 0x00, 0xbd, 0xbd }, | |
5062 { 0x00, 0xbe, 0xbe }, | |
5063 { 0x00, 0xbf, 0xbf }, | |
5064 { 0x00, 0xc0, 0xc0 }, | |
5065 { 0x00, 0xc1, 0xc1 }, | |
5066 { 0x00, 0xc2, 0xc2 }, | |
5067 { 0x00, 0xc3, 0xc3 }, | |
5068 { 0x00, 0xc4, 0xc4 }, | |
5069 { 0x00, 0xc5, 0xc5 }, | |
5070 { 0x00, 0xc6, 0xc6 }, | |
5071 { 0x00, 0xc7, 0xc7 }, | |
5072 { 0x00, 0xc8, 0xc8 }, | |
5073 { 0x00, 0xc9, 0xc9 }, | |
5074 { 0x00, 0xca, 0xca }, | |
5075 { 0x00, 0xcb, 0xcb }, | |
5076 { 0x00, 0xcc, 0xcc }, | |
5077 { 0x00, 0xcd, 0xcd }, | |
5078 { 0x00, 0xce, 0xce }, | |
5079 { 0x00, 0xcf, 0xcf }, | |
5080 { 0x00, 0xd0, 0xd0 }, | |
5081 { 0x00, 0xd1, 0xd1 }, | |
5082 { 0x00, 0xd2, 0xd2 }, | |
5083 { 0x00, 0xd3, 0xd3 }, | |
5084 { 0x00, 0xd4, 0xd4 }, | |
5085 { 0x00, 0xd5, 0xd5 }, | |
5086 { 0x00, 0xd6, 0xd6 }, | |
5087 { 0x00, 0xd7, 0xd7 }, | |
5088 { 0x00, 0xd8, 0xd8 }, | |
5089 { 0x00, 0xd9, 0xd9 }, | |
5090 { 0x00, 0xda, 0xda }, | |
5091 { 0x00, 0xdb, 0xdb }, | |
5092 { 0x00, 0xdc, 0xdc }, | |
5093 { 0x00, 0xdd, 0xdd }, | |
5094 { 0x00, 0xde, 0xde }, | |
5095 { 0x00, 0xdf, 0xdf }, | |
5096 { 0x00, 0xe0, 0xe0 }, | |
5097 { 0x00, 0xe1, 0xe1 }, | |
5098 { 0x00, 0xe2, 0xe2 }, | |
5099 { 0x00, 0xe3, 0xe3 }, | |
5100 { 0x00, 0xe4, 0xe4 }, | |
5101 { 0x00, 0xe5, 0xe5 }, | |
5102 { 0x00, 0xe6, 0xe6 }, | |
5103 { 0x00, 0xe7, 0xe7 }, | |
5104 { 0x00, 0xe8, 0xe8 }, | |
5105 { 0x00, 0xe9, 0xe9 }, | |
5106 { 0x00, 0xea, 0xea }, | |
5107 { 0x00, 0xeb, 0xeb }, | |
5108 { 0x00, 0xec, 0xec }, | |
5109 { 0x00, 0xed, 0xed }, | |
5110 { 0x00, 0xee, 0xee }, | |
5111 { 0x00, 0xef, 0xef }, | |
5112 { 0x00, 0xf0, 0xf0 }, | |
5113 { 0x00, 0xf1, 0xf1 }, | |
5114 { 0x00, 0xf2, 0xf2 }, | |
5115 { 0x00, 0xf3, 0xf3 }, | |
5116 { 0x00, 0xf4, 0xf4 }, | |
5117 { 0x00, 0xf5, 0xf5 }, | |
5118 { 0x00, 0xf6, 0xf6 }, | |
5119 { 0x00, 0xf7, 0xf7 }, | |
5120 { 0x00, 0xf8, 0xf8 }, | |
5121 { 0x00, 0xf9, 0xf9 }, | |
5122 { 0x00, 0xfa, 0xfa }, | |
5123 { 0x00, 0xfb, 0xfb }, | |
5124 { 0x00, 0xfc, 0xfc }, | |
5125 { 0x00, 0xfd, 0xfd }, | |
5126 { 0x00, 0xfe, 0xfe }, | |
5127 { 0x00, 0xff, 0xff } | |
5128 }; | |
5129 | |
5130 static struct cs_info tis620_tbl[] = { | |
5131 { 0x00, 0x00, 0x00 }, | |
5132 { 0x00, 0x01, 0x01 }, | |
5133 { 0x00, 0x02, 0x02 }, | |
5134 { 0x00, 0x03, 0x03 }, | |
5135 { 0x00, 0x04, 0x04 }, | |
5136 { 0x00, 0x05, 0x05 }, | |
5137 { 0x00, 0x06, 0x06 }, | |
5138 { 0x00, 0x07, 0x07 }, | |
5139 { 0x00, 0x08, 0x08 }, | |
5140 { 0x00, 0x09, 0x09 }, | |
5141 { 0x00, 0x0a, 0x0a }, | |
5142 { 0x00, 0x0b, 0x0b }, | |
5143 { 0x00, 0x0c, 0x0c }, | |
5144 { 0x00, 0x0d, 0x0d }, | |
5145 { 0x00, 0x0e, 0x0e }, | |
5146 { 0x00, 0x0f, 0x0f }, | |
5147 { 0x00, 0x10, 0x10 }, | |
5148 { 0x00, 0x11, 0x11 }, | |
5149 { 0x00, 0x12, 0x12 }, | |
5150 { 0x00, 0x13, 0x13 }, | |
5151 { 0x00, 0x14, 0x14 }, | |
5152 { 0x00, 0x15, 0x15 }, | |
5153 { 0x00, 0x16, 0x16 }, | |
5154 { 0x00, 0x17, 0x17 }, | |
5155 { 0x00, 0x18, 0x18 }, | |
5156 { 0x00, 0x19, 0x19 }, | |
5157 { 0x00, 0x1a, 0x1a }, | |
5158 { 0x00, 0x1b, 0x1b }, | |
5159 { 0x00, 0x1c, 0x1c }, | |
5160 { 0x00, 0x1d, 0x1d }, | |
5161 { 0x00, 0x1e, 0x1e }, | |
5162 { 0x00, 0x1f, 0x1f }, | |
5163 { 0x00, 0x20, 0x20 }, | |
5164 { 0x00, 0x21, 0x21 }, | |
5165 { 0x00, 0x22, 0x22 }, | |
5166 { 0x00, 0x23, 0x23 }, | |
5167 { 0x00, 0x24, 0x24 }, | |
5168 { 0x00, 0x25, 0x25 }, | |
5169 { 0x00, 0x26, 0x26 }, | |
5170 { 0x00, 0x27, 0x27 }, | |
5171 { 0x00, 0x28, 0x28 }, | |
5172 { 0x00, 0x29, 0x29 }, | |
5173 { 0x00, 0x2a, 0x2a }, | |
5174 { 0x00, 0x2b, 0x2b }, | |
5175 { 0x00, 0x2c, 0x2c }, | |
5176 { 0x00, 0x2d, 0x2d }, | |
5177 { 0x00, 0x2e, 0x2e }, | |
5178 { 0x00, 0x2f, 0x2f }, | |
5179 { 0x00, 0x30, 0x30 }, | |
5180 { 0x00, 0x31, 0x31 }, | |
5181 { 0x00, 0x32, 0x32 }, | |
5182 { 0x00, 0x33, 0x33 }, | |
5183 { 0x00, 0x34, 0x34 }, | |
5184 { 0x00, 0x35, 0x35 }, | |
5185 { 0x00, 0x36, 0x36 }, | |
5186 { 0x00, 0x37, 0x37 }, | |
5187 { 0x00, 0x38, 0x38 }, | |
5188 { 0x00, 0x39, 0x39 }, | |
5189 { 0x00, 0x3a, 0x3a }, | |
5190 { 0x00, 0x3b, 0x3b }, | |
5191 { 0x00, 0x3c, 0x3c }, | |
5192 { 0x00, 0x3d, 0x3d }, | |
5193 { 0x00, 0x3e, 0x3e }, | |
5194 { 0x00, 0x3f, 0x3f }, | |
5195 { 0x00, 0x40, 0x40 }, | |
5196 { 0x01, 0x61, 0x41 }, | |
5197 { 0x01, 0x62, 0x42 }, | |
5198 { 0x01, 0x63, 0x43 }, | |
5199 { 0x01, 0x64, 0x44 }, | |
5200 { 0x01, 0x65, 0x45 }, | |
5201 { 0x01, 0x66, 0x46 }, | |
5202 { 0x01, 0x67, 0x47 }, | |
5203 { 0x01, 0x68, 0x48 }, | |
5204 { 0x01, 0x69, 0x49 }, | |
5205 { 0x01, 0x6a, 0x4a }, | |
5206 { 0x01, 0x6b, 0x4b }, | |
5207 { 0x01, 0x6c, 0x4c }, | |
5208 { 0x01, 0x6d, 0x4d }, | |
5209 { 0x01, 0x6e, 0x4e }, | |
5210 { 0x01, 0x6f, 0x4f }, | |
5211 { 0x01, 0x70, 0x50 }, | |
5212 { 0x01, 0x71, 0x51 }, | |
5213 { 0x01, 0x72, 0x52 }, | |
5214 { 0x01, 0x73, 0x53 }, | |
5215 { 0x01, 0x74, 0x54 }, | |
5216 { 0x01, 0x75, 0x55 }, | |
5217 { 0x01, 0x76, 0x56 }, | |
5218 { 0x01, 0x77, 0x57 }, | |
5219 { 0x01, 0x78, 0x58 }, | |
5220 { 0x01, 0x79, 0x59 }, | |
5221 { 0x01, 0x7a, 0x5a }, | |
5222 { 0x00, 0x5b, 0x5b }, | |
5223 { 0x00, 0x5c, 0x5c }, | |
5224 { 0x00, 0x5d, 0x5d }, | |
5225 { 0x00, 0x5e, 0x5e }, | |
5226 { 0x00, 0x5f, 0x5f }, | |
5227 { 0x00, 0x60, 0x60 }, | |
5228 { 0x00, 0x61, 0x41 }, | |
5229 { 0x00, 0x62, 0x42 }, | |
5230 { 0x00, 0x63, 0x43 }, | |
5231 { 0x00, 0x64, 0x44 }, | |
5232 { 0x00, 0x65, 0x45 }, | |
5233 { 0x00, 0x66, 0x46 }, | |
5234 { 0x00, 0x67, 0x47 }, | |
5235 { 0x00, 0x68, 0x48 }, | |
5236 { 0x00, 0x69, 0x49 }, | |
5237 { 0x00, 0x6a, 0x4a }, | |
5238 { 0x00, 0x6b, 0x4b }, | |
5239 { 0x00, 0x6c, 0x4c }, | |
5240 { 0x00, 0x6d, 0x4d }, | |
5241 { 0x00, 0x6e, 0x4e }, | |
5242 { 0x00, 0x6f, 0x4f }, | |
5243 { 0x00, 0x70, 0x50 }, | |
5244 { 0x00, 0x71, 0x51 }, | |
5245 { 0x00, 0x72, 0x52 }, | |
5246 { 0x00, 0x73, 0x53 }, | |
5247 { 0x00, 0x74, 0x54 }, | |
5248 { 0x00, 0x75, 0x55 }, | |
5249 { 0x00, 0x76, 0x56 }, | |
5250 { 0x00, 0x77, 0x57 }, | |
5251 { 0x00, 0x78, 0x58 }, | |
5252 { 0x00, 0x79, 0x59 }, | |
5253 { 0x00, 0x7a, 0x5a }, | |
5254 { 0x00, 0x7b, 0x7b }, | |
5255 { 0x00, 0x7c, 0x7c }, | |
5256 { 0x00, 0x7d, 0x7d }, | |
5257 { 0x00, 0x7e, 0x7e }, | |
5258 { 0x00, 0x7f, 0x7f }, | |
5259 { 0x00, 0x80, 0x80 }, | |
5260 { 0x00, 0x81, 0x81 }, | |
5261 { 0x00, 0x82, 0x82 }, | |
5262 { 0x00, 0x83, 0x83 }, | |
5263 { 0x00, 0x84, 0x84 }, | |
5264 { 0x00, 0x85, 0x85 }, | |
5265 { 0x00, 0x86, 0x86 }, | |
5266 { 0x00, 0x87, 0x87 }, | |
5267 { 0x00, 0x88, 0x88 }, | |
5268 { 0x00, 0x89, 0x89 }, | |
5269 { 0x00, 0x8a, 0x8a }, | |
5270 { 0x00, 0x8b, 0x8b }, | |
5271 { 0x00, 0x8c, 0x8c }, | |
5272 { 0x00, 0x8d, 0x8d }, | |
5273 { 0x00, 0x8e, 0x8e }, | |
5274 { 0x00, 0x8f, 0x8f }, | |
5275 { 0x00, 0x90, 0x90 }, | |
5276 { 0x00, 0x91, 0x91 }, | |
5277 { 0x00, 0x92, 0x92 }, | |
5278 { 0x00, 0x93, 0x93 }, | |
5279 { 0x00, 0x94, 0x94 }, | |
5280 { 0x00, 0x95, 0x95 }, | |
5281 { 0x00, 0x96, 0x96 }, | |
5282 { 0x00, 0x97, 0x97 }, | |
5283 { 0x00, 0x98, 0x98 }, | |
5284 { 0x00, 0x99, 0x99 }, | |
5285 { 0x00, 0x9a, 0x9a }, | |
5286 { 0x00, 0x9b, 0x9b }, | |
5287 { 0x00, 0x9c, 0x9c }, | |
5288 { 0x00, 0x9d, 0x9d }, | |
5289 { 0x00, 0x9e, 0x9e }, | |
5290 { 0x00, 0x9f, 0x9f }, | |
5291 { 0x00, 0xa0, 0xa0 }, | |
5292 { 0x00, 0xa1, 0xa1 }, | |
5293 { 0x00, 0xa2, 0xa2 }, | |
5294 { 0x00, 0xa3, 0xa3 }, | |
5295 { 0x00, 0xa4, 0xa4 }, | |
5296 { 0x00, 0xa5, 0xa5 }, | |
5297 { 0x00, 0xa6, 0xa6 }, | |
5298 { 0x00, 0xa7, 0xa7 }, | |
5299 { 0x00, 0xa8, 0xa8 }, | |
5300 { 0x00, 0xa9, 0xa9 }, | |
5301 { 0x00, 0xaa, 0xaa }, | |
5302 { 0x00, 0xab, 0xab }, | |
5303 { 0x00, 0xac, 0xac }, | |
5304 { 0x00, 0xad, 0xad }, | |
5305 { 0x00, 0xae, 0xae }, | |
5306 { 0x00, 0xaf, 0xaf }, | |
5307 { 0x00, 0xb0, 0xb0 }, | |
5308 { 0x00, 0xb1, 0xb1 }, | |
5309 { 0x00, 0xb2, 0xb2 }, | |
5310 { 0x00, 0xb3, 0xb3 }, | |
5311 { 0x00, 0xb4, 0xb4 }, | |
5312 { 0x00, 0xb5, 0xb5 }, | |
5313 { 0x00, 0xb6, 0xb6 }, | |
5314 { 0x00, 0xb7, 0xb7 }, | |
5315 { 0x00, 0xb8, 0xb8 }, | |
5316 { 0x00, 0xb9, 0xb9 }, | |
5317 { 0x00, 0xba, 0xba }, | |
5318 { 0x00, 0xbb, 0xbb }, | |
5319 { 0x00, 0xbc, 0xbc }, | |
5320 { 0x00, 0xbd, 0xbd }, | |
5321 { 0x00, 0xbe, 0xbe }, | |
5322 { 0x00, 0xbf, 0xbf }, | |
5323 { 0x00, 0xc0, 0xc0 }, | |
5324 { 0x00, 0xc1, 0xc1 }, | |
5325 { 0x00, 0xc2, 0xc2 }, | |
5326 { 0x00, 0xc3, 0xc3 }, | |
5327 { 0x00, 0xc4, 0xc4 }, | |
5328 { 0x00, 0xc5, 0xc5 }, | |
5329 { 0x00, 0xc6, 0xc6 }, | |
5330 { 0x00, 0xc7, 0xc7 }, | |
5331 { 0x00, 0xc8, 0xc8 }, | |
5332 { 0x00, 0xc9, 0xc9 }, | |
5333 { 0x00, 0xca, 0xca }, | |
5334 { 0x00, 0xcb, 0xcb }, | |
5335 { 0x00, 0xcc, 0xcc }, | |
5336 { 0x00, 0xcd, 0xcd }, | |
5337 { 0x00, 0xce, 0xce }, | |
5338 { 0x00, 0xcf, 0xcf }, | |
5339 { 0x00, 0xd0, 0xd0 }, | |
5340 { 0x00, 0xd1, 0xd1 }, | |
5341 { 0x00, 0xd2, 0xd2 }, | |
5342 { 0x00, 0xd3, 0xd3 }, | |
5343 { 0x00, 0xd4, 0xd4 }, | |
5344 { 0x00, 0xd5, 0xd5 }, | |
5345 { 0x00, 0xd6, 0xd6 }, | |
5346 { 0x00, 0xd7, 0xd7 }, | |
5347 { 0x00, 0xd8, 0xd8 }, | |
5348 { 0x00, 0xd9, 0xd9 }, | |
5349 { 0x00, 0xda, 0xda }, | |
5350 { 0x00, 0xdb, 0xdb }, | |
5351 { 0x00, 0xdc, 0xdc }, | |
5352 { 0x00, 0xdd, 0xdd }, | |
5353 { 0x00, 0xde, 0xde }, | |
5354 { 0x00, 0xdf, 0xdf }, | |
5355 { 0x00, 0xe0, 0xe0 }, | |
5356 { 0x00, 0xe1, 0xe1 }, | |
5357 { 0x00, 0xe2, 0xe2 }, | |
5358 { 0x00, 0xe3, 0xe3 }, | |
5359 { 0x00, 0xe4, 0xe4 }, | |
5360 { 0x00, 0xe5, 0xe5 }, | |
5361 { 0x00, 0xe6, 0xe6 }, | |
5362 { 0x00, 0xe7, 0xe7 }, | |
5363 { 0x00, 0xe8, 0xe8 }, | |
5364 { 0x00, 0xe9, 0xe9 }, | |
5365 { 0x00, 0xea, 0xea }, | |
5366 { 0x00, 0xeb, 0xeb }, | |
5367 { 0x00, 0xec, 0xec }, | |
5368 { 0x00, 0xed, 0xed }, | |
5369 { 0x00, 0xee, 0xee }, | |
5370 { 0x00, 0xef, 0xef }, | |
5371 { 0x00, 0xf0, 0xf0 }, | |
5372 { 0x00, 0xf1, 0xf1 }, | |
5373 { 0x00, 0xf2, 0xf2 }, | |
5374 { 0x00, 0xf3, 0xf3 }, | |
5375 { 0x00, 0xf4, 0xf4 }, | |
5376 { 0x00, 0xf5, 0xf5 }, | |
5377 { 0x00, 0xf6, 0xf6 }, | |
5378 { 0x00, 0xf7, 0xf7 }, | |
5379 { 0x00, 0xf8, 0xf8 }, | |
5380 { 0x00, 0xf9, 0xf9 }, | |
5381 { 0x00, 0xfa, 0xfa }, | |
5382 { 0x00, 0xfb, 0xfb }, | |
5383 { 0x00, 0xfc, 0xfc }, | |
5384 { 0x00, 0xfd, 0xfd }, | |
5385 { 0x00, 0xfe, 0xfe }, | |
5386 { 0x00, 0xff, 0xff } | |
5387 }; | |
5388 | |
5389 struct enc_entry { | |
5390 const char * enc_name; | |
5391 struct cs_info * cs_table; | |
5392 }; | |
5393 | |
5394 static struct enc_entry encds[] = { | |
5395 {"iso88591",iso1_tbl}, //ISO-8859-1 | |
5396 {"iso88592",iso2_tbl}, //ISO-8859-2 | |
5397 {"iso88593",iso3_tbl}, //ISO-8859-3 | |
5398 {"iso88594",iso4_tbl}, //ISO-8859-4 | |
5399 {"iso88595",iso5_tbl}, //ISO-8859-5 | |
5400 {"iso88596",iso6_tbl}, //ISO-8859-6 | |
5401 {"iso88597",iso7_tbl}, //ISO-8859-7 | |
5402 {"iso88598",iso8_tbl}, //ISO-8859-8 | |
5403 {"iso88599",iso9_tbl}, //ISO-8859-9 | |
5404 {"iso885910",iso10_tbl}, //ISO-8859-10 | |
5405 {"tis620",tis620_tbl}, //TIS-620/ISO-8859-11 | |
5406 {"tis6202533",tis620_tbl}, //TIS-620/ISO-8859-11 | |
5407 {"iso885911",tis620_tbl}, //TIS-620/ISO-8859-11 | |
5408 {"iso885913", iso13_tbl}, //ISO-8859-13 | |
5409 {"iso885914", iso14_tbl}, //ISO-8859-14 | |
5410 {"iso885915", iso15_tbl}, //ISO-8859-15 | |
5411 {"koi8r",koi8r_tbl}, //KOI8-R | |
5412 {"koi8u",koi8u_tbl}, //KOI8-U | |
5413 {"cp1251",cp1251_tbl}, //CP-1251 | |
5414 {"microsoftcp1251",cp1251_tbl}, //microsoft-cp1251 | |
5415 {"xisciias", iscii_devanagari_tbl}, //x-iscii-as | |
5416 {"isciidevanagari", iscii_devanagari_tbl} //ISCII-DEVANAGARI | |
5417 }; | |
5418 | |
5419 /* map to lower case and remove non alphanumeric chars */ | |
5420 static void toAsciiLowerAndRemoveNonAlphanumeric( const char* pName, char* pBuf
) | |
5421 { | |
5422 while ( *pName ) | |
5423 { | |
5424 /* A-Z */ | |
5425 if ( (*pName >= 0x41) && (*pName <= 0x5A) ) | |
5426 { | |
5427 *pBuf = (*pName)+0x20; /* toAsciiLower */ | |
5428 pBuf++; | |
5429 } | |
5430 /* a-z, 0-9 */ | |
5431 else if ( ((*pName >= 0x61) && (*pName <= 0x7A)) || | |
5432 ((*pName >= 0x30) && (*pName <= 0x39)) ) | |
5433 { | |
5434 *pBuf = *pName; | |
5435 pBuf++; | |
5436 } | |
5437 | |
5438 pName++; | |
5439 } | |
5440 | |
5441 *pBuf = '\0'; | |
5442 } | |
5443 | |
5444 struct cs_info * get_current_cs(const char * es) { | |
5445 char *normalized_encoding = new char[strlen(es)+1]; | |
5446 toAsciiLowerAndRemoveNonAlphanumeric(es, normalized_encoding); | |
5447 | |
5448 struct cs_info * ccs = NULL; | |
5449 int n = sizeof(encds) / sizeof(encds[0]); | |
5450 for (int i = 0; i < n; i++) { | |
5451 if (strcmp(normalized_encoding,encds[i].enc_name) == 0) { | |
5452 ccs = encds[i].cs_table; | |
5453 break; | |
5454 } | |
5455 } | |
5456 | |
5457 delete[] normalized_encoding; | |
5458 | |
5459 if (!ccs) { | |
5460 HUNSPELL_WARNING(stderr, "error: unknown encoding %s: using %s as fallback\n
", es, encds[0].enc_name); | |
5461 ccs = encds[0].cs_table; | |
5462 } | |
5463 | |
5464 return ccs; | |
5465 } | |
5466 #else | |
5467 // XXX This function was rewritten for mozilla. Instead of storing the | |
5468 // conversion tables static in this file, create them when needed | |
5469 // with help the mozilla backend. | |
5470 struct cs_info * get_current_cs(const char * es) { | |
5471 struct cs_info *ccs = new cs_info[256]; | |
5472 // Initialze the array with dummy data so that we wouldn't need | |
5473 // to return null in case of failures. | |
5474 for (int i = 0; i <= 0xff; ++i) { | |
5475 ccs[i].ccase = false; | |
5476 ccs[i].clower = i; | |
5477 ccs[i].cupper = i; | |
5478 } | |
5479 | |
5480 | |
5481 nsCOMPtr<nsIUnicodeEncoder> encoder; | |
5482 nsCOMPtr<nsIUnicodeDecoder> decoder; | |
5483 | |
5484 nsresult rv; | |
5485 nsCOMPtr<nsICharsetConverterManager> ccm = do_GetService(kCharsetConverterMana
gerCID, &rv); | |
5486 if (NS_FAILED(rv)) | |
5487 return ccs; | |
5488 | |
5489 rv = ccm->GetUnicodeEncoder(es, getter_AddRefs(encoder)); | |
5490 if (NS_FAILED(rv)) | |
5491 return ccs; | |
5492 encoder->SetOutputErrorBehavior(encoder->kOnError_Signal, nsnull, '?'); | |
5493 rv = ccm->GetUnicodeDecoder(es, getter_AddRefs(decoder)); | |
5494 if (NS_FAILED(rv)) | |
5495 return ccs; | |
5496 decoder->SetInputErrorBehavior(decoder->kOnError_Signal); | |
5497 | |
5498 if (NS_FAILED(rv)) | |
5499 return ccs; | |
5500 | |
5501 for (unsigned int i = 0; i <= 0xff; ++i) { | |
5502 PRBool success = PR_FALSE; | |
5503 // We want to find the upper/lowercase equivalents of each byte | |
5504 // in this 1-byte character encoding. Call our encoding/decoding | |
5505 // APIs separately for each byte since they may reject some of the | |
5506 // bytes, and we want to handle errors separately for each byte. | |
5507 char lower, upper; | |
5508 do { | |
5509 if (i == 0) | |
5510 break; | |
5511 const char source = char(i); | |
5512 PRUnichar uni, uniCased; | |
5513 PRInt32 charLength = 1, uniLength = 1; | |
5514 | |
5515 rv = decoder->Convert(&source, &charLength, &uni, &uniLength); | |
5516 // Explicitly check NS_OK because we don't want to allow | |
5517 // NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT. | |
5518 if (rv != NS_OK || charLength != 1 || uniLength != 1) | |
5519 break; | |
5520 uniCased = ToLowerCase(uni); | |
5521 rv = encoder->Convert(&uniCased, &uniLength, &lower, &charLength); | |
5522 // Explicitly check NS_OK because we don't want to allow | |
5523 // NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT. | |
5524 if (rv != NS_OK || charLength != 1 || uniLength != 1) | |
5525 break; | |
5526 | |
5527 uniCased = ToUpperCase(uni); | |
5528 rv = encoder->Convert(&uniCased, &uniLength, &upper, &charLength); | |
5529 // Explicitly check NS_OK because we don't want to allow | |
5530 // NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT. | |
5531 if (rv != NS_OK || charLength != 1 || uniLength != 1) | |
5532 break; | |
5533 | |
5534 success = PR_TRUE; | |
5535 } while (0); | |
5536 | |
5537 if (success) { | |
5538 ccs[i].cupper = upper; | |
5539 ccs[i].clower = lower; | |
5540 } else { | |
5541 ccs[i].cupper = i; | |
5542 ccs[i].clower = i; | |
5543 } | |
5544 | |
5545 if (ccs[i].clower != (unsigned char)i) | |
5546 ccs[i].ccase = true; | |
5547 else | |
5548 ccs[i].ccase = false; | |
5549 } | |
5550 | |
5551 return ccs; | |
5552 } | |
5553 #endif | |
5554 | |
5555 // primitive isalpha() replacement for tokenization | |
5556 char * get_casechars(const char * enc) { | |
5557 struct cs_info * csconv = get_current_cs(enc); | |
5558 char expw[MAXLNLEN]; | |
5559 char * p = expw; | |
5560 for (int i = 0; i <= 255; i++) { | |
5561 if ((csconv[i].cupper != csconv[i].clower)) { | |
5562 *p = (char) i; | |
5563 p++; | |
5564 } | |
5565 } | |
5566 *p = '\0'; | |
5567 #ifdef MOZILLA_CLIENT | |
5568 delete [] csconv; | |
5569 #endif | |
5570 return mystrdup(expw); | |
5571 } | |
5572 | |
5573 // language to encoding default map | |
5574 | |
5575 struct lang_map { | |
5576 const char * lang; | |
5577 int num; | |
5578 }; | |
5579 | |
5580 static struct lang_map lang2enc[] = { | |
5581 {"ar", LANG_ar}, | |
5582 {"az", LANG_az}, | |
5583 {"az_AZ", LANG_az}, // for back-compatibility | |
5584 {"bg", LANG_bg}, | |
5585 {"ca", LANG_ca}, | |
5586 {"cs", LANG_cs}, | |
5587 {"da", LANG_da}, | |
5588 {"de", LANG_de}, | |
5589 {"el", LANG_el}, | |
5590 {"en", LANG_en}, | |
5591 {"es", LANG_es}, | |
5592 {"eu", LANG_eu}, | |
5593 {"gl", LANG_gl}, | |
5594 {"fr", LANG_fr}, | |
5595 {"hr", LANG_hr}, | |
5596 {"hu", LANG_hu}, | |
5597 {"hu_HU", LANG_hu}, // for back-compatibility | |
5598 {"it", LANG_it}, | |
5599 {"la", LANG_la}, | |
5600 {"lv", LANG_lv}, | |
5601 {"nl", LANG_nl}, | |
5602 {"pl", LANG_pl}, | |
5603 {"pt", LANG_pt}, | |
5604 {"sv", LANG_sv}, | |
5605 {"tr", LANG_tr}, | |
5606 {"tr_TR", LANG_tr}, // for back-compatibility | |
5607 {"ru", LANG_ru}, | |
5608 {"uk", LANG_uk} | |
5609 }; | |
5610 | |
5611 | |
5612 int get_lang_num(const char * lang) { | |
5613 int n = sizeof(lang2enc) / sizeof(lang2enc[0]); | |
5614 for (int i = 0; i < n; i++) { | |
5615 if (strcmp(lang, lang2enc[i].lang) == 0) { | |
5616 return lang2enc[i].num; | |
5617 } | |
5618 } | |
5619 return LANG_xx; | |
5620 } | |
5621 | |
5622 #ifndef OPENOFFICEORG | |
5623 #ifndef MOZILLA_CLIENT | |
5624 int initialize_utf_tbl() { | |
5625 utf_tbl_count++; | |
5626 if (utf_tbl) return 0; | |
5627 utf_tbl = (unicode_info2 *) malloc(CONTSIZE * sizeof(unicode_info2)); | |
5628 if (utf_tbl) { | |
5629 size_t j; | |
5630 for (j = 0; j < CONTSIZE; j++) { | |
5631 utf_tbl[j].cletter = 0; | |
5632 utf_tbl[j].clower = (unsigned short) j; | |
5633 utf_tbl[j].cupper = (unsigned short) j; | |
5634 } | |
5635 for (j = 0; j < UTF_LST_LEN; j++) { | |
5636 utf_tbl[utf_lst[j].c].cletter = 1; | |
5637 utf_tbl[utf_lst[j].c].clower = utf_lst[j].clower; | |
5638 utf_tbl[utf_lst[j].c].cupper = utf_lst[j].cupper; | |
5639 } | |
5640 } else return 1; | |
5641 return 0; | |
5642 } | |
5643 #endif | |
5644 #endif | |
5645 | |
5646 void free_utf_tbl() { | |
5647 if (utf_tbl_count > 0) utf_tbl_count--; | |
5648 if (utf_tbl && (utf_tbl_count == 0)) { | |
5649 free(utf_tbl); | |
5650 utf_tbl = NULL; | |
5651 } | |
5652 } | |
5653 | |
5654 unsigned short unicodetoupper(unsigned short c, int langnum) | |
5655 { | |
5656 // In Azeri and Turkish, I and i dictinct letters: | |
5657 // There are a dotless lower case i pair of upper `I', | |
5658 // and an upper I with dot pair of lower `i'. | |
5659 if (c == 0x0069 && ((langnum == LANG_az) || (langnum == LANG_tr))) | |
5660 return 0x0130; | |
5661 #ifdef OPENOFFICEORG | |
5662 return static_cast<unsigned short>(u_toupper(c)); | |
5663 #else | |
5664 #ifdef MOZILLA_CLIENT | |
5665 return ToUpperCase((PRUnichar) c); | |
5666 #else | |
5667 return (utf_tbl) ? utf_tbl[c].cupper : c; | |
5668 #endif | |
5669 #endif | |
5670 } | |
5671 | |
5672 unsigned short unicodetolower(unsigned short c, int langnum) | |
5673 { | |
5674 // In Azeri and Turkish, I and i dictinct letters: | |
5675 // There are a dotless lower case i pair of upper `I', | |
5676 // and an upper I with dot pair of lower `i'. | |
5677 if (c == 0x0049 && ((langnum == LANG_az) || (langnum == LANG_tr))) | |
5678 return 0x0131; | |
5679 #ifdef OPENOFFICEORG | |
5680 return static_cast<unsigned short>(u_tolower(c)); | |
5681 #else | |
5682 #ifdef MOZILLA_CLIENT | |
5683 return ToLowerCase((PRUnichar) c); | |
5684 #else | |
5685 return (utf_tbl) ? utf_tbl[c].clower : c; | |
5686 #endif | |
5687 #endif | |
5688 } | |
5689 | |
5690 int unicodeisalpha(unsigned short c) | |
5691 { | |
5692 #ifdef OPENOFFICEORG | |
5693 return u_isalpha(c); | |
5694 #else | |
5695 return (utf_tbl) ? utf_tbl[c].cletter : 0; | |
5696 #endif | |
5697 } | |
5698 | |
5699 /* get type of capitalization */ | |
5700 int get_captype(char * word, int nl, cs_info * csconv) { | |
5701 // now determine the capitalization type of the first nl letters | |
5702 int ncap = 0; | |
5703 int nneutral = 0; | |
5704 int firstcap = 0; | |
5705 if (csconv == NULL) return NOCAP; | |
5706 for (char * q = word; *q != '\0'; q++) { | |
5707 if (csconv[*((unsigned char *)q)].ccase) ncap++; | |
5708 if (csconv[*((unsigned char *)q)].cupper == csconv[*((unsigned char *)q)].
clower) nneutral++; | |
5709 } | |
5710 if (ncap) { | |
5711 firstcap = csconv[*((unsigned char *) word)].ccase; | |
5712 } | |
5713 | |
5714 // now finally set the captype | |
5715 if (ncap == 0) { | |
5716 return NOCAP; | |
5717 } else if ((ncap == 1) && firstcap) { | |
5718 return INITCAP; | |
5719 } else if ((ncap == nl) || ((ncap + nneutral) == nl)) { | |
5720 return ALLCAP; | |
5721 } else if ((ncap > 1) && firstcap) { | |
5722 return HUHINITCAP; | |
5723 } | |
5724 return HUHCAP; | |
5725 } | |
5726 | |
5727 int get_captype_utf8(w_char * word, int nl, int langnum) { | |
5728 // now determine the capitalization type of the first nl letters | |
5729 int ncap = 0; | |
5730 int nneutral = 0; | |
5731 int firstcap = 0; | |
5732 unsigned short idx; | |
5733 // don't check too long words | |
5734 if (nl >= MAXWORDLEN) return 0; | |
5735 // big Unicode character (non BMP area) | |
5736 if (nl == -1) return NOCAP; | |
5737 for (int i = 0; i < nl; i++) { | |
5738 idx = (word[i].h << 8) + word[i].l; | |
5739 if (idx != unicodetolower(idx, langnum)) ncap++; | |
5740 if (unicodetoupper(idx, langnum) == unicodetolower(idx, langnum)) nneutral+
+; | |
5741 } | |
5742 if (ncap) { | |
5743 idx = (word[0].h << 8) + word[0].l; | |
5744 firstcap = (idx != unicodetolower(idx, langnum)); | |
5745 } | |
5746 | |
5747 // now finally set the captype | |
5748 if (ncap == 0) { | |
5749 return NOCAP; | |
5750 } else if ((ncap == 1) && firstcap) { | |
5751 return INITCAP; | |
5752 } else if ((ncap == nl) || ((ncap + nneutral) == nl)) { | |
5753 return ALLCAP; | |
5754 } else if ((ncap > 1) && firstcap) { | |
5755 return HUHINITCAP; | |
5756 } | |
5757 return HUHCAP; | |
5758 } | |
5759 | |
5760 | |
5761 // strip all ignored characters in the string | |
5762 void remove_ignored_chars_utf(char * word, unsigned short ignored_chars[], int i
gnored_len) | |
5763 { | |
5764 w_char w[MAXWORDLEN]; | |
5765 w_char w2[MAXWORDLEN]; | |
5766 int i; | |
5767 int j; | |
5768 int len = u8_u16(w, MAXWORDLEN, word); | |
5769 for (i = 0, j = 0; i < len; i++) { | |
5770 if (!flag_bsearch(ignored_chars, ((unsigned short *) w)[i], ignored_len))
{ | |
5771 w2[j] = w[i]; | |
5772 j++; | |
5773 } | |
5774 } | |
5775 if (j < i) u16_u8(word, MAXWORDUTF8LEN, w2, j); | |
5776 } | |
5777 | |
5778 // strip all ignored characters in the string | |
5779 void remove_ignored_chars(char * word, char * ignored_chars) | |
5780 { | |
5781 for (char * p = word; *p != '\0'; p++) { | |
5782 if (!strchr(ignored_chars, *p)) { | |
5783 *word = *p; | |
5784 word++; | |
5785 } | |
5786 } | |
5787 *word = '\0'; | |
5788 } | |
5789 | |
5790 int parse_string(char * line, char ** out, int ln) | |
5791 { | |
5792 char * tp = line; | |
5793 char * piece; | |
5794 int i = 0; | |
5795 int np = 0; | |
5796 if (*out) { | |
5797 HUNSPELL_WARNING(stderr, "error: line %d: multiple definitions\n", ln); | |
5798 return 1; | |
5799 } | |
5800 piece = mystrsep(&tp, 0); | |
5801 while (piece) { | |
5802 if (*piece != '\0') { | |
5803 switch(i) { | |
5804 case 0: { np++; break; } | |
5805 case 1: { | |
5806 *out = mystrdup(piece); | |
5807 if (!*out) return 1; | |
5808 np++; | |
5809 break; | |
5810 } | |
5811 default: break; | |
5812 } | |
5813 i++; | |
5814 } | |
5815 // free(piece); | |
5816 piece = mystrsep(&tp, 0); | |
5817 } | |
5818 if (np != 2) { | |
5819 HUNSPELL_WARNING(stderr, "error: line %d: missing data\n", ln); | |
5820 return 1; | |
5821 } | |
5822 return 0; | |
5823 } | |
5824 | |
5825 int parse_array(char * line, char ** out, unsigned short ** out_utf16, | |
5826 int * out_utf16_len, int utf8, int ln) { | |
5827 if (parse_string(line, out, ln)) return 1; | |
5828 if (utf8) { | |
5829 w_char w[MAXWORDLEN]; | |
5830 int n = u8_u16(w, MAXWORDLEN, *out); | |
5831 if (n > 0) { | |
5832 flag_qsort((unsigned short *) w, 0, n); | |
5833 *out_utf16 = (unsigned short *) malloc(n * sizeof(unsigned short)); | |
5834 if (!*out_utf16) return 1; | |
5835 memcpy(*out_utf16, w, n * sizeof(unsigned short)); | |
5836 } | |
5837 *out_utf16_len = n; | |
5838 } | |
5839 return 0; | |
5840 } | |
OLD | NEW |