aboutsummaryrefslogtreecommitdiffstats
path: root/packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch')
-rw-r--r--packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch b/packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch
index e69de29bb2..ed4f9d0133 100644
--- a/packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch
+++ b/packages/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch
@@ -0,0 +1,76 @@
+--- iconvdata/cp932.c 14 Jul 2003 23:17:31 -0000 1.1
++++ iconvdata/cp932.c 14 Aug 2003 08:34:48 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Mapping tables for CP932 handling.
+- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
++ Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>, 2003.
+
+@@ -22,18 +22,6 @@
+ #include <stdint.h>
+ #include <wchar.h>
+
+-static const uint32_t halfkana_to_ucs4[] =
+-{
+- 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68,
+- 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0xff70,
+- 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78,
+- 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80,
+- 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88,
+- 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, 0xff90,
+- 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98,
+- 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f
+-};
+-
+ static const uint16_t cjk_block1[703] =
+ {
+ /* start = 0x8140, end = 0x84be */
+@@ -4559,10 +4547,10 @@
+ \
+ if (ch < 0x80) \
+ ++inptr; \
+- else if (ch >= 0xa1 && ch <= 0xdf) \
+- { \
+- ch = halfkana_to_ucs4[ch - 0xa1]; \
+- ++inptr; \
++ else if (ch >= 0xa1 && ch <= 0xdf) \
++ { \
++ ch += 0xfec0; \
++ ++inptr; \
+ } \
+ else if (__builtin_expect (ch, 0) == 0xa0 \
+ || __builtin_expect (ch <= 0x80, 0) \
+@@ -4598,11 +4586,14 @@
+ ch2 = inptr[1]; \
+ idx = ch * 256 + ch2; \
+ if (__builtin_expect (ch2 < 0x40, 0) \
++ || __builtin_expect (ch2 > 0xfc, 0) \
++ || __builtin_expect (ch2 == 0x7f, 0) \
+ || (__builtin_expect (idx > 0x84be, 0) && idx < 0x8740) \
+ || (__builtin_expect (idx > 0x879c, 0) && idx < 0x889f) \
+ || (__builtin_expect (idx > 0x88fc, 0) && idx < 0x8940) \
+ || (__builtin_expect (idx > 0x9ffc, 0) && idx < 0xe040) \
+ || (__builtin_expect (idx > 0xeaa4, 0) && idx < 0xed40) \
++ || (__builtin_expect (idx > 0xeefc, 0) && idx < 0xf040) \
+ || __builtin_expect (idx > 0xfc4b, 0)) \
+ { \
+ /* This is illegal. */ \
+@@ -4693,7 +4684,7 @@
+ else if (ch >= 0xf929 && ch <= 0xfa2d) \
+ cp = from_ucs4_cjkcpt[ch - 0xf929]; \
+ else if (__builtin_expect (ch >= 0xff01, 1) \
+- && __builtin_expect (ch <= 0xffef, 1)) \
++ && __builtin_expect (ch <= 0xffe5, 1)) \
+ cp = from_ucs4_extra[ch - 0xff01]; \
+ else \
+ { \
+@@ -4708,7 +4699,7 @@
+ if (__builtin_expect (cp[0], '\1') == '\0' && ch != 0) \
+ { \
+ /* Illegal character. */ \
+- STANDARD_ERR_HANDLER (4); \
++ STANDARD_TO_LOOP_ERR_HANDLER (4); \
+ } \
+ else \
+ { \