aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--iconvdata/ibm1129.h18
-rw-r--r--iconvdata/ibm937.c94
-rw-r--r--iconvdata/ibm937.h19330
-rw-r--r--posix/regex.c7
-rw-r--r--sysdeps/ieee754/dbl-64/e_remainder.c17
-rw-r--r--timezone/zic.c13
7 files changed, 7595 insertions, 11902 deletions
diff --git a/ChangeLog b/ChangeLog
index 9422586e40..c41e13c683 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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]