aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-04-24 07:07:59 +0000
committerUlrich Drepper <drepper@redhat.com>1998-04-24 07:07:59 +0000
commit9b26f5c47dd7efd663119d02e2d2e3d9886c422c (patch)
treef4d1ee8bb914745b0931a499520535eb1d52531e
parented838925efcb30fab98a0a118c862cc68c3307c2 (diff)
downloadglibc-9b26f5c47dd7efd663119d02e2d2e3d9886c422c.tar
glibc-9b26f5c47dd7efd663119d02e2d2e3d9886c422c.tar.gz
glibc-9b26f5c47dd7efd663119d02e2d2e3d9886c422c.tar.bz2
glibc-9b26f5c47dd7efd663119d02e2d2e3d9886c422c.zip
Update.
<<<<<<< ChangeLog 1998-04-23 22:43 Ulrich Drepper <drepper@cygnus.com> * elf/dl-load.c (fillin_rpath): Handle empty element returned by strsep as current directory. * iconv/gconv_builtin.h: Add aliases unicode and unicodebig for Java. Add definitions for unicodelittle implementation. * iconv/gconv_int.h: Add declaration for unicodelittle functions. * iconv/gconv_simple.c: Define unicodelittle functions. * iconv/iconv_prog.c: Make program print information about position of illegal character in input. * iconv/skeleton.c: Use __strcasecmp instead of __strcasestr for comparison of charset name. * iconvdata/big5.c (CHARSET_NAME): Adapt for this. * iconvdata/ebcdic-at-de-a.c: Likewise. * iconvdata/ebcdic-at-de.c: Likewise. * iconvdata/ebcdic-ca-fr.c: Likewise. * iconvdata/euccn.c: Likewise. * iconvdata/eucjp.c: Likewise. * iconvdata/euckr.c: Likewise. * iconvdata/euctw.c: Likewise. * iconvdata/hp-roman8.c: Likewise. * iconvdata/iso6937.c: Likewise. * iconvdata/iso8859-1.c: Likewise. * iconvdata/iso8859-10.c: Likewise. * iconvdata/iso8859-2.c: Likewise. * iconvdata/iso8859-3.c: Likewise. * iconvdata/iso8859-4.c: Likewise. * iconvdata/iso8859-5.c: Likewise. * iconvdata/iso8859-6.c: Likewise. * iconvdata/iso8859-7.c: Likewise. * iconvdata/iso8859-8.c: Likewise. * iconvdata/iso8859-9.c: Likewise. * iconvdata/johab.c: Likewise. * iconvdata/koi-8.c: Likewise. * iconvdata/koi8-r.c: Likewise. * iconvdata/latin-greek-1.c: Likewise. * iconvdata/latin-greek.c: Likewise. * iconvdata/sjis.c: Likewise. * iconvdata/t61.c: Likewise. * iconvdata/uhc.c: Likewise. * iconvdata/iso646.c: Add support for more ISO 646 variants. * iconvdata/TESTS: Add tests for ISO646 module. * iconvdata/gconv-modules: Add new modules. * iconvdata/testdate/CSA_Z243.4-1985-1: New tests for ISO646 module. * iconvdata/testdate/CSA_Z243.4-1985-1..UCS2: Likewise. * iconvdata/testdate/CSA_Z243.4-1985-2: Likewise. * iconvdata/testdate/CSA_Z243.4-1985-2..UCS4: Likewise. * iconvdata/testdate/DIN_66003: Likewise. * iconvdata/testdate/DIN_66003..UTF8: Likewise. * iconvdata/testdate/DS_2089: Likewise. * iconvdata/testdate/DS_2089..UTF8: Likewise. * iconvdata/testdate/ES: Likewise. * iconvdata/testdate/ES..UTF8: Likewise. * iconvdata/testdate/ES2: Likewise. * iconvdata/testdate/ES2..UTF8: Likewise. * iconvdata/testdate/GB_1988-80: Likewise. * iconvdata/testdate/GB_1988-80..UTF8: Likewise. * iconvdata/testdate/IT: Likewise. * iconvdata/testdate/IT..UTF8: Likewise. * iconvdata/testdate/JIS_C6220-1969-RO: Likewise. * iconvdata/testdate/JIS_C6220-1969-RO..UTF8: Likewise. * iconvdata/testdate/JIS_C6229-1984-B: Likewise. * iconvdata/testdate/JIS_C6229-1984-B..UTF8: Likewise. * iconvdata/testdate/JUS_I.B1.002: Likewise. * iconvdata/testdate/JUS_I.B1.002..UTF8: Likewise. * iconvdata/testdate/KSC5636: Likewise. * iconvdata/testdate/KSC5636..UTF8: Likewise. * iconvdata/testdate/MSZ_7795.3: Likewise. * iconvdata/testdate/MSZ_7795.3..UTF8: Likewise. * iconvdata/testdate/NC_NC00-10: Likewise. * iconvdata/testdate/NC_NC00-10..UTF8: Likewise. * iconvdata/testdate/NF_Z_62-010: Likewise. * iconvdata/testdate/NF_Z_62-010..UTF8: Likewise. * iconvdata/testdate/NF_Z_62-010_1973: Likewise. * iconvdata/testdate/NF_Z_62-010_1973..UTF8: Likewise. * iconvdata/testdate/NS_4551-1: Likewise. * iconvdata/testdate/NS_4551-1..UTF8: Likewise. * iconvdata/testdate/NS_4551-2: Likewise. * iconvdata/testdate/NS_4551-2..UTF8: Likewise. * iconvdata/testdate/PT: Likewise. * iconvdata/testdate/PT..UTF8: Likewise. * iconvdata/testdate/PT2: Likewise. * iconvdata/testdate/PT2..UTF8: Likewise. * iconvdata/testdate/SEN_850200_B: Likewise. * iconvdata/testdate/SEN_850200_B..UTF8: Likewise. * iconvdata/testdate/SEN_850200_C: Likewise. * iconvdata/testdate/SEN_850200_C..UTF8: Likewise. * iconvdata/cns11643.h: Use uint32_t instead of wchar_t. * iconvdata/cns11643l1.h: Likewise. * iconvdata/latin-greek-1.h: Likewise. * iconvdata/latin-greek.h: Likewise. * iconvdata/koi8-r.h: Likewise. * iconvdata/jis0212.h: Likewise. * iconvdata/gb2312.h: Likewise. * iconvdata/ksc5601.h: Likewise. * iconvdata/8bit-gap.c: Use 32 bit type for idx element of struct gap. * iconvdata/Makefile: Add rules for lots of more modules. * iconvdata/cp1250.c: New file. * iconvdata/cp1251.c: New file. * iconvdata/cp1252.c: New file. * iconvdata/cp1253.c: New file. * iconvdata/cp1254.c: New file. * iconvdata/cp1255.c: New file. * iconvdata/cp1256.c: New file. * iconvdata/cp1257.c: New file. * iconvdata/ebcdic-dk-no-a.c: New file. * iconvdata/ebcdic-dk-no.c: New file. * iconvdata/ebcdic-es-a.c: New file. * iconvdata/ebcdic-es-s.c: New file. * iconvdata/ebcdic-es.c: New file. * iconvdata/ebcdic-fi-se-a.c: New file. * iconvdata/ebcdic-fi-se.c: New file. * iconvdata/ebcdic-fr.c: New file. * iconvdata/ebcdic-is-friss.c: New file. * iconvdata/ebcdic-it.c: New file. * iconvdata/ebcdic-pt.c: New file. * iconvdata/ebcdic-uk.c: New file. * iconvdata/ebcdic-us.c: New file. * iconvdata/ibm037.c: New file. * iconvdata/ibm038.c: New file. * iconvdata/ibm1004.c: New file. * iconvdata/ibm1026.c: New file. * iconvdata/ibm1047.c: New file. * iconvdata/ibm256.c: New file. * iconvdata/ibm273.c: New file. * iconvdata/ibm274.c: New file. * iconvdata/ibm275.c: New file. * iconvdata/ibm277.c: New file. * iconvdata/ibm278.c: New file. * iconvdata/ibm280.c: New file. * iconvdata/ibm281.c: New file. * iconvdata/ibm284.c: New file. * iconvdata/ibm285.c: New file. * iconvdata/ibm290.c: New file. * iconvdata/ibm297.c: New file. * iconvdata/ibm420.c: New file. * iconvdata/ibm423.c: New file. * iconvdata/ibm424.c: New file. * iconvdata/ibm437.c: New file. * iconvdata/ibm500.c: New file. * iconvdata/ibm850.c: New file. * iconvdata/ibm851.c: New file. * iconvdata/ibm852.c: New file. * iconvdata/ibm855.c: New file. * iconvdata/ibm857.c: New file. * iconvdata/ibm860.c: New file. * iconvdata/ibm861.c: New file. * iconvdata/ibm862.c: New file. * iconvdata/ibm863.c: New file. * iconvdata/ibm864.c: New file. * iconvdata/ibm865.c: New file. * iconvdata/ibm868.c: New file. * iconvdata/ibm869.c: New file. * iconvdata/ibm870.c: New file. * iconvdata/ibm871.c: New file. * iconvdata/ibm875.c: New file. * iconvdata/ibm880.c: New file. * iconvdata/ibm891.c: New file. * iconvdata/ibm903.c: New file. * iconvdata/ibm904.c: New file. * iconvdata/ibm905.c: New file. * iconvdata/ibm918.c: New file. * locale/iso-4217.def: Update. * localedata/locales/pt_BR: Correct. Patches by Andreas Jaeger. * stdio-common/vfscanf.h: Recognize nan and inf in floating-point formats. 1998-04-22 Andreas Jaeger <aj@arthur.rhein-neckar.de> * elf/dl-load.c (_dl_init_paths): ';' is also a terminal for LD_LIBRARY_PATH. 1998-04-22 Gordon Matzigkeit <gord@profitpress.com> * Makerules: Change occurances of `cd dir; cmd' to `cd dir && cmd'. * Makefile: Likewise. * posix/Makefile: Likewise. * sysdeps/mach/hurd/Makefile: Likewise. 1998-04-22 Gordon Matzigkeit <gord@profitpress.com> * sysdeps/mach/hurd/bits/dirent.h: New file. * sysdeps/mach/hurd/readdir64.c: New file. * sysdeps/mach/hurd/readdir64_r.c: New file. 1998-04-21 Gordon Matzigkeit <gord@profitpress.com> * stdio/stdio.h (vasprintf, __asprintf, asprintf, vdprintf, dprintf): Synchronize declarations with libio/stdio.h. 1998-04-21 Gordon Matzigkeit <gord@profitpress.com> * elf/dlerror.c (dlerror): Don't assume that __libc_internal_tsd_get is defined. __libc_getspecific is already well-protected, so just use it directly. 1998-04-22 Gordon Matzigkeit <gord@profitpress.com> * io/ftw.h (ftw): Fix typo. 1998-04-21 Gordon Matzigkeit <gord@profitpress.com> * sysdeps/gnu/utmp_file.c: Fix typo. 1998-04-22 11:06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * iconvdata/run-iconv-test.sh: Fix more portability bugs. When one part of a test fails move on to the next test. 1998-04-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/i386/bits/setjmp.h (_JMPBUF_UNWINDS): Compare addresses as pointers, not signed integers. 1998-04-22 11:06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-rw-r--r--ChangeLog226
-rw-r--r--iconv/gconv_int.h2
-rw-r--r--iconv/gconv_simple.c65
-rw-r--r--iconv/iconv_prog.c8
-rw-r--r--iconv/skeleton.c4
-rw-r--r--iconvdata/8bit-gap.c2
-rw-r--r--iconvdata/Makefile253
-rw-r--r--iconvdata/TESTS46
-rw-r--r--iconvdata/big5.c2
-rw-r--r--iconvdata/cns11643.h11
-rw-r--r--iconvdata/cns11643l1.h10
-rw-r--r--iconvdata/cp1250.c29
-rw-r--r--iconvdata/cp1251.c29
-rw-r--r--iconvdata/cp1252.c29
-rw-r--r--iconvdata/cp1253.c29
-rw-r--r--iconvdata/cp1254.c29
-rw-r--r--iconvdata/cp1255.c29
-rw-r--r--iconvdata/cp1256.c29
-rw-r--r--iconvdata/cp1257.c29
-rw-r--r--iconvdata/ebcdic-at-de-a.c2
-rw-r--r--iconvdata/ebcdic-at-de.c2
-rw-r--r--iconvdata/ebcdic-ca-fr.c2
-rw-r--r--iconvdata/ebcdic-dk-no-a.c29
-rw-r--r--iconvdata/ebcdic-dk-no.c29
-rw-r--r--iconvdata/ebcdic-es-a.c29
-rw-r--r--iconvdata/ebcdic-es-s.c29
-rw-r--r--iconvdata/ebcdic-es.c29
-rw-r--r--iconvdata/ebcdic-fi-se-a.c29
-rw-r--r--iconvdata/ebcdic-fi-se.c29
-rw-r--r--iconvdata/ebcdic-fr.c29
-rw-r--r--iconvdata/ebcdic-is-friss.c29
-rw-r--r--iconvdata/ebcdic-it.c29
-rw-r--r--iconvdata/ebcdic-pt.c29
-rw-r--r--iconvdata/ebcdic-uk.c29
-rw-r--r--iconvdata/ebcdic-us.c29
-rw-r--r--iconvdata/euccn.c2
-rw-r--r--iconvdata/eucjp.c2
-rw-r--r--iconvdata/euckr.c4
-rw-r--r--iconvdata/euctw.c2
-rw-r--r--iconvdata/gb2312.h4
-rw-r--r--iconvdata/gconv-modules501
-rw-r--r--iconvdata/hp-roman8.c2
-rw-r--r--iconvdata/ibm037.c29
-rw-r--r--iconvdata/ibm038.c29
-rw-r--r--iconvdata/ibm1004.c29
-rw-r--r--iconvdata/ibm1026.c29
-rw-r--r--iconvdata/ibm1047.c29
-rw-r--r--iconvdata/ibm256.c29
-rw-r--r--iconvdata/ibm273.c29
-rw-r--r--iconvdata/ibm274.c29
-rw-r--r--iconvdata/ibm275.c29
-rw-r--r--iconvdata/ibm277.c29
-rw-r--r--iconvdata/ibm278.c29
-rw-r--r--iconvdata/ibm280.c29
-rw-r--r--iconvdata/ibm281.c29
-rw-r--r--iconvdata/ibm284.c29
-rw-r--r--iconvdata/ibm285.c29
-rw-r--r--iconvdata/ibm290.c29
-rw-r--r--iconvdata/ibm297.c29
-rw-r--r--iconvdata/ibm420.c29
-rw-r--r--iconvdata/ibm423.c29
-rw-r--r--iconvdata/ibm424.c29
-rw-r--r--iconvdata/ibm437.c29
-rw-r--r--iconvdata/ibm500.c29
-rw-r--r--iconvdata/ibm850.c29
-rw-r--r--iconvdata/ibm851.c29
-rw-r--r--iconvdata/ibm852.c29
-rw-r--r--iconvdata/ibm855.c29
-rw-r--r--iconvdata/ibm857.c29
-rw-r--r--iconvdata/ibm860.c29
-rw-r--r--iconvdata/ibm861.c29
-rw-r--r--iconvdata/ibm862.c29
-rw-r--r--iconvdata/ibm863.c29
-rw-r--r--iconvdata/ibm864.c29
-rw-r--r--iconvdata/ibm865.c29
-rw-r--r--iconvdata/ibm868.c29
-rw-r--r--iconvdata/ibm869.c29
-rw-r--r--iconvdata/ibm870.c29
-rw-r--r--iconvdata/ibm871.c29
-rw-r--r--iconvdata/ibm875.c29
-rw-r--r--iconvdata/ibm880.c29
-rw-r--r--iconvdata/ibm891.c29
-rw-r--r--iconvdata/ibm903.c29
-rw-r--r--iconvdata/ibm904.c29
-rw-r--r--iconvdata/ibm905.c29
-rw-r--r--iconvdata/ibm918.c29
-rw-r--r--iconvdata/iso646.c788
-rw-r--r--iconvdata/iso6937.c2
-rw-r--r--iconvdata/iso8859-1.c2
-rw-r--r--iconvdata/iso8859-10.c2
-rw-r--r--iconvdata/iso8859-2.c2
-rw-r--r--iconvdata/iso8859-3.c2
-rw-r--r--iconvdata/iso8859-4.c2
-rw-r--r--iconvdata/iso8859-5.c2
-rw-r--r--iconvdata/iso8859-6.c2
-rw-r--r--iconvdata/iso8859-7.c2
-rw-r--r--iconvdata/iso8859-8.c2
-rw-r--r--iconvdata/iso8859-9.c2
-rw-r--r--iconvdata/jis0212.h8
-rw-r--r--iconvdata/johab.c4
-rw-r--r--iconvdata/koi-8.c2
-rw-r--r--iconvdata/koi8-r.c2
-rw-r--r--iconvdata/koi8-r.h2
-rw-r--r--iconvdata/ksc5601.h9
-rw-r--r--iconvdata/latin-greek-1.c2
-rw-r--r--iconvdata/latin-greek-1.h2
-rw-r--r--iconvdata/latin-greek.c2
-rw-r--r--iconvdata/latin-greek.h2
-rw-r--r--iconvdata/sjis.c2
-rw-r--r--iconvdata/t61.c6
-rw-r--r--iconvdata/testdata/CSA_Z243.4-1985-16
-rw-r--r--iconvdata/testdata/CSA_Z243.4-1985-1..UCS2bin0 -> 392 bytes
-rw-r--r--iconvdata/testdata/CSA_Z243.4-1985-26
-rw-r--r--iconvdata/testdata/CSA_Z243.4-1985-2..UCS4bin0 -> 784 bytes
-rw-r--r--iconvdata/testdata/DIN_660036
-rw-r--r--iconvdata/testdata/DIN_66003..UTF86
-rw-r--r--iconvdata/testdata/DS_20896
-rw-r--r--iconvdata/testdata/DS_2089..UTF86
-rw-r--r--iconvdata/testdata/ES6
-rw-r--r--iconvdata/testdata/ES..UTF86
-rw-r--r--iconvdata/testdata/ES26
-rw-r--r--iconvdata/testdata/ES2..UTF86
-rw-r--r--iconvdata/testdata/GB_1988-806
-rw-r--r--iconvdata/testdata/GB_1988-80..UTF86
-rw-r--r--iconvdata/testdata/IT6
-rw-r--r--iconvdata/testdata/IT..UTF86
-rw-r--r--iconvdata/testdata/JIS_C6220-1969-RO6
-rw-r--r--iconvdata/testdata/JIS_C6220-1969-RO..UTF86
-rw-r--r--iconvdata/testdata/JIS_C6229-1984-B6
-rw-r--r--iconvdata/testdata/JIS_C6229-1984-B..UTF86
-rw-r--r--iconvdata/testdata/JUS_I.B1.0026
-rw-r--r--iconvdata/testdata/JUS_I.B1.002..UTF86
-rw-r--r--iconvdata/testdata/KSC56366
-rw-r--r--iconvdata/testdata/KSC5636..UTF86
-rw-r--r--iconvdata/testdata/MSZ_7795.36
-rw-r--r--iconvdata/testdata/MSZ_7795.3..UTF86
-rw-r--r--iconvdata/testdata/NC_NC00-106
-rw-r--r--iconvdata/testdata/NC_NC00-10..UTF86
-rw-r--r--iconvdata/testdata/NF_Z_62-0106
-rw-r--r--iconvdata/testdata/NF_Z_62-010..UTF86
-rw-r--r--iconvdata/testdata/NF_Z_62-010_19736
-rw-r--r--iconvdata/testdata/NF_Z_62-010_1973..UTF86
-rw-r--r--iconvdata/testdata/NS_4551-16
-rw-r--r--iconvdata/testdata/NS_4551-1..UTF86
-rw-r--r--iconvdata/testdata/NS_4551-26
-rw-r--r--iconvdata/testdata/NS_4551-2..UTF86
-rw-r--r--iconvdata/testdata/PT6
-rw-r--r--iconvdata/testdata/PT..UTF86
-rw-r--r--iconvdata/testdata/PT26
-rw-r--r--iconvdata/testdata/PT2..UTF86
-rw-r--r--iconvdata/testdata/SEN_850200_B6
-rw-r--r--iconvdata/testdata/SEN_850200_B..UTF86
-rw-r--r--iconvdata/testdata/SEN_850200_C6
-rw-r--r--iconvdata/testdata/SEN_850200_C..UTF86
-rw-r--r--iconvdata/uhc.c6
-rw-r--r--io/ftw.h4
-rw-r--r--localedata/locales/pt_BR2
-rw-r--r--posix/Makefile2
-rw-r--r--stdio-common/vfscanf.c52
-rw-r--r--stdio/stdio.h20
-rw-r--r--sysdeps/gnu/utmp_file.c2
-rw-r--r--sysdeps/mach/hurd/Makefile4
-rw-r--r--sysdeps/mach/hurd/bits/dirent.h67
-rw-r--r--sysdeps/mach/hurd/readdir64.c51
-rw-r--r--sysdeps/mach/hurd/readdir64_r.c57
165 files changed, 4222 insertions, 187 deletions
diff --git a/ChangeLog b/ChangeLog
index d8c3631b91..2086314328 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,232 @@
+<<<<<<< ChangeLog
+1998-04-23 22:43 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c (fillin_rpath): Handle empty element returned by
+ strsep as current directory.
+
+ * iconv/gconv_builtin.h: Add aliases unicode and unicodebig for
+ Java. Add definitions for unicodelittle implementation.
+ * iconv/gconv_int.h: Add declaration for unicodelittle functions.
+ * iconv/gconv_simple.c: Define unicodelittle functions.
+
+ * iconv/iconv_prog.c: Make program print information about position
+ of illegal character in input.
+
+ * iconv/skeleton.c: Use __strcasecmp instead of __strcasestr for
+ comparison of charset name.
+ * iconvdata/big5.c (CHARSET_NAME): Adapt for this.
+ * iconvdata/ebcdic-at-de-a.c: Likewise.
+ * iconvdata/ebcdic-at-de.c: Likewise.
+ * iconvdata/ebcdic-ca-fr.c: Likewise.
+ * iconvdata/euccn.c: Likewise.
+ * iconvdata/eucjp.c: Likewise.
+ * iconvdata/euckr.c: Likewise.
+ * iconvdata/euctw.c: Likewise.
+ * iconvdata/hp-roman8.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/iso8859-10.c: Likewise.
+ * iconvdata/iso8859-2.c: Likewise.
+ * iconvdata/iso8859-3.c: Likewise.
+ * iconvdata/iso8859-4.c: Likewise.
+ * iconvdata/iso8859-5.c: Likewise.
+ * iconvdata/iso8859-6.c: Likewise.
+ * iconvdata/iso8859-7.c: Likewise.
+ * iconvdata/iso8859-8.c: Likewise.
+ * iconvdata/iso8859-9.c: Likewise.
+ * iconvdata/johab.c: Likewise.
+ * iconvdata/koi-8.c: Likewise.
+ * iconvdata/koi8-r.c: Likewise.
+ * iconvdata/latin-greek-1.c: Likewise.
+ * iconvdata/latin-greek.c: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/uhc.c: Likewise.
+
+ * iconvdata/iso646.c: Add support for more ISO 646 variants.
+ * iconvdata/TESTS: Add tests for ISO646 module.
+ * iconvdata/gconv-modules: Add new modules.
+ * iconvdata/testdate/CSA_Z243.4-1985-1: New tests for ISO646 module.
+ * iconvdata/testdate/CSA_Z243.4-1985-1..UCS2: Likewise.
+ * iconvdata/testdate/CSA_Z243.4-1985-2: Likewise.
+ * iconvdata/testdate/CSA_Z243.4-1985-2..UCS4: Likewise.
+ * iconvdata/testdate/DIN_66003: Likewise.
+ * iconvdata/testdate/DIN_66003..UTF8: Likewise.
+ * iconvdata/testdate/DS_2089: Likewise.
+ * iconvdata/testdate/DS_2089..UTF8: Likewise.
+ * iconvdata/testdate/ES: Likewise.
+ * iconvdata/testdate/ES..UTF8: Likewise.
+ * iconvdata/testdate/ES2: Likewise.
+ * iconvdata/testdate/ES2..UTF8: Likewise.
+ * iconvdata/testdate/GB_1988-80: Likewise.
+ * iconvdata/testdate/GB_1988-80..UTF8: Likewise.
+ * iconvdata/testdate/IT: Likewise.
+ * iconvdata/testdate/IT..UTF8: Likewise.
+ * iconvdata/testdate/JIS_C6220-1969-RO: Likewise.
+ * iconvdata/testdate/JIS_C6220-1969-RO..UTF8: Likewise.
+ * iconvdata/testdate/JIS_C6229-1984-B: Likewise.
+ * iconvdata/testdate/JIS_C6229-1984-B..UTF8: Likewise.
+ * iconvdata/testdate/JUS_I.B1.002: Likewise.
+ * iconvdata/testdate/JUS_I.B1.002..UTF8: Likewise.
+ * iconvdata/testdate/KSC5636: Likewise.
+ * iconvdata/testdate/KSC5636..UTF8: Likewise.
+ * iconvdata/testdate/MSZ_7795.3: Likewise.
+ * iconvdata/testdate/MSZ_7795.3..UTF8: Likewise.
+ * iconvdata/testdate/NC_NC00-10: Likewise.
+ * iconvdata/testdate/NC_NC00-10..UTF8: Likewise.
+ * iconvdata/testdate/NF_Z_62-010: Likewise.
+ * iconvdata/testdate/NF_Z_62-010..UTF8: Likewise.
+ * iconvdata/testdate/NF_Z_62-010_1973: Likewise.
+ * iconvdata/testdate/NF_Z_62-010_1973..UTF8: Likewise.
+ * iconvdata/testdate/NS_4551-1: Likewise.
+ * iconvdata/testdate/NS_4551-1..UTF8: Likewise.
+ * iconvdata/testdate/NS_4551-2: Likewise.
+ * iconvdata/testdate/NS_4551-2..UTF8: Likewise.
+ * iconvdata/testdate/PT: Likewise.
+ * iconvdata/testdate/PT..UTF8: Likewise.
+ * iconvdata/testdate/PT2: Likewise.
+ * iconvdata/testdate/PT2..UTF8: Likewise.
+ * iconvdata/testdate/SEN_850200_B: Likewise.
+ * iconvdata/testdate/SEN_850200_B..UTF8: Likewise.
+ * iconvdata/testdate/SEN_850200_C: Likewise.
+ * iconvdata/testdate/SEN_850200_C..UTF8: Likewise.
+
+ * iconvdata/cns11643.h: Use uint32_t instead of wchar_t.
+ * iconvdata/cns11643l1.h: Likewise.
+ * iconvdata/latin-greek-1.h: Likewise.
+ * iconvdata/latin-greek.h: Likewise.
+ * iconvdata/koi8-r.h: Likewise.
+ * iconvdata/jis0212.h: Likewise.
+ * iconvdata/gb2312.h: Likewise.
+ * iconvdata/ksc5601.h: Likewise.
+
+ * iconvdata/8bit-gap.c: Use 32 bit type for idx element of struct gap.
+
+ * iconvdata/Makefile: Add rules for lots of more modules.
+ * iconvdata/cp1250.c: New file.
+ * iconvdata/cp1251.c: New file.
+ * iconvdata/cp1252.c: New file.
+ * iconvdata/cp1253.c: New file.
+ * iconvdata/cp1254.c: New file.
+ * iconvdata/cp1255.c: New file.
+ * iconvdata/cp1256.c: New file.
+ * iconvdata/cp1257.c: New file.
+ * iconvdata/ebcdic-dk-no-a.c: New file.
+ * iconvdata/ebcdic-dk-no.c: New file.
+ * iconvdata/ebcdic-es-a.c: New file.
+ * iconvdata/ebcdic-es-s.c: New file.
+ * iconvdata/ebcdic-es.c: New file.
+ * iconvdata/ebcdic-fi-se-a.c: New file.
+ * iconvdata/ebcdic-fi-se.c: New file.
+ * iconvdata/ebcdic-fr.c: New file.
+ * iconvdata/ebcdic-is-friss.c: New file.
+ * iconvdata/ebcdic-it.c: New file.
+ * iconvdata/ebcdic-pt.c: New file.
+ * iconvdata/ebcdic-uk.c: New file.
+ * iconvdata/ebcdic-us.c: New file.
+ * iconvdata/ibm037.c: New file.
+ * iconvdata/ibm038.c: New file.
+ * iconvdata/ibm1004.c: New file.
+ * iconvdata/ibm1026.c: New file.
+ * iconvdata/ibm1047.c: New file.
+ * iconvdata/ibm256.c: New file.
+ * iconvdata/ibm273.c: New file.
+ * iconvdata/ibm274.c: New file.
+ * iconvdata/ibm275.c: New file.
+ * iconvdata/ibm277.c: New file.
+ * iconvdata/ibm278.c: New file.
+ * iconvdata/ibm280.c: New file.
+ * iconvdata/ibm281.c: New file.
+ * iconvdata/ibm284.c: New file.
+ * iconvdata/ibm285.c: New file.
+ * iconvdata/ibm290.c: New file.
+ * iconvdata/ibm297.c: New file.
+ * iconvdata/ibm420.c: New file.
+ * iconvdata/ibm423.c: New file.
+ * iconvdata/ibm424.c: New file.
+ * iconvdata/ibm437.c: New file.
+ * iconvdata/ibm500.c: New file.
+ * iconvdata/ibm850.c: New file.
+ * iconvdata/ibm851.c: New file.
+ * iconvdata/ibm852.c: New file.
+ * iconvdata/ibm855.c: New file.
+ * iconvdata/ibm857.c: New file.
+ * iconvdata/ibm860.c: New file.
+ * iconvdata/ibm861.c: New file.
+ * iconvdata/ibm862.c: New file.
+ * iconvdata/ibm863.c: New file.
+ * iconvdata/ibm864.c: New file.
+ * iconvdata/ibm865.c: New file.
+ * iconvdata/ibm868.c: New file.
+ * iconvdata/ibm869.c: New file.
+ * iconvdata/ibm870.c: New file.
+ * iconvdata/ibm871.c: New file.
+ * iconvdata/ibm875.c: New file.
+ * iconvdata/ibm880.c: New file.
+ * iconvdata/ibm891.c: New file.
+ * iconvdata/ibm903.c: New file.
+ * iconvdata/ibm904.c: New file.
+ * iconvdata/ibm905.c: New file.
+ * iconvdata/ibm918.c: New file.
+
+ * locale/iso-4217.def: Update.
+ * localedata/locales/pt_BR: Correct. Patches by Andreas Jaeger.
+
+ * stdio-common/vfscanf.h: Recognize nan and inf in floating-point
+ formats.
+
+1998-04-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/dl-load.c (_dl_init_paths): ';' is also a terminal for
+ LD_LIBRARY_PATH.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * Makerules: Change occurances of `cd dir; cmd' to `cd dir && cmd'.
+ * Makefile: Likewise.
+ * posix/Makefile: Likewise.
+ * sysdeps/mach/hurd/Makefile: Likewise.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/mach/hurd/bits/dirent.h: New file.
+ * sysdeps/mach/hurd/readdir64.c: New file.
+ * sysdeps/mach/hurd/readdir64_r.c: New file.
+
+1998-04-21 Gordon Matzigkeit <gord@profitpress.com>
+
+ * stdio/stdio.h (vasprintf, __asprintf, asprintf, vdprintf,
+ dprintf): Synchronize declarations with libio/stdio.h.
+
+1998-04-21 Gordon Matzigkeit <gord@profitpress.com>
+
+ * elf/dlerror.c (dlerror): Don't assume that
+ __libc_internal_tsd_get is defined. __libc_getspecific is already
+ well-protected, so just use it directly.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * io/ftw.h (ftw): Fix typo.
+
+1998-04-21 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/gnu/utmp_file.c: Fix typo.
+
+1998-04-22 11:06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/run-iconv-test.sh: Fix more portability bugs. When
+ one part of a test fails move on to the next test.
+
1998-04-24 5:45 Richard Henderson <rth@cygnus.com>
* sysdeps/alpha/bits/setjmp.h (_JMPBUF_UNWINDS): Added.
-Wed Apr 22 11:06:09 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+1998-04-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/i386/bits/setjmp.h (_JMPBUF_UNWINDS): Compare addresses
+ as pointers, not signed integers.
+
+1998-04-22 11:06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/bits/setjmp.h (_JMPBUF_UNWINDS): Added.
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index 86e892f874..80cced4d4a 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -158,6 +158,8 @@ __BUILTIN_TRANS (__gconv_transform_utf8_internal);
__BUILTIN_TRANS (__gconv_transform_internal_utf8);
__BUILTIN_TRANS (__gconv_transform_ucs2_internal);
__BUILTIN_TRANS (__gconv_transform_internal_ucs2);
+__BUILTIN_TRANS (__gconv_transform_ucs2little_internal);
+__BUILTIN_TRANS (__gconv_transform_internal_ucs2little);
__BUILTIN_TRANS (__gconv_transform_internal_ucs4);
# undef __BUITLIN_TRANS
diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c
index 95b4a66daf..c491c97ccd 100644
--- a/iconv/gconv_simple.c
+++ b/iconv/gconv_simple.c
@@ -418,3 +418,68 @@ internal_ucs4_loop (const unsigned char **inptrp, const unsigned char *inend,
#endif
#include <iconv/loop.c>
#include <iconv/skeleton.c>
+
+
+/* Convert from UCS2 in little endian to the internal (UCS4-like) format. */
+#define DEFINE_INIT 0
+#define DEFINE_FINI 0
+#define MIN_NEEDED_FROM 2
+#define MIN_NEEDED_TO 4
+#define FROM_DIRECTION 1
+#define FROM_LOOP ucs2little_internal_loop
+#define TO_LOOP ucs2little_internal_loop /* This is not used.*/
+#define FUNCTION_NAME __gconv_transform_ucs2little_internal
+
+#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
+#define LOOPFCT FROM_LOOP
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define BODY \
+ *((uint32_t *) outptr)++ = *((uint16_t *) inptr)++;
+#else
+# define BODY \
+ *((uint32_t *) outptr)++ = bswap_16 (*((uint16_t *) inptr)++);
+#endif
+#include <iconv/loop.c>
+#include <iconv/skeleton.c>
+
+
+/* Convert from the internal (UCS4-like) format to UCS2 in little endian. */
+#define DEFINE_INIT 0
+#define DEFINE_FINI 0
+#define MIN_NEEDED_FROM 4
+#define MIN_NEEDED_TO 2
+#define FROM_DIRECTION 1
+#define FROM_LOOP internal_ucs2little_loop
+#define TO_LOOP internal_ucs2little_loop /* This is not used.*/
+#define FUNCTION_NAME __gconv_transform_internal_ucs2little
+
+#define MIN_NEEDED_INPUT MIN_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT MIN_NEEDED_TO
+#define LOOPFCT FROM_LOOP
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define BODY \
+ { \
+ if (*((uint32_t *) inptr) >= 0x10000) \
+ { \
+ result = GCONV_ILLEGAL_INPUT; \
+ break; \
+ } \
+ *((uint16_t *) outptr)++ = *((uint32_t *) inptr)++; \
+ }
+#else
+# define BODY \
+ { \
+ if (*((uint32_t *) inptr) >= 0x10000) \
+ { \
+ result = GCONV_ILLEGAL_INPUT; \
+ break; \
+ } \
+ /* Please note that we use the `uint32_t' from-pointer as an `uint16_t' \
+ pointer which works since we are on a little endian machine. */ \
+ *((uint16_t *) outptr)++ = bswap_16 (*((uint16_t *) inptr)); \
+ inptr += 4; \
+ }
+#endif
+#include <iconv/loop.c>
+#include <iconv/skeleton.c>
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index 2452a88c5e..5a08a21819 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -298,6 +298,7 @@ static int
process_block (iconv_t cd, const char *addr, size_t len, FILE *output)
{
#define OUTBUF_SIZE 32768
+ const char *start = addr;
char outbuf[OUTBUF_SIZE];
char *outptr;
size_t outlen;
@@ -332,7 +333,8 @@ conversion stopped due to problem in writing the output"));
switch (errno)
{
case EILSEQ:
- error (0, 0, _("illegal input sequence"));
+ error (0, 0, _("illegal input sequence at position %ld"),
+ addr - start);
break;
case EINVAL:
error (0, 0, _("\
@@ -448,7 +450,7 @@ insert_print_list (const void *nodep, VISIT value, int level)
if (value == leaf || value == postorder)
{
const struct gconv_alias *s = *(const struct gconv_alias **) nodep;
- tsearch (s->fromname, &printlist, (__compar_fn_t) strcoll);
+ tsearch (s->fromname, &printlist, (__compar_fn_t) strverscmp);
}
}
@@ -487,7 +489,7 @@ do_print (const void *nodep, VISIT value, int level)
}
}
else
- not_first = 1;
+ not_first = 1;
fwrite (s, len, 1, stdout);
column += len;
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index 8421941a1e..78f584e9fe 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -137,9 +137,9 @@ int
gconv_init (struct gconv_step *step)
{
/* Determine which direction. */
- if (__strcasestr (step->from_name, CHARSET_NAME) != NULL)
+ if (__strcasecmp (step->from_name, CHARSET_NAME) == 0)
step->data = &from_object;
- else if (__strcasestr (step->to_name, CHARSET_NAME) != NULL)
+ else if (__strcasecmp (step->to_name, CHARSET_NAME) == 0)
step->data = &to_object;
else
return GCONV_NOCONV;
diff --git a/iconvdata/8bit-gap.c b/iconvdata/8bit-gap.c
index 4065a6d777..137a61b047 100644
--- a/iconvdata/8bit-gap.c
+++ b/iconvdata/8bit-gap.c
@@ -25,7 +25,7 @@ struct gap
{
uint16_t start;
uint16_t end;
- int16_t idx;
+ int32_t idx;
};
/* Now we can include the tables. */
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index d8fda78330..45d5dad936 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -22,12 +22,21 @@
subdir := iconvdata
# Names of all the shared objects which implement the transformations.
-modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
- ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 \
- T.61 ISO_6937 SJIS KOI-8 KOI8-R LATIN-GREEK LATIN-GREEK-1 \
- HP-ROMAN8 EBCDIC-AT-DE EBCDIC-AT-DE-A EBCDIC-CA-FR \
- EUC-KR UHC JOHAB libJIS libKSC BIG5 EUC-JP libGB \
- EUC-CN libCNS EUC-TW ISO646
+modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
+ ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 \
+ T.61 ISO_6937 SJIS KOI-8 KOI8-R LATIN-GREEK LATIN-GREEK-1 \
+ HP-ROMAN8 EBCDIC-AT-DE EBCDIC-AT-DE-A EBCDIC-CA-FR \
+ EUC-KR UHC JOHAB libJIS libKSC BIG5 EUC-JP libGB \
+ EUC-CN libCNS EUC-TW ISO646 EBCDIC-DK-NO EBCDIC-DK-NO-A \
+ EBCDIC-ES EBCDIC-ES-A EBCDIC-ES-S EBCDIC-FI-SE EBCDIC-FI-SE-A \
+ EBCDIC-FR EBCDIC-IS-FRISS EBCDIC-IT EBCDIC-PT EBCDIC-UK \
+ EBCDIC-US IBM037 IBM038 IBM256 IBM273 IBM274 IBM275 IBM277 \
+ IBM278 IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 \
+ IBM423 IBM424 IBM437 IBM500 IBM850 IBM851 IBM852 IBM855 \
+ IBM857 IBM860 IBM861 IBM862 IBM863 IBM864 IBM865 IBM868 \
+ IBM869 IBM870 IBM871 IBM875 IBM880 IBM891 IBM903 IBM904 \
+ IBM905 IBM918 IBM1004 IBM1026 IBM1047 CP1250 CP1251 CP1252 \
+ CP1253 CP1254 CP1255 CP1256 CP1257
modules.so := $(addsuffix .so, $(modules))
@@ -55,6 +64,71 @@ HP-ROMAN8-routines := hp-roman8
EBCDIC-AT-DE-routines := ebcdic-at-de
EBCDIC-AT-DE-A-routines := ebcdic-at-de-a
EBCDIC-CA-FR-routines := ebcdic-ca-fr
+EBCDIC-DK-NO-routines := ebcdic-dk-no
+EBCDIC-DK-NO-A_routines := ebcdic-dk-no-a
+EBCDIC-ES-routines := ebcdic-es
+EBCDIC-ES-A-routines := ebcdic-es-a
+EBCDIC-ES-S-routines := ebcdic-es-s
+EBCDIC-FI-SE-routines := ebcdic-fi-se
+EBCDIC-FI-SE-A-routines := ebcdic-fi-se-a
+EBCDIC-FR-routines := ebcdic-fr
+EBCDIC-IS-FRISS-routines := ebcdic-is-friss
+EBCDIC-IT-routines := ebcdic-it
+EBCDIC-PT-routines := ebcdic-pt
+EBCDIC-UK-routines := ebcdic-uk
+EBCDIC-US-routines := ebcdic-us
+IBM037-routines := ibm037
+IBM038-routines := ibm038
+IBM256-routines := ibm256
+IBM273-routines := ibm273
+IBM274-routines := ibm274
+IBM275-routines := ibm275
+IBM277-routines := ibm277
+IBM278-routines := ibm278
+IBM280-routines := ibm280
+IBM281-routines := ibm281
+IBM284-routines := ibm284
+IBM285-routines := ibm285
+IBM290-routines := ibm290
+IBM297-routines := ibm297
+IBM420-routines := ibm420
+IBM423-routines := ibm423
+IBM424-routines := ibm424
+IBM437-routines := ibm437
+IBM500-routines := ibm500
+IBM850-routines := ibm850
+IBM851-routines := ibm851
+IBM852-routines := ibm852
+IBM855-routines := ibm855
+IBM857-routines := ibm857
+IBM860-routines := ibm860
+IBM861-routines := ibm861
+IBM862-routines := ibm862
+IBM863-routines := ibm863
+IBM864-routines := ibm864
+IBM865-routines := ibm865
+IBM868-routines := ibm868
+IBM869-routines := ibm869
+IBM870-routines := ibm870
+IBM871-routines := ibm871
+IBM875-routines := ibm875
+IBM880-routines := ibm880
+IBM891-routines := ibm891
+IBM903-routines := ibm903
+IBM904-routines := ibm904
+IBM905-routines := ibm905
+IBM918-routines := ibm918
+IBM1004-routines := ibm1004
+IBM1026-routines := ibm1026
+IBM1047-routines := ibm1047
+CP1250-routines := cp1250
+CP1251-routines := cp1251
+CP1252-routines := cp1252
+CP1253-routines := cp1253
+CP1254-routines := cp1254
+CP1255-routines := cp1255
+CP1256-routines := cp1256
+CP1257-routines := cp1257
EUC-KR-routines := euckr
JOHAB-routines := johab
UHC-routines := uhc
@@ -95,7 +169,19 @@ distribute := 8bit-generic.c 8bit-gap.c gap.pl gaptab.pl gconv-modules \
extra-module.mk euckr.c johab.c uhc.c ksc5601.c ksc5601.h \
iso646.c big5.c eucjp.c gb2312.c gb2312.h euccn.c euctw.c \
cns11643l1.c cns11643l1.h cns11643.h cns11643.c \
- run-iconv-test.sh $(wildcard testdata/*)
+ run-iconv-test.sh $(wildcard testdata/*) ebcdic-dk-no.c \
+ ebcdic-dk-no-a.c ebcdic-es.c ebcdic-es-a.c ebcdic-es-s.c \
+ ebcdic-fi-se.c ebcdic-fi-se-a.c ebcdic-fr.c ebcdic-is-friss.c \
+ ebcdic-it.c ebcdic-pt.c ebcdic-uk.c ebcdic-us.c ibm037.c \
+ ibm038.c ibm256.c ibm273.c ibm274.c ibm275.c ibm277.c \
+ ibm278.c ibm280.c ibm281.c ibm284.c ibm285.c ibm290.c \
+ ibm297.c ibm420.c ibm423.c ibm424.c ibm437.c ibm500.c \
+ ibm850.c ibm851.c ibm852.c ibm855.c ibm857.c ibm860.c \
+ ibm861.c ibm862.c ibm863.c ibm864.c ibm865.c ibm868.c \
+ ibm869.c ibm870.c ibm871.c ibm875.c ibm880.c ibm891.c \
+ ibm903.c ibm904.c ibm905.c ibm918.c ibm1004.c ibm1026.c \
+ ibm1047.c cp1250.c cp1251.c cp1252.c cp1253.c cp1254.c \
+ cp1255.c cp1256.c cp1257.c
# We build the transformation modules only when we build shared libs.
ifeq (yes,$(build-shared))
@@ -124,7 +210,7 @@ install-others = $(addprefix $(inst_gconvdir)/, $(modules.so)) \
# If we have the localedata add-on available we can build the conversion
# tables for numerous charsets.
define generate-8bit-table
-( echo "static const wchar_t to_ucs4[256] = {"; \
+( echo "static const uint32_t to_ucs4[256] = {"; \
sed -e '/^[^[:space:]]*[[:space:]]*.x00/d' -e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/ [0x\1] = 0x\2,/p' -e d $^ | sort -u; \
echo "};"; \
echo "static const char from_ucs4[] = {"; \
@@ -135,10 +221,17 @@ endef
sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-5.h \
iso8859-6.h iso8859-7.h iso8859-8.h iso8859-9.h \
iso8859-10.h koi-8.h hp-roman8.h ebcdic-at-de.h \
- ebcdic-at-de-a.h ebcdic-ca-fr.h
+ ebcdic-at-de-a.h ebcdic-ca-fr.h ebcdic-dk-no.h \
+ ebcdic-dk-no-a.h ebcdic-es.h ebcdic-es-a.h \
+ ebcdic-es-s.h ebcdic-fi-se.h ebcdic-fi-se-a.h \
+ ebcdic-fr.h ebcdic-is-friss.h ebcdic-it.h \
+ ebcdic-pt.h ebcdic-uk.h ebcdic-us.h ibm037.h \
+ ibm038.h ibm274.h ibm275.h ibm423.h ibm424.h \
+ ibm500.h ibm870.h ibm871.h ibm891.h ibm903.h \
+ ibm904.h ibm905.h ibm1047.h
define generate-8bit-gap-table
-( echo "static const wchar_t to_ucs4[256] = {"; \
+( echo "static const uint32_t to_ucs4[256] = {"; \
sed -e '/^[^[:space:]]*[[:space:]]*.x00/d' -e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/ [0x\1] = 0x\2,/p' -e d $^ | sort -u; \
echo "};"; \
echo "static struct gap from_idx[] = {"; \
@@ -150,7 +243,15 @@ define generate-8bit-gap-table
echo "};" ) > $@.new && rm -f $@ && mv $@.new $@
endef
-perl-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h
+perl-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \
+ ibm256.h ibm273.h ibm277.h ibm278.h ibm280.h \
+ ibm281.h ibm284.h ibm285.h ibm290.h ibm297.h \
+ ibm420.h ibm437.h ibm850.h ibm851.h ibm852.h \
+ ibm855.h ibm857.h ibm860.h ibm861.h ibm862.h \
+ ibm863.h ibm864.h ibm865.h ibm868.h ibm869.h \
+ ibm875.h ibm880.h ibm918.h ibm1004.h ibm1026.h \
+ cp1250.h cp1251.h cp1252.h cp1253.h cp1254.h \
+ cp1255.h cp1256.h cp1257.h
# The headers must be generated before the compilation.
before-compile = $(sed-generated-headers) $(perl-generated-headers)
@@ -188,6 +289,58 @@ ebcdic-at-de-a.h: ../localedata/charmaps/EBCDIC-AT-DE-A Makefile
$(generate-8bit-table)
ebcdic-ca-fr.h: ../localedata/charmaps/EBCDIC-CA-FR Makefile
$(generate-8bit-table)
+ebcdic-dk-no.h: ../localedata/charmaps/EBCDIC-DK-NO Makefile
+ $(generate-8bit-table)
+ebcdic-dk-no-a.h: ../localedata/charmaps/EBCDIC-DK-NO-A Makefile
+ $(generate-8bit-table)
+ebcdic-es.h: ../localedata/charmaps/EBCDIC-ES Makefile
+ $(generate-8bit-table)
+ebcdic-es-a.h: ../localedata/charmaps/EBCDIC-ES-A Makefile
+ $(generate-8bit-table)
+ebcdic-es-s.h: ../localedata/charmaps/EBCDIC-ES-S Makefile
+ $(generate-8bit-table)
+ebcdic-fi-se.h: ../localedata/charmaps/EBCDIC-FI-SE Makefile
+ $(generate-8bit-table)
+ebcdic-fi-se-a.h: ../localedata/charmaps/EBCDIC-FI-SE-A Makefile
+ $(generate-8bit-table)
+ebcdic-fr.h: ../localedata/charmaps/EBCDIC-FR Makefile
+ $(generate-8bit-table)
+ebcdic-is-friss.h: ../localedata/charmaps/EBCDIC-IS-FRISS Makefile
+ $(generate-8bit-table)
+ebcdic-it.h: ../localedata/charmaps/EBCDIC-IT Makefile
+ $(generate-8bit-table)
+ebcdic-pt.h: ../localedata/charmaps/EBCDIC-PT Makefile
+ $(generate-8bit-table)
+ebcdic-uk.h: ../localedata/charmaps/EBCDIC-UK Makefile
+ $(generate-8bit-table)
+ebcdic-us.h: ../localedata/charmaps/EBCDIC-US Makefile
+ $(generate-8bit-table)
+ibm037.h: ../localedata/charmaps/IBM037 Makefile
+ $(generate-8bit-table)
+ibm038.h: ../localedata/charmaps/IBM038 Makefile
+ $(generate-8bit-table)
+ibm274.h: ../localedata/charmaps/IBM274 Makefile
+ $(generate-8bit-table)
+ibm275.h: ../localedata/charmaps/IBM275 Makefile
+ $(generate-8bit-table)
+ibm423.h: ../localedata/charmaps/IBM423 Makefile
+ $(generate-8bit-table)
+ibm500.h: ../localedata/charmaps/IBM500 Makefile
+ $(generate-8bit-table)
+ibm870.h: ../localedata/charmaps/IBM870 Makefile
+ $(generate-8bit-table)
+ibm871.h: ../localedata/charmaps/IBM871 Makefile
+ $(generate-8bit-table)
+ibm891.h: ../localedata/charmaps/IBM891 Makefile
+ $(generate-8bit-table)
+ibm903.h: ../localedata/charmaps/IBM903 Makefile
+ $(generate-8bit-table)
+ibm904.h: ../localedata/charmaps/IBM904 Makefile
+ $(generate-8bit-table)
+ibm905.h: ../localedata/charmaps/IBM905 Makefile
+ $(generate-8bit-table)
+ibm1047.h: ../localedata/charmaps/IBM1047 Makefile
+ $(generate-8bit-table)
ifneq ($(PERL),no)
koi8-r.h: ../localedata/charmaps/KOI8-R Makefile
@@ -196,6 +349,84 @@ latin-greek.h: ../localedata/charmaps/LATIN-GREEK Makefile
$(generate-8bit-gap-table)
latin-greek-1.h: ../localedata/charmaps/LATIN-GREEK-1 Makefile
$(generate-8bit-gap-table)
+ibm256.h: ../localedata/charmaps/IBM256 Makefile
+ $(generate-8bit-gap-table)
+ibm273.h: ../localedata/charmaps/IBM273 Makefile
+ $(generate-8bit-gap-table)
+ibm277.h: ../localedata/charmaps/IBM277 Makefile
+ $(generate-8bit-gap-table)
+ibm278.h: ../localedata/charmaps/IBM278 Makefile
+ $(generate-8bit-gap-table)
+ibm280.h: ../localedata/charmaps/IBM280 Makefile
+ $(generate-8bit-gap-table)
+ibm281.h: ../localedata/charmaps/IBM281 Makefile
+ $(generate-8bit-gap-table)
+ibm284.h: ../localedata/charmaps/IBM284 Makefile
+ $(generate-8bit-gap-table)
+ibm285.h: ../localedata/charmaps/IBM285 Makefile
+ $(generate-8bit-gap-table)
+ibm290.h: ../localedata/charmaps/IBM290 Makefile
+ $(generate-8bit-gap-table)
+ibm297.h: ../localedata/charmaps/IBM297 Makefile
+ $(generate-8bit-gap-table)
+ibm420.h: ../localedata/charmaps/IBM420 Makefile
+ $(generate-8bit-gap-table)
+ibm424.h: ../localedata/charmaps/IBM424 Makefile
+ $(generate-8bit-gap-table)
+ibm437.h: ../localedata/charmaps/IBM437 Makefile
+ $(generate-8bit-gap-table)
+ibm850.h: ../localedata/charmaps/IBM850 Makefile
+ $(generate-8bit-gap-table)
+ibm851.h: ../localedata/charmaps/IBM851 Makefile
+ $(generate-8bit-gap-table)
+ibm852.h: ../localedata/charmaps/IBM852 Makefile
+ $(generate-8bit-gap-table)
+ibm855.h: ../localedata/charmaps/IBM855 Makefile
+ $(generate-8bit-gap-table)
+ibm857.h: ../localedata/charmaps/IBM857 Makefile
+ $(generate-8bit-gap-table)
+ibm860.h: ../localedata/charmaps/IBM860 Makefile
+ $(generate-8bit-gap-table)
+ibm861.h: ../localedata/charmaps/IBM861 Makefile
+ $(generate-8bit-gap-table)
+ibm862.h: ../localedata/charmaps/IBM862 Makefile
+ $(generate-8bit-gap-table)
+ibm863.h: ../localedata/charmaps/IBM863 Makefile
+ $(generate-8bit-gap-table)
+ibm864.h: ../localedata/charmaps/IBM864 Makefile
+ $(generate-8bit-gap-table)
+ibm865.h: ../localedata/charmaps/IBM865 Makefile
+ $(generate-8bit-gap-table)
+ibm868.h: ../localedata/charmaps/IBM868 Makefile
+ $(generate-8bit-gap-table)
+ibm869.h: ../localedata/charmaps/IBM869 Makefile
+ $(generate-8bit-gap-table)
+ibm875.h: ../localedata/charmaps/IBM875 Makefile
+ $(generate-8bit-gap-table)
+ibm880.h: ../localedata/charmaps/IBM880 Makefile
+ $(generate-8bit-gap-table)
+ibm918.h: ../localedata/charmaps/IBM918 Makefile
+ $(generate-8bit-gap-table)
+ibm1004.h: ../localedata/charmaps/IBM1004 Makefile
+ $(generate-8bit-gap-table)
+ibm1026.h: ../localedata/charmaps/IBM1026 Makefile
+ $(generate-8bit-gap-table)
+cp1250.h: ../localedata/charmaps/CP1250 Makefile
+ $(generate-8bit-gap-table)
+cp1251.h: ../localedata/charmaps/CP1251 Makefile
+ $(generate-8bit-gap-table)
+cp1252.h: ../localedata/charmaps/CP1252 Makefile
+ $(generate-8bit-gap-table)
+cp1253.h: ../localedata/charmaps/CP1253 Makefile
+ $(generate-8bit-gap-table)
+cp1254.h: ../localedata/charmaps/CP1254 Makefile
+ $(generate-8bit-gap-table)
+cp1255.h: ../localedata/charmaps/CP1255 Makefile
+ $(generate-8bit-gap-table)
+cp1256.h: ../localedata/charmaps/CP1256 Makefile
+ $(generate-8bit-gap-table)
+cp1257.h: ../localedata/charmaps/CP1257 Makefile
+ $(generate-8bit-gap-table)
endif
headers: $(sed-generated-headers) $(perl-generated-headers)
diff --git a/iconvdata/TESTS b/iconvdata/TESTS
index b4c95057c8..d18a808290 100644
--- a/iconvdata/TESTS
+++ b/iconvdata/TESTS
@@ -29,15 +29,37 @@
# ...
# N. target coded character set.
-ISO-8859-1 ISO-8859-1 Y UTF8
-ISO-8859-2 ISO-8859-2 Y UCS4 UTF8
-ISO-8859-3 ISO-8859-3 Y UTF8
-ISO-8859-4 ISO-8859-4 Y UTF8
-ISO-8859-5 ISO-8859-5 Y UTF8
-ISO-8859-6 ISO-8859-6 Y UTF8
-ISO-8859-7 ISO-8859-7 Y UTF8
-ISO-8859-8 ISO-8859-8 Y UTF8
-ISO-8859-9 ISO-8859-9 Y UTF8
-ISO-8859-10 ISO-8859-10 Y UCS2 UTF8
-ANSI_X3.4-1968 ANSI_X3.4-1968 Y UTF8
-BS_4730 BS_4730 Y UTF8
+ISO-8859-1 ISO-8859-1 Y UTF8
+ISO-8859-2 ISO-8859-2 Y UCS4 UTF8
+ISO-8859-3 ISO-8859-3 Y UTF8
+ISO-8859-4 ISO-8859-4 Y UTF8
+ISO-8859-5 ISO-8859-5 Y UTF8
+ISO-8859-6 ISO-8859-6 Y UTF8
+ISO-8859-7 ISO-8859-7 Y UTF8
+ISO-8859-8 ISO-8859-8 Y UTF8
+ISO-8859-9 ISO-8859-9 Y UTF8
+ISO-8859-10 ISO-8859-10 Y UCS2 UTF8
+ANSI_X3.4-1968 ANSI_X3.4-1968 Y UTF8
+BS_4730 BS_4730 Y UTF8
+CSA_Z243.4-1985-1 CSA_Z243.4-1985-1 Y UCS2
+CSA_Z243.4-1985-2 CSA_Z243.4-1985-2 Y UCS4
+DIN_66003 DIN_66003 Y UTF8
+DS_2089 DS_2089 Y UTF8
+ES ES Y UTF8
+ES2 ES2 Y UTF8
+GB_1988-80 GB_1988-80 Y UTF8
+IT IT Y UTF8
+JIS_C6220-1969-RO JIS_C6220-1969-RO Y UTF8
+JIS_C6229-1984-B JIS_C6229-1984-B Y UTF8
+JUS_I.B1.002 JUS_I.B1.002 Y UTF8
+KSC5636 KSC5636 Y UTF8
+MSZ_7795.3 MSZ_7795.3 Y UTF8
+NC_NC00-10 NC_NC00-10 Y UTF8
+NF_Z_62-010 NF_Z_62-010 Y UTF8
+NF_Z_62-010_1973 NF_Z_62-010_1973 Y UTF8
+NS_4551-1 NS_4551-1 Y UTF8
+NS_4551-2 NS_4551-2 Y UTF8
+PT PT Y UTF8
+PT2 PT2 Y UTF8
+SEN_850200_B SEN_850200_B Y UTF8
+SEN_850200_C SEN_850200_C Y UTF8
diff --git a/iconvdata/big5.c b/iconvdata/big5.c
index d4d89a04ff..b9ffce6905 100644
--- a/iconvdata/big5.c
+++ b/iconvdata/big5.c
@@ -8412,7 +8412,7 @@ static const char from_ucs4_tab13[][2] =
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "BIG5"
+#define CHARSET_NAME "BIG5//"
#define FROM_LOOP from_big5
#define TO_LOOP to_big5
#define DEFINE_INIT 1
diff --git a/iconvdata/cns11643.h b/iconvdata/cns11643.h
index ccab8011ce..342c8777b6 100644
--- a/iconvdata/cns11643.h
+++ b/iconvdata/cns11643.h
@@ -25,13 +25,13 @@ extern const uint16_t __cns11643l2_to_ucs4_tab[];
extern const uint16_t __cns11643l14_to_ucs4_tab[];
-static inline wchar_t
+static inline uint32_t
cns11643_to_ucs4 (const char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
unsigned char ch2;
unsigned char ch3;
- wchar_t result;
+ uint32_t result;
int idx;
if (ch < offset || (ch - offset) <= 0x20 || (ch - offset) > 0x30)
@@ -99,7 +99,7 @@ extern const char __cns11643_from_ucs4_tab[][3];
static inline size_t
-ucs4_to_cns11643 (wchar_t wch, char *s, size_t avail)
+ucs4_to_cns11643 (uint32_t wch, char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;
char buf[2];
@@ -129,7 +129,7 @@ ucs4_to_cns11643 (wchar_t wch, char *s, size_t avail)
case 0x2109:
cp = "\x22\x6b";
break;
- case 0x2160 ...0x2169:
+ case 0x2160 ... 0x2169:
buf[0] = '\x24';
buf[1] = '\x2b' + (ch - 0x2160);
break;
@@ -157,6 +157,7 @@ ucs4_to_cns11643 (wchar_t wch, char *s, size_t avail)
break;
case 0x2500 ... 0x2642:
cp = __cns11643l1_from_ucs4_tab9[ch - 0x2500];
+ break;
case 0x3000 ... 0x3029:
cp = __cns11643l1_from_ucs4_tab10[ch - 0x3000];
break;
@@ -199,7 +200,7 @@ ucs4_to_cns11643 (wchar_t wch, char *s, size_t avail)
cp = "\x22\x64";
break;
default:
- cp = "";
+ return UNKNOWN_10646_CHAR;
}
if (cp[0] == '\0')
diff --git a/iconvdata/cns11643l1.h b/iconvdata/cns11643l1.h
index aa78c26d6c..5e5abb76e4 100644
--- a/iconvdata/cns11643l1.h
+++ b/iconvdata/cns11643l1.h
@@ -25,7 +25,7 @@
extern const uint16_t __cns11643l1_to_ucs4_tab[];
-static inline wchar_t
+static inline uint32_t
cns11643l1_to_ucs4 (const char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
@@ -70,7 +70,7 @@ extern const char __cns11643l1_from_ucs4_tab14[][2];
static inline size_t
-ucs4_to_cns11643l1 (wchar_t wch, char *s, size_t avail)
+ucs4_to_cns11643l1 (uint32_t wch, char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;
char buf[2];
@@ -86,8 +86,10 @@ ucs4_to_cns11643l1 (wchar_t wch, char *s, size_t avail)
break;
case 0x391 ... 0x3c9:
cp = __cns11643l1_from_ucs4_tab3[ch - 0x391];
+ break;
case 0x2013 ... 0x203e:
cp = __cns11643l1_from_ucs4_tab4[ch - 0x2013];
+ break;
case 0x2103:
cp = "\x22\x6a";
break;
@@ -105,7 +107,7 @@ ucs4_to_cns11643l1 (wchar_t wch, char *s, size_t avail)
buf[0] = '\x26';
buf[1] = '\x35' + (ch - 0x2170);
break;
- case 0x2190 ...0x2199:
+ case 0x2190 ... 0x2199:
cp = __cns11643l1_from_ucs4_tab5[ch - 0x2190];
break;
case 0x2215 ... 0x2267:
@@ -161,7 +163,7 @@ ucs4_to_cns11643l1 (wchar_t wch, char *s, size_t avail)
cp = "\x22\x64";
break;
default:
- buf[0] = '\0';
+ return UNKNOWN_10646_CHAR;
}
if (cp[0] == '\0')
diff --git a/iconvdata/cp1250.c b/iconvdata/cp1250.c
new file mode 100644
index 0000000000..7c9deeddbc
--- /dev/null
+++ b/iconvdata/cp1250.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1250.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1250.h>
+
+#define CHARSET_NAME "CP1250//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1251.c b/iconvdata/cp1251.c
new file mode 100644
index 0000000000..f3cbcc94b7
--- /dev/null
+++ b/iconvdata/cp1251.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1251.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1251.h>
+
+#define CHARSET_NAME "CP1251//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1252.c b/iconvdata/cp1252.c
new file mode 100644
index 0000000000..84eaf0dc71
--- /dev/null
+++ b/iconvdata/cp1252.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1252.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1252.h>
+
+#define CHARSET_NAME "CP1252//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1253.c b/iconvdata/cp1253.c
new file mode 100644
index 0000000000..b6273947bd
--- /dev/null
+++ b/iconvdata/cp1253.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1253.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1253.h>
+
+#define CHARSET_NAME "CP1253//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1254.c b/iconvdata/cp1254.c
new file mode 100644
index 0000000000..aa3b23dcf8
--- /dev/null
+++ b/iconvdata/cp1254.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1254.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1254.h>
+
+#define CHARSET_NAME "CP1254//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c
new file mode 100644
index 0000000000..b9e6ac9bc9
--- /dev/null
+++ b/iconvdata/cp1255.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1255.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1255.h>
+
+#define CHARSET_NAME "CP1255//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1256.c b/iconvdata/cp1256.c
new file mode 100644
index 0000000000..e7092ab611
--- /dev/null
+++ b/iconvdata/cp1256.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1256.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1256.h>
+
+#define CHARSET_NAME "CP1256//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/cp1257.c b/iconvdata/cp1257.c
new file mode 100644
index 0000000000..8be05bcb46
--- /dev/null
+++ b/iconvdata/cp1257.c
@@ -0,0 +1,29 @@
+/* Conversion from and to CP1257.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <cp1257.h>
+
+#define CHARSET_NAME "CP1257//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ebcdic-at-de-a.c b/iconvdata/ebcdic-at-de-a.c
index 654bdf87fd..9a6e779ddd 100644
--- a/iconvdata/ebcdic-at-de-a.c
+++ b/iconvdata/ebcdic-at-de-a.c
@@ -23,7 +23,7 @@
/* Get the conversion table. */
#include <ebcdic-at-de-a.h>
-#define CHARSET_NAME "EBCDIC-AT-DE-A"
+#define CHARSET_NAME "EBCDIC-AT-DE-A//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-at-de.c b/iconvdata/ebcdic-at-de.c
index ab718851d9..ef6c8c0e9f 100644
--- a/iconvdata/ebcdic-at-de.c
+++ b/iconvdata/ebcdic-at-de.c
@@ -23,7 +23,7 @@
/* Get the conversion table. */
#include <ebcdic-at-de.h>
-#define CHARSET_NAME "EBCDIC-AT-DE"
+#define CHARSET_NAME "EBCDIC-AT-DE//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-ca-fr.c b/iconvdata/ebcdic-ca-fr.c
index 91cf5aa388..8323a83945 100644
--- a/iconvdata/ebcdic-ca-fr.c
+++ b/iconvdata/ebcdic-ca-fr.c
@@ -23,7 +23,7 @@
/* Get the conversion table. */
#include <ebcdic-ca-fr.h>
-#define CHARSET_NAME "EBCDIC-CA-FR"
+#define CHARSET_NAME "EBCDIC-CA-FR//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-dk-no-a.c b/iconvdata/ebcdic-dk-no-a.c
new file mode 100644
index 0000000000..771b79cf5a
--- /dev/null
+++ b/iconvdata/ebcdic-dk-no-a.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-DK-NO-A.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-dk-no-a.h>
+
+#define CHARSET_NAME "EBCDIC-DK-NO-A//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-dk-no.c b/iconvdata/ebcdic-dk-no.c
new file mode 100644
index 0000000000..991429221b
--- /dev/null
+++ b/iconvdata/ebcdic-dk-no.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-DK-NO.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-dk-no.h>
+
+#define CHARSET_NAME "EBCDIC-DK-NO//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-es-a.c b/iconvdata/ebcdic-es-a.c
new file mode 100644
index 0000000000..5083262c9d
--- /dev/null
+++ b/iconvdata/ebcdic-es-a.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-ES-A.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-es-a.h>
+
+#define CHARSET_NAME "EBCDIC-ES-A//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-es-s.c b/iconvdata/ebcdic-es-s.c
new file mode 100644
index 0000000000..74a13b5302
--- /dev/null
+++ b/iconvdata/ebcdic-es-s.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-ES-S.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-es-s.h>
+
+#define CHARSET_NAME "EBCDIC-ES-S//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-es.c b/iconvdata/ebcdic-es.c
new file mode 100644
index 0000000000..111ebaac99
--- /dev/null
+++ b/iconvdata/ebcdic-es.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-ES.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-es.h>
+
+#define CHARSET_NAME "EBCDIC-ES//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-fi-se-a.c b/iconvdata/ebcdic-fi-se-a.c
new file mode 100644
index 0000000000..d07adc9a59
--- /dev/null
+++ b/iconvdata/ebcdic-fi-se-a.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-FI-SE-A.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-fi-se-a.h>
+
+#define CHARSET_NAME "EBCDIC-FI-SE-A//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-fi-se.c b/iconvdata/ebcdic-fi-se.c
new file mode 100644
index 0000000000..cceb2d61db
--- /dev/null
+++ b/iconvdata/ebcdic-fi-se.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-FI-SE.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-fi-se.h>
+
+#define CHARSET_NAME "EBCDIC-FI-SE//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-fr.c b/iconvdata/ebcdic-fr.c
new file mode 100644
index 0000000000..de646a4489
--- /dev/null
+++ b/iconvdata/ebcdic-fr.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-FR.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-fr.h>
+
+#define CHARSET_NAME "EBCDIC-FR//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-is-friss.c b/iconvdata/ebcdic-is-friss.c
new file mode 100644
index 0000000000..ca86744cf9
--- /dev/null
+++ b/iconvdata/ebcdic-is-friss.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-IS-FRISS.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-is-friss.h>
+
+#define CHARSET_NAME "EBCDIC-IS-FRISS//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-it.c b/iconvdata/ebcdic-it.c
new file mode 100644
index 0000000000..48f26f9099
--- /dev/null
+++ b/iconvdata/ebcdic-it.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-IT.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-it.h>
+
+#define CHARSET_NAME "EBCDIC-IT//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-pt.c b/iconvdata/ebcdic-pt.c
new file mode 100644
index 0000000000..a5d267999f
--- /dev/null
+++ b/iconvdata/ebcdic-pt.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-PT.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-pt.h>
+
+#define CHARSET_NAME "EBCDIC-PT//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-uk.c b/iconvdata/ebcdic-uk.c
new file mode 100644
index 0000000000..4a4c85c853
--- /dev/null
+++ b/iconvdata/ebcdic-uk.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-UK.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-uk.h>
+
+#define CHARSET_NAME "EBCDIC-UK//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ebcdic-us.c b/iconvdata/ebcdic-us.c
new file mode 100644
index 0000000000..2f8336ef86
--- /dev/null
+++ b/iconvdata/ebcdic-us.c
@@ -0,0 +1,29 @@
+/* Conversion from and to EBCDIC-US.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ebcdic-us.h>
+
+#define CHARSET_NAME "EBCDIC-US//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/euccn.c b/iconvdata/euccn.c
index 90e82cb41e..7ab670f9f5 100644
--- a/iconvdata/euccn.c
+++ b/iconvdata/euccn.c
@@ -22,7 +22,7 @@
#include <stdint.h>
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "EUC-CN"
+#define CHARSET_NAME "EUC-CN//"
#define FROM_LOOP from_euc_cn
#define TO_LOOP to_euc_cn
#define DEFINE_INIT 1
diff --git a/iconvdata/eucjp.c b/iconvdata/eucjp.c
index 24ebed94ec..96e075628c 100644
--- a/iconvdata/eucjp.c
+++ b/iconvdata/eucjp.c
@@ -25,7 +25,7 @@
#include <jis0212.h>
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "EUC-JP"
+#define CHARSET_NAME "EUC-JP//"
#define FROM_LOOP from_euc_jp
#define TO_LOOP to_euc_jp
#define DEFINE_INIT 1
diff --git a/iconvdata/euckr.c b/iconvdata/euckr.c
index 50e4b40838..51848843d9 100644
--- a/iconvdata/euckr.c
+++ b/iconvdata/euckr.c
@@ -46,7 +46,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "EUC-KR"
+#define CHARSET_NAME "EUC-KR//"
#define FROM_LOOP from_euc_kr
#define TO_LOOP to_euc_kr
#define DEFINE_INIT 1
@@ -70,7 +70,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
if (inchar == 0x5c) \
ch = 0x20a9; \
else if (inchar <= 0x7f) \
- ch = (wchar_t) inchar; \
+ ch = (uint32_t) inchar; \
*/ \
\
if (ch <= 0x7f) \
diff --git a/iconvdata/euctw.c b/iconvdata/euctw.c
index 406dd67f29..ca1cdac40e 100644
--- a/iconvdata/euctw.c
+++ b/iconvdata/euctw.c
@@ -23,7 +23,7 @@
#include <cns11643.h>
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "EUC-TW"
+#define CHARSET_NAME "EUC-TW//"
#define FROM_LOOP from_euc_tw
#define TO_LOOP to_euc_tw
#define DEFINE_INIT 1
diff --git a/iconvdata/gb2312.h b/iconvdata/gb2312.h
index df87950436..5b405a1138 100644
--- a/iconvdata/gb2312.h
+++ b/iconvdata/gb2312.h
@@ -28,7 +28,7 @@
extern const uint16_t __gb2312_to_ucs[];
-static inline wchar_t
+static inline uint32_t
gb2312_to_ucs4 (const char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
@@ -66,7 +66,7 @@ extern const char __gb2312_from_ucs4_tab8[][2];
extern const char __gb2312_from_ucs4_tab9[][2];
static inline size_t
-ucs4_to_gb2312 (wchar_t wch, char *s, size_t avail)
+ucs4_to_gb2312 (uint32_t wch, char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;
char buf[2];
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index d5109dcf29..1648dce5f5 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -53,6 +53,137 @@ alias UK// BS_4730//
module BS_4730// INTERNAL ISO646 2
module INTERNAL BS_4730// ISO646 2
+alias ISO-IR-121// CSA_Z243.4-1985-1//
+alias ISO646-CA// CSA_Z243.4-1985-1//
+alias CSA7-1// CSA_Z243.4-1985-1//
+alias CA// CSA_Z243.4-1985-1//
+module CSA_Z243.4-1985-1// INTERNAL ISO646 2
+module INTERNAL CSA_Z243.4-1985-1// ISO646 2
+
+alias ISO-IR-122// CSA_Z243.4-1985-2//
+alias ISO646-CA2// CSA_Z243.4-1985-2//
+alias CSA7-2// CSA_Z243.4-1985-2//
+module CSA_Z243.4-1985-2// INTERNAL ISO646 2
+module INTERNAL CSA_Z243.4-1985-2// ISO646 2
+
+alias ISO-IR-21// DIN_66003//
+alias DE// DIN_66003//
+alias ISO646-DE// DIN_66003//
+module DIN_66003// INTERNAL ISO646 2
+module INTERNAL DIN_66003// ISO646 2
+
+alias DS2089// DS_2089//
+alias ISO646-DK// DS_2089//
+alias DK// DS_2089//
+module DS_2089// INTERNAL ISO646 2
+module INTERNAL DS_2089// ISO646 2
+
+alias ISO-IR-17// ES//
+alias ISO646-ES// ES//
+module ES// INTERNAL ISO646 2
+module INTERNAL ES// ISO646 2
+
+alias ISO-IR-85// ES2//
+alias ISO646-ES2// ES2//
+module ES2// INTERNAL ISO646 2
+module INTERNAL ES2// ISO646 2
+
+alias ISO-IR-57// GB_1988-80//
+alias CN// GB_1988-80//
+alias ISO646-CN// GB_1988-80//
+module GB_1988-80// INTERNAL ISO646 2
+module INTERNAL GB_1988-80// ISO646 2
+
+alias ISO-IR-15// IT//
+alias ISO646-IT// IT//
+module IT// INTERNAL ISO646 2
+module INTERNAL IT// ISO646 2
+
+alias ISO-IR-14// JIS_C6220-1969-RO//
+alias JP// JIS_C6220-1969-RO//
+alias ISO646-JP// JIS_C6220-1969-RO//
+module JIS_C6220-1969-RO// INTERNAL ISO646 2
+module INTERNAL JIS_C6220-1969-RO// ISO646 2
+
+alias ISO-IR-92// JIS_C6229-1984-B//
+alias ISO646-JP-OCR-B// JIS_C6229-1984-B//
+alias JP-OCR-B// JIS_C6229-1984-B//
+module JIS_C6229-1984-B// INTERNAL ISO646 2
+module INTERNAL JIS_C6229-1984-B// ISO646 2
+
+alias ISO-IR-141// JUS_I.B1.002//
+alias ISO646-YU// JUS_I.B1.002//
+alias JS// JUS_I.B1.002//
+alias YU// JUS_I.B1.002//
+module JUS_I.B1.002// INTERNAL ISO646 2
+module INTERNAL JUS_I.B1.002// ISO646 2
+
+alias ISO646-KR// KSC5636//
+module KSC5636// INTERNAL ISO646 2
+module INTERNAL KSC5636// ISO646 2
+
+alias ISO-IR-86// MSZ_7795.3//
+alias ISO646-HU// MSZ_7795.3//
+alias HU// MSZ_7795.3//
+module MSZ_7795.3// INTERNAL ISO646 2
+module INTERNAL MSZ_7795.3// ISO646 2
+
+alias CUBA// NC_NC00-10//
+alias NC_NC00-10:81// NC_NC00-10//
+alias ISO-IR-151// NC_NC00-10//
+alias ISO646-CU// NC_NC00-10//
+module NC_NC00-10// INTERNAL ISO646 2
+module INTERNAL NC_NC00-10// ISO646 2
+
+alias ISO-IR-69// NF_Z_62-010//
+alias ISO646-FR// NF_Z_62-010//
+alias FR// NF_Z_62-010//
+module NF_Z_62-010// INTERNAL ISO646 2
+module INTERNAL NF_Z_62-010// ISO646 2
+
+alias ISO-IR-25// NF_Z_62-010_(1973)//
+alias ISO646-FR1// NF_Z_62-010_(1973)//
+alias NF_Z_62-010_1973// NF_Z_62-010_(1973)//
+module NF_Z_62-010_(1973)// INTERNAL ISO646 2
+module INTERNAL NF_Z_62-010_(1973)// ISO646 2
+
+alias ISO-IR-60// NS_4551-1//
+alias ISO646-NO// NS_4551-1//
+alias NO// NS_4551-1//
+module NS_4551-1// INTERNAL ISO646 2
+module INTERNAL NS_4551-1// ISO646 2
+
+alias ISO646-NO2// NS_4551-2//
+alias ISO-IR-61// NS_4551-2//
+alias NO2// NS_4551-2//
+module NS_4551-2// INTERNAL ISO646 2
+module INTERNAL NS_4551-2// ISO646 2
+
+alias ISO-IR-16// PT//
+alias ISO646-PT// PT//
+module PT// INTERNAL ISO646 2
+module INTERNAL PT// ISO646 2
+
+alias ISO-IR-84// PT2//
+alias ISO646-PT2 PT2//
+module PT2// INTERNAL ISO646 2
+module INTERNAL PT2// ISO646 2
+
+alias ISO-IR-10// SEN_850200_B//
+alias FI// SEN_850200_B//
+alias ISO646-FI// SEN_850200_B//
+alias ISO646-SE// SEN_850200_B//
+alias SE// SEN_850200_B//
+alias SS636127// SEN_850200_B//
+module SEN_850200_B// INTERNAL ISO646 2
+module INTERNAL SEN_850200_B// ISO646 2
+
+alias ISO-IR-11// SEN_850200_C//
+alias ISO646-SE2// SEN_850200_C//
+alias SE2// SEN_850200_C//
+module SEN_850200_C// INTERNAL ISO646 2
+module INTERNAL SEN_850200_C// ISO646 2
+
# from to module cost
alias ISO-IR-100// ISO-8859-1//
alias ISO_8859-1:1987// ISO-8859-1//
@@ -61,6 +192,7 @@ alias LATIN1// ISO-8859-1//
alias L1// ISO-8859-1//
alias IBM819// ISO-8859-1//
alias CP819// ISO-8859-1//
+alias 8859_1// ISO-8859-1//
module ISO-8859-1// INTERNAL ISO8859-1 1
module INTERNAL ISO-8859-1// ISO8859-1 1
@@ -70,6 +202,7 @@ alias ISO_8859-2:1987// ISO-8859-2//
alias ISO_8859-2// ISO-8859-2//
alias LATIN2// ISO-8859-2//
alias L2// ISO-8859-2//
+alias 8859_2// ISO-8859-2//
module ISO-8859-2// INTERNAL ISO8859-2 1
module INTERNAL ISO-8859-2// ISO8859-2 1
@@ -79,6 +212,7 @@ alias ISO_8859-3:1988// ISO-8859-3//
alias ISO_8859-3// ISO-8859-3//
alias LATIN3// ISO-8859-3//
alias L3// ISO-8859-3//
+alias 8859_3// ISO-8859-3//
module ISO-8859-3// INTERNAL ISO8859-3 1
module INTERNAL ISO-8859-3// ISO8859-3 1
@@ -88,6 +222,7 @@ alias ISO_8859-4:1988// ISO-8859-4//
alias ISO_8859-4// ISO-8859-4//
alias LATIN4// ISO-8859-4//
alias L4// ISO-8859-4//
+alias 8859_4// ISO-8859-4//
module ISO-8859-4// INTERNAL ISO8859-4 1
module INTERNAL ISO-8859-4// ISO8859-4 1
@@ -96,6 +231,7 @@ alias ISO-IR-144// ISO-8859-5//
alias ISO_8859-5:1988// ISO-8859-5//
alias ISO_8859-5// ISO-8859-5//
alias CYRILLIC// ISO-8859-5//
+alias 8859_5// ISO-8859-5//
module ISO-8859-5// INTERNAL ISO8859-5 1
module INTERNAL ISO-8859-5// ISO8859-5 1
@@ -106,6 +242,7 @@ alias ISO_8859-6// ISO-8859-6//
alias ECMA-114// ISO-8859-6//
alias ASMO-708// ISO-8859-6//
alias ARABIC// ISO-8859-6//
+alias 8859_6// ISO-8859-6//
module ISO-8859-6// INTERNAL ISO8859-6 1
module INTERNAL ISO-8859-6// ISO8859-6 1
@@ -117,6 +254,7 @@ alias ELOT_928// ISO-8859-7//
alias ECMA-118// ISO-8859-7//
alias GREEK// ISO-8859-7//
alias GREEK8// ISO-8859-7//
+alias 8859_7// ISO-8859-7//
module ISO-8859-7// INTERNAL ISO8859-7 1
module INTERNAL ISO-8859-7// ISO8859-7 1
@@ -125,6 +263,7 @@ alias ISO-IR-138// ISO-8859-8//
alias ISO_8859-8:1988// ISO-8859-8//
alias ISO_8859-8// ISO-8859-8//
alias HEBREW// ISO-8859-8//
+alias 8859_8// ISO-8859-8//
module ISO-8859-8// INTERNAL ISO8859-8 1
module INTERNAL ISO-8859-8// ISO8859-8 1
@@ -134,6 +273,7 @@ alias ISO_8859-9:1989// ISO-8859-9//
alias ISO_8859-9// ISO-8859-9//
alias LATIN5// ISO-8859-9//
alias L5// ISO-8859-9//
+alias 8859_9// ISO-8859-9//
module ISO-8859-9// INTERNAL ISO8859-9 1
module INTERNAL ISO-8859-9// ISO8859-9 1
@@ -201,6 +341,327 @@ module EBCDIC-CA-FR// INTERNAL EBCDIC-CA-FR 1
module INTERNAL EBCDIC-CA-FR// EBCDIC-CA-FR 1
# from to module cost
+module EBCDIC-DK-NO// INTERNAL EBCDIC-DK-NO 1
+module INTERNAL EBCDIC-DK-NO// EBCDIC-DK-NO 1
+
+# from to module cost
+module EBCDIC-DK-NO-A// INTERNAL EBCDIC-DK-NO-A 1
+module INTERNAL EBCDIC-DK-NO-A// EBCDIC-DK-NO-A 1
+
+# from to module cost
+module EBCDIC-ES// INTERNAL EBCDIC-ES 1
+module INTERNAL EBCDIC-ES// EBCDIC-ES 1
+
+# from to module cost
+module EBCDIC-ES-A// INTERNAL EBCDIC-ES-A 1
+module INTERNAL EBCDIC-ES-A// EBCDIC-ES-A 1
+
+# from to module cost
+module EBCDIC-ES-S// INTERNAL EBCDIC-ES-S 1
+module INTERNAL EBCDIC-ES-S// EBCDIC-ES-S 1
+
+# from to module cost
+module EBCDIC-FI-SE// INTERNAL EBCDIC-FI-SE 1
+module INTERNAL EBCDIC-FI-SE// EBCDIC-FI-SE 1
+
+# from to module cost
+module EBCDIC-FI-SE-A// INTERNAL EBCDIC-FI-SE-A 1
+module INTERNAL EBCDIC-FI-SE-A// EBCDIC-FI-SE-A 1
+
+# from to module cost
+module EBCDIC-FR// INTERNAL EBCDIC-FR 1
+module INTERNAL EBCDIC-FR// EBCDIC-FR 1
+
+# from to module cost
+module EBCDIC-IS-FRISS// INTERNAL EBCDIC-IS-FRISS 1
+module INTERNAL EBCDIC-IS-FRISS// EBCDIC-IS-FRISS 1
+
+# from to module cost
+module EBCDIC-IT// INTERNAL EBCDIC-IT 1
+module INTERNAL EBCDIC-IT// EBCDIC-IT 1
+
+# from to module cost
+module EBCDIC-PT// INTERNAL EBCDIC-PT 1
+module INTERNAL EBCDIC-PT// EBCDIC-PT 1
+
+# from to module cost
+module EBCDIC-UK// INTERNAL EBCDIC-UK 1
+module INTERNAL EBCDIC-UK// EBCDIC-UK 1
+
+# from to module cost
+module EBCDIC-US// INTERNAL EBCDIC-US 1
+module INTERNAL EBCDIC-US// EBCDIC-US 1
+
+# from to module cost
+alias CP037// IBM037//
+alias EBCDIC-CP-US// IBM037//
+alias EBCDIC-CP-CA// IBM037//
+alias EBCDIC-CP-WT// IBM037//
+alias EBCDIC-CP-NL// IBM037//
+module IBM037// INTERNAL IBM037 1
+module INTERNAL IBM037// IBM037 1
+
+# from to module cost
+alias EBCDIC-INT// IBM038//
+alias CP038// IBM038//
+module IBM038// INTERNAL IBM038 1
+module INTERNAL IBM038// IBM038 1
+
+# from to module cost
+alias EBCDIC-INT1// IBM256//
+module IBM256// INTERNAL IBM256 1
+module INTERNAL IBM256// IBM256 1
+
+# from to module cost
+alias CP273// IBM273//
+module IBM273// INTERNAL IBM273 1
+module INTERNAL IBM273// IBM273 1
+
+# from to module cost
+alias EBCDIC-BE// IBM274//
+alias CP274// IBM274//
+module IBM274// INTERNAL IBM274 1
+module INTERNAL IBM274// IBM274 1
+
+# from to module cost
+alias EBCDIC-BR// IBM275//
+alias CP275// IBM275//
+module IBM275// INTERNAL IBM275 1
+module INTERNAL IBM275// IBM275 1
+
+# from to module cost
+alias EBCDIC-CP-DK// IBM277//
+alias EBCDIC-CP-NO// IBM277//
+module IBM277// INTERNAL IBM277 1
+module INTERNAL IBM277// IBM277 1
+
+# from to module cost
+alias CP278// IBM278//
+alias EBCDIC-CP-FI// IBM278//
+alias EBCDIC-CP-SE// IBM278//
+module IBM278// INTERNAL IBM278 1
+module INTERNAL IBM278// IBM278 1
+
+# from to module cost
+alias CP280// IBM280//
+alias EBCDIC-CP-IT// IBM280//
+module IBM280// INTERNAL IBM280 1
+module INTERNAL IBM280// IBM280 1
+
+# from to module cost
+alias EBCDIC-JP-E// IBM281//
+alias CP281// IBM281//
+module IBM281// INTERNAL IBM281 1
+module INTERNAL IBM281// IBM281 1
+
+# from to module cost
+alias CP284// IBM284//
+alias EBCDIC-CP-ES// IBM284//
+module IBM284// INTERNAL IBM284 1
+module INTERNAL IBM284// IBM284 1
+
+# from to module cost
+alias CP285// IBM285//
+alias EBCDIC-CP-GB// IBM285//
+module IBM285// INTERNAL IBM285 1
+module INTERNAL IBM285// IBM285 1
+
+# from to module cost
+alias CP290// IBM290//
+alias EBCDIC-JP-KANA// IBM290//
+module IBM290// INTERNAL IBM290 1
+module INTERNAL IBM290// IBM290 1
+
+# from to module cost
+alias CP297// IBM297//
+alias EBCDIC-CP-FR// IBM297//
+module IBM297// INTERNAL IBM297 1
+module INTERNAL IBM297// IBM297 1
+
+# from to module cost
+alias CP420// IBM420//
+alias EBCDIC-CP-AR1// IBM420//
+module IBM420// INTERNAL IBM420 1
+module INTERNAL IBM420// IBM420 1
+
+# from to module cost
+alias CP423// IBM423//
+alias EBCDIC-CP-GR// IBM423//
+module IBM423// INTERNAL IBM423 1
+module INTERNAL IBM423// IBM423 1
+
+# from to module cost
+alias CP424// IBM424//
+alias EBCDIC-CP-HE// IBM424//
+module IBM424// INTERNAL IBM424 1
+module INTERNAL IBM424// IBM424 1
+
+# from to module cost
+alias CP437// IBM437//
+alias 437// IBM437//
+module IBM437// INTERNAL IBM437 1
+module INTERNAL IBM437// IBM437 1
+
+# from to module cost
+alias CP500// IBM500//
+alias 500// IBM500//
+alias 500V1// IBM500//
+alias EBCDIC-CP-BE// IBM500//
+alias EBCDIC-CP-CH// IBM500//
+module IBM500// INTERNAL IBM500 1
+module INTERNAL IBM500// IBM500 1
+
+# from to module cost
+alias CP850// IBM850//
+alias 850// IBM850//
+module IBM850// INTERNAL IBM850 1
+module INTERNAL IBM850// IBM850 1
+
+# from to module cost
+alias CP851// IBM851//
+alias 851// IBM851//
+module IBM851// INTERNAL IBM851 1
+module INTERNAL IBM851// IBM851 1
+
+# from to module cost
+alias CP852// IBM852//
+alias 852// IBM852//
+module IBM852// INTERNAL IBM852 1
+module INTERNAL IBM852// IBM852 1
+
+# from to module cost
+alias CP855// IBM855//
+alias 855// IBM855//
+module IBM855// INTERNAL IBM855 1
+module INTERNAL IBM855// IBM855 1
+
+# from to module cost
+alias CP857// IBM857//
+alias 857// IBM857//
+module IBM857// INTERNAL IBM857 1
+module INTERNAL IBM857// IBM857 1
+
+# from to module cost
+alias CP860// IBM860//
+alias 860// IBM860//
+module IBM860// INTERNAL IBM860 1
+module INTERNAL IBM860// IBM860 1
+
+# from to module cost
+alias CP861// IBM861//
+alias 861// IBM861//
+module IBM861// INTERNAL IBM861 1
+module INTERNAL IBM861// IBM861 1
+
+# from to module cost
+alias CP862// IBM862//
+alias 862// IBM862//
+module IBM862// INTERNAL IBM862 1
+module INTERNAL IBM862// IBM862 1
+
+# from to module cost
+alias CP863// IBM863//
+alias 863// IBM863//
+module IBM863// INTERNAL IBM863 1
+module INTERNAL IBM863// IBM863 1
+
+# from to module cost
+alias CP864// IBM864//
+alias 864// IBM864//
+module IBM864// INTERNAL IBM864 1
+module INTERNAL IBM864// IBM864 1
+
+# from to module cost
+alias CP865// IBM865//
+alias 865// IBM865//
+module IBM865// INTERNAL IBM865 1
+module INTERNAL IBM865// IBM865 1
+
+# from to module cost
+alias CP868// IBM868//
+alias CP-AR// IBM868//
+module IBM868// INTERNAL IBM868 1
+module INTERNAL IBM868// IBM868 1
+
+# from to module cost
+alias CP869// IBM869//
+alias 869// IBM869//
+alias CP-GR// IBM869//
+module IBM869// INTERNAL IBM869 1
+module INTERNAL IBM869// IBM869 1
+
+# from to module cost
+alias CP870// IBM870//
+alias EBCDIC-CP-ROECE// IBM870//
+alias EBCDIC-CP-YU// IBM870//
+module IBM870// INTERNAL IBM870 1
+module INTERNAL IBM870// IBM870 1
+
+# from to module cost
+alias CP871// IBM871//
+alias EBCDIC-CP-IS// IBM871//
+module IBM871// INTERNAL IBM871 1
+module INTERNAL IBM871// IBM871 1
+
+# from to module cost
+alias CP875// IBM875//
+alias EBCDIC-GREEK// IBM875//
+module IBM875// INTERNAL IBM875 1
+module INTERNAL IBM875// IBM875 1
+
+# from to module cost
+alias CP880// IBM880//
+alias EBCDIC-CYRILLIC// IBM880//
+module IBM880// INTERNAL IBM880 1
+module INTERNAL IBM880// IBM880 1
+
+# from to module cost
+alias CP891// IBM891//
+module IBM891// INTERNAL IBM891 1
+module INTERNAL IBM891// IBM891 1
+
+# from to module cost
+alias CP903// IBM903//
+module IBM903// INTERNAL IBM903 1
+module INTERNAL IBM903// IBM903 1
+
+# from to module cost
+alias CP904// IBM904//
+alias 904// IBM904//
+module IBM904// INTERNAL IBM904 1
+module INTERNAL IBM904// IBM904 1
+
+# from to module cost
+alias CP905// IBM905//
+alias EBCDIC-CP-TR// IBM905//
+module IBM905// INTERNAL IBM905 1
+module INTERNAL IBM905// IBM905 1
+
+# from to module cost
+alias CP918// IBM918//
+alias EBCDIC-CP-AR2// IBM918//
+module IBM918// INTERNAL IBM918 1
+module INTERNAL IBM918// IBM918 1
+
+# from to module cost
+alias CP1004// IBM1004//
+alias OS2LATIN1// IBM1004//
+module IBM1004// INTERNAL IBM1004 1
+module INTERNAL IBM1004// IBM1004 1
+
+# from to module cost
+alias CP1026// IBM1026//
+alias 1026// IBM1026//
+module IBM1026// INTERNAL IBM1026 1
+module INTERNAL IBM1026// IBM1026 1
+
+# from to module cost
+alias CP1047// IBM1047//
+alias 1047// IBM1047//
+module IBM1047// INTERNAL IBM1047 1
+module INTERNAL IBM1047// IBM1047 1
+
+# from to module cost
alias EUCKR// EUC-KR//
module EUC-KR// INTERNAL EUC-KR 1
module INTERNAL EUC-KR// EUC-KR 1
@@ -236,3 +697,43 @@ module INTERNAL EUC-CN// EUC-CN 1
alias EUCTW// EUC-TW//
module EUC-TW// INTERNAL EUC-TW 1
module INTERNAL EUC-TW// EUC-TW 1
+
+# from to module cost
+alias MS-EE// CP1250//
+module CP1250// INTERNAL CP1250 1
+module INTERNAL CP1250// CP1250 1
+
+# from to module cost
+alias MS-CYRL// CP1251//
+module CP1251// INTERNAL CP1251 1
+module INTERNAL CP1251// CP1251 1
+
+# from to module cost
+alias MS-ANSI// CP1252//
+module CP1252// INTERNAL CP1252 1
+module INTERNAL CP1252// CP1252 1
+
+# from to module cost
+alias MS-GREEK// CP1253//
+module CP1253// INTERNAL CP1253 1
+module INTERNAL CP1253// CP1253 1
+
+# from to module cost
+alias MS-TURK// CP1254//
+module CP1254// INTERNAL CP1254 1
+module INTERNAL CP1254// CP1254 1
+
+# from to module cost
+alias MS-TURK// CP1255//
+module CP1255// INTERNAL CP1255 1
+module INTERNAL CP1255// CP1255 1
+
+# from to module cost
+alias MS-ARAB// CP1256//
+module CP1256// INTERNAL CP1256 1
+module INTERNAL CP1256// CP1256 1
+
+# from to module cost
+alias WINBLATRIM// CP1257//
+module CP1257// INTERNAL CP1257 1
+module INTERNAL CP1257// CP1257 1
diff --git a/iconvdata/hp-roman8.c b/iconvdata/hp-roman8.c
index 62e29ea463..6f83e8f165 100644
--- a/iconvdata/hp-roman8.c
+++ b/iconvdata/hp-roman8.c
@@ -23,7 +23,7 @@
/* Get the conversion table. */
#include <hp-roman8.h>
-#define CHARSET_NAME "HP-ROMAN8"
+#define CHARSET_NAME "HP-ROMAN8//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/ibm037.c b/iconvdata/ibm037.c
new file mode 100644
index 0000000000..c790bc7a08
--- /dev/null
+++ b/iconvdata/ibm037.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM037.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm037.h>
+
+#define CHARSET_NAME "IBM037//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm038.c b/iconvdata/ibm038.c
new file mode 100644
index 0000000000..a769cb12da
--- /dev/null
+++ b/iconvdata/ibm038.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM038.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm038.h>
+
+#define CHARSET_NAME "IBM038//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm1004.c b/iconvdata/ibm1004.c
new file mode 100644
index 0000000000..a84e7fe00a
--- /dev/null
+++ b/iconvdata/ibm1004.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM1004.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm1004.h>
+
+#define CHARSET_NAME "IBM1004//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm1026.c b/iconvdata/ibm1026.c
new file mode 100644
index 0000000000..7b01a6cc83
--- /dev/null
+++ b/iconvdata/ibm1026.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM1026.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm1026.h>
+
+#define CHARSET_NAME "IBM1026//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm1047.c b/iconvdata/ibm1047.c
new file mode 100644
index 0000000000..259351dab6
--- /dev/null
+++ b/iconvdata/ibm1047.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM1047.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm1047.h>
+
+#define CHARSET_NAME "IBM1047//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm256.c b/iconvdata/ibm256.c
new file mode 100644
index 0000000000..b38ea7fd4f
--- /dev/null
+++ b/iconvdata/ibm256.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM256.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm256.h>
+
+#define CHARSET_NAME "IBM256//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm273.c b/iconvdata/ibm273.c
new file mode 100644
index 0000000000..df8b96ebe6
--- /dev/null
+++ b/iconvdata/ibm273.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM273.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm273.h>
+
+#define CHARSET_NAME "IBM273//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm274.c b/iconvdata/ibm274.c
new file mode 100644
index 0000000000..a61b315a3f
--- /dev/null
+++ b/iconvdata/ibm274.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM274.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm274.h>
+
+#define CHARSET_NAME "IBM274//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm275.c b/iconvdata/ibm275.c
new file mode 100644
index 0000000000..97f7cc3c4c
--- /dev/null
+++ b/iconvdata/ibm275.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM275.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm275.h>
+
+#define CHARSET_NAME "IBM275//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm277.c b/iconvdata/ibm277.c
new file mode 100644
index 0000000000..cc54d565be
--- /dev/null
+++ b/iconvdata/ibm277.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM277.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm277.h>
+
+#define CHARSET_NAME "IBM277//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm278.c b/iconvdata/ibm278.c
new file mode 100644
index 0000000000..c471ef90b2
--- /dev/null
+++ b/iconvdata/ibm278.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM278.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm278.h>
+
+#define CHARSET_NAME "IBM278//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm280.c b/iconvdata/ibm280.c
new file mode 100644
index 0000000000..4ff67d6581
--- /dev/null
+++ b/iconvdata/ibm280.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM280.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm280.h>
+
+#define CHARSET_NAME "IBM280//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm281.c b/iconvdata/ibm281.c
new file mode 100644
index 0000000000..74866c26cf
--- /dev/null
+++ b/iconvdata/ibm281.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM281.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm281.h>
+
+#define CHARSET_NAME "IBM281//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm284.c b/iconvdata/ibm284.c
new file mode 100644
index 0000000000..9b06c1a81c
--- /dev/null
+++ b/iconvdata/ibm284.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM284.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm284.h>
+
+#define CHARSET_NAME "IBM284//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm285.c b/iconvdata/ibm285.c
new file mode 100644
index 0000000000..e4fb3a7299
--- /dev/null
+++ b/iconvdata/ibm285.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM285.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm285.h>
+
+#define CHARSET_NAME "IBM285//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm290.c b/iconvdata/ibm290.c
new file mode 100644
index 0000000000..2925ff5ce1
--- /dev/null
+++ b/iconvdata/ibm290.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM290.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm290.h>
+
+#define CHARSET_NAME "IBM290//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm297.c b/iconvdata/ibm297.c
new file mode 100644
index 0000000000..e11eed8ec9
--- /dev/null
+++ b/iconvdata/ibm297.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM297.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm297.h>
+
+#define CHARSET_NAME "IBM297//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm420.c b/iconvdata/ibm420.c
new file mode 100644
index 0000000000..b4accea870
--- /dev/null
+++ b/iconvdata/ibm420.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM420.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm420.h>
+
+#define CHARSET_NAME "IBM420//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm423.c b/iconvdata/ibm423.c
new file mode 100644
index 0000000000..5b772bf00e
--- /dev/null
+++ b/iconvdata/ibm423.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM423.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm423.h>
+
+#define CHARSET_NAME "IBM423//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm424.c b/iconvdata/ibm424.c
new file mode 100644
index 0000000000..03a0139371
--- /dev/null
+++ b/iconvdata/ibm424.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM424.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm424.h>
+
+#define CHARSET_NAME "IBM424//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm437.c b/iconvdata/ibm437.c
new file mode 100644
index 0000000000..c0f1ffbb48
--- /dev/null
+++ b/iconvdata/ibm437.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM437.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm437.h>
+
+#define CHARSET_NAME "IBM437//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm500.c b/iconvdata/ibm500.c
new file mode 100644
index 0000000000..dadf0c43c4
--- /dev/null
+++ b/iconvdata/ibm500.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM500.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm500.h>
+
+#define CHARSET_NAME "IBM500//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm850.c b/iconvdata/ibm850.c
new file mode 100644
index 0000000000..63910b618e
--- /dev/null
+++ b/iconvdata/ibm850.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM850.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm850.h>
+
+#define CHARSET_NAME "IBM850//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm851.c b/iconvdata/ibm851.c
new file mode 100644
index 0000000000..e6bbba8186
--- /dev/null
+++ b/iconvdata/ibm851.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM851.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm851.h>
+
+#define CHARSET_NAME "IBM851//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm852.c b/iconvdata/ibm852.c
new file mode 100644
index 0000000000..b3b3c2adb2
--- /dev/null
+++ b/iconvdata/ibm852.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM852.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm852.h>
+
+#define CHARSET_NAME "IBM852//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm855.c b/iconvdata/ibm855.c
new file mode 100644
index 0000000000..2f75b835cd
--- /dev/null
+++ b/iconvdata/ibm855.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM855.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm855.h>
+
+#define CHARSET_NAME "IBM855//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm857.c b/iconvdata/ibm857.c
new file mode 100644
index 0000000000..c7f9d1e677
--- /dev/null
+++ b/iconvdata/ibm857.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM857.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm857.h>
+
+#define CHARSET_NAME "IBM857//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm860.c b/iconvdata/ibm860.c
new file mode 100644
index 0000000000..c75a43fad8
--- /dev/null
+++ b/iconvdata/ibm860.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM860.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm860.h>
+
+#define CHARSET_NAME "IBM860//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm861.c b/iconvdata/ibm861.c
new file mode 100644
index 0000000000..5a92aea917
--- /dev/null
+++ b/iconvdata/ibm861.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM861.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm861.h>
+
+#define CHARSET_NAME "IBM861//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm862.c b/iconvdata/ibm862.c
new file mode 100644
index 0000000000..45a770f6fe
--- /dev/null
+++ b/iconvdata/ibm862.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM862.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm862.h>
+
+#define CHARSET_NAME "IBM862//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm863.c b/iconvdata/ibm863.c
new file mode 100644
index 0000000000..8bf3026e24
--- /dev/null
+++ b/iconvdata/ibm863.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM863.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm863.h>
+
+#define CHARSET_NAME "IBM863//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm864.c b/iconvdata/ibm864.c
new file mode 100644
index 0000000000..7d340875d3
--- /dev/null
+++ b/iconvdata/ibm864.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM864.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm864.h>
+
+#define CHARSET_NAME "IBM864//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm865.c b/iconvdata/ibm865.c
new file mode 100644
index 0000000000..1a549b1fdf
--- /dev/null
+++ b/iconvdata/ibm865.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM865.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm865.h>
+
+#define CHARSET_NAME "IBM865//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm868.c b/iconvdata/ibm868.c
new file mode 100644
index 0000000000..de7734ebe6
--- /dev/null
+++ b/iconvdata/ibm868.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM868.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm868.h>
+
+#define CHARSET_NAME "IBM868//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm869.c b/iconvdata/ibm869.c
new file mode 100644
index 0000000000..b12df6b375
--- /dev/null
+++ b/iconvdata/ibm869.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM869.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm869.h>
+
+#define CHARSET_NAME "IBM869//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm870.c b/iconvdata/ibm870.c
new file mode 100644
index 0000000000..b020c3f91c
--- /dev/null
+++ b/iconvdata/ibm870.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM870.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm870.h>
+
+#define CHARSET_NAME "IBM870//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm871.c b/iconvdata/ibm871.c
new file mode 100644
index 0000000000..73b7c9b48c
--- /dev/null
+++ b/iconvdata/ibm871.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM871.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm871.h>
+
+#define CHARSET_NAME "IBM871//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm875.c b/iconvdata/ibm875.c
new file mode 100644
index 0000000000..b6340f5e7a
--- /dev/null
+++ b/iconvdata/ibm875.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM875.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm875.h>
+
+#define CHARSET_NAME "IBM875//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm880.c b/iconvdata/ibm880.c
new file mode 100644
index 0000000000..65bcaa59d3
--- /dev/null
+++ b/iconvdata/ibm880.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM880.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm880.h>
+
+#define CHARSET_NAME "IBM880//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/ibm891.c b/iconvdata/ibm891.c
new file mode 100644
index 0000000000..f6ed499ad6
--- /dev/null
+++ b/iconvdata/ibm891.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM891.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm891.h>
+
+#define CHARSET_NAME "IBM891//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm903.c b/iconvdata/ibm903.c
new file mode 100644
index 0000000000..e81dd4dfe1
--- /dev/null
+++ b/iconvdata/ibm903.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM903.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm903.h>
+
+#define CHARSET_NAME "IBM903//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm904.c b/iconvdata/ibm904.c
new file mode 100644
index 0000000000..92e149da95
--- /dev/null
+++ b/iconvdata/ibm904.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM904.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm904.h>
+
+#define CHARSET_NAME "IBM904//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm905.c b/iconvdata/ibm905.c
new file mode 100644
index 0000000000..ce05bab1ec
--- /dev/null
+++ b/iconvdata/ibm905.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM905.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#include <ibm905.h>
+
+#define CHARSET_NAME "IBM905//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-generic.c>
diff --git a/iconvdata/ibm918.c b/iconvdata/ibm918.c
new file mode 100644
index 0000000000..0dbdb9c521
--- /dev/null
+++ b/iconvdata/ibm918.c
@@ -0,0 +1,29 @@
+/* Conversion from and to IBM918.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <ibm918.h>
+
+#define CHARSET_NAME "IBM918//"
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c
index 4b7c2bbbbf..fa54371be3 100644
--- a/iconvdata/iso646.c
+++ b/iconvdata/iso646.c
@@ -62,6 +62,56 @@ enum variant
illegal_var,
US, /* ANSI_X3.4-1968 */
GB, /* BS_4730 */
+ CA, /* CSA_Z243.4-1985-1 */
+ CA2, /* CSA_Z243.4-1985-2 */
+ DE, /* DIN_66003 */
+ DK, /* DS_2089 */
+ ES, /* ES */
+ ES2, /* ES2 */
+ CN, /* GB_1988-80 */
+ IT, /* IT */
+ JP, /* JIS_C6220-1969-RO */
+ JP_OCR_B, /* JIS_C6229-1984-B */
+ YU, /* JUS_I.B1.002 */
+ KR, /* KSC5636 */
+ HU, /* MSZ_7795.3 */
+ CU, /* NC_NC00-10 */
+ FR, /* NF_Z_62-010 */
+ FR1, /* NF_Z_62-010_(1973) */
+ NO, /* NS_4551-1 */
+ NO2, /* NS_4551-2 */
+ PT, /* PT */
+ PT2, /* PT2 */
+ SE, /* SEN_850200_B */
+ SE2 /* SEN_850200_C */
+};
+
+static const char *names[] =
+{
+ [US] = "ANSI_X3.4-1968//",
+ [GB] = "BS_4730//",
+ [CA] = "CSA_Z243.4-1985-1//",
+ [CA2] = "CSA_Z243.4-1985-2//",
+ [DE] = "DIN_66003//",
+ [DK] = "DS_2089//",
+ [ES] = "ES//",
+ [ES2] = "ES2//",
+ [CN] = "GB_1988-80//",
+ [IT] = "IT//",
+ [JP] = "JIS_C6220-1969-RO//",
+ [JP_OCR_B] = "JIS_C6229-1984-B//",
+ [YU] = "JUS_I.B1.002//",
+ [KR] = "KSC5636//",
+ [HU] = "MSZ_7795.3//",
+ [CU] = "NC_NC00-10//",
+ [FR] = "NF_Z_62-010//",
+ [FR1] = "NF_Z_62-010_(1973)//",
+ [NO] = "NS_4551-1//",
+ [NO2] = "NS_4551-2//",
+ [PT] = "PT//",
+ [PT2] = "PT2//",
+ [SE] = "SEN_850200_B//",
+ [SE2] = "SEN_850200_C//"
};
struct iso646_data
@@ -76,35 +126,21 @@ gconv_init (struct gconv_step *step)
{
/* Determine which direction. */
struct iso646_data *new_data;
- enum direction dir;
+ enum direction dir = illegal_dir;
enum variant var;
int result;
- if (__strcasestr (step->from_name, "ANSI_X3.4-1968") != NULL)
- {
- dir = from_iso646;
- var = US;
- }
- else if (__strcasestr (step->from_name, "BS_4730") != NULL)
- {
- dir = from_iso646;
- var = GB;
- }
- else if (__strcasestr (step->to_name, "ANSI_X3.4-1968") != NULL)
- {
- dir = to_iso646;
- var = US;
- }
- else if (__strcasestr (step->to_name, "BS_4730") != NULL)
- {
- dir = to_iso646;
- var = GB;
- }
- else
- {
- dir = illegal_dir;
- var = illegal_var;
- }
+ for (var = sizeof (names) / sizeof (names[0]) - 1; var > illegal_var; --var)
+ if (__strcasecmp (step->from_name, names[var]) == 0)
+ {
+ dir = from_iso646;
+ break;
+ }
+ else if (__strcasecmp (step->to_name, names[var]) == 0)
+ {
+ dir = to_iso646;
+ break;
+ }
result = GCONV_NOCONV;
if (dir != illegal_dir
@@ -115,15 +151,16 @@ gconv_init (struct gconv_step *step)
new_data->dir = dir;
new_data->var = var;
step->data = new_data;
- result = GCONV_OK;
- }
- step->min_needed_from = MIN_NEEDED_FROM;
- step->max_needed_from = MIN_NEEDED_FROM;
- step->min_needed_to = MIN_NEEDED_TO;
- step->max_needed_to = MIN_NEEDED_TO;
+ step->min_needed_from = MIN_NEEDED_FROM;
+ step->max_needed_from = MIN_NEEDED_FROM;
+ step->min_needed_to = MIN_NEEDED_TO;
+ step->max_needed_to = MIN_NEEDED_TO;
- step->stateful = 0;
+ step->stateful = 0;
+
+ result = GCONV_OK;
+ }
return result;
}
@@ -145,27 +182,208 @@ gconv_end (struct gconv_step *data)
uint32_t ch; \
int failure = GCONV_OK; \
\
- switch (*inptr) \
+ ch = *inptr; \
+ switch (ch) \
{ \
- case '\x23': \
- if (var == GB) \
+ case 0x23: \
+ if (var == GB || var == ES || var == IT || var == FR || var == FR1) \
ch = 0xa3; \
- else \
- ch = 0x23; \
+ else if (var == NO2) \
+ ch = 0xa7; \
+ break; \
+ case 0x24: \
+ if (var == CN) \
+ ch = 0xa5; \
+ else if (var == HU || var == CU || var == SE || var == SE2) \
+ ch = 0xa4; \
+ break; \
+ case 0x40: \
+ if (var == CA || var == CA2 || var == FR || var == FR1) \
+ ch = 0xe0; \
+ else if (var == DE || var == ES || var == IT || var == PT) \
+ ch = 0xa7; \
+ else if (var == ES2) \
+ ch = 0x2022; \
+ else if (var == YU) \
+ ch = 0x17d; \
+ else if (var == HU) \
+ ch = 0xc1; \
+ else if (var == PT2) \
+ ch = 0xb4; \
+ else if (var == SE2) \
+ ch = 0xc9; \
+ break; \
+ case 0x5b: \
+ if (var == CA || var == CA2) \
+ ch = 0xe2; \
+ else if (var == DE || var == SE || var == SE2) \
+ ch = 0xc4; \
+ else if (var == DK || var == NO || var == NO2) \
+ ch = 0xc6; \
+ else if (var == ES || var == ES2 || var == CU) \
+ ch = 0xa1; \
+ else if (var == IT || var == FR || var == FR1) \
+ ch = 0xb0; \
+ else if (var == JP_OCR_B) \
+ ch = 0x2329; \
+ else if (var == YU) \
+ ch = 0x160; \
+ else if (var == HU) \
+ ch = 0xc9; \
+ else if (var == PT || var == PT2) \
+ ch = 0xc3; \
break; \
- case '\x7e': \
- if (var == GB) \
+ case 0x5c: \
+ if (var == CA || var == CA2 || var == IT || var == FR || var == FR1) \
+ ch = 0xe7; \
+ else if (var == DE || var == HU || var == SE || var == SE2) \
+ ch = 0xd6; \
+ else if (var == DK || var == NO || var == NO2) \
+ ch = 0xd8; \
+ else if (var == ES || var == ES2 || var == CU) \
+ ch = 0xd1; \
+ else if (var == JP || var == JP_OCR_B) \
+ ch = 0xa5; \
+ else if (var == YU) \
+ ch = 0x110; \
+ else if (var == KR) \
+ ch = 0x20a9; \
+ else if (var == PT || var == PT2) \
+ ch = 0xc7; \
+ break; \
+ case 0x5d: \
+ if (var == CA || var == CA2) \
+ ch = 0xea; \
+ else if (var == DE || var == HU) \
+ ch = 0xdc; \
+ else if (var == DK || var == NO || var == NO2 || var == SE \
+ || var == SE2) \
+ ch = 0xc5; \
+ else if (var == ES) \
+ ch = 0xbf; \
+ else if (var == ES2) \
+ ch = 0xc7; \
+ else if (var == IT) \
+ ch = 0xe9; \
+ else if (var == JP_OCR_B) \
+ ch = 0x232a; \
+ else if (var == YU) \
+ ch = 0x106; \
+ else if (var == FR || var == FR1) \
+ ch = 0xa7; \
+ else if (var == PT || var == PT2) \
+ ch = 0xd5; \
+ break; \
+ case 0x5e: \
+ if (var == CA) \
+ ch = 0xee; \
+ else if (var == CA2) \
+ ch = 0xc9; \
+ else if (var == ES2 || var == CU) \
+ ch = 0xbf; \
+ else if (var == YU) \
+ ch = 0x10c; \
+ else if (var == SE2) \
+ ch = 0xdc; \
+ break; \
+ case 0x60: \
+ if (var == CA || var == CA2) \
+ ch = 0xf4; \
+ else if (var == IT) \
+ ch = 0xf9; \
+ else if (var == JP_OCR_B) \
+ /* Illegal character. */ \
+ failure = GCONV_ILLEGAL_INPUT; \
+ else if (var == YU) \
+ ch = 0x17e; \
+ else if (var == HU) \
+ ch = 0xe1; \
+ else if (var == FR) \
+ ch = 0xb5; \
+ else if (var == SE2) \
+ ch = 0xe9; \
+ break; \
+ case 0x7b: \
+ if (var == CA || var == CA2 || var == HU || var == FR || var == FR1) \
+ ch = 0xe9; \
+ else if (var == DE || var == SE || var == SE2) \
+ ch = 0xe4; \
+ else if (var == DK || var == NO || var == NO2) \
+ ch = 0xe6; \
+ else if (var == ES) \
+ ch = 0xb0; \
+ else if (var == ES2 || var == CU) \
+ ch = 0xb4; \
+ else if (var == IT) \
+ ch = 0xe0; \
+ else if (var == YU) \
+ ch = 0x161; \
+ else if (var == PT || var == PT2) \
+ ch = 0xe3; \
+ break; \
+ case 0x7c: \
+ if (var == CA || var == CA2 || var == FR || var == FR1) \
+ ch = 0xf9; \
+ else if (var == DE || var == HU || var == SE || var == SE2) \
+ ch = 0xf6; \
+ else if (var == DK || var == NO || var == NO2) \
+ ch = 0xf8; \
+ else if (var == ES || var == ES2 || var == CU) \
+ ch = 0xf1; \
+ else if (var == IT) \
+ ch = 0xf2; \
+ else if (var == YU) \
+ ch = 0x111; \
+ else if (var == PT || var == PT2) \
+ ch = 0xe7; \
+ break; \
+ case 0x7d: \
+ if (var == CA || var == CA2 || var == IT || var == FR || var == FR1) \
+ ch = 0xe8; \
+ else if (var == DE || var == HU) \
+ ch = 0xfc; \
+ else if (var == DK || var == NO || var == NO2 || var == SE \
+ || var == SE2) \
+ ch = 0xe5; \
+ else if (var == ES || var == ES2) \
+ ch = 0xe7; \
+ else if (var == YU) \
+ ch = 0x107; \
+ else if (var == CU) \
+ ch = 0x5b; \
+ else if (var == PT || var == PT2) \
+ ch = 0xf5; \
+ break; \
+ case 0x7e: \
+ if (var == GB || var == CN || var == JP || var == NO || var == SE) \
ch = 0x203e; \
- else \
- ch = 0x7e; \
+ else if (var == CA || var == CA2) \
+ ch = 0xfb; \
+ else if (var == DE) \
+ ch = 0xdf; \
+ else if (var == ES2 || var == CU || var == FR || var == FR1) \
+ ch = 0xa8; \
+ else if (var == IT) \
+ ch = 0xec; \
+ else if (var == JP_OCR_B) \
+ /* Illegal character. */ \
+ failure = GCONV_ILLEGAL_INPUT; \
+ else if (var == YU) \
+ ch = 0x10d; \
+ else if (var == HU) \
+ ch = 0x2dd; \
+ else if (var == NO2) \
+ ch = 0x7c; \
+ else if (var == PT) \
+ ch = 0xb0; \
+ else if (var == SE2) \
+ ch = 0xfc; \
break; \
default: \
- ch = *inptr; \
break; \
case '\x80' ... '\xff': \
/* Illegal character. */ \
failure = GCONV_ILLEGAL_INPUT; \
- ch = '\0'; /* OK, gcc, here I initialize the variable. */ \
break; \
} \
\
@@ -190,54 +408,462 @@ gconv_end (struct gconv_step *data)
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- unsigned char ch; \
+ unsigned char ch = '\0'; \
int failure = GCONV_OK; \
\
- do \
+ ch = *((uint32_t *) inptr); \
+ switch (*((uint32_t *) inptr)) \
{ \
- switch (*((uint32_t *) inptr)) \
- { \
- case 0x23: \
- if (var == GB) \
- break; \
- ch = 0x23; \
- continue; \
- case 0x7e: \
- if (var == GB) \
- break; \
- ch = 0x7e; \
- continue; \
- case 0xa3: \
- if (var != GB) \
- break; \
- ch = 0x23; \
- continue; \
- case 0x203e: \
- if (var != GB) \
- break; \
- ch = 0x7e; \
- continue; \
- default: \
- if (*((uint32_t *) inptr) > 0x7f) \
- break; \
- ch = (unsigned char) *((uint32_t *) inptr); \
- continue; \
- } \
- /* When we come to this place we saw an illegal character. */ \
- failure = GCONV_ILLEGAL_INPUT; \
- ch = '\0'; /* OK, gcc, here I initialize the variable. */ \
+ case 0x23: \
+ if (var == GB || var == ES || var == IT || var == FR || var == FR1 \
+ || var == NO2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x24: \
+ if (var == CN || var == HU || var == CU || var == SE || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x40: \
+ if (var == CA || var == CA2 || var == DE || var == ES || var == ES2 \
+ || var == IT || var == YU || var == HU || var == FR || var == FR1 \
+ || var == PT || var == PT2 || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x5b: \
+ if (var == CA || var == CA2 || var == DE || var == DK || var == ES \
+ || var == ES2 || var == IT || var == JP_OCR_B || var == YU \
+ || var == HU || var == FR || var == FR1 || var == NO \
+ || var == NO2 || var == PT || var == PT2 || var == SE \
+ || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ else if (var == CU) \
+ ch = 0x7d; \
+ break; \
+ case 0x5c: \
+ if (var == CA || var == CA2 || var == DE || var == DK || var == ES \
+ || var == ES2 || var == IT || var == JP || var == JP_OCR_B \
+ || var == YU || var == KR || var == HU || var == CU || var == FR \
+ || var == FR1 || var == NO || var == NO2 || var == PT \
+ || var == PT2 || var == SE || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x5d: \
+ if (var == CA || var == CA2 || var == DE || var == DK || var == ES \
+ || var == ES2 || var == IT || var == JP_OCR_B || var == YU \
+ || var == HU || var == FR || var == FR1 || var == NO \
+ || var == NO2 || var == PT || var == PT2 || var == SE \
+ || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x5e: \
+ if (var == CA || var == CA2 || var == ES2 || var == YU || var == CU \
+ || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x60: \
+ if (var == CA || var == CA2 || var == IT || var == JP_OCR_B \
+ || var == YU || var == HU || var == FR || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x7b: \
+ if (var == CA || var == CA2 || var == DE || var == DK || var == ES \
+ || var == ES2 || var == IT || var == YU || var == HU \
+ || var == CU || var == FR || var == FR1 || var == NO \
+ || var == NO2 || var == PT || var == PT2 || var == SE \
+ || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x7c: \
+ if (var == CA || var == CA2 || var == DE || var == DK || var == ES \
+ || var == ES2 || var == IT || var == YU || var == HU || var == CU \
+ || var == FR || var == FR1 || var == NO || var == PT \
+ || var == PT2 || var == SE || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ else if (var == NO2) \
+ ch = 0x7e; \
+ break; \
+ case 0x7d: \
+ if (var == CA || var == CA2 || var == DE || var == DK || var == ES \
+ || var == ES2 || var == IT || var == YU || var == HU || var == CU \
+ || var == FR || var == FR1 || var == NO || var == NO2 \
+ || var == PT || var == PT2 || var == SE || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x7e: \
+ if (var == GB || var == CA || var == CA2 || var == DE || var == ES2 \
+ || var == CN || var == IT || var == JP || var == JP_OCR_B \
+ || var == YU || var == HU || var == CU || var == FR || var == FR1 \
+ || var == NO || var == NO2 || var == PT || var == SE \
+ || var == SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xa1: \
+ if (var != ES && var != ES2 && var != CU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0xa3: \
+ if (var != GB && var != ES && var != IT && var != FR && var != FR1) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x23; \
+ break; \
+ case 0xa4: \
+ if (var != HU && var != CU && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x24; \
+ break; \
+ case 0xa5: \
+ if (var == CN) \
+ ch = 0x24; \
+ else if (var == JP || var == JP_OCR_B) \
+ ch = 0x5c; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xa7: \
+ if (var == DE || var == ES || var == IT || var == PT) \
+ ch = 0x40; \
+ else if (var == FR || var == FR1) \
+ ch = 0x5d; \
+ else if (var == NO2) \
+ ch = 0x23; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xa8: \
+ if (var != ES2 && var != CU && var != FR && var != FR1) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0xb0: \
+ if (var == ES) \
+ ch = 0x7b; \
+ else if (var == IT || var == FR || var == FR1) \
+ ch = 0x5b; \
+ else if (var == PT) \
+ ch = 0x7e; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xb4: \
+ if (var == ES2 || var == CU) \
+ ch = 0x7b; \
+ else if (var == PT2) \
+ ch = 0x40; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xb5: \
+ if (var != FR) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x60; \
+ break; \
+ case 0xbf: \
+ if (var == ES) \
+ ch = 0x5d; \
+ else if (var == ES2 || var == CU) \
+ ch = 0x5e; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xc1: \
+ if (var != HU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x40; \
+ break; \
+ case 0xc3: \
+ if (var != PT && var != PT2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0xc4: \
+ if (var != DE && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0xc5: \
+ if (var != DK && var != NO && var != NO2 && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5d; \
+ break; \
+ case 0xc6: \
+ if (var != DK && var != NO && var != NO2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0xc7: \
+ if (var == ES2) \
+ ch = 0x5d; \
+ else if (var == PT || var == PT2) \
+ ch = 0x5c; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xc9: \
+ if (var == CA2) \
+ ch = 0x5e; \
+ else if (var == HU) \
+ ch = 0x5b; \
+ else if (var == SE2) \
+ ch = 0x40; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xd1: \
+ if (var != ES && var != ES2 && var != CU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5c; \
+ break; \
+ case 0xd5: \
+ if (var != PT && var != PT2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5d; \
+ break; \
+ case 0xd6: \
+ if (var != DE && var != HU && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5c; \
+ break; \
+ case 0xd8: \
+ if (var != DK && var != NO && var != NO2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5c; \
+ break; \
+ case 0xdc: \
+ if (var == DE || var == HU) \
+ ch = 0x5d; \
+ else if (var == SE2) \
+ ch = 0x5e; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xdf: \
+ if (var != DE) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0xe0: \
+ if (var == CA || var == CA2 || var == FR || var == FR1) \
+ ch = 0x40; \
+ else if (var == IT) \
+ ch = 0x7b; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xe1: \
+ if (var != HU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x60; \
+ break; \
+ case 0xe2: \
+ if (var != CA && var != CA2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0xe3: \
+ if (var != PT && var != PT2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7b; \
+ break; \
+ case 0xe4: \
+ if (var != DE && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7b; \
+ break; \
+ case 0xe5: \
+ if (var != DK && var != NO && var != NO2 && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7d; \
+ break; \
+ case 0xe6: \
+ if (var != DK && var != NO && var != NO2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7b; \
+ break; \
+ case 0xe7: \
+ if (var == CA || var == CA2 || var == IT || var == FR || var == FR1) \
+ ch = 0x5c; \
+ else if (var == ES || var == ES2) \
+ ch = 0x7d; \
+ else if (var == PT || var == PT2) \
+ ch = 0x7c; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xe8: \
+ if (var != CA && var != CA2 && var != IT && var != FR && var != FR1) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7d; \
+ break; \
+ case 0xe9: \
+ if (var == CA || var == CA2 || var == HU || var == FR || var == FR1) \
+ ch = 0x7b; \
+ else if (var == IT) \
+ ch = 0x5d; \
+ else if (var == SE2) \
+ ch = 0x60; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xea: \
+ if (var != CA && var != CA2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5d; \
+ break; \
+ case 0xec: \
+ if (var != IT) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0xee: \
+ if (var != CA) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5e; \
+ break; \
+ case 0xf1: \
+ if (var != ES && var != ES2 && var != CU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7c; \
+ break; \
+ case 0xf2: \
+ if (var != IT) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7c; \
+ break; \
+ case 0xf4: \
+ if (var != CA && var != CA2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x60; \
+ break; \
+ case 0xf5: \
+ if (var != PT && var != PT2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7d; \
+ break; \
+ case 0xf6: \
+ if (var != DE && var != HU && var != SE && var != SE2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7c; \
+ break; \
+ case 0xf8: \
+ if (var != DK && var != NO && var != NO2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7c; \
+ break; \
+ case 0xf9: \
+ if (var == CA || var == CA2 || var == FR || var == FR1) \
+ ch = 0x7c; \
+ else if (var == IT) \
+ ch = 0x60; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0xfb: \
+ if (var != CA && var != CA2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0xfc: \
+ if (var == DE || var == HU) \
+ ch = 0x7d; \
+ else if (var == SE2) \
+ ch = 0x7e; \
+ else \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
+ case 0x160: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0x106: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5d; \
+ break; \
+ case 0x107: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7d; \
+ break; \
+ case 0x10c: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5e; \
+ break; \
+ case 0x10d: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0x110: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5c; \
+ break; \
+ case 0x111: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7c; \
+ break; \
+ case 0x161: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7b; \
+ break; \
+ case 0x17d: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x40; \
+ break; \
+ case 0x17e: \
+ if (var != YU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x60; \
+ break; \
+ case 0x2dd: \
+ if (var != HU) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0x2022: \
+ if (var != ES2) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x40; \
+ break; \
+ case 0x203e: \
+ if (var != GB && var != CN && var != JP && var != NO && var != SE) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x7e; \
+ break; \
+ case 0x20a9: \
+ if (var != KR) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5c; \
+ break; \
+ case 0x2329: \
+ if (var != JP_OCR_B) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5b; \
+ break; \
+ case 0x232a: \
+ if (var != JP_OCR_B) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ ch = 0x5d; \
+ break; \
+ default: \
+ if (*((uint32_t *) inptr) > 0x7f) \
+ failure = GCONV_ILLEGAL_INPUT; \
+ break; \
} \
- while (0); \
\
- /* Hopefully gcc can recognize that the following `if' is only true \
- when we fall through the `switch' statement. */ \
if (failure == GCONV_ILLEGAL_INPUT) \
{ \
/* Exit the loop with an error. */ \
result = failure; \
break; \
} \
- *outptr++ = ch; \
+ *outptr++ = (unsigned char) ch; \
inptr += 4; \
}
#define EXTRA_LOOP_DECLS , enum variant var
diff --git a/iconvdata/iso6937.c b/iconvdata/iso6937.c
index b121ffa77a..c927bd5fbb 100644
--- a/iconvdata/iso6937.c
+++ b/iconvdata/iso6937.c
@@ -372,7 +372,7 @@ static const char from_ucs4[][2] =
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "ISO_6937"
+#define CHARSET_NAME "ISO_6937//"
#define FROM_LOOP from_iso6937
#define TO_LOOP to_iso6937
#define DEFINE_INIT 1
diff --git a/iconvdata/iso8859-1.c b/iconvdata/iso8859-1.c
index c7b35b37dc..db6cbdf0f9 100644
--- a/iconvdata/iso8859-1.c
+++ b/iconvdata/iso8859-1.c
@@ -21,7 +21,7 @@
#include <stdint.h>
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "ISO-8859-1"
+#define CHARSET_NAME "ISO-8859-1//"
#define FROM_LOOP from_iso8859_1
#define TO_LOOP to_iso8859_1
#define DEFINE_INIT 1
diff --git a/iconvdata/iso8859-10.c b/iconvdata/iso8859-10.c
index acce3257e3..1f78df3fb6 100644
--- a/iconvdata/iso8859-10.c
+++ b/iconvdata/iso8859-10.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-10.h>
-#define CHARSET_NAME "ISO-8859-10"
+#define CHARSET_NAME "ISO-8859-10//"
#define HAS_HOLES 0 /* All 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-2.c b/iconvdata/iso8859-2.c
index 8a5e62418f..2af33fa56e 100644
--- a/iconvdata/iso8859-2.c
+++ b/iconvdata/iso8859-2.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-2.h>
-#define CHARSET_NAME "ISO-8859-2"
+#define CHARSET_NAME "ISO-8859-2//"
#define HAS_HOLES 0 /* All 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-3.c b/iconvdata/iso8859-3.c
index 10e52e429f..18227f4e14 100644
--- a/iconvdata/iso8859-3.c
+++ b/iconvdata/iso8859-3.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-3.h>
-#define CHARSET_NAME "ISO-8859-3"
+#define CHARSET_NAME "ISO-8859-3//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-4.c b/iconvdata/iso8859-4.c
index 01cdbf0b98..0dfa87e6f2 100644
--- a/iconvdata/iso8859-4.c
+++ b/iconvdata/iso8859-4.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-4.h>
-#define CHARSET_NAME "ISO-8859-4"
+#define CHARSET_NAME "ISO-8859-4//"
#define HAS_HOLES 0 /* All 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-5.c b/iconvdata/iso8859-5.c
index edf0f47b5c..46d904c8ec 100644
--- a/iconvdata/iso8859-5.c
+++ b/iconvdata/iso8859-5.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-5.h>
-#define CHARSET_NAME "ISO-8859-5"
+#define CHARSET_NAME "ISO-8859-5//"
#define HAS_HOLES 0 /* All 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-6.c b/iconvdata/iso8859-6.c
index 59ce3f2cc1..4a53f2f2b6 100644
--- a/iconvdata/iso8859-6.c
+++ b/iconvdata/iso8859-6.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-6.h>
-#define CHARSET_NAME "ISO-8859-6"
+#define CHARSET_NAME "ISO-8859-6//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-7.c b/iconvdata/iso8859-7.c
index d75e93e204..9d042aaf47 100644
--- a/iconvdata/iso8859-7.c
+++ b/iconvdata/iso8859-7.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-7.h>
-#define CHARSET_NAME "ISO-8859-7"
+#define CHARSET_NAME "ISO-8859-7//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-8.c b/iconvdata/iso8859-8.c
index 1612f148f4..f6a4e237aa 100644
--- a/iconvdata/iso8859-8.c
+++ b/iconvdata/iso8859-8.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-8.h>
-#define CHARSET_NAME "ISO-8859-8"
+#define CHARSET_NAME "ISO-8859-8//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/iso8859-9.c b/iconvdata/iso8859-9.c
index 063f189aba..132547a8fb 100644
--- a/iconvdata/iso8859-9.c
+++ b/iconvdata/iso8859-9.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <iso8859-9.h>
-#define CHARSET_NAME "ISO-8859-9"
+#define CHARSET_NAME "ISO-8859-9//"
#define HAS_HOLES 0 /* All 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/jis0212.h b/iconvdata/jis0212.h
index 4930437128..28d4b3ff5a 100644
--- a/iconvdata/jis0212.h
+++ b/iconvdata/jis0212.h
@@ -41,7 +41,7 @@ extern const struct jisx0212_idx __jisx0212_from_ucs_idx[];
extern const char __jisx0212_from_ucs[][2];
-static inline wchar_t
+static inline uint32_t
jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
{
const struct jisx0212_idx *rp = __jisx0212_to_ucs_idx;
@@ -50,7 +50,7 @@ jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
uint32_t wch = 0;
int idx;
- if (ch < offset || (ch - offset) <= 0x6d || (ch - offset) > 0xea)
+ if (ch < offset || (ch - offset) < 0x22 || (ch - offset) > 0x6d)
return UNKNOWN_10646_CHAR;
if (avail < 2)
@@ -60,7 +60,7 @@ jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
if (ch2 < offset || (ch2 - offset) <= 0x20 || (ch2 - offset) >= 0x7f)
return UNKNOWN_10646_CHAR;
- idx = (ch - 0x21 - offset) * 94 + (ch2 - 0x21 - offset);
+ idx = (ch - offset - 0x21) * 94 + (ch2 - offset - 0x21);
while (idx > rp->end)
++rp;
@@ -77,7 +77,7 @@ jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
static inline size_t
-ucs4_to_jisx0212 (wchar_t wch, char *s, size_t avail)
+ucs4_to_jisx0212 (uint32_t wch, char *s, size_t avail)
{
const struct jisx0212_idx *rp = __jisx0212_from_ucs_idx;
unsigned int ch = (unsigned int) wch;
diff --git a/iconvdata/johab.c b/iconvdata/johab.c
index 6a582c0b70..ddc52491a4 100644
--- a/iconvdata/johab.c
+++ b/iconvdata/johab.c
@@ -220,7 +220,7 @@ johab_from_ucs4 (uint32_t ch, unsigned char *cp)
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "JOHAB"
+#define CHARSET_NAME "JOHAB//"
#define FROM_LOOP from_johab
#define TO_LOOP to_johab
#define DEFINE_INIT 1
@@ -243,7 +243,7 @@ johab_from_ucs4 (uint32_t ch, unsigned char *cp)
if (ch == 0x5c) \
ch = 0x20a9; \
else if (ch < 0x7f) \
- ch = (wchar_t) ch; \
+ ch = (uint32_t) ch; \
*/ \
if (ch < 0x7f) \
/* Plain ASCII. */ \
diff --git a/iconvdata/koi-8.c b/iconvdata/koi-8.c
index b2332c2a6a..058b37ea80 100644
--- a/iconvdata/koi-8.c
+++ b/iconvdata/koi-8.c
@@ -22,7 +22,7 @@
#include <stdint.h>
#include <koi-8.h>
-#define CHARSET_NAME "KOI-8"
+#define CHARSET_NAME "KOI-8//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-generic.c>
diff --git a/iconvdata/koi8-r.c b/iconvdata/koi8-r.c
index ee317bd25b..b239150279 100644
--- a/iconvdata/koi8-r.c
+++ b/iconvdata/koi8-r.c
@@ -23,7 +23,7 @@
/* Specify the conversion table. */
#define TABLES <koi8-r.h>
-#define CHARSET_NAME "KOI8-R"
+#define CHARSET_NAME "KOI8-R//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-gap.c>
diff --git a/iconvdata/koi8-r.h b/iconvdata/koi8-r.h
index fe83b72514..a8ea02bda2 100644
--- a/iconvdata/koi8-r.h
+++ b/iconvdata/koi8-r.h
@@ -1,4 +1,4 @@
-static const wchar_t to_ucs4[256] = {
+static const uint32_t to_ucs4[256] = {
[0x01] = 0x0001,
[0x02] = 0x0002,
[0x03] = 0x0003,
diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h
index 8a5c40e5dd..76793f9e5b 100644
--- a/iconvdata/ksc5601.h
+++ b/iconvdata/ksc5601.h
@@ -35,10 +35,6 @@ extern const uint16_t __ksc5601_hanja_to_ucs[KSC5601_HANJA];
extern const uint16_t __ksc5601_hanja_from_ucs[KSC5601_HANJA][2];
-/*
-static inline wchar_t
-ksc5601_to_ucs4 (char **s, size_t avail)
-*/
static inline uint32_t
ksc5601_to_ucs4 (uint16_t s)
{
@@ -145,11 +141,6 @@ ucs4_to_ksc5601_sym (uint32_t wch, uint16_t *s)
}
-/*
-static inline size_t
-ucs4_to_ksc5601 (wchar_t wch, char **s, size_t avail)
-*/
-
static inline size_t
ucs4_to_ksc5601 (uint32_t ch, uint16_t *s)
{
diff --git a/iconvdata/latin-greek-1.c b/iconvdata/latin-greek-1.c
index 37ccf09c09..0e944a44e8 100644
--- a/iconvdata/latin-greek-1.c
+++ b/iconvdata/latin-greek-1.c
@@ -21,7 +21,7 @@
/* Specify the conversion table. */
#define TABLES <latin-greek-1.h>
-#define CHARSET_NAME "LATIN-GREEK-1"
+#define CHARSET_NAME "LATIN-GREEK-1//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-gap.c>
diff --git a/iconvdata/latin-greek-1.h b/iconvdata/latin-greek-1.h
index ed699bf6a8..ab878c034e 100644
--- a/iconvdata/latin-greek-1.h
+++ b/iconvdata/latin-greek-1.h
@@ -1,4 +1,4 @@
-static const wchar_t to_ucs4[256] = {
+static const uint32_t to_ucs4[256] = {
[0x01] = 0x0001,
[0x02] = 0x0002,
[0x03] = 0x0003,
diff --git a/iconvdata/latin-greek.c b/iconvdata/latin-greek.c
index 8810f4a2e0..e8755f631a 100644
--- a/iconvdata/latin-greek.c
+++ b/iconvdata/latin-greek.c
@@ -21,7 +21,7 @@
/* Specify the conversion table. */
#define TABLES <latin-greek.h>
-#define CHARSET_NAME "LATIN-GREEK"
+#define CHARSET_NAME "LATIN-GREEK//"
#define HAS_HOLES 1 /* Not all 256 character are defined. */
#include <8bit-gap.c>
diff --git a/iconvdata/latin-greek.h b/iconvdata/latin-greek.h
index 73d93c4957..5bbef291a6 100644
--- a/iconvdata/latin-greek.h
+++ b/iconvdata/latin-greek.h
@@ -1,4 +1,4 @@
-static const wchar_t to_ucs4[256] = {
+static const uint32_t to_ucs4[256] = {
[0x01] = 0x0001,
[0x02] = 0x0002,
[0x03] = 0x0003,
diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
index d65b905b32..02dbda9d83 100644
--- a/iconvdata/sjis.c
+++ b/iconvdata/sjis.c
@@ -3980,7 +3980,7 @@ static const char from_ucs4_cjk[32657][2] =
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "SJIS"
+#define CHARSET_NAME "SJIS//"
#define FROM_LOOP from_sjis
#define TO_LOOP to_sjis
#define DEFINE_INIT 1
diff --git a/iconvdata/t61.c b/iconvdata/t61.c
index 8c288adca2..868af445e0 100644
--- a/iconvdata/t61.c
+++ b/iconvdata/t61.c
@@ -23,7 +23,7 @@
#include <string.h>
/* Data taken from the WG15 tables. */
-static const wchar_t to_ucs4[256] =
+static const uint32_t to_ucs4[256] =
{
/* 0x00 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
/* 0x08 */ 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
@@ -61,7 +61,7 @@ static const wchar_t to_ucs4[256] =
/* The outer array range runs from 0xc1 to 0xcf, the inner range from 0x20
to 0x7f. */
-static const wchar_t to_ucs4_comb[15][96] =
+static const uint32_t to_ucs4_comb[15][96] =
{
/* 0xc1 */
{
@@ -365,7 +365,7 @@ static const char from_ucs4[][2] =
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "T.61"
+#define CHARSET_NAME "T.61//"
#define FROM_LOOP from_t_61
#define TO_LOOP to_t_61
#define DEFINE_INIT 1
diff --git a/iconvdata/testdata/CSA_Z243.4-1985-1 b/iconvdata/testdata/CSA_Z243.4-1985-1
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/CSA_Z243.4-1985-1
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/CSA_Z243.4-1985-1..UCS2 b/iconvdata/testdata/CSA_Z243.4-1985-1..UCS2
new file mode 100644
index 0000000000..ba03d5d6bf
--- /dev/null
+++ b/iconvdata/testdata/CSA_Z243.4-1985-1..UCS2
Binary files differ
diff --git a/iconvdata/testdata/CSA_Z243.4-1985-2 b/iconvdata/testdata/CSA_Z243.4-1985-2
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/CSA_Z243.4-1985-2
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/CSA_Z243.4-1985-2..UCS4 b/iconvdata/testdata/CSA_Z243.4-1985-2..UCS4
new file mode 100644
index 0000000000..8f395d1c92
--- /dev/null
+++ b/iconvdata/testdata/CSA_Z243.4-1985-2..UCS4
Binary files differ
diff --git a/iconvdata/testdata/DIN_66003 b/iconvdata/testdata/DIN_66003
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/DIN_66003
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/DIN_66003..UTF8 b/iconvdata/testdata/DIN_66003..UTF8
new file mode 100644
index 0000000000..416166f391
--- /dev/null
+++ b/iconvdata/testdata/DIN_66003..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ § A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Ä Ö Ü ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ä ö ü ß
diff --git a/iconvdata/testdata/DS_2089 b/iconvdata/testdata/DS_2089
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/DS_2089
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/DS_2089..UTF8 b/iconvdata/testdata/DS_2089..UTF8
new file mode 100644
index 0000000000..78859631b1
--- /dev/null
+++ b/iconvdata/testdata/DS_2089..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Æ Ø Å ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z æ ø å ~
diff --git a/iconvdata/testdata/ES b/iconvdata/testdata/ES
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/ES
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/ES..UTF8 b/iconvdata/testdata/ES..UTF8
new file mode 100644
index 0000000000..dd13205d8e
--- /dev/null
+++ b/iconvdata/testdata/ES..UTF8
@@ -0,0 +1,6 @@
+ ! " £ $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ § A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z ¡ Ñ ¿ ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ° ñ ç ~
diff --git a/iconvdata/testdata/ES2 b/iconvdata/testdata/ES2
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/ES2
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/ES2..UTF8 b/iconvdata/testdata/ES2..UTF8
new file mode 100644
index 0000000000..3d325728aa
--- /dev/null
+++ b/iconvdata/testdata/ES2..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ • A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z ¡ Ñ Ç ¿ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ´ ñ ç ¨
diff --git a/iconvdata/testdata/GB_1988-80 b/iconvdata/testdata/GB_1988-80
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/GB_1988-80
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/GB_1988-80..UTF8 b/iconvdata/testdata/GB_1988-80..UTF8
new file mode 100644
index 0000000000..be43f8ca05
--- /dev/null
+++ b/iconvdata/testdata/GB_1988-80..UTF8
@@ -0,0 +1,6 @@
+ ! " # ¥ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ‾
diff --git a/iconvdata/testdata/IT b/iconvdata/testdata/IT
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/IT
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/IT..UTF8 b/iconvdata/testdata/IT..UTF8
new file mode 100644
index 0000000000..586e03b7f5
--- /dev/null
+++ b/iconvdata/testdata/IT..UTF8
@@ -0,0 +1,6 @@
+ ! " £ $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ § A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z ° ç é ^ _
+ ù a b c d e f g h i j k l m n o
+ p q r s t u v w x y z à ò è ì
diff --git a/iconvdata/testdata/JIS_C6220-1969-RO b/iconvdata/testdata/JIS_C6220-1969-RO
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/JIS_C6220-1969-RO
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/JIS_C6220-1969-RO..UTF8 b/iconvdata/testdata/JIS_C6220-1969-RO..UTF8
new file mode 100644
index 0000000000..9a81b2a1b5
--- /dev/null
+++ b/iconvdata/testdata/JIS_C6220-1969-RO..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ ¥ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ‾
diff --git a/iconvdata/testdata/JIS_C6229-1984-B b/iconvdata/testdata/JIS_C6229-1984-B
new file mode 100644
index 0000000000..74b957e174
--- /dev/null
+++ b/iconvdata/testdata/JIS_C6229-1984-B
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | }
diff --git a/iconvdata/testdata/JIS_C6229-1984-B..UTF8 b/iconvdata/testdata/JIS_C6229-1984-B..UTF8
new file mode 100644
index 0000000000..7f5db117ff
--- /dev/null
+++ b/iconvdata/testdata/JIS_C6229-1984-B..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z 〈 ¥ 〉 ^ _
+ a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | }
diff --git a/iconvdata/testdata/JUS_I.B1.002 b/iconvdata/testdata/JUS_I.B1.002
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/JUS_I.B1.002
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/JUS_I.B1.002..UTF8 b/iconvdata/testdata/JUS_I.B1.002..UTF8
new file mode 100644
index 0000000000..3578c8bb74
--- /dev/null
+++ b/iconvdata/testdata/JUS_I.B1.002..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ Ž A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Š Đ Ć Č _
+ ž a b c d e f g h i j k l m n o
+ p q r s t u v w x y z š đ ć č
diff --git a/iconvdata/testdata/KSC5636 b/iconvdata/testdata/KSC5636
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/KSC5636
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/KSC5636..UTF8 b/iconvdata/testdata/KSC5636..UTF8
new file mode 100644
index 0000000000..6de66ccc4b
--- /dev/null
+++ b/iconvdata/testdata/KSC5636..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ ₩ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/MSZ_7795.3 b/iconvdata/testdata/MSZ_7795.3
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/MSZ_7795.3
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/MSZ_7795.3..UTF8 b/iconvdata/testdata/MSZ_7795.3..UTF8
new file mode 100644
index 0000000000..c62fae92e6
--- /dev/null
+++ b/iconvdata/testdata/MSZ_7795.3..UTF8
@@ -0,0 +1,6 @@
+ ! " # ¤ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ Á A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z É Ö Ü ^ _
+ á a b c d e f g h i j k l m n o
+ p q r s t u v w x y z é ö ü ˝
diff --git a/iconvdata/testdata/NC_NC00-10 b/iconvdata/testdata/NC_NC00-10
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/NC_NC00-10
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/NC_NC00-10..UTF8 b/iconvdata/testdata/NC_NC00-10..UTF8
new file mode 100644
index 0000000000..a8b2230c84
--- /dev/null
+++ b/iconvdata/testdata/NC_NC00-10..UTF8
@@ -0,0 +1,6 @@
+ ! " # ¤ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z ¡ Ñ ] ¿ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ´ ñ [ ¨
diff --git a/iconvdata/testdata/NF_Z_62-010 b/iconvdata/testdata/NF_Z_62-010
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/NF_Z_62-010
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/NF_Z_62-010..UTF8 b/iconvdata/testdata/NF_Z_62-010..UTF8
new file mode 100644
index 0000000000..c0bc7194ec
--- /dev/null
+++ b/iconvdata/testdata/NF_Z_62-010..UTF8
@@ -0,0 +1,6 @@
+ ! " £ $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ à A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z ° ç § ^ _
+ µ a b c d e f g h i j k l m n o
+ p q r s t u v w x y z é ù è ¨
diff --git a/iconvdata/testdata/NF_Z_62-010_1973 b/iconvdata/testdata/NF_Z_62-010_1973
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/NF_Z_62-010_1973
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/NF_Z_62-010_1973..UTF8 b/iconvdata/testdata/NF_Z_62-010_1973..UTF8
new file mode 100644
index 0000000000..1324ad229b
--- /dev/null
+++ b/iconvdata/testdata/NF_Z_62-010_1973..UTF8
@@ -0,0 +1,6 @@
+ ! " £ $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ à A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z ° ç § ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z é ù è ¨
diff --git a/iconvdata/testdata/NS_4551-1 b/iconvdata/testdata/NS_4551-1
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/NS_4551-1
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/NS_4551-1..UTF8 b/iconvdata/testdata/NS_4551-1..UTF8
new file mode 100644
index 0000000000..5174b5657c
--- /dev/null
+++ b/iconvdata/testdata/NS_4551-1..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Æ Ø Å ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z æ ø å ‾
diff --git a/iconvdata/testdata/NS_4551-2 b/iconvdata/testdata/NS_4551-2
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/NS_4551-2
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/NS_4551-2..UTF8 b/iconvdata/testdata/NS_4551-2..UTF8
new file mode 100644
index 0000000000..f777b2c349
--- /dev/null
+++ b/iconvdata/testdata/NS_4551-2..UTF8
@@ -0,0 +1,6 @@
+ ! " § $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Æ Ø Å ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z æ ø å |
diff --git a/iconvdata/testdata/PT b/iconvdata/testdata/PT
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/PT
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/PT..UTF8 b/iconvdata/testdata/PT..UTF8
new file mode 100644
index 0000000000..4e7c430be4
--- /dev/null
+++ b/iconvdata/testdata/PT..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ § A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Ã Ç Õ ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ã ç õ °
diff --git a/iconvdata/testdata/PT2 b/iconvdata/testdata/PT2
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/PT2
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/PT2..UTF8 b/iconvdata/testdata/PT2..UTF8
new file mode 100644
index 0000000000..8367159176
--- /dev/null
+++ b/iconvdata/testdata/PT2..UTF8
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ ´ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Ã Ç Õ ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ã ç õ ~
diff --git a/iconvdata/testdata/SEN_850200_B b/iconvdata/testdata/SEN_850200_B
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/SEN_850200_B
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/SEN_850200_B..UTF8 b/iconvdata/testdata/SEN_850200_B..UTF8
new file mode 100644
index 0000000000..458e21f68c
--- /dev/null
+++ b/iconvdata/testdata/SEN_850200_B..UTF8
@@ -0,0 +1,6 @@
+ ! " # ¤ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Ä Ö Å ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ä ö å ‾
diff --git a/iconvdata/testdata/SEN_850200_C b/iconvdata/testdata/SEN_850200_C
new file mode 100644
index 0000000000..7b7da5f318
--- /dev/null
+++ b/iconvdata/testdata/SEN_850200_C
@@ -0,0 +1,6 @@
+ ! " # $ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ @ A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z [ \ ] ^ _
+ ` a b c d e f g h i j k l m n o
+ p q r s t u v w x y z { | } ~
diff --git a/iconvdata/testdata/SEN_850200_C..UTF8 b/iconvdata/testdata/SEN_850200_C..UTF8
new file mode 100644
index 0000000000..9af159df27
--- /dev/null
+++ b/iconvdata/testdata/SEN_850200_C..UTF8
@@ -0,0 +1,6 @@
+ ! " # ¤ % & ' ( ) * + , - . /
+ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+ É A B C D E F G H I J K L M N O
+ P Q R S T U V W X Y Z Ä Ö Å Ü _
+ é a b c d e f g h i j k l m n o
+ p q r s t u v w x y z ä ö å ü
diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
index f3addd4c4d..9c0b668ff7 100644
--- a/iconvdata/uhc.c
+++ b/iconvdata/uhc.c
@@ -43,7 +43,7 @@ egrep \
*/
-static const wchar_t uhc_extra_to_ucs[8822]=
+static const uint32_t uhc_extra_to_ucs[8822]=
{
0xac02, 0xac03, 0xac05, 0xac06, 0xac0b, 0xac0c, 0xac0d, 0xac0e,
0xac0f, 0xac18, 0xac1e, 0xac1f, 0xac21, 0xac22, 0xac23, 0xac25,
@@ -2607,7 +2607,7 @@ uhc_from_ucs4 (uint32_t ch, unsigned char *cp)
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "UHC"
+#define CHARSET_NAME "UHC//"
#define FROM_LOOP from_uhc
#define TO_LOOP to_uhc
#define DEFINE_INIT 1
@@ -2630,7 +2630,7 @@ uhc_from_ucs4 (uint32_t ch, unsigned char *cp)
if (ch == 0x5c) \
ch = 0x20a9; \
else if (ch <= 0x7f) \
- ch = (wchar_t) ch; \
+ ch = (uint32_t) ch; \
*/ \
if (ch <= 0x7f) \
++inptr; \
diff --git a/io/ftw.h b/io/ftw.h
index bf0c7c885e..f2c59c4412 100644
--- a/io/ftw.h
+++ b/io/ftw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -113,7 +113,7 @@ extern int ftw __P ((__const char *__dir, __ftw_func_t __func,
extern int __REDIRECT (ftw, __P ((__const char *__dir, __ftw_func_t __func,
int __descriptors)), ftw64);
# else
-# define nftw nftw64
+# define ftw ftw64
# endif
#endif
#ifdef __USE_LARGEFILE64
diff --git a/localedata/locales/pt_BR b/localedata/locales/pt_BR
index 7c71a345d1..5bbd989ac9 100644
--- a/localedata/locales/pt_BR
+++ b/localedata/locales/pt_BR
@@ -29,7 +29,7 @@ noexpr "<'/>><<(><n><N><)/>><.><*>"
END LC_MESSAGES
LC_MONETARY
-int_curr_symbol "<B><R><C><SP>"
+int_curr_symbol "<B><R><L><SP>"
currency_symbol "<R><DO>"
mon_decimal_point "<,>"
mon_thousands_sep "<.>"
diff --git a/posix/Makefile b/posix/Makefile
index 525df3cf86..08f20b6256 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -102,7 +102,7 @@ glob/%.h: %.h
ln -s ../$< $@
glob/configure: glob/configure.in
- cd glob; autoconf $(ACFLAGS)
+ cd glob && autoconf $(ACFLAGS)
ifeq ($(with-cvs),yes)
test ! -d CVS || cvs $(CVSOPTS) commit -m'Regenerated: autoconf $(ACFLAGS) $<' $@
endif
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 48bcf6f5fd..7666c87936 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -935,6 +935,57 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
else
negative = 0;
+ /* Take care for the special arguments "nan" and "inf". */
+ if (tolower (c) == 'n')
+ {
+ /* Maybe "nan". */
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'a')
+ input_error ();
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'n')
+ input_error ();
+ ADDW (c);
+ /* It is "nan". */
+ goto scan_float;
+ }
+ else if (tolower (c) == 'i')
+ {
+ /* Maybe "inf" or "infinity". */
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'n')
+ input_error ();
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'f')
+ input_error ();
+ ADDW (c);
+ /* It is as least "inf". */
+ if (inchar () != EOF)
+ {
+ if (tolower (c) == 'i')
+ {
+ /* No we have to read the rest as well. */
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'n')
+ input_error ();
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'i')
+ input_error ();
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 't')
+ input_error ();
+ ADDW (c);
+ if (inchar () == EOF || tolower (c) != 'y')
+ input_error ();
+ ADDW (c);
+ }
+ else
+ /* Never mind. */
+ ungetc (c, s);
+ }
+ goto scan_float;
+ }
+
is_hexa = 0;
exp_char = 'e';
if (c == '0')
@@ -995,6 +1046,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
if (wpsize == 0 || (is_hexa && wpsize == 2))
conv_error ();
+ scan_float:
/* Convert the number. */
ADDW ('\0');
if (flags & LONGDBL)
diff --git a/stdio/stdio.h b/stdio/stdio.h
index 2631d83e43..dd4dd6db0d 100644
--- a/stdio/stdio.h
+++ b/stdio/stdio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -447,18 +447,22 @@ extern int vsnprintf __P ((char *__s, size_t __maxlen,
#ifdef __USE_GNU
/* Write formatted output to a string dynamically allocated with `malloc'.
Store the address of the string in *PTR. */
-extern int vasprintf __P ((char **__ptr, __const char *__f,
- __gnuc_va_list __arg))
- __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int asprintf __P ((char **__ptr, __const char *__fmt, ...))
+extern int vasprintf __P ((char **__restrict __ptr,
+ __const char *__restrict __f, __gnuc_va_list __arg))
__attribute__ ((__format__ (__printf__, 2, 0)));
+extern int __asprintf __P ((char **__restrict __ptr,
+ __const char *__restrict __fmt, ...))
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+extern int asprintf __P ((char **__restrict __ptr,
+ __const char *__restrict __fmt, ...))
+ __attribute__ ((__format__ (__printf__, 2, 3)));
/* Write formatted output to a file descriptor. */
-extern int vdprintf __P ((int __fd, __const char *__fmt,
+extern int vdprintf __P ((int __fd, __const char *__restrict __fmt,
__gnuc_va_list __arg))
__attribute__ ((__format__ (__printf__, 2, 0)));
-extern int dprintf __P ((int __fd, __const char *__fmt, ...))
- __attribute__ ((__format__ (__printf__, 2, 0)));
+extern int dprintf __P ((int __fd, __const char *__restrict __fmt, ...))
+ __attribute__ ((__format__ (__printf__, 2, 3)));
#endif
diff --git a/sysdeps/gnu/utmp_file.c b/sysdeps/gnu/utmp_file.c
index 05bbcd1ce1..8003d3cdb0 100644
--- a/sysdeps/gnu/utmp_file.c
+++ b/sysdeps/gnu/utmp_file.c
@@ -18,7 +18,7 @@
Boston, MA 02111-1307, USA. */
#include <string.h>
-#include <unistd.>
+#include <unistd.h>
#define TRANSFORM_UTMP_FILE_NAME(file_name) \
((strcmp (file_name, _PATH_UTMP "x") == 0 \
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index b3161ca195..948920dfc1 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -92,8 +92,8 @@ $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
-chmod a-w $(hurd)/errnos.h-tmp
./$(..)move-if-change $(hurd)/errnos.h-tmp $(hurd)/errnos.h
ifeq ($(with-cvs),yes)
- test ! -d CVS || \
- (cd $(hurd); cvs commit -m'Regenerated from $^' errnos.h)
+ test ! -d $(hurd)/CVS || \
+ (cd $(hurd) && cvs commit -m'Regenerated from $^' errnos.h)
endif
touch $@
diff --git a/sysdeps/mach/hurd/bits/dirent.h b/sysdeps/mach/hurd/bits/dirent.h
new file mode 100644
index 0000000000..6609fde8ea
--- /dev/null
+++ b/sysdeps/mach/hurd/bits/dirent.h
@@ -0,0 +1,67 @@
+/* Directory entry structure `struct dirent'. Hurd version.
+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _DIRENT_H
+# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
+#endif
+
+#ifndef __USE_FILE_OFFSET64
+/* The old BSD4.4-compatible struct dirent. */
+struct dirent
+ {
+ __ino_t d_ino; /* File serial number. */
+ unsigned short int d_reclen; /* Length of the whole `struct dirent'. */
+ unsigned char d_type; /* File type, possibly unknown. */
+ unsigned char d_namlen; /* Length of the file name. */
+
+ /* Only this member is in the POSIX standard. */
+ char d_name[1]; /* File name (actually longer). */
+ };
+
+#else
+/* Linux-style 64-bit struct dirent. */
+struct dirent
+ {
+ __ino64_t d_ino;
+ __off64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+#endif
+
+#ifdef __USE_LARGEFILE64
+/* Same as above (Linux-style 64-bit struct dirent). */
+struct dirent64
+ {
+ __ino64_t d_ino;
+ __off64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+#endif
+
+#define d_fileno d_ino /* Backwards compatibility. */
+
+/* These definitions are accurate for neither the 32-bit nor the
+ 64-bit structures, but at least they are compatible. */
+#undef _DIRENT_HAVE_D_NAMLEN
+#define _DIRENT_HAVE_D_RECLEN 1
+#define _DIRENT_HAVE_D_TYPE 1
diff --git a/sysdeps/mach/hurd/readdir64.c b/sysdeps/mach/hurd/readdir64.c
new file mode 100644
index 0000000000..aed5e0199a
--- /dev/null
+++ b/sysdeps/mach/hurd/readdir64.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <errno.h>
+#include <limits.h>
+#include <stddef.h>
+#include <string.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+/* Read a directory entry from DIRP. */
+struct dirent64 *
+__readdir64 (DIR *dirp)
+{
+ struct dirent *dp;
+ static struct dirent64 dent;
+
+ /* XXX the new __dir_readdir64 RPC is not yet implemented */
+
+ /* If __dir_readdir64 failed, then fall back on the old implementation */
+ dp = readdir (dirp);
+ if (!dp)
+ return NULL;
+
+ /* Return a struct dirent64, converted from the 32-bit value. */
+ memset (&dent, 0, sizeof (dent));
+ dent.d_reclen = sizeof (dent);
+
+ dent.d_ino = dp->d_fileno;
+ dent.d_type = dp->d_type;
+ memcpy (dent.d_name, dp->d_name, dp->d_namlen);
+
+ return &dent;
+}
+weak_alias (__readdir64, readdir64)
diff --git a/sysdeps/mach/hurd/readdir64_r.c b/sysdeps/mach/hurd/readdir64_r.c
new file mode 100644
index 0000000000..bd00b0eb08
--- /dev/null
+++ b/sysdeps/mach/hurd/readdir64_r.c
@@ -0,0 +1,57 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <errno.h>
+#include <limits.h>
+#include <stddef.h>
+#include <string.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+/* Read a directory entry from DIRP. */
+int
+__readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
+{
+ struct dirent ent32, *res32;
+
+ /* XXX the new __dir_readdir64 RPC is not yet implemented */
+
+ /* If __dir_readdir64 failed, then fall back on the old implementation */
+ if (readdir_r (dirp, &ent32, &res32))
+ return -1;
+
+ if (!res32)
+ {
+ /* End of directory. */
+ *result = 0;
+ return 0;
+ }
+
+ /* Convert our result from the 32-bit value. */
+ memset (entry, 0, sizeof (*entry));
+ entry->d_reclen = sizeof (*entry);
+
+ entry->d_ino = res32->d_fileno;
+ entry->d_type = res32->d_type;
+ memcpy (entry->d_name, res32->d_name, res32->d_namlen);
+
+ *result = entry;
+ return 0;
+}
+weak_alias (__readdir64_r, readdir64_r)