aboutsummaryrefslogtreecommitdiff
path: root/iconvdata
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-05-15 06:02:35 +0000
committerUlrich Drepper <drepper@redhat.com>2002-05-15 06:02:35 +0000
commitfaaa6f628377e7037ad451f266bbc6b16f7f4d94 (patch)
tree3cfe7ec0a4ef8677380ab4732673a026c0d63f25 /iconvdata
parent30224e2bd3bfde9e02802fb9f3e45c78237f34f0 (diff)
downloadglibc-faaa6f628377e7037ad451f266bbc6b16f7f4d94.tar.xz
glibc-faaa6f628377e7037ad451f266bbc6b16f7f4d94.zip
Update.
2002-05-12 Bruno Haible <bruno@clisp.org> * iconvdata/testdata/EUC-JISX0213: New file. * iconvdata/testdata/EUC-JISX0213..UTF8: New file. * iconvdata/testdata/SHIFT_JISX0213: New file. * iconvdata/testdata/SHIFT_JISX0213..UTF8: New file. * iconvdata/testdata/ISO-2022-JP-3: New file. * iconvdata/testdata/ISO-2022-JP-3..UTF8: New file. * iconvdata/TESTS: Add EUC-JISX0213, SHIFT_JISX0213, ISO-2022-JP-3. * iconvdata/run-iconv-test.sh: Skip the charmap test if the charmap contains comments indicating precomposed characters. 2002-04-21 Bruno Haible <bruno@clisp.org> * iconvdata/iso-2022-jp-3.c: New file. * iconvdata/gconv-modules (ISO-2022-JP-3): New module. * iconvdata/Makefile (modules): Add ISO-2022-JP-3. (LDFLAGS-ISO-2022-JP-3.so): New variable. (ISO-2022-JP-3.so): Depend on libJIS.so and libJISX0213.so. (distribute): Add iso-2022-jp-3.c. 2002-05-12 Bruno Haible <bruno@clisp.org> * iconvdata/tst-table-to.c (main): Restore handling of transliterations, broken by last patch. 2002-05-12 Bruno Haible <bruno@clisp.org> * iconvdata/TESTS: Add IBM922, IBM1124, IBM1129. 2002-05-12 Bruno Haible <bruno@clisp.org> * iconvdata/euc-jisx0213.c (BODY for FROM_LOOP): Don't advance inptr when there is not enough room in the output buffer. * iconvdata/shift_jisx0213.c (BODY for FROM_LOOP): Likewise. 2002-04-20 Bruno Haible <bruno@clisp.org> * iconv/skeleton.c ({FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO}): New macros. (RESET_INPUT_BUFFER): Use them instead of {MIN,MAX}_NEEDED_{FROM,TO}. Also make this macro work if FROM_DIRECTION evaluates to 0. (gconv_init): Use the new macros instead of {MIN,MAX}_NEEDED_{FROM,TO}. (FUNCTION_NAME): Likewise, in the handling of unaligned accesses and of consume_incomplete. * iconvdata/cp1255.c: Define {FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO} instead of {MIN,MAX}_NEEDED_{FROM,TO}. Set FROM_LOOP_MAX_NEEDED_TO to 4, not 8. * iconvdata/cp1258.c: Likewise. * iconvdata/ibm930.c: Define {FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO} instead of {MIN,MAX}_NEEDED_{FROM,TO}. Set TO_LOOP_MAX_NEEDED_TO to 3, not 2. * iconvdata/ibm933.c: Likewise. * iconvdata/ibm935.c: Likewise. * iconvdata/ibm937.c: Likewise. * iconvdata/ibm939.c: Likewise. * iconvdata/iso-2022-cn.c: Define {FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO} instead of {MIN,MAX}_NEEDED_{FROM,TO}. Set TO_LOOP_MAX_NEEDED_TO to 6, not 4. * iconvdata/iso-2022-cn-ext.c: Likewise. * iconvdata/iso-2022-jp.c: Define {FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO} instead of {MIN,MAX}_NEEDED_{FROM,TO}. * iconvdata/tcvn5712-1.c: Define {FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO} instead of {MIN,MAX}_NEEDED_{FROM,TO}. Set FROM_LOOP_MAX_NEEDED_FROM to 1, not 2. * iconvdata/euc-jisx0213.c: Define {FROM,TO}_LOOP_{MIN,MAX}_NEEDED_{FROM,TO} instead of {MIN,MAX}_NEEDED_{FROM,TO}. Set FROM_LOOP_MAX_NEEDED_TO to 8, not 4. * iconvdata/shift_jisx0213.c: Likewise. 2002-05-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/powerpc/Makefile (sysdeps_routines): Add divdi3, cmpdi2, shdi3, fixdfdi, fixsfdi in csu dir. (shared-only-routines): Likewise. * sysdeps/wordsize-32/cmpdi2.c: New file. * sysdeps/wordsize-32/shdi3.c: New file. * sysdeps/wordsize-32/fixdfdi.c: New file. * sysdeps/wordsize-32/fixsfdi.c: New file. * sysdeps/powerpc/Versions (__divdi3, __moddi3, __udivdi3, __umoddi3, __ashldi3, __ashrdi3, __lshrdi3, __cmpdi2, __ucmpdi2, __fixdfdi, __fixsfdi, __fixunsdfdi, __fixunssfdi): Export at GLIBC_2.0. * sysdeps/unix/sysv/linux/semctl.c (__old_semctl, __new_semctl): Only use va_arg if the argument will be used [PR libc/3259]. 2002-05-06 Michael A. Schmidt <mmaass@us.ibm.com> * catgets/catgets.c (catopen): Free buffer if internal catalog open fails. 2002-05-14 Ulrich Drepper <drepper@redhat.com> * debug/xtrace.sh: Make more robust. For realtime tracking use non-buffering methods. * debug/pcprofiledump.c: Implement -u option. Patch by Roger Luethi <rl@hellgate.ch>.
Diffstat (limited to 'iconvdata')
-rw-r--r--iconvdata/Makefile7
-rw-r--r--iconvdata/TESTS10
-rw-r--r--iconvdata/cp1255.c28
-rw-r--r--iconvdata/cp1258.c28
-rw-r--r--iconvdata/euc-jisx0213.c30
-rw-r--r--iconvdata/gconv-modules4
-rw-r--r--iconvdata/ibm930.c30
-rw-r--r--iconvdata/ibm933.c30
-rw-r--r--iconvdata/ibm935.c28
-rw-r--r--iconvdata/ibm937.c28
-rw-r--r--iconvdata/ibm939.c28
-rw-r--r--iconvdata/iso-2022-cn-ext.c28
-rw-r--r--iconvdata/iso-2022-cn.c28
-rw-r--r--iconvdata/iso-2022-jp-3.c793
-rw-r--r--iconvdata/iso-2022-jp.c43
-rwxr-xr-xiconvdata/run-iconv-test.sh5
-rw-r--r--iconvdata/shift_jisx0213.c30
-rw-r--r--iconvdata/tcvn5712-1.c27
-rw-r--r--iconvdata/testdata/EUC-JISX0213730
-rw-r--r--iconvdata/testdata/EUC-JISX0213..UTF8730
-rw-r--r--iconvdata/testdata/ISO-2022-JP-3730
-rw-r--r--iconvdata/testdata/ISO-2022-JP-3..UTF8730
-rw-r--r--iconvdata/testdata/SHIFT_JISX0213726
-rw-r--r--iconvdata/testdata/SHIFT_JISX0213..UTF8726
-rw-r--r--iconvdata/tst-table-to.c5
25 files changed, 5422 insertions, 160 deletions
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index bb62c1d30e..20281ecf88 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -50,7 +50,8 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
ISO-2022-CN libISOIR165 UTF-16 UNICODE UTF-32 UTF-7 BIG5HKSCS \
GB18030 ISO-2022-CN-EXT VISCII GBBIG5 CP10007 KOI8-T \
GEORGIAN-PS GEORGIAN-ACADEMY ISO-IR-209 MAC-SAMI ARMSCII-8 \
- TCVN5712-1 libJISX0213 EUC-JISX0213 SHIFT_JISX0213
+ TCVN5712-1 libJISX0213 EUC-JISX0213 SHIFT_JISX0213 \
+ ISO-2022-JP-3
modules.so := $(addsuffix .so, $(modules))
@@ -89,6 +90,8 @@ $(objpfx)SHIFT_JISX0213.so: $(objpfx)libJISX0213.so
LDFLAGS-ISO-2022-JP.so = $(LDFLAGS-rpath-ORIGIN)
$(objpfx)ISO-2022-JP.so: $(objpfx)libJIS.so $(objpfx)libGB.so \
$(objpfx)libCNS.so $(objpfx)libKSC.so
+LDFLAGS-ISO-2022-JP-3.so = $(LDFLAGS-rpath-ORIGIN)
+$(objpfx)ISO-2022-JP-3.so: $(objpfx)libJIS.so $(objpfx)libJISX0213.so
LDFLAGS-ISO-2022-KR.so = $(LDFLAGS-rpath-ORIGIN)
$(objpfx)ISO-2022-KR.so: $(objpfx)libKSC.so
LDFLAGS-ISO-2022-CN.so = $(LDFLAGS-rpath-ORIGIN)
@@ -159,7 +162,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk \
koi8-t.c georgian-ps.c georgian-academy.c iso-ir-209.c \
mac-sami.c ibm1160.c ibm1160.h ibm1161.c ibm1161.h \
ibm1163.c ibm1163.h ibm1164.c ibm1164.h jisx0213.c jisx0213.h \
- euc-jisx0213.c shift_jisx0213.c
+ euc-jisx0213.c shift_jisx0213.c iso-2022-jp-3.c
# We build the transformation modules only when we build shared libs.
ifeq (yes,$(build-shared))
diff --git a/iconvdata/TESTS b/iconvdata/TESTS
index d0e9e188e0..8d6df22432 100644
--- a/iconvdata/TESTS
+++ b/iconvdata/TESTS
@@ -1,5 +1,5 @@
# Available tests for iconv(1) (and therefore iconv(3)) in GNU libc.
-# Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1998-2002 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
#
@@ -96,14 +96,17 @@ GBK GBK Y UTF8
BIG5HKSCS BIG5HKSCS Y UTF8
UTF-7 UTF-7 N UTF8
IBM856 IBM856 N UTF8
+IBM922 IBM922 Y UTF8
IBM930 IBM930 N UTF8
IBM933 IBM933 N UTF8
IBM935 IBM935 N UTF8
IBM937 IBM937 N UTF8
IBM939 IBM939 N UTF8
-IBM1046 IBM1046 Y UTF8
IBM932 IBM932 Y UTF8
IBM943 IBM943 Y UTF8
+IBM1046 IBM1046 Y UTF8
+IBM1124 IBM1124 Y UTF8
+IBM1129 IBM1129 Y UTF8
IBM1160 IBM1160 N UTF8
IBM1161 IBM1161 Y UTF8
IBM1132 IBM1132 N UTF8
@@ -112,3 +115,6 @@ IBM1162 IBM1162 Y UTF8
IBM1163 IBM1163 Y UTF8
IBM1164 IBM1164 N UTF8
TCVN-5712 TCVN-5712 Y UTF8
+EUC-JISX0213 EUC-JISX0213 Y UTF8
+SHIFT_JISX0213 SHIFT_JISX0213 Y UTF8
+ISO-2022-JP-3 ISO-2022-JP-3 N UTF8
diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c
index f8a7695399..af69e833da 100644
--- a/iconvdata/cp1255.c
+++ b/iconvdata/cp1255.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1255.
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
and Bruno Haible <haible@clisp.cons.org>, 2001.
@@ -31,10 +31,14 @@
#define TO_LOOP to_cp1255
#define DEFINE_INIT 1
#define DEFINE_FINI 1
-#define MIN_NEEDED_FROM 1
-#define MAX_NEEDED_FROM 1
-#define MIN_NEEDED_TO 4
-#define MAX_NEEDED_TO 4
+#define FROM_LOOP_MIN_NEEDED_FROM 1
+#define FROM_LOOP_MAX_NEEDED_FROM 1
+#define FROM_LOOP_MIN_NEEDED_TO 4
+#define FROM_LOOP_MAX_NEEDED_TO 4
+#define TO_LOOP_MIN_NEEDED_FROM 4
+#define TO_LOOP_MAX_NEEDED_FROM 4
+#define TO_LOOP_MIN_NEEDED_TO 1
+#define TO_LOOP_MAX_NEEDED_TO 3
#define PREPARE_LOOP \
int saved_state; \
int *statep = &data->__statep->__count;
@@ -183,9 +187,10 @@ static const struct { unsigned int idx; unsigned int len; } comp_table[8] = {
{ COMP_TABLE_IDX_05C2, COMP_TABLE_LEN_05C2 },
};
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define MAX_NEEDED_OUTPUT 8
+#define MIN_NEEDED_INPUT FROM_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT FROM_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT FROM_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT FROM_LOOP_MAX_NEEDED_TO
#define LOOPFCT FROM_LOOP
#define BODY \
{ \
@@ -417,9 +422,10 @@ static const struct {
{ 0xFB4E, 0x05E4, 5, -1 },
};
-#define MIN_NEEDED_INPUT MIN_NEEDED_TO
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_OUTPUT 3
+#define MIN_NEEDED_INPUT TO_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT TO_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT TO_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT TO_LOOP_MAX_NEEDED_TO
#define LOOPFCT TO_LOOP
#define BODY \
{ \
diff --git a/iconvdata/cp1258.c b/iconvdata/cp1258.c
index 8351f279a4..af206a2aff 100644
--- a/iconvdata/cp1258.c
+++ b/iconvdata/cp1258.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1258.
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
and Bruno Haible <haible@clisp.cons.org>, 2001.
@@ -32,10 +32,14 @@
#define TO_LOOP to_cp1258
#define DEFINE_INIT 1
#define DEFINE_FINI 1
-#define MIN_NEEDED_FROM 1
-#define MAX_NEEDED_FROM 1
-#define MIN_NEEDED_TO 4
-#define MAX_NEEDED_TO 4
+#define FROM_LOOP_MIN_NEEDED_FROM 1
+#define FROM_LOOP_MAX_NEEDED_FROM 1
+#define FROM_LOOP_MIN_NEEDED_TO 4
+#define FROM_LOOP_MAX_NEEDED_TO 4
+#define TO_LOOP_MIN_NEEDED_FROM 4
+#define TO_LOOP_MAX_NEEDED_FROM 4
+#define TO_LOOP_MIN_NEEDED_TO 1
+#define TO_LOOP_MAX_NEEDED_TO 2
#define PREPARE_LOOP \
int saved_state; \
int *statep = &data->__statep->__count;
@@ -358,9 +362,10 @@ static const struct
{ COMP_TABLE_IDX_0323, COMP_TABLE_LEN_0323 }
};
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
-#define MAX_NEEDED_OUTPUT 8
+#define MIN_NEEDED_INPUT FROM_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT FROM_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT FROM_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT FROM_LOOP_MAX_NEEDED_TO
#define LOOPFCT FROM_LOOP
#define BODY \
{ \
@@ -748,9 +753,10 @@ static const struct
{ 0x1fee, 0xa8, 0xec },
};
-#define MIN_NEEDED_INPUT MIN_NEEDED_TO
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_OUTPUT 2
+#define MIN_NEEDED_INPUT TO_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT TO_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT TO_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT TO_LOOP_MAX_NEEDED_TO
#define LOOPFCT TO_LOOP
#define BODY \
{ \
diff --git a/iconvdata/euc-jisx0213.c b/iconvdata/euc-jisx0213.c
index a0062c8847..7f56f3cfe9 100644
--- a/iconvdata/euc-jisx0213.c
+++ b/iconvdata/euc-jisx0213.c
@@ -44,9 +44,14 @@
#define TO_LOOP to_euc_jisx0213
#define DEFINE_INIT 1
#define DEFINE_FINI 1
-#define MIN_NEEDED_FROM 1
-#define MAX_NEEDED_FROM 3
-#define MIN_NEEDED_TO 4
+#define FROM_LOOP_MIN_NEEDED_FROM 1
+#define FROM_LOOP_MAX_NEEDED_FROM 3
+#define FROM_LOOP_MIN_NEEDED_TO 4
+#define FROM_LOOP_MAX_NEEDED_TO 8
+#define TO_LOOP_MIN_NEEDED_FROM 4
+#define TO_LOOP_MAX_NEEDED_FROM 4
+#define TO_LOOP_MIN_NEEDED_TO 1
+#define TO_LOOP_MAX_NEEDED_TO 3
#define PREPARE_LOOP \
int saved_state; \
int *statep = &data->__statep->__count;
@@ -92,9 +97,10 @@
/* First define the conversion function from EUC-JISX0213 to UCS-4. */
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_INPUT MAX_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
+#define MIN_NEEDED_INPUT FROM_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT FROM_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT FROM_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT FROM_LOOP_MAX_NEEDED_TO
#define LOOPFCT FROM_LOOP
#define BODY \
{ \
@@ -195,8 +201,6 @@
break; \
} \
\
- inptr = endp; \
- \
if (ch < 0x80) \
{ \
/* It's a combining character. */ \
@@ -206,6 +210,7 @@
/* See whether we have room for two characters. */ \
if (outptr + 8 <= outend) \
{ \
+ inptr = endp; \
put32 (outptr, u1); \
outptr += 4; \
put32 (outptr, u2); \
@@ -218,6 +223,8 @@
break; \
} \
} \
+ \
+ inptr = endp; \
} \
} \
else \
@@ -288,9 +295,10 @@ static const struct
{ 0xa6f5, 0xa6f8 }, /* 0x12678 = 0x12675 U+309A */
};
-#define MIN_NEEDED_INPUT MIN_NEEDED_TO
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_OUTPUT MAX_NEEDED_FROM
+#define MIN_NEEDED_INPUT TO_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT TO_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT TO_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT TO_LOOP_MAX_NEEDED_TO
#define LOOPFCT TO_LOOP
#define BODY \
{ \
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index 5bfe058fae..a8def32ccb 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1209,6 +1209,10 @@ module ISO-2022-JP-2// INTERNAL ISO-2022-JP 1
module INTERNAL ISO-2022-JP-2// ISO-2022-JP 1
# from to module cost
+module ISO-2022-JP-3// INTERNAL ISO-2022-JP-3 1
+module INTERNAL ISO-2022-JP-3// ISO-2022-JP-3 1
+
+# from to module cost
alias CSISO2022KR// ISO-2022-KR//
alias ISO2022KR// ISO-2022-KR//
module ISO-2022-KR// INTERNAL ISO-2022-KR 1
diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c
index f511e48ae2..1be42e2d2c 100644
--- a/iconvdata/ibm930.c
+++ b/iconvdata/ibm930.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM930.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 2000.
@@ -32,10 +32,14 @@
#define CHARSET_NAME "IBM930//"
#define FROM_LOOP from_ibm930
#define TO_LOOP to_ibm930
-#define MIN_NEEDED_FROM 1
-#define MAX_NEEDED_FROM 2
-#define MIN_NEEDED_TO 4
-#define MAX_NEEDED_TO 4
+#define FROM_LOOP_MIN_NEEDED_FROM 1
+#define FROM_LOOP_MAX_NEEDED_FROM 2
+#define FROM_LOOP_MIN_NEEDED_TO 4
+#define FROM_LOOP_MAX_NEEDED_TO 4
+#define TO_LOOP_MIN_NEEDED_FROM 4
+#define TO_LOOP_MAX_NEEDED_FROM 4
+#define TO_LOOP_MIN_NEEDED_TO 1
+#define TO_LOOP_MAX_NEEDED_TO 3
#define PREPARE_LOOP \
int save_curcs; \
int *curcsp = &data->__statep->__count;
@@ -89,9 +93,10 @@ enum
/* First, define the conversion function from IBM-930 to UCS4. */
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_INPUT MAX_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
+#define MIN_NEEDED_INPUT FROM_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT FROM_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT FROM_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT FROM_LOOP_MAX_NEEDED_TO
#define LOOPFCT FROM_LOOP
#define BODY \
{ \
@@ -190,9 +195,10 @@ enum
#include <iconv/loop.c>
/* Next, define the other direction. */
-#define MIN_NEEDED_INPUT MIN_NEEDED_TO
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_OUTPUT MAX_NEEDED_FROM
+#define MIN_NEEDED_INPUT TO_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT TO_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT TO_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT TO_LOOP_MAX_NEEDED_TO
#define LOOPFCT TO_LOOP
#define BODY \
{ \
@@ -219,7 +225,7 @@ enum
++rp1; \
\
/* Use the UCS4 table for single byte. */ \
- if (__builtin_expect (ch < rp1->start, 0) \
+ if (__builtin_expect (ch < rp1->start, 0) \
|| (cp = __ucs4_to_ibm930sb[ch + rp1->idx], \
__builtin_expect (cp[0], L'\1') == L'\0' && ch != '\0')) \
{ \
diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
index 804c2bd3eb..43cf2b6c7a 100644
--- a/iconvdata/ibm933.c
+++ b/iconvdata/ibm933.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM933.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 2000.
@@ -32,10 +32,14 @@
#define CHARSET_NAME "IBM933//"
#define FROM_LOOP from_ibm933
#define TO_LOOP to_ibm933
-#define MIN_NEEDED_FROM 1
-#define MAX_NEEDED_FROM 2
-#define MIN_NEEDED_TO 4
-#define MAX_NEEDED_TO 4
+#define FROM_LOOP_MIN_NEEDED_FROM 1
+#define FROM_LOOP_MAX_NEEDED_FROM 2
+#define FROM_LOOP_MIN_NEEDED_TO 4
+#define FROM_LOOP_MAX_NEEDED_TO 4
+#define TO_LOOP_MIN_NEEDED_FROM 4
+#define TO_LOOP_MAX_NEEDED_FROM 4
+#define TO_LOOP_MIN_NEEDED_TO 1
+#define TO_LOOP_MAX_NEEDED_TO 3
#define PREPARE_LOOP \
int save_curcs; \
int *curcsp = &data->__statep->__count;
@@ -88,9 +92,10 @@ enum
};
/* First, define the conversion function from IBM-933 to UCS4. */
-#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_INPUT MAX_NEEDED_FROM
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
+#define MIN_NEEDED_INPUT FROM_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT FROM_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT FROM_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT FROM_LOOP_MAX_NEEDED_TO
#define LOOPFCT FROM_LOOP
#define BODY \
{ \
@@ -192,9 +197,10 @@ enum
#include <iconv/loop.c>
/* Next, define the other direction. */
-#define MIN_NEEDED_INPUT MIN_NEEDED_TO
-#define MIN_NEEDED_OUTPUT MIN_NEEDED_FROM
-#define MAX_NEEDED_OUTPUT MAX_NEEDED_FROM
+#define MIN_NEEDED_INPUT TO_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT TO_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT TO_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT TO_LOOP_MAX_NEEDED_TO
#define LOOPFCT TO_LOOP
#define BODY \
{ \
@@ -221,7 +227,7 @@ enum
++rp1; \
\
/* Use the UCS4 table for single byte. */ \
- if (__builtin_expect (ch < rp1->start, 0) \
+ if (__builtin_expect (ch < rp1->start, 0) \
|| (cp = __ucs4_to_ibm933sb[ch + rp1->idx], \
__builtin_expect (cp[0], L'\1') == L'\0' && ch != '\0')) \
{ \
diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c
index 70d6149eef..4585a49461 100644
--- a/iconvdata/ibm935.c
+++ b/