diff options
| -rw-r--r-- | ChangeLog | 18 | ||||
| -rw-r--r-- | iconvdata/ibm1129.h | 18 | ||||
| -rw-r--r-- | iconvdata/ibm937.c | 94 | ||||
| -rw-r--r-- | iconvdata/ibm937.h | 19330 | ||||
| -rw-r--r-- | posix/regex.c | 7 | ||||
| -rw-r--r-- | sysdeps/ieee754/dbl-64/e_remainder.c | 17 | ||||
| -rw-r--r-- | timezone/zic.c | 13 |
7 files changed, 7595 insertions, 11902 deletions
@@ -1,5 +1,23 @@ 2001-12-05 Ulrich Drepper <drepper@redhat.com> + * iconvdata/ibm1129.h: Remove duplicate mappings. + * iconvdata/ibm937.c: Handle overflow errors. Handle new tables. + * iconvdata/ibm937.h: Reorganize table to safe a lot of space. + Patch by Masahide Washizawa <WASHI@jp.ibm.com>. + + * timezone/zic.c: Fix handling of turnaround times. + Patch by Arthur David Olson <olsona@dc37a.nci.nih.gov>. + +2001-12-02 Moshe Olshansky <OLSHANSK@il.ibm.com> + + * sysdeps/ieee754/dbl-64/e_remainder.c (__ieee754_remainder): Fix + overflow problem. + +2001-12-05 Ulrich Drepper <drepper@redhat.com> + + * posix/regex.c: For use outside glibc defined bounded pointer + macros here. Patch by Jim Meyering <jim@meyering.net>. + * iconvdata/Makefile (modules): Add TCVN5712-1. * iconvdata/TESTS: Add TCVN5712-1. * iconvdata/gconv-modules: Likewise. diff --git a/iconvdata/ibm1129.h b/iconvdata/ibm1129.h index 3e4734f486..4d340dfa01 100644 --- a/iconvdata/ibm1129.h +++ b/iconvdata/ibm1129.h @@ -1,5 +1,5 @@ /* Conversion from and to IBM1129. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa <washi@jp.ibm.com>, 2000. @@ -83,7 +83,7 @@ static const uint32_t to_ucs4[256] = [0xf0] = 0x0111, [0xf1] = 0x00f1, [0xf2] = 0x0323, [0xf3] = 0x00f3, [0xf4] = 0x00f4, [0xf5] = 0x01a1, [0xf6] = 0x00f6, [0xf7] = 0x00f7, [0xf8] = 0x00f8, [0xf9] = 0x00f9, [0xfa] = 0x00fa, [0xfb] = 0x00fb, - [0xfc] = 0x00fc, [0xfd] = 0x01b0, [0xfe] = 0x20ab, [0xff] = 0x00ff, + [0xfc] = 0x00fc, [0xfd] = 0x01b0, [0xfe] = 0x20ab, [0xff] = 0x00ff }; static const struct gap from_idx[] = @@ -97,7 +97,6 @@ static const struct gap from_idx[] = { start: 0x0300, end: 0x0309, idx: -499 }, { start: 0x0323, end: 0x0323, idx: -524 }, { start: 0x20ab, end: 0x20ab, idx: -8083 }, - { start: 0xff01, end: 0xff5e, idx: -65000 }, { start: 0xffff, end: 0xffff, idx: 0 } }; @@ -138,16 +137,5 @@ static const char from_ucs4[] = '\x00', '\x00', '\xc3', '\xe3', '\xd0', '\xf0', '\xb8', '\xa8', '\xb4', '\xd5', '\xf5', '\xdd', '\xfd', '\xcc', '\xec', '\x00', '\xde', '\x00', '\x00', '\x00', '\x00', '\x00', '\xd2', '\xf2', - '\xfe', '\x21', '\x22', '\x23', '\x24', '\x25', '\x26', '\x27', - '\x28', '\x29', '\x2a', '\x2b', '\x2c', '\x2d', '\x2e', '\x2f', - '\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37', - '\x38', '\x39', '\x3a', '\x3b', '\x3c', '\x3d', '\x3e', '\x3f', - '\x40', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47', - '\x48', '\x49', '\x4a', '\x4b', '\x4c', '\x4d', '\x4e', '\x4f', - '\x50', '\x51', '\x52', '\x53', '\x54', '\x55', '\x56', '\x57', - '\x58', '\x59', '\x5a', '\x5b', '\x5c', '\x5d', '\x5e', '\x5f', - '\x60', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67', - '\x68', '\x69', '\x6a', '\x6b', '\x6c', '\x6d', '\x6e', '\x6f', - '\x70', '\x71', '\x72', '\x73', '\x74', '\x75', '\x76', '\x77', - '\x78', '\x79', '\x7a', '\x7b', '\x7c', '\x7d', '\x7e', + '\xfe' }; diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c index 39468aa0dd..be1d4b92d5 100644 --- a/iconvdata/ibm937.c +++ b/iconvdata/ibm937.c @@ -1,4 +1,4 @@ -/* Conversion to and from IBM937. +/* Conversion from and to IBM937. Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 2000. @@ -95,6 +95,7 @@ enum #define BODY \ { \ uint32_t ch = *inptr; \ + uint32_t res; \ \ if (__builtin_expect (ch, 0) == SO) \ { \ @@ -123,9 +124,9 @@ enum \ if (curcs == sb) \ { \ - /* Use the UCS4 table for single byte. */ \ - ch = __ibm937sb_to_ucs4[ch]; \ - if (__builtin_expect (ch, L'\1') == L'\0' && *inptr != '\0') \ + /* Use the IBM937 table for single byte. */ \ + res = __ibm937sb_to_ucs4[ch]; \ + if (__builtin_expect (res, L'\1') == L'\0' && ch != '\0') \ { \ /* This is an illegal character. */ \ if (! ignore_errors_p ()) \ @@ -137,19 +138,34 @@ enum } \ else \ { \ - put32 (outptr, ch); \ + put32 (outptr, res); \ outptr += 4; \ } \ ++inptr; \ } \ else \ { \ - /* Use the IBM937 table for double byte. */ \ + const struct gap *rp2 = __ibm937db_to_ucs4_idx; \ \ assert (curcs == db); \ \ - ch = ibm937db_to_ucs4(inptr[0], inptr[1]); \ - if (__builtin_expect (ch, L'\1') == L'\0' && *inptr != '\0') \ + /* Use the IBM937 table for double byte. */ \ + if (__builtin_expect (inptr + 1 >= inend, 0)) \ + { \ + /* The second character is not available. \ + Store the intermediate result. */ \ + result = __GCONV_INCOMPLETE_INPUT; \ + break; \ + } \ + \ + ch = (ch * 0x100) + inptr[1]; \ + while (ch > rp2->end) \ + ++rp2; \ + \ + if (__builtin_expect (rp2 == NULL, 0) \ + || __builtin_expect (ch < rp2->start, 0) \ + || (res = __ibm937db_to_ucs4[ch + rp2->idx], \ + __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ { \ /* This is an illegal character. */ \ if (! ignore_errors_p ()) \ @@ -161,7 +177,7 @@ enum } \ else \ { \ - put32 (outptr, ch); \ + put32 (outptr, res); \ outptr += 4; \ } \ inptr += 2; \ @@ -181,22 +197,40 @@ enum #define BODY \ { \ uint32_t ch = get32 (inptr); \ + const struct gap *rp1 = __ucs4_to_ibm937sb_idx; \ + const struct gap *rp2 = __ucs4_to_ibm937db_idx; \ const char *cp; \ \ - /* Use the UCS4 table for single byte. */ \ - if (__builtin_expect (ch >= (sizeof (__ucs4_to_ibm937sb) \ - / sizeof (__ucs4_to_ibm937sb[0])), 0) \ - || (cp = __ucs4_to_ibm937sb[ch], \ - __builtin_expect (cp[0], '\1') == '\0' && ch != 0)) \ + if (__builtin_expect (ch >= 0xffff, 0)) \ { \ - /* Use the UCS4 table for double byte. */ \ - cp = __ucs4_to_ibm937db[ch]; \ - if (__builtin_expect (ch >= (sizeof (__ucs4_to_ibm937db) \ - / sizeof (__ucs4_to_ibm937db[0])), 0) \ - || __builtin_expect (cp[0], '\1') == '\0') \ + UNICODE_TAG_HANDLER (ch, 4); \ + \ + if (! ignore_errors_p ()) \ { \ - UNICODE_TAG_HANDLER (ch, 4); \ + result = __GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + ++*irreversible; \ + inptr += 4; \ + continue; \ + } \ \ + while (ch > rp1->end) \ + ++rp1; \ + \ + /* Use the UCS4 table for single byte. */ \ + if (__builtin_expect (ch < rp1->start, 0) \ + || (cp = __ucs4_to_ibm937sb[ch + rp1->idx], \ + __builtin_expect (cp[0], L'\1') == L'\0' && ch != '\0')) \ + { \ + /* Use the UCS4 table for double byte. */ \ + while (ch > rp2->end) \ + ++rp2; \ + \ + if (__builtin_expect (ch < rp2->start, 0) \ + || (cp = __ucs4_to_ibm937db[ch + rp2->idx], \ + __builtin_expect (cp[0], L'\1')==L'\0' && ch != '\0')) \ + { \ /* This is an illegal character. */ \ if (! ignore_errors_p ()) \ { \ @@ -209,10 +243,16 @@ enum { \ if (curcs == sb) \ { \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ + { \ + result = __GCONV_FULL_OUTPUT; \ + break; \ + } \ *outptr++ = SO; \ curcs = db; \ } \ - if (__builtin_expect (outptr + 1 >= outend, 0)) \ + \ + if (__builtin_expect (outptr + 2 > outend, 0)) \ { \ result = __GCONV_FULL_OUTPUT; \ break; \ @@ -225,15 +265,21 @@ enum { \ if (curcs == db) \ { \ - *outptr++ = SI; \ - curcs = sb; \ - if (__builtin_expect (outptr == outend, 0)) \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ { \ result = __GCONV_FULL_OUTPUT; \ break; \ } \ + *outptr++ = SI; \ + } \ + \ + if (__builtin_expect (outptr + 1 > outend, 0)) \ + { \ + result = __GCONV_FULL_OUTPUT; \ + break; \ } \ *outptr++ = cp[0]; \ + curcs = sb; \ } \ \ /* Now that we wrote the output increment the input pointer. */ \ diff --git a/iconvdata/ibm937.h b/iconvdata/ibm937.h index 02d94336db..19af276670 100644 --- a/iconvdata/ibm937.h +++ b/iconvdata/ibm937.h @@ -1,7 +1,7 @@ -/* Tables for conversion to and from IBM937. +/* Tables for conversion from and to IBM937. Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 2000. + Contributed by Masahide Washizawa <washi@jp.ibm.com>, 2000. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -24,11870 +24,7496 @@ #include <gconv.h> #include <stdint.h> -static const uint16_t __ibm937sb_to_ucs4[] = +struct gap { - [0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003, - [0x04] = 0x009c, [0x05] = 0x0009, [0x06] = 0x0086, [0x07] = 0x007f, - [0x08] = 0x0097, [0x09] = 0x008d, [0x0a] = 0x008e, [0x0b] = 0x000b, - [0x0c] = 0x000c, [0x0d] = 0x000d, [0x0e] = 0x000e, [0x0f] = 0x000f, - [0x10] = 0x0010, [0x11] = 0x0011, [0x12] = 0x0012, [0x13] = 0x0013, - [0x14] = 0x009d, [0x15] = 0x0085, [0x16] = 0x0008, [0x17] = 0x0087, - [0x18] = 0x0018, [0x19] = 0x0019, [0x1a] = 0x0092, [0x1b] = 0x008f, - [0x1c] = 0x001c, [0x1d] = 0x001d, [0x1e] = 0x001e, [0x1f] = 0x001f, - [0x20] = 0x0080, [0x21] = 0x0081, [0x22] = 0x0082, [0x23] = 0x0083, - [0x24] = 0x0084, [0x25] = 0x000a, [0x26] = 0x0017, [0x27] = 0x001b, - [0x28] = 0x0088, [0x29] = 0x0089, [0x2a] = 0x008a, [0x2b] = 0x008b, - [0x2c] = 0x008c, [0x2d] = 0x0005, [0x2e] = 0x0006, [0x2f] = 0x0007, - [0x30] = 0x0090, [0x31] = 0x0091, [0x32] = 0x0016, [0x33] = 0x0093, - [0x34] = 0x0094, [0x35] = 0x0095, [0x36] = 0x0096, [0x37] = 0x0004, - [0x38] = 0x0098, [0x39] = 0x0099, [0x3a] = 0x009a, [0x3b] = 0x009b, - [0x3c] = 0x0014, [0x3d] = 0x0015, [0x3e] = 0x009e, [0x3f] = 0x001a, - [0x40] = 0x0020, [0x4a] = 0x00a2, [0x4b] = 0x002e, [0x4c] = 0x003c, - [0x4d] = 0x0028, [0x4e] = 0x002b, [0x4f] = 0x007c, [0x50] = 0x0026, - [0x5a] = 0x0021, [0x5b] = 0x0024, [0x5c] = 0x002a, [0x5d] = 0x0029, - [0x5e] = 0x003b, [0x5f] = 0x00ac, [0x60] = 0x002d, [0x61] = 0x002f, - [0x6a] = 0x00a6, [0x6b] = 0x002c, [0x6c] = 0x0025, [0x6d] = 0x005f, - [0x6e] = 0x003e, [0x6f] = 0x003f, [0x79] = 0x0060, [0x7a] = 0x003a, - [0x7b] = 0x0023, [0x7c] = 0x0040, [0x7d] = 0x0027, [0x7e] = 0x003d, - [0x7f] = 0x0022, [0x81] = 0x0061, [0x82] = 0x0062, [0x83] = 0x0063, - [0x84] = 0x0064, [0x85] = 0x0065, [0x86] = 0x0066, [0x87] = 0x0067, - [0x88] = 0x0068, [0x89] = 0x0069, [0x91] = 0x006a, [0x92] = 0x006b, - [0x93] = 0x006c, [0x94] = 0x006d, [0x95] = 0x006e, [0x96] = 0x006f, - [0x97] = 0x0070, [0x98] = 0x0071, [0x99] = 0x0072, [0xa1] = 0x007e, - [0xa2] = 0x0073, [0xa3] = 0x0074, [0xa4] = 0x0075, [0xa5] = 0x0076, - [0xa6] = 0x0077, [0xa7] = 0x0078, [0xa8] = 0x0079, [0xa9] = 0x007a, - [0xb0] = 0x005e, [0xba] = 0x005b, [0xbb] = 0x005d, [0xc0] = 0x007b, - [0xc1] = 0x0041, [0xc2] = 0x0042, [0xc3] = 0x0043, [0xc4] = 0x0044, - [0xc5] = 0x0045, [0xc6] = 0x0046, [0xc7] = 0x0047, [0xc8] = 0x0048, - [0xc9] = 0x0049, [0xd0] = 0x007d, [0xd1] = 0x004a, [0xd2] = 0x004b, - [0xd3] = 0x004c, [0xd4] = 0x004d, [0xd5] = 0x004e, [0xd6] = 0x004f, - [0xd7] = 0x0050, [0xd8] = 0x0051, [0xd9] = 0x0052, [0xe0] = 0x005c, - [0xe2] = 0x0053, [0xe3] = 0x0054, [0xe4] = 0x0055, [0xe5] = 0x0056, - [0xe6] = 0x0057, [0xe7] = 0x0058, [0xe8] = 0x0059, [0xe9] = 0x005a, - [0xf0] = 0x0030, [0xf1] = 0x0031, [0xf2] = 0x0032, [0xf3] = 0x0033, - [0xf4] = 0x0034, [0xf5] = 0x0035, [0xf6] = 0x0036, [0xf7] = 0x0037, - [0xf8] = 0x0038, [0xf9] = 0x0039, [0xff] = 0x009f + uint16_t start; + uint16_t end; + int32_t idx; +}; + + +static const uint16_t __ibm937sb_to_ucs4[256] = +{ + /* 0x00 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + /* 0x08 */ 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + /* 0x18 */ 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + /* 0x28 */ 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + /* 0x38 */ 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x48 */ 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x58 */ 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x68 */ 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x78 */ 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + /* 0x88 */ 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + /* 0x98 */ 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xa0 */ 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + /* 0xa8 */ 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xb0 */ 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xb8 */ 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xe0 */ 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x009f, +}; + +static const struct gap __ibm937db_to_ucs4_idx[] = +{ + { start: 0x4040, end: 0x4040, idx: -16448 }, + { start: 0x4141, end: 0x41fa, idx: -16704 }, + { start: 0x424a, end: 0x42f9, idx: -16783 }, + { start: 0x4341, end: 0x43f2, idx: -16854 }, + { start: 0x4442, end: 0x44f3, idx: -16933 }, + { start: 0x4541, end: 0x457a, idx: -17010 }, + { start: 0x4641, end: 0x46f9, idx: -17208 }, + { start: 0x4741, end: 0x47a1, idx: -17279 }, + { start: 0x4841, end: 0x48fd, idx: -17438 }, + { start: 0x4941, end: 0x4959, idx: -17505 }, + { start: 0x4c41, end: 0x4cfd, idx: -18248 }, + { start: 0x4d41, end: 0x4dfd, idx: -18315 }, + { start: 0x4e41, end: 0x4efd, idx: -18382 }, + { start: 0x4f41, end: 0x4ffd, idx: -18449 }, + { start: 0x5041, end: 0x50fd, idx: -18516 }, + { start: 0x5141, end: 0x51fd, idx: -18583 }, + { start: 0x5241, end: 0x52fd, idx: -18650 }, + { start: 0x5341, end: 0x53fd, idx: -18717 }, + { start: 0x5441, end: 0x54fd, idx: -18784 }, + { start: 0x5541, end: 0x55fd, idx: -18851 }, + { start: 0x5641, end: 0x56fd, idx: -18918 }, + { start: 0x5741, end: 0x57fd, idx: -18985 }, + { start: 0x5841, end: 0x58fd, idx: -19052 }, + { start: 0x5941, end: 0x59fd, idx: -19119 }, + { start: 0x5a41, end: 0x5afd, idx: -19186 }, + { start: 0x5b41, end: 0x5bfd, idx: -19253 }, + { start: 0x5c41, end: 0x5cfd, idx: -19320 }, + { start: 0x5d41, end: 0x5dfd, idx: -19387 }, + { start: 0x5e41, end: 0x5efd, idx: -19454 }, + { start: 0x5f41, end: 0x5ffd, idx: -19521 }, + { start: 0x6041, end: 0x60fd, idx: -19588 }, + { start: 0x6141, end: 0x61fd, idx: -19655 }, + { start: 0x6241, end: 0x62fd, idx: -19722 }, + { start: 0x6341, end: 0x63fd, idx: -19789 }, + { start: 0x6441, end: 0x64fd, idx: -19856 }, + { start: 0x6541, end: 0x65fd, idx: -19923 }, + { start: 0x6641, end: 0x66fd, idx: -19990 }, + { start: 0x6741, end: 0x67fd, idx: -20057 }, + { start: 0x6841, end: 0x68cb, idx: -20124 }, + { start: 0x6941, end: 0x69fd, idx: -20241 }, + { start: 0x6a41, end: 0x6afd, idx: -20308 }, + { start: 0x6b41, end: 0x6bfd, idx: -20375 }, + { start: 0x6c41, end: 0x6cfd, idx: -20442 }, + { start: 0x6d41, end: 0x6dfd, idx: -20509 }, + { start: 0x6e41, end: 0x6efd, idx: -20576 }, + { start: 0x6f41, end: 0x6ffd, idx: -20643 }, + { start: 0x7041, end: 0x70fd, idx: -20710 }, + { start: 0x7141, end: 0x71fd, idx: -20777 }, + { start: 0x7241, end: 0x72fd, idx: -20844 }, + { start: 0x7341, end: 0x73fd, idx: -20911 }, + { start: 0x7441, end: 0x74fd, idx: -20978 }, + { start: 0x7541, end: 0x75fd, idx: -21045 }, + { start: 0x7641, end: 0x76fd, idx: -21112 }, + { start: 0x7741, end: 0x77fd, idx: -21179 }, + { start: 0x7841, end: 0x78fd, idx: -21246 }, + { start: 0x7941, end: 0x79fd, idx: -21313 }, + { start: 0x7a41, end: 0x7afd, idx: -21380 }, + { start: 0x7b41, end: 0x7bfd, idx: -21447 }, + { start: 0x7c41, end: 0x7cfd, idx: -21514 }, + { start: 0x7d41, end: 0x7dfd, idx: -21581 }, + { start: 0x7e41, end: 0x7efd, idx: -21648 }, + { start: 0x7f41, end: 0x7ffd, idx: -21715 }, + { start: 0x8041, end: 0x80fd, idx: -21782 }, + { start: 0x8141, end: 0x81fd, idx: -21849 }, + { start: 0x8241, end: 0x82fd, idx: -21916 }, + { start: 0x8341, end: 0x83fd, idx: -21983 }, + { start: 0x8441, end: 0x84fd, idx: -22050 }, + { start: 0x8541, end: 0x85fd, idx: -22117 }, + { start: 0x8641, end: 0x86fd, idx: -22184 }, + { start: 0x8741, end: 0x87fd, idx: -22251 }, + { start: 0x8841, end: 0x88fd, idx: -22318 }, + { start: 0x8941, end: 0x89fd, idx: -22385 }, + { start: 0x8a41, end: 0x8afd, idx: -22452 }, + { start: 0x8b41, end: 0x8bfd, idx: -22519 }, + { start: 0x8c41, end: 0x8cfd, idx: -22586 }, + { start: 0x8d41, end: 0x8dfd, idx: -22653 }, + { start: 0x8e41, end: 0x8efd, idx: -22720 }, + { start: 0x8f41, end: 0x8ffd, idx: -22787 }, + { start: 0x9041, end: 0x90fd, idx: -22854 }, + { start: 0x9141, end: 0x91c7, idx: -22921 }, + { start: 0xc241, end: 0xc2fd, idx: -35330 }, + { start: 0xc341, end: 0xc3fd, idx: -35397 }, + { start: 0xc441, end: 0xc4fd, idx: -35464 }, + { start: 0xc541, end: 0xc5fd, idx: -35531 }, + { start: 0xc641, end: 0xc6fd, idx: -35598 }, + { start: 0xc741, end: 0xc7fd, idx: -35665 }, + { start: 0xc841, end: 0xc8fd, idx: -35732 }, + { start: 0xc941, end: 0xc9fd, idx: -35799 }, + { start: 0xca41, end: 0xcafd, idx: -35866 }, + { start: 0xcb41, end: 0xcbfd, idx: -35933 }, + { start: 0xcc41, end: 0xccfd, idx: -36000 }, + { start: 0xcd41, end: 0xcdfd, idx: -36067 }, + { start: 0xce41, end: 0xcefd, idx: -36134 }, + { start: 0xcf41, end: 0xcffd, idx: -36201 }, + { start: 0xd041, end: 0xd0fd, idx: -36268 }, + { start: 0xd141, end: 0xd1fd, idx: -36335 }, + { start: 0xd241, end: 0xd2fd, idx: -36402 }, + { start: 0xd341, end: 0xd3fd, idx: -36469 }, + { start: 0xd441, end: 0xd4fd, idx: -36536 }, + { start: 0xd541, end: 0xd5fd, idx: -36603 }, + { start: 0xd641, end: 0xd6fd, idx: -36670 }, + { start: 0xd741, end: 0xd7fd, idx: -36737 }, + { start: 0xd841, end: 0xd8fd, idx: -36804 }, + { start: 0xd941, end: 0xd9fd, idx: -36871 }, + { start: 0xda41, end: 0xdafd, idx: -36938 }, + { start: 0xdb41, end: 0xdbfd, idx: -37005 }, + { start: 0xdc41, end: 0xdcfd, idx: -37072 }, + { start: 0xdd41, end: 0xddfd, idx: -37139 }, + { start: 0xde41, end: 0xdefd, idx: -37206 }, + { start: 0xdf41, end: 0xdffd, idx: -37273 }, + { start: 0xe041, end: 0xe0fd, idx: -37340 }, + { start: 0xe141, end: 0xe1fd, idx: -37407 }, + { start: 0xe241, end: 0xe2fd, idx: -37474 }, + { start: 0xffff, end: 0xffff, idx: 0 } }; static const uint16_t __ibm937db_to_ucs4[] = { - [0x4040] = 0x3000, [0x4141] = 0x03b1, [0x4142] = 0x03b2, [0x4143] = 0x03b3, - [0x4144] = 0x03b4, [0x4145] = 0x03b5, [0x4146] = 0x03b6, [0x4147] = 0x03b7, - [0x4148] = 0x03b8, [0x4149] = 0x03b9, [0x414a] = 0x03ba, [0x414b] = 0x03bb, - [0x414c] = 0x03bc, [0x414d] = 0x03bd, [0x414e] = 0x03be, [0x414f] = 0x03bf, - [0x4150] = 0x03c0, [0x4151] = 0x03c1, [0x4152] = 0x03c3, [0x4153] = 0x03c4, - [0x4154] = 0x03c5, [0x4155] = 0x03c6, [0x4156] = 0x03c7, [0x4157] = 0x03c8, - [0x4158] = 0x03c9, [0x4161] = 0x0391, [0x4162] = 0x0392, [0x4163] = 0x0393, - [0x4164] = 0x0394, [0x4165] = 0x0395, [0x4166] = 0x0396, [0x4167] = 0x0397, - [0x4168] = 0x0398, [0x4169] = 0x0399, [0x416a] = 0x039a, [0x416b] = 0x039b, - [0x416c] = 0x039c, [0x416d] = 0x039d, [0x416e] = 0x039e, [0x416f] = 0x039f, - [0x4170] = 0x03a0, [0x4171] = 0x03a1, [0x4172] = 0x03a3, [0x4173] = 0x03a4, - [0x4174] = 0x03a5, [0x4175] = 0x03a6, [0x4176] = 0x03a7, [0x4177] = 0x03a8, - [0x4178] = 0x03a9, [0x4180] = 0x0430, [0x4181] = 0x0431, [0x4182] = 0x0432, - [0x4183] = 0x0433, [0x4184] = 0x0434, [0x4185] = 0x0435, [0x4186] = 0x0451, - [0x4187] = 0x0436, [0x4188] = 0x0437, [0x4189] = 0x0438, [0x418a] = 0x0439, - [0x418b] = 0x043a, [0x418c] = 0x043b, [0x418d] = 0x043c, [0x418e] = 0x043d, - [0x418f] = 0x043e, [0x4190] = 0x043f, [0x4191] = 0x0440, [0x4192] = 0x0441, - [0x4193] = 0x0442, [0x4194] = 0x0443, [0x4195] = 0x0444, [0x4196] = 0x0445, - [0x4197] = 0x0446, [0x4198] = 0x0447, [0x4199] = 0x0448, [0x419a] = 0x0449, - [0x419b] = 0x044a, [0x419c] = 0x044b, [0x419d] = 0x044c, [0x419e] = 0x044d, - [0x419f] = 0x044e, [0x41a0] = 0x044f, [0x41b1] = 0x2170, [0x41b2] = 0x2171, - [0x41b3] = 0x2172, [0x41b4] = 0x2173, [0x41b5] = 0x2174, [0x41b6] = 0x2175, - [0x41b7] = 0x2176, [0x41b8] = 0x2177, [0x41b9] = 0x2178, [0x41ba] = 0x2179, - [0x41c0] = 0x0410, [0x41c1] = 0x0411, [0x41c2] = 0x0412, [0x41c3] = 0x0413, - [0x41c4] = 0x0414, [0x41c5] = 0x0415, [0x41c6] = 0x0401, [0x41c7] = 0x0416, - [0x41c8] = 0x0417, [0x41c9] = 0x0418, [0x41ca] = 0x0419, [0x41cb] = 0x041a, - [0x41cc] = 0x041b, [0x41cd] = 0x041c, [0x41ce] = 0x041d, [0x41cf] = 0x041e, - [0x41d0] = 0x041f, [0x41d1] = 0x0420, [0x41d2] = 0x0421, [0x41d3] = 0x0422, - [0x41d4] = 0x0423, [0x41d5] = 0x0424, [0x41d6] = 0x0425, [0x41d7] = 0x0426, - [0x41d8] = 0x0427, [0x41d9] = 0x0428, [0x41da] = 0x0429, [0x41db] = 0x042a, - [0x41dc] = 0x042b, [0x41dd] = 0x042c, [0x41de] = 0x042d, [0x41df] = 0x042e, - [0x41e0] = 0x042f, [0x41f1] = 0x2160, [0x41f2] = 0x2161, [0x41f3] = 0x2162, - [0x41f4] = 0x2163, [0x41f5] = 0x2164, [0x41f6] = 0x2165, [0x41f7] = 0x2166, - [0x41f8] = 0x2167, [0x41f9] = 0x2168, [0x41fa] = 0x2169, [0x424a] = 0xffe1, - [0x424b] = 0xff0e, [0x424c] = 0xff1c, [0x424d] = 0xff08, [0x424e] = 0xff0b, - [0x424f] = 0xff5c, [0x4250] = 0xff06, [0x425a] = 0xff01, [0x425b] = 0xffe5, - [0x425c] = 0x273d, [0x425d] = 0xff09, [0x425e] = 0xff1b, [0x425f] = 0xffe2, - [0x4260] = 0xff0d, [0x4261] = 0xff0f, [0x426a] = 0xffe4, [0x426b] = 0xff0c, - [0x426c] = 0xff05, [0x426d] = 0xff3f, [0x426e] = 0xff1e, [0x426f] = 0xff1f, - [0x4279] = 0x2035, [0x427a] = 0xff1a, [0x427b] = 0xff03, [0x427c] = 0xff20, - [0x427d] = 0xff07, [0x427e] = 0xff1d, [0x427f] = 0xff02, [0x4281] = 0xff41, - [0x4282] = 0xff42, [0x4283] = 0xff43, [0x4284] = 0xff44, [0x4285] = 0xff45, - [0x4286] = 0xff46, [0x4287] = 0xff47, [0x4288] = 0xff48, [0x4289] = 0xff49, - [0x4291] = 0xff4a, [0x4292] = 0xff4b, [0x4293] = 0xff4c, [0x4294] = 0xff4d, - [0x4295] = 0xff4e, [0x4296] = 0xff4f, [0x4297] = 0xff50, [0x4298] = 0xff51, - [0x4299] = 0xff52, [0x42a1] = 0x203e, [0x42a2] = 0xff53, [0x42a3] = 0xff54, - [0x42a4] = 0xff55, [0x42a5] = 0xff56, [0x42a6] = 0xff57, [0x42a7] = 0xff58, - [0x42a8] = 0xff59, [0x42a9] = 0xff5a, [0x42c0] = 0xff5b, [0x42c1] = 0xff21, - [0x42c2] = 0xff22, [0x42c3] = 0xff23, [0x42c4] = 0xff24, [0x42c5] = 0xff25, - [0x42c6] = 0xff26, [0x42c7] = 0xff27, [0x42c8] = 0xff28, [0x42c9] = 0xff29, - [0x42d0] = 0xff5d, [0x42d1] = 0xff2a, [0x42d2] = 0xff2b, [0x42d3] = 0xff2c, - [0x42d4] = 0xff2d, [0x42d5] = 0xff2e, [0x42d6] = 0xff2f, [0x42d7] = 0xff30, - [0x42d8] = 0xff31, [0x42d9] = 0xff32, [0x42e0] = 0xff04, [0x42e2] = 0xff33, - [0x42e3] = 0xff34, [0x42e4] = 0xff35, [0x42e5] = 0xff36, [0x42e6] = 0xff37, - [0x42e7] = 0xff38, [0x42e8] = 0xff39, [0x42e9] = 0xff3a, [0x42f0] = 0xff10, - [0x42f1] = 0xff11, [0x42f2] = 0xff12, [0x42f3] = 0xff13, [0x42f4] = 0xff14, - [0x42f5] = 0xff15, [0x42f6] = 0xff16, [0x42f7] = 0xff17, [0x42f8] = 0xff18, - [0x42f9] = 0xff19, [0x4341] = 0x3002, [0x4342] = 0x300c, [0x4343] = 0x300d, - [0x4344] = 0x3001, [0x4345] = 0x2027, [0x4346] = 0x30f2, [0x4347] = 0x30a1, - [0x4348] = 0x30a3, [0x4349] = 0x30a5, [0x434a] = 0xffe0 |
