]> granicus.if.org Git - recode/commitdiff
Version 3.6 v3.6
authorFrançois Pinard <pinard@iro.umontreal.ca>
Tue, 19 Feb 2008 04:13:35 +0000 (23:13 -0500)
committerFrançois Pinard <pinard@iro.umontreal.ca>
Tue, 19 Feb 2008 04:13:35 +0000 (23:13 -0500)
272 files changed:
AUTHORS
ChangeLog
Makefile.am
Makefile.in
NEWS
README
README-alpha [deleted file]
THANKS
TODO
aclocal.m4
aclocal.sh [new file with mode: 0755]
config.guess [changed mode: 0755->0644]
config.h.in
config.sub [changed mode: 0755->0644]
configure
configure.in
contrib/ChangeLog
contrib/Makefile.am
contrib/Makefile.in
contrib/README
contrib/recode.spec [new file with mode: 0644]
doc/ChangeLog
doc/Makefile.am
doc/Makefile.in
doc/Makemore
doc/help2man
doc/libiconv.texi
doc/recode.info
doc/recode.info-1
doc/recode.info-2
doc/recode.info-3
doc/recode.info-4
doc/recode.info-5
doc/recode.info-6
doc/recode.info-7 [new file with mode: 0644]
doc/recode.texi
doc/stamp-vti
doc/tables.py
doc/version.texi
i18n/Makefile.in
i18n/da.mo
i18n/da.po
i18n/de.mo
i18n/de.po
i18n/el.mo
i18n/el.po
i18n/es.mo
i18n/es.po
i18n/fr.mo
i18n/fr.po
i18n/gl.mo
i18n/gl.po
i18n/it.mo
i18n/it.po
i18n/nl.mo
i18n/nl.po
i18n/pl.mo
i18n/pl.po
i18n/pt.mo
i18n/pt.po
i18n/recode.pot
i18n/sl.mo
i18n/sl.po
i18n/sv.mo
i18n/sv.po
lib/ChangeLog
lib/Makefile.am
lib/Makefile.in
lib/gettext.c
libiconv/ChangeLog
libiconv/Makefile.am
libiconv/Makefile.in
libiconv/README [new file with mode: 0644]
libiconv/aliases.h
libiconv/armscii_8.h
libiconv/ascii.h
libiconv/big5.h
libiconv/big5hkscs.h [new file with mode: 0644]
libiconv/ces_big5.h
libiconv/ces_gbk.h
libiconv/cns11643.h
libiconv/cns11643_1.h
libiconv/cns11643_2.h
libiconv/cns11643_3.h
libiconv/cns11643_inv.h
libiconv/config.charset [new file with mode: 0755]
libiconv/converters.h
libiconv/cp1133.h
libiconv/cp1250.h
libiconv/cp1251.h
libiconv/cp1252.h
libiconv/cp1253.h
libiconv/cp1254.h
libiconv/cp1255.h
libiconv/cp1256.h
libiconv/cp1257.h
libiconv/cp1258.h
libiconv/cp850.h
libiconv/cp866.h
libiconv/cp874.h
libiconv/cp932.h
libiconv/cp932ext.h
libiconv/cp936ext.h
libiconv/cp949.h
libiconv/cp950.h
libiconv/cp950ext.h
libiconv/encodings.def
libiconv/encodings_local.def [new file with mode: 0644]
libiconv/euc_cn.h
libiconv/euc_jp.h
libiconv/euc_kr.h
libiconv/euc_tw.h
libiconv/flags.h
libiconv/gb12345.h
libiconv/gb12345ext.h
libiconv/gb18030.h [new file with mode: 0644]
libiconv/gb18030ext.h [new file with mode: 0644]
libiconv/gb18030uni.h [new file with mode: 0644]
libiconv/gb2312.h
libiconv/gbk.h
libiconv/gbkext1.h
libiconv/gbkext2.h
libiconv/gbkext_inv.h
libiconv/georgian_academy.h
libiconv/georgian_ps.h
libiconv/hkscs.h [new file with mode: 0644]
libiconv/hp_roman8.h
libiconv/hz.h
libiconv/iconv.h
libiconv/iso2022_cn.h
libiconv/iso2022_cnext.h
libiconv/iso2022_jp.h
libiconv/iso2022_jp1.h
libiconv/iso2022_jp2.h
libiconv/iso2022_kr.h
libiconv/iso646_cn.h
libiconv/iso646_jp.h
libiconv/iso8859_1.h
libiconv/iso8859_10.h
libiconv/iso8859_13.h
libiconv/iso8859_14.h
libiconv/iso8859_15.h
libiconv/iso8859_16.h
libiconv/iso8859_2.h
libiconv/iso8859_3.h
libiconv/iso8859_4.h
libiconv/iso8859_5.h
libiconv/iso8859_6.h
libiconv/iso8859_7.h
libiconv/iso8859_8.h
libiconv/iso8859_9.h
libiconv/isoir165.h
libiconv/isoir165ext.h
libiconv/java.h
libiconv/jisx0201.h
libiconv/jisx0208.h
libiconv/jisx0212.h
libiconv/johab.h
libiconv/johab_hangul.h
libiconv/koi8_r.h
libiconv/koi8_ru.h
libiconv/koi8_u.h
libiconv/ksc5601.h
libiconv/libcharset.h [new file with mode: 0644]
libiconv/loop_unicode.h [new file with mode: 0644]
libiconv/loop_wchar.h [new file with mode: 0644]
libiconv/loops.h [new file with mode: 0644]
libiconv/mac_arabic.h
libiconv/mac_centraleurope.h
libiconv/mac_croatian.h
libiconv/mac_cyrillic.h
libiconv/mac_greek.h
libiconv/mac_hebrew.h
libiconv/mac_iceland.h
libiconv/mac_roman.h
libiconv/mac_romania.h
libiconv/mac_thai.h
libiconv/mac_turkish.h
libiconv/mac_ukraine.h
libiconv/mulelao.h
libiconv/nextstep.h
libiconv/ref-add.sin [new file with mode: 0644]
libiconv/ref-del.sin [new file with mode: 0644]
libiconv/sjis.h
libiconv/tcvn.h
libiconv/tis620.h
libiconv/ucs2.h
libiconv/ucs2be.h
libiconv/ucs2internal.h
libiconv/ucs2le.h
libiconv/ucs2swapped.h
libiconv/ucs4.h
libiconv/ucs4be.h
libiconv/ucs4internal.h
libiconv/ucs4le.h
libiconv/ucs4swapped.h
libiconv/uhc_1.h
libiconv/uhc_2.h
libiconv/utf16.h
libiconv/utf16be.h
libiconv/utf16le.h
libiconv/utf7.h
libiconv/utf8.h
libiconv/viscii.h
m4/ChangeLog
m4/Makefile.am
m4/Makefile.in
m4/codeset.m4 [new file with mode: 0644]
m4/gettext.m4
m4/glibc21.m4 [new file with mode: 0644]
m4/libtool.m4 [new file with mode: 0644]
m4/microsoft.m4 [deleted file]
src/ChangeLog
src/Makefile.am
src/Makefile.in
src/african.c
src/afrtran.c
src/applemac.c
src/ascilat1.l
src/atarist.c
src/bangbang.c
src/base64.c
src/cdcnos.c
src/charname.h
src/combine.c
src/decsteps.h
src/dump.c
src/ebcdic.c
src/flat.c
src/fr-charname.h
src/hash.c
src/html.c
src/ibmpc.c
src/iconqnx.c
src/iconv.c
src/lat1asci.c
src/lat1ltex.c
src/lat1texi.c [deleted file]
src/lat1txte.c
src/libiconv.h
src/localcharset.c [new file with mode: 0644]
src/ltexlat1.l
src/main.c
src/merged.c
src/mixed.c
src/mule.c
src/names.c
src/outer.c
src/permut.c
src/pool.c [deleted file]
src/quoted.c
src/recode.1
src/recode.c
src/recodext.h
src/rfc1345.c
src/rfc1345.h
src/strip-data.c
src/tersteps.h [new file with mode: 0644]
src/testdump.c
src/texinfo.c
src/txtelat1.l
src/utf16.c
src/utf7.c
src/utf8.c
src/varia.c
src/vn.c
src/xalloc.h [moved from lib/xalloc.h with 100% similarity]
src/xmalloc.c [moved from lib/xmalloc.c with 100% similarity]
tests/ChangeLog
tests/Makefile.in
tests/names.m4
tests/testsuite

diff --git a/AUTHORS b/AUTHORS
index 72762cc08ecd0ef9f3fdea7e79c3a2f8264bf8cd..280a6bc26c78a12555cd37efdae469207b2a84a2 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -24,3 +24,7 @@ haible@clisp.cons.org
 LIBICONV        Bruno Haible    Germany/France 1965     1999-12-08
 Assigns program and future changes.
 haible@clisp.cons.org
+
+RECODE Linus Walleij   Sweden 1972     2000-07-03
+Assigns past and future changes (rtf.c).
+triad@df.lth.se
index 3d06c7a62f9c47dc7f99b2c2602742e294b6a19d..690e89d00719f29bc7474dce653a3ae23c423890 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2001-01-03  Bruno Haible  <haible@clisp.cons.org>
+
+       * configure.in: Version 3.6.
+
+2001-01-03  Bruno Haible  <haible@clisp.cons.org>
+
+       * configure.in: Test for memory.h and strndup.
+
+2000-12-06  Bruno Haible  <haible@clisp.cons.org>
+
+       * configure.in: Remove determination of compile-time DEFAULT_CHARSET.
+       * README: Remove section about DEFAULT_CHARSET at installation time.
+
+2000-12-05  Bruno Haible  <haible@clisp.cons.org>
+
+       * configure.in: Call AC_CANONICAL_HOST, jm_LANGINFO_CODESET,
+       jm_GLIBC21. Check for locale.h, stddef.h, stdlib.h, mbrtowc, wcrtomb,
+       setlocale.
+
+2000-08-30  Bruno Haible  <haible@clisp.cons.org>
+
+       * Makefile.am (ACLOCAL): New definition.
+       * aclocal.sh: New file.
+       * Makefile.am (EXTRA_DIST): Add it.
+
 2000-06-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * configure.in: Version 3.5e.
index 210d78d5a441b42d6ab4d920479033490d9ab5bb..001745fff7dd763a6bfb11540b3b6823ddd12fd2 100644 (file)
 # 02111-1307, USA.
 
 AUTOMAKE_OPTIONS = gnits
+ACLOCAL = ./aclocal.sh @ACLOCAL@
 ACLOCAL_AMFLAGS = -I m4
 
 BABYL = ../rmail/* ../*/rmail/* ../*/*/RMAIL ../*/*/rmail/*
-EXTRA_DIST = COPYING-LIB PATCHES-AC rebox.el recode.spec
+EXTRA_DIST = COPYING-LIB PATCHES-AC rebox.el recode.spec aclocal.sh
 SUBDIRS = m4 doc lib libiconv i18n src tests contrib
 
 POTFILES = src/main.c src/names.c src/outer.c src/recode.c \
index 7a4c35461130d868fdd55a0fd9b93e07e65147c3..9f6c992dcd1b7f509f15cf527d007a63537a98b8 100644 (file)
@@ -58,8 +58,6 @@ pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 
 top_builddir = .
-
-ACLOCAL = @ACLOCAL@
 AUTOCONF = @AUTOCONF@
 AUTOMAKE = @AUTOMAKE@
 AUTOHEADER = @AUTOHEADER@
@@ -88,6 +86,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -104,10 +103,11 @@ U = @U@
 VERSION = @VERSION@
 
 AUTOMAKE_OPTIONS = gnits
+ACLOCAL = ./aclocal.sh @ACLOCAL@
 ACLOCAL_AMFLAGS = -I m4
 
 BABYL = ../rmail/* ../*/rmail/* ../*/*/RMAIL ../*/*/rmail/*
-EXTRA_DIST = COPYING-LIB PATCHES-AC rebox.el recode.spec
+EXTRA_DIST = COPYING-LIB PATCHES-AC rebox.el recode.spec aclocal.sh
 SUBDIRS = m4 doc lib libiconv i18n src tests contrib
 
 POTFILES = src/main.c src/names.c src/outer.c src/recode.c src/request.c src/strip-data.c src/task.c src/testdump.c
@@ -117,10 +117,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = 
 DIST_COMMON =  README ./stamp-h.in ABOUT-NLS AUTHORS BACKLOG COPYING \
-ChangeLog INSTALL Makefile.am Makefile.in NEWS README-alpha THANKS TODO \
-acconfig.h acinclude.m4 aclocal.m4 config.guess config.h.in config.sub \
-configure configure.in install-sh ltconfig ltmain.sh missing \
-mkinstalldirs
+ChangeLog INSTALL Makefile.am Makefile.in NEWS THANKS TODO acconfig.h \
+acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \
+configure.in install-sh ltconfig ltmain.sh missing mkinstalldirs
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
@@ -130,15 +129,15 @@ GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        cd $(top_builddir) \
          && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
-$(ACLOCAL_M4):  configure.in  acinclude.m4 m4/atconfig.m4 m4/flex.m4 \
-               m4/gettext.m4 m4/lcmessage.m4 m4/malloc.m4 \
-               m4/microsoft.m4 m4/realloc.m4 m4/utimbuf.m4
+$(ACLOCAL_M4):  configure.in  acinclude.m4 m4/atconfig.m4 m4/codeset.m4 \
+               m4/flex.m4 m4/gettext.m4 m4/glibc21.m4 m4/lcmessage.m4 \
+               m4/libtool.m4 m4/malloc.m4 m4/realloc.m4 m4/utimbuf.m4
        cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 
 config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -305,11 +304,6 @@ distdir: $(DISTFILES)
        -rm -rf $(distdir)
        mkdir $(distdir)
        -chmod 777 $(distdir)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits Makefile
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
diff --git a/NEWS b/NEWS
index 444d304b71489467153e08c42f370311a1f46c6d..c8c9a6b21f293a2fd45baf6c9d030c6e66222ebf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,38 +1,43 @@
 Free recode NEWS - User visible changes.       -*- outline -*- (allout)
-Copyright © 1993, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+Copyright © 1993-1999, 2000, 2001 Free Software Foundation, Inc.
 
-* Version 3.5d - François Pinard, 2000-03.
+* Version 3.6 - François Pinard, Bruno Haible, 2001-01.
 
 .* General changes
-. + The Texinfo manual is now indexed, by charset, by concept, etc.
+. + The recode manual is now indexed, by charset, by concept, etc.
 . + Program messages are also available in Greek, Gallicean and Italian.
 . + Bruno Haible's nice portable iconv library has been integrated.
 . + RFC 1345 tables and French character names have been updated.
 . + The Texinfo charset has been refreshed, and made reversible.
 
-.* New charsets (most from libiconv) [list to be revised]
+.* New charsets (most from libiconv)
 
 . + Japanese
-    EUC-JP (csEUCPkdFmtJapanese,
+    EUC-JP (csEUCPkdFmtJapanese, EUC_JP,
       Extended_UNIX_Code_Packed_Format_for_Japanese);
     ISO-2022-JP (csISO2022JP); ISO-2022-JP-1; ISO-2022-JP-2 (csISO2022JP2);
-    JIS_X0201 (csHalfWidthKatakana, JISX0201-1976, JISX0201.1976-0, X0201);
-    JIS_X0208 (JIS0208, JIS_X0208.1983-0, JIS_X0208-1983, JIS_X0208-1990,
-      JIS_X0208.1983-1);
-    JIS_X0212 (csISO159JISX02121990, ISO-IR-159, JIS_X0212.1990-0,
+    JIS_C6220-1969-ro (csISO14JISC6220ro, ISO646-JP, iso-ir-14, jp);
+    JIS_X0201 (csHalfWidthKatakana, JIS0201, JISX0201-1976, JISX0201.1976-0,
+       X0201);
+    JIS_X0208 (csISO87JISX0208, ISO-IR-87, JIS0208, JIS_X0208.1983-0,
+       JIS_X0208.1983-1, JIS_X0208-1990-0, JIS_X0208.1983-1, X0208);
+    JIS_X0212 (csISO159JISX02121990, ISO-IR-159, JIS0212, JIS_X0212.1990-0,
       JIS_X0212-1990, X0212);
     SJIS (csShiftJIS, MS_KANJI, SHIFT-JIS).
 
 . + Chinese
-    BIG5 (BIG-5, BIG-FIVE, BIGFIVE, csBig5);
-    EUC-CN (csGB2312, EUCCN, GB2312); EUC-TW (csEUCTW, EUCTW);
-    HZ (HZ-GB-2312); ISO-2022-CN (csISO2022CN); ISO-2022-CN-EXT.
+    BIG5 (BIG-5, BIG-FIVE, BIGFIVE, CN-BIG5 csBig5); BIG5HKSCS;
+    EUC-CN (CN-GB, csGB2312, EUC_CN, GB2312); EUC-TW (csEUCTW, EUC_TW);
+    GB18030; HZ (HZ-GB-2312); ISO-2022-CN (csISO2022CN); ISO-2022-CN-EXT;
+    GB_1988-80 (cn, csISO57GB1988, ISO646-CN, iso-ir-57);
+    GB_2312-80 (CHINESE, csISO58GB231280, GB2312.1980-0, ISO-IR-58);
+    ISO-IR-165 (CN-GB-ISOIR165).
 
 . + Korean
-    JOHAB (CP1361); EUC-KR (csEUCKR, EUCKR); GBK (CP936);
+    JOHAB (CP1361); EUC-KR (csEUCKR, EUC_KR); GBK (CP936);
     ISO-2022-KR (csISO2022KR);
     KSC_5601 (CP949, csKSC56011987, ISO-IR-149, KOREAN, KSC5601.1987-0,
-      KS_C_5601-1987, KS_C_5601-1989).
+      KS_C_5601-1987, KS_C_5601-1989, KSX1001:1992).
 
 . + Vietnamese (independently of libiconv)
     TCVN; VIQR; VISCII; VNI; VPS.
@@ -48,12 +53,12 @@ Copyright 
     MacHebrew; MacIceland; MacRomania; MacThai; MacTurkish; MacUkraine
 
 . + Unicode
-    JAVA; UCS-2-BE (csUnicode11, UNICODE-1-1, UnicodeBIG); UCS-2-INTERNAL;
-    UCS-2-LE (UnicodeLITTLE); UCS-2-SWAPPED; UCS-4-BE; UCS-4-INTERNAL;
-    UCS-4-LE; UCS-4-SWAPPED; UCS-2BE; UCS-2LE; UCS-4BE; UCS-4LE.
+    JAVA; UCS-2-INTERNAL; UCS-2LE (UnicodeLITTLE); UCS-2-SWAPPED; UCS-4BE;
+    UCS-4-INTERNAL; UCS-4LE; UCS-4-SWAPPED; UTF-16BE; UTF-16LE.
 
 . + Others
-    CP932; CP950; CP866 (866, csIBM866, IBM866).
+    CP932; CP949 (UHC); CP950; CP866 (866, csIBM866, IBM866).
+    ISO-8859-16 (ISO-IR-226, ISO_8859-16:2000).
 
 . + Recode internal
     :libiconv: (:)   [so option -x: avoids going through libiconv]
@@ -67,12 +72,16 @@ Copyright 
    csISOLatinArabic (for ISO-8859-6); csISOLatinCyrillic (for ISO-8859-5);
    csISOLatinGreek (for ISO-8859-7); csISOLatinHebrew (for ISO-8859-8);
    csKOI8R (for KOI8-R); csPC850Multilingual (for IBM850);
-   csUCS4 (for ISO-10646-UCS-4); csUnicode (for ISO-10646-UCS-2);
+   csUCS4 (for ISO-10646-UCS-4);
+   csUnicode, csUnicode11, UCS-2BE, UnicodeBIG (for ISO-10646-UCS-2);
    csUnicode11UTF7 (for UNICODE-1-1-UTF-7);
    csVISCII and VISCII1.1-1 (for VISCII);
    ISO-IR-179 (for ISO-8859-13); csMacintosh and MacRoman (for macintosh);
    TCVN5712-1, TCVN5712-1:1993 and TCVN-5712 (for TCVN).
 
+.* New surfaces
+   tree (experimental).
+
 * Version 3.5 - François Pinard, 1999-05.
 
 .* Incompatible changes
@@ -111,20 +120,22 @@ Copyright 
 .  - combined-UCS-2: pseudo-charset.
 .  - count-characters: pseudo-charset.
 .  - dump-with-names: pseudo-charset.
-.  - ISO-10646-UCS-2: aliases are UNICODE-1-1, BMP, rune and u2.
-.  - ISO-10646-UCS-4: aliases are 10646, ISO-10646, UCS-4 and u4.
-.  - UNICODE-1-1-UTF-7: aliases are TF-7 and u7.
-.  - UTF-8: aliases are UTF-2, UTF-FSS, FSS_UTF, TF-8 and u8.
-.  - UTF-16: aliases are Unicode, TF-16 and u6.
+.  - ISO-10646-UCS-2 (UNICODE-1-1, BMP, rune, u2).
+.  - ISO-10646-UCS-4 (10646, ISO-10646, UCS-4, u4).
+.  - UNICODE-1-1-UTF-7 (TF-7, u7).
+.  - UTF-8 (UTF-2, UTF-FSS, FSS_UTF, TF-8, u8).
+.  - UTF-16 (Unicode, TF-16, u6).
 
 . + RFC 1345.bis matters
 .  - Deleted charsets
      dk-us, us-dk (because of &duplicate which `recode' does not handle yet).
 .  - New charsets
      baltic (alias is iso-ir-179); CP1250 (1250, ms-ee, windows-1250);
-     CP1251 (1251, ms-cyrl, windows-1251); CP1252 (1252, ms-ansi, windows-1252);
+     CP1251 (1251, ms-cyrl, windows-1251);
+     CP1252 (1252, ms-ansi, windows-1252);
      CP1253 (1253, ms-greek, windows-1253);
-     CP1254 (1254, ms-turk, windows-1254); CP1255 (1255, ms-hebr, windows-1255);
+     CP1254 (1254, ms-turk, windows-1254);
+     CP1255 (1255, ms-hebr, windows-1255);
      CP1256 (1256, ms-arab, windows-1256);
      CP1257 (1257, WinBaltRim, windows-1257);
      CWI (CWI-2, cp-hu); EBCDIC-IS-FRISS (friss);
@@ -160,52 +171,27 @@ Copyright 
      KOI8_L2 (CSN_369103); pclatin2, pcl2 (IBM852); SS636127 (SEN_850200_B).
 
 . + New African charsets
-.  - AFRL1-101-BPI_OCIL: aliases are t-francais and t-fra.
-.  - AFRFUL-102-BPI_OCIL: aliases are bambara, bra, ewondo and fulfulde.
-.  - AFRFUL-103-BPI_OCIL: aliases are t-bambara, t-bra, t-ewondo and t-fulfulde.
-.  - AFRLIN-104-BPI_OCIL: aliases are lingala, lin, sango and wolof.
-.  - AFRLIN-105-BPI_OCIL: aliases are t-lingala, t-lin, t-sango and t-wolof.
+    AFRL1-101-BPI_OCIL (t-francais, t-fra);
+    AFRFUL-102-BPI_OCIL (bambara, bra, ewondo, fulfulde);
+    AFRFUL-103-BPI_OCIL (t-bambara, t-bra, t-ewondo, t-fulfulde);
+    AFRLIN-104-BPI_OCIL (lingala, lin, sango, wolof);
+    AFRLIN-105-BPI_OCIL (t-lingala, t-lin, t-sango, t-wolof).
 
 . + Extra miscellaneous charsets
-.  - KEYBCS2, Kamenicky.
-.  - CORK, T1.
-.  - KOI-8_CS2.
+     KEYBCS2 (Kamenicky); CORK (T1); KOI-8_CS2.
 
 . + New HTML pseudo-charsets
-.  - HTML_1.1: alias is h1.
-.  - HTML_2.0: aliases are RFC 1866, 1866 and h2.
-.  - HTML-i18n: alias is RFC 2070.
-.  - HTML_3.2: reimplemented; alias is h3.
-.  - HTML_4.0: aliases are h4, HTML and h.
-.  - Deleted aliases: HTF, 8859, ISO 8859, Entities, SGML, WWW, w3.
+    HTML_1.1 (h1);  HTML_2.0 (RFC 1866, 1866, h2); HTML-i18n (RFC 2070);
+    HTML_3.2 (h3) reimplemented; HTML_4.0 (h4, HTML, h);
+    deleted aliases HTF, 8859, ISO 8859, Entities, SGML, WWW, w3.
 
 .* Surfaces & aliases
-
-. + New MIME encoding surfaces
-.  - Base64: aliases are 64 and b64.
-.  - Quoted-Printable: aliases are qp and Quote-Printable.
-
-. + New permutation surfaces
-.  - 21-Permutation: alias is swabytes.
-.  - 4321-Permutation.
-
-. + New end of line surfaces
-.  - CR.
-.  - CR-LF: alias is cl.
-
-. + New (fully reversible) dump surfaces
-.  - Decimal-1: aliases are d and d1.
-.  - Decimal-2: alias is d2.
-.  - Decimal-4: alias is d4.
-.  - Hexadecimal-1: aliases are x and x1.
-.  - Hexadecimal-2: alias is x2.
-.  - Hexadecimal-4: alias is x4.
-.  - Octal-1: aliases are o and o1.
-.  - Octal-2: alias is o2.
-.  - Octal-4: alias is o4.
-
-. + New miscellaneous surfaces.
-.  - data, test7, test8, test15, test16.
+   Base64 (64, b64); Quoted-Printable (qp, Quote-Printable);
+   21-Permutation (swabytes); 4321-Permutation; CR; CR-LF (cl);
+   Decimal-1 (d, d1); Decimal-2 (d2), Decimal-4 (d4);
+   Hexadecimal-1 (x, x1); Hexadecimal-2 (x2); Hexadecimal-4 (x4);
+   Octal-1 (o, o1); Octal-2 (o2); Octal-4 (o4).
+   data; test7; test8; test15; test16.
 
 * Version 3.4 - François Pinard, 1994-11.
 
diff --git a/README b/README
index 4de18b4540493d3dd6064ee89aada9a82299d0e6..66ff2fe0340b7e31d41ce85186531d29ab9527d7 100644 (file)
--- a/README
+++ b/README
@@ -1,19 +1,18 @@
 * README file for `recode'                     allout -*- outline -*-
 
-  Here is version 3.5d for the Free `recode' program and library.  Glance
+  Here is version 3.6 for the Free `recode' program and library.  Glance
   through this `README' file before starting configuration.  Make sure
   you read files `ABOUT-NLS' and `INSTALL' if you are not familiar with
   them already.
 
   The canonical distribution point for this version is:
 
-     http://www.iro.umontreal.ca/contrib/recode/recode-3.5d.tar.gz
+     http://www.iro.umontreal.ca/contrib/recode/recode-3.6.tar.gz
 
-  yet the second URL (the FTP one) might disappear one day.  GNU mirrors
-  usually hold a copy of non-pretest releases, the canonical distribution
-  point for the last such release is:
+  GNU mirrors usually hold a copy of non-pretest releases, the canonical
+  distribution point for the last such release is:
 
-     ftp://ftp.gnu.org/pub/gnu/recode/recode-3.5.tar.gz
+     ftp://ftp.gnu.org/pub/gnu/recode/recode-3.6.tar.gz
 
 .* Introduction
    ------------
@@ -23,7 +22,7 @@
     The `recode' library converts files between character sets and usages.
     It recognises or produces more than 300 different character sets and
     transliterates files between almost any pair.  When exact transliteration
-    are not possible, it gets rid of offending characters or fall back
+    are not possible, it gets rid of offending characters or falls back
     on approximations.  The `recode' program is a handy front-end to
     the library.
 
@@ -85,7 +84,7 @@
     Have Perl installed before Automake and `help2man'.
 
     Python 1.5 and Flex 2.5, or better, are needed for remaking `merged.c',
-    after you modify or add an `.l' source file.
+    after you modify an `.l' source file.
 
 . + Mailing lists and collaboration
 
 
        subscribe recode-forum
 
-    Look into `http://www.iro.umontreal.ca/contrib/recode for various
+    Look into `http://www.iro.umontreal.ca/contrib/recode' for various
     releases, pretests, and related files.  In particular, button `Browse'
     gives access to a weekly mirror of the current unpackaged work files,
     while button `Folders' gives access to saved or pending correspondence.
    Many may be applied by temporary presetting environment variables while
    calling `./configure'.  File `INSTALL' explains this.
 
-. + Default charset
-
-    You may override the usual charset while configuring.  The usual
-    charset is implied when a charset name is omitted or empty, and when
-    `DEFAULT_CHARSET' is unset in the environment at run time.  For example,
-    on an AtariST using `bash', one could do:
-
-       DEFAULT_CHARSET=AtariST ./configure
-
-    If you prefer to not have any usual charset at all, then use:
-
-       DEFAULT_CHARSET= ./configure
-
-    that is, define `DEFAULT_CHARSET' to the empty string before configuring.
-    When installed this way, `recode' will not accept omitted charsets at
-    run time, unless `DEFAULT_CHARSET' is set to some value in the environment.
-
 . + Compilation time
 
     Some C compilers, like Apollo's, have a real hard time compiling
diff --git a/README-alpha b/README-alpha
deleted file mode 100644 (file)
index a4171c6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-A new pretest for the `recode' program and library is now available as:
-
-   http://www.iro.umontreal.ca/contrib/recode/recode-3.5d.tar.gz
-
-This pretest release is a snapshot to help testing `libiconv' matters.
-Many matters are pending yet, to my knowledge, none is critical.  I might
-process a few more, not much, with the goal of freezing features at the
-next pretest, and then prepare a real release if all goes well enough.
-
-Use mailto:recode-bugs@iro.umontreal.ca to report problems, or
-mailto:recode-forum@iro.umontreal.ca for a discussion mailing list.
-You need to subscribe first, see the `README' file to find how.
diff --git a/THANKS b/THANKS
index c8af87d9e19bb5df329164f44082882ffb047932..1fdc359c050ce88541477fdcbf3849d9558f77d6 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -1,4 +1,4 @@
-Free recode has originally been written by François Pinard.  Other people
+Free `recode' has originally been written by François Pinard.  Other people
 contributed to Free recode by reporting problems, suggesting various
 improvements or submitting actual code.  Here is a list of these people.
 Help me keeping it complete and exempt of errors.  See various ChangeLogs
@@ -40,7 +40,7 @@ Daniel Taupin         taupin@lps.u-psud.fr
 David E. A. Wilson     david_wilson@uow.edu.au
                        http://www.uow.edu.au/~david
 David Kastrup
-David Lebel            lebel@iro.umontreal.ca
+David Lebel            lebel@lebel.org
 David Mentre
 David van Leeuwen
 Detlev Droege          droege@informatik.uni-koblenz.de
@@ -65,6 +65,7 @@ Fran
 Francois-Xavier Bergot bergotfx@com.enst.fr
 Françoise Audebrand    audebran@ere.umontreal.ca
 Frederic Albrecht
+Frederic Gobry         frederic.gobry@epfl.ch
 Frère Roy              roy@taize.fr
                        http://www.taize.fr
 Gabriel P. Silva       gpsilva@geocities.com
diff --git a/TODO b/TODO
index f48875750c3eddee397a629dfccbf287e7479b34..0f681d12c955226178b7ec0bbfbf19dca7419c4a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,15 +6,38 @@ Some TODO items are implicit from received email.  See file BACKLOG.
 Significant contributions require written assignments and disclaimers.
 
 .* Before next official release
-
+. + Memory leaks: see add_to_sequence, ALLOC, recode_{m,re}alloc}.
+. + Revise everything about explodes.
 . + Update NEWS for latest libiconv and latest Keld tables.
 . + Remove TeX edition warnings, rephrase whatever required.
 . + Complete inter-node and menu references, as necessary.
 . + Resolve THANKS, which Emacs does not save correctly.
 . + Check with recent versions for Autoconf, Automake, Libtool.
+. + See make and configure HAVE_UNION_WAIT, see `lr /conf-wait-'.
+. + Solaris cc 4.2 with option "-O" miscompiles src/libiconv.c, probably
+    the function module_libiconv. The symptom is that
+    "src/recode --quiet --force ascii-bs..ebcdic < COPYING > output"
+    creates an output file smaller than COPYING. The only known workaround
+    is to not use "-O".
+
+.* Keld
+. + recode
+.  - New tables from Keld
+.  - Revise diagnostics
+. + Standards aspects
+.  - Wait for PostScript
+.   : charset in 14652
+.   : transliteration in 14652
+.   : API in 15435
+.   : recoding/iconv APIs (->Handa)
+. + Miscellaneous
+.  - African tables
+.  - Unicode/W3C short-comings
+.   : Lithuanian
 
 .* Particular notes
 
+. + feuille Tamil
 . + Autoconf and DOSWIN
 . + New RFC 1345 tables, still some diagnostics
 . + Check notes from ORA
@@ -42,6 +65,7 @@ Significant contributions require written assignments and disclaimers.
 . + Option -M (implying -i) to process MIME headers
 
 .* Mechanics
+. + Create a Python prototype of full `recode'.
 . + Intercept signals to cleanup the temporary files in any event.
 . + Revise --sequence=pipe thoroughly.
 . + Rewrite execute_pipe_sequence for having only one child per parent.
index 645e9a3c5248b5c1627f56c5fcadfed6ff1e46d9..f574b80f4fd622bbb08858c83cb3c081d3c9a5de 100644 (file)
@@ -811,19 +811,53 @@ AC_DEFUN(jm_FUNC_REALLOC,
   fi
 ])
 
+#serial 2
 
-AC_DEFUN(fp_OS_MICROSOFT,
-[AC_CACHE_CHECK([for MSDOS, Win95 or WinNT], fp_cv_os_microsoft,
-[if test -n "$COMSPEC"; then
-  # MSDOS or Win95
-   fp_cv_os_microsoft=yes
-elif test -n "$ComSpec"; then
-  # WinNT
-  fp_cv_os_microsoft=yes
-else
-  fp_cv_os_microsoft=no
-fi
-])])
+dnl From Bruno Haible.
+
+AC_DEFUN(jm_LANGINFO_CODESET,
+[
+  AC_CHECK_HEADERS(langinfo.h)
+  AC_CHECK_FUNCS(nl_langinfo)
+
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], jm_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET);],
+      jm_cv_langinfo_codeset=yes,
+      jm_cv_langinfo_codeset=no)
+    ])
+  if test $jm_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])
+
+#serial 2
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN(jm_GLIBC21,
+  [
+    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+      ac_cv_gnu_library_2_1,
+      [AC_EGREP_CPP([Lucky GNU user],
+       [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+       ],
+       ac_cv_gnu_library_2_1=yes,
+       ac_cv_gnu_library_2_1=no)
+      ]
+    )
+    AC_SUBST(GLIBC21)
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  ]
+)
 
 
 # serial 1
@@ -930,8 +964,9 @@ AC_DEFUN(fp_WITH_GETTEXT, [
       AC_CHECK_FUNCS(dcgettext gettext)
     fi
 
-    AC_CHECK_HEADERS(locale.h)
-    AC_CHECK_FUNCS(getcwd setlocale stpcpy)
+    AC_CHECK_HEADERS(argz.h limits.h locale.h malloc.h string.h unistd.h sys/param.h)
+    AC_FUNC_MMAP
+    AC_CHECK_FUNCS(getcwd mempcpy munmap setlocale stpcpy strcasecmp strchr strdup __argz_count __argz_stringify __argz_next)
     AM_LC_MESSAGES
 
     if test -z "$ALL_LINGUAS"; then
diff --git a/aclocal.sh b/aclocal.sh
new file mode 100755 (executable)
index 0000000..f1cbc62
--- /dev/null
@@ -0,0 +1,71 @@
+#! /bin/sh
+
+# This script is a work-alike of `aclocal' contained in the GNU automake
+# package. It is needed because our aclocal.m4 must be generated from the
+# non-gettext .m4 files in /usr/share/aclocal and from the gettext specific
+# .m4 files in the local m4 directory.
+# With   "aclocal --acdir=m4"
+# we get an error: macro `AM_INIT_AUTOMAKE' not found in library
+# With   "aclocal -I m4"
+# we get an error: duplicated macro `AM_GNU_GETTEXT'
+# The solution is to put all the .m4 files into a temporary directory.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+set -e
+
+if test $# = 0; then
+  echo "Usage: $0 aclocal-program [aclocal-options]" 1>&2
+  exit 1
+fi
+
+ACLOCAL="$1"
+shift
+
+# Prepare temporary directory.
+mkdir aclocal.tmp
+trap "rm -rf aclocal.tmp; exit 1" 1 2 15
+
+# First, copy the standard m4 files.
+for f in `"$ACLOCAL" --print-ac-dir`/*.m4; do
+  cp $f aclocal.tmp
+done
+
+# Then, copy the contents of any -I directories, overriding previously
+# copied files of the same name.
+options=""
+last_was_I=no
+for arg
+do
+  if test $last_was_I = yes; then
+    for f in "$arg"/*.m4; do
+      cp $f aclocal.tmp
+    done
+    last_was_I=no
+  else
+    case "$arg" in
+      -I) last_was_I=yes;;
+      *)  last_was_I=no options="$options $arg";;
+    esac
+  fi
+done
+
+# Now call `aclocal' for real.
+"$ACLOCAL" --acdir=aclocal.tmp $options
+
+# Clean up temporary directory.
+rm -rf aclocal.tmp
+
old mode 100755 (executable)
new mode 100644 (file)
index 224895331826470a476c4dd3c9058703240ba17c..c577a144d4c5b065077c82c1f0acd0646ba5a6b9 100644 (file)
@@ -1,7 +1,70 @@
 /* config.h.in.  Generated automatically from configure.in by autoheader.  */
 
-/* Default charset is `Latin-1' on UNIX, `IBM-PC' on MSDOS.  */
-#undef DEFAULT_CHARSET
+/* Define if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
+#ifndef _ALL_SOURCE
+#undef _ALL_SOURCE
+#endif
+
+/* Define if using alloca.c.  */
+#undef C_ALLOCA
+
+/* Define to empty if the keyword does not work.  */
+#undef const
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems.  */
+#undef CRAY_STACKSEG_END
+
+/* Define if you have alloca, as a function or macro.  */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
+#undef HAVE_ALLOCA_H
+
+/* Define if you don't have vprintf but do have _doprnt.  */
+#undef HAVE_DOPRNT
+
+/* Define if you have a working `mmap' system call.  */
+#undef HAVE_MMAP
+
+/* Define if you have the vprintf function.  */
+#undef HAVE_VPRINTF
+
+/* Define as __inline if that's what the C compiler calls it.  */
+#undef inline
+
+/* Define if on MINIX.  */
+#undef _MINIX
+
+/* Define if the system does not provide POSIX.1 features except
+   with this defined.  */
+#undef _POSIX_1_SOURCE
+
+/* Define if you need to in order for stat and other things to work.  */
+#undef _POSIX_SOURCE
+
+/* Define as the return type of signal handlers (int or void).  */
+#undef RETSIGTYPE
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if you have the ANSI C header files.  */
+#undef STDC_HEADERS
+
+/* Define if you can safely include both <sys/time.h> and <time.h>.  */
+#undef TIME_WITH_SYS_TIME
+
+/* Define if lex declares yytext as a char * by default, not a char[].  */
+#undef YYTEXT_POINTER
 
 /* Define to 1 if NLS is requested.  */
 #undef ENABLE_NLS
 /* Define to the installation directory for locales.  */
 #undef LOCALEDIR
 
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
-   This function is required for alloca.c support on those systems. */
-#undef CRAY_STACKSEG_END
-
-/* Define if using `alloca.c'. */
-#undef C_ALLOCA
+/* Define if you have the __argz_count function.  */
+#undef HAVE___ARGZ_COUNT
 
-/* Define if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
+/* Define if you have the __argz_next function.  */
+#undef HAVE___ARGZ_NEXT
 
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-#undef HAVE_ALLOCA_H
+/* Define if you have the __argz_stringify function.  */
+#undef HAVE___ARGZ_STRINGIFY
 
-/* Define if you have the `dcgettext' function. */
+/* Define if you have the dcgettext function.  */
 #undef HAVE_DCGETTEXT
 
-/* Define if the malloc check has been performed. */
-#undef HAVE_DONE_WORKING_MALLOC_CHECK
-
-/* Define if the realloc check has been performed. */
-#undef HAVE_DONE_WORKING_REALLOC_CHECK
-
-/* Define if you don't have `vprintf' but do have `_doprnt.' */
-#undef HAVE_DOPRNT
-
-/* Define if you have the `dup2' function. */
+/* Define if you have the dup2 function.  */
 #undef HAVE_DUP2
 
-/* Define if you have the `getcwd' function. */
+/* Define if you have the getcwd function.  */
 #undef HAVE_GETCWD
 
-/* Define if you have the `gettext' function. */
-#undef HAVE_GETTEXT
+/* Define if you have the getpagesize function.  */
+#undef HAVE_GETPAGESIZE
 
-/* Define if your locale.h file contains LC_MESSAGES. */
-#undef HAVE_LC_MESSAGES
-
-/* Define if you have the `fl' library (-lfl). */
-#undef HAVE_LIBFL
+/* Define if you have the gettext function.  */
+#undef HAVE_GETTEXT
 
-/* Define if you have the `intl' library (-lintl). */
-#undef HAVE_LIBINTL
+/* Define if you have the mbrtowc function.  */
+#undef HAVE_MBRTOWC
 
-/* Define if you have the <libintl.h> header file. */
-#undef HAVE_LIBINTL_H
+/* Define if you have the mempcpy function.  */
+#undef HAVE_MEMPCPY
 
-/* Define if you have the `l' library (-ll). */
-#undef HAVE_LIBL
+/* Define if you have the munmap function.  */
+#undef HAVE_MUNMAP
 
-/* Define if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
+/* Define if you have the nl_langinfo function.  */
+#undef HAVE_NL_LANGINFO
 
-/* Define if you have the `rename' function. */
+/* Define if you have the rename function.  */
 #undef HAVE_RENAME
 
-/* Define if you have the `setlocale' function. */
+/* Define if you have the setlocale function.  */
 #undef HAVE_SETLOCALE
 
-/* Define if you have the <stdbool.h> header file. */
-#undef HAVE_STDBOOL_H
-
-/* Define if you have the `stpcpy' function. */
+/* Define if you have the stpcpy function.  */
 #undef HAVE_STPCPY
 
-/* Define if you have the `strerror' function. */
+/* Define if you have the strcasecmp function.  */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strchr function.  */
+#undef HAVE_STRCHR
+
+/* Define if you have the strdup function.  */
+#undef HAVE_STRDUP
+
+/* Define if you have the strerror function.  */
 #undef HAVE_STRERROR
 
-/* Define if you have the <string.h> header file. */
-#undef HAVE_STRING_H
+/* Define if you have the strndup function.  */
+#undef HAVE_STRNDUP
 
-/* Define if you have the `strtol' function. */
+/* Define if you have the strtol function.  */
 #undef HAVE_STRTOL
 
-/* Define if you have the `strtoul' function. */
+/* Define if you have the strtoul function.  */
 #undef HAVE_STRTOUL
 
-/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
-   have utime.h but don't declare the struct anywhere. */
-#undef HAVE_STRUCT_UTIMBUF
+/* Define if you have the wcrtomb function.  */
+#undef HAVE_WCRTOMB
 
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
+/* Define if you have the <argz.h> header file.  */
+#undef HAVE_ARGZ_H
 
-/* Define if you have the <utime.h> header file. */
-#undef HAVE_UTIME_H
+/* Define if you have the <langinfo.h> header file.  */
+#undef HAVE_LANGINFO_H
 
-/* Define if you have the `vprintf' function. */
-#undef HAVE_VPRINTF
+/* Define if you have the <libintl.h> header file.  */
+#undef HAVE_LIBINTL_H
 
-/* Name of package */
-#undef PACKAGE
+/* Define if you have the <limits.h> header file.  */
+#undef HAVE_LIMITS_H
 
-/* Define if compiler has function prototypes */
-#undef PROTOTYPES
+/* Define if you have the <locale.h> header file.  */
+#undef HAVE_LOCALE_H
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
+/* Define if you have the <malloc.h> header file.  */
+#undef HAVE_MALLOC_H
 
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
-        STACK_DIRECTION > 0 => grows toward higher addresses
-        STACK_DIRECTION < 0 => grows toward lower addresses
-        STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
+/* Define if you have the <memory.h> header file.  */
+#undef HAVE_MEMORY_H
 
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
+/* Define if you have the <stdbool.h> header file.  */
+#undef HAVE_STDBOOL_H
 
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
+/* Define if you have the <stddef.h> header file.  */
+#undef HAVE_STDDEF_H
 
-/* Version number of package */
-#undef VERSION
+/* Define if you have the <stdlib.h> header file.  */
+#undef HAVE_STDLIB_H
 
-/* Define if using the dmalloc debugging malloc package */
-#undef WITH_DMALLOC
+/* Define if you have the <string.h> header file.  */
+#undef HAVE_STRING_H
 
-/* Define if `lex' declares `yytext' as a `char *' by default, not a `char[]'.
-   */
-#undef YYTEXT_POINTER
+/* Define if you have the <sys/param.h> header file.  */
+#undef HAVE_SYS_PARAM_H
 
-/* Define if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
+/* Define if you have the <unistd.h> header file.  */
+#undef HAVE_UNISTD_H
 
-/* Define if on MINIX. */
-#undef _MINIX
+/* Define if you have the <utime.h> header file.  */
+#undef HAVE_UTIME_H
 
-/* Define if the system does not provide POSIX.1 features except with this
-   defined. */
-#undef _POSIX_1_SOURCE
+/* Name of package */
+#undef PACKAGE
 
-/* Define if you need to in order for stat and other things to work. */
-#undef _POSIX_SOURCE
+/* Version number of package */
+#undef VERSION
 
-/* Define to empty if the keyword `const' is not conform to ANSI C. */
-#undef const
+/* Define if compiler has function prototypes */
+#undef PROTOTYPES
 
-/* Define as `__inline' if that's what the C compiler calls it, or to nothing
-   if it is not supported. */
-#undef inline
+/* Define if struct utimbuf is declared -- usually in <utime.h>.
+   Some systems have utime.h but don't declare the struct anywhere.  */
+#undef HAVE_STRUCT_UTIMBUF
+
+/* Define if the malloc check has been performed.  */
+#undef HAVE_DONE_WORKING_MALLOC_CHECK
 
 /* Define to rpl_malloc if the replacement function should be used. */
 #undef malloc
 
+/* Define if the realloc check has been performed.  */
+#undef HAVE_DONE_WORKING_REALLOC_CHECK
+
 /* Define to rpl_realloc if the replacement function should be used. */
 #undef realloc
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Define if using the dmalloc debugging malloc package */
+#undef WITH_DMALLOC
+
+/* Define if your locale.h file contains LC_MESSAGES. */
+#undef HAVE_LC_MESSAGES
+
old mode 100755 (executable)
new mode 100644 (file)
index 98219aa473d7b5752b1708d59200691e21e4a29f..24081876cf6c3dffdea79d2dc7ed70de1cc7c08d 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,62 +1,34 @@
 #! /bin/sh
+
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using Autoconf version 2.14a
-# Copyright (C) 1992, 93, 94, 95, 96, 98, 1999 Free Software Foundation, Inc.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 
 # Defaults:
-ac_arg_with_help=
-ac_arg_enable_help=
-ac_arg_var_help=
+ac_help=
 ac_default_prefix=/usr/local
-# Factorizing default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#include <sys/types.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#else
-# if HAVE_STRINGS_H
-#  include <strings.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
 # Any additions from configure.in:
-ac_arg_var_help="$ac_arg_var_help
-  CFLAGS      Extra flags for the C compiler"
-ac_arg_enable_help="$ac_arg_enable_help
+ac_help="$ac_help
   --enable-shared[=PKGS]  build shared libraries [default=yes]"
-ac_arg_enable_help="$ac_arg_enable_help
+ac_help="$ac_help
   --enable-static[=PKGS]  build static libraries [default=yes]"
-ac_arg_enable_help="$ac_arg_enable_help
+ac_help="$ac_help
   --enable-fast-install[=PKGS]  optimize for fast installation [default=yes]"
-ac_arg_with_help="$ac_arg_with_help
+ac_help="$ac_help
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]"
-ac_arg_enable_help="$ac_arg_enable_help
+ac_help="$ac_help
   --disable-libtool-lock  avoid locking (might break parallel builds)"
-ac_arg_with_help="$ac_arg_with_help
+ac_help="$ac_help
   --with-dmalloc          use dmalloc, as in
                           ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz"
-ac_arg_enable_help="$ac_arg_enable_help
+ac_help="$ac_help
   --disable-nls           disallow Native Language Support"
-ac_arg_with_help="$ac_arg_with_help
+ac_help="$ac_help
   --with-catgets          say that catgets is not supported"
-ac_arg_with_help="$ac_arg_with_help
+ac_help="$ac_help
   --without-included-gettext avoid our provided version of gettext"
 
 # Initialize some variables set by options.
@@ -98,14 +70,12 @@ subdirs=
 MFLAGS= MAKEFLAGS=
 SHELL=${CONFIG_SHELL-/bin/sh}
 # Maximum number of lines to put in a shell here document.
-: ${ac_max_here_lines=12}
-# Sed expression to map a string onto a valid sh and CPP variable names.
-ac_tr_sh='sed -e y%*+%pp%;s%[^a-zA-Z0-9_]%_%g'
-ac_tr_cpp='sed -e y%*abcdefghijklmnopqrstuvwxyz%PABCDEFGHIJKLMNOPQRSTUVWXYZ%;s%[^A-Z0-9_]%_%g'
+ac_max_here_lines=12
 
 ac_prev=
 for ac_option
 do
+
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
     eval "$ac_prev=\$ac_option"
@@ -113,7 +83,10 @@ do
     continue
   fi
 
-  ac_optarg=`echo "$ac_option" | sed -n 's/^[^=]*=//p'`
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
@@ -143,23 +116,23 @@ do
     datadir="$ac_optarg" ;;
 
   -disable-* | --disable-*)
-    ac_feature=`echo "$ac_option"|sed -e 's/-*disable-//'`
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
     # Reject names that are not valid shell variable names.
-    if echo "$ac_feature" | grep '[^-a-zA-Z0-9_]' >/dev/null 2>&1; then
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
       { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
     fi
     ac_feature=`echo $ac_feature| sed 's/-/_/g'`
     eval "enable_${ac_feature}=no" ;;
 
   -enable-* | --enable-*)
-    ac_feature=`echo "$ac_option"|sed -e 's/-*enable-//' -e 's/=.*//'`
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
     # Reject names that are not valid shell variable names.
-    if echo "$ac_feature" | grep '[^-a-zA-Z0-9_]' >/dev/null 2>&1; then
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
       { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
     fi
     ac_feature=`echo $ac_feature| sed 's/-/_/g'`
     case "$ac_option" in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *=*) ;;
       *) ac_optarg=yes ;;
     esac
     eval "enable_${ac_feature}='$ac_optarg'" ;;
@@ -177,28 +150,19 @@ do
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
-  -help | --help | --hel | --he | -h)
+  -help | --help | --hel | --he)
     # Omit some internal or obsolete options to make the list less imposing.
     # This message is too long to be a string in the A/UX 3.1 sh.
-    cat <<\EOF
-`configure' configures software source code packages to adapt to many kinds
-of systems.
-
-Usage: configure [OPTION]... [VAR=VALUE]... [HOST]
-
-To safely assign special values to environment variables (e.g., CC,
-CFLAGS...), give to `configure' the definition as VAR=VALUE.
-
-Defaults for the options are specified in brackets.
-
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
 Configuration:
-  -h, --help              print this message
-      --version           print the version of autoconf that created configure
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE
-  -n, --no-create         do not create output files
-
-Directories:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
   --prefix=PREFIX         install architecture-independent files in PREFIX
                           [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
@@ -218,36 +182,27 @@ Directories:
   --infodir=DIR           info documentation in DIR [PREFIX/info]
   --mandir=DIR            man documentation in DIR [PREFIX/man]
   --srcdir=DIR            find the sources in DIR [configure dir or ..]
-
-Program names:
   --program-prefix=PREFIX prepend PREFIX to installed program names
   --program-suffix=SUFFIX append SUFFIX to installed program names
   --program-transform-name=PROGRAM
                           run sed PROGRAM on installed program names
-
 EOF
-    cat <<\EOF
+    cat << EOF
 Host type:
-  --build=BUILD      configure for building on BUILD [BUILD=HOST]
-  --host=HOST        configure for HOST [guessed]
-  --target=TARGET    configure for TARGET [TARGET=HOST]
-
-X features:
-  --x-includes=DIR    X include files are in DIR
-  --x-libraries=DIR   X library files are in DIR
-EOF
-    test -n "$ac_arg_enable_help" && echo "
-Optional features:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]\
-$ac_arg_enable_help"
-    test -n "$ac_arg_with_help" && echo "
-Optional packages:
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)\
-$ac_arg_with_help"
-    test -n "$ac_arg_var_help" && echo "
-Some influent environment variables:$ac_arg_var_help"
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
     exit 0 ;;
 
   -host | --host | --hos | --ho)
@@ -397,26 +352,26 @@ Some influent environment variables:$ac_arg_var_help"
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.14a"
+    echo "configure generated by autoconf version 2.13"
     exit 0 ;;
 
   -with-* | --with-*)
-    ac_package=`echo "$ac_option"|sed -e 's/-*with-//' -e 's/=.*//'`
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
     # Reject names that are not valid shell variable names.
-    if echo "$ac_feature" | grep '[^-a-zA-Z0-9_]' >/dev/null 2>&1; then
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
       { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
     fi
     ac_package=`echo $ac_package| sed 's/-/_/g'`
     case "$ac_option" in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *=*) ;;
       *) ac_optarg=yes ;;
     esac
     eval "with_${ac_package}='$ac_optarg'" ;;
 
   -without-* | --without-*)
-    ac_package=`echo "$ac_option"|sed -e 's/-*without-//'`
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
     # Reject names that are not valid shell variable names.
-    if echo "$ac_feature" | grep '[^-a-zA-Z0-9_]' >/dev/null 2>&1; then
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
       { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
     fi
     ac_package=`echo $ac_package| sed 's/-/_/g'`
@@ -443,19 +398,9 @@ Some influent environment variables:$ac_arg_var_help"
   -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
     ;;
 
-  *=*)
-    ac_envvar=`echo "$ac_option" | sed -e 's/=.*//'`
-    # Reject names that are not valid shell variable names.
-    if echo "$ac_envvar" | grep '[^a-zA-Z0-9_]' >/dev/null 2>&1; then
-      { echo "configure: error: $ac_envvar: invalid variable name" 1>&2; exit 1; }
-    fi
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
   *)
-    if echo "$ac_feature" | grep '[^-a-zA-Z0-9.]' >/dev/null 2>&1; then
-      echo "configure: WARNING: $ac_option: invalid host type" 1>&2
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
     fi
     if test "x$nonopt" != xNONE; then
       { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
@@ -467,7 +412,7 @@ Some influent environment variables:$ac_arg_var_help"
 done
 
 if test -n "$ac_prev"; then
-  { echo "configure: error: missing argument to --\`echo $ac_prev | sed 's/_/-/g'\`" 1>&2; exit 1; }
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
 fi
 
 trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
@@ -493,7 +438,7 @@ running configure, to aid debugging if configure makes a mistake.
 " 1>&5
 
 # Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell meta-characters.
+# Also quote any args containing shell metacharacters.
 ac_configure_args=
 for ac_arg
 do
@@ -502,15 +447,11 @@ do
   | --no-cr | --no-c) ;;
   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
   | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
   ac_configure_args="$ac_configure_args '$ac_arg'" ;;
   *) ac_configure_args="$ac_configure_args $ac_arg" ;;
   esac
 done
-# Support of DJGPP port of bash.
-if test -n "$COMSPEC$ComSpec"; then ac_x=-x; else ac_x=-f; fi
 
 # NLS nuisances.
 # Only set these to C if already set.  These must not be set unconditionally
@@ -525,7 +466,7 @@ if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -rf conftest* confdefs.h
 # AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
+echo > confdefs.h
 
 # A filename unique to this package, relative to the directory that
 # configure is in, which we can look for to find out if srcdir is correct.
@@ -536,7 +477,7 @@ if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
   ac_prog=$0
-  ac_confdir=`echo "$ac_prog"|sed 's%/[^/][^/]*$%%'`
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
   test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
@@ -547,9 +488,9 @@ else
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "configure: error: cannot find sources in $ac_confdir or .." 1>&2; exit 1; }
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
   else
-    { echo "configure: error: cannot find sources in $srcdir" 1>&2; exit 1; }
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
   fi
 fi
 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
@@ -571,10 +512,10 @@ done
 
 if test -r "$cache_file"; then
   echo "loading cache $cache_file"
-      test -f "$cache_file" && . $cache_file
+  . $cache_file
 else
   echo "creating cache $cache_file"
-  >$cache_file
+  > $cache_file
 fi
 
 ac_ext=c
@@ -587,7 +528,7 @@ cross_compiling=$ac_cv_prog_cc_cross
 ac_exeext=
 ac_objext=o
 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says Kaveh Ghazi
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
     ac_n= ac_c='
 ' ac_t='       '
@@ -598,6 +539,11 @@ else
   ac_n= ac_c='\c' ac_t=
 fi
 
+
+
+
+
+
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
   if test -f $ac_dir/install-sh; then
@@ -608,18 +554,14 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
 fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -632,10 +574,10 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install... $ac_c" 1>&6
-echo "configure:637: checking for a BSD compatible install" 1>&5
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:579: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
@@ -648,24 +590,14 @@ else
       # Don't use installbsd from OSF since it installs stuff as root
       # by default.
       for ac_prog in ginstall scoinst install; do
-        if test $ac_x $ac_dir/$ac_prog; then
+        if test -f $ac_dir/$ac_prog; then
          if test $ac_prog = install &&
             grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
            :
-         elif test $ac_prog = install &&
-           grep pwplus $ac_dir/$ac_prog >/dev/null 2>&1; then
-           # program-specific install script used by HP pwplus--don't use.
-           :
          else
-           if test $ac_prog = installbsd &&
-             grep src/bos $ac_dir/$ac_prog >/dev/null 2>&1; then
-             # AIX installbsd doesn't work without option "-g".
-             :
-           else
-             ac_cv_path_install="$ac_dir/$ac_prog -c"
-             break 2
-           fi
+           ac_cv_path_install="$ac_dir/$ac_prog -c"
+           break 2
          fi
        fi
       done
@@ -691,12 +623,12 @@ echo "$ac_t""$INSTALL" 1>&6
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo $ac_n "checking whether build environment is sane... $ac_c" 1>&6
-echo "configure:700: checking whether build environment is sane" 1>&5
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:632: checking whether build environment is sane" >&5
 # Just in case
 sleep 1
 echo timestamp > conftestfile
@@ -737,28 +669,28 @@ if test "$program_transform_name" = s,x,x,; then
   program_transform_name=
 else
   # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED >conftestsed
+  cat <<\EOF_SED > conftestsed
 s,\\,\\\\,g; s,\$,$$,g
 EOF_SED
-  program_transform_name=`echo $program_transform_name|sed -f conftestsed`
+  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
   rm -f conftestsed
 fi
 test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},;$program_transform_name"
+  program_transform_name="s,^,${program_prefix},; $program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},;$program_transform_name"
+  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
 
 # sed with no file args requires a program.
 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}... $ac_c" 1>&6
-echo "configure:757: checking whether ${MAKE-make} sets \${MAKE}" 1>&5
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:689: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftestmake <<\EOF
+  cat > conftestmake <<\EOF
 all:
        @echo 'ac_maketemp="${MAKE}"'
 EOF
@@ -779,24 +711,27 @@ else
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
+
 PACKAGE=recode
 
-VERSION=3.5e
+VERSION=3.6
 
 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
   { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
 fi
-cat >>confdefs.h <<EOF
+cat >> confdefs.h <<EOF
 #define PACKAGE "$PACKAGE"
 EOF
 
-cat >>confdefs.h <<EOF
+cat >> confdefs.h <<EOF
 #define VERSION "$VERSION"
 EOF
 
+
+
 missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal... $ac_c" 1>&6
-echo "configure:800: checking for working aclocal" 1>&5
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:735: checking for working aclocal" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -808,8 +743,8 @@ else
    echo "$ac_t""missing" 1>&6
 fi
 
-echo $ac_n "checking for working autoconf... $ac_c" 1>&6
-echo "configure:813: checking for working autoconf" 1>&5
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:748: checking for working autoconf" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -821,8 +756,8 @@ else
    echo "$ac_t""missing" 1>&6
 fi
 
-echo $ac_n "checking for working automake... $ac_c" 1>&6
-echo "configure:826: checking for working automake" 1>&5
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:761: checking for working automake" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -834,8 +769,8 @@ else
    echo "$ac_t""missing" 1>&6
 fi
 
-echo $ac_n "checking for working autoheader... $ac_c" 1>&6
-echo "configure:839: checking for working autoheader" 1>&5
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:774: checking for working autoheader" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -847,8 +782,8 @@ else
    echo "$ac_t""missing" 1>&6
 fi
 
-echo $ac_n "checking for working makeinfo... $ac_c" 1>&6
-echo "configure:852: checking for working makeinfo" 1>&5
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:787: checking for working makeinfo" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -860,11 +795,12 @@ else
    echo "$ac_t""missing" 1>&6
 fi
 
+
 AT_TESTPATH=../src
 
-echo $ac_n "checking how to suppress newlines using echo... $ac_c" 1>&6
-echo "configure:867: checking how to suppress newlines using echo" 1>&5
-if test "${fp_cv_prog_echo_nonl+set}" = set; then
+echo $ac_n "checking how to suppress newlines using echo""... $ac_c" 1>&6
+echo "configure:803: checking how to suppress newlines using echo" >&5
+if eval "test \"`echo '$''{'fp_cv_prog_echo_nonl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
@@ -878,6 +814,7 @@ else
 fi
 
 fi
+
 echo "$ac_t""$fp_cv_prog_echo_nonl" 1>&6
 test $fp_cv_prog_echo_nonl = no \
   && echo 2>&1 "WARNING: \`echo' not powerful enough for \`make check'"
@@ -887,18 +824,14 @@ case $fp_cv_prog_echo_nonl in
   escape) ECHO_N= ECHO_C='\c' ;;
 esac
 
-ALL_LINGUAS="da de el es fr gl it nl pl pt sl sv"
 
-case "${CFLAGS+set} $ac_configure_args" in
- *" CFLAGS="* );;
- "set "*) ac_configure_args="CFLAGS='$CFLAGS' $ac_configure_args";;
-esac
+ALL_LINGUAS="da de el es fr gl it nl pl pt sl sv"
 
-  # Extract the first word of "gcc", so it can be a program name with args.
+# Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:901: checking for $ac_word" 1>&5
-if test "${ac_cv_prog_CC+set}" = set; then
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:834: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
@@ -908,7 +841,7 @@ else
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
-    if test $ac_x $ac_dir/$ac_word; then
+    if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CC="gcc"
       break
     fi
@@ -923,12 +856,12 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -z "$CC"; then
-    # Extract the first word of "cc", so it can be a program name with args.
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:931: checking for $ac_word" 1>&5
-if test "${ac_cv_prog_CC+set}" = set; then
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:864: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
@@ -939,7 +872,7 @@ else
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
-    if test $ac_x $ac_dir/$ac_word; then
+    if test -f $ac_dir/$ac_word; then
       if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
         ac_prog_rejected=yes
        continue
@@ -972,14 +905,14 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
-    if test -z "$CC"; then
-      for ac_prog in cl
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:982: checking for $ac_word" 1>&5
-if test "${ac_cv_prog_CC+set}" = set; then
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:915: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
@@ -989,8 +922,8 @@ else
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
-    if test $ac_x $ac_dir/$ac_word; then
-      ac_cv_prog_CC="$ac_prog"
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
       break
     fi
   done
@@ -1003,17 +936,14 @@ if test -n "$CC"; then
 else
   echo "$ac_t""no" 1>&6
 fi
-
-test -n "$CC" && break
-done
-
-    fi
+ ;;
+    esac
   fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
 
-test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works... $ac_c" 1>&6
-echo "configure:1017: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works" 1>&5
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:947: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1022,14 +952,14 @@ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
 ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cc_cross
 
-cat >conftest.$ac_ext <<EOF
+cat > conftest.$ac_ext << EOF
 
-#line 1028 "configure"
+#line 958 "configure"
 #include "confdefs.h"
 
-int main(){return(0);}
+main(){return(0);}
 EOF
-if { (eval echo configure:1033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1052,29 +982,30 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
 if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 77; }
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) is a cross-compiler... $ac_c" 1>&6
-echo "configure:1059: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) is a cross-compiler" 1>&5
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:989: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
-echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
-echo "configure:1064: checking whether we are using GNU C" 1>&5
-if test "${ac_cv_prog_gcc+set}" = set; then
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:994: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.c <<EOF
+  cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1073: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1003: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
 fi
 fi
+
 echo "$ac_t""$ac_cv_prog_gcc" 1>&6
 
 if test $ac_cv_prog_gcc = yes; then
@@ -1086,12 +1017,12 @@ fi
 ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g... $ac_c" 1>&6
-echo "configure:1091: checking whether ${CC-cc} accepts -g" 1>&5
-if test "${ac_cv_prog_cc_g+set}" = set; then
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1022: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo 'void f(){}' >conftest.c
+  echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
   ac_cv_prog_cc_g=yes
 else
@@ -1100,6 +1031,7 @@ fi
 rm -f conftest*
 
 fi
+
 echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS="$ac_save_CFLAGS"
@@ -1117,14 +1049,14 @@ else
   fi
 fi
 
-echo $ac_n "checking how to run the C preprocessor... $ac_c" 1>&6
-echo "configure:1122: checking how to run the C preprocessor" 1>&5
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1054: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-if test "${ac_cv_prog_CPP+set}" = set; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     # This must be in double quotes, not single quotes, because CPP may get
@@ -1132,14 +1064,14 @@ else
   CPP="${CC-cc} -E"
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
-  cat >conftest.$ac_ext <<EOF
-#line 1137 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1069 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1149,14 +1081,14 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
-  cat >conftest.$ac_ext <<EOF
-#line 1154 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1086 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1166,14 +1098,14 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
-  cat >conftest.$ac_ext <<EOF
-#line 1171 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1103 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1177: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1197,10 +1129,10 @@ else
 fi
 echo "$ac_t""$CPP" 1>&6
 
-echo $ac_n "checking for AIX... $ac_c" 1>&6
-echo "configure:1202: checking for AIX" 1>&5
-cat >conftest.$ac_ext <<EOF
-#line 1204 "configure"
+echo $ac_n "checking for AIX""... $ac_c" 1>&6
+echo "configure:1134: checking for AIX" >&5
+cat > conftest.$ac_ext <<EOF
+#line 1136 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1210,8 +1142,7 @@ EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-cat >>confdefs.h <<\EOF
+  echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
 #define _ALL_SOURCE 1
 EOF
 
@@ -1221,49 +1152,51 @@ else
 fi
 rm -f conftest*
 
-echo $ac_n "checking for minix/config.h... $ac_c" 1>&6
-echo "configure:1226: checking for minix/config.h" 1>&5
-if test "${ac_cv_header_minix_config_h+set}" = set; then
+
+ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
+echo "configure:1159: checking for minix/config.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 1231 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1164 "configure"
 #include "confdefs.h"
 #include <minix/config.h>
-
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  ac_cv_header_minix_config_h=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_header_minix_config_h=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-echo "$ac_t""$ac_cv_header_minix_config_h" 1>&6
-if test $ac_cv_header_minix_config_h = yes; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   MINIX=yes
 else
-  MINIX=
+  echo "$ac_t""no" 1>&6
+MINIX=
 fi
 
 if test "$MINIX" = yes; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define _POSIX_SOURCE 1
 EOF
 
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define _POSIX_1_SOURCE 2
 EOF
 
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define _MINIX 1
 EOF
 
@@ -1338,82 +1271,56 @@ else
   enable_fast_install=yes
 fi
 
-echo $ac_n "checking host system type... $ac_c" 1>&6
-echo "configure:1343: checking host system type" 1>&5
-if test "x$ac_cv_host" = "x" || (test "x$host" != "xNONE" && test "x$host" != "x$ac_cv_host_alias"); then
 
-  # Make sure we can run config.sub.
-  if $ac_config_sub sun4 >/dev/null 2>&1; then :; else
-    { echo "configure: error: cannot run $ac_config_sub" 1>&2; exit 1; }
-  fi
-
-  ac_cv_host_alias=$host
-  case "$ac_cv_host_alias" in
-  NONE)
-    case $nonopt in
-    NONE)
-      if ac_cv_host_alias=`$ac_config_guess`; then :
-      else { echo "configure: error: cannot guess host type; you must specify one" 1>&2; exit 1; }
-      fi ;;    *) ac_cv_host_alias=$nonopt ;;
-    esac ;;
-  esac
-
-  ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || exit 1
-  ac_cv_host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-  ac_cv_host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-  ac_cv_host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-else
-  echo $ac_n "(cached) $ac_c" 1>&6
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
-echo "$ac_t""$ac_cv_host" 1>&6
-
-host=$ac_cv_host
-host_alias=$ac_cv_host_alias
-host_cpu=$ac_cv_host_cpu
-host_vendor=$ac_cv_host_vendor
-host_os=$ac_cv_host_os
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1282: checking host system type" >&5
 
-echo $ac_n "checking build system type... $ac_c" 1>&6
-echo "configure:1379: checking build system type" 1>&5
-if test "x$ac_cv_build" = "x" || (test "x$build" != "xNONE" && test "x$build" != "x$ac_cv_build_alias"); then
-
-  # Make sure we can run config.sub.
-  if $ac_config_sub sun4 >/dev/null 2>&1; then :; else
-    { echo "configure: error: cannot run $ac_config_sub" 1>&2; exit 1; }
-  fi
-
-  ac_cv_build_alias=$build
-  case "$ac_cv_build_alias" in
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
   NONE)
-    case $nonopt in
-    NONE)
-      ac_cv_build_alias=$host_alias ;;
-    *) ac_cv_build_alias=$nonopt ;;
-    esac ;;
-  esac
-
-  ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || exit 1
-  ac_cv_build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-  ac_cv_build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-  ac_cv_build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-else
-  echo $ac_n "(cached) $ac_c" 1>&6
-fi
+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
 
-echo "$ac_t""$ac_cv_build" 1>&6
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:1303: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+  case $nonopt in
+  NONE) build_alias=$host_alias ;;
+  *) build_alias=$nonopt ;;
+  esac ;;
+esac
 
-build=$ac_cv_build
-build_alias=$ac_cv_build_alias
-build_cpu=$ac_cv_build_cpu
-build_vendor=$ac_cv_build_vendor
-build_os=$ac_cv_build_os
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
 
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:1416: checking for $ac_word" 1>&5
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1323: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$RANLIB"; then
@@ -1423,7 +1330,7 @@ else
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
-    if test $ac_x $ac_dir/$ac_word; then
+    if test -f $ac_dir/$ac_word; then
       ac_cv_prog_RANLIB="ranlib"
       break
     fi
@@ -1450,8 +1357,8 @@ fi
 ac_prog=ld
 if test "$ac_cv_prog_gcc" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
-echo "configure:1455: checking for ld used by GCC" 1>&5
+  echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
+echo "configure:1362: checking for ld used by GCC" >&5
   ac_prog=`($CC -print-prog-name=ld) 2>&5`
   case "$ac_prog" in
     # Accept absolute paths.
@@ -1474,13 +1381,13 @@ echo "configure:1455: checking for ld used by GCC" 1>&5
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  echo $ac_n "checking for GNU ld... $ac_c" 1>&6
-echo "configure:1479: checking for GNU ld" 1>&5
+  echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
+echo "configure:1386: checking for GNU ld" >&5
 else
-  echo $ac_n "checking for non-GNU ld... $ac_c" 1>&6
-echo "configure:1482: checking for non-GNU ld" 1>&5
+  echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+echo "configure:1389: checking for non-GNU ld" >&5
 fi
-if test "${ac_cv_path_LD+set}" = set; then
+if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -z "$LD"; then
@@ -1512,9 +1419,9 @@ else
   echo "$ac_t""no" 1>&6
 fi
 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
-echo "configure:1517: checking if the linker ($LD) is GNU ld" 1>&5
-if test "${ac_cv_prog_gnu_ld+set}" = set; then
+echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
+echo "configure:1424: checking if the linker ($LD) is GNU ld" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   # I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -1524,11 +1431,13 @@ else
   ac_cv_prog_gnu_ld=no
 fi
 fi
+
 echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
 
-echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
-echo "configure:1531: checking for BSD-compatible nm" 1>&5
-if test "${ac_cv_path_NM+set}" = set; then
+
+echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
+echo "configure:1440: checking for BSD-compatible nm" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$NM"; then
@@ -1562,9 +1471,9 @@ fi
 NM="$ac_cv_path_NM"
 echo "$ac_t""$NM" 1>&6
 
-echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
-echo "configure:1567: checking whether ln -s works" 1>&5
-if test "${ac_cv_prog_LN_S+set}" = set; then
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:1476: checking whether ln -s works" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   rm -f conftestdata
@@ -1583,6 +1492,7 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
+
 case "$target" in
 NONE) lt_target="$host" ;;
 *) lt_target="$target" ;;
@@ -1596,6 +1506,7 @@ test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast
 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
 
+
 # Check whether --enable-libtool-lock or --disable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then
   enableval="$enable_libtool_lock"
@@ -1610,8 +1521,8 @@ test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
 case "$lt_target" in
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 1614 "configure"' > conftest.$ac_ext
-  if { (eval echo configure:1615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  echo '#line 1525 "configure"' > conftest.$ac_ext
+  if { (eval echo configure:1526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
     case "`/usr/bin/file conftest.o`" in
     *32-bit*)
       LD="${LD-ld} -32"
@@ -1631,24 +1542,20 @@ case "$lt_target" in
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  echo $ac_n "checking whether the C compiler needs -belf... $ac_c" 1>&6
-echo "configure:1636: checking whether the C compiler needs -belf" 1>&5
-if test "${lt_cv_cc_needs_belf+set}" = set; then
+  echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
+echo "configure:1547: checking whether the C compiler needs -belf" >&5
+if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 1641 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1552 "configure"
 #include "confdefs.h"
 
-int
-main()
-{
+int main() {
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:1652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   lt_cv_cc_needs_belf=yes
 else
@@ -1658,8 +1565,8 @@ else
   lt_cv_cc_needs_belf=no
 fi
 rm -f conftest*
-
 fi
+
 echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
@@ -1667,10 +1574,12 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
   fi
   ;;
 
+
 esac
 
+
 # Save cache, so that ltconfig can load it
-cat >confcache <<\EOF
+cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
 # scripts and configure runs.  It is not useful on other systems.
@@ -1704,17 +1613,20 @@ EOF
     # `set' quotes correctly as required by POSIX, so do not add quotes.
     sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
     ;;
-  esac >>confcache
-if cmp -s $cache_file confcache; then :; else
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
   if test -w $cache_file; then
     echo "updating cache $cache_file"
-    cat confcache >$cache_file
+    cat confcache > $cache_file
   else
     echo "not updating unwritable cache $cache_file"
   fi
 fi
 rm -f confcache
 
+
 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
@@ -1727,12 +1639,13 @@ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
 # Reload cache, that may have been modified by ltconfig
 if test -r "$cache_file"; then
   echo "loading cache $cache_file"
-      test -f "$cache_file" && . $cache_file
+  . $cache_file
 else
   echo "creating cache $cache_file"
-  >$cache_file
+  > $cache_file
 fi
 
+
 # This can be used to rebuild libtool when needed
 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
 
@@ -1743,14 +1656,15 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 # clobbered by the next message.
 exec 5>>./config.log
 
-echo $ac_n "checking for POSIXized ISC... $ac_c" 1>&6
-echo "configure:1748: checking for POSIXized ISC" 1>&5
+
+echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
+echo "configure:1662: checking for POSIXized ISC" >&5
 if test -d /etc/conf/kconfig.d &&
-   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+  grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
   echo "$ac_t""yes" 1>&6
   ISC=yes # If later tests want to check for ISC.
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define _POSIX_SOURCE 1
 EOF
 
@@ -1764,9 +1678,12 @@ else
   ISC=
 fi
 
-echo $ac_n "checking for ${CC-cc} option to accept ANSI C... $ac_c" 1>&6
-echo "configure:1769: checking for ${CC-cc} option to accept ANSI C" 1>&5
-if test "${am_cv_prog_cc_stdc+set}" = set; then
+
+
+
+echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+echo "configure:1686: checking for ${CC-cc} option to accept ANSI C" >&5
+if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   am_cv_prog_cc_stdc=no
@@ -1780,8 +1697,8 @@ ac_save_CC="$CC"
 for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  cat >conftest.$ac_ext <<EOF
-#line 1785 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1702 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 #include <stdio.h>
@@ -1812,17 +1729,13 @@ int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, i
 int argc;
 char **argv;
 
-int
-main ()
-{
+int main() {
 
 return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:1826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_prog_cc_stdc="$ac_arg"; break
 else
@@ -1845,11 +1758,13 @@ case "x$am_cv_prog_cc_stdc" in
   *) CC="$CC $am_cv_prog_cc_stdc" ;;
 esac
 
-echo $ac_n "checking for function prototypes... $ac_c" 1>&6
-echo "configure:1850: checking for function prototypes" 1>&5
+
+
+echo $ac_n "checking for function prototypes""... $ac_c" 1>&6
+echo "configure:1765: checking for function prototypes" >&5
 if test "$am_cv_prog_cc_stdc" != no; then
   echo "$ac_t""yes" 1>&6
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define PROTOTYPES 1
 EOF
 
@@ -1858,22 +1773,21 @@ else
   echo "$ac_t""no" 1>&6
   U=_ ANSI2KNR=./ansi2knr
   # Ensure some checks needed by ansi2knr itself.
-  echo $ac_n "checking for ANSI C header files... $ac_c" 1>&6
-echo "configure:1863: checking for ANSI C header files" 1>&5
-if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1778: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 1868 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1783 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
-
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1877: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1889,11 +1803,10 @@ rm -f conftest*
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat >conftest.$ac_ext <<EOF
-#line 1894 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 1808 "configure"
 #include "confdefs.h"
 #include <string.h>
-
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "memchr" >/dev/null 2>&1; then
@@ -1908,11 +1821,10 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat >conftest.$ac_ext <<EOF
-#line 1913 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 1826 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
-
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "free" >/dev/null 2>&1; then
@@ -1930,33 +1842,19 @@ if test $ac_cv_header_stdc = yes; then
 if test "$cross_compiling" = yes; then
   :
 else
-  cat >conftest.$ac_ext <<EOF
-#line 1935 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1847 "configure"
 #include "confdefs.h"
 #include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
 EOF
-if { (eval echo configure:1960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1966,200 +1864,117 @@ else
   ac_cv_header_stdc=no
 fi
 rm -fr conftest*
-
 fi
 
 fi
 fi
+
 echo "$ac_t""$ac_cv_header_stdc" 1>&6
 if test $ac_cv_header_stdc = yes; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define STDC_HEADERS 1
 EOF
 
 fi
 
-  for ac_header in string.h
+  for ac_hdr in string.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo $ac_n "checking for $ac_header... $ac_c" 1>&6
-echo "configure:1987: checking for $ac_header" 1>&5
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1885: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 1992 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1890 "configure"
 #include "confdefs.h"
-#include <$ac_header>
-
+#include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1998: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  eval "$ac_ac_Header=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_Header=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_Header'}'`" 1>&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
 fi
 
-echo $ac_n "checking for ${CC-cc} option to accept ANSI C... $ac_c" 1>&6
-echo "configure:2024: checking for ${CC-cc} option to accept ANSI C" 1>&5
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:1924: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC="$CC"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX                  -qlanglvl=ansi
-# Ultrix and OSF/1     -std1
-# HP-UX 10.20 and later        -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4                 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  cat >conftest.$ac_ext <<EOF
-#line 2041 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 1929 "configure"
 #include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
+
+int main() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
 }
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
 }
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
 }
-EOF
-if { (eval echo configure:2079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_prog_cc_stdc="$ac_arg"; break
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-CC="$ac_save_CC"
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$ac_t""none needed" 1>&6 ;;
-  *)
-    echo "$ac_t""$ac_cv_prog_cc_stdc" 1>&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-echo $ac_n "checking for an ANSI C conforming const... $ac_c" 1>&6
-echo "configure:2101: checking for an ANSI C conforming const" 1>&5
-if test "${ac_cv_c_const+set}" = set; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat >conftest.$ac_ext <<EOF
-#line 2106 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset x;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *ccp;
-  char **p;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  ccp = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++ccp;
-  p = (char**) ccp;
-  ccp = (char const *const *) p;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-  }
-#endif
-
-  ;
-  return 0;
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
 }
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
 EOF
-if { (eval echo configure:2163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2170,37 +1985,31 @@ else
 fi
 rm -f conftest*
 fi
+
 echo "$ac_t""$ac_cv_c_const" 1>&6
 if test $ac_cv_c_const = no; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define const 
 EOF
 
 fi
 
-echo $ac_n "checking for inline... $ac_c" 1>&6
-echo "configure:2183: checking for inline" 1>&5
-if test "${ac_cv_c_inline+set}" = set; then
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:1999: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<EOF
-#line 2190 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2006 "configure"
 #include "confdefs.h"
 
-int
-main ()
-{
-#ifndef __cplusplus
-  } $ac_kw int foo() {
-#endif
-
-  ;
-  return 0;
-}
+int main() {
+} $ac_kw foo() {
+; return 0; }
 EOF
-if { (eval echo configure:2204: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -2211,14 +2020,15 @@ rm -f conftest*
 done
 
 fi
+
 echo "$ac_t""$ac_cv_c_inline" 1>&6
 case "$ac_cv_c_inline" in
   inline | yes) ;;
-  no) cat >>confdefs.h <<\EOF
+  no) cat >> confdefs.h <<\EOF
 #define inline 
 EOF
  ;;
-  *)  cat >>confdefs.h <<EOF
+  *)  cat >> confdefs.h <<EOF
 #define inline $ac_cv_c_inline
 EOF
  ;;
@@ -2228,9 +2038,9 @@ for ac_prog in flex
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:2233: checking for $ac_word" 1>&5
-if test "${ac_cv_prog_LEX+set}" = set; then
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2043: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$LEX"; then
@@ -2240,7 +2050,7 @@ else
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
-    if test $ac_x $ac_dir/$ac_word; then
+    if test -f $ac_dir/$ac_word; then
       ac_cv_prog_LEX="$ac_prog"
       break
     fi
@@ -2265,9 +2075,9 @@ if test "$LEX" = missing; then
   else
   # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
-echo $ac_n "checking for $ac_word... $ac_c" 1>&6
-echo "configure:2270: checking for $ac_word" 1>&5
-if test "${ac_cv_prog_LEX+set}" = set; then
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2080: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$LEX"; then
@@ -2277,7 +2087,7 @@ else
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
-    if test $ac_x $ac_dir/$ac_word; then
+    if test -f $ac_dir/$ac_word; then
       ac_cv_prog_LEX="flex"
       break
     fi
@@ -2299,53 +2109,51 @@ then
   flex*) ac_lib=fl ;;
   *) ac_lib=l ;;
   esac
-  ac_ac_Lib=`echo "ac_cv_lib_$ac_lib_yywrap" | $ac_tr_sh`
-echo $ac_n "checking for yywrap in -l$ac_lib... $ac_c" 1>&6
-echo "configure:2305: checking for yywrap in -l$ac_lib" 1>&5
-if eval "test \"\${$ac_ac_Lib+set}\" = set"; then
+  echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
+echo "configure:2114: checking for yywrap in -l$ac_lib" >&5
+ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
-cat >conftest.$ac_ext <<EOF
-#line 2312 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2122 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char yywrap();
 
-int
-main()
-{
+int main() {
 yywrap()
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_Lib=yes"
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_Lib=no"
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
 rm -f conftest*
-
 LIBS="$ac_save_LIBS"
+
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_Lib'}'`" 1>&6
-if test `eval echo '${'$ac_ac_Lib'}'` = yes; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   LEXLIB="-l$ac_lib"
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-  echo $ac_n "checking lex output file root... $ac_c" 1>&6
-echo "configure:2348: checking lex output file root" 1>&5
-if test "${ac_cv_prog_lex_root+set}" = set; then
+  echo $ac_n "checking lex output file root""... $ac_c" 1>&6
+echo "configure:2156: checking lex output file root" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   # The minimal lex program is just a single line: %%.  But some broken lexes
@@ -2360,12 +2168,13 @@ else
   { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; }
 fi
 fi
+
 echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
 
-echo $ac_n "checking whether yytext is a pointer... $ac_c" 1>&6
-echo "configure:2368: checking whether yytext is a pointer" 1>&5
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
+echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
+echo "configure:2177: checking whether yytext is a pointer" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   # POSIX says lex can declare yytext either as a pointer or an array; the
@@ -2375,19 +2184,15 @@ ac_cv_prog_lex_yytext_pointer=no
 echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
 ac_save_LIBS="$LIBS"
 LIBS="$LIBS $LEXLIB"
-cat >conftest.$ac_ext <<EOF
-#line 2380 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2189 "configure"
 #include "confdefs.h"
 `cat $LEX_OUTPUT_ROOT.c`
-int
-main()
-{
+int main() {
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_prog_lex_yytext_pointer=yes
 else
@@ -2395,14 +2200,14 @@ else
   cat conftest.$ac_ext >&5
 fi
 rm -f conftest*
-
 LIBS="$ac_save_LIBS"
 rm -f "${LEX_OUTPUT_ROOT}.c"
 
 fi
+
 echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6
 if test $ac_cv_prog_lex_yytext_pointer = yes; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define YYTEXT_POINTER 1
 EOF
 
@@ -2410,22 +2215,21 @@ fi
 
 fi
 
-echo $ac_n "checking for ANSI C header files... $ac_c" 1>&6
-echo "configure:2415: checking for ANSI C header files" 1>&5
-if test "${ac_cv_header_stdc+set}" = set; then
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:2220: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2420 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2225 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
-
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2429: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2441,11 +2245,10 @@ rm -f conftest*
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat >conftest.$ac_ext <<EOF
-#line 2446 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2250 "configure"
 #include "confdefs.h"
 #include <string.h>
-
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "memchr" >/dev/null 2>&1; then
@@ -2460,11 +2263,10 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat >conftest.$ac_ext <<EOF
-#line 2465 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 2268 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
-
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "free" >/dev/null 2>&1; then
@@ -2482,33 +2284,19 @@ if test $ac_cv_header_stdc = yes; then
 if test "$cross_compiling" = yes; then
   :
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2487 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2289 "configure"
 #include "confdefs.h"
 #include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
 EOF
-if { (eval echo configure:2512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2518,69 +2306,71 @@ else
   ac_cv_header_stdc=no
 fi
 rm -fr conftest*
-
 fi
 
 fi
 fi
+
 echo "$ac_t""$ac_cv_header_stdc" 1>&6
 if test $ac_cv_header_stdc = yes; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define STDC_HEADERS 1
 EOF
 
 fi
 
-for ac_header in limits.h string.h stdbool.h unistd.h utime.h
+for ac_hdr in limits.h locale.h memory.h stdbool.h stddef.h stdlib.h string.h unistd.h utime.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo $ac_n "checking for $ac_header... $ac_c" 1>&6
-echo "configure:2539: checking for $ac_header" 1>&5
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2327: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2544 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2332 "configure"
 #include "confdefs.h"
-#include <$ac_header>
-
+#include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2337: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  eval "$ac_ac_Header=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_Header=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_Header'}'`" 1>&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-echo $ac_n "checking return type of signal handlers... $ac_c" 1>&6
-echo "configure:2574: checking return type of signal handlers" 1>&5
-if test "${ac_cv_type_signal+set}" = set; then
+echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+echo "configure:2364: checking return type of signal handlers" >&5
+if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2579 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2369 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #ifdef signal
-# undef signal
+#undef signal
 #endif
 #ifdef __cplusplus
 extern "C" void (*signal (int, void (*)(int)))(int);
@@ -2588,15 +2378,11 @@ extern "C" void (*signal (int, void (*)(int)))(int);
 void (*signal ()) ();
 #endif
 
-int
-main ()
-{
+int main() {
 int i;
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2386: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -2607,32 +2393,29 @@ else
 fi
 rm -f conftest*
 fi
+
 echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >>confdefs.h <<EOF
+cat >> confdefs.h <<EOF
 #define RETSIGTYPE $ac_cv_type_signal
 EOF
 
-echo $ac_n "checking whether time.h and sys/time.h may both be included... $ac_c" 1>&6
-echo "configure:2617: checking whether time.h and sys/time.h may both be included" 1>&5
-if test "${ac_cv_header_time+set}" = set; then
+
+echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+echo "configure:2405: checking whether time.h and sys/time.h may both be included" >&5
+if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2622 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2410 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include <time.h>
-
-int
-main ()
-{
+int main() {
 struct tm *tp;
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2419: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -2643,60 +2426,64 @@ else
 fi
 rm -f conftest*
 fi
+
 echo "$ac_t""$ac_cv_header_time" 1>&6
 if test $ac_cv_header_time = yes; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define TIME_WITH_SYS_TIME 1
 EOF
 
 fi
 
-  for ac_header in utime.h
+
+  for ac_hdr in utime.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo $ac_n "checking for $ac_header... $ac_c" 1>&6
-echo "configure:2659: checking for $ac_header" 1>&5
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2444: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2664 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2449 "configure"
 #include "confdefs.h"
-#include <$ac_header>
-
+#include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2670: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  eval "$ac_ac_Header=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_Header=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_Header'}'`" 1>&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
   
-  echo $ac_n "checking for struct utimbuf... $ac_c" 1>&6
-echo "configure:2695: checking for struct utimbuf" 1>&5
-if test "${fu_cv_sys_struct_utimbuf+set}" = set; then
+  echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
+echo "configure:2482: checking for struct utimbuf" >&5
+if eval "test \"`echo '$''{'fu_cv_sys_struct_utimbuf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2700 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2487 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -2713,15 +2500,11 @@ else
 # include <utime.h>
 #endif
       
-int
-main ()
-{
+int main() {
 static struct utimbuf x; x.actime = x.modtime;
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   fu_cv_sys_struct_utimbuf=yes
 else
@@ -2733,25 +2516,26 @@ fi
 rm -f conftest*
     
 fi
+
 echo "$ac_t""$fu_cv_sys_struct_utimbuf" 1>&6
 
   if test $fu_cv_sys_struct_utimbuf = yes; then
-    cat >>confdefs.h <<EOF
+    cat >> confdefs.h <<EOF
 #define HAVE_STRUCT_UTIMBUF 1
 EOF
 
   fi
 
-for ac_func in dup2 rename strerror
+
+for ac_func in dup2 mbrtowc rename setlocale strerror strndup wcrtomb
 do
-ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo $ac_n "checking for $ac_func... $ac_c" 1>&6
-echo "configure:2750: checking for $ac_func" 1>&5
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2534: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2755 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2539 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2760,11 +2544,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -2772,44 +2553,44 @@ main()
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_var'}'`" 1>&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $ac_tr_cpp` 1
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
 for ac_func in strtol strtoul
 do
-ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo $ac_n "checking for $ac_func... $ac_c" 1>&6
-echo "configure:2808: checking for $ac_func" 1>&5
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2589: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2813 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2594 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2818,11 +2599,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -2830,83 +2608,81 @@ main()
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_var'}'`" 1>&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $ac_tr_cpp` 1
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
  
 else
-  LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
+  echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
 fi
 done
 
+
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
-echo $ac_n "checking for working alloca.h... $ac_c" 1>&6
-echo "configure:2867: checking for working alloca.h" 1>&5
-if test "${ac_cv_working_alloca_h+set}" = set; then
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:2646: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2872 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2651 "configure"
 #include "confdefs.h"
 #include <alloca.h>
-int
-main()
-{
+int main() {
 char *p = alloca(2 * sizeof(int));
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  ac_cv_working_alloca_h=yes
+  ac_cv_header_alloca_h=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_working_alloca_h=no
+  ac_cv_header_alloca_h=no
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""$ac_cv_working_alloca_h" 1>&6
-if test $ac_cv_working_alloca_h = yes; then
-  cat >>confdefs.h <<\EOF
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_ALLOCA_H 1
 EOF
 
 fi
 
-echo $ac_n "checking for alloca... $ac_c" 1>&6
-echo "configure:2904: checking for alloca" 1>&5
-if test "${ac_cv_func_alloca_works+set}" = set; then
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:2679: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2909 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2684 "configure"
 #include "confdefs.h"
+
 #ifdef __GNUC__
 # define alloca __builtin_alloca
 #else
@@ -2928,15 +2704,11 @@ char *alloca ();
 # endif
 #endif
 
-int
-main()
-{
+int main() {
 char *p = (char *) alloca(1);
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:2940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -2946,11 +2718,11 @@ else
   ac_cv_func_alloca_works=no
 fi
 rm -f conftest*
-
 fi
+
 echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
 if test $ac_cv_func_alloca_works = yes; then
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define HAVE_ALLOCA 1
 EOF
 
@@ -2962,17 +2734,18 @@ if test $ac_cv_func_alloca_works = no; then
   # contain a buggy version.  If you still want to use their alloca,
   # use ar to extract alloca.o from them instead of compiling alloca.c.
   ALLOCA=alloca.${ac_objext}
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define C_ALLOCA 1
 EOF
 
-echo $ac_n "checking whether alloca needs Cray hooks... $ac_c" 1>&6
-echo "configure:2971: checking whether alloca needs Cray hooks" 1>&5
-if test "${ac_cv_os_cray+set}" = set; then
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:2744: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 2976 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2749 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -2992,17 +2765,17 @@ fi
 rm -f conftest*
 
 fi
+
 echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
-  ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo $ac_n "checking for $ac_func... $ac_c" 1>&6
-echo "configure:3001: checking for $ac_func" 1>&5
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2774: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3006 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2779 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3011,11 +2784,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -3023,47 +2793,47 @@ main()
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_var'}'`" 1>&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<EOF
 #define CRAY_STACKSEG_END $ac_func
 EOF
 
   break
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 done
 fi
 
-echo $ac_n "checking stack direction for C alloca... $ac_c" 1>&6
-echo "configure:3059: checking stack direction for C alloca" 1>&5
-if test "${ac_cv_c_stack_direction+set}" = set; then
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:2829: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
   ac_cv_c_stack_direction=0
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3067 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2837 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -3077,13 +2847,12 @@ find_stack_direction ()
   else
     return (&dummy > addr) ? 1 : -1;
 }
-int
 main ()
 {
-  exit (find_stack_direction () < 0);
+  exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:3087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -3093,24 +2862,24 @@ else
   ac_cv_c_stack_direction=-1
 fi
 rm -fr conftest*
-
 fi
 
 fi
+
 echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
-cat >>confdefs.h <<EOF
+cat >> confdefs.h <<EOF
 #define STACK_DIRECTION $ac_cv_c_stack_direction
 EOF
 
 fi
 
-echo $ac_n "checking for vprintf... $ac_c" 1>&6
-echo "configure:3109: checking for vprintf" 1>&5
-if test "${ac_cv_func_vprintf+set}" = set; then
+echo $ac_n "checking for vprintf""... $ac_c" 1>&6
+echo "configure:2878: checking for vprintf" >&5
+if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3114 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2883 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -3119,11 +2888,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char vprintf();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -3131,41 +2897,41 @@ main()
 #if defined (__stub_vprintf) || defined (__stub___vprintf)
 choke me
 #else
-f = vprintf;
+vprintf();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  ac_cv_func_vprintf=yes
+  eval "ac_cv_func_vprintf=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_func_vprintf=no
+  eval "ac_cv_func_vprintf=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""$ac_cv_func_vprintf" 1>&6
-if test $ac_cv_func_vprintf = yes; then
-  cat >>confdefs.h <<\EOF
+
+if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
 #define HAVE_VPRINTF 1
 EOF
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 if test "$ac_cv_func_vprintf" != yes; then
-echo $ac_n "checking for _doprnt... $ac_c" 1>&6
-echo "configure:3164: checking for _doprnt" 1>&5
-if test "${ac_cv_func__doprnt+set}" = set; then
+echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
+echo "configure:2930: checking for _doprnt" >&5
+if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3169 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2935 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -3174,11 +2940,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char _doprnt();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -3186,49 +2949,52 @@ main()
 #if defined (__stub__doprnt) || defined (__stub____doprnt)
 choke me
 #else
-f = _doprnt;
+_doprnt();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  ac_cv_func__doprnt=yes
+  eval "ac_cv_func__doprnt=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_func__doprnt=no
+  eval "ac_cv_func__doprnt=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""$ac_cv_func__doprnt" 1>&6
-if test $ac_cv_func__doprnt = yes; then
-  cat >>confdefs.h <<\EOF
+
+if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
 #define HAVE_DOPRNT 1
 EOF
 
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-   cat >>confdefs.h <<EOF
+
+
+   cat >> confdefs.h <<EOF
 #define HAVE_DONE_WORKING_MALLOC_CHECK 1
 EOF
 
- echo $ac_n "checking for working malloc... $ac_c" 1>&6
-echo "configure:3224: checking for working malloc" 1>&5
-if test "${jm_cv_func_working_malloc+set}" = set; then
+
+ echo $ac_n "checking for working malloc""... $ac_c" 1>&6
+echo "configure:2990: checking for working malloc" >&5
+if eval "test \"`echo '$''{'jm_cv_func_working_malloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
         jm_cv_func_working_malloc=no
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3232 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 2998 "configure"
 #include "confdefs.h"
 
     char *malloc ();
@@ -3239,7 +3005,7 @@ else
     }
          
 EOF
-if { (eval echo configure:3243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   jm_cv_func_working_malloc=yes
 else
@@ -3249,35 +3015,37 @@ else
   jm_cv_func_working_malloc=no
 fi
 rm -fr conftest*
-
 fi
 
   
 fi
+
 echo "$ac_t""$jm_cv_func_working_malloc" 1>&6
   if test $jm_cv_func_working_malloc = no; then
     
     LIBOBJS="$LIBOBJS malloc.$ac_objext"
-    cat >>confdefs.h <<EOF
+    cat >> confdefs.h <<EOF
 #define malloc rpl_malloc
 EOF
 
   fi
 
-   cat >>confdefs.h <<EOF
+
+   cat >> confdefs.h <<EOF
 #define HAVE_DONE_WORKING_REALLOC_CHECK 1
 EOF
 
- echo $ac_n "checking for working realloc... $ac_c" 1>&6
-echo "configure:3273: checking for working realloc" 1>&5
-if test "${jm_cv_func_working_realloc+set}" = set; then
+
+ echo $ac_n "checking for working realloc""... $ac_c" 1>&6
+echo "configure:3041: checking for working realloc" >&5
+if eval "test \"`echo '$''{'jm_cv_func_working_realloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
         jm_cv_func_working_realloc=no
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3281 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3049 "configure"
 #include "confdefs.h"
 
     char *realloc ();
@@ -3288,7 +3056,7 @@ else
     }
          
 EOF
-if { (eval echo configure:3292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   jm_cv_func_working_realloc=yes
 else
@@ -3298,68 +3066,227 @@ else
   jm_cv_func_working_realloc=no
 fi
 rm -fr conftest*
-
 fi
 
   
 fi
+
 echo "$ac_t""$jm_cv_func_working_realloc" 1>&6
   if test $jm_cv_func_working_realloc = no; then
     
     LIBOBJS="$LIBOBJS realloc.$ac_objext"
-    cat >>confdefs.h <<EOF
+    cat >> confdefs.h <<EOF
 #define realloc rpl_realloc
 EOF
 
   fi
 
-echo $ac_n "checking for MSDOS$ac_c" 1>&6
-echo "configure:3318: checking for MSDOS, Win95 or WinNT" 1>&5
-if test "${fp_cv_os_microsoft+set}" = set; then
+
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:3094: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+
+  for ac_hdr in langinfo.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3119: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  if test -n "$COMSPEC"; then
-  # MSDOS or Win95
-   fp_cv_os_microsoft=yes
-elif test -n "$ComSpec"; then
-  # WinNT
-  fp_cv_os_microsoft=yes
+  cat > conftest.$ac_ext <<EOF
+#line 3124 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  fp_cv_os_microsoft=no
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
 fi
+done
 
+  for ac_func in nl_langinfo
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3158: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3163 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
 fi
-echo "$ac_t""$fp_cv_os_microsoft" 1>&6
-echo $ac_n "checking the default charset... $ac_c" 1>&6
-echo "configure:3335: checking the default charset" 1>&5
-if test -n "${DEFAULT_CHARSET+set}"; then
-  echo "$ac_t""$DEFAULT_CHARSET" 1>&6
-  cat >>confdefs.h <<EOF
-#define DEFAULT_CHARSET "$DEFAULT_CHARSET"
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+  echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6
+echo "configure:3212: checking for nl_langinfo and CODESET" >&5
+if eval "test \"`echo '$''{'jm_cv_langinfo_codeset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3217 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int main() {
+char* cs = nl_langinfo(CODESET);
+; return 0; }
+EOF
+if { (eval echo configure:3224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  jm_cv_langinfo_codeset=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  jm_cv_langinfo_codeset=no
+fi
+rm -f conftest*
+    
+fi
 
-elif test "$fp_cv_os_microsoft" = no; then
-  echo "$ac_t""Latin-1" 1>&6
-  cat >>confdefs.h <<\EOF
-#define DEFAULT_CHARSET "Latin-1"
+echo "$ac_t""$jm_cv_langinfo_codeset" 1>&6
+  if test $jm_cv_langinfo_codeset = yes; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_LANGINFO_CODESET 1
 EOF
 
+  fi
+
+
+    echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6
+echo "configure:3247: checking whether we are using the GNU C Library 2.1 or newer" >&5
+if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$ac_t""IBM-PC" 1>&6
-  cat >>confdefs.h <<\EOF
-#define DEFAULT_CHARSET "IBM-PC"
+  cat > conftest.$ac_ext <<EOF
+#line 3252 "configure"
+#include "confdefs.h"
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+       
 EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "Lucky GNU user" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_gnu_library_2_1=yes
+else
+  rm -rf conftest*
+  ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
 
+      
+    
 fi
 
-echo $ac_n "checking if malloc debugging is wanted... $ac_c" 1>&6
-echo "configure:3357: checking if malloc debugging is wanted" 1>&5
+echo "$ac_t""$ac_cv_gnu_library_2_1" 1>&6
+    
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  
+
+
+echo $ac_n "checking if malloc debugging is wanted""... $ac_c" 1>&6
+echo "configure:3284: checking if malloc debugging is wanted" >&5
 # Check whether --with-dmalloc or --without-dmalloc was given.
 if test "${with_dmalloc+set}" = set; then
   withval="$with_dmalloc"
   if test "$withval" = yes; then
   echo "$ac_t""yes" 1>&6
-  cat >>confdefs.h <<\EOF
+  cat >> confdefs.h <<\EOF
 #define WITH_DMALLOC 1
 EOF
 
@@ -3372,8 +3299,11 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
-  echo $ac_n "checking whether NLS is wanted... $ac_c" 1>&6
-echo "configure:3377: checking whether NLS is wanted" 1>&5
+
+
+
+  echo $ac_n "checking whether NLS is wanted""... $ac_c" 1>&6
+echo "configure:3307: checking whether NLS is wanted" >&5
   # Check whether --enable-nls or --disable-nls was given.
 if test "${enable_nls+set}" = set; then
   enableval="$enable_nls"
@@ -3395,26 +3325,27 @@ else
 fi
 
   if test $enable_nls = yes; then
-    cat >>confdefs.h <<\EOF
+    cat >> confdefs.h <<\EOF
 #define ENABLE_NLS 1
 EOF
 
+
     # Check whether --with-catgets or --without-catgets was given.
 if test "${with_catgets+set}" = set; then
   withval="$with_catgets"
-  echo "configure: WARNING: catgets not supported, --with-catgets ignored" 1>&2
+  echo "configure: warning: catgets not supported, --with-catgets ignored" 1>&2
 fi
 
+
     for ac_func in gettext
 do
-ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo $ac_n "checking for $ac_func... $ac_c" 1>&6
-echo "configure:3413: checking for $ac_func" 1>&5
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3344: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3418 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3349 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3423,11 +3354,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -3435,78 +3363,78 @@ main()
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_var'}'`" 1>&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $ac_tr_cpp` 1
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-    echo $ac_n "checking for gettext in -lintl... $ac_c" 1>&6
-echo "configure:3468: checking for gettext in -lintl" 1>&5
-if test "${ac_cv_lib_intl_gettext+set}" = set; then
+    echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
+echo "configure:3397: checking for gettext in -lintl" >&5
+ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
-cat >conftest.$ac_ext <<EOF
-#line 3475 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 3405 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char gettext();
 
-int
-main()
-{
+int main() {
 gettext()
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  ac_cv_lib_intl_gettext=yes
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_lib_intl_gettext=no
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
 rm -f conftest*
-
 LIBS="$ac_save_LIBS"
+
 fi
-echo "$ac_t""$ac_cv_lib_intl_gettext" 1>&6
-if test $ac_cv_lib_intl_gettext = yes; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   :
+else
+  echo "$ac_t""no" 1>&6
 fi
 
     if test $ac_cv_lib_intl_gettext$ac_cv_func_gettext != nono; then
-      echo $ac_n "checking whether the included gettext is preferred... $ac_c" 1>&6
-echo "configure:3510: checking whether the included gettext is preferred" 1>&5
+      echo $ac_n "checking whether the included gettext is preferred""... $ac_c" 1>&6
+echo "configure:3438: checking whether the included gettext is preferred" >&5
       # Check whether --with-included-gettext or --without-included-gettext was given.
 if test "${with_included_gettext+set}" = set; then
   withval="$with_included_gettext"
@@ -3524,63 +3452,64 @@ fi
     fi
     if test $with_included_gettext = yes; then
       LIBOBJS="$LIBOBJS gettext.o"
-      cat >>confdefs.h <<\EOF
+      cat >> confdefs.h <<\EOF
 #define HAVE_GETTEXT 1
 EOF
 
-      cat >>confdefs.h <<\EOF
+      cat >> confdefs.h <<\EOF
 #define HAVE_DCGETTEXT 1
 EOF
 
     else
-      for ac_header in libintl.h
+      for ac_hdr in libintl.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo $ac_n "checking for $ac_header... $ac_c" 1>&6
-echo "configure:3541: checking for $ac_header" 1>&5
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3469: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3546 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3474 "configure"
 #include "confdefs.h"
-#include <$ac_header>
-
+#include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3479: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  eval "$ac_ac_Header=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_Header=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_Header'}'`" 1>&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
       for ac_func in dcgettext gettext
 do
-ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo $ac_n "checking for $ac_func... $ac_c" 1>&6
-echo "configure:3579: checking for $ac_func" 1>&5
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3508: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3584 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3513 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3589,11 +3518,8 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
 
-int
-main()
-{
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -3601,84 +3527,126 @@ main()
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_var'}'`" 1>&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $ac_tr_cpp` 1
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
     fi
 
-    for ac_header in locale.h
+    for ac_hdr in argz.h limits.h locale.h malloc.h string.h unistd.h sys/param.h
 do
-ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh`
-echo $ac_n "checking for $ac_header... $ac_c" 1>&6
-echo "configure:3639: checking for $ac_header" 1>&5
-if eval "test \"\${$ac_ac_Header+set}\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3566: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3644 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3571 "configure"
 #include "confdefs.h"
-#include <$ac_header>
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3576: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
 
+    for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3606: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3611 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3616: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  eval "$ac_ac_Header=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_Header=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_Header'}'`" 1>&6
-if test `eval echo '${'$ac_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $ac_tr_cpp` 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
-    for ac_func in getcwd setlocale stpcpy
+for ac_func in getpagesize
 do
-ac_ac_var=`echo "ac_cv_func_$ac_func" | $ac_tr_sh`
-echo $ac_n "checking for $ac_func... $ac_c" 1>&6
-echo "configure:3677: checking for $ac_func" 1>&5
-if eval "test \"\${$ac_ac_var+set}\" = set"; then
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3645: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3682 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3650 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3687,11 +3655,234 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
-char (*f)();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:3698: checking for working mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_mmap_fixed_mapped=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3706 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+       mmap private not fixed
+       mmap private fixed at somewhere currently unmapped
+       mmap private fixed at somewhere already mapped
+       mmap shared not fixed
+       mmap shared fixed at somewhere currently unmapped
+       mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the filesystem buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propogated back to all the places they're supposed to be.
+
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h.  */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h.  */
+# ifndef HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  ifdef HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192  /* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
+#else
+char *malloc();
+#endif
 
 int
 main()
 {
+       char *data, *data2, *data3;
+       int i, pagesize;
+       int fd;
+
+       pagesize = getpagesize();
+
+       /*
+        * First, make a file with some known garbage in it.
+        */
+       data = malloc(pagesize);
+       if (!data)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               *(data + i) = rand();
+       umask(0);
+       fd = creat("conftestmmap", 0600);
+       if (fd < 0)
+               exit(1);
+       if (write(fd, data, pagesize) != pagesize)
+               exit(1);
+       close(fd);
+
+       /*
+        * Next, try to mmap the file at a fixed address which
+        * already has something else allocated at it.  If we can,
+        * also make sure that we see the same garbage.
+        */
+       fd = open("conftestmmap", O_RDWR);
+       if (fd < 0)
+               exit(1);
+       data2 = malloc(2 * pagesize);
+       if (!data2)
+               exit(1);
+       data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+       if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+           MAP_PRIVATE | MAP_FIXED, fd, 0L))
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data2 + i))
+                       exit(1);
+
+       /*
+        * Finally, make sure that changes to the mapped area
+        * do not percolate back to the file as seen by read().
+        * (This is a bug on some variants of i386 svr4.0.)
+        */
+       for (i = 0; i < pagesize; ++i)
+               *(data2 + i) = *(data2 + i) + 1;
+       data3 = malloc(pagesize);
+       if (!data3)
+               exit(1);
+       if (read(fd, data3, pagesize) != pagesize)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data3 + i))
+                       exit(1);
+       close(fd);
+       unlink("conftestmmap");
+       exit(0);
+}
+
+EOF
+if { (eval echo configure:3846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_func_mmap_fixed_mapped=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+
+fi
+
+    for ac_func in getcwd mempcpy munmap setlocale stpcpy strcasecmp strchr strdup __argz_count __argz_stringify __argz_next
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3871: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3876 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
@@ -3699,53 +3890,50 @@ main()
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-f = $ac_func;
+$ac_func();
 #endif
 
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  eval "$ac_ac_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "$ac_ac_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
-
 fi
-echo "$ac_t""`eval echo '${'$ac_ac_var'}'`" 1>&6
-if test `eval echo '${'$ac_ac_var'}'` = yes; then
-  cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $ac_tr_cpp` 1
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
  
+else
+  echo "$ac_t""no" 1>&6
 fi
 done
 
     if test $ac_cv_header_locale_h = yes; then
-    echo $ac_n "checking for LC_MESSAGES... $ac_c" 1>&6
-echo "configure:3733: checking for LC_MESSAGES" 1>&5
-if test "${am_cv_val_LC_MESSAGES+set}" = set; then
+    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:3925: checking for LC_MESSAGES" >&5
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.$ac_ext <<EOF
-#line 3738 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3930 "configure"
 #include "confdefs.h"
 #include <locale.h>
-int
-main()
-{
+int main() {
 return LC_MESSAGES
-  ;
-  return 0;
-}
+; return 0; }
 EOF
-if { (eval echo configure:3749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_val_LC_MESSAGES=yes
 else
@@ -3755,11 +3943,11 @@ else
   am_cv_val_LC_MESSAGES=no
 fi
 rm -f conftest*
-
 fi
+
 echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
     if test $am_cv_val_LC_MESSAGES = yes; then
-      cat >>confdefs.h <<\EOF
+      cat >> confdefs.h <<\EOF
 #define HAVE_LC_MESSAGES 1
 EOF
 
@@ -3767,7 +3955,7 @@ EOF
   fi
 
     if test -z "$ALL_LINGUAS"; then
-      echo "configure: WARNING: This package does not install translations yet." 1>&2
+      echo "configure: warning: This package does not install translations yet." 1>&2
     else
       ac_items="$ALL_LINGUAS"
       for ac_item in $ac_items; do
@@ -3779,8 +3967,8 @@ EOF
     
     
 
-    echo $ac_n "checking which translations to install... $ac_c" 1>&6
-echo "configure:3784: checking which translations to install" 1>&5
+    echo $ac_n "checking which translations to install""... $ac_c" 1>&6
+echo "configure:3972: checking which translations to install" >&5
     if test -z "$LINGUAS"; then
       ac_print="$ALL_LINGUAS"
       MOFILES="$ALL_MOFILES"
@@ -3803,12 +3991,12 @@ echo "configure:3784: checking which translations to install" 1>&5
     fi
 
     if test "x$prefix" = xNONE; then
-      cat >>confdefs.h <<EOF
+      cat >> confdefs.h <<EOF
 #define LOCALEDIR "$ac_default_prefix/share/locale"
 EOF
 
     else
-      cat >>confdefs.h <<EOF
+      cat >> confdefs.h <<EOF
 #define LOCALEDIR "$prefix/share/locale"
 EOF
 
@@ -3823,8 +4011,9 @@ LTALLOCA=`echo $ALLOCA | sed 's/\.o/.lo/g'`
 
 LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o /.lo /g;s/\.o$/.lo/'`
 
+
 trap '' 1 2 15
-cat >confcache <<\EOF
+cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
 # scripts and configure runs.  It is not useful on other systems.
@@ -3858,11 +4047,13 @@ EOF
     # `set' quotes correctly as required by POSIX, so do not add quotes.
     sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
     ;;
-  esac >>confcache
-if cmp -s $cache_file confcache; then :; else
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
   if test -w $cache_file; then
     echo "updating cache $cache_file"
-    cat confcache >$cache_file
+    cat confcache > $cache_file
   else
     echo "not updating unwritable cache $cache_file"
   fi
@@ -3882,12 +4073,16 @@ if test "x$srcdir" = x.; then
   ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
 fi
 
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
 DEFS=-DHAVE_CONFIG_H
 
+# Without the "./", some shells look in PATH for config.status.
 : ${CONFIG_STATUS=./config.status}
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
 echo creating $CONFIG_STATUS
-cat >$CONFIG_STATUS <<EOF
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
 #! /bin/sh
 # Generated automatically by configure.
 # Run this file to recreate the current configuration.
@@ -3899,261 +4094,148 @@ cat >$CONFIG_STATUS <<EOF
 # Compiler output produced by configure, useful for debugging
 # configure, is in ./config.log if it exists.
 
-# Files that config.status was made for.
-config_files="\\
-  Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
-  libiconv/Makefile m4/Makefile src/Makefile tests/Makefile tests/atconfig"
-config_headers="\\
-  config.h"
-config_commands="\\
-  default-1"
-
-ac_cs_usage="\\
-\\\`$CONFIG_STATUS' instantiates files from templates according to the
-current configuration.
-
-Usage: $CONFIG_STATUS [OPTIONS] FILE...
-
-  --recheck    Update $CONFIG_STATUS by reconfiguring in the same conditions
-  --version    Print the version of Autoconf and exit
-  --help       Display this help and exit
-  --file=FILE[:TEMPLATE]
-               Instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-               Instantiate the configuration header FILE
-
-Configuration files:
-\$config_files
-
-Configuration headers:
-\$config_headers
-
-Configuration commands:
-\$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-
-ac_cs_version="\\
-$CONFIG_STATUS generated by autoconf version 2.14a.
-Configured on host `(hostname || uname -n) 2>/dev/null | sed 1q` by
-  `echo "$0 $ac_configure_args" | sed 's/[\\"\`\$]/\\\\&/g'`"
-
-# Root of the tmp file names.  Use pid to allow concurrent executions.
-ac_cs_root=cs\$\$
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test \$# != 0
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
 do
-  case "\$1" in
-  --*=*)
-    ac_option=\`echo "\$1" | sed -e 's/=.*//'\`
-    ac_optarg=\`echo "\$1" | sed -e 's/[^=]*=//'\`
-    shift
-    set dummy "\$ac_option" "\$ac_optarg" \${1+"\$@"}
-    shift
-    ;;
-  -*);;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_need_defaults=false;;
-  esac
-
-  case "\$1" in
-
-  # Handling of the options.
+  case "\$ac_option" in
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 `echo "$ac_configure_args" | sed 's/[\\"\`\$]/\\\\&/g'` --no-create --no-recursion"
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "\$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    echo "$CONFIG_STATUS: ambiguous option: \$ac_option"; exit 1 ;;
-  -help | --help | --hel )
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
-  --file | --fil | --fi | --f )
-    shift
-    CONFIG_FILES="\$CONFIG_FILES \$1"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    shift
-    CONFIG_HEADERS="\$CONFIG_FILES \$1"
-    ac_need_defaults=false;;
-
-  # Handling of arguments.
-  'Makefile' ) CONFIG_FILES="\$CONFIG_FILES Makefile" ;;
-  'contrib/Makefile' ) CONFIG_FILES="\$CONFIG_FILES contrib/Makefile" ;;
-  'doc/Makefile' ) CONFIG_FILES="\$CONFIG_FILES doc/Makefile" ;;
-  'i18n/Makefile' ) CONFIG_FILES="\$CONFIG_FILES i18n/Makefile" ;;
-  'lib/Makefile' ) CONFIG_FILES="\$CONFIG_FILES lib/Makefile" ;;
-  'libiconv/Makefile' ) CONFIG_FILES="\$CONFIG_FILES libiconv/Makefile" ;;
-  'm4/Makefile' ) CONFIG_FILES="\$CONFIG_FILES m4/Makefile" ;;
-  'src/Makefile' ) CONFIG_FILES="\$CONFIG_FILES src/Makefile" ;;
-  'tests/Makefile' ) CONFIG_FILES="\$CONFIG_FILES tests/Makefile" ;;
-  'tests/atconfig' ) CONFIG_FILES="\$CONFIG_FILES tests/atconfig" ;;
-  'default-1' ) CONFIG_COMMANDS="\$CONFIG_COMMANDS default-1" ;;
-  'config.h' ) CONFIG_HEADERS="\$CONFIG_HEADERS config.h" ;;
-
-  # This is an error.
-  -*) echo "$CONFIG_STATUS: invalid option: \$1"; exit 1 ;;
-  *) echo "$CONFIG_STATUS: invalid argument: \$1"; exit 1 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
   esac
-  shift
 done
 
-EOF
-
-cat >>$CONFIG_STATUS <<EOF
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-if \$ac_need_defaults; then
-  : \${CONFIG_FILES="\$config_files"}
-  : \${CONFIG_HEADERS="\$config_headers"}
-  : \${CONFIG_COMMANDS="\$config_commands"}
-fi
-
-# Remove all the CONFIG_FILES, and trap to remove the temp files.
-rm -fr \`echo "\$CONFIG_FILES" | sed "s/:[^ ]*//g"\`
-trap 'rm -fr \$ac_cs_root*; exit 1' 1 2 15
-
-EOF
-
-cat >>$CONFIG_STATUS <<EOF
-#
-# INIT-COMMANDS section.
-#
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
 
+trap 'rm -fr `echo "Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
+libiconv/Makefile m4/Makefile src/Makefile tests/Makefile tests/atconfig config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
+cat >> $CONFIG_STATUS <<EOF
 
-cat >>$CONFIG_STATUS <<EOF
-
-#
-# CONFIG_FILES section.
-#
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@AT_TESTPATH@%$AT_TESTPATH%g
+s%@ECHO_N@%$ECHO_N%g
+s%@ECHO_C@%$ECHO_C%g
+s%@CC@%$CC%g
+s%@CPP@%$CPP%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@RANLIB@%$RANLIB%g
+s%@LN_S@%$LN_S%g
+s%@LIBTOOL@%$LIBTOOL%g
+s%@U@%$U%g
+s%@ANSI2KNR@%$ANSI2KNR%g
+s%@LEX@%$LEX%g
+s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
+s%@LEXLIB@%$LEXLIB%g
+s%@LIBOBJS@%$LIBOBJS%g
+s%@ALLOCA@%$ALLOCA%g
+s%@GLIBC21@%$GLIBC21%g
+s%@USE_NLS_TRUE@%$USE_NLS_TRUE%g
+s%@USE_NLS_FALSE@%$USE_NLS_FALSE%g
+s%@ALL_LINGUAS@%$ALL_LINGUAS%g
+s%@ALL_POFILES@%$ALL_POFILES%g
+s%@ALL_MOFILES@%$ALL_MOFILES%g
+s%@MOFILES@%$MOFILES%g
+s%@LTALLOCA@%$LTALLOCA%g
+s%@LTLIBOBJS@%$LTLIBOBJS%g
 
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/%@/@@/; s/@%/@@/; s/%;t t\$/@;t t/; /@;t t\$/s/[\\\\&%]/\\\\&/g;
-   s/@@/%@/; s/@@/@%/; s/@;t t\$/%;t t/' >\$ac_cs_root.subs <<\\CEOF
-s%@SHELL@%$SHELL%;t t
-s%@CFLAGS@%$CFLAGS%;t t
-s%@CPPFLAGS@%$CPPFLAGS%;t t
-s%@CXXFLAGS@%$CXXFLAGS%;t t
-s%@FFLAGS@%$FFLAGS%;t t
-s%@DEFS@%$DEFS%;t t
-s%@LDFLAGS@%$LDFLAGS%;t t
-s%@LIBS@%$LIBS%;t t
-s%@exec_prefix@%$exec_prefix%;t t
-s%@prefix@%$prefix%;t t
-s%@program_transform_name@%$program_transform_name%;t t
-s%@bindir@%$bindir%;t t
-s%@sbindir@%$sbindir%;t t
-s%@libexecdir@%$libexecdir%;t t
-s%@datadir@%$datadir%;t t
-s%@sysconfdir@%$sysconfdir%;t t
-s%@sharedstatedir@%$sharedstatedir%;t t
-s%@localstatedir@%$localstatedir%;t t
-s%@libdir@%$libdir%;t t
-s%@includedir@%$includedir%;t t
-s%@oldincludedir@%$oldincludedir%;t t
-s%@infodir@%$infodir%;t t
-s%@mandir@%$mandir%;t t
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%;t t
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%;t t
-s%@INSTALL_DATA@%$INSTALL_DATA%;t t
-s%@PACKAGE@%$PACKAGE%;t t
-s%@VERSION@%$VERSION%;t t
-s%@ACLOCAL@%$ACLOCAL%;t t
-s%@AUTOCONF@%$AUTOCONF%;t t
-s%@AUTOMAKE@%$AUTOMAKE%;t t
-s%@AUTOHEADER@%$AUTOHEADER%;t t
-s%@MAKEINFO@%$MAKEINFO%;t t
-s%@SET_MAKE@%$SET_MAKE%;t t
-s%@AT_TESTPATH@%$AT_TESTPATH%;t t
-s%@ECHO_N@%$ECHO_N%;t t
-s%@ECHO_C@%$ECHO_C%;t t
-s%@CC@%$CC%;t t
-s%@CPP@%$CPP%;t t
-s%@host@%$host%;t t
-s%@host_alias@%$host_alias%;t t
-s%@host_cpu@%$host_cpu%;t t
-s%@host_vendor@%$host_vendor%;t t
-s%@host_os@%$host_os%;t t
-s%@build@%$build%;t t
-s%@build_alias@%$build_alias%;t t
-s%@build_cpu@%$build_cpu%;t t
-s%@build_vendor@%$build_vendor%;t t
-s%@build_os@%$build_os%;t t
-s%@RANLIB@%$RANLIB%;t t
-s%@LN_S@%$LN_S%;t t
-s%@LIBTOOL@%$LIBTOOL%;t t
-s%@U@%$U%;t t
-s%@ANSI2KNR@%$ANSI2KNR%;t t
-s%@LEX@%$LEX%;t t
-s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%;t t
-s%@LEXLIB@%$LEXLIB%;t t
-s%@LIBOBJS@%$LIBOBJS%;t t
-s%@ALLOCA@%$ALLOCA%;t t
-s%@USE_NLS_TRUE@%$USE_NLS_TRUE%;t t
-s%@USE_NLS_FALSE@%$USE_NLS_FALSE%;t t
-s%@ALL_LINGUAS@%$ALL_LINGUAS%;t t
-s%@ALL_POFILES@%$ALL_POFILES%;t t
-s%@ALL_MOFILES@%$ALL_MOFILES%;t t
-s%@MOFILES@%$MOFILES%;t t
-s%@LTALLOCA@%$LTALLOCA%;t t
-s%@LTLIBOBJS@%$LTLIBOBJS%;t t
 CEOF
-
 EOF
 
-  cat >>$CONFIG_STATUS <<\EOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=""
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $ac_cs_root.subs >$ac_cs_root.sfrag
-    else
-      sed "${ac_end}q" $ac_cs_root.subs >$ac_cs_root.sfrag
-    fi
-    if test ! -s $ac_cs_root.sfrag; then
-      ac_more_lines=false
-      rm -f $ac_cs_root.sfrag
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
     else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $ac_cs_root.sfrag) >$ac_cs_root.s$ac_sed_frag
-      if test -z "$ac_sed_cmds"; then
-       ac_sed_cmds="sed -f $ac_cs_root.s$ac_sed_frag"
-      else
-       ac_sed_cmds="$ac_sed_cmds | sed -f $ac_cs_root.s$ac_sed_frag"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
     fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
   fi
-fi # test -n "$CONFIG_FILES"
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
 
+CONFIG_FILES=\${CONFIG_FILES-"Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
+libiconv/Makefile m4/Makefile src/Makefile tests/Makefile tests/atconfig"}
 EOF
-cat >>$CONFIG_STATUS <<\EOF
+cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case "$ac_file" in
@@ -4180,75 +4262,62 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
   .)  srcdir=.
       if test -z "$ac_dots"; then top_srcdir=.
       else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /* | ?:/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
   *) # Relative path.
     srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
     top_srcdir="$ac_dots$ac_given_srcdir" ;;
   esac
 
   case "$ac_given_INSTALL" in
-  [/$]* | ?:/*) INSTALL="$ac_given_INSTALL" ;;
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
   *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
   esac
 
   echo creating "$ac_file"
   rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in |
-                                                 sed 's%.*/%%'` by configure."
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
   case "$ac_file" in
-  *[Mm]akefile*) ac_comsub="1i\\
+  *Makefile*) ac_comsub="1i\\
 # $configure_input" ;;
   *) ac_comsub= ;;
   esac
 
-  # Don't redirect the output to AC_FILE directly: use `mv' so that updating
-  # is atomic, and doesn't need trapping.
-  ac_file_inputs=`echo $ac_file_in |
-                  sed -e "s%^%$ac_given_srcdir/%;s%:% $ac_given_srcdir/%g"`
-  for ac_file_input in $ac_file_inputs;
-  do
-    test -f "$ac_file_input" ||
-        { echo "configure: error: cannot find input file \`$ac_file_input'" 1>&2; exit 1; }
-  done
-EOF
-cat >>$CONFIG_STATUS <<EOF
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
   sed -e "$ac_comsub
-$ac_vpsub
-$extrasub
-EOF
-cat >>$CONFIG_STATUS <<\EOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s%@configure_input@%$configure_input%;t t
-s%@srcdir@%$srcdir%;t t
-s%@top_srcdir@%$top_srcdir%;t t
-s%@INSTALL@%$INSTALL%;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$ac_cs_root.out
-  mv $ac_cs_root.out $ac_file
-
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
 fi; done
-rm -f $ac_cs_root.s*
-EOF
-cat >>$CONFIG_STATUS <<\EOF
-
-#
-# CONFIG_HEADER section.
-#
+rm -f conftest.s*
 
 # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([  ]*\)#\([        ]*<<define>>[   ][      ]*\)'
+ac_dA='s%^\([  ]*\)#\([        ]*define[       ][      ]*\)'
 ac_dB='\([     ][      ]*\)[^  ]*%\1#\2'
 ac_dC='\3'
-ac_dD='%;t t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
 ac_uA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='$%\1#\2define\3'
+ac_uB='\([     ]\)%\1#\2define\3'
 ac_uC=' '
-ac_uD='%;t t'
-
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
 for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case "$ac_file" in
@@ -4259,108 +4328,65 @@ for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
 
   echo creating $ac_file
 
-  rm -f $ac_cs_root.frag $ac_cs_root.in $ac_cs_root.out
-  ac_file_inputs=`echo $ac_file_in |
-                  sed -e "s%^%$ac_given_srcdir/%;s%:% $ac_given_srcdir/%g"`
-    for ac_file_input in $ac_file_inputs;
-  do
-    test -f "$ac_file_input" ||
-        { echo "configure: error: cannot find input file \`$ac_file_input'" 1>&2; exit 1; }
-  done
-  # Remove the trailing spaces.
-  sed -e 's/[  ]*$//' $ac_file_inputs >$ac_cs_root.in
+  rm -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
 
 EOF
 
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-cat >$ac_cs_root.hdr <<\EOF
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
 s/[\\&%]/\\&/g
 s%[\\$`]%\\&%g
-t clear
-: clear
-s%^[   ]*#[    ]*define[       ][      ]*\(\([^        (][^    (]*\)([^)]*)\)[         ]*\(.*\)$%${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD}%gp
-t cleanup
-s%^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-: cleanup
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
 EOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC_DEFINE to be honored.
-uniq confdefs.h | sed -n -f $ac_cs_root.hdr >conftest.defines
-sed -e 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f $ac_cs_root.hdr
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
 
 # This sed command replaces #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\EOF
+cat >> conftest.vals <<\EOF
 s%^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
 EOF
 
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if egrep "^[   ]*#[    ]*define" $ac_cs_root.in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $ac_cs_root.frag.
-  echo '  cat >$ac_cs_root.frag <<CEOF' >>$CONFIG_STATUS
-  echo ': t' >>$CONFIG_STATUS
-  echo '/^[    ]*#[    ]*define/!b' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $ac_cs_root.frag $ac_cs_root.in >$ac_cs_root.out
-  rm -f $ac_cs_root.in
-  mv $ac_cs_root.out $ac_cs_root.in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # egrep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
 
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
 rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
+while :
 do
-  # Write a limited-size here document to $ac_cs_root.frag.
-  echo '  cat >$ac_cs_root.frag <<CEOF' >>$CONFIG_STATUS
-  echo ': t' >>$CONFIG_STATUS
-  echo '/^[    ]*#[    ]*undef/!b' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
   echo 'CEOF
-  sed -f $ac_cs_root.frag $ac_cs_root.in >$ac_cs_root.out
-  rm -f $ac_cs_root.in
-  mv $ac_cs_root.out $ac_cs_root.in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
 done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\EOF
-  rm -f $ac_cs_root.frag $ac_cs_root.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" >$ac_cs_root.h
-  cat $ac_cs_root.in >>$ac_cs_root.h
-  rm -f $ac_cs_root.in
-  if cmp -s $ac_file $ac_cs_root.h 2>/dev/null; then
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
     echo "$ac_file is unchanged"
-    rm -f $ac_cs_root.h
+    rm -f conftest.h
   else
     # Remove last slash and all that follows it.  Not all systems have dirname.
       ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
@@ -4369,37 +4395,21 @@ cat >>$CONFIG_STATUS <<\EOF
       test ! -d "$ac_dir" && mkdir "$ac_dir"
     fi
     rm -f $ac_file
-    mv $ac_cs_root.h $ac_file
+    mv conftest.h $ac_file
   fi
 fi; done
-EOF
-cat >>$CONFIG_STATUS <<\EOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in .. $CONFIG_COMMANDS; do if test "x$ac_file" != x..; then
-  ac_dest=`echo "$ac_file"|sed 's%:.*%%'`
-  ac_source=`echo "$ac_file"|sed 's%[^:]*:%%'`
 
-  echo "executing commands of $ac_dest"
-  case "$ac_dest" in
-    default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;;
-  esac
-fi;done
 EOF
+cat >> $CONFIG_STATUS <<EOF
 
-cat >>$CONFIG_STATUS <<\EOF
 
-#
-# CONFIG_COMMANDS section.
-#
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
 
 exit 0
 EOF
 chmod +x $CONFIG_STATUS
 rm -fr confdefs* $ac_clean_files
-trap 'exit 1' 1 2 15
-
-test "$no_create" = yes || $SHELL $CONFIG_STATUS || exit 1
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 
index 5c63cba69cd613ff2799e2e928aaf7dae1d8162f..a2f741cd8c80b140f0fe66022fd7d93382ecea81 100644 (file)
@@ -1,11 +1,11 @@
 # Configure template for GNU recode.
-# Copyright (C) 1994, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+# Copyright (C) 1994-1999, 2000, 2001 Free Software Foundation, Inc.
 # Process this file with autoconf to produce a configure script.
 
 AC_INIT(src/recode.c)
 AC_PREREQ(2.12)
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(recode, 3.5e)
+AM_INIT_AUTOMAKE(recode, 3.6)
 AT_CONFIG(../src)
 ALL_LINGUAS="da de el es fr gl it nl pl pt sl sv"
 
@@ -21,11 +21,11 @@ AC_C_INLINE
 ad_AC_PROG_FLEX
 
 AC_HEADER_STDC
-AC_CHECK_HEADERS(limits.h string.h stdbool.h unistd.h utime.h)
+AC_CHECK_HEADERS(limits.h locale.h memory.h stdbool.h stddef.h stdlib.h string.h unistd.h utime.h)
 AC_TYPE_SIGNAL
 jm_STRUCT_UTIMBUF
 
-AC_CHECK_FUNCS(dup2 rename strerror)
+AC_CHECK_FUNCS(dup2 mbrtowc rename setlocale strerror strndup wcrtomb)
 AC_REPLACE_FUNCS(strtol strtoul)
 AC_FUNC_ALLOCA
 AC_FUNC_VPRINTF
@@ -34,18 +34,9 @@ jm_FUNC_MALLOC
 jm_FUNC_REALLOC
 AC_SUBST(LIBOBJS)
 
-fp_OS_MICROSOFT
-AC_MSG_CHECKING(the default charset)
-if test -n "${DEFAULT_CHARSET+set}"; then
-  AC_MSG_RESULT($DEFAULT_CHARSET)
-  AC_DEFINE_UNQUOTED(DEFAULT_CHARSET, "$DEFAULT_CHARSET")
-elif test "$fp_cv_os_microsoft" = no; then
-  AC_MSG_RESULT(Latin-1)
-  AC_DEFINE(DEFAULT_CHARSET, "Latin-1")
-else
-  AC_MSG_RESULT(IBM-PC)
-  AC_DEFINE(DEFAULT_CHARSET, "IBM-PC")
-fi
+AC_CANONICAL_HOST
+jm_LANGINFO_CODESET
+jm_GLIBC21
 
 AM_WITH_DMALLOC
 fp_WITH_GETTEXT
index 5f97bc9d852346c44fc7e6b6ce0b68ed74bde486..cf59f034e0331af5806ae2f33b48c26b58cbc305 100644 (file)
@@ -1,3 +1,9 @@
+2000-06-29  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recode.spec: New file, meant for RedHat.
+       * Makefile.am: Distribute it.
+       Reported by David Lebel.
+\f
 1998-11-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.amiga, Makefile.amiga-lib: Recoded /cl to Unix.
index fa9103bc2833bdb9a5af29430356abe2cdec4cb1..cd8ae67b0c79ac2b95ed1ceebcfa20825ea5bfd7 100644 (file)
@@ -1,5 +1,5 @@
 # Makefile for `recode' related contributions.
-# Copyright © 1997, 1998 Free Software Foundation, Inc.
+# Copyright © 1997, 1998, 2000 Free Software Foundation, Inc.
 # François Pinard <pinard@iro.umontreal.ca>
 
 # This program is free software; you can redistribute it and/or modify
@@ -22,4 +22,4 @@ AMIGA_PORT = lib-Makefile.Amiga src-Makefile.Amiga
 DJGPP_PORT = djgpp-README djgpp-diffs
 ELISP_FILES = recode.el utf8.el
 
-EXTRA_DIST = $(AMIGA_PORT) $(DJGPP_PORT) $(ELISP_FILES)
+EXTRA_DIST = $(AMIGA_PORT) $(DJGPP_PORT) $(ELISP_FILES) recode.spec
index 781c9fd7a23b2a83af4d6f1bd79db74e968bb12d..d36a434d7a595e64b3812222d0bde12a953dfd81 100644 (file)
@@ -11,7 +11,7 @@
 # PARTICULAR PURPOSE.
 
 # Makefile for `recode' related contributions.
-# Copyright © 1997, 1998 Free Software Foundation, Inc.
+# Copyright © 1997, 1998, 2000 Free Software Foundation, Inc.
 # François Pinard <pinard@iro.umontreal.ca>
 
 # This program is free software; you can redistribute it and/or modify
@@ -87,6 +87,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -108,7 +109,7 @@ AMIGA_PORT = lib-Makefile.Amiga src-Makefile.Amiga
 DJGPP_PORT = djgpp-README djgpp-diffs
 ELISP_FILES = recode.el utf8.el
 
-EXTRA_DIST = $(AMIGA_PORT) $(DJGPP_PORT) $(ELISP_FILES)
+EXTRA_DIST = $(AMIGA_PORT) $(DJGPP_PORT) $(ELISP_FILES) recode.spec
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
index b517065be9d4613e1a78007b771960d0233b77b4..d56be16a5e7c4ec4d937d3cdbbbe246316b87c83 100644 (file)
     These makefiles allow building `recode' 3.4k on Amiga.
     Submitted by Stefan Haubenthal, 1998-11.
 
+. + recode.spec
+
+    RPM spec file to prepare `recode' on RedHat.
+    Submitted by David Lebel, 2000-06.
+
 .* External pointers
 
 . + Documentation
diff --git a/contrib/recode.spec b/contrib/recode.spec
new file mode 100644 (file)
index 0000000..e5b7c93
--- /dev/null
@@ -0,0 +1,93 @@
+%define rcsid      $Id: recode.spec,v 1.5 2000/06/29 13:52:54 lebel Exp $
+%define nam       recode
+%define ver       3.5c
+%define rel       1
+%define sysconfdir /etc
+%define prefix    /usr
+
+Summary: The `recode' library converts files between character sets and usages.
+Name:          %nam
+Version:       %ver
+Release:       %rel
+Copyright:     GPL
+Vendor:                François Pinard et al.
+Group:         Applications/Text
+Source:                http://www.iro.umontreal.ca/contrib/recode/%{nam}-%{ver}.tar.gz
+URL:           http://www.iro.umontreal.ca/~pinard/
+BuildRoot:     /var/tmp/%{nam}-%{ver}-root
+Docdir:                %{prefix}/doc
+
+%description
+The `recode' library converts files between character sets and usages.
+The library recognises or produces nearly 150 different character sets
+and is able to transliterate files between almost any pair.  When
+exact transliteration are not possible, it may get rid of the
+offending characters or fall back on approximations.  Most RFC 1345
+character sets are supported.  The `recode' program is a handy
+front-end to the library.
+
+The `recode' program and library have been written by François Pinard.
+It is an evolving package, and specifications might change in future
+releases.  Option `-f' is now fairly implemented, yet not fully.
+
+%package devel
+Summary:       Libraries and include files for developing applications using the `recode' library.
+Group:         Development/Libraries
+
+%description devel
+This package provides the necessary development libraries and include
+files to allow you to develop applications using the `recode' libraries.
+
+%changelog 
+* Thu Jun 29 2000 David Lebel <lebel@lebel.org>
+- Initial public release of this SPEC file.
+
+%prep
+%setup -q
+
+%build
+if [ ! -f configure ]; then
+  CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh \
+       --prefix=%{prefix} --sysconfdir=%{sysconfdir}
+else
+  CFLAGS="$RPM_OPT_FLAGS" ./configure  \
+       --prefix=%{prefix} --sysconfdir=%{sysconfdir}
+fi
+
+make
+
+%install
+[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
+
+make install-strip \
+       prefix=$RPM_BUILD_ROOT%{prefix} \
+       sysconfdir=$RPM_BUILD_ROOT%{sysconfdir}
+
+%clean
+[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
+
+%post
+if ! grep %{prefix}/lib /etc/ld.so.conf > /dev/null ; then
+  echo "%{prefix}/lib" >> /etc/ld.so.conf
+fi
+
+[ -x /sbin/ldconfig ] && /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-, bin, bin)
+
+%doc ABOUT-NLS AUTHORS BACKLOG COPYING COPYING-LIB ChangeLog INSTALL NEWS README THANKS TODO
+%{prefix}/bin/*
+%{prefix}/lib/*.so*
+%{prefix}/info/recode*
+%{prefix}/man/man1/*
+%{prefix}/share/locale/*
+
+%files devel
+%defattr(0555, bin, bin)
+
+%{prefix}/include/*
+%{prefix}/lib/*.a
+%{prefix}/lib/*.la
index e7cfdebe737647ce1e5d7a4ed3d1d5dcc68cb8d7..9d4dde5074d932b4d19ef4554a0421ea160bb13d 100644 (file)
@@ -1,3 +1,29 @@
+2000-12-06  Bruno Haible  <haible@clisp.cons.org>
+
+       * Makefile.am (MAKEINFO): New definition, forcing English titles in
+       the generated info files.
+
+       * recode.texi: Reformulate paragraphs mentioning DEFAULT_CHARSET.
+
+       * Makemore (ENCODINGS_DEF): Add encodings_local.def.
+
+2000-08-30  Bruno Haible  <haible@clisp.cons.org>
+
+       * help2man: Upgrade to version 1.022.
+
+2000-08-18  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recode.texi (HTML): Undust and bring up-to-date.  Add XML info.
+
+2000-07-10  François Pinard  <pinard@iro.umontreal.ca>
+
+       * recode.texi (Introduction): How to pronounce recode.
+
+2000-06-29  François Pinard  <pinard@iro.umontreal.ca>
+
+       * tables.py (Explodes.complete, Strips.complete_sources): Produce
+       delmodule_* functions, both empty for now.
+\f
 2000-06-26  François Pinard  <pinard@iro.umontreal.ca>
 
        * recode.texi (Debugging): New node.
@@ -47,7 +73,7 @@
 
        * recode.texi (Charset overview): Document unreachable charsets.
        Reported by François-Xavier Bergot
-\f
+
 1999-12-29  François Pinard  <pinard@iro.umontreal.ca>
 
        * recode.texi (libiconv): Adjust to reflect the merge.
index 0826c1d6755a3201e07a47a6f9dc9ccbbb87563b..a08f1f01dd23260e884083f6a2259bb93d62064e 100644 (file)
@@ -18,6 +18,7 @@
 
 AUTOMAKE_OPTIONS = gnits
 info_TEXINFOS = recode.texi
+MAKEINFO = LANG= LANGUAGE= @MAKEINFO@
 
 EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore \
 tables.py
index 3d66543e1a8abb302b75945b15d9e3edbc081edf..b1816495965fa0ac521c34862aafdee50cda96f6 100644 (file)
@@ -87,6 +87,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -94,7 +95,6 @@ LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
 LTALLOCA = @LTALLOCA@
 LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
 MOFILES = @MOFILES@
 OBJDUMP = @OBJDUMP@
 PACKAGE = @PACKAGE@
@@ -104,6 +104,7 @@ VERSION = @VERSION@
 
 AUTOMAKE_OPTIONS = gnits
 info_TEXINFOS = recode.texi
+MAKEINFO = LANG= LANGUAGE= @MAKEINFO@
 
 EXTRA_DIST = libiconv.texi rfc1345.texi File-Latin1 help2man Makemore tables.py
 
index 49eb01b149da1c4fb7f254dc7d368a58507a8a52..22367eff200f618b13609fd821c32f366e9738d4 100644 (file)
@@ -44,7 +44,7 @@ MAPURL = ftp://ftp.unicode.org/MAPPINGS
 MNEMONICS_DS = mnemonic,ds
 ISO10646_DEF = $(CHSET)/iso10646.def
 CHARSETS_DEF = $(CHSET)/charsets.def
-ENCODINGS_DEF = ../libiconv/encodings.def
+ENCODINGS_DEF = ../libiconv/encodings.def ../libiconv/encodings_local.def
 MNEMONICS_DS = keld-email/iso10646.def
 ISO10646_DEF = keld-email/iso10646.def
 CHARSETS_DEF = keld-email/charsets.def
index 1728036af884794c425bad60077d9a44844a7733..2c8164789aa7d40fa090d81eb02617e8e41860f4 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 # Generate a short man page from --help and --version output.
-# Copyright © 1997, 98, 99 Free Software Foundation, Inc.
+# Copyright © 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,11 +27,11 @@ use Text::Tabs qw(expand);
 use POSIX qw(strftime setlocale LC_TIME);
 
 my $this_program = 'help2man';
-my $this_version = '1.020';
+my $this_version = '1.022';
 my $version_info = <<EOT;
-$this_program $this_version
+GNU $this_program $this_version
 
-Copyright (C) 1997, 98, 99 Free Software Foundation, Inc.
+Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -53,6 +53,8 @@ Usage: $this_program [OPTION]... EXECUTABLE
      --version           print version number, then exit
 
 EXECUTABLE should accept `--help' and `--version' options.
+
+Report bugs to <bug-help2man\@gnu.org>.
 EOT
 
 my $section = 1;
@@ -480,7 +482,7 @@ for (@pre, (grep ! /^($filter)$/o, @include), @post)
     {
        my $quote = /\W/ ? '"' : '';
        print ".SH $quote$_$quote\n";
-       
+
        for ($include{$_})
        {
            # Replace leading dot an backslash tokens.
index d20215b26ea1ec743ba3557b5a5dfae24c23e2fd..4c4c2ae15b87985836eb60685c7bbeb9981391e0 100644 (file)
 @tindex CP936
 @code{CP936} is an alias for this charset.
 
+@item GB18030
+@tindex GB18030
+
 @item ISO-2022-CN
 @tindex ISO-2022-CN@r{, aliases}
 @tindex csISO2022CN
 @item CP950
 @tindex CP950
 
+@item BIG5HKSCS
+@tindex BIG5HKSCS
+
 @item EUC-KR
 @tindex EUC-KR@r{, aliases}
 @tindex EUCKR
 @tindex csISO2022KR
 @tindex ISO2022KR
 @code{csISO2022KR} and @code{ISO2022KR} are aliases for this charset.
+
+@item CHAR
+@tindex CHAR
+
+@item WCHAR_T
+@tindex WCHAR_T
 @end table
 @end itemize
index d62fd7264201a7970cab80d38d06b3c5079107be..06b358bde41b9f6f08e45f059da9a447eab6540e 100644 (file)
@@ -28,103 +28,104 @@ translation approved by the Foundation.
 \1f
 Indirect:
 recode.info-1: 1118
-recode.info-2: 51177
-recode.info-3: 99629
-recode.info-4: 149212
-recode.info-5: 197860
-recode.info-6: 234705
+recode.info-2: 42652
+recode.info-3: 91007
+recode.info-4: 123644
+recode.info-5: 169477
+recode.info-6: 211889
+recode.info-7: 237172
 \1f
 Tag Table:
 (Indirect)
 Node: Top\7f1118
-Node: Tutorial\7f5525
-Node: Introduction\7f9761
-Node: Charset overview\7f13804
-Node: Surface overview\7f15595
-Node: Contributing\7f17062
-Ref: Contributing-Footnote-1\7f19303
-Node: Invoking recode\7f19437
-Node: Synopsis\7f20393
-Ref: Synopsis-Footnote-1\7f22828
-Node: Requests\7f23127
-Ref: Requests-Footnote-1\7f29099
-Ref: Requests-Footnote-2\7f29166
-Ref: Requests-Footnote-3\7f29344
-Node: Listings\7f29803
-Node: Recoding\7f39722
-Node: Reversibility\7f42542
-Ref: Reversibility-Footnote-1\7f51040
-Node: Sequencing\7f51177
-Node: Mixed\7f53618
-Node: Emacs\7f57006
-Node: Debugging\7f57985
-Node: Library\7f62247
-Node: Outer level\7f63600
-Node: Request level\7f69125
-Node: Task level\7f79617
-Node: Charset level\7f90060
-Node: Errors\7f90897
-Ref: Errors-Footnote-1\7f95746
-Ref: Errors-Footnote-2\7f95860
-Node: Universal\7f96221
-Ref: Universal-Footnote-1\7f99348
-Ref: Universal-Footnote-2\7f99416
-Node: UCS-2\7f99629
-Node: UCS-4\7f102158
-Node: UTF-7\7f102695
-Node: UTF-8\7f103287
-Node: UTF-16\7f107589
-Node: count-characters\7f108734
-Node: dump-with-names\7f109402
-Node: libiconv\7f111955
-Node: Tabular\7f123475
-Node: ASCII misc\7f145740
-Node: ASCII\7f146102
-Node: ISO 8859\7f146918
-Node: ASCII-BS\7f149212
-Node: flat\7f151046
-Node: IBM and MS\7f151714
-Node: EBCDIC\7f152286
-Node: IBM-PC\7f154395
-Ref: IBM-PC-Footnote-1\7f156512
-Node: Icon-QNX\7f156670
-Node: CDC\7f157092
-Node: Display Code\7f158793
-Ref: Display Code-Footnote-1\7f161075
-Node: CDC-NOS\7f161280
-Node: Bang-Bang\7f163237
-Node: Micros\7f165161
-Node: Apple-Mac\7f165543
-Node: AtariST\7f167591
-Node: Miscellaneous\7f168574
-Node: HTML\7f169308
-Node: LaTeX\7f173546
-Node: Texinfo\7f174315
-Node: Vietnamese\7f175088
-Node: African\7f176061
-Node: Others\7f177410
-Node: Texte\7f178861
-Ref: Texte-Footnote-1\7f183409
-Ref: Texte-Footnote-2\7f183489
-Ref: Texte-Footnote-3\7f183964
-Node: Mule\7f184061
-Ref: Mule-Footnote-1\7f185841
-Node: Surfaces\7f186360
-Ref: Surfaces-Footnote-1\7f189345
-Node: Permutations\7f189451
-Node: End lines\7f190289
-Node: MIME\7f192489
-Node: Dump\7f193673
-Node: Test\7f197860
-Node: Internals\7f200334
-Node: Main flow\7f201570
-Node: New charsets\7f204683
-Node: New surfaces\7f209218
-Node: Design\7f209939
-Ref: Design-Footnote-1\7f219153
-Node: Concept Index\7f219257
-Node: Option Index\7f229197
-Node: Library Index\7f231278
-Node: Charset and Surface Index\7f234705
+Node: Tutorial\7f5524
+Node: Introduction\7f9760
+Node: Charset overview\7f13998
+Node: Surface overview\7f15789
+Node: Contributing\7f17256
+Ref: Contributing-Footnote-1\7f19497
+Node: Invoking recode\7f19631
+Node: Synopsis\7f20587
+Ref: Synopsis-Footnote-1\7f23022
+Node: Requests\7f23321
+Ref: Requests-Footnote-1\7f29229
+Ref: Requests-Footnote-2\7f29296
+Ref: Requests-Footnote-3\7f29474
+Node: Listings\7f29933
+Node: Recoding\7f39832
+Node: Reversibility\7f42652
+Ref: Reversibility-Footnote-1\7f51150
+Node: Sequencing\7f51287
+Node: Mixed\7f53728
+Node: Emacs\7f57116
+Node: Debugging\7f58095
+Node: Library\7f62357
+Node: Outer level\7f63710
+Node: Request level\7f69235
+Node: Task level\7f79727
+Node: Charset level\7f90170
+Node: Errors\7f91007
+Ref: Errors-Footnote-1\7f95856
+Ref: Errors-Footnote-2\7f95970
+Node: Universal\7f96331
+Ref: Universal-Footnote-1\7f99458
+Ref: Universal-Footnote-2\7f99526
+Node: UCS-2\7f99739
+Node: UCS-4\7f102268
+Node: UTF-7\7f102805
+Node: UTF-8\7f103397
+Node: UTF-16\7f107699
+Node: count-characters\7f108844
+Node: dump-with-names\7f109512
+Node: libiconv\7f112065
+Node: Tabular\7f123644
+Node: ASCII misc\7f145909
+Node: ASCII\7f146271
+Node: ISO 8859\7f147087
+Node: ASCII-BS\7f149381
+Node: flat\7f151215
+Node: IBM and MS\7f151883
+Node: EBCDIC\7f152455
+Node: IBM-PC\7f154564
+Ref: IBM-PC-Footnote-1\7f156681
+Node: Icon-QNX\7f156839
+Node: CDC\7f157261
+Node: Display Code\7f158962
+Ref: Display Code-Footnote-1\7f161244
+Node: CDC-NOS\7f161449
+Node: Bang-Bang\7f163406
+Node: Micros\7f165330
+Node: Apple-Mac\7f165712
+Node: AtariST\7f167760
+Node: Miscellaneous\7f168743
+Node: HTML\7f169477
+Node: LaTeX\7f175496
+Node: Texinfo\7f176265
+Node: Vietnamese\7f177038
+Node: African\7f178011
+Node: Others\7f179360
+Node: Texte\7f180811
+Ref: Texte-Footnote-1\7f185359
+Ref: Texte-Footnote-2\7f185439
+Ref: Texte-Footnote-3\7f185914
+Node: Mule\7f186011
+Ref: Mule-Footnote-1\7f187791
+Node: Surfaces\7f188310
+Ref: Surfaces-Footnote-1\7f191295
+Node: Permutations\7f191401
+Node: End lines\7f192239
+Node: MIME\7f194439
+Node: Dump\7f195623
+Node: Test\7f199810
+Node: Internals\7f202284
+Node: Main flow\7f203520
+Node: New charsets\7f206633
+Node: New surfaces\7f211168
+Node: Design\7f211889
+Ref: Design-Footnote-1\7f221103
+Node: Concept Index\7f221207
+Node: Option Index\7f231664
+Node: Library Index\7f233745
+Node: Charset and Surface Index\7f237172
 \1f
 End Tag Table
index bd466df332bd978efbaf62f32eccaef89e48fed2..6fd215d7fd92cd205f3706d8a0b15c30aa8167c3 100644 (file)
@@ -39,7 +39,7 @@ sets and is able to convert files between almost any pair.  Most
 RFC 1345 character sets, and all `libiconv' character sets, are
 supported.  The `recode' program is a handy front-end to the library.
 
-   The current `recode' release is 3.5d.
+   The current `recode' release is 3.6.
 
 * Menu:
 
@@ -314,10 +314,12 @@ when the blocking information is added as binary markers or counters
 within files.  So, `recode' should be given textual streams which are
 rather _pure_.
 
-   This tool pays special attention to superimposition of diacritics
-for some French representations.  This orientation is mostly
-historical, it does not impair the usefulness, generality or
-extensibility of the program.
+   This tool pays special attention to superimposition of diacritics for
+some French representations.  This orientation is mostly historical, it
+does not impair the usefulness, generality or extensibility of the
+program.  `recode' is both a French and English word.  For those who
+pay attention to those things, the proper pronunciation is French (that
+is, `racud', with `a' like in `above', and `u' like in `cut').
 
    The program `recode' has been written by Franc,ois Pinard.  With
 time, it got to reuse works from other contributors, and notably, those
@@ -649,11 +651,10 @@ BEFORE charset.(2)
 
    When a charset name is omitted or left empty, the value of the
 `DEFAULT_CHARSET' variable in the environment is used instead.  If this
-variable is not defined, the `recode' library uses the "usual charset"
-which is installation dependent.  When this variable is defined but has
-an empty value, charset names may not be omitted.  Unless overriden
-when `recode' was installed, the usual charset is `Latin-1' for Unix
-systems or `IBM-PC' for MS-DOS/MS-Windows machines.
+variable is not defined, the `recode' library uses the current locale's
+encoding. On POSIX compliant systems, this depends on the first
+non-empty value among the environment variables LC_ALL, LC_CTYPE, LANG,
+and can be determined through the command `locale charmap'.
 
    If the charset name is omitted but followed by surfaces, the surfaces
 then qualify the usual or default charset.  For example, the request
@@ -736,12 +737,12 @@ are:
      charset, using as hints some already identified characters of the
      charset.  Some examples will help introducing the idea.
 
-     Let's presume here that `recode' is run on Unix, where Latin-1 is
-     the usual charset, and that `DEFAULT_CHARSET' is unset in the
-     environment.  Suppose you have guessed that code 130 (decimal) of
-     the unknown charset represents a lower case `e' with an acute
-     accent.  That is to say that this code should map to code 233
-     (decimal) in the usual charset.  By executing:
+     Let's presume here that `recode' is run in an ISO-8859-1 locale,
+     and that `DEFAULT_CHARSET' is unset in the environment.  Suppose
+     you have guessed that code 130 (decimal) of the unknown charset
+     represents a lower case `e' with an acute accent.  That is to say
+     that this code should map to code 233 (decimal) in the usual
+     charset.  By executing:
 
           recode -k 130:233
 
@@ -972,182 +973,3 @@ grain control over the recoding operation themselves.
 
      CHARSET may be abbreviated to any unambiguous prefix.
 
-\1f
-File: recode.info,  Node: Reversibility,  Next: Sequencing,  Prev: Recoding,  Up: Invoking recode
-
-Reversibility issues
-====================
-
-   The following options are somewhat related to reversibility issues:
-
-`-f'
-`--force'
-     With this option, irreversible or otherwise erroneous recodings
-     are run to completion, and `recode' does not exit with a non-zero
-     status if it would be only because irreversibility matters.  *Note
-     Reversibility::.
-
-     Without this option, `recode' tries to protect you against recoding
-     a file irreversibly over itself(1).  Whenever an irreversible
-     recoding is met, or any other recoding error, `recode' produces a
-     warning on standard error.  The current input file does not get
-     replaced by its recoded version, and `recode' then proceeds with
-     the recoding of the next file.
-
-     When the program is merely used as a filter, standard output will
-     have received a partially recoded copy of standard input, up to
-     the first error point.  After all recodings have been done or
-     attempted, and if some recoding has been aborted, `recode' exits
-     with a non-zero status.
-
-     In releases of `recode' prior to version 3.5, this option was
-     always selected, so it was rather meaningless.  Nevertheless,
-     users were invited to start using `-f' right away in scripts
-     calling `recode' whenever convenient, in preparation for the
-     current behaviour.
-
-`-q'
-`--quiet'
-`--silent'
-     This option has the sole purpose of inhibiting warning messages
-     about irreversible recodings, and other such diagnostics.  It has
-     no other effect, in particular, it does _not_ prevent recodings to
-     be aborted or `recode' to return a non-zero exit status when
-     irreversible recodings are met.
-
-     This option is set automatically for the children processes, when
-     recode splits itself in many collaborating copies.  Doing so, the
-     diagnostic is issued only once by the parent.  See option `-p'.
-
-`-s'
-`--strict'
-     By using this option, the user requests that `recode' be very
-     strict while recoding a file, merely losing in the transformation
-     any character which is not explicitly mapped from a charset to
-     another.  Such a loss is not reversible and so, will bring
-     `recode' to fail, unless the option `-f' is also given as a kind
-     of counter-measure.
-
-     Using `-s' without `-f' might render the `recode' program very
-     susceptible to the slighest file abnormalities.  Despite the fact
-     that it might be irritating to some users, such paranoia is
-     sometimes wanted and useful.
-
-   Even if `recode' tries hard to keep the recodings reversible, you
-should not develop an unconditional confidence in its ability to do so.
-You _ought_ to keep only reasonable expectations about reverse
-recodings.  In particular, consider:
-
-   * Most transformations are fully reversible for all inputs, but lose
-     this property whenever `-s' is specified.
-
-   * A few transformations are not meant to be reversible, by design.
-
-   * Reversibility sometimes depends on actual file contents and cannot
-     be ascertained beforehand, without reading the file.
-
-   * Reversibility is never absolute across successive versions of this
-     program.  Even correcting a small bug in a mapping could induce
-     slight discrepancies later.
-
-   * Reversibility is easily lost by merging.  This is best explained
-     through an example.  If you reversibly recode a file from charset
-     A to charset B, then you reversibly recode the result from charset
-     B to charset C, you cannot expect to recover the original file by
-     merely recoding from charset C directly to charset A.  You will
-     instead have to recode from charset C back to charset B, and only
-     then from charset B to charset A.
-
-   * Faulty files create a particular problem.  Consider an example,
-     recoding from `IBM-PC' to `Latin-1'.  End of lines are represented
-     as `\r\n' in `IBM-PC' and as `\n' in `Latin-1'.  There is no way
-     by which a faulty `IBM-PC' file containing a `\n' not preceded by
-     `\r' be translated into a `Latin-1' file, and then back.
-
-   * There is another difficulty arising from code equivalences.  For
-     example, in a `LaTeX' charset file, the string `\^\i{}' could be
-     recoded back and forth through another charset and become
-     `\^{\i}'.  Even if the resulting file is equivalent to the
-     original one, it is not identical.
-
-   Unless option `-s' is used, `recode' automatically tries to fill
-mappings with invented correspondences, often making them fully
-reversible.  This filling is not made at random.  The algorithm tries to
-stick to the identity mapping and, when this is not possible, it prefers
-generating many small permutation cycles, each involving only a few
-codes.
-
-   For example, here is how `IBM-PC' code 186 gets translated to
-`control-U' in `Latin-1'.  `Control-U' is 21.  Code 21 is the `IBM-PC'
-section sign, which is 167 in `Latin-1'.  `recode' cannot reciprocate
-167 to 21, because 167 is the masculine ordinal indicator within
-`IBM-PC', which is 186 in `Latin-1'.  Code 186 within `IBM-PC' has no
-`Latin-1' equivalent; by assigning it back to 21, `recode' closes this
-short permutation loop.
-
-   As a consequence of this map filling, `recode' may sometimes produce
-_funny_ characters.  They may look annoying, they are nevertheless
-helpful when one changes his (her) mind and wants to revert to the prior
-recoding.  If you cannot stand these, use option `-s', which asks for a
-very strict recoding.
-
-   This map filling sometimes has a few surprising consequences, which
-some users wrongly interpreted as bugs.  Here are two examples.
-
-  1. In some cases, `recode' seems to copy a file without recoding it.
-     But in fact, it does.  Consider a request:
-
-          recode l1..us < File-Latin1 > File-ASCII
-          cmp File-Latin1 File-ASCII
-
-     then `cmp' will not report any difference.  This is quite normal.
-     `Latin-1' gets correctly recoded to ASCII for charsets
-     commonalities (which are the first 128 characters, in this case).
-     The remaining last 128 `Latin-1' characters have no ASCII
-     correspondent.  Instead of losing them, `recode' elects to map
-     them to unspecified characters of ASCII, so making the recoding
-     reversible.  The simplest way of achieving this is merely to keep
-     those last 128 characters unchanged.  The overall effect is
-     copying the file verbatim.
-
-     If you feel this behaviour is too generous and if you do not wish
-     to care about reversibility, simply use option `-s'.  By doing so,
-     `recode' will strictly map only those `Latin-1' characters which
-     have an ASCII equivalent, and will merely drop those which do not.
-     Then, there is more chance that you will observe a difference
-     between the input and the output file.
-
-  2. Recoding the wrong way could sometimes give the false impression
-     that recoding has _almost_ been done properly.  Consider the
-     requests:
-
-          recode 437..l1 < File-Latin1 > Temp1
-          recode 437..l1 < Temp1 > Temp2
-
-     so declaring wrongly `File-Latin1' to be an IBM-PC file, and
-     recoding to `Latin-1'.  This is surely ill defined and not
-     meaningful.  Yet, if you repeat this step a second time, you might
-     notice that many (not all) characters in `Temp2' are identical to
-     those in `File-Latin1'.  Sometimes, people try to discover how
-     `recode' works by experimenting a little at random, rather than
-     reading and understanding the documentation; results such as this
-     are surely confusing, as they provide those people with a false
-     feeling that they understood something.
-
-     Reversible codings have this property that, if applied several
-     times in the same direction, they will eventually bring any
-     character back to its original value.  Since `recode' seeks small
-     permutation cycles when creating reversible codings, besides
-     characters unchanged by the recoding, most permutation cycles will
-     be of length 2, and fewer of length 3, etc.  So, it is just
-     expectable that applying the recoding twice in the same direction
-     will recover most characters, but will fail to recover those
-     participating in permutation cycles of length 3.  On the other
-     end, recoding six times in the same direction would recover all
-     characters in cycles of length 1, 2, 3 or 6.
-
-   ---------- Footnotes ----------
-
-   (1) There are still some cases of ambiguous output which are rather
-difficult to detect, and for which the protection is not active.
-
index cdeb8597e2f78af20a7e38269d1c5c0a05568a62..a28865a1832e9f28c03a148ea2769620776c0294 100644 (file)
@@ -25,6 +25,185 @@ manual into another language, under the above conditions for modified
 versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
+\1f
+File: recode.info,  Node: Reversibility,  Next: Sequencing,  Prev: Recoding,  Up: Invoking recode
+
+Reversibility issues
+====================
+
+   The following options are somewhat related to reversibility issues:
+
+`-f'
+`--force'
+     With this option, irreversible or otherwise erroneous recodings
+     are run to completion, and `recode' does not exit with a non-zero
+     status if it would be only because irreversibility matters.  *Note
+     Reversibility::.
+
+     Without this option, `recode' tries to protect you against recoding
+     a file irreversibly over itself(1).  Whenever an irreversible
+     recoding is met, or any other recoding error, `recode' produces a
+     warning on standard error.  The current input file does not get
+     replaced by its recoded version, and `recode' then proceeds with
+     the recoding of the next file.
+
+     When the program is merely used as a filter, standard output will
+     have received a partially recoded copy of standard input, up to
+     the first error point.  After all recodings have been done or
+     attempted, and if some recoding has been aborted, `recode' exits
+     with a non-zero status.
+
+     In releases of `recode' prior to version 3.5, this option was
+     always selected, so it was rather meaningless.  Nevertheless,
+     users were invited to start using `-f' right away in scripts
+     calling `recode' whenever convenient, in preparation for the
+     current behaviour.
+
+`-q'
+`--quiet'
+`--silent'
+     This option has the sole purpose of inhibiting warning messages
+     about irreversible recodings, and other such diagnostics.  It has
+     no other effect, in particular, it does _not_ prevent recodings to
+     be aborted or `recode' to return a non-zero exit status when
+     irreversible recodings are met.
+
+     This option is set automatically for the children processes, when
+     recode splits itself in many collaborating copies.  Doing so, the
+     diagnostic is issued only once by the parent.  See option `-p'.
+
+`-s'
+`--strict'
+     By using this option, the user requests that `recode' be very
+     strict while recoding a file, merely losing in the transformation
+     any character which is not explicitly mapped from a charset to
+     another.  Such a loss is not reversible and so, will bring
+     `recode' to fail, unless the option `-f' is also given as a kind
+     of counter-measure.
+
+     Using `-s' without `-f' might render the `recode' program very
+     susceptible to the slighest file abnormalities.  Despite the fact
+     that it might be irritating to some users, such paranoia is
+     sometimes wanted and useful.
+
+   Even if `recode' tries hard to keep the recodings reversible, you
+should not develop an unconditional confidence in its ability to do so.
+You _ought_ to keep only reasonable expectations about reverse
+recodings.  In particular, consider:
+
+   * Most transformations are fully reversible for all inputs, but lose
+     this property whenever `-s' is specified.
+
+   * A few transformations are not meant to be reversible, by design.
+
+   * Reversibility sometimes depends on actual file contents and cannot
+     be ascertained beforehand, without reading the file.
+
+   * Reversibility is never absolute across successive versions of this
+     program.  Even correcting a small bug in a mapping could induce
+     slight discrepancies later.
+
+   * Reversibility is easily lost by merging.  This is best explained
+     through an example.  If you reversibly recode a file from charset
+     A to charset B, then you reversibly recode the result from charset
+     B to charset C, you cannot expect to recover the original file by
+     merely recoding from charset C directly to charset A.  You will
+     instead have to recode from charset C back to charset B, and only
+     then from charset B to charset A.
+
+   * Faulty files create a particular problem.  Consider an example,
+     recoding from `IBM-PC' to `Latin-1'.  End of lines are represented
+     as `\r\n' in `IBM-PC' and as `\n' in `Latin-1'.  There is no way
+     by which a faulty `IBM-PC' file containing a `\n' not preceded by
+     `\r' be translated into a `Latin-1' file, and then back.
+
+   * There is another difficulty arising from code equivalences.  For
+     example, in a `LaTeX' charset file, the string `\^\i{}' could be
+     recoded back and forth through another charset and become
+     `\^{\i}'.  Even if the resulting file is equivalent to the
+     original one, it is not identical.
+
+   Unless option `-s' is used, `recode' automatically tries to fill
+mappings with invented correspondences, often making them fully
+reversible.  This filling is not made at random.  The algorithm tries to
+stick to the identity mapping and, when this is not possible, it prefers
+generating many small permutation cycles, each involving only a few
+codes.
+
+   For example, here is how `IBM-PC' code 186 gets translated to
+`control-U' in `Latin-1'.  `Control-U' is 21.  Code 21 is the `IBM-PC'
+section sign, which is 167 in `Latin-1'.  `recode' cannot reciprocate
+167 to 21, because 167 is the masculine ordinal indicator within
+`IBM-PC', which is 186 in `Latin-1'.  Code 186 within `IBM-PC' has no
+`Latin-1' equivalent; by assigning it back to 21, `recode' closes this
+short permutation loop.
+
+   As a consequence of this map filling, `recode' may sometimes produce
+_funny_ characters.  They may look annoying, they are nevertheless
+helpful when one changes his (her) mind and wants to revert to the prior
+recoding.  If you cannot stand these, use option `-s', which asks for a
+very strict recoding.
+
+   This map filling sometimes has a few surprising consequences, which
+some users wrongly interpreted as bugs.  Here are two examples.
+
+  1. In some cases, `recode' seems to copy a file without recoding it.
+     But in fact, it does.  Consider a request:
+
+          recode l1..us < File-Latin1 > File-ASCII
+          cmp File-Latin1 File-ASCII
+
+     then `cmp' will not report any difference.  This is quite normal.
+     `Latin-1' gets correctly recoded to ASCII for charsets
+     commonalities (which are the first 128 characters, in this case).
+     The remaining last 128 `Latin-1' characters have no ASCII
+     correspondent.  Instead of losing them, `recode' elects to map
+     them to unspecified characters of ASCII, so making the recoding
+     reversible.  The simplest way of achieving this is merely to keep
+     those last 128 characters unchanged.  The overall effect is
+     copying the file verbatim.
+
+     If you feel this behaviour is too generous and if you do not wish
+     to care about reversibility, simply use option `-s'.  By doing so,
+     `recode' will strictly map only those `Latin-1' characters which
+     have an ASCII equivalent, and will merely drop those which do not.
+     Then, there is more chance that you will observe a difference
+     between the input and the output file.
+
+  2. Recoding the wrong way could sometimes give the false impression
+     that recoding has _almost_ been done properly.  Consider the
+     requests:
+
+          recode 437..l1 < File-Latin1 > Temp1
+          recode 437..l1 < Temp1 > Temp2
+
+     so declaring wrongly `File-Latin1' to be an IBM-PC file, and
+     recoding to `Latin-1'.  This is surely ill defined and not
+     meaningful.  Yet, if you repeat this step a second time, you might
+     notice that many (not all) characters in `Temp2' are identical to
+     those in `File-Latin1'.  Sometimes, people try to discover how
+     `recode' works by experimenting a little at random, rather than
+     reading and understanding the documentation; results such as this
+     are surely confusing, as they provide those people with a false
+     feeling that they understood something.
+
+     Reversible codings have this property that, if applied several
+     times in the same direction, they will eventually bring any
+     character back to its original value.  Since `recode' seeks small
+     permutation cycles when creating reversible codings, besides
+     characters unchanged by the recoding, most permutation cycles will
+     be of length 2, and fewer of length 3, etc.  So, it is just
+     expectable that applying the recoding twice in the same direction
+     will recover most characters, but will fail to recover those
+     participating in permutation cycles of length 3.  On the other
+     end, recoding six times in the same direction would recover all
+     characters in cycles of length 1, 2, 3 or 6.
+
+   ---------- Footnotes ----------
+
+   (1) There are still some cases of ambiguous output which are rather
+difficult to detect, and for which the protection is not active.
+
 \1f
 File: recode.info,  Node: Sequencing,  Next: Mixed,  Prev: Reversibility,  Up: Invoking recode
 
@@ -922,191 +1101,3 @@ names and contents.
      bool list_concise_charset (CHARSET, LIST-FORMAT);
      bool list_full_charset (CHARSET);
 
-\1f
-File: recode.info,  Node: Errors,  Prev: Charset level,  Up: Library
-
-Handling errors
-===============
-
-   The `recode' program, while using the `recode' library, needs to
-control whether recoding problems are reported or not, and then reflect
-these in the exit status.  The program should also instruct the library
-whether the recoding should be abruptly interrupted when an error is
-met (so sparing processing when it is known in advance that a wrong
-result would be discarded anyway), or if it should proceed nevertheless.
-Here is how the library groups errors into levels, listed here in order
-of increasing severity.
-
-`RECODE_NO_ERROR'
-     No error was met on previous library calls.
-
-`RECODE_NOT_CANONICAL'
-     The input text was using one of the many alternative codings for
-     some phenomenon, but not the one `recode' would have canonically
-     generated.  So, if the reverse recoding is later attempted, it
-     would produce a text having the same _meaning_ as the original
-     text, yet not being byte identical.
-
-     For example, a `Base64' block in which end-of-lines appear
-     elsewhere that at every 76 characters is not canonical.  An
-     e-circumflex in TeX which is coded as `\^{e}' instead of `\^e' is
-     not canonical.
-
-`RECODE_AMBIGUOUS_OUTPUT'
-     It has been discovered that if the reverse recoding was attempted
-     on the text output by this recoding, we would not obtain the
-     original text, only because an ambiguity was generated by accident
-     in the output text.  This ambiguity would then cause the wrong
-     interpretation to be taken.
-
-     Here are a few examples.  If the `Latin-1' sequence `e^' is
-     converted to Easy French and back, the result will be interpreted
-     as e-circumflex and so, will not reflect the intent of the
-     original two characters.  Recoding an `IBM-PC' text to `Latin-1'
-     and back, where the input text contained an isolated `LF', will
-     have a spurious `CR' inserted before the `LF'.
-
-     Currently, there are many cases in the library where the
-     production of ambiguous output is not properly detected, as it is
-     sometimes a difficult problem to accomplish this detection, or to
-     do it speedily.
-
-`RECODE_UNTRANSLATABLE'
-     One or more input character could not be recoded, because there is
-     just no representation for this character in the output charset.
-
-     Here are a few examples.  Non-strict mode often allows `recode' to
-     compute on-the-fly mappings for unrepresentable characters, but
-     strict mode prohibits such attribution of reversible translations:
-     so strict mode might often trigger such an error.  Most `UCS-2'
-     codes used to represent Asian characters cannot be expressed in
-     various Latin charsets.
-
-`RECODE_INVALID_INPUT'
-     The input text does not comply with the coding it is declared to
-     hold.  So, there is no way by which a reverse recoding would
-     reproduce this text, because `recode' should never produce invalid
-     output.
-
-     Here are a few examples.  In strict mode, `ASCII' text is not
-     allowed to contain characters with the eight bit set.  `UTF-8'
-     encodings ought to be minimal(1).
-
-`RECODE_SYSTEM_ERROR'
-     The underlying system reported an error while the recoding was
-     going on, likely an input/output error.  (This error symbol is
-     currently unused in the library.)
-
-`RECODE_USER_ERROR'
-     The programmer or user requested something the recoding library is
-     unable to provide, or used the API wrongly.  (This error symbol is
-     currently unused in the library.)
-
-`RECODE_INTERNAL_ERROR'
-     Something really wrong, which should normally never happen, was
-     detected within the recoding library.  This might be due to
-     genuine bugs in the library, or maybe due to un-initialised or
-     overwritten arguments to the API.  (This error symbol is currently
-     unused in the library.)
-
-`RECODE_MAXIMUM_ERROR'
-     This error code should never be returned, it is only internally
-     used as a sentinel for the list of all possible error codes.
-
-   One should be able to set the error level threshold for returning
-failure at end of recoding, and also the threshold for immediate
-interruption.  If many errors occur while the recoding proceed, which
-are not severe enough to interrupt the recoding, then the most severe
-error is retained, while others are forgotten(2).  So, in case of an
-error, the possible actions currently are:
-
-   * do nothing and let go, returning success at end of recoding,
-
-   * just let go for now, but return failure at end of recoding,
-
-   * interrupt recoding right away and return failure now.
-
-*Note Task level::, and particularly the description of the fields
-`fail_level', `abort_level' and `error_so_far', for more information
-about how errors are handled.
-
-   ---------- Footnotes ----------
-
-   (1) The minimality of an `UTF-8' encoding is guaranteed on output,
-but currently, it is not checked on input.
-
-   (2) Another approach would have been to define the level symbols as
-masks instead, and to give masks to threshold setting routines, and to
-retain all errors--yet I never met myself such a need in practice, and
-so I fear it would be overkill.  On the other hand, it might be
-interesting to maintain counters about how many times each kind of
-error occurred.
-
-\1f
-File: recode.info,  Node: Universal,  Next: libiconv,  Prev: Library,  Up: Top
-
-The universal charset
-*********************
-
-   Standard ISO 10646 defines a universal character set, intended to
-encompass in the long run all languages written on this planet.  It is
-based on wide characters, and offer possibilities for two billion
-characters (2^31).
-
-   This charset was to become available in `recode' under the name
-`UCS', with many external surfaces for it.  But in the current version,
-only surfaces of `UCS' are offered, each presented as a genuine charset
-rather than a surface.  Such surfaces are only meaningful for the `UCS'
-charset, so it is not that useful to draw a line between the surfaces
-and the only charset to which they may apply.
-
-   `UCS' stands for Universal Character Set.  `UCS-2' and `UCS-4' are
-fixed length encodings, using two or four bytes per character
-respectively.  `UTF' stands for `UCS' Transformation Format, and are
-variable length encodings dedicated to `UCS'.  `UTF-1' was based on
-ISO 2022, it did not succeed(1).  `UTF-2' replaced it, it has been
-called `UTF-FSS' (File System Safe) in Unicode or Plan9 context, but is
-better known today as `UTF-8'.  To complete the picture, there is
-`UTF-16' based on 16 bits bytes, and `UTF-7' which is meant for
-transmissions limited to 7-bit bytes.  Most often, one might see
-`UTF-8' used for external storage, and `UCS-2' used for internal
-storage.
-
-   When `recode' is producing any representation of `UCS', it uses the
-replacement character `U+FFFD' for any _valid_ character which is not
-representable in the goal charset(2).  This happens, for example, when
-`UCS-2' is not capable to echo a wide `UCS-4' character, or for a
-similar reason, an `UTF-8' sequence using more than three bytes.  The
-replacement character is meant to represent an existing character.  So,
-it is never produced to represent an invalid sequence or ill-formed
-character in the input text.  In such cases, `recode' just gets rid of
-the noise, while taking note of the error in its usual ways.
-
-   Even if `UTF-8' is an encoding, really, it is the encoding of a
-single character set, and nothing else.  It is useful to distinguish
-between an encoding (a _surface_ within `recode') and a charset, but
-only when the surface may be applied to several charsets.  Specifying a
-charset is a bit simpler than specifying a surface in a `recode'
-request.  There would not be a practical advantage at imposing a more
-complex syntax to `recode' users, when it is simple to assimilate
-`UTF-8' to a charset.  Similar considerations apply for `UCS-2',
-`UCS-4', `UTF-16' and `UTF-7'.  These are all considered to be charsets.
-
-* Menu:
-
-* UCS-2::               Universal Character Set, 2 bytes
-* UCS-4::               Universal Character Set, 4 bytes
-* UTF-7::               Universal Transformation Format, 7 bits
-* UTF-8::               Universal Transformation Format, 8 bits
-* UTF-16::              Universal Transformation Format, 16 bits
-* count-characters::    Frequency count of characters
-* dump-with-names::     Fully interpreted UCS dump
-
-   ---------- Footnotes ----------
-
-   (1) It is not probable that `recode' will ever support `UTF-1'.
-
-   (2) This is when the goal charset allows for 16-bits.  For shorter
-charsets, the `--strict' (`-s') option decides what happens: either the
-character is dropped, or a reversible mapping is produced on the fly.
-
index 1742768ab21fe20129b51b5e79dccd3afe0ecdf7..2407c4433ebf303364e458f8ddad33b0322912f5 100644 (file)
@@ -25,6 +25,194 @@ manual into another language, under the above conditions for modified
 versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
+\1f
+File: recode.info,  Node: Errors,  Prev: Charset level,  Up: Library
+
+Handling errors
+===============
+
+   The `recode' program, while using the `recode' library, needs to
+control whether recoding problems are reported or not, and then reflect
+these in the exit status.  The program should also instruct the library
+whether the recoding should be abruptly interrupted when an error is
+met (so sparing processing when it is known in advance that a wrong
+result would be discarded anyway), or if it should proceed nevertheless.
+Here is how the library groups errors into levels, listed here in order
+of increasing severity.
+
+`RECODE_NO_ERROR'
+     No error was met on previous library calls.
+
+`RECODE_NOT_CANONICAL'
+     The input text was using one of the many alternative codings for
+     some phenomenon, but not the one `recode' would have canonically
+     generated.  So, if the reverse recoding is later attempted, it
+     would produce a text having the same _meaning_ as the original
+     text, yet not being byte identical.
+
+     For example, a `Base64' block in which end-of-lines appear
+     elsewhere that at every 76 characters is not canonical.  An
+     e-circumflex in TeX which is coded as `\^{e}' instead of `\^e' is
+     not canonical.
+
+`RECODE_AMBIGUOUS_OUTPUT'
+     It has been discovered that if the reverse recoding was attempted
+     on the text output by this recoding, we would not obtain the
+     original text, only because an ambiguity was generated by accident
+     in the output text.  This ambiguity would then cause the wrong
+     interpretation to be taken.
+
+     Here are a few examples.  If the `Latin-1' sequence `e^' is
+     converted to Easy French and back, the result will be interpreted
+     as e-circumflex and so, will not reflect the intent of the
+     original two characters.  Recoding an `IBM-PC' text to `Latin-1'
+     and back, where the input text contained an isolated `LF', will
+     have a spurious `CR' inserted before the `LF'.
+
+     Currently, there are many cases in the library where the
+     production of ambiguous output is not properly detected, as it is
+     sometimes a difficult problem to accomplish this detection, or to
+     do it speedily.
+
+`RECODE_UNTRANSLATABLE'
+     One or more input character could not be recoded, because there is
+     just no representation for this character in the output charset.
+
+     Here are a few examples.  Non-strict mode often allows `recode' to
+     compute on-the-fly mappings for unrepresentable characters, but
+     strict mode prohibits such attribution of reversible translations:
+     so strict mode might often trigger such an error.  Most `UCS-2'
+     codes used to represent Asian characters cannot be expressed in
+     various Latin charsets.
+
+`RECODE_INVALID_INPUT'
+     The input text does not comply with the coding it is declared to
+     hold.  So, there is no way by which a reverse recoding would
+     reproduce this text, because `recode' should never produce invalid
+     output.
+
+     Here are a few examples.  In strict mode, `ASCII' text is not
+     allowed to contain characters with the eight bit set.  `UTF-8'
+     encodings ought to be minimal(1).
+
+`RECODE_SYSTEM_ERROR'
+     The underlying system reported an error while the recoding was
+     going on, likely an input/output error.  (This error symbol is
+     currently unused in the library.)
+
+`RECODE_USER_ERROR'
+     The programmer or user requested something the recoding library is
+     unable to provide, or used the API wrongly.  (This error symbol is
+     currently unused in the library.)
+
+`RECODE_INTERNAL_ERROR'
+     Something really wrong, which should normally never happen, was
+     detected within the recoding library.  This might be due to
+     genuine bugs in the library, or maybe due to un-initialised or
+     overwritten arguments to the API.  (This error symbol is currently
+     unused in the library.)
+
+`RECODE_MAXIMUM_ERROR'
+     This error code should never be returned, it is only internally
+     used as a sentinel for the list of all possible error codes.
+
+   One should be able to set the error level threshold for returning
+failure at end of recoding, and also the threshold for immediate
+interruption.  If many errors occur while the recoding proceed, which
+are not severe enough to interrupt the recoding, then the most severe
+error is retained, while others are forgotten(2).  So, in case of an
+error, the possible actions currently are:
+
+   * do nothing and let go, returning success at end of recoding,
+
+   * just let go for now, but return failure at end of recoding,
+
+   * interrupt recoding right away and return failure now.
+
+*Note Task level::, and particularly the description of the fields
+`fail_level', `abort_level' and `error_so_far', for more information
+about how errors are handled.
+
+   ---------- Footnotes ----------
+
+   (1) The minimality of an `UTF-8' encoding is guaranteed on output,
+but currently, it is not checked on input.
+
+   (2) Another approach would have been to define the level symbols as
+masks instead, and to give masks to threshold setting routines, and to
+retain all errors--yet I never met myself such a need in practice, and
+so I fear it would be overkill.  On the other hand, it might be
+interesting to maintain counters about how many times each kind of
+error occurred.
+
+\1f
+File: recode.info,  Node: Universal,  Next: libiconv,  Prev: Library,  Up: Top
+
+The universal charset
+*********************
+
+   Standard ISO 10646 defines a universal character set, intended to
+encompass in the long run all languages written on this planet.  It is
+based on wide characters, and offer possibilities for two billion
+characters (2^31).
+
+   This charset was to become available in `recode' under the name
+`UCS', with many external surfaces for it.  But in the current version,
+only surfaces of `UCS' are offered, each presented as a genuine charset
+rather than a surface.  Such surfaces are only meaningful for the `UCS'
+charset, so it is not that useful to draw a line between the surfaces
+and the only charset to which they may apply.
+
+   `UCS' stands for Universal Character Set.  `UCS-2' and `UCS-4' are
+fixed length encodings, using two or four bytes per character
+respectively.  `UTF' stands for `UCS' Transformation Format, and are
+variable length encodings dedicated to `UCS'.  `UTF-1' was based on
+ISO 2022, it did not succeed(1).  `UTF-2' replaced it, it has been
+called `UTF-FSS' (File System Safe) in Unicode or Plan9 context, but is
+better known today as `UTF-8'.  To complete the picture, there is
+`UTF-16' based on 16 bits bytes, and `UTF-7' which is meant for
+transmissions limited to 7-bit bytes.  Most often, one might see
+`UTF-8' used for external storage, and `UCS-2' used for internal
+storage.
+
+   When `recode' is producing any representation of `UCS', it uses the
+replacement character `U+FFFD' for any _valid_ character which is not
+representable in the goal charset(2).  This happens, for example, when
+`UCS-2' is not capable to echo a wide `UCS-4' character, or for a
+similar reason, an `UTF-8' sequence using more than three bytes.  The
+replacement character is meant to represent an existing character.  So,
+it is never produced to represent an invalid sequence or ill-formed
+character in the input text.  In such cases, `recode' just gets rid of
+the noise, while taking note of the error in its usual ways.
+
+   Even if `UTF-8' is an encoding, really, it is the encoding of a
+single character set, and nothing else.  It is useful to distinguish
+between an encoding (a _surface_ within `recode') and a charset, but
+only when the surface may be applied to several charsets.  Specifying a
+charset is a bit simpler than specifying a surface in a `recode'
+request.  There would not be a practical advantage at imposing a more
+complex syntax to `recode' users, when it is simple to assimilate
+`UTF-8' to a charset.  Similar considerations apply for `UCS-2',
+`UCS-4', `UTF-16' and `UTF-7'.  These are all considered to be charsets.
+
+* Menu:
+
+* UCS-2::               Universal Character Set, 2 bytes
+* UCS-4::               Universal Character Set, 4 bytes
+* UTF-7::               Universal Transformation Format, 7 bits
+* UTF-8::               Universal Transformation Format, 8 bits
+* UTF-16::              Universal Transformation Format, 16 bits
+* count-characters::    Frequency count of characters
+* dump-with-names::     Fully interpreted UCS dump
+
+   ---------- Footnotes ----------
+
+   (1) It is not probable that `recode' will ever support `UTF-1'.
+
+   (2) This is when the goal charset allows for 16-bits.  For shorter
+charsets, the `--strict' (`-s') option decides what happens: either the
+character is dropped, or a reversible mapping is produced on the fly.
+
 \1f
 File: recode.info,  Node: UCS-2,  Next: UCS-4,  Prev: Universal,  Up: Universal
 
@@ -639,6 +827,8 @@ for what is the genuine charset name.
     `GBK'
           `CP936' is an alias for this charset.
 
+    `GB18030'
+
     `ISO-2022-CN'
           `csISO2022CN' and `ISO2022CN' are aliases for this charset.
 
@@ -656,6 +846,8 @@ for what is the genuine charset name.
 
     `CP950'
 
+    `BIG5HKSCS'
+
     `EUC-KR'
           `EUCKR', `csEUCKR' and `EUC_KR' are aliases for this charset.
 
@@ -668,787 +860,7 @@ for what is the genuine charset name.
     `ISO-2022-KR'
           `csISO2022KR' and `ISO2022KR' are aliases for this charset.
 
-\1f
-File: recode.info,  Node: Tabular,  Next: ASCII misc,  Prev: libiconv,  Up: Top
-
-Tabular sources (RFC 1345)
-**************************
-
-   An important part of the tabular charset knowledge in `recode' comes
-from RFC 1345 or, alternatively, from the `chset' tools, both
-maintained by Keld Simonsen.  The RFC 1345 document:
-
-     "Character Mnemonics & Character Sets", K. Simonsen, Request for
-     Comments no. 1345, Network Working Group, June 1992.
-
-defines many character mnemonics and character sets.  The `recode'
-library implements most of RFC 1345, however:
-
-   * It does not recognise those charsets which overload character
-     positions: `dk-us' and `us-dk'.  However, *Note Mixed::.
-
-   * It does not recognise those charsets which combine two characters
-     for representing a third: `ANSI_X3.110-1983', `ISO_6937-2-add',
-     `T.101-G2', `T.61-8bit', `iso-ir-90' and `videotex-suppl'.
-
-   * It does not recognise 16-bits charsets: `GB_2312-80',
-     `JIS_C6226-1978', `JIS_C6226-1983', `JIS_X0212-1990' and
-     `KS_C_5601-1987'.
-
-   * It interprets the charset `isoir91' as `NATS-DANO' (alias
-     `iso-ir-9-1'), _not_ as `JIS_C6229-1984-a' (alias `iso-ir-91').
-     It also interprets the charset `isoir92' as `NATS-DANO-ADD' (alias
-     `iso-ir-9-2'), _not_ as `JIS_C6229-1984-b' (alias `iso-ir-92').
-     It might be better just avoiding these two alias names.
-
-   Keld Simonsen <keld@dkuug.dk> did most of RFC 1345 himself, with
-some funding from Danish Standards and Nordic standards (INSTA) project.
-He also did the character set design work, with substantial input from
-Olle Jaernefors.  Keld typed in almost all of the tables, some have been
-contributed.  A number of people have checked the tables in various
-ways.  The RFC lists a number of people who helped.
-
-   Keld and the `recode' maintainer have an arrangement by which any new
-discovered information submitted by `recode' users, about tabular
-charsets, is forwarded to Keld, eventually merged into Keld's work, and
-only then, reimported into `recode'.  Neither the `recode' program nor
-its library try to compete, nor even establish themselves as an
-alternate or diverging reference: RFC 1345 and its new drafts stay the
-genuine source for most tabular information conveyed by `recode'.  Keld
-has been more than collaborative so far, so there is no reason that we
-act otherwise.  In a word, `recode' should be perceived as the
-application of external references, but not as a reference in itself.
-
-   Internally, RFC 1345 associates which each character an unambiguous
-mnemonic of a few characters, taken from ISO 646, which is a minimal
-ASCII subset of 83 characters.  The charset made up by these mnemonics
-is available in `recode' under the name `RFC1345'.  It has `mnemonic'
-and `1345' for aliases.  As implemened, this charset exactly
-corresponds to `mnemonic+ascii+38', using RFC 1345 nomenclature.
-Roughly said, ISO 646 characters represent themselves, except for the
-ampersand (`&') which appears doubled.  A prefix of a single ampersand
-introduces a mnemonic.  For mnemonics using two characters, the prefix
-is immediately by the mnemonic.  For longer mnemonics, the prefix is
-followed by an underline (`_'), the mmemonic, and another underline.
-Conversions to this charset are usually reversible.
-
-   Currently, `recode' does not offer any of the many other possible
-variations of this family of representations.  They will likely be
-implemented in some future version, however.
-
-`ANSI_X3.4-1968'
-     `367', `ANSI_X3.4-1986', `ASCII', `CP367', `IBM367', `ISO646-US',
-     `ISO_646.irv:1991', `US-ASCII', `iso-ir-6' and `us' are aliases
-     for this charset.  Source: ISO 2375 registry.
-
-`ASMO_449'
-     `ISO_9036', `arabic7' and `iso-ir-89' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`BS_4730'
-     `ISO646-GB', `gb', `iso-ir-4' and `uk' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`BS_viewdata'
-     `iso-ir-47' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`CP1250'
-     `1250', `ms-ee' and `windows-1250' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1251'
-     `1251', `ms-cyrl' and `windows-1251' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1252'
-     `1252', `ms-ansi' and `windows-1252' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1253'
-     `1253', `ms-greek' and `windows-1253' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1254'
-     `1254', `ms-turk' and `windows-1254' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1255'
-     `1255', `ms-hebr' and `windows-1255' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1256'
-     `1256', `ms-arab' and `windows-1256' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`CP1257'
-     `1257', `WinBaltRim' and `windows-1257' are aliases for this
-     charset.  Source: CEN/TC304 N283.
-
-`CSA_Z243.4-1985-1'
-     `ISO646-CA', `ca', `csa7-1' and `iso-ir-121' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`CSA_Z243.4-1985-2'
-     `ISO646-CA2', `csa7-2' and `iso-ir-122' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`CSA_Z243.4-1985-gr'
-     `iso-ir-123' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`CSN_369103'
-     `KOI-8_L2', `iso-ir-139' and `koi8l2' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`CWI'
-     `CWI-2' and `cp-hu' are aliases for this charset.  Source:
-     Computerworld Sza'mita'stechnika vol 3 issue 13 1988-06-29.
-
-`DEC-MCS'
-     `dec' is an alias for this charset.  VAX/VMS User's Manual, Order
-     Number: AI-Y517A-TE, April 1986.
-
-`DIN_66003'
-     `ISO646-DE', `de' and `iso-ir-21' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`DS_2089'
-     `DS2089', `ISO646-DK' and `dk' are aliases for this charset.
-     Source: Danish Standard, DS 2089, February 1974.
-
-`EBCDIC-AT-DE'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-AT-DE-A'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-CA-FR'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-DK-NO'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-DK-NO-A'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-ES'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-ES-A'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-ES-S'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-FI-SE'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-FI-SE-A'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-FR'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-IS-FRISS'
-     `friss' is an alias for this charset.  Source: Skyrsuvelar
-     Rikisins og Reykjavikurborgar, feb 1982.
-
-`EBCDIC-IT'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-PT'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-UK'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`EBCDIC-US'
-     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
-
-`ECMA-cyrillic'
-     `ECMA-113', `ECMA-113:1986' and `iso-ir-111' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`ES'
-     `ISO646-ES' and `iso-ir-17' are aliases for this charset.  Source:
-     ISO 2375 registry.
-
-`ES2'
-     `ISO646-ES2' and `iso-ir-85' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`GB_1988-80'
-     `ISO646-CN', `cn' and `iso-ir-57' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`GOST_19768-87'
-     `ST_SEV_358-88' and `iso-ir-153' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`IBM037'
-     `037', `CP037', `ebcdic-cp-ca', `ebcdic-cp-nl', `ebcdic-cp-us' and
-     `ebcdic-cp-wt' are aliases for this charset.  Source: IBM NLS RM
-     Vol2 SE09-8002-01, March 1990.
-
-`IBM038'
-     `038', `CP038' and `EBCDIC-INT' are aliases for this charset.
-     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
-
-`IBM1004'
-     `1004', `CP1004' and `os2latin1' are aliases for this charset.
-     Source: CEN/TC304 N283, 1994-02-04.
-
-`IBM1026'
-     `1026' and `CP1026' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM1047'
-     `1047' and `CP1047' are aliases for this charset.  Source: IBM
-     Character Data Representation Architecture.  Registry SC09-1391-00
-     p 150.
-
-`IBM256'
-     `256', `CP256' and `EBCDIC-INT1' are aliases for this charset.
-     Source: IBM Registry C-H 3-3220-050.
-
-`IBM273'
-     `273' and `CP273' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM274'
-     `274', `CP274' and `EBCDIC-BE' are aliases for this charset.
-     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
-
-`IBM275'
-     `275', `CP275' and `EBCDIC-BR' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM277'
-     `EBCDIC-CP-DK' and `EBCDIC-CP-NO' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM278'
-     `278', `CP278', `ebcdic-cp-fi' and `ebcdic-cp-se' are aliases for
-     this charset.  Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM280'
-     `280', `CP280' and `ebcdic-cp-it' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM281'
-     `281', `CP281' and `EBCDIC-JP-E' are aliases for this charset.
-     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
-
-`IBM284'
-     `284', `CP284' and `ebcdic-cp-es' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM285'
-     `285', `CP285' and `ebcdic-cp-gb' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM290'
-     `290', `CP290' and `EBCDIC-JP-kana' are aliases for this charset.
-     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
-
-`IBM297'
-     `297', `CP297' and `ebcdic-cp-fr' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM420'
-     `420', `CP420' and `ebcdic-cp-ar1' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.  IBM NLS RM p
-     11-11.
-
-`IBM423'
-     `423', `CP423' and `ebcdic-cp-gr' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM424'
-     `424', `CP424' and `ebcdic-cp-he' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM437'
-     `437' and `CP437' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM500'
-     `500', `500V1', `CP500', `ebcdic-cp-be' and `ebcdic-cp-ch' are
-     aliases for this charset.  Source: IBM NLS RM Vol2 SE09-8002-01,
-     March 1990.
-
-`IBM850'
-     `850' and `CP850' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.  Source: UNICODE 1.0.
-
-`IBM851'
-     `851' and `CP851' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM852'
-     `852', `CP852', `pcl2' and `pclatin2' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM855'
-     `855' and `CP855' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM857'
-     `857' and `CP857' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM860'
-     `860' and `CP860' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM861'
-     `861', `CP861' and `cp-is' are aliases for this charset.  Source:
-     IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM862'
-     `862' and `CP862' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM863'
-     `863' and `CP863' are aliases for this charset.  Source: IBM
-     Keyboard layouts and code pages, PN 07G4586 June 1991.
-
-`IBM864'
-     `864' and `CP864' are aliases for this charset.  Source: IBM
-     Keyboard layouts and code pages, PN 07G4586 June 1991.
-
-`IBM865'
-     `865' and `CP865' are aliases for this charset.  Source: IBM DOS
-     3.3 Ref (Abridged), 94X9575 (Feb 1987).
-
-`IBM868'
-     `868', `CP868' and `cp-ar' are aliases for this charset.  Source:
-     IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM869'
-     `869', `CP869' and `cp-gr' are aliases for this charset.  Source:
-     IBM Keyboard layouts and code pages, PN 07G4586 June 1991.
-
-`IBM870'
-     `870', `CP870', `ebcdic-cp-roece' and `ebcdic-cp-yu' are aliases
-     for this charset.  Source: IBM NLS RM Vol2 SE09-8002-01, March
-     1990.
-
-`IBM871'
-     `871', `CP871' and `ebcdic-cp-is' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM875'
-     `875', `CP875' and `EBCDIC-Greek' are aliases for this charset.
-     Source: UNICODE 1.0.
-
-`IBM880'
-     `880', `CP880' and `EBCDIC-Cyrillic' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IBM891'
-     `891' and `CP891' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM903'
-     `903' and `CP903' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM904'
-     `904' and `CP904' are aliases for this charset.  Source: IBM NLS
-     RM Vol2 SE09-8002-01, March 1990.
-
-`IBM905'
-     `905', `CP905' and `ebcdic-cp-tr' are aliases for this charset.
-     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
-
-`IBM918'
-     `918', `CP918' and `ebcdic-cp-ar2' are aliases for this charset.
-     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
-
-`IEC_P27-1'
-     `iso-ir-143' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`INIS'
-     `iso-ir-49' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`INIS-8'
-     `iso-ir-50' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`INIS-cyrillic'
-     `iso-ir-51' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`INVARIANT'
-     `iso-ir-170' is an alias for this charset.
-
-`ISO-8859-1'
-     `819', `CP819', `IBM819', `ISO8859-1', `ISO_8859-1',
-     `ISO_8859-1:1987', `iso-ir-100', `l1' and `latin1' are aliases for
-     this charset.  Source: ISO 2375 registry.
-
-`ISO-8859-10'
-     `ISO8859-10', `ISO_8859-10', `ISO_8859-10:1993', `L6',
-     `iso-ir-157' and `latin6' are aliases for this charset.  Source:
-     ISO 2375 registry.
-
-`ISO-8859-13'
-     `ISO8859-13', `ISO_8859-13', `ISO_8859-13:1998', `iso-baltic',
-     `iso-ir-179a', `l7' and `latin7' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`ISO-8859-14'
-     `ISO8859-14', `ISO_8859-14', `ISO_8859-14:1998', `iso-celtic',
-     `iso-ir-199', `l8' and `latin8' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`ISO-8859-15'
-     `ISO8859-15', `ISO_8859-15', `ISO_8859-15:1998', `iso-ir-203',
-     `l9' and `latin9' are aliases for this charset.  Source: ISO 2375
-     registry.
-
-`ISO-8859-2'
-     `912', `CP912', `IBM912', `ISO8859-2', `ISO_8859-2',
-     `ISO_8859-2:1987', `iso-ir-101', `l2' and `latin2' are aliases for
-     this charset.  Source: ISO 2375 registry.
-
-`ISO-8859-3'
-     `ISO8859-3', `ISO_8859-3', `ISO_8859-3:1988', `iso-ir-109', `l3'
-     and `latin3' are aliases for this charset.  Source: ISO 2375
-     registry.
-
-`ISO-8859-4'
-     `ISO8859-4', `ISO_8859-4', `ISO_8859-4:1988', `iso-ir-110', `l4'
-     and `latin4' are aliases for this charset.  Source: ISO 2375
-     registry.
-
-`ISO-8859-5'
-     `ISO8859-5', `ISO_8859-5', `ISO_8859-5:1988', `cyrillic' and
-     `iso-ir-144' are aliases for this charset.  Source: ISO 2375
-     registry.
-
-`ISO-8859-6'
-     `ASMO-708', `ECMA-114', `ISO8859-6', `ISO_8859-6',
-     `ISO_8859-6:1987', `arabic' and `iso-ir-127' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`ISO-8859-7'
-     `ECMA-118', `ELOT_928', `ISO8859-7', `ISO_8859-7',
-     `ISO_8859-7:1987', `greek', `greek8' and `iso-ir-126' are aliases
-     for this charset.  Source: ISO 2375 registry.
-
-`ISO-8859-8'
-     `ISO8859-8', `ISO_8859-8', `ISO_8859-8:1988', `hebrew' and
-     `iso-ir-138' are aliases for this charset.  Source: ISO 2375
-     registry.
-
-`ISO-8859-9'
-     `ISO8859-9', `ISO_8859-9', `ISO_8859-9:1989', `iso-ir-148', `l5'
-     and `latin5' are aliases for this charset.  Source: ISO 2375
-     registry.
-
-`ISO_10367-box'
-     `iso-ir-155' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`ISO_2033-1983'
-     `e13b' and `iso-ir-98' are aliases for this charset.  Source: ISO
-     2375 registry.
-
-`ISO_5427'
-     `iso-ir-37' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`ISO_5427-ext'
-     `ISO_5427:1981' and `iso-ir-54' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`ISO_5428'
-     `ISO_5428:1980' and `iso-ir-55' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`ISO_646.basic'
-     `ISO_646.basic:1983' and `ref' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`ISO_646.irv'
-     `ISO_646.irv:1983', `irv' and `iso-ir-2' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`ISO_6937-2-25'
-     `iso-ir-152' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`ISO_8859-supp'
-     `iso-ir-154' and `latin1-2-5' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`IT'
-     `ISO646-IT' and `iso-ir-15' are aliases for this charset.  Source:
-     ISO 2375 registry.
-
-`JIS_C6220-1969-jp'
-     `JIS_C6220-1969', `iso-ir-13', `katakana' and `x0201-7' are
-     aliases for this charset.  Source: ISO 2375 registry.
-
-`JIS_C6220-1969-ro'
-     `ISO646-JP', `iso-ir-14' and `jp' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`JIS_C6229-1984-a'
-     `jp-ocr-a' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`JIS_C6229-1984-b'
-     `ISO646-JP-OCR-B' and `jp-ocr-b' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`JIS_C6229-1984-b-add'
-     `iso-ir-93' and `jp-ocr-b-add' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`JIS_C6229-1984-hand'
-     `iso-ir-94' and `jp-ocr-hand' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`JIS_C6229-1984-hand-add'
-     `iso-ir-95' and `jp-ocr-hand-add' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`JIS_C6229-1984-kana'
-     `iso-ir-96' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`JIS_X0201'
-     `X0201' is an alias for this charset.
-
-`JUS_I.B1.002'
-     `ISO646-YU', `iso-ir-141', `js' and `yu' are aliases for this
-     charset.  Source: ISO 2375 registry.
-
-`JUS_I.B1.003-mac'
-     `iso-ir-147' and `macedonian' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`JUS_I.B1.003-serb'
-     `iso-ir-146' and `serbian' are aliases for this charset.  Source:
-     ISO 2375 registry.
-
-`KOI-7'
-     Source: Andrey A. Chernov <ache@nagual.pp.ru>.
-
-`KOI-8'
-     `GOST_19768-74' is an alias for this charset.  Source: Andrey A.
-     Chernov <ache@nagual.pp.ru>.
-
-`KOI8-R'
-     Source: RFC1489 via Gabor Kiss <kissg@sztaki.hu>.  And Andrey A.
-     Chernov <ache@nagual.pp.ru>.
-
-`KOI8-RU'
-     Source: http://cad.ntu-kpi.kiev.ua/multiling/koi8-ru/.
-
-`KOI8-U'
-     Source: RFC 2319.  Mibenum: 2088.  Source:
-     http://www.net.ua/KOI8-U/.
-
-`KSC5636'
-     `ISO646-KR' is an alias for this charset.
-
-`Latin-greek-1'
-     `iso-ir-27' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`MSZ_7795.3'
-     `ISO646-HU', `hu' and `iso-ir-86' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`NATS-DANO'
-     `iso-ir-9-1' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`NATS-DANO-ADD'
-     `iso-ir-9-2' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`NATS-SEFI'
-     `iso-ir-8-1' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`NATS-SEFI-ADD'
-     `iso-ir-8-2' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`NC_NC00-10'
-     `ISO646-CU', `NC_NC00-10:81', `cuba' and `iso-ir-151' are aliases
-     for this charset.  Source: ISO 2375 registry.
-
-`NF_Z_62-010'
-     `ISO646-FR', `fr' and `iso-ir-69' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`NF_Z_62-010_(1973)'
-     `ISO646-FR1' and `iso-ir-25' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`NS_4551-1'
-     `ISO646-NO', `iso-ir-60' and `no' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`NS_4551-2'
-     `ISO646-NO2', `iso-ir-61' and `no2' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`NeXTSTEP'
-     `next' is an alias for this charset.  Source: Peter Svanberg -
-     psv@nada.kth.se.
-
-`PT'
-     `ISO646-PT' and `iso-ir-16' are aliases for this charset.  Source:
-     ISO 2375 registry.
-
-`PT2'
-     `ISO646-PT2' and `iso-ir-84' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`SEN_850200_B'
-     `FI', `ISO646-FI', `ISO646-SE', `SS636127', `iso-ir-10' and `se'
-     are aliases for this charset.  Source: ISO 2375 registry.
-
-`SEN_850200_C'
-     `ISO646-SE2', `iso-ir-11' and `se2' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-`T.61-7bit'
-     `iso-ir-102' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`baltic'
-     `iso-ir-179' is an alias for this charset.  Source: ISO 2375
-     registry.  &g1esc x2d56 &g2esc x2e56 &g3esc x2f56.
-
-`greek-ccitt'
-     `iso-ir-150' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`greek7'
-     `iso-ir-88' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`greek7-old'
-     `iso-ir-18' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`hp-roman8'
-     `r8' and `roman8' are aliases for this charset.  Source: LaserJet
-     IIP Printer User's Manual,.  HP part no 33471-90901,
-     Hewlet-Packard, June 1989.
-
-`latin-greek'
-     `iso-ir-19' is an alias for this charset.  Source: ISO 2375
-     registry.
-
-`mac-is'
-
-`macintosh'
-     `mac' is an alias for this charset.  Source: The Unicode Standard
-     ver 1.0, ISBN 0-201-56788-1, Oct 1991.
-
-`macintosh_ce'
-     `macce' is an alias for this charset.  Source: Macintosh CE fonts.
-
-`sami'
-     `iso-ir-158', `lap' and `latin-lap' are aliases for this charset.
-     Source: ISO 2375 registry.
-
-\1f
-File: recode.info,  Node: ASCII misc,  Next: IBM and MS,  Prev: Tabular,  Up: Top
-
-ASCII and some derivatives
-**************************
-
-* Menu:
-
-* ASCII::               Usual ASCII
-* ISO 8859::            ASCII extended by Latin Alphabets
-* ASCII-BS::            ASCII 7-bits, BS to overstrike
-* flat::                ASCII without diacritics nor underline
-
-\1f
-File: recode.info,  Node: ASCII,  Next: ISO 8859,  Prev: ASCII misc,  Up: ASCII misc
-
-Usual ASCII
-===========
-
-   This charset is available in `recode' under the name `ASCII'.  In
-fact, it's true name is `ANSI_X3.4-1968' as per RFC 1345, accepted
-aliases being `ANSI_X3.4-1986', `ASCII', `IBM367', `ISO646-US',
-`ISO_646.irv:1991', `US-ASCII', `cp367', `iso-ir-6' and `us'.  The
-shortest way of specifying it in `recode' is `us'.
-
-   This documentation used to include ASCII tables.  They have been
-removed since the `recode' program can now recreate these easily:
-
-     recode -lf us                   for commented ASCII
-     recode -ld us                   for concise decimal table
-     recode -lo us                   for concise octal table
-     recode -lh us                   for concise hexadecimal table
-
-\1f
-File: recode.info,  Node: ISO 8859,  Next: ASCII-BS,  Prev: ASCII,  Up: ASCII misc
-
-ASCII extended by Latin Alphabets
-=================================
-
-   There are many Latin charsets.  The following has been written by Tim
-Lasko <lasko@video.dec.com>, a long while ago:
-
-     ISO Latin-1, or more completely ISO Latin Alphabet No 1, is now an
-     international standard as of February 1987 (IS 8859, Part 1).  For
-     those American USEnet'rs that care, the 8-bit ASCII standard,
-     which is essentially the same code, is going through the final
-     administrative processes prior to publication.  ISO Latin-1 (IS
-     8859/1) is actually one of an entire family of eight-bit one-byte
-     character sets, all having ASCII on the left hand side, and with
-     varying repertoires on the right hand side:
-
-        * Latin Alphabet No 1 (caters to Western Europe - now approved).
-
-        * Latin Alphabet No 2 (caters to Eastern Europe - now approved).
-
-        * Latin Alphabet No 3 (caters to SE Europe + others - in draft
-          ballot).
-
-        * Latin Alphabet No 4 (caters to Northern Europe - in draft
-          ballot).
-
-        * Latin-Cyrillic alphabet (right half all Cyrillic - processing
-          currently suspended pending USSR input).
-
-        * Latin-Arabic alphabet (right half all Arabic - now approved).
-
-        * Latin-Greek alphabet (right half Greek + symbols - in draft
-          ballot).
-
-        * Latin-Hebrew alphabet (right half Hebrew + symbols -
-          proposed).
-
-   The ISO Latin Alphabet 1 is available as a charset in `recode' under
-the name `Latin-1'.  In fact, it's true name is `ISO_8859-1:1987' as
-per RFC 1345, accepted aliases being `CP819', `IBM819', `ISO-8859-1',
-`ISO_8859-1', `iso-ir-100', `l1' and `Latin-1'.  The shortest way of
-specifying it in `recode' is `l1'.
-
-   It is an eight-bit code which coincides with ASCII for the lower
-half.  This documentation used to include Latin-1 tables.  They have
-been removed since the `recode' program can now recreate these easily:
+    `CHAR'
 
-     recode -lf l1                   for commented ISO Latin-1
-     recode -ld l1                   for concise decimal table
-     recode -lo l1                   for concise octal table
-     recode -lh l1                   for concise hexadecimal table
+    `WCHAR_T'
 
index f43e19be813185e8f37e5b529ae9686c67524a18..46234e56730001c7f5eb0a6c686e246bb4db3cae 100644 (file)
@@ -25,6 +25,790 @@ manual into another language, under the above conditions for modified
 versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
+\1f
+File: recode.info,  Node: Tabular,  Next: ASCII misc,  Prev: libiconv,  Up: Top
+
+Tabular sources (RFC 1345)
+**************************
+
+   An important part of the tabular charset knowledge in `recode' comes
+from RFC 1345 or, alternatively, from the `chset' tools, both
+maintained by Keld Simonsen.  The RFC 1345 document:
+
+     "Character Mnemonics & Character Sets", K. Simonsen, Request for
+     Comments no. 1345, Network Working Group, June 1992.
+
+defines many character mnemonics and character sets.  The `recode'
+library implements most of RFC 1345, however:
+
+   * It does not recognise those charsets which overload character
+     positions: `dk-us' and `us-dk'.  However, *Note Mixed::.
+
+   * It does not recognise those charsets which combine two characters
+     for representing a third: `ANSI_X3.110-1983', `ISO_6937-2-add',
+     `T.101-G2', `T.61-8bit', `iso-ir-90' and `videotex-suppl'.
+
+   * It does not recognise 16-bits charsets: `GB_2312-80',
+     `JIS_C6226-1978', `JIS_C6226-1983', `JIS_X0212-1990' and
+     `KS_C_5601-1987'.
+
+   * It interprets the charset `isoir91' as `NATS-DANO' (alias
+     `iso-ir-9-1'), _not_ as `JIS_C6229-1984-a' (alias `iso-ir-91').
+     It also interprets the charset `isoir92' as `NATS-DANO-ADD' (alias
+     `iso-ir-9-2'), _not_ as `JIS_C6229-1984-b' (alias `iso-ir-92').
+     It might be better just avoiding these two alias names.
+
+   Keld Simonsen <keld@dkuug.dk> did most of RFC 1345 himself, with
+some funding from Danish Standards and Nordic standards (INSTA) project.
+He also did the character set design work, with substantial input from
+Olle Jaernefors.  Keld typed in almost all of the tables, some have been
+contributed.  A number of people have checked the tables in various
+ways.  The RFC lists a number of people who helped.
+
+   Keld and the `recode' maintainer have an arrangement by which any new
+discovered information submitted by `recode' users, about tabular
+charsets, is forwarded to Keld, eventually merged into Keld's work, and
+only then, reimported into `recode'.  Neither the `recode' program nor
+its library try to compete, nor even establish themselves as an
+alternate or diverging reference: RFC 1345 and its new drafts stay the
+genuine source for most tabular information conveyed by `recode'.  Keld
+has been more than collaborative so far, so there is no reason that we
+act otherwise.  In a word, `recode' should be perceived as the
+application of external references, but not as a reference in itself.
+
+   Internally, RFC 1345 associates which each character an unambiguous
+mnemonic of a few characters, taken from ISO 646, which is a minimal
+ASCII subset of 83 characters.  The charset made up by these mnemonics
+is available in `recode' under the name `RFC1345'.  It has `mnemonic'
+and `1345' for aliases.  As implemened, this charset exactly
+corresponds to `mnemonic+ascii+38', using RFC 1345 nomenclature.
+Roughly said, ISO 646 characters represent themselves, except for the
+ampersand (`&') which appears doubled.  A prefix of a single ampersand
+introduces a mnemonic.  For mnemonics using two characters, the prefix
+is immediately by the mnemonic.  For longer mnemonics, the prefix is
+followed by an underline (`_'), the mmemonic, and another underline.
+Conversions to this charset are usually reversible.
+
+   Currently, `recode' does not offer any of the many other possible
+variations of this family of representations.  They will likely be
+implemented in some future version, however.
+
+`ANSI_X3.4-1968'
+     `367', `ANSI_X3.4-1986', `ASCII', `CP367', `IBM367', `ISO646-US',
+     `ISO_646.irv:1991', `US-ASCII', `iso-ir-6' and `us' are aliases
+     for this charset.  Source: ISO 2375 registry.
+
+`ASMO_449'
+     `ISO_9036', `arabic7' and `iso-ir-89' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`BS_4730'
+     `ISO646-GB', `gb', `iso-ir-4' and `uk' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`BS_viewdata'
+     `iso-ir-47' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`CP1250'
+     `1250', `ms-ee' and `windows-1250' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1251'
+     `1251', `ms-cyrl' and `windows-1251' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1252'
+     `1252', `ms-ansi' and `windows-1252' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1253'
+     `1253', `ms-greek' and `windows-1253' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1254'
+     `1254', `ms-turk' and `windows-1254' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1255'
+     `1255', `ms-hebr' and `windows-1255' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1256'
+     `1256', `ms-arab' and `windows-1256' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`CP1257'
+     `1257', `WinBaltRim' and `windows-1257' are aliases for this
+     charset.  Source: CEN/TC304 N283.
+
+`CSA_Z243.4-1985-1'
+     `ISO646-CA', `ca', `csa7-1' and `iso-ir-121' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`CSA_Z243.4-1985-2'
+     `ISO646-CA2', `csa7-2' and `iso-ir-122' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`CSA_Z243.4-1985-gr'
+     `iso-ir-123' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`CSN_369103'
+     `KOI-8_L2', `iso-ir-139' and `koi8l2' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`CWI'
+     `CWI-2' and `cp-hu' are aliases for this charset.  Source:
+     Computerworld Sza'mita'stechnika vol 3 issue 13 1988-06-29.
+
+`DEC-MCS'
+     `dec' is an alias for this charset.  VAX/VMS User's Manual, Order
+     Number: AI-Y517A-TE, April 1986.
+
+`DIN_66003'
+     `ISO646-DE', `de' and `iso-ir-21' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`DS_2089'
+     `DS2089', `ISO646-DK' and `dk' are aliases for this charset.
+     Source: Danish Standard, DS 2089, February 1974.
+
+`EBCDIC-AT-DE'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-AT-DE-A'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-CA-FR'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-DK-NO'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-DK-NO-A'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-ES'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-ES-A'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-ES-S'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-FI-SE'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-FI-SE-A'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-FR'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-IS-FRISS'
+     `friss' is an alias for this charset.  Source: Skyrsuvelar
+     Rikisins og Reykjavikurborgar, feb 1982.
+
+`EBCDIC-IT'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-PT'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-UK'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`EBCDIC-US'
+     Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987.
+
+`ECMA-cyrillic'
+     `ECMA-113', `ECMA-113:1986' and `iso-ir-111' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`ES'
+     `ISO646-ES' and `iso-ir-17' are aliases for this charset.  Source:
+     ISO 2375 registry.
+
+`ES2'
+     `ISO646-ES2' and `iso-ir-85' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`GB_1988-80'
+     `ISO646-CN', `cn' and `iso-ir-57' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`GOST_19768-87'
+     `ST_SEV_358-88' and `iso-ir-153' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`IBM037'
+     `037', `CP037', `ebcdic-cp-ca', `ebcdic-cp-nl', `ebcdic-cp-us' and
+     `ebcdic-cp-wt' are aliases for this charset.  Source: IBM NLS RM
+     Vol2 SE09-8002-01, March 1990.
+
+`IBM038'
+     `038', `CP038' and `EBCDIC-INT' are aliases for this charset.
+     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
+
+`IBM1004'
+     `1004', `CP1004' and `os2latin1' are aliases for this charset.
+     Source: CEN/TC304 N283, 1994-02-04.
+
+`IBM1026'
+     `1026' and `CP1026' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM1047'
+     `1047' and `CP1047' are aliases for this charset.  Source: IBM
+     Character Data Representation Architecture.  Registry SC09-1391-00
+     p 150.
+
+`IBM256'
+     `256', `CP256' and `EBCDIC-INT1' are aliases for this charset.
+     Source: IBM Registry C-H 3-3220-050.
+
+`IBM273'
+     `273' and `CP273' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM274'
+     `274', `CP274' and `EBCDIC-BE' are aliases for this charset.
+     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
+
+`IBM275'
+     `275', `CP275' and `EBCDIC-BR' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM277'
+     `EBCDIC-CP-DK' and `EBCDIC-CP-NO' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM278'
+     `278', `CP278', `ebcdic-cp-fi' and `ebcdic-cp-se' are aliases for
+     this charset.  Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM280'
+     `280', `CP280' and `ebcdic-cp-it' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM281'
+     `281', `CP281' and `EBCDIC-JP-E' are aliases for this charset.
+     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
+
+`IBM284'
+     `284', `CP284' and `ebcdic-cp-es' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM285'
+     `285', `CP285' and `ebcdic-cp-gb' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM290'
+     `290', `CP290' and `EBCDIC-JP-kana' are aliases for this charset.
+     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
+
+`IBM297'
+     `297', `CP297' and `ebcdic-cp-fr' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM420'
+     `420', `CP420' and `ebcdic-cp-ar1' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.  IBM NLS RM p
+     11-11.
+
+`IBM423'
+     `423', `CP423' and `ebcdic-cp-gr' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM424'
+     `424', `CP424' and `ebcdic-cp-he' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM437'
+     `437' and `CP437' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM500'
+     `500', `500V1', `CP500', `ebcdic-cp-be' and `ebcdic-cp-ch' are
+     aliases for this charset.  Source: IBM NLS RM Vol2 SE09-8002-01,
+     March 1990.
+
+`IBM850'
+     `850' and `CP850' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.  Source: UNICODE 1.0.
+
+`IBM851'
+     `851' and `CP851' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM852'
+     `852', `CP852', `pcl2' and `pclatin2' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM855'
+     `855' and `CP855' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM857'
+     `857' and `CP857' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM860'
+     `860' and `CP860' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM861'
+     `861', `CP861' and `cp-is' are aliases for this charset.  Source:
+     IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM862'
+     `862' and `CP862' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM863'
+     `863' and `CP863' are aliases for this charset.  Source: IBM
+     Keyboard layouts and code pages, PN 07G4586 June 1991.
+
+`IBM864'
+     `864' and `CP864' are aliases for this charset.  Source: IBM
+     Keyboard layouts and code pages, PN 07G4586 June 1991.
+
+`IBM865'
+     `865' and `CP865' are aliases for this charset.  Source: IBM DOS
+     3.3 Ref (Abridged), 94X9575 (Feb 1987).
+
+`IBM868'
+     `868', `CP868' and `cp-ar' are aliases for this charset.  Source:
+     IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM869'
+     `869', `CP869' and `cp-gr' are aliases for this charset.  Source:
+     IBM Keyboard layouts and code pages, PN 07G4586 June 1991.
+
+`IBM870'
+     `870', `CP870', `ebcdic-cp-roece' and `ebcdic-cp-yu' are aliases
+     for this charset.  Source: IBM NLS RM Vol2 SE09-8002-01, March
+     1990.
+
+`IBM871'
+     `871', `CP871' and `ebcdic-cp-is' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM875'
+     `875', `CP875' and `EBCDIC-Greek' are aliases for this charset.
+     Source: UNICODE 1.0.
+
+`IBM880'
+     `880', `CP880' and `EBCDIC-Cyrillic' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IBM891'
+     `891' and `CP891' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM903'
+     `903' and `CP903' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM904'
+     `904' and `CP904' are aliases for this charset.  Source: IBM NLS
+     RM Vol2 SE09-8002-01, March 1990.
+
+`IBM905'
+     `905', `CP905' and `ebcdic-cp-tr' are aliases for this charset.
+     Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990.
+
+`IBM918'
+     `918', `CP918' and `ebcdic-cp-ar2' are aliases for this charset.
+     Source: IBM NLS RM Vol2 SE09-8002-01, March 1990.
+
+`IEC_P27-1'
+     `iso-ir-143' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`INIS'
+     `iso-ir-49' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`INIS-8'
+     `iso-ir-50' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`INIS-cyrillic'
+     `iso-ir-51' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`INVARIANT'
+     `iso-ir-170' is an alias for this charset.
+
+`ISO-8859-1'
+     `819', `CP819', `IBM819', `ISO8859-1', `ISO_8859-1',
+     `ISO_8859-1:1987', `iso-ir-100', `l1' and `latin1' are aliases for
+     this charset.  Source: ISO 2375 registry.
+
+`ISO-8859-10'
+     `ISO8859-10', `ISO_8859-10', `ISO_8859-10:1993', `L6',
+     `iso-ir-157' and `latin6' are aliases for this charset.  Source:
+     ISO 2375 registry.
+
+`ISO-8859-13'
+     `ISO8859-13', `ISO_8859-13', `ISO_8859-13:1998', `iso-baltic',
+     `iso-ir-179a', `l7' and `latin7' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`ISO-8859-14'
+     `ISO8859-14', `ISO_8859-14', `ISO_8859-14:1998', `iso-celtic',
+     `iso-ir-199', `l8' and `latin8' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`ISO-8859-15'
+     `ISO8859-15', `ISO_8859-15', `ISO_8859-15:1998', `iso-ir-203',
+     `l9' and `latin9' are aliases for this charset.  Source: ISO 2375
+     registry.
+
+`ISO-8859-2'
+     `912', `CP912', `IBM912', `ISO8859-2', `ISO_8859-2',
+     `ISO_8859-2:1987', `iso-ir-101', `l2' and `latin2' are aliases for
+     this charset.  Source: ISO 2375 registry.
+
+`ISO-8859-3'
+     `ISO8859-3', `ISO_8859-3', `ISO_8859-3:1988', `iso-ir-109', `l3'
+     and `latin3' are aliases for this charset.  Source: ISO 2375
+     registry.
+
+`ISO-8859-4'
+     `ISO8859-4', `ISO_8859-4', `ISO_8859-4:1988', `iso-ir-110', `l4'
+     and `latin4' are aliases for this charset.  Source: ISO 2375
+     registry.
+
+`ISO-8859-5'
+     `ISO8859-5', `ISO_8859-5', `ISO_8859-5:1988', `cyrillic' and
+     `iso-ir-144' are aliases for this charset.  Source: ISO 2375
+     registry.
+
+`ISO-8859-6'
+     `ASMO-708', `ECMA-114', `ISO8859-6', `ISO_8859-6',
+     `ISO_8859-6:1987', `arabic' and `iso-ir-127' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`ISO-8859-7'
+     `ECMA-118', `ELOT_928', `ISO8859-7', `ISO_8859-7',
+     `ISO_8859-7:1987', `greek', `greek8' and `iso-ir-126' are aliases
+     for this charset.  Source: ISO 2375 registry.
+
+`ISO-8859-8'
+     `ISO8859-8', `ISO_8859-8', `ISO_8859-8:1988', `hebrew' and
+     `iso-ir-138' are aliases for this charset.  Source: ISO 2375
+     registry.
+
+`ISO-8859-9'
+     `ISO8859-9', `ISO_8859-9', `ISO_8859-9:1989', `iso-ir-148', `l5'
+     and `latin5' are aliases for this charset.  Source: ISO 2375
+     registry.
+
+`ISO_10367-box'
+     `iso-ir-155' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`ISO_2033-1983'
+     `e13b' and `iso-ir-98' are aliases for this charset.  Source: ISO
+     2375 registry.
+
+`ISO_5427'
+     `iso-ir-37' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`ISO_5427-ext'
+     `ISO_5427:1981' and `iso-ir-54' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`ISO_5428'
+     `ISO_5428:1980' and `iso-ir-55' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`ISO_646.basic'
+     `ISO_646.basic:1983' and `ref' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`ISO_646.irv'
+     `ISO_646.irv:1983', `irv' and `iso-ir-2' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`ISO_6937-2-25'
+     `iso-ir-152' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`ISO_8859-supp'
+     `iso-ir-154' and `latin1-2-5' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`IT'
+     `ISO646-IT' and `iso-ir-15' are aliases for this charset.  Source:
+     ISO 2375 registry.
+
+`JIS_C6220-1969-jp'
+     `JIS_C6220-1969', `iso-ir-13', `katakana' and `x0201-7' are
+     aliases for this charset.  Source: ISO 2375 registry.
+
+`JIS_C6220-1969-ro'
+     `ISO646-JP', `iso-ir-14' and `jp' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`JIS_C6229-1984-a'
+     `jp-ocr-a' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`JIS_C6229-1984-b'
+     `ISO646-JP-OCR-B' and `jp-ocr-b' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`JIS_C6229-1984-b-add'
+     `iso-ir-93' and `jp-ocr-b-add' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`JIS_C6229-1984-hand'
+     `iso-ir-94' and `jp-ocr-hand' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`JIS_C6229-1984-hand-add'
+     `iso-ir-95' and `jp-ocr-hand-add' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`JIS_C6229-1984-kana'
+     `iso-ir-96' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`JIS_X0201'
+     `X0201' is an alias for this charset.
+
+`JUS_I.B1.002'
+     `ISO646-YU', `iso-ir-141', `js' and `yu' are aliases for this
+     charset.  Source: ISO 2375 registry.
+
+`JUS_I.B1.003-mac'
+     `iso-ir-147' and `macedonian' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`JUS_I.B1.003-serb'
+     `iso-ir-146' and `serbian' are aliases for this charset.  Source:
+     ISO 2375 registry.
+
+`KOI-7'
+     Source: Andrey A. Chernov <ache@nagual.pp.ru>.
+
+`KOI-8'
+     `GOST_19768-74' is an alias for this charset.  Source: Andrey A.
+     Chernov <ache@nagual.pp.ru>.
+
+`KOI8-R'
+     Source: RFC1489 via Gabor Kiss <kissg@sztaki.hu>.  And Andrey A.
+     Chernov <ache@nagual.pp.ru>.
+
+`KOI8-RU'
+     Source: http://cad.ntu-kpi.kiev.ua/multiling/koi8-ru/.
+
+`KOI8-U'
+     Source: RFC 2319.  Mibenum: 2088.  Source:
+     http://www.net.ua/KOI8-U/.
+
+`KSC5636'
+     `ISO646-KR' is an alias for this charset.
+
+`Latin-greek-1'
+     `iso-ir-27' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`MSZ_7795.3'
+     `ISO646-HU', `hu' and `iso-ir-86' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`NATS-DANO'
+     `iso-ir-9-1' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`NATS-DANO-ADD'
+     `iso-ir-9-2' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`NATS-SEFI'
+     `iso-ir-8-1' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`NATS-SEFI-ADD'
+     `iso-ir-8-2' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`NC_NC00-10'
+     `ISO646-CU', `NC_NC00-10:81', `cuba' and `iso-ir-151' are aliases
+     for this charset.  Source: ISO 2375 registry.
+
+`NF_Z_62-010'
+     `ISO646-FR', `fr' and `iso-ir-69' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`NF_Z_62-010_(1973)'
+     `ISO646-FR1' and `iso-ir-25' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`NS_4551-1'
+     `ISO646-NO', `iso-ir-60' and `no' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`NS_4551-2'
+     `ISO646-NO2', `iso-ir-61' and `no2' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`NeXTSTEP'
+     `next' is an alias for this charset.  Source: Peter Svanberg -
+     psv@nada.kth.se.
+
+`PT'
+     `ISO646-PT' and `iso-ir-16' are aliases for this charset.  Source:
+     ISO 2375 registry.
+
+`PT2'
+     `ISO646-PT2' and `iso-ir-84' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`SEN_850200_B'
+     `FI', `ISO646-FI', `ISO646-SE', `SS636127', `iso-ir-10' and `se'
+     are aliases for this charset.  Source: ISO 2375 registry.
+
+`SEN_850200_C'
+     `ISO646-SE2', `iso-ir-11' and `se2' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+`T.61-7bit'
+     `iso-ir-102' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`baltic'
+     `iso-ir-179' is an alias for this charset.  Source: ISO 2375
+     registry.  &g1esc x2d56 &g2esc x2e56 &g3esc x2f56.
+
+`greek-ccitt'
+     `iso-ir-150' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`greek7'
+     `iso-ir-88' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`greek7-old'
+     `iso-ir-18' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`hp-roman8'
+     `r8' and `roman8' are aliases for this charset.  Source: LaserJet
+     IIP Printer User's Manual,.  HP part no 33471-90901,
+     Hewlet-Packard, June 1989.
+
+`latin-greek'
+     `iso-ir-19' is an alias for this charset.  Source: ISO 2375
+     registry.
+
+`mac-is'
+
+`macintosh'
+     `mac' is an alias for this charset.  Source: The Unicode Standard
+     ver 1.0, ISBN 0-201-56788-1, Oct 1991.
+
+`macintosh_ce'
+     `macce' is an alias for this charset.  Source: Macintosh CE fonts.
+
+`sami'
+     `iso-ir-158', `lap' and `latin-lap' are aliases for this charset.
+     Source: ISO 2375 registry.
+
+\1f
+File: recode.info,  Node: ASCII misc,  Next: IBM and MS,  Prev: Tabular,  Up: Top
+
+ASCII and some derivatives
+**************************
+
+* Menu:
+
+* ASCII::               Usual ASCII
+* ISO 8859::            ASCII extended by Latin Alphabets
+* ASCII-BS::            ASCII 7-bits, BS to overstrike
+* flat::                ASCII without diacritics nor underline
+
+\1f
+File: recode.info,  Node: ASCII,  Next: ISO 8859,  Prev: ASCII misc,  Up: ASCII misc
+
+Usual ASCII
+===========
+
+   This charset is available in `recode' under the name `ASCII'.  In
+fact, it's true name is `ANSI_X3.4-1968' as per RFC 1345, accepted
+aliases being `ANSI_X3.4-1986', `ASCII', `IBM367', `ISO646-US',
+`ISO_646.irv:1991', `US-ASCII', `cp367', `iso-ir-6' and `us'.  The
+shortest way of specifying it in `recode' is `us'.
+
+   This documentation used to include ASCII tables.  They have been
+removed since the `recode' program can now recreate these easily:
+
+     recode -lf us                   for commented ASCII
+     recode -ld us                   for concise decimal table
+     recode -lo us                   for concise octal table
+     recode -lh us                   for concise hexadecimal table
+
+\1f
+File: recode.info,  Node: ISO 8859,  Next: ASCII-BS,  Prev: ASCII,  Up: ASCII misc
+
+ASCII extended by Latin Alphabets
+=================================
+
+   There are many Latin charsets.  The following has been written by Tim
+Lasko <lasko@video.dec.com>, a long while ago:
+
+     ISO Latin-1, or more completely ISO Latin Alphabet No 1, is now an
+     international standard as of February 1987 (IS 8859, Part 1).  For
+     those American USEnet'rs that care, the 8-bit ASCII standard,
+     which is essentially the same code, is going through the final
+     administrative processes prior to publication.  ISO Latin-1 (IS
+     8859/1) is actually one of an entire family of eight-bit one-byte
+     character sets, all having ASCII on the left hand side, and with
+     varying repertoires on the right hand side:
+
+        * Latin Alphabet No 1 (caters to Western Europe - now approved).
+
+        * Latin Alphabet No 2 (caters to Eastern Europe - now approved).
+
+        * Latin Alphabet No 3 (caters to SE Europe + others - in draft
+          ballot).
+
+        * Latin Alphabet No 4 (caters to Northern Europe - in draft
+          ballot).
+
+        * Latin-Cyrillic alphabet (right half all Cyrillic - processing
+          currently suspended pending USSR input).
+
+        * Latin-Arabic alphabet (right half all Arabic - now approved).
+
+        * Latin-Greek alphabet (right half Greek + symbols - in draft
+          ballot).
+
+        * Latin-Hebrew alphabet (right half Hebrew + symbols -
+          proposed).
+
+   The ISO Latin Alphabet 1 is available as a charset in `recode' under
+the name `Latin-1'.  In fact, it's true name is `ISO_8859-1:1987' as
+per RFC 1345, accepted aliases being `CP819', `IBM819', `ISO-8859-1',
+`ISO_8859-1', `iso-ir-100', `l1' and `Latin-1'.  The shortest way of
+specifying it in `recode' is `l1'.
+
+   It is an eight-bit code which coincides with ASCII for the lower
+half.  This documentation used to include Latin-1 tables.  They have
+been removed since the `recode' program can now recreate these easily:
+
+     recode -lf l1                   for commented ISO Latin-1
+     recode -ld l1                   for concise decimal table
+     recode -lo l1                   for concise octal table
+     recode -lh l1                   for concise hexadecimal table
+
 \1f
 File: recode.info,  Node: ASCII-BS,  Next: flat,  Prev: ISO 8859,  Up: ASCII misc
 
@@ -500,660 +1284,3 @@ knows how to handle these particularly well for French texts.
 * Texte::               Easy French conventions
 * Mule::                Mule as a multiplexed charset
 
-\1f
-File: recode.info,  Node: HTML,  Next: LaTeX,  Prev: Miscellaneous,  Up: Miscellaneous
-
-World Wide Web representations
-==============================
-
-   This charset is available in `recode' under the name `HTML', with
-`h4' as an acceptable alias.
-
-   HTML texts used by World Wide Web often use special sequences,
-beginning with an ampersand `&' and ending with a semicolon `;', for
-representing characters.  The sequence may itself start with a number
-sigh `#' and be followed by digits, so forming a "numeric character
-reference", or else be an alphabetic identifier, so forming a
-"character entity reference".
-
-   Printable characters from Latin-1 may be used directly in an HTML
-text.  However, partly because people have deficient keyboards, partly
-because people want to transmit HTML texts over non 8-bit clean
-channels while not using MIME, it is common (yet debatable) to use
-character entity references even for Latin-1 characters, when they fall
-outside ASCII (that is, when they have the 8th bit set).
-
-   When you recode from another charset to `HTML', beware that all
-occurrences of double quotes, ampersands, and left or right angle
-brackets are translated into special sequences.  However, in practice,
-people often use ampersands and angle brackets in the other charset for
-introducing HTML commands, compromising it: it is not pure HTML, not it
-is pure other charset.  These particular translations can be rather
-inconvenient, they may be specifically inhibited through the command
-option `-d' (*note Mixed::).
-
-   Codes not having a mnemonic entity are output by `recode' using the
-`&#NNN;' notation, where NNN is a decimal representation of the UCS
-code value.  When there is an entity name for a character, it is always
-preferred over a numeric character reference.  ASCII printable
-characters are always generated directly.  So is the newline.  While
-reading HTML, `recode' supports numeric character reference as alternate
-writings, even when written as hexadecimal numbers, as in `&#xfffd'.
-This is documented in:
-
-     http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.3
-
-   About levels of HTML, François Yergeau <yergeau@alis.com> writes:
-
-   * HTML 1.0 was never really documented.
-
-   * HTML 2.0 entities are listed in RFC 1866.  Basically, there is an
-     entity for each _alphabetical_ character in the right part of
-     ISO 8859-1.  In addition, there are four entities for
-     syntax-significant ASCII characters: `&amp;', `&gt;', `&lt;' and
-     `&quot;'.
-
-   * RFC 2070 (HTML-i18n) added entities to cover the whole right part
-     of ISO 8859-1.  The list is conveniently accessible at
-     `http://www.alis.com:8085/ietf/html/html-latin1.sgml'.  In
-     addition, four i18n-related entities were added: `&zwnj;'
-     (`&#8204;'), `&zwj;' (`&#8205;'), `&lrm;' (`&#8206') and `&rlm;'
-     (`&#8207;').
-
-   * HTML 3.2 (http://www.w3.org/TR/REC-html32.html) took up the full
-     Latin-1 list but not the i18n-related entities from RFC 2070.
-
-   * HTML 4.0 (http://www.w3.org/TR/REC-html40/) has the whole Latin-1
-     list, a set of entities for symbols, mathematical symbols, and
-     Greek letters, and another set for markup-significant and
-     internationalization characters comprising the 4 ASCII entities,
-     the 4 i18n-related from RFC 2070 plus some more.
-
-   When `recode' translates to HTML, the translation occurs according
-to `http://www.w3.org/TR/REC-html40/sgml/entities.html'.  It is also
-assumed that RFC 1866 has an equivalent contents.  When translating
-_from_ HTML, `recode' accepts some alternative special sequences, to be
-forgiving when files use older HTML tables.
-
-   The `recode' program can be used to _normalise_ an HTML file using
-oldish conventions.  For example, it accepts `&AE;', as this once was a
-valid writing, somewhere.  However, it should always produce `&AElig;'
-instead of `&AE;'.  Yet, this is not completely true.  If one does:
-
-     recode h3..h3 < INPUT
-
-the operation will be optimised into a mere copy, and you can get `&AE;'
-this way, if you had some in your input file.  But if you explicitly
-defeat the optimisation, like this maybe:
-
-     recode h3..u2,u2..h3 < INPUT
-
-then `&AE;' should be normalised into `&AElig;' by the operation.
-
-\1f
-File: recode.info,  Node: LaTeX,  Next: Texinfo,  Prev: HTML,  Up: Miscellaneous
-
-LaTeX macro calls
-=================
-
-   This charset is available in `recode' under the name `LaTeX' and has
-`ltex' as an alias.  It is used for ASCII files coded to be read by
-LaTeX or, in certain cases, by TeX.
-
-   Whenever you recode from another charset to `LaTeX', beware that all
-occurrences of backslashes `\' are translated into the string
-`\backslash{}'.  However, in practice, people often use backslashes in
-the other charset for introducing TeX commands, compromising it: it is
-not pure TeX, nor it is pure other charset.  This translation of
-backslashes into `\backslash{}' can be rather inconvenient, it may be
-inhibited through the command option `-d' (*note Mixed::).
-
-\1f
-File: recode.info,  Node: Texinfo,  Next: Vietnamese,  Prev: LaTeX,  Up: Miscellaneous
-
-GNU project documentation files
-===============================
-
-   This charset is available in `recode' under the name `Texinfo' and
-has `texi' and `ti' for aliases.  It is used by the GNU project for its
-documentation.  Texinfo files may be converted into Info files by the
-`makeinfo' program and into nice printed manuals by the TeX system.
-
-   Even if `recode' may transform other charsets to Texinfo, it may not
-read Texinfo files yet.  In these times, usages are also changing
-between versions of Texinfo, and `recode' only partially succeeds in
-correctly following these changes.  So, for now, Texinfo support in
-`recode' should be considered as work still in progress (!).
-
-\1f
-File: recode.info,  Node: Vietnamese,  Next: African,  Prev: Texinfo,  Up: Miscellaneous
-
-Vietnamese charsets
-===================
-
-   We are currently experimenting the implementation, in `recode', of a
-few character sets and transliterated forms to handle the Vietnamese
-language.  They are quite briefly summarised, here.
-
-`TCVN'
-     The TCVN charset has an incomplete name.  It might be one of the
-     three charset `VN1', `VN2' or `VN3'.  Yes `VN2' might be a second
-     version of `VISCII'.  To be clarified.
-
-`VISCII'
-     This is an 8-bit character set which seems to be rather popular for
-     writing Vietnamese.
-
-`VPS'
-     This is an 8-bit character set for Vietnamese.  No much reference.
-
-`VIQR'
-     The VIQR convention is a 7-bit, `ASCII' transliteration for
-     Vietnamese.
-
-`VNI'
-     The VNI convention is a 8-bit, `Latin-1' transliteration for
-     Vietnamese.
-
-   Still lacking for Vietnamese in `recode', are the charsets `CP1129'
-and `CP1258'.
-
-\1f
-File: recode.info,  Node: African,  Next: Others,  Prev: Vietnamese,  Up: Miscellaneous
-
-African charsets
-================
-
-   Some African character sets are available for a few languages, when
-these are heavily used in countries where French is also currently
-spoken.
-
-   One African charset is usable for Bambara, Ewondo and Fulfude, as
-well as for French.  This charset is available in `recode' under the
-name `AFRFUL-102-BPI_OCIL'.  Accepted aliases are `bambara', `bra',
-`ewondo' and `fulfude'.  Transliterated forms of the same are available
-under the name `AFRFUL-103-BPI_OCIL'.  Accepted aliases are
-`t-bambara', `t-bra', `t-ewondo' and `t-fulfude'.
-
-   Another African charset is usable for Lingala, Sango and Wolof, as
-well as for French.  This charset is available in `recode' under the
-name `AFRLIN-104-BPI_OCIL'.  Accepted aliases are `lingala', `lin',
-`sango' and `wolof'.  Transliterated forms of the same are available
-under the name `AFRLIN-105-BPI_OCIL'.  Accepted aliases are
-`t-lingala', `t-lin', `t-sango' and `t-wolof'.
-
-   To ease exchange with `ISO-8859-1', there is a charset conveying
-transliterated forms for Latin-1 in a way which is compatible with the
-other African charsets in this series.  This charset is available in
-`recode' under the name `AFRL1-101-BPI_OCIL'.  Accepted aliases are
-`t-fra' and `t-francais'.
-
-\1f
-File: recode.info,  Node: Others,  Next: Texte,  Prev: African,  Up: Miscellaneous
-
-Cyrillic and other charsets
-===========================
-
-   The following Cyrillic charsets are already available in `recode'
-through RFC 1345 tables: `CP1251' with aliases `1251', ` ms-cyrl' and
-`windows-1251'; `CSN_369103' with aliases `ISO-IR-139' and `KOI8_L2';
-`ECMA-cyrillic' with aliases `ECMA-113', `ECMA-113:1986' and
-`iso-ir-111', `IBM880' with aliases `880', `CP880' and
-`EBCDIC-Cyrillic'; `INIS-cyrillic' with alias `iso-ir-51'; `ISO-8859-5'
-with aliases `cyrillic', ` ISO-8859-5:1988' and `iso-ir-144'; `KOI-7';
-`KOI-8' with alias `GOST_19768-74'; `KOI8-R'; `KOI8-RU' and finally
-`KOI8-U'.
-
-   There seems to remain some confusion in Roman charsets for Cyrillic
-languages, and because a few users requested it repeatedly, `recode'
-now offers special services in that area.  Consider these charsets as
-experimental and debatable, as the extraneous tables describing them are
-still a bit fuzzy or non-standard.  Hopefully, in the long run, these
-charsets will be covered in Keld Simonsen's works to the satisfaction of
-everybody, and this section will merely disappear.
-
-`KEYBCS2'
-     This charset is available under the name `KEYBCS2', with
-     `Kamenicky' as an accepted alias.
-
-`CORK'
-     This charset is available under the name `CORK', with `T1' as an
-     accepted alias.
-
-`KOI-8_CS2'
-     This charset is available under the name `KOI-8_CS2'.
-
-\1f
-File: recode.info,  Node: Texte,  Next: Mule,  Prev: Others,  Up: Miscellaneous
-
-Easy French conventions
-=======================
-
-   This charset is available in `recode' under the name `Texte' and has
-`txte' for an alias.  It is a seven bits code, identical to `ASCII-BS',
-save for French diacritics which are noted using a slightly different
-convention.
-
-   At text entry time, these conventions provide a little speed up.  At
-read time, they slightly improve the readability over a few alternate
-ways of coding diacritics.  Of course, it would better to have a
-specialised keyboard to make direct eight bits entries and fonts for
-immediately displaying eight bit ISO Latin-1 characters.  But not
-everybody is so fortunate.  In a few mailing environments, and sadly
-enough, it still happens that the eight bit is often willing-fully
-destroyed.
-
-   Easy French has been in use in France for a while.  I only slightly
-adapted it (the diaeresis option) to make it more comfortable to several
-usages in Que'bec originating from Universite' de Montre'al.  In fact,
-the main problem for me was not to necessarily to invent Easy French,
-but to recognise the "best" convention to use, (best is not being
-defined, here) and to try to solve the main pitfalls associated with
-the selected convention.  Shortly said, we have:
-
-`e''
-     for `e' (and some other vowels) with an acute accent,
-
-`e`'
-     for `e' (and some other vowels) with a grave accent,
-
-`e^'
-     for `e' (and some other vowels) with a circumflex accent,
-
-`e"'
-     for `e' (and some other vowels) with a diaeresis,
-
-`c,'
-     for `c' with a cedilla.
-
-There is no attempt at expressing the `ae' and `oe' diphthongs.  French
-also uses tildes over `n' and `a', but seldomly, and this is not
-represented either.  In some countries, `:' is used instead of `"' to
-mark diaeresis.  `recode' supports only one convention per call,
-depending on the `-c' option of the `recode' command.  French quotes
-(sometimes called "angle quotes") are noted the same way English quotes
-are noted in TeX, _id est_ by ```' and `'''.  No effort has been put to
-preserve Latin ligatures (`ae', `oe') which are representable in
-several other charsets.  So, these ligatures may be lost through Easy
-French conventions.
-
-   The convention is prone to losing information, because the diacritic
-meaning overloads some characters that already have other uses.  To
-alleviate this, some knowledge of the French language is boosted into
-the recognition routines.  So, the following subtleties are
-systematically obeyed by the various recognisers.
-
-  1. A comma which follows a `c' is interpreted as a cedilla only if it
-     is followed by one of the vowels `a', `o' or `u'.
-
-  2. A single quote which follows a `e' does not necessarily means an
-     acute accent if it is followed by a single other one.  For example:
-
-    `e''
-          will give an `e' with an acute accent.
-
-    `e'''
-          will give a simple `e', with a closing quotation mark.
-
-    `e''''
-          will give an `e' with an acute accent, followed by a closing
-          quotation mark.
-
-     There is a problem induced by this convention if there are English
-     quotations with a French text.  In sentences like:
-
-          There's a meeting at Archie's restaurant.
-
-     the single quotes will be mistaken twice for acute accents.  So
-     English contractions and suffix possessives could be mangled.
-
-  3. A double quote or colon, depending on `-c' option, which follows a
-     vowel is interpreted as diaeresis only if it is followed by
-     another letter.  But there are in French several words that _end_
-     with a diaeresis, and the `recode' library is aware of them.
-     There are words ending in "igue", either feminine words without a
-     relative masculine (besaigue" and cigue"), or feminine words with
-     a relative masculine(1) (aigue", ambigue", contigue", exigue",
-     subaigue" and suraigue").  There are also words not ending in
-     "igue", but instead, either ending by "i"(2) (ai", congai", goi",
-     hai"kai", inoui", sai", samurai", thai" and tokai"), ending by "e"
-     (canoe") or ending by "u"(3) (Esau").
-
-     Just to complete this topic, note that it would be wrong to make a
-     rule for all words ending in "igue" as needing a diaerisis, as
-     there are counter-examples (becfigue, be`sigue, bigue, bordigue,
-     bourdigue, brigue, contre-digue, digue, d'intrigue, fatigue,
-     figue, garrigue, gigue, igue, intrigue, ligue, prodigue, sarigue
-     and zigue).
-
-   ---------- Footnotes ----------
-
-   (1) There are supposed to be seven words in this case.  So, one is
-missing.
-
-   (2) Look at one of the following sentences (the second has to be
-interpreted with the `-c' option):
-
-     "Ai"e!  Voici le proble`me que j'ai"
-     Ai:e!  Voici le proble`me que j'ai:
-
-   There is an ambiguity between an ai", the small animal, and the
-indicative future of _avoir_ (first person singular), when followed by
-what could be a diaeresis mark.  Hopefully, the case is solved by the
-fact that an apostrophe always precedes the verb and almost never the
-animal.
-
-   (3) I did not pay attention to proper nouns, but this one showed up
-as being fairly evident.
-
-\1f
-File: recode.info,  Node: Mule,  Prev: Texte,  Up: Miscellaneous
-
-Mule as a multiplexed charset
-=============================
-
-   This version of `recode' barely starts supporting multiplexed or
-super-charsets, that is, those encoding methods by which a single text
-stream may contain a combination of more than one constituent charset.
-The only multiplexed charset in `recode' is `Mule', and even then, it
-is only very partially implemented: the only correspondence available
-is with `Latin-1'.  The author fastly implemented this only because he
-needed this for himself.  However, it is intended that Mule support to
-become more real in subsequent releases of `recode'.
-
-   Multiplexed charsets are not to be confused with mixed charset texts
-(*note Mixed::).  For mixed charset input, the rules allowing to
-distinguish which charset is current, at any given place, are kind of
-informal, and driven from the semantics of what the file contains.  On
-the other side, multiplexed charsets are _designed_ to be interpreted
-fairly precisely, and quite independently of any informational context.
-
-   The spelling `Mule' originally stands for `_mul_tilingual
-_e_nhancement to GNU Emacs', it is the result of a collective effort
-orchestrated by Handa Ken'ichi since 1993.  When `Mule' got rewritten
-in the main development stream of GNU Emacs 20, the FSF renamed it
-`MULE', meaning `_mul_tilingual _e_nvironment in GNU Emacs'.  Even if
-the charset `Mule' is meant to stay internal to GNU Emacs, it sometimes
-breaks loose in external files, and as a consequence, a recoding tool
-is sometimes needed.  Within Emacs, `Mule' comes with `Leim', which
-stands for `_l_ibraries of _e_macs _i_nput _m_ethods'.  One of these
-libraries is named `quail'(1).
-
-   ---------- Footnotes ----------
-
-   (1) Usually, quail means quail egg in Japanese, while egg alone is
-usually chicken egg.  Both quail egg and chicken egg are popular food
-in Japan.  The `quail' input system has been named because it is
-smaller that the previous `EGG' system.  As for `EGG', it is the
-translation of `TAMAGO'.  This word comes from the Japanese sentence
-`_ta_kusan _ma_tasete _go_mennasai', meaning `sorry to have let you
-wait so long'.  Of course, the publication of `EGG' has been delayed
-many times...  (Story by Takahashi Naoto)
-
-\1f
-File: recode.info,  Node: Surfaces,  Next: Internals,  Prev: Miscellaneous,  Up: Top
-
-All about surfaces
-******************
-
-   The "trivial surface" consists of using a fixed number of bits
-(often eight) for each character, the bits together hold the integer
-value of the index for the character in its charset table.  There are
-many kinds of surfaces, beyond the trivial one, all having the purpose
-of increasing selected qualities for the storage or transmission.  For
-example, surfaces might increase the resistance to channel limits
-(`Base64'), the transmission speed (`gzip'), the information privacy
-(`DES'), the conformance to operating system conventions (`CR-LF'), the
-blocking into records (`VB'), and surely other things as well(1).  Many
-surfaces may be applied to a stream of characters from a charset, the
-order of application of surfaces is important, and surfaces should be
-removed in the reverse order of their application.
-
-   Even if surfaces may generally be applied to various charsets, some
-surfaces were specifically designed for a particular charset, and would
-not make much sense if applied to other charsets.  In such cases, these
-conceptual surfaces have been implemented as `recode' charsets, instead
-of as surfaces.  This choice yields to cleaner syntax and usage.  *Note
-Universal::.
-
-   Surfaces are implemented within `recode' as special charsets which
-may only transform to or from the `data' or `tree' special charsets.
-Clever users may use this knowledge for writing surface names in
-requests exactly as if they were pure charsets, when the only need is
-to change surfaces without any kind of recoding between real charsets.
-In such contexts, either `data' or `tree' may also be used as if it
-were some kind of generic, anonymous charset: the request
-`data..SURFACE' merely adds the given SURFACE, while the request
-`SURFACE..data' removes it.
-
-   The `recode' library distinguishes between mere data surfaces, and
-structural surfaces, also called tree surfaces for short.  Structural
-surfaces might allow, in the long run, transformations between a few
-specialised representations of structural information like MIME parts,
-Perl or Python initialisers, LISP S-expressions, XML, Emacs outlines,
-etc.
-
-   We are still experimenting with surfaces in `recode'.  The concept
-opens the doors to many avenues; it is not clear yet which ones are
-worth pursuing, and which should be abandoned.  In particular,
-implementation of structural surfaces is barely starting, there is not
-even a commitment that tree surfaces will stay in `recode', if they do
-prove to be more cumbersome than useful.  This chapter presents all
-surfaces currently available.
-
-* Menu:
-
-* Permutations::        Permuting groups of bytes
-* End lines::           Representation for end of lines
-* MIME::                MIME contents encodings
-* Dump::                Interpreted character dumps
-* Test::                Artificial data for testing
-
-   ---------- Footnotes ----------
-
-   (1) These are mere examples to explain the concept, `recode' only
-has `Base64' and `CR-LF', actually.
-
-\1f
-File: recode.info,  Node: Permutations,  Next: End lines,  Prev: Surfaces,  Up: Surfaces
-
-Permuting groups of bytes
-=========================
-
-   A permutation is a surface transformation which reorders groups of
-eight-bit bytes.  A _21_ permutation exchanges pairs of successive
-bytes.  If the text contains an odd number of bytes, the last byte is
-merely copied.  An _4321_ permutation inverts the order of quadruples
-of bytes.  If the text does not contains a multiple of four bytes, the
-remaining bytes are nevertheless permuted as _321_ if there are three
-bytes, _21_ if there are two bytes, or merely copied otherwise.
-
-`21'
-     This surface is available in `recode' under the name
-     `21-Permutation' and has `swabytes' for an alias.
-
-`4321'
-     This surface is available in `recode' under the name
-     `4321-Permutation'.
-
-\1f
-File: recode.info,  Node: End lines,  Next: MIME,  Prev: Permutations,  Up: Surfaces
-
-Representation for end of lines
-===============================
-
-   The same charset might slightly differ, from one system to another,
-for the single fact that end of lines are not represented identically
-on all systems.  The representation for an end of line within `recode'
-is the `ASCII' or `UCS' code with value 10, or `LF'.  Other conventions
-for representing end of lines are available through surfaces.
-
-`CR'
-     This convention is popular on Apple's Macintosh machines.  When
-     this surface is applied, each line is terminated by `CR', which has
-     `ASCII' value 13.  Unless the library is operating in strict mode,
-     adding or removing the surface will in fact _exchange_ `CR' and
-     `LF', for better reversibility.  However, in strict mode, the
-     exchange does not happen, any `CR' will be copied verbatim while
-     applying the surface, and any `LF' will be copied verbatim while
-     removing it.
-
-     This surface is available in `recode' under the name `CR', it does
-     not have any aliases.  This is the implied surface for the Apple
-     Macintosh related charsets.
-
-`CR-LF'
-     This convention is popular on Microsoft systems running on IBM PCs
-     and compatible.  When this surface is applied, each line is
-     terminated by a sequence of two characters: one `CR' followed by
-     one `LF', in that order.
-
-     For compatibility with oldish MS-DOS systems, removing a `CR-LF'
-     surface will discard the first encountered `C-z', which has
-     `ASCII' value 26, and everything following it in the text.  Adding
-     this surface will not, however, append a `C-z' to the result.
-
-     This surface is available in `recode' under the name `CR-LF' and
-     has `cl' for an alias.  This is the implied surface for the IBM or
-     Microsoft related charsets or code pages.
-
-   Some other charsets might have their own representation for an end of
-line, which is different from `LF'.  For example, this is the case of
-various `EBCDIC' charsets, or `Icon-QNX'.  The recoding of end of lines
-is intimately tied into such charsets, it is not available separately
-as surfaces.
-
-\1f
-File: recode.info,  Node: MIME,  Next: Dump,  Prev: End lines,  Up: Surfaces
-
-MIME contents encodings
-=======================
-
-   RFC 2045 defines two 7-bit surfaces, meant to prepare 8-bit messages
-for transmission.  Base64 is especially usable for binary entities,
-while Quoted-Printable is especially usable for text entities, in those
-case the lower 128 characters of the underlying charset coincide with
-ASCII.
-
-`Base64'
-     This surface is available in `recode' under the name `Base64',
-     with `b64' and `64' as acceptable aliases.
-
-`Quoted-Printable'
-     This surface is available in `recode' under the name
-     `Quoted-Printable', with `quote-printable' and `QP' as acceptable
-     aliases.
-
-   Note that `UTF-7', which may be also considered as a MIME surface,
-is provided as a genuine charset instead, as it necessary relates to
-`UCS-2' and nothing else.  *Note UTF-7::.
-
-   A little historical note, also showing the three levels of
-acceptance of Internet standards.  MIME changed from a "Proposed
-Standard" (RFC 1341-1344, 1992) to a "Draft Standard" (RFC 1521-1523)
-in 1993, and was _recycled_ as a "Draft Standard" in 1996-11.  It is
-not yet a "Full Standard".
-
-\1f
-File: recode.info,  Node: Dump,  Next: Test,  Prev: MIME,  Up: Surfaces
-
-Interpreted character dumps
-===========================
-
-   Dumps are surfaces meant to express, in ways which are a bit more
-readable, the bit patterns used to represent characters.  They allow
-the inspection or debugging of character streams, but also, they may
-assist a bit the production of C source code which, once compiled,
-would hold in memory a copy of the original coding.  However, `recode'
-does not attempt, in any way, to produce complete C source files in
-dumps.  User hand editing or `Makefile' trickery is still needed for
-adding missing lines.  Dumps may be given in decimal, hexadecimal and
-octal, and be based over chunks of either one, two or four eight-bit
-bytes.  Formatting has been chosen to respect the C language syntax for
-number constants, with commas and newlines inserted appropriately.
-
-   However, when dumping two or four byte chunks, the last chunk may be
-incomplete.  This is observable through the usage of narrower expression
-for that last chunk only.  Such a shorter chunk would not be compiled
-properly within a C initialiser, as all members of an array share a
-single type, and so, have identical sizes.
-
-`Octal-1'
-     This surface corresponds to an octal expression of each input byte.
-
-     It is available in `recode' under the name `Octal-1', with `o1'
-     and `o' as acceptable aliases.
-
-`Octal-2'
-     This surface corresponds to an octal expression of each pair of
-     input bytes, except for the last pair, which may be short.
-
-     It is available in `recode' under the name `Octal-2' and has `o2'
-     for an alias.
-
-`Octal-4'
-     This surface corresponds to an octal expression of each quadruple
-     of input bytes, except for the last quadruple, which may be short.
-
-     It is available in `recode' under the name `Octal-4' and has `o4'
-     for an alias.
-
-`Decimal-1'
-     This surface corresponds to an decimal expression of each input
-     byte.
-
-     It is available in `recode' under the name `Decimal-1', with `d1'
-     and `d' as acceptable aliases.
-
-`Decimal-2'
-     This surface corresponds to an decimal expression of each pair of
-     input bytes, except for the last pair, which may be short.
-
-     It is available in `recode' under the name `Decimal-2' and has
-     `d2' for an alias.
-
-`Decimal-4'
-     This surface corresponds to an decimal expression of each
-     quadruple of input bytes, except for the last quadruple, which may
-     be short.
-
-     It is available in `recode' under the name `Decimal-4' and has
-     `d4' for an alias.
-
-`Hexadecimal-1'
-     This surface corresponds to an hexadecimal expression of each
-     input byte.
-
-     It is available in `recode' under the name `Hexadecimal-1', with
-     `x1' and `x' as acceptable aliases.
-
-`Hexadecimal-2'
-     This surface corresponds to an hexadecimal expression of each pair
-     of input bytes, except for the last pair, which may be short.
-
-     It is available in `recode' under the name `Hexadecimal-2', with
-     `x2' for an alias.
-
-`Hexadecimal-4'
-     This surface corresponds to an hexadecimal expression of each
-     quadruple of input bytes, except for the last quadruple, which may
-     be short.
-
-     It is available in `recode' under the name `Hexadecimal-4', with
-     `x4' for an alias.
-
-   When removing a dump surface, that is, when reading a dump results
-back into a sequence of bytes, the narrower expression for a short last
-chunk is recognised, so dumping is a fully reversible operation.
-However, in case you want to produce dumps by other means than through
-`recode', beware that for decimal dumps, the library has to rely on the
-number of spaces to establish the original byte size of the chunk.
-
-   Although the library might report reversibility errors, removing a
-dump surface is a rather forgiving process: one may mix bases, group a
-variable number of data per source line, or use shorter chunks in
-places other than at the far end.  Also, source lines not beginning
-with a number are skipped.  So, `recode' should often be able to read a
-whole C header file, wrapping the results of a previous dump, and
-regenerate the original byte string.
-
index d2eb10333349a4b882a8249b9585d7789253286c..ea8beda08e51a8650bc58f71325d820fdf559c24 100644 (file)
@@ -25,6 +25,695 @@ manual into another language, under the above conditions for modified
 versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
+\1f
+File: recode.info,  Node: HTML,  Next: LaTeX,  Prev: Miscellaneous,  Up: Miscellaneous
+
+World Wide Web representations
+==============================
+
+   Character entities have been introduced by SGML and made widely
+popular through HTML, the markup language in use for the World Wide
+Web, or Web or WWW for short.  For representing _unusual_ characters,
+HTML texts use special sequences, beginning with an ampersand `&' and
+ending with a semicolon `;'.  The sequence may itself start with a
+number sigh `#' and be followed by digits, so forming a "numeric
+character reference", or else be an alphabetic identifier, so forming a
+"character entity reference".
+
+   The HTML standards have been revised into different HTML levels over
+time, and the list of allowable character entities differ in them.  The
+later XML, meant to simplify many things, has an option
+(`standalone=yes') which much restricts that list.  The `recode'
+library is able to convert character references between their mnemonic
+form and their numeric form, depending on aimed HTML standard level.
+It also can, of course, convert between HTML and various other charsets.
+
+   Here is a list of those HTML variants which `recode' supports.  Some
+notes have been provided by François Yergeau <yergeau@alis.com>.
+
+`XML-standalone'
+     This charset is available in `recode' under the name
+     `XML-standalone', with `h0' as an acceptable alias.  It is
+     documented in section 4.1 of `http://www.w3.org/TR/REC-xml'.  It
+     only knows `&amp;', `&gt;', `&lt;', `&quot;' and `&apos;'.
+
+`HTML_1.1'
+     This charset is available in `recode' under the name `HTML_1.1',
+     with `h1' as an acceptable alias.  HTML 1.0 was never really
+     documented.
+
+`HTML_2.0'
+     This charset is available in `recode' under the name `HTML_2.0',
+     and has `RFC1866', `1866' and `h2' for aliases.  HTML 2.0 entities
+     are listed in RFC 1866.  Basically, there is an entity for each
+     _alphabetical_ character in the right part of ISO 8859-1.  In
+     addition, there are four entities for syntax-significant ASCII
+     characters: `&amp;', `&gt;', `&lt;' and `&quot;'.
+
+`HTML-i18n'
+     This charset is available in `recode' under the name `HTML-i18n',
+     and has `RFC2070' and `2070' for aliases.  RFC 2070 added entities
+     to cover the whole right part of ISO 8859-1.  The list is
+     conveniently accessible at
+     `http://www.alis.com:8085/ietf/html/html-latin1.sgml'.  In
+     addition, four i18n-related entities were added: `&zwnj;'
+     (`&#8204;'), `&zwj;' (`&#8205;'), `&lrm;' (`&#8206') and `&rlm;'
+     (`&#8207;').
+
+`HTML_3.2'
+     This charset is available in `recode' under the name `HTML_3.2',
+     with `h3' as an acceptable alias.  HTML 3.2
+     (http://www.w3.org/TR/REC-html32.html) took up the full Latin-1
+     list but not the i18n-related entities from RFC 2070.
+
+`HTML_4.0'
+     This charset is available in `recode' under the name `HTML_4.0',
+     and has `h4' and `h' for aliases.  Beware that the particular
+     alias `h' is not _tied_ to HTML 4.0, but to the highest HTML level
+     supported by `recode'; so it might later represent HTML level 5 if
+     this is ever created.  HTML 4.0 (http://www.w3.org/TR/REC-html40/)
+     has the whole Latin-1 list, a set of entities for symbols,
+     mathematical symbols, and Greek letters, and another set for
+     markup-significant and internationalization characters comprising
+     the 4 ASCII entities, the 4 i18n-related from RFC 2070 plus some
+     more.  See `http://www.w3.org/TR/REC-html40/sgml/entities.html'.
+
+   Printable characters from Latin-1 may be used directly in an HTML
+text.  However, partly because people have deficient keyboards, partly
+because people want to transmit HTML texts over non 8-bit clean
+channels while not using MIME, it is common (yet debatable) to use
+character entity references even for Latin-1 characters, when they fall
+outside ASCII (that is, when they have the 8th bit set).
+
+   When you recode from another charset to `HTML', beware that all
+occurrences of double quotes, ampersands, and left or right angle
+brackets are translated into special sequences.  However, in practice,
+people often use ampersands and angle brackets in the other charset for
+introducing HTML commands, compromising it: it is not pure HTML, not it
+is pure other charset.  These particular translations can be rather
+inconvenient, they may be specifically inhibited through the command
+option `-d' (*note Mixed::).
+
+   Codes not having a mnemonic entity are output by `recode' using the
+`&#NNN;' notation, where NNN is a decimal representation of the UCS
+code value.  When there is an entity name for a character, it is always
+preferred over a numeric character reference.  ASCII printable
+characters are always generated directly.  So is the newline.  While
+reading HTML, `recode' supports numeric character reference as alternate
+writings, even when written as hexadecimal numbers, as in `&#xfffd'.
+This is documented in:
+
+     http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.3
+
+   When `recode' translates to HTML, the translation occurs according to
+the HTML level as selected by the goal charset.  When translating _from_
+HTML, `recode' not only accepts the character entity references known at
+that level, but also those of all other levels, as well as a few
+alternative special sequences, to be forgiving to files using other
+HTML standards.
+
+   The `recode' program can be used to _normalise_ an HTML file using
+oldish conventions.  For example, it accepts `&AE;', as this once was a
+valid writing, somewhere.  However, it should always produce `&AElig;'
+instead of `&AE;'.  Yet, this is not completely true.  If one does:
+
+     recode h3..h3 < INPUT
+
+the operation will be optimised into a mere copy, and you can get `&AE;'
+this way, if you had some in your input file.  But if you explicitly
+defeat the optimisation, like this maybe:
+
+     recode h3..u2,u2..h3 < INPUT
+
+then `&AE;' should be normalised into `&AElig;' by the operation.
+
+\1f
+File: recode.info,  Node: LaTeX,  Next: Texinfo,  Prev: HTML,  Up: Miscellaneous
+
+LaTeX macro calls
+=================
+
+   This charset is available in `recode' under the name `LaTeX' and has
+`ltex' as an alias.  It is used for ASCII files coded to be read by
+LaTeX or, in certain cases, by TeX.
+
+   Whenever you recode from another charset to `LaTeX', beware that all
+occurrences of backslashes `\' are translated into the string
+`\backslash{}'.  However, in practice, people often use backslashes in
+the other charset for introducing TeX commands, compromising it: it is
+not pure TeX, nor it is pure other charset.  This translation of
+backslashes into `\backslash{}' can be rather inconvenient, it may be
+inhibited through the command option `-d' (*note Mixed::).
+
+\1f
+File: recode.info,  Node: Texinfo,  Next: Vietnamese,  Prev: LaTeX,  Up: Miscellaneous
+
+GNU project documentation files
+===============================
+
+   This charset is available in `recode' under the name `Texinfo' and
+has `texi' and `ti' for aliases.  It is used by the GNU project for its
+documentation.  Texinfo files may be converted into Info files by the
+`makeinfo' program and into nice printed manuals by the TeX system.
+
+   Even if `recode' may transform other charsets to Texinfo, it may not
+read Texinfo files yet.  In these times, usages are also changing
+between versions of Texinfo, and `recode' only partially succeeds in
+correctly following these changes.  So, for now, Texinfo support in
+`recode' should be considered as work still in progress (!).
+
+\1f
+File: recode.info,  Node: Vietnamese,  Next: African,  Prev: Texinfo,  Up: Miscellaneous
+
+Vietnamese charsets
+===================
+
+   We are currently experimenting the implementation, in `recode', of a
+few character sets and transliterated forms to handle the Vietnamese
+language.  They are quite briefly summarised, here.
+
+`TCVN'
+     The TCVN charset has an incomplete name.  It might be one of the
+     three charset `VN1', `VN2' or `VN3'.  Yes `VN2' might be a second
+     version of `VISCII'.  To be clarified.
+
+`VISCII'
+     This is an 8-bit character set which seems to be rather popular for
+     writing Vietnamese.
+
+`VPS'
+     This is an 8-bit character set for Vietnamese.  No much reference.
+
+`VIQR'
+     The VIQR convention is a 7-bit, `ASCII' transliteration for
+     Vietnamese.
+
+`VNI'
+     The VNI convention is a 8-bit, `Latin-1' transliteration for
+     Vietnamese.
+
+   Still lacking for Vietnamese in `recode', are the charsets `CP1129'
+and `CP1258'.
+
+\1f
+File: recode.info,  Node: African,  Next: Others,  Prev: Vietnamese,  Up: Miscellaneous
+
+African charsets
+================
+
+   Some African character sets are available for a few languages, when
+these are heavily used in countries where French is also currently
+spoken.
+
+   One African charset is usable for Bambara, Ewondo and Fulfude, as
+well as for French.  This charset is available in `recode' under the
+name `AFRFUL-102-BPI_OCIL'.  Accepted aliases are `bambara', `bra',
+`ewondo' and `fulfude'.  Transliterated forms of the same are available
+under the name `AFRFUL-103-BPI_OCIL'.  Accepted aliases are
+`t-bambara', `t-bra', `t-ewondo' and `t-fulfude'.
+
+   Another African charset is usable for Lingala, Sango and Wolof, as
+well as for French.  This charset is available in `recode' under the
+name `AFRLIN-104-BPI_OCIL'.  Accepted aliases are `lingala', `lin',
+`sango' and `wolof'.  Transliterated forms of the same are available
+under the name `AFRLIN-105-BPI_OCIL'.  Accepted aliases are
+`t-lingala', `t-lin', `t-sango' and `t-wolof'.
+
+   To ease exchange with `ISO-8859-1', there is a charset conveying
+transliterated forms for Latin-1 in a way which is compatible with the
+other African charsets in this series.  This charset is available in
+`recode' under the name `AFRL1-101-BPI_OCIL'.  Accepted aliases are
+`t-fra' and `t-francais'.
+
+\1f
+File: recode.info,  Node: Others,  Next: Texte,  Prev: African,  Up: Miscellaneous
+
+Cyrillic and other charsets
+===========================
+
+   The following Cyrillic charsets are already available in `recode'
+through RFC 1345 tables: `CP1251' with aliases `1251', ` ms-cyrl' and
+`windows-1251'; `CSN_369103' with aliases `ISO-IR-139' and `KOI8_L2';
+`ECMA-cyrillic' with aliases `ECMA-113', `ECMA-113:1986' and
+`iso-ir-111', `IBM880' with aliases `880', `CP880' and
+`EBCDIC-Cyrillic'; `INIS-cyrillic' with alias `iso-ir-51'; `ISO-8859-5'
+with aliases `cyrillic', ` ISO-8859-5:1988' and `iso-ir-144'; `KOI-7';
+`KOI-8' with alias `GOST_19768-74'; `KOI8-R'; `KOI8-RU' and finally
+`KOI8-U'.
+
+   There seems to remain some confusion in Roman charsets for Cyrillic
+languages, and because a few users requested it repeatedly, `recode'
+now offers special services in that area.  Consider these charsets as
+experimental and debatable, as the extraneous tables describing them are
+still a bit fuzzy or non-standard.  Hopefully, in the long run, these
+charsets will be covered in Keld Simonsen's works to the satisfaction of
+everybody, and this section will merely disappear.
+
+`KEYBCS2'
+     This charset is available under the name `KEYBCS2', with
+     `Kamenicky' as an accepted alias.
+
+`CORK'
+     This charset is available under the name `CORK', with `T1' as an
+     accepted alias.
+
+`KOI-8_CS2'
+     This charset is available under the name `KOI-8_CS2'.
+
+\1f
+File: recode.info,  Node: Texte,  Next: Mule,  Prev: Others,  Up: Miscellaneous
+
+Easy French conventions
+=======================
+
+   This charset is available in `recode' under the name `Texte' and has
+`txte' for an alias.  It is a seven bits code, identical to `ASCII-BS',
+save for French diacritics which are noted using a slightly different
+convention.
+
+   At text entry time, these conventions provide a little speed up.  At
+read time, they slightly improve the readability over a few alternate
+ways of coding diacritics.  Of course, it would better to have a
+specialised keyboard to make direct eight bits entries and fonts for
+immediately displaying eight bit ISO Latin-1 characters.  But not
+everybody is so fortunate.  In a few mailing environments, and sadly
+enough, it still happens that the eight bit is often willing-fully
+destroyed.
+
+   Easy French has been in use in France for a while.  I only slightly
+adapted it (the diaeresis option) to make it more comfortable to several
+usages in Que'bec originating from Universite' de Montre'al.  In fact,
+the main problem for me was not to necessarily to invent Easy French,
+but to recognise the "best" convention to use, (best is not being
+defined, here) and to try to solve the main pitfalls associated with
+the selected convention.  Shortly said, we have:
+
+`e''
+     for `e' (and some other vowels) with an acute accent,
+
+`e`'
+     for `e' (and some other vowels) with a grave accent,
+
+`e^'
+     for `e' (and some other vowels) with a circumflex accent,
+
+`e"'
+     for `e' (and some other vowels) with a diaeresis,
+
+`c,'
+     for `c' with a cedilla.
+
+There is no attempt at expressing the `ae' and `oe' diphthongs.  French
+also uses tildes over `n' and `a', but seldomly, and this is not
+represented either.  In some countries, `:' is used instead of `"' to
+mark diaeresis.  `recode' supports only one convention per call,
+depending on the `-c' option of the `recode' command.  French quotes
+(sometimes called "angle quotes") are noted the same way English quotes
+are noted in TeX, _id est_ by ```' and `'''.  No effort has been put to
+preserve Latin ligatures (`ae', `oe') which are representable in
+several other charsets.  So, these ligatures may be lost through Easy
+French conventions.
+
+   The convention is prone to losing information, because the diacritic
+meaning overloads some characters that already have other uses.  To
+alleviate this, some knowledge of the French language is boosted into
+the recognition routines.  So, the following subtleties are
+systematically obeyed by the various recognisers.
+
+  1. A comma which follows a `c' is interpreted as a cedilla only if it
+     is followed by one of the vowels `a', `o' or `u'.
+
+  2. A single quote which follows a `e' does not necessarily means an
+     acute accent if it is followed by a single other one.  For example:
+
+    `e''
+          will give an `e' with an acute accent.
+
+    `e'''
+          will give a simple `e', with a closing quotation mark.
+
+    `e''''
+          will give an `e' with an acute accent, followed by a closing
+          quotation mark.
+
+     There is a problem induced by this convention if there are English
+     quotations with a French text.  In sentences like:
+
+          There's a meeting at Archie's restaurant.
+
+     the single quotes will be mistaken twice for acute accents.  So
+     English contractions and suffix possessives could be mangled.
+
+  3. A double quote or colon, depending on `-c' option, which follows a
+     vowel is interpreted as diaeresis only if it is followed by
+     another letter.  But there are in French several words that _end_
+     with a diaeresis, and the `recode' library is aware of them.
+     There are words ending in "igue", either feminine words without a
+     relative masculine (besaigue" and cigue"), or feminine words with
+     a relative masculine(1) (aigue", ambigue", contigue", exigue",
+     subaigue" and suraigue").  There are also words not ending in
+     "igue", but instead, either ending by "i"(2) (ai", congai", goi",
+     hai"kai", inoui", sai", samurai", thai" and tokai"), ending by "e"
+     (canoe") or ending by "u"(3) (Esau").
+
+     Just to complete this topic, note that it would be wrong to make a
+     rule for all words ending in "igue" as needing a diaerisis, as
+     there are counter-examples (becfigue, be`sigue, bigue, bordigue,
+     bourdigue, brigue, contre-digue, digue, d'intrigue, fatigue,
+     figue, garrigue, gigue, igue, intrigue, ligue, prodigue, sarigue
+     and zigue).
+
+   ---------- Footnotes ----------
+
+   (1) There are supposed to be seven words in this case.  So, one is
+missing.
+
+   (2) Look at one of the following sentences (the second has to be
+interpreted with the `-c' option):
+
+     "Ai"e!  Voici le proble`me que j'ai"
+     Ai:e!  Voici le proble`me que j'ai:
+
+   There is an ambiguity between an ai", the small animal, and the
+indicative future of _avoir_ (first person singular), when followed by
+what could be a diaeresis mark.  Hopefully, the case is solved by the
+fact that an apostrophe always precedes the verb and almost never the
+animal.
+
+   (3) I did not pay attention to proper nouns, but this one showed up
+as being fairly evident.
+
+\1f
+File: recode.info,  Node: Mule,  Prev: Texte,  Up: Miscellaneous
+
+Mule as a multiplexed charset
+=============================
+
+   This version of `recode' barely starts supporting multiplexed or
+super-charsets, that is, those encoding methods by which a single text
+stream may contain a combination of more than one constituent charset.
+The only multiplexed charset in `recode' is `Mule', and even then, it
+is only very partially implemented: the only correspondence available
+is with `Latin-1'.  The author fastly implemented this only because he
+needed this for himself.  However, it is intended that Mule support to
+become more real in subsequent releases of `recode'.
+
+   Multiplexed charsets are not to be confused with mixed charset texts
+(*note Mixed::).  For mixed charset input, the rules allowing to
+distinguish which charset is current, at any given place, are kind of
+informal, and driven from the semantics of what the file contains.  On
+the other side, multiplexed charsets are _designed_ to be interpreted
+fairly precisely, and quite independently of any informational context.
+
+   The spelling `Mule' originally stands for `_mul_tilingual
+_e_nhancement to GNU Emacs', it is the result of a collective effort
+orchestrated by Handa Ken'ichi since 1993.  When `Mule' got rewritten
+in the main development stream of GNU Emacs 20, the FSF renamed it
+`MULE', meaning `_mul_tilingual _e_nvironment in GNU Emacs'.  Even if
+the charset `Mule' is meant to stay internal to GNU Emacs, it sometimes
+breaks loose in external files, and as a consequence, a recoding tool
+is sometimes needed.  Within Emacs, `Mule' comes with `Leim', which
+stands for `_l_ibraries of _e_macs _i_nput _m_ethods'.  One of these
+libraries is named `quail'(1).
+
+   ---------- Footnotes ----------
+
+   (1) Usually, quail means quail egg in Japanese, while egg alone is
+usually chicken egg.  Both quail egg and chicken egg are popular food
+in Japan.  The `quail' input system has been named because it is
+smaller that the previous `EGG' system.  As for `EGG', it is the
+translation of `TAMAGO'.  This word comes from the Japanese sentence
+`_ta_kusan _ma_tasete _go_mennasai', meaning `sorry to have let you
+wait so long'.  Of course, the publication of `EGG' has been delayed
+many times...  (Story by Takahashi Naoto)
+
+\1f
+File: recode.info,  Node: Surfaces,  Next: Internals,  Prev: Miscellaneous,  Up: Top
+
+All about surfaces
+******************
+
+   The "trivial surface" consists of using a fixed number of bits
+(often eight) for each character, the bits together hold the integer
+value of the index for the character in its charset table.  There are
+many kinds of surfaces, beyond the trivial one, all having the purpose
+of increasing selected qualities for the storage or transmission.  For
+example, surfaces might increase the resistance to channel limits
+(`Base64'), the transmission speed (`gzip'), the information privacy
+(`DES'), the conformance to operating system conventions (`CR-LF'), the
+blocking into records (`VB'), and surely other things as well(1).  Many
+surfaces may be applied to a stream of characters from a charset, the
+order of application of surfaces is important, and surfaces should be
+removed in the reverse order of their application.
+
+   Even if surfaces may generally be applied to various charsets, some
+surfaces were specifically designed for a particular charset, and would
+not make much sense if applied to other charsets.  In such cases, these
+conceptual surfaces have been implemented as `recode' charsets, instead
+of as surfaces.  This choice yields to cleaner syntax and usage.  *Note
+Universal::.
+
+   Surfaces are implemented within `recode' as special charsets which
+may only transform to or from the `data' or `tree' special charsets.
+Clever users may use this knowledge for writing surface names in
+requests exactly as if they were pure charsets, when the only need is
+to change surfaces without any kind of recoding between real charsets.
+In such contexts, either `data' or `tree' may also be used as if it
+were some kind of generic, anonymous charset: the request
+`data..SURFACE' merely adds the given SURFACE, while the request
+`SURFACE..data' removes it.
+
+   The `recode' library distinguishes between mere data surfaces, and
+structural surfaces, also called tree surfaces for short.  Structural
+surfaces might allow, in the long run, transformations between a few
+specialised representations of structural information like MIME parts,
+Perl or Python initialisers, LISP S-expressions, XML, Emacs outlines,
+etc.
+
+   We are still experimenting with surfaces in `recode'.  The concept
+opens the doors to many avenues; it is not clear yet which ones are
+worth pursuing, and which should be abandoned.  In particular,
+implementation of structural surfaces is barely starting, there is not
+even a commitment that tree surfaces will stay in `recode', if they do
+prove to be more cumbersome than useful.  This chapter presents all
+surfaces currently available.
+
+* Menu:
+
+* Permutations::        Permuting groups of bytes
+* End lines::           Representation for end of lines
+* MIME::                MIME contents encodings
+* Dump::                Interpreted character dumps
+* Test::                Artificial data for testing
+
+   ---------- Footnotes ----------
+
+   (1) These are mere examples to explain the concept, `recode' only
+has `Base64' and `CR-LF', actually.
+
+\1f
+File: recode.info,  Node: Permutations,  Next: End lines,  Prev: Surfaces,  Up: Surfaces
+
+Permuting groups of bytes
+=========================
+
+   A permutation is a surface transformation which reorders groups of
+eight-bit bytes.  A _21_ permutation exchanges pairs of successive
+bytes.  If the text contains an odd number of bytes, the last byte is
+merely copied.  An _4321_ permutation inverts the order of quadruples
+of bytes.  If the text does not contains a multiple of four bytes, the
+remaining bytes are nevertheless permuted as _321_ if there are three
+bytes, _21_ if there are two bytes, or merely copied otherwise.
+
+`21'
+     This surface is available in `recode' under the name
+     `21-Permutation' and has `swabytes' for an alias.
+
+`4321'
+     This surface is available in `recode' under the name
+     `4321-Permutation'.
+
+\1f
+File: recode.info,  Node: End lines,  Next: MIME,  Prev: Permutations,  Up: Surfaces
+
+Representation for end of lines
+===============================
+
+   The same charset might slightly differ, from one system to another,
+for the single fact that end of lines are not represented identically
+on all systems.  The representation for an end of line within `recode'
+is the `ASCII' or `UCS' code with value 10, or `LF'.  Other conventions
+for representing end of lines are available through surfaces.
+
+`CR'
+     This convention is popular on Apple's Macintosh machines.  When
+     this surface is applied, each line is terminated by `CR', which has
+     `ASCII' value 13.  Unless the library is operating in strict mode,
+     adding or removing the surface will in fact _exchange_ `CR' and
+     `LF', for better reversibility.  However, in strict mode, the
+     exchange does not happen, any `CR' will be copied verbatim while
+     applying the surface, and any `LF' will be copied verbatim while
+     removing it.
+
+     This surface is available in `recode' under the name `CR', it does
+     not have any aliases.  This is the implied surface for the Apple
+     Macintosh related charsets.
+
+`CR-LF'
+     This convention is popular on Microsoft systems running on IBM PCs
+     and compatible.  When this surface is applied, each line is
+     terminated by a sequence of two characters: one `CR' followed by
+     one `LF', in that order.
+
+     For compatibility with oldish MS-DOS systems, removing a `CR-LF'
+     surface will discard the first encountered `C-z', which has
+     `ASCII' value 26, and everything following it in the text.  Adding
+     this surface will not, however, append a `C-z' to the result.
+
+     This surface is available in `recode' under the name `CR-LF' and
+     has `cl' for an alias.  This is the implied surface for the IBM or
+     Microsoft related charsets or code pages.
+
+   Some other charsets might have their own representation for an end of
+line, which is different from `LF'.  For example, this is the case of
+various `EBCDIC' charsets, or `Icon-QNX'.  The recoding of end of lines
+is intimately tied into such charsets, it is not available separately
+as surfaces.
+
+\1f
+File: recode.info,  Node: MIME,  Next: Dump,  Prev: End lines,  Up: Surfaces
+
+MIME contents encodings
+=======================
+
+   RFC 2045 defines two 7-bit surfaces, meant to prepare 8-bit messages
+for transmission.  Base64 is especially usable for binary entities,
+while Quoted-Printable is especially usable for text entities, in those
+case the lower 128 characters of the underlying charset coincide with
+ASCII.
+
+`Base64'
+     This surface is available in `recode' under the name `Base64',
+     with `b64' and `64' as acceptable aliases.
+
+`Quoted-Printable'
+     This surface is available in `recode' under the name
+     `Quoted-Printable', with `quote-printable' and `QP' as acceptable
+     aliases.
+
+   Note that `UTF-7', which may be also considered as a MIME surface,
+is provided as a genuine charset instead, as it necessary relates to
+`UCS-2' and nothing else.  *Note UTF-7::.
+
+   A little historical note, also showing the three levels of
+acceptance of Internet standards.  MIME changed from a "Proposed
+Standard" (RFC 1341-1344, 1992) to a "Draft Standard" (RFC 1521-1523)
+in 1993, and was _recycled_ as a "Draft Standard" in 1996-11.  It is
+not yet a "Full Standard".
+
+\1f
+File: recode.info,  Node: Dump,  Next: Test,  Prev: MIME,  Up: Surfaces
+
+Interpreted character dumps
+===========================
+
+   Dumps are surfaces meant to express, in ways which are a bit more
+readable, the bit patterns used to represent characters.  They allow
+the inspection or debugging of character streams, but also, they may
+assist a bit the production of C source code which, once compiled,
+would hold in memory a copy of the original coding.  However, `recode'
+does not attempt, in any way, to produce complete C source files in
+dumps.  User hand editing or `Makefile' trickery is still needed for
+adding missing lines.  Dumps may be given in decimal, hexadecimal and
+octal, and be based over chunks of either one, two or four eight-bit
+bytes.  Formatting has been chosen to respect the C language syntax for
+number constants, with commas and newlines inserted appropriately.
+
+   However, when dumping two or four byte chunks, the last chunk may be
+incomplete.  This is observable through the usage of narrower expression
+for that last chunk only.  Such a shorter chunk would not be compiled
+properly within a C initialiser, as all members of an array share a
+single type, and so, have identical sizes.
+
+`Octal-1'
+     This surface corresponds to an octal expression of each input byte.
+
+     It is available in `recode' under the name `Octal-1', with `o1'
+     and `o' as acceptable aliases.
+
+`Octal-2'
+     This surface corresponds to an octal expression of each pair of
+     input bytes, except for the last pair, which may be short.
+
+     It is available in `recode' under the name `Octal-2' and has `o2'
+     for an alias.
+
+`Octal-4'
+     This surface corresponds to an octal expression of each quadruple
+     of input bytes, except for the last quadruple, which may be short.
+
+     It is available in `recode' under the name `Octal-4' and has `o4'
+     for an alias.
+
+`Decimal-1'
+     This surface corresponds to an decimal expression of each input
+     byte.
+
+     It is available in `recode' under the name `Decimal-1', with `d1'
+     and `d' as acceptable aliases.
+
+`Decimal-2'
+     This surface corresponds to an decimal expression of each pair of
+     input bytes, except for the last pair, which may be short.
+
+     It is available in `recode' under the name `Decimal-2' and has
+     `d2' for an alias.
+
+`Decimal-4'
+     This surface corresponds to an decimal expression of each
+     quadruple of input bytes, except for the last quadruple, which may
+     be short.
+
+     It is available in `recode' under the name `Decimal-4' and has
+     `d4' for an alias.
+
+`Hexadecimal-1'
+     This surface corresponds to an hexadecimal expression of each
+     input byte.
+
+     It is available in `recode' under the name `Hexadecimal-1', with
+     `x1' and `x' as acceptable aliases.
+
+`Hexadecimal-2'
+     This surface corresponds to an hexadecimal expression of each pair
+     of input bytes, except for the last pair, which may be short.
+
+     It is available in `recode' under the name `Hexadecimal-2', with
+     `x2' for an alias.
+
+`Hexadecimal-4'
+     This surface corresponds to an hexadecimal expression of each
+     quadruple of input bytes, except for the last quadruple, which may
+     be short.
+
+     It is available in `recode' under the name `Hexadecimal-4', with
+     `x4' for an alias.
+
+   When removing a dump surface, that is, when reading a dump results
+back into a sequence of bytes, the narrower expression for a short last
+chunk is recognised, so dumping is a fully reversible operation.
+However, in case you want to produce dumps by other means than through
+`recode', beware that for decimal dumps, the library has to rely on the
+number of spaces to establish the original byte size of the chunk.
+
+   Although the library might report reversibility errors, removing a
+dump surface is a rather forgiving process: one may mix bases, group a
+variable number of data per source line, or use shorter chunks in
+places other than at the far end.  Also, source lines not beginning
+with a number are skipped.  So, `recode' should often be able to read a
+whole C header file, wrapping the results of a previous dump, and
+regenerate the original byte string.
+
 \1f
 File: recode.info,  Node: Test,  Prev: Dump,  Up: Surfaces
 
@@ -266,490 +955,3 @@ recognises when a charset is so related to `data' or `tree', and then
 takes appropriate actions so that charset gets indeed installed as a
 surface.
 
-\1f
-File: recode.info,  Node: Design,  Prev: New surfaces,  Up: Internals
-
-Comments on the library design
-==============================
-
-   * Why a shared library?
-
-     There are many different approaches to reduce system requirements
-     to handle all tables needed in the `recode' library.  One of them
-     is to have the tables in an external format and only read them in
-     on demand.  After having pondered this for a while, I finally
-     decided against it, mainly because it involves its own kind of
-     installation complexity, and it is not clear to me that it would
-     be as interesting as I first imagined.
-
-     It looks more efficient to see all tables and algorithms already
-     mapped into virtual memory from the start of the execution, yet
-     not loaded in actual memory, than to go through many disk accesses
-     for opening various data files once the program is already
-     started, as this would be needed with other solutions.  Using a
-     shared library also has the indirect effect of making various
-     algorithms handily available, right in the same modules providing
-     the tables.  This alleviates much the burden of the maintenance.
-
-     Of course, I would like to later make an exception for only a few
-     tables, built locally by users for their own particular needs once
-     `recode' is installed.  `recode' should just go and fetch them.
-     But I do not perceive this as very urgent, yet useful enough to be
-     worth implementing.
-
-     Currently, all tables needed for recoding are precompiled into
-     binaries, and all these binaries are then made into a shared
-     library.  As an initial step, I turned `recode' into a main
-     program and a non-shared library, this allowed me to tidy up the
-     API, get rid of all global variables, etc.  It required a
-     surprising amount of program source massaging.  But once this
-     cleaned enough, it was easy to use Gordon Matzigkeit's `libtool'
-     package, and take advantage of the Automake interface to neatly
-     turn the non-shared library into a shared one.
-
-     Sites linking with the `recode' library, whose system does not
-     support any form of shared libraries, might end up with bulky
-     executables.  Surely, the `recode' library will have to be used
-     statically, and might not very nicely usable on such systems.  It
-     seems that progress has a price for those being slow at it.
-
-     There is a locality problem I did not address yet.  Currently, the
-     `recode' library takes many cycles to initialise itself, calling
-     each module in turn for it to set up associated knowledge about
-     charsets, aliases, elementary steps, recoding weights, etc.
-     _Then_, the recoding sequence is decided out of the command given.
-     I would not be surprised if initialisation was taking a
-     perceivable fraction of a second on slower machines.  One thing to
-     do, most probably not right in version 3.5, but the version after,
-     would have `recode' to pre-load all tables and dump them at
-     installation time.  The result would then be compiled and added to
-     the library.  This would spare many initialisation cycles, but more
-     importantly, would avoid calling all library modules, scattered
-     through the virtual memory, and so, possibly causing many spurious
-     page exceptions each time the initialisation is requested, at
-     least once per program execution.
-
-   * Why not a central charset?
-
-     It would be simpler, and I would like, if something like ISO 10646
-     was used as a turning template for all charsets in `recode'.  Even
-     if I think it could help to a certain extent, I'm still not fully
-     sure it would be sufficient in all cases.  Moreover, some people
-     disagree about using ISO 10646 as the central charset, to the
-     point I cannot totally ignore them, and surely, `recode' is not a
-     mean for me to force my own opinions on people.  I would like that
-     `recode' be practical more than dogmatic, and reflect usage more
-     than religions.
-
-     Currently, if you ask `recode' to go from CHARSET1 to CHARSET2
-     chosen at random, it is highly probable that the best path will be
-     quickly found as:
-
-          CHARSET1..`UCS-2'..CHARSET2
-
-     That is, it will almost always use the `UCS' as a trampoline
-     between charsets.  However, `UCS-2' will be immediately be
-     optimised out, and CHARSET1..CHARSET2 will often be performed in a
-     single step through a permutation table generated on the fly for
-     the circumstance (1).
-
-     In those few cases where `UCS-2' is not selected as a conceptual
-     intermediate, I plan to study if it could be made so.  But I guess
-     some cases will remain where `UCS-2' is not a proper choice.  Even
-     if `UCS' is often the good choice, I do not intend to forcefully
-     restrain `recode' around `UCS-2' (nor `UCS-4') for now.  We might
-     come to that one day, but it will come out of the natural
-     evolution of `recode'.  It will then reflect a fact, rather than a
-     preset dogma.
-
-   * Why not `iconv'?
-
-     The `iconv' routine and library allows for converting characters
-     from an input buffer to an input buffer, synchronously advancing
-     both buffer cursors.  If the output buffer is not big enough to
-     receive all of the conversion, the routine returns with the input
-     cursor set at the position where the conversion could later be
-     resumed, and the output cursor set to indicate until where the
-     output buffer has been filled.  Despite this scheme is simple and
-     nice, the `recode' library does not offer it currently.  Why not?
-
-     When long sequences of decodings, stepwise recodings, and
-     re-encodings are involved, as it happens in true life,
-     synchronising the input buffer back to where it should have
-     stopped, when the output buffer becomes full, is a difficult
-     problem.  Oh, we could make it simpler at the expense of loosing
-     space or speed: by inserting markers between each input character
-     and counting them at the output end; by processing only one
-     character in a time through the whole sequence; by repeatedly
-     attempting to recode various subsets of the input buffer, binary
-     searching on their length until the output just fits.  The
-     overhead of such solutions looks fully prohibitive to me, and the
-     gain very minimal.  I do not see a real advantage, nowadays,
-     imposing a fixed length to an output buffer.  It makes things so
-     much simpler and efficient to just let the output buffer size
-     float a bit.
-
-     Of course, if the above problem was solved, the `iconv' library
-     should be easily emulated, given that `recode' has similar
-     knowledge about charsets, of course.  This either solved or not,
-     the `iconv' program remains trivial (given similar knowledge about
-     charsets).  I also presume that the `genxlt' program would be easy
-     too, but I do not have enough detailed specifications of it to be
-     sure.
-
-     A lot of years ago, `recode' was using a similar scheme, and I
-     found it rather hard to manage for some cases.  I rethought the
-     overall structure of `recode' for getting away from that scheme,
-     and never regretted it.  I perceive `iconv' as an artificial
-     solution which surely has some elegances and virtues, but I do not
-     find it really useful as it stands: one always has to wrap `iconv'
-     into something more refined, extending it for real cases.  From
-     past experience, I think it is unduly hard to fully implement this
-     scheme.  It would be awkward that we do contortions for the sole
-     purpose of implementing exactly its specification, without real,
-     fairly sounded reasons (other then the fact some people once
-     thought it was worth standardising).  It is much better to
-     immediately aim for the refinement we need, without uselessly
-     forcing us into the dubious detour `iconv' represents.
-
-     Some may argue that if `recode' was using a comprehensive charset
-     as a turning template, as discussed in a previous point, this
-     would make `iconv' easier to implement.  Some may be tempted to
-     say that the cases which are hard to handle are not really needed,
-     nor interesting, anyway.  I feel and fear a bit some pressure
-     wanting that `recode' be split into the part that well fits the
-     `iconv' model, and the part that does not fit, considering this
-     second part less important, with the idea of dropping it one of
-     these days, maybe.  My guess is that users of the `recode'
-     library, whatever its form, would not like to have such arbitrary
-     limitations.  In the long run, we should not have to explain to
-     our users that some recodings may not be made available just
-     because they do not fit the simple model we had in mind when we
-     did it.  Instead, we should try to stay opened to the difficulties
-     of real life.  There is still a lot of complex needs for Asian
-     people, say, that `recode' does not currently address, while it
-     should.  Not only the doors should stay open, but we should force
-     them wider!
-
-   ---------- Footnotes ----------
-
-   (1) If strict mapping is requested, another efficient device will be
-used instead of a permutation.
-
-\1f
-File: recode.info,  Node: Concept Index,  Next: Option Index,  Prev: Internals,  Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* abbreviated names for charsets and surfaces: Requests.
-* adding new charsets:                   New charsets.
-* adding new surfaces:                   New surfaces.
-* African charsets:                      African.
-* aliases:                               Requests.
-* alternate names for charsets and surfaces: Requests.
-* ambiguous output, error message:       Errors.
-* ASCII table, recreating with recode:   ASCII.
-* average number of recoding steps:      Main flow.
-* bool data type:                        Outer level.
-* box-drawing characters:                Recoding.
-* bug reports, where to send:            Contributing.
-* byte order mark:                       UCS-2.
-* byte order swapping:                   Permutations.
-* caret ASCII code:                      CDC-NOS.
-* CDC charsets:                          CDC.
-* CDC Display Code, a table:             Display Code.
-* chaining of charsets in a request:     Requests.
-* character mnemonics, documentation:    Tabular.
-* character streams, description:        dump-with-names.
-* charset level functions:               Charset level.
-* charset names, valid characters:       Requests.
-* charset, default:                      Requests.
-* charset, pure:                         Surface overview.
-* charset, what it is:                   Introduction.
-* charsets for CDC machines:             CDC.
-* charsets, aliases:                     Requests.
-* charsets, chaining in a request:       Requests.
-* charsets, guessing:                    Listings.
-* charsets, overview:                    Charset overview.
-* chset tools:                           Tabular.
-* codepages:                             IBM and MS.
-* combining characters:                  UCS-2.
-* commutativity of surfaces:             Requests.
-* contributing charsets:                 Contributing.
-* conversions, unavailable:              Charset overview.
-* convert a subset of characters:        Mixed.
-* convert strings and comments:          Mixed.
-* copyright conditions, printing:        Listings.
-* counting characters:                   count-characters.
-* CR surface, in Macintosh charsets:     Apple-Mac.
-* CR-LF surface, in IBM-PC charsets:     IBM-PC.
-* Ctrl-Z, discarding:                    End lines.
-* Cyrillic charsets:                     Others.
-* debugging surfaces:                    Test.
-* default charset:                       Requests.
-* description of individual characters:  dump-with-names.
-* details about recoding:                Recoding.
-* deviations from RFC 1345:              Tabular.
-* diacritics and underlines, removing:   flat.
-* diacritics, with ASCII-BS charset:     ASCII-BS.
-* diaeresis:                             Recoding.
-* disable map filling:                   Reversibility.
-* double step:                           Main flow.
-* dumping characters:                    Dump.
-* dumping characters, with description:  dump-with-names.
-* Easy French:                           Texte.
-* EBCDIC charsets:                       EBCDIC.
-* end of line format:                    End lines.
-* endiannes, changing:                   Permutations.
-* error handling:                        Errors.
-* error level threshold:                 Errors.
-* error messages:                        Errors.
-* error messages, suppressing:           Reversibility.
-* exceptions to available conversions:   Charset overview.
-* file sequencing:                       Sequencing.
-* file time stamps:                      Recoding.
-* filter operation:                      Synopsis.
-* force recoding:                        Reversibility.
-* French description of charsets:        Listings.
-* guessing charsets:                     Listings.
-* Haible, Bruno:                         libiconv.
-* handling errors:                       Errors.
-* help page, printing:                   Listings.
-* HTML normalization:                    HTML.
-* IBM codepages:                         IBM and MS.
-* IBM graphics characters:               Recoding.
-* iconv:                                 Design.
-* iconv library:                         libiconv.
-* identifying subsets in charsets:       Listings.
-* ignore charsets:                       Recoding.
-* implied surfaces:                      Requests.
-* impossible conversions:                Charset overview.
-* information about charsets:            Listings.
-* initialisation functions, outer:       Outer level.
-* initialisation functions, request:     Request level.
-* initialisation functions, task:        Task level.
-* interface, with iconv library:         libiconv.
-* intermediate charsets:                 Requests.
-* internal functions:                    Charset level.
-* internal recoding bug, error message:  Errors.
-* internals:                             Internals.
-* invalid input, error message:          Errors.
-* invocation of recode, synopsis:        Synopsis.
-* irreversible recoding:                 Reversibility.
-* ISO 10646:                             Universal.
-* languages, programming:                Listings.
-* LaTeX files:                           LaTeX.
-* Latin charsets:                        ISO 8859.
-* Latin-1 table, recreating with recode: ISO 8859.
-* letter case, in charset and surface names: Requests.
-* libiconv:                              libiconv.
-* library, iconv:                        libiconv.
-* listing charsets:                      Listings.
-* Macintosh charset:                     Apple-Mac.
-* map filling:                           Reversibility.
-* map filling, disable:                  Reversibility.
-* memory sequencing:                     Sequencing.
-* MIME encodings:                        MIME.
-* misuse of recoding library, error message: Errors.
-* MS-DOS charsets:                       IBM-PC.
-* MULE, in Emacs:                        Mule.
-* multiplexed charsets:                  Mule.
-* names of charsets and surfaces, abbreviation: Requests.
-* new charsets, how to add:              New charsets.
-* new surfaces, how to add:              New surfaces.
-* NeXT charsets:                         Micros.
-* non canonical input, error message:    Errors.
-* normilise an HTML file:                HTML.
-* NOS 6/12 code:                         CDC-NOS.
-* outer level functions:                 Outer level.
-* partial conversion:                    Mixed.
-* permutations of groups of bytes:       Permutations.
-* pipe sequencing:                       Sequencing.
-* program_name variable:                 Outer level.
-* programming language support:          Listings.
-* pseudo-charsets:                       Charset overview.
-* pure charset:                          Surface overview.
-* quality of recoding:                   Recoding.
-* recode internals:                      Internals.
-* recode request syntax:                 Requests.
-* recode use, a tutorial:                Tutorial.
-* recode version, printing:              Listings.
-* recode, a Macintosh port:              Apple-Mac.
-* recode, and RFC 1345:                  Tabular.
-* recode, main flow of operation:        Main flow.
-* recode, operation as filter:           Synopsis.
-* recode, synopsis of invocation:        Synopsis.
-* recoding details:                      Recoding.
-* recoding library:                      Library.
-* recoding path, rejection:              Recoding.
-* recoding steps, statistics:            Main flow.
-* removing diacritics and underlines:    flat.
-* reporting bugs:                        Contributing.
-* request level functions:               Request level.
-* request, syntax:                       Requests.
-* reversibility of recoding:             Reversibility.
-* RFC 1345:                              Tabular.
-* RFC 2045:                              MIME.
-* sequencing:                            Sequencing.
-* shared library implementation:         Design.
-* silent operation:                      Reversibility.
-* single step:                           Main flow.
-* source file generation:                Listings.
-* stdbool.h header:                      Outer level.
-* strict operation:                      Reversibility.
-* string and comments conversion:        Mixed.
-* structural surfaces:                   Surfaces.
-* subsets in charsets:                   Listings.
-* super-charsets:                        Mule.
-* supported programming languages:       Listings.
-* suppressing diagnostic messages:       Reversibility.
-* surface, what it is <1>:               Surfaces.
-* surface, what it is:                   Introduction.
-* surfaces, aliases:                     Requests.
-* surfaces, commutativity:               Requests.
-* surfaces, implementation in recode:    Surfaces.
-* surfaces, implied:                     Requests.
-* surfaces, overview:                    Surface overview.
-* surfaces, structural:                  Surfaces.
-* surfaces, syntax:                      Requests.
-* surfaces, trees:                       Surfaces.
-* system detected problem, error message: Errors.
-* task execution:                        Task level.
-* task level functions:                  Task level.
-* TeX files:                             LaTeX.
-* Texinfo files:                         Texinfo.
-* threshold for error reporting:         Errors.
-* time stamps of files:                  Recoding.
-* trivial surface:                       Surfaces.
-* tutorial:                              Tutorial.
-* unavailable conversions:               Charset overview.
-* Unicode:                               UCS-2.
-* unknown charsets:                      Listings.
-* unreachable charsets:                  Charset overview.
-* untranslatable input, error message:   Errors.
-* valid characters in charset names:     Requests.
-* verbose operation:                     Recoding.
-* Vietnamese charsets:                   Vietnamese.
-
-\1f
-File: recode.info,  Node: Option Index,  Next: Library Index,  Prev: Concept Index,  Up: Top
-
-Option Index
-************
-
-   This is an alphabetical list of all command-line options accepted by
-`recode'.
-
-* Menu:
-
-* --colons:                              Recoding.
-* --copyright:                           Listings.
-* --diacritics:                          Mixed.
-* --find-subsets:                        Listings.
-* --force:                               Reversibility.
-* --graphics:                            Recoding.
-* --header:                              Listings.
-* --help:                                Listings.
-* --ignore:                              Recoding.
-* --known=:                              Listings.
-* --list:                                Listings.
-* --quiet:                               Reversibility.
-* --sequence:                            Sequencing.
-* --silent:                              Reversibility.
-* --source:                              Mixed.
-* --strict:                              Reversibility.
-* --touch:                               Recoding.
-* --verbose:                             Recoding.
-* --version:                             Listings.
-* -c:                                    Recoding.
-* -C:                                    Listings.
-* -d:                                    Mixed.
-* -f:                                    Reversibility.
-* -g:                                    Recoding.
-* -h:                                    Listings.
-* -i:                                    Sequencing.
-* -k:                                    Listings.
-* -l:                                    Listings.
-* -p:                                    Sequencing.
-* -q:                                    Reversibility.
-* -S:                                    Mixed.
-* -s:                                    Reversibility.
-* -t:                                    Recoding.
-* -T:                                    Listings.
-* -v:                                    Recoding.
-* -x:                                    Recoding.
-
-\1f
-File: recode.info,  Node: Library Index,  Next: Charset and Surface Index,  Prev: Option Index,  Up: Top
-
-Library Index
-*************
-
-   This is an alphabetical index of important functions, data
-structures, and variables in the `recode' library.
-
-* Menu:
-
-* abort_level:                           Task level.
-* ascii_graphics:                        Request level.
-* byte_order_mark:                       Task level.
-* declare_step:                          New surfaces.
-* DEFAULT_CHARSET:                       Requests.
-* diacritics_only:                       Request level.
-* diaeresis_char:                        Request level.
-* error_so_far:                          Task level.
-* fail_level:                            Task level.
-* file_one_to_many:                      New charsets.
-* file_one_to_one:                       New charsets.
-* find_charset:                          Charset level.
-* LANG, when listing charsets:           Listings.
-* LANGUAGE, when listing charsets:       Listings.
-* list_all_charsets:                     Charset level.
-* list_concise_charset:                  Charset level.
-* list_full_charset:                     Charset level.
-* make_header_flag:                      Request level.
-* RECODE_AMBIGUOUS_OUTPUT:               Errors.
-* recode_buffer_to_buffer:               Request level.
-* recode_buffer_to_file:                 Request level.
-* recode_delete_outer:                   Outer level.
-* recode_delete_request:                 Request level.
-* recode_delete_task:                    Task level.
-* recode_file_to_buffer:                 Request level.
-* recode_file_to_file:                   Request level.
-* recode_filter_close:                   Task level.
-* recode_filter_close, not available:    Request level.
-* recode_filter_open:                    Task level.
-* recode_filter_open, not available:     Request level.
-* recode_format_table:                   Request level.
-* RECODE_INTERNAL_ERROR:                 Errors.
-* RECODE_INVALID_INPUT:                  Errors.
-* RECODE_MAXIMUM_ERROR <1>:              Errors.
-* RECODE_MAXIMUM_ERROR:                  Task level.
-* recode_new_outer:                      Outer level.
-* recode_new_request:                    Request level.
-* recode_new_task:                       Task level.
-* RECODE_NO_ERROR:                       Errors.
-* RECODE_NOT_CANONICAL:                  Errors.
-* RECODE_OUTER structure:                Outer level.
-* recode_perform_task:                   Task level.
-* recode_request structure:              Request level.
-* RECODE_REQUEST structure:              Request level.
-* recode_scan_request:                   Request level.
-* RECODE_SEQUENCE_IN_MEMORY:             Task level.
-* RECODE_SEQUENCE_WITH_FILES:            Task level.
-* RECODE_SEQUENCE_WITH_PIPE:             Task level.
-* RECODE_STRATEGY_UNDECIDED:             Task level.
-* recode_string:                         Request level.
-* recode_string_to_buffer:               Request level.
-* recode_string_to_file:                 Request level.
-* RECODE_SYSTEM_ERROR:                   Errors.
-* RECODE_TASK structure:                 Task level.
-* RECODE_UNTRANSLATABLE:                 Errors.
-* RECODE_USER_ERROR:                     Errors.
-* strategy:                              Task level.
-* task_request structure:                Task level.
-* verbose_flag:                          Request level.
-
index 759cf2b9f0ff4839cbe51e0b9a1f146fb7b3d8a4..9504f385fb97897c614985016f0db5f5d0380d11 100644 (file)
@@ -26,1057 +26,500 @@ versions, except that this permission notice may be stated in a
 translation approved by the Foundation.
 
 \1f
-File: recode.info,  Node: Charset and Surface Index,  Prev: Library Index,  Up: Top
+File: recode.info,  Node: Design,  Prev: New surfaces,  Up: Internals
 
-Charset and Surface Index
-*************************
+Comments on the library design
+==============================
 
-   This is an alphabetical list of all the charsets and surfaces
-supported by `recode', and their aliases.
+   * Why a shared library?
+
+     There are many different approaches to reduce system requirements
+     to handle all tables needed in the `recode' library.  One of them
+     is to have the tables in an external format and only read them in
+     on demand.  After having pondered this for a while, I finally
+     decided against it, mainly because it involves its own kind of
+     installation complexity, and it is not clear to me that it would
+     be as interesting as I first imagined.
+
+     It looks more efficient to see all tables and algorithms already
+     mapped into virtual memory from the start of the execution, yet
+     not loaded in actual memory, than to go through many disk accesses
+     for opening various data files once the program is already
+     started, as this would be needed with other solutions.  Using a
+     shared library also has the indirect effect of making various
+     algorithms handily available, right in the same modules providing
+     the tables.  This alleviates much the burden of the maintenance.
+
+     Of course, I would like to later make an exception for only a few
+     tables, built locally by users for their own particular needs once
+     `recode' is installed.  `recode' should just go and fetch them.
+     But I do not perceive this as very urgent, yet useful enough to be
+     worth implementing.
+
+     Currently, all tables needed for recoding are precompiled into
+     binaries, and all these binaries are then made into a shared
+     library.  As an initial step, I turned `recode' into a main
+     program and a non-shared library, this allowed me to tidy up the
+     API, get rid of all global variables, etc.  It required a
+     surprising amount of program source massaging.  But once this
+     cleaned enough, it was easy to use Gordon Matzigkeit's `libtool'
+     package, and take advantage of the Automake interface to neatly
+     turn the non-shared library into a shared one.
+
+     Sites linking with the `recode' library, whose system does not
+     support any form of shared libraries, might end up with bulky
+     executables.  Surely, the `recode' library will have to be used
+     statically, and might not very nicely usable on such systems.  It
+     seems that progress has a price for those being slow at it.
+
+     There is a locality problem I did not address yet.  Currently, the
+     `recode' library takes many cycles to initialise itself, calling
+     each module in turn for it to set up associated knowledge about
+     charsets, aliases, elementary steps, recoding weights, etc.
+     _Then_, the recoding sequence is decided out of the command given.
+     I would not be surprised if initialisation was taking a
+     perceivable fraction of a second on slower machines.  One thing to
+     do, most probably not right in version 3.5, but the version after,
+     would have `recode' to pre-load all tables and dump them at
+     installation time.  The result would then be compiled and added to
+     the library.  This would spare many initialisation cycles, but more
+     importantly, would avoid calling all library modules, scattered
+     through the virtual memory, and so, possibly causing many spurious
+     page exceptions each time the initialisation is requested, at
+     least once per program execution.
+
+   * Why not a central charset?
+
+     It would be simpler, and I would like, if something like ISO 10646
+     was used as a turning template for all charsets in `recode'.  Even
+     if I think it could help to a certain extent, I'm still not fully
+     sure it would be sufficient in all cases.  Moreover, some people
+     disagree about using ISO 10646 as the central charset, to the
+     point I cannot totally ignore them, and surely, `recode' is not a
+     mean for me to force my own opinions on people.  I would like that
+     `recode' be practical more than dogmatic, and reflect usage more
+     than religions.
+
+     Currently, if you ask `recode' to go from CHARSET1 to CHARSET2
+     chosen at random, it is highly probable that the best path will be
+     quickly found as:
+
+          CHARSET1..`UCS-2'..CHARSET2
+
+     That is, it will almost always use the `UCS' as a trampoline
+     between charsets.  However, `UCS-2' will be immediately be
+     optimised out, and CHARSET1..CHARSET2 will often be performed in a
+     single step through a permutation table generated on the fly for
+     the circumstance (1).
+
+     In those few cases where `UCS-2' is not selected as a conceptual
+     intermediate, I plan to study if it could be made so.  But I guess
+     some cases will remain where `UCS-2' is not a proper choice.  Even
+     if `UCS' is often the good choice, I do not intend to forcefully
+     restrain `recode' around `UCS-2' (nor `UCS-4') for now.  We might
+     come to that one day, but it will come out of the natural
+     evolution of `recode'.  It will then reflect a fact, rather than a
+     preset dogma.
+
+   * Why not `iconv'?
+
+     The `iconv' routine and library allows for converting characters
+     from an input buffer to an input buffer, synchronously advancing
+     both buffer cursors.  If the output buffer is not big enough to
+     receive all of the conversion, the routine returns with the input
+     cursor set at the position where the conversion could later be
+     resumed, and the output cursor set to indicate until where the
+     output buffer has been filled.  Despite this scheme is simple and
+     nice, the `recode' library does not offer it currently.  Why not?
+
+     When long sequences of decodings, stepwise recodings, and
+     re-encodings are involved, as it happens in true life,
+     synchronising the input buffer back to where it should have
+     stopped, when the output buffer becomes full, is a difficult
+     problem.  Oh, we could make it simpler at the expense of loosing
+     space or speed: by inserting markers between each input character
+     and counting them at the output end; by processing only one
+     character in a time through the whole sequence; by repeatedly
+     attempting to recode various subsets of the input buffer, binary
+     searching on their length until the output just fits.  The
+     overhead of such solutions looks fully prohibitive to me, and the
+     gain very minimal.  I do not see a real advantage, nowadays,
+     imposing a fixed length to an output buffer.  It makes things so
+     much simpler and efficient to just let the output buffer size
+     float a bit.
+
+     Of course, if the above problem was solved, the `iconv' library
+     should be easily emulated, given that `recode' has similar
+     knowledge about charsets, of course.  This either solved or not,
+     the `iconv' program remains trivial (given similar knowledge about
+     charsets).  I also presume that the `genxlt' program would be easy
+     too, but I do not have enough detailed specifications of it to be
+     sure.
+
+     A lot of years ago, `recode' was using a similar scheme, and I
+     found it rather hard to manage for some cases.  I rethought the
+     overall structure of `recode' for getting away from that scheme,
+     and never regretted it.  I perceive `iconv' as an artificial
+     solution which surely has some elegances and virtues, but I do not
+     find it really useful as it stands: one always has to wrap `iconv'
+     into something more refined, extending it for real cases.  From
+     past experience, I think it is unduly hard to fully implement this
+     scheme.  It would be awkward that we do contortions for the sole
+     purpose of implementing exactly its specification, without real,
+     fairly sounded reasons (other then the fact some people once
+     thought it was worth standardising).  It is much better to
+     immediately aim for the refinement we need, without uselessly
+     forcing us into the dubious detour `iconv' represents.
+
+     Some may argue that if `recode' was using a comprehensive charset
+     as a turning template, as discussed in a previous point, this
+     would make `iconv' easier to implement.  Some may be tempted to
+     say that the cases which are hard to handle are not really needed,
+     nor interesting, anyway.  I feel and fear a bit some pressure
+     wanting that `recode' be split into the part that well fits the
+     `iconv' model, and the part that does not fit, considering this
+     second part less important, with the idea of dropping it one of
+     these days, maybe.  My guess is that users of the `recode'
+     library, whatever its form, would not like to have such arbitrary
+     limitations.  In the long run, we should not have to explain to
+     our users that some recodings may not be made available just
+     because they do not fit the simple model we had in mind when we
+     did it.  Instead, we should try to stay opened to the difficulties
+     of real life.  There is still a lot of complex needs for Asian
+     people, say, that `recode' does not currently address, while it
+     should.  Not only the doors should stay open, but we should force
+     them wider!
+
+   ---------- Footnotes ----------
+
+   (1) If strict mapping is requested, another efficient device will be
+used instead of a permutation.
+
+\1f
+File: recode.info,  Node: Concept Index,  Next: Option Index,  Prev: Internals,  Up: Top
+
+Concept Index
+*************
 
 * Menu:
 
-* 037:                                   Tabular.
-* 038:                                   Tabular.
-* 1004:                                  Tabular.
-* 1026:                                  Tabular.
-* 1047:                                  Tabular.
-* 10646:                                 UCS-4.
-* 1129, not available:                   Vietnamese.
-* 1250:                                  Tabular.
-* 1251:                                  Tabular.
-* 1252:                                  Tabular.
-* 1253:                                  Tabular.
-* 1254:                                  Tabular.
-* 1255:                                  Tabular.
-* 1256:                                  Tabular.
-* 1257:                                  Tabular.
-* 1258, not available:                   Vietnamese.
-* 1345:                                  Tabular.
-* 21-Permutation:                        Permutations.
-* 256:                                   Tabular.
-* 273:                                   Tabular.
-* 274:                                   Tabular.
-* 275:                                   Tabular.
-* 278:                                   Tabular.
-* 280:                                   Tabular.
-* 281:                                   Tabular.
-* 284:                                   Tabular.
-* 285:                                   Tabular.
-* 290:                                   Tabular.
-* 297:                                   Tabular.
-* 367:                                   Tabular.
-* 420:                                   Tabular.
-* 423:                                   Tabular.
-* 424:                                   Tabular.
-* 4321-Permutation:                      Permutations.
-* 437:                                   Tabular.
-* 500:                                   Tabular.
-* 500V1:                                 Tabular.
-* 64:                                    MIME.
-* 819:                                   Tabular.
-* 850 <1>:                               Tabular.
-* 850:                                   libiconv.
-* 851:                                   Tabular.
-* 852:                                   Tabular.
-* 855:                                   Tabular.
-* 857:                                   Tabular.
-* 860:                                   Tabular.
-* 861:                                   Tabular.
-* 862:                                   Tabular.
-* 863:                                   Tabular.
-* 864:                                   Tabular.
-* 865:                                   Tabular.
-* 866:                                   libiconv.
-* 868:                                   Tabular.
-* 869:                                   Tabular.
-* 870:                                   Tabular.
-* 871:                                   Tabular.
-* 875:                                   Tabular.
-* 880:                                   Tabular.
-* 891:                                   Tabular.
-* 903:                                   Tabular.
-* 904:                                   Tabular.
-* 905:                                   Tabular.
-* 912:                                   Tabular.
-* 918:                                   Tabular.
-* AFRFUL-102-BPI_OCIL, and aliases:      African.
-* AFRFUL-103-BPI_OCIL, and aliases:      African.
-* AFRL1-101-BPI_OCIL:                    African.
-* AFRLIN-104-BPI_OCIL:                   African.
-* AFRLIN-105-BPI_OCIL:                   African.
-* ANSI_X3.110-1983, not recognised by recode: Tabular.
-* ANSI_X3.4-1968:                        libiconv.
-* ANSI_X3.4-1968, aliases and source:    Tabular.
-* ANSI_X3.4-1968, and its aliases:       ASCII.
-* ANSI_X3.4-1986:                        Tabular.
-* Apple-Mac:                             Apple-Mac.
-* arabic:                                Tabular.
-* ARABIC:                                libiconv.
-* arabic7:                               Tabular.
-* ARMSCII-8:                             libiconv.
-* ASCII <1>:                             Tabular.
-* ASCII:                                 libiconv.
-* ASCII, an alias for the ANSI_X3.4-1968 charset: ASCII.
-* ASCII-BS, and its aliases:             ASCII-BS.
-* ASMO-708 <1>:                          Tabular.
-* ASMO-708:                              libiconv.
-* ASMO_449, aliases and source:          Tabular.
-* AtariST:                               AtariST.
-* b64:                                   MIME.
-* baltic, aliases and source:            Tabular.
-* bambara:                               African.
-* Bang-Bang:                             Bang-Bang.
-* Base64:                                MIME.
-* BIG-5:                                 libiconv.
-* BIG-FIVE:                              libiconv.
-* BIG5, aliases:                         libiconv.
-* BIGFIVE:                               libiconv.
-* BMP:                                   UCS-2.
-* bra:                                   African.
-* BS, an alias for ASCII-BS charset:     ASCII-BS.
-* BS_4730, aliases and source:           Tabular.
-* BS_viewdata, aliases and source:       Tabular.
-* ca:                                    Tabular.
-* CDC-NOS, and its aliases:              CDC-NOS.
-* CHINESE:                               libiconv.
-* cl:                                    End lines.
-* cn:                                    Tabular.
-* CN:                                    libiconv.
-* CN-BIG5:                               libiconv.
-* CN-GB:                                 libiconv.
-* CN-GB-ISOIR165:                        libiconv.
-* combined-UCS-2:                        UCS-2.
-* CORK:                                  Others.
-* count-characters:                      count-characters.
-* count-characters, not as before charset: Charset overview.
-* cp-ar:                                 Tabular.
-* cp-gr:                                 Tabular.
-* cp-hu:                                 Tabular.
-* cp-is:                                 Tabular.
-* CP037:                                 Tabular.
-* CP038:                                 Tabular.
-* CP1004:                                Tabular.
-* CP1026:                                Tabular.
-* CP1047:                                Tabular.
-* CP1129, not available:                 Vietnamese.
-* CP1133, aliases:                       libiconv.
-* CP1250, aliases:                       libiconv.
-* CP1250, aliases and source:            Tabular.
-* CP1251, aliases:                       libiconv.
-* CP1251, aliases and source:            Tabular.
-* CP1252, aliases:                       libiconv.
-* CP1252, aliases and source:            Tabular.
-* CP1253, aliases:                       libiconv.
-* CP1253, aliases and source:            Tabular.
-* CP1254, aliases:                       libiconv.
-* CP1254, aliases and source:            Tabular.
-* CP1255, aliases:                       libiconv.
-* CP1255, aliases and source:            Tabular.
-* CP1256, aliases:                       libiconv.
-* CP1256, aliases and source:            Tabular.
-* CP1257, aliases:                       libiconv.
-* CP1257, aliases and source:            Tabular.
-* CP1258, aliases:                       libiconv.
-* CP1258, not available:                 Vietnamese.
-* CP1361:                                libiconv.
-* CP256:                                 Tabular.
-* CP273:                                 Tabular.
-* CP274:                                 Tabular.
-* CP275:                                 Tabular.
-* CP278:                                 Tabular.
-* CP280:                                 Tabular.
-* CP281:                                 Tabular.
-* CP284:                                 Tabular.
-* CP285:                                 Tabular.
-* CP290:                                 Tabular.
-* CP297:                                 Tabular.
-* cp367:                                 ASCII.
-* CP367 <1>:                             Tabular.
-* CP367:                                 libiconv.
-* CP420:                                 Tabular.
-* CP423:                                 Tabular.
-* CP424:                                 Tabular.
-* CP437:                                 Tabular.
-* CP500:                                 Tabular.
-* CP819 <1>:                             Tabular.
-* CP819:                                 libiconv.
-* CP850:                                 Tabular.
-* CP850, aliases:                        libiconv.
-* CP851:                                 Tabular.
-* CP852:                                 Tabular.
-* CP855:                                 Tabular.
-* CP857:                                 Tabular.
-* CP860:                                 Tabular.
-* CP861:                                 Tabular.
-* CP862:                                 Tabular.
-* CP863:                                 Tabular.
-* CP864:                                 Tabular.
-* CP865:                                 Tabular.
-* CP866, aliases:                        libiconv.
-* CP868:                                 Tabular.
-* CP869:                                 Tabular.
-* CP870:                                 Tabular.
-* CP871:                                 Tabular.
-* CP874, aliases:                        libiconv.
-* CP875:                                 Tabular.
-* CP880:                                 Tabular.
-* CP891:                                 Tabular.
-* CP903:                                 Tabular.
-* CP904:                                 Tabular.
-* CP905:                                 Tabular.
-* CP912:                                 Tabular.
-* CP918:                                 Tabular.
-* CP932:                                 libiconv.
-* CP936:                                 libiconv.
-* CP949, aliases:                        libiconv.
-* CP950:                                 libiconv.
-* CR, a surface:                         End lines.
-* CR-LF, a surface:                      End lines.
-* csa7-1:                                Tabular.
-* csa7-2:                                Tabular.
-* CSA_Z243.4-1985-1, aliases and source: Tabular.
-* CSA_Z243.4-1985-2, aliases and source: Tabular.
-* CSA_Z243.4-1985-gr, aliases and source: Tabular.
-* csASCII:                               libiconv.
-* csBig5:                                libiconv.
-* csEUCKR:                               libiconv.
-* csEUCPkdFmtJapanese:                   libiconv.
-* csEUCTW:                               libiconv.
-* csGB2312:                              libiconv.
-* csHalfWidthKatakana:                   libiconv.
-* csHPRoman8:                            libiconv.
-* csIBM866:                              libiconv.
-* csISO14JISC6220ro:                     libiconv.
-* csISO159JISX02121990:                  libiconv.
-* csISO2022CN:                           libiconv.
-* csISO2022JP:                           libiconv.
-* csISO2022JP2:                          libiconv.
-* csISO2022KR:                           libiconv.
-* csISO57GB1988:                         libiconv.
-* csISO58GB231280:                       libiconv.
-* csISO87JISX0208:                       libiconv.
-* csISOLatin1:                           libiconv.
-* csISOLatin2:                           libiconv.
-* csISOLatin3:                           libiconv.
-* csISOLatin4:                           libiconv.
-* csISOLatin5:                           libiconv.
-* csISOLatin6:                           libiconv.
-* csISOLatinArabic:                      libiconv.
-* csISOLatinCyrillic:                    libiconv.
-* csISOLatinGreek:                       libiconv.
-* csISOLatinHebrew:                      libiconv.
-* csKOI8R:                               libiconv.
-* csKSC56011987:                         libiconv.
-* csMacintosh:                           libiconv.
-* CSN_369103, aliases and source:        Tabular.
-* csPC850Multilingual:                   libiconv.
-* csShiftJIS:                            libiconv.
-* csUCS4:                                libiconv.
-* csUnicode:                             libiconv.
-* csUnicode11:                           libiconv.
-* csUnicode11UTF7:                       libiconv.
-* csVISCII:                              libiconv.
-* cuba:                                  Tabular.
-* CWI, aliases and source:               Tabular.
-* CWI-2:                                 Tabular.
-* cyrillic:                              Tabular.
-* CYRILLIC:                              libiconv.
-* d1:                                    Dump.
-* d2:                                    Dump.
-* d4:                                    Dump.
-* data, a special charset:               Surfaces.
-* data, not with charsets:               Charset overview.
-* de:                                    Tabular.
-* dec:                                   Tabular.
-* DEC-MCS, aliases and source:           Tabular.
-* Decimal-1:                             Dump.
-* Decimal-2:                             Dump.
-* Decimal-4:                             Dump.
-* DIN_66003, aliases and source:         Tabular.
-* dk:                                    Tabular.
-* dk-us, not recognised by recode:       Tabular.
-* dos:                                   IBM-PC.
-* DS2089:                                Tabular.
-* DS_2089, aliases and source:           Tabular.
-* dump-with-names:                       dump-with-names.
-* dump-with-names, not as before charset: Charset overview.
-* e13b:                                  Tabular.
-* EBCDIC, a charset:                     EBCDIC.
-* EBCDIC-AT-DE, aliases and source:      Tabular.
-* EBCDIC-AT-DE-A, aliases and source:    Tabular.
-* EBCDIC-BE:                             Tabular.
-* EBCDIC-BR:                             Tabular.
-* EBCDIC-CA-FR, aliases and source:      Tabular.
-* EBCDIC-CCC:                            EBCDIC.
-* ebcdic-cp-ar1:                         Tabular.
-* ebcdic-cp-ar2:                         Tabular.
-* ebcdic-cp-be:                          Tabular.
-* ebcdic-cp-ca:                          Tabular.
-* ebcdic-cp-ch:                          Tabular.
-* EBCDIC-CP-DK:                          Tabular.
-* ebcdic-cp-es:                          Tabular.
-* ebcdic-cp-fi:                          Tabular.
-* ebcdic-cp-fr:                          Tabular.
-* ebcdic-cp-gb:                          Tabular.
-* ebcdic-cp-gr:                          Tabular.
-* ebcdic-cp-he:                          Tabular.
-* ebcdic-cp-is:                          Tabular.
-* ebcdic-cp-it:                          Tabular.
-* ebcdic-cp-nl:                          Tabular.
-* EBCDIC-CP-NO:                          Tabular.
-* ebcdic-cp-roece:                       Tabular.
-* ebcdic-cp-se:                          Tabular.
-* ebcdic-cp-tr:                          Tabular.
-* ebcdic-cp-us:                          Tabular.
-* ebcdic-cp-wt:                          Tabular.
-* ebcdic-cp-yu:                          Tabular.
-* EBCDIC-Cyrillic:                       Tabular.
-* EBCDIC-DK-NO, aliases and source:      Tabular.
-* EBCDIC-DK-NO-A, aliases and source:    Tabular.
-* EBCDIC-ES, aliases and source:         Tabular.
-* EBCDIC-ES-A, aliases and source:       Tabular.
-* EBCDIC-ES-S, aliases and source:       Tabular.
-* EBCDIC-FI-SE, aliases and source:      Tabular.
-* EBCDIC-FI-SE-A, aliases and source:    Tabular.
-* EBCDIC-FR, aliases and source:         Tabular.
-* EBCDIC-Greek:                          Tabular.
-* EBCDIC-IBM:                            EBCDIC.
-* EBCDIC-INT:                            Tabular.
-* EBCDIC-INT1:                           Tabular.
-* EBCDIC-IS-FRISS, aliases and source:   Tabular.
-* EBCDIC-IT, aliases and source:         Tabular.
-* EBCDIC-JP-E:                           Tabular.
-* EBCDIC-JP-kana:                        Tabular.
-* EBCDIC-PT, aliases and source:         Tabular.
-* EBCDIC-UK, aliases and source:         Tabular.
-* EBCDIC-US, aliases and source:         Tabular.
-* ECMA-113:                              Tabular.
-* ECMA-113(1986):                        Tabular.
-* ECMA-114 <1>:                          Tabular.
-* ECMA-114:                              libiconv.
-* ECMA-118 <1>:                          Tabular.
-* ECMA-118:                              libiconv.
-* ECMA-cyrillic, aliases and source:     Tabular.
-* ELOT_928 <1>:                          Tabular.
-* ELOT_928:                              libiconv.
-* ES, aliases and source:                Tabular.
-* ES2, aliases and source:               Tabular.
-* EUC-CN, aliases:                       libiconv.
-* EUC-JP, aliases:                       libiconv.
-* EUC-KR, aliases:                       libiconv.
-* EUC-TW, aliases:                       libiconv.
-* EUC_CN:                                libiconv.
-* EUC_JP:                                libiconv.
-* EUC_KR:                                libiconv.
-* EUC_TW:                                libiconv.
-* EUCCN:                                 libiconv.
-* EUCJP:                                 libiconv.
-* EUCKR:                                 libiconv.
-* EUCTW:                                 libiconv.
-* ewondo:                                African.
-* Extended_UNIX_Code_Packed_Format_for_Japanese: libiconv.
-* FI:                                    Tabular.
-* flat, a charset:                       flat.
-* flat, not as before charset:           Charset overview.
-* fr:                                    Tabular.
-* friss:                                 Tabular.
-* FSS_UTF:                               UTF-8.
-* fulfude:                               African.
-* gb:                                    Tabular.
-* GB2312:                                libiconv.
-* GB2312.1980-0:                         libiconv.
-* GB_1988-80, aliases:                   libiconv.
-* GB_1988-80, aliases and source:        Tabular.
-* GB_2312-80, aliases:                   libiconv.
-* GB_2312-80, not recognised by recode:  Tabular.
-* GBK, aliases:                          libiconv.
-* Georgian-Academy:                      libiconv.
-* Georgian-PS:                           libiconv.
-* GOST_19768-74:                         Tabular.
-* GOST_19768-87, aliases and source:     Tabular.
-* greek:                                 Tabular.
-* GREEK:                                 libiconv.
-* greek-ccitt, aliases and source:       Tabular.
-* greek7, aliases and source:            Tabular.
-* greek7-old, aliases and source:        Tabular.
-* greek8:                                Tabular.
-* GREEK8:                                libiconv.
-* hebrew:                                Tabular.
-* HEBREW:                                libiconv.
-* Hexadecimal-1:                         Dump.
-* Hexadecimal-2:                         Dump.
-* Hexadecimal-4:                         Dump.
-* HP-ROMAN8, aliases:                    libiconv.
-* hp-roman8, aliases and source:         Tabular.
-* HTML, a charset:                       HTML.
-* hu:                                    Tabular.
-* HZ, aliases:                           libiconv.
-* HZ-GB-2312:                            libiconv.
-* IBM-CP1133:                            libiconv.
-* IBM-PC:                                IBM-PC.
-* IBM-PC charset, and CR-LF surface:     Requests.
-* IBM037, aliases and source:            Tabular.
-* IBM038, aliases and source:            Tabular.
-* IBM1004, aliases and source:           Tabular.
-* IBM1026, aliases and source:           Tabular.
-* IBM1047, aliases and source:           Tabular.
-* IBM256, aliases and source:            Tabular.
-* IBM273, aliases and source:            Tabular.
-* IBM274, aliases and source:            Tabular.
-* IBM275, aliases and source:            Tabular.
-* IBM277, aliases and source:            Tabular.
-* IBM278, aliases and source:            Tabular.
-* IBM280, aliases and source:            Tabular.
-* IBM281, aliases and source:            Tabular.
-* IBM284, aliases and source:            Tabular.
-* IBM285, aliases and source:            Tabular.
-* IBM290, aliases and source:            Tabular.
-* IBM297, aliases and source:            Tabular.
-* IBM367 <1>:                            ASCII.
-* IBM367 <2>:                            Tabular.
-* IBM367:                                libiconv.
-* IBM420, aliases and source:            Tabular.
-* IBM423, aliases and source:            Tabular.
-* IBM424, aliases and source:            Tabular.
-* ibm437:                                IBM-PC.
-* IBM437, aliases and source:            Tabular.
-* IBM500, aliases and source:            Tabular.
-* IBM819 <1>:                            Tabular.
-* IBM819:                                libiconv.
-* IBM819, and CR-LF surface:             IBM-PC.
-* IBM850:                                libiconv.
-* IBM850, aliases and source:            Tabular.
-* IBM851, aliases and source:            Tabular.
-* IBM852, aliases and source:            Tabular.
-* IBM855, aliases and source:            Tabular.
-* IBM857, aliases and source:            Tabular.
-* IBM860, aliases and source:            Tabular.
-* IBM861, aliases and source:            Tabular.
-* IBM862, aliases and source:            Tabular.
-* IBM863, aliases and source:            Tabular.
-* IBM864, aliases and source:            Tabular.
-* IBM865, aliases and source:            Tabular.
-* IBM866:                                libiconv.
-* IBM868, aliases and source:            Tabular.
-* IBM869, aliases and source:            Tabular.
-* IBM870, aliases and source:            Tabular.
-* IBM871, aliases and source:            Tabular.
-* IBM875, aliases and source:            Tabular.
-* IBM880, aliases and source:            Tabular.
-* IBM891, aliases and source:            Tabular.
-* IBM903, aliases and source:            Tabular.
-* IBM904, aliases and source:            Tabular.
-* IBM905, aliases and source:            Tabular.
-* IBM912:                                Tabular.
-* IBM918, aliases and source:            Tabular.
-* Icon-QNX, and aliases:                 Icon-QNX.
-* IEC_P27-1, aliases and source:         Tabular.
-* INIS, aliases and source:              Tabular.
-* INIS-8, aliases and source:            Tabular.
-* INIS-cyrillic, aliases and source:     Tabular.
-* INVARIANT, aliases and source:         Tabular.
-* irv:                                   Tabular.
-* ISO-10646-UCS-2:                       libiconv.
-* ISO-10646-UCS-2, and aliases:          UCS-2.
-* ISO-10646-UCS-4:                       libiconv.
-* ISO-10646-UCS-4, and aliases:          UCS-4.
-* ISO-2022-CN, aliases:                  libiconv.
-* ISO-2022-CN-EXT:                       libiconv.
-* ISO-2022-JP, aliases:                  libiconv.
-* ISO-2022-JP-1:                         libiconv.
-* ISO-2022-JP-2, aliases:                libiconv.
-* ISO-2022-KR, aliases:                  libiconv.
-* ISO-8859-1, aliases:                   libiconv.
-* ISO-8859-1, aliases and source:        Tabular.
-* ISO-8859-10, aliases:                  libiconv.
-* ISO-8859-10, aliases and source:       Tabular.
-* ISO-8859-13, aliases:                  libiconv.
-* ISO-8859-13, aliases and source:       Tabular.
-* ISO-8859-14, aliases:                  libiconv.
-* ISO-8859-14, aliases and source:       Tabular.
-* ISO-8859-15, aliases:                  libiconv.
-* ISO-8859-15, aliases and source:       Tabular.
-* ISO-8859-16, aliases:                  libiconv.
-* ISO-8859-2, aliases:                   libiconv.
-* ISO-8859-2, aliases and source:        Tabular.
-* ISO-8859-3, aliases:                   libiconv.
-* ISO-8859-3, aliases and source:        Tabular.
-* ISO-8859-4, aliases:                   libiconv.
-* ISO-8859-4, aliases and source:        Tabular.
-* ISO-8859-5, aliases:                   libiconv.
-* ISO-8859-5, aliases and source:        Tabular.
-* ISO-8859-6, aliases:                   libiconv.
-* ISO-8859-6, aliases and source:        Tabular.
-* ISO-8859-7, aliases:                   libiconv.
-* ISO-8859-7, aliases and source:        Tabular.
-* ISO-8859-8, aliases:                   libiconv.
-* ISO-8859-8, aliases and source:        Tabular.
-* ISO-8859-9, aliases:                   libiconv.
-* ISO-8859-9, aliases and source:        Tabular.
-* iso-baltic:                            Tabular.
-* iso-celtic:                            Tabular.
-* iso-ir-10:                             Tabular.
-* iso-ir-100:                            Tabular.
-* ISO-IR-100:                            libiconv.
-* iso-ir-101:                            Tabular.
-* ISO-IR-101:                            libiconv.
-* iso-ir-102:                            Tabular.
-* iso-ir-109:                            Tabular.
-* ISO-IR-109:                            libiconv.
-* iso-ir-11:                             Tabular.
-* iso-ir-110:                            Tabular.
-* ISO-IR-110:                            libiconv.
-* iso-ir-111:                            Tabular.
-* iso-ir-121:                            Tabular.
-* iso-ir-122:                            Tabular.
-* iso-ir-123:                            Tabular.
-* iso-ir-126:                            Tabular.
-* ISO-IR-126:                            libiconv.
-* iso-ir-127:                            Tabular.
-* ISO-IR-127:                            libiconv.
-* iso-ir-13:                             Tabular.
-* iso-ir-138:                            Tabular.
-* ISO-IR-138:                            libiconv.
-* iso-ir-139:                            Tabular.
-* iso-ir-14:                             Tabular.
-* ISO-IR-14:                             libiconv.
-* iso-ir-141:                            Tabular.
-* iso-ir-143:                            Tabular.
-* iso-ir-144:                            Tabular.
-* ISO-IR-144:                            libiconv.
-* iso-ir-146:                            Tabular.
-* iso-ir-147:                            Tabular.
-* iso-ir-148:                            Tabular.
-* ISO-IR-148:                            libiconv.
-* ISO-IR-149:                            libiconv.
-* iso-ir-15:                             Tabular.
-* iso-ir-150:                            Tabular.
-* iso-ir-151:                            Tabular.
-* iso-ir-152:                            Tabular.
-* iso-ir-153:                            Tabular.
-* iso-ir-154:                            Tabular.
-* iso-ir-155:                            Tabular.
-* iso-ir-157:                            Tabular.
-* ISO-IR-157:                            libiconv.
-* iso-ir-158:                            Tabular.
-* ISO-IR-159:                            libiconv.
-* iso-ir-16:                             Tabular.
-* ISO-IR-165, aliases:                   libiconv.
-* ISO-IR-166:                            libiconv.
-* iso-ir-17:                             Tabular.
-* iso-ir-170:                            Tabular.
-* iso-ir-179:                            Tabular.
-* ISO-IR-179:                            libiconv.
-* iso-ir-179a:                           Tabular.
-* iso-ir-18:                             Tabular.
-* iso-ir-19:                             Tabular.
-* iso-ir-199:                            Tabular.
-* ISO-IR-199:                            libiconv.
-* iso-ir-2:                              Tabular.
-* iso-ir-203:                            Tabular.
-* ISO-IR-203:                            libiconv.
-* iso-ir-21:                             Tabular.
-* ISO-IR-226:                            libiconv.
-* iso-ir-25:                             Tabular.
-* iso-ir-27:                             Tabular.
-* iso-ir-37:                             Tabular.
-* iso-ir-4:                              Tabular.
-* iso-ir-47:                             Tabular.
-* iso-ir-49:                             Tabular.
-* iso-ir-50:                             Tabular.
-* iso-ir-51:                             Tabular.
-* iso-ir-54:                             Tabular.
-* iso-ir-55:                             Tabular.
-* iso-ir-57:                             Tabular.
-* ISO-IR-57:                             libiconv.
-* ISO-IR-58:                             libiconv.
-* iso-ir-6 <1>:                          ASCII.
-* iso-ir-6:                              Tabular.
-* ISO-IR-6:                              libiconv.
-* iso-ir-60:                             Tabular.
-* iso-ir-61:                             Tabular.
-* iso-ir-69:                             Tabular.
-* iso-ir-8-1:                            Tabular.
-* iso-ir-8-2:                            Tabular.
-* iso-ir-84:                             Tabular.
-* iso-ir-85:                             Tabular.
-* iso-ir-86:                             Tabular.
-* ISO-IR-87:                             libiconv.
-* iso-ir-88:                             Tabular.
-* iso-ir-89:                             Tabular.
-* iso-ir-9-1:                            Tabular.
-* iso-ir-9-2:                            Tabular.
-* iso-ir-90, not recognised by recode:   Tabular.
-* iso-ir-93:                             Tabular.
-* iso-ir-94:                             Tabular.
-* iso-ir-95:                             Tabular.
-* iso-ir-96:                             Tabular.
-* iso-ir-98:                             Tabular.
-* ISO2022CN:                             libiconv.
-* ISO2022JP:                             libiconv.
-* ISO2022KR:                             libiconv.
-* ISO646-CA:                             Tabular.
-* ISO646-CA2:                            Tabular.
-* ISO646-CN <1>:                         Tabular.
-* ISO646-CN:                             libiconv.
-* ISO646-CU:                             Tabular.
-* ISO646-DE:                             Tabular.
-* ISO646-DK:                             Tabular.
-* ISO646-ES:                             Tabular.
-* ISO646-ES2:                            Tabular.
-* ISO646-FI:                             Tabular.
-* ISO646-FR:                             Tabular.
-* ISO646-FR1:                            Tabular.
-* ISO646-GB:                             Tabular.
-* ISO646-HU:                             Tabular.
-* ISO646-IT:                             Tabular.
-* ISO646-JP <1>:                         Tabular.
-* ISO646-JP:                             libiconv.
-* ISO646-JP-OCR-B:                       Tabular.
-* ISO646-KR:                             Tabular.
-* ISO646-NO:                             Tabular.
-* ISO646-NO2:                            Tabular.
-* ISO646-PT:                             Tabular.
-* ISO646-PT2:                            Tabular.
-* ISO646-SE:                             Tabular.
-* ISO646-SE2:                            Tabular.
-* ISO646-US <1>:                         Tabular.
-* ISO646-US:                             libiconv.
-* ISO646-YU:                             Tabular.
-* ISO646.1991-IRV:                       libiconv.
-* ISO8859-1 <1>:                         Tabular.
-* ISO8859-1:                             libiconv.
-* ISO8859-10 <1>:                        Tabular.
-* ISO8859-10:                            libiconv.
-* ISO8859-13:                            Tabular.
-* ISO8859-14:                            Tabular.
-* ISO8859-15:                            Tabular.
-* ISO8859-2 <1>:                         Tabular.
-* ISO8859-2:                             libiconv.
-* ISO8859-3 <1>:                         Tabular.
-* ISO8859-3:                             libiconv.
-* ISO8859-4 <1>:                         Tabular.
-* ISO8859-4:                             libiconv.
-* ISO8859-5 <1>:                         Tabular.
-* ISO8859-5:                             libiconv.
-* ISO8859-6 <1>:                         Tabular.
-* ISO8859-6:                             libiconv.
-* ISO8859-7 <1>:                         Tabular.
-* ISO8859-7:                             libiconv.
-* ISO8859-8 <1>:                         Tabular.
-* ISO8859-8:                             libiconv.
-* ISO8859-9 <1>:                         Tabular.
-* ISO8859-9:                             libiconv.
-* ISO8859_1:                             libiconv.
-* ISO8859_2:                             libiconv.
-* ISO8859_3:                             libiconv.
-* ISO8859_4:                             libiconv.
-* ISO8859_5:                             libiconv.
-* ISO8859_6:                             libiconv.
-* ISO8859_7:                             libiconv.
-* ISO8859_8:                             libiconv.
-* ISO8859_9:                             libiconv.
-* ISO_10367-box, aliases and source:     Tabular.
-* ISO_10646:                             UCS-4.
-* ISO_2033-1983, aliases and source:     Tabular.
-* ISO_5427(1981):                        Tabular.
-* ISO_5427, aliases and source:          Tabular.
-* ISO_5427-ext, aliases and source:      Tabular.
-* ISO_5428(1980):                        Tabular.
-* ISO_5428, aliases and source:          Tabular.
-* ISO_646.basic(1983):                   Tabular.
-* ISO_646.basic, aliases and source:     Tabular.
-* ISO_646.irv(1983):                     Tabular.
-* ISO_646.irv(1991):                     Tabular.
-* ISO_646.IRV(1991):                     libiconv.
-* ISO_646.irv, aliases and source:       Tabular.
-* ISO_6937-2-25, aliases and source:     Tabular.
-* ISO_6937-2-add, not recognised by recode: Tabular.
-* ISO_8859-1 <1>:                        Tabular.
-* ISO_8859-1:                            libiconv.
-* ISO_8859-1(1987) <1>:                  Tabular.
-* ISO_8859-1(1987):                      libiconv.
-* ISO_8859-10 <1>:                       Tabular.
-* ISO_8859-10:                           libiconv.
-* ISO_8859-10(1992):                     libiconv.
-* ISO_8859-10(1993):                     Tabular.
-* ISO_8859-13 <1>:                       Tabular.
-* ISO_8859-13:                           libiconv.
-* ISO_8859-13(1998):                     Tabular.
-* ISO_8859-14 <1>:                       Tabular.
-* ISO_8859-14:                           libiconv.
-* ISO_8859-14(1998) <1>:                 Tabular.
-* ISO_8859-14(1998):                     libiconv.
-* ISO_8859-15 <1>:                       Tabular.
-* ISO_8859-15:                           libiconv.
-* ISO_8859-15(1998) <1>:                 Tabular.
-* ISO_8859-15(1998):                     libiconv.
-* ISO_8859-16:                           libiconv.
-* ISO_8859-16(2000):                     libiconv.
-* ISO_8859-2 <1>:                        Tabular.
-* ISO_8859-2:                            libiconv.
-* ISO_8859-2(1987) <1>:                  Tabular.
-* ISO_8859-2(1987):                      libiconv.
-* ISO_8859-3 <1>:                        Tabular.
-* ISO_8859-3:                            libiconv.
-* ISO_8859-3(1988) <1>:                  Tabular.
-* ISO_8859-3(1988):                      libiconv.
-* ISO_8859-4 <1>:                        Tabular.
-* ISO_8859-4:                            libiconv.
-* ISO_8859-4(1988) <1>:                  Tabular.
-* ISO_8859-4(1988):                      libiconv.
-* ISO_8859-5 <1>:                        Tabular.
-* ISO_8859-5:                            libiconv.
-* ISO_8859-5(1988) <1>:                  Tabular.
-* ISO_8859-5(1988):                      libiconv.
-* ISO_8859-6 <1>:                        Tabular.
-* ISO_8859-6:                            libiconv.
-* ISO_8859-6(1987) <1>:                  Tabular.
-* ISO_8859-6(1987):                      libiconv.
-* ISO_8859-7 <1>:                        Tabular.
-* ISO_8859-7:                            libiconv.
-* ISO_8859-7(1987) <1>:                  Tabular.
-* ISO_8859-7(1987):                      libiconv.
-* ISO_8859-8 <1>:                        Tabular.
-* ISO_8859-8:                            libiconv.
-* ISO_8859-8(1988) <1>:                  Tabular.
-* ISO_8859-8(1988):                      libiconv.
-* ISO_8859-9 <1>:                        Tabular.
-* ISO_8859-9:                            libiconv.
-* ISO_8859-9(1989) <1>:                  Tabular.
-* ISO_8859-9(1989):                      libiconv.
-* ISO_8859-supp, aliases and source:     Tabular.
-* ISO_9036:                              Tabular.
-* isoir91:                               Tabular.
-* isoir92:                               Tabular.
-* IT, aliases and source:                Tabular.
-* JAVA:                                  libiconv.
-* JIS0201:                               libiconv.
-* JIS0208:                               libiconv.
-* JIS0212:                               libiconv.
-* JIS_C6220-1969:                        Tabular.
-* JIS_C6220-1969-jp, aliases and source: Tabular.
-* JIS_C6220-1969-RO, aliases:            libiconv.
-* JIS_C6220-1969-ro, aliases and source: Tabular.
-* JIS_C6226-1978, not recognised by recode: Tabular.
-* JIS_C6229-1984-a, aliases and source:  Tabular.
-* JIS_C6229-1984-b, aliases and source:  Tabular.
-* JIS_C6229-1984-b-add, aliases and source: Tabular.
-* JIS_C6229-1984-hand, aliases and source: Tabular.
-* JIS_C6229-1984-hand-add, aliases and source: Tabular.
-* JIS_C6229-1984-kana, aliases and source: Tabular.
-* JIS_X0201, aliases:                    libiconv.
-* JIS_X0201, aliases and source:         Tabular.
-* JIS_X0208, aliases:                    libiconv.
-* JIS_X0208-1983:                        libiconv.
-* JIS_X0208-1990:                        libiconv.
-* JIS_X0212, aliases:                    libiconv.
-* JIS_X0212-1990:                        libiconv.
-* JIS_X0212-1990, not recognised by recode: Tabular.
-* JIS_X0212.1990-0:                      libiconv.
-* JISX0201-1976:                         libiconv.
-* JISX0201.1976-0:                       libiconv.
-* JISX0208.1983-0:                       libiconv.
-* JISX0208.1990-0:                       libiconv.
-* JISX0212.1990-0:                       libiconv.
-* JOHAB, aliases:                        libiconv.
-* jp:                                    Tabular.
-* JP:                                    libiconv.
-* jp-ocr-a:                              Tabular.
-* jp-ocr-b:                              Tabular.
-* jp-ocr-b-add:                          Tabular.
-* jp-ocr-hand:                           Tabular.
-* jp-ocr-hand-add:                       Tabular.
-* js:                                    Tabular.
-* JUS_I.B1.002, aliases and source:      Tabular.
-* JUS_I.B1.003-mac, aliases and source:  Tabular.
-* JUS_I.B1.003-serb, aliases and source: Tabular.
-* Kamenicky:                             Others.
-* katakana:                              Tabular.
-* KEYBCS2:                               Others.
-* KOI-7, aliases and source:             Tabular.
-* KOI-8, aliases and source:             Tabular.
-* KOI-8_CS2:                             Others.
-* KOI-8_L2:                              Tabular.
-* KOI8-R, aliases:                       libiconv.
-* KOI8-R, aliases and source:            Tabular.
-* KOI8-RU:                               libiconv.
-* KOI8-RU, aliases and source:           Tabular.
-* KOI8-U:                                libiconv.
-* KOI8-U, aliases and source:            Tabular.
-* koi8l2:                                Tabular.
-* KOREAN:                                libiconv.
-* KS_C_5601-1987:                        libiconv.
-* KS_C_5601-1987, not recognised by recode: Tabular.
-* KS_C_5601-1989:                        libiconv.
-* KSC5601.1987-0:                        libiconv.
-* KSC5636, aliases and source:           Tabular.
-* KSC_5601, aliases:                     libiconv.
-* KSX1001(1992):                         libiconv.
-* l1:                                    Tabular.
-* L1:                                    libiconv.
-* l2:                                    Tabular.
-* L2:                                    libiconv.
-* l3:                                    Tabular.
-* L3:                                    libiconv.
-* l4:                                    Tabular.
-* L4:                                    libiconv.
-* l5:                                    Tabular.
-* L5:                                    libiconv.
-* L6 <1>:                                Tabular.
-* L6:                                    libiconv.
-* l7:                                    Tabular.
-* L7:                                    libiconv.
-* l8:                                    Tabular.
-* L8:                                    libiconv.
-* l9:                                    Tabular.
-* lap:                                   Tabular.
-* LaTeX, a charset:                      LaTeX.
-* Latin-1:                               ISO 8859.
-* latin-greek, aliases and source:       Tabular.
-* Latin-greek-1, aliases and source:     Tabular.
-* latin-lap:                             Tabular.
-* latin1:                                Tabular.
-* LATIN1:                                libiconv.
-* latin1-2-5:                            Tabular.
-* latin2:                                Tabular.
-* LATIN2:                                libiconv.
-* latin3:                                Tabular.
-* LATIN3:                                libiconv.
-* latin4:                                Tabular.
-* LATIN4:                                libiconv.
-* latin5:                                Tabular.
-* LATIN5:                                libiconv.
-* latin6:                                Tabular.
-* LATIN6:                                libiconv.
-* latin7:                                Tabular.
-* LATIN7:                                libiconv.
-* latin8:                                Tabular.
-* LATIN8:                                libiconv.
-* latin9:                                Tabular.
+* abbreviated names for charsets and surfaces: Requests.
+* adding new charsets:                   New charsets.
+* adding new surfaces:                   New surfaces.
+* African charsets:                      African.
+* aliases:                               Requests.
+* alternate names for charsets and surfaces: Requests.
+* ambiguous output, error message:       Errors.
+* ASCII table, recreating with recode:   ASCII.
+* average number of recoding steps:      Main flow.
+* bool data type:                        Outer level.
+* box-drawing characters:                Recoding.
+* bug reports, where to send:            Contributing.
+* byte order mark:                       UCS-2.
+* byte order swapping:                   Permutations.
+* caret ASCII code:                      CDC-NOS.
+* CDC charsets:                          CDC.
+* CDC Display Code, a table:             Display Code.
+* chaining of charsets in a request:     Requests.
+* character entities:                    HTML.
+* character entity references:           HTML.
+* character mnemonics, documentation:    Tabular.
+* character streams, description:        dump-with-names.
+* charset level functions:               Charset level.
+* charset names, valid characters:       Requests.
+* charset, default:                      Requests.
+* charset, pure:                         Surface overview.
+* charset, what it is:                   Introduction.
+* charsets for CDC machines:             CDC.
+* charsets, aliases:                     Requests.
+* charsets, chaining in a request:       Requests.
+* charsets, guessing:                    Listings.
+* charsets, overview:                    Charset overview.
+* chset tools:                           Tabular.
+* codepages:                             IBM and MS.
+* combining characters:                  UCS-2.
+* commutativity of surfaces:             Requests.
+* contributing charsets:                 Contributing.
+* conversions, unavailable:              Charset overview.
+* convert a subset of characters:        Mixed.
+* convert strings and comments:          Mixed.
+* copyright conditions, printing:        Listings.
+* counting characters:                   count-characters.
+* CR surface, in Macintosh charsets:     Apple-Mac.
+* CR-LF surface, in IBM-PC charsets:     IBM-PC.
+* Ctrl-Z, discarding:                    End lines.
+* Cyrillic charsets:                     Others.
+* debugging surfaces:                    Test.
+* default charset:                       Requests.
+* description of individual characters:  dump-with-names.
+* details about recoding:                Recoding.
+* deviations from RFC 1345:              Tabular.
+* diacritics and underlines, removing:   flat.
+* diacritics, with ASCII-BS charset:     ASCII-BS.
+* diaeresis:                             Recoding.
+* disable map filling:                   Reversibility.
+* double step:                           Main flow.
+* dumping characters:                    Dump.
+* dumping characters, with description:  dump-with-names.
+* Easy French:                           Texte.
+* EBCDIC charsets:                       EBCDIC.
+* end of line format:                    End lines.
+* endiannes, changing:                   Permutations.
+* entities:                              HTML.
+* error handling:                        Errors.
+* error level threshold:                 Errors.
+* error messages:                        Errors.
+* error messages, suppressing:           Reversibility.
+* exceptions to available conversions:   Charset overview.
+* file sequencing:                       Sequencing.
+* file time stamps:                      Recoding.
+* filter operation:                      Synopsis.
+* force recoding:                        Reversibility.
+* French description of charsets:        Listings.
+* guessing charsets:                     Listings.
+* Haible, Bruno:                         libiconv.
+* handling errors:                       Errors.
+* help page, printing:                   Listings.
+* HTML:                                  HTML.
+* HTML normalization:                    HTML.
+* IBM codepages:                         IBM and MS.
+* IBM graphics characters:               Recoding.
+* iconv:                                 Design.
+* iconv library:                         libiconv.
+* identifying subsets in charsets:       Listings.
+* ignore charsets:                       Recoding.
+* implied surfaces:                      Requests.
+* impossible conversions:                Charset overview.
+* information about charsets:            Listings.
+* initialisation functions, outer:       Outer level.
+* initialisation functions, request:     Request level.
+* initialisation functions, task:        Task level.
+* interface, with iconv library:         libiconv.
+* intermediate charsets:                 Requests.
+* internal functions:                    Charset level.
+* internal recoding bug, error message:  Errors.
+* internals:                             Internals.
+* invalid input, error message:          Errors.
+* invocation of recode, synopsis:        Synopsis.
+* irreversible recoding:                 Reversibility.
+* ISO 10646:                             Universal.
+* languages, programming:                Listings.
+* LaTeX files:                           LaTeX.
+* Latin charsets:                        ISO 8859.
+* Latin-1 table, recreating with recode: ISO 8859.
+* letter case, in charset and surface names: Requests.
 * libiconv:                              libiconv.
-* libiconv, not in requests:             Charset overview.
-* lin:                                   African.
-* lingala:                               African.
-* ltex:                                  LaTeX.
-* mac <1>:                               Apple-Mac.
-* mac:                                   Tabular.
-* MAC:                                   libiconv.
-* mac-is, aliases and source:            Tabular.
-* MacArabic:                             libiconv.
-* macce <1>:                             Apple-Mac.
-* macce:                                 Tabular.
-* MacCentralEurope:                      libiconv.
-* MacCroatian:                           libiconv.
-* MacCyrillic:                           libiconv.
-* macedonian:                            Tabular.
-* MacGreek:                              libiconv.
-* MacHebrew:                             libiconv.
-* MacIceland:                            libiconv.
-* Macintosh:                             libiconv.
-* macintosh, a charset, and its aliases: Apple-Mac.
-* macintosh, aliases and source:         Tabular.
-* macintosh_ce, aliases and source:      Tabular.
-* macintosh_ce, and its aliases:         Apple-Mac.
-* MacRoman, aliases:                     libiconv.
-* MacRomania:                            libiconv.
-* MacThai:                               libiconv.
-* MacTurkish:                            libiconv.
-* MacUkraine:                            libiconv.
-* mnemonic, an alias for RFC1345 charset: Tabular.
-* ms-ansi:                               Tabular.
-* MS-ANSI:                               libiconv.
-* ms-arab:                               Tabular.
-* MS-ARAB:                               libiconv.
-* ms-cyrl:                               Tabular.
-* MS-CYRL:                               libiconv.
-* ms-ee:                                 Tabular.
-* MS-EE:                                 libiconv.
-* ms-greek:                              Tabular.
-* MS-GREEK:                              libiconv.
-* ms-hebr:                               Tabular.
-* MS-HEBR:                               libiconv.
-* ms-turk:                               Tabular.
-* MS-TURK:                               libiconv.
-* MS_KANJI:                              libiconv.
-* MSDOS:                                 IBM-PC.
-* MSZ_7795.3, aliases and source:        Tabular.
-* Mule, a charset:                       Mule.
-* MuleLao-1:                             libiconv.
-* NATS-DANO, aliases and source:         Tabular.
-* NATS-DANO-ADD, aliases and source:     Tabular.
-* NATS-SEFI, aliases and source:         Tabular.
-* NATS-SEFI-ADD, aliases and source:     Tabular.
-* NC_NC00-10(81):                        Tabular.
-* NC_NC00-10, aliases and source:        Tabular.
-* next:                                  Tabular.
-* NEXTSTEP:                              libiconv.
-* NeXTSTEP, aliases and source:          Tabular.
-* NF_Z_62-010, aliases and source:       Tabular.
-* NF_Z_62-010_(1973), aliases and source: Tabular.
-* no:                                    Tabular.
-* no2:                                   Tabular.
-* NOS:                                   CDC-NOS.
-* NS_4551-1, aliases and source:         Tabular.
-* NS_4551-2, aliases and source:         Tabular.
-* o1:                                    Dump.
-* o2:                                    Dump.
-* o4:                                    Dump.
-* Octal-1:                               Dump.
-* Octal-2:                               Dump.
-* Octal-4:                               Dump.
-* os2latin1:                             Tabular.
-* pc:                                    IBM-PC.
-* pcl2:                                  Tabular.
-* pclatin2:                              Tabular.
-* PT, aliases and source:                Tabular.
-* PT2, aliases and source:               Tabular.
-* QNX, an alias for a charset:           Icon-QNX.
-* QP:                                    MIME.
-* quote-printable:                       MIME.
-* Quoted-Printable:                      MIME.
-* r8:                                    Tabular.
-* R8:                                    libiconv.
-* ref:                                   Tabular.
-* RFC1345, a charset, and its aliases:   Tabular.
-* roman8:                                Tabular.
-* ROMAN8:                                libiconv.
-* rune:                                  UCS-2.
-* sami, aliases and source:              Tabular.
-* sango:                                 African.
-* se:                                    Tabular.
-* se2:                                   Tabular.
-* SEN_850200_B, aliases and source:      Tabular.
-* SEN_850200_C, aliases and source:      Tabular.
-* serbian:                               Tabular.
-* SHIFT-JIS:                             libiconv.
-* SHIFT_JIS:                             libiconv.
-* SJIS, aliases:                         libiconv.
-* SS636127:                              Tabular.
-* ST_SEV_358-88:                         Tabular.
-* swabytes:                              Permutations.
-* t-bambara:                             African.
-* t-bra:                                 African.
-* t-ewondo:                              African.
-* t-fra:                                 African.
-* t-francais:                            African.
-* t-fulfude:                             African.
-* t-lin:                                 African.
-* t-lingala:                             African.
-* t-sango:                               African.
-* t-wolof:                               African.
-* T.101-G2, not recognised by recode:    Tabular.
-* T.61-7bit, aliases and source:         Tabular.
-* T.61-8bit, not recognised by recode:   Tabular.
-* T1:                                    Others.
-* TCVN, aliases:                         libiconv.
-* TCVN, for Vienamese:                   Vietnamese.
-* TCVN-5712:                             libiconv.
-* TCVN5712-1:                            libiconv.
-* TCVN5712-1(1993):                      libiconv.
-* test15:                                Test.
-* test16:                                Test.
-* test7:                                 Test.
-* test8:                                 Test.
-* texi:                                  Texinfo.
-* Texinfo, a charset:                    Texinfo.
-* Texte:                                 Texte.
-* TF-16:                                 UTF-16.
-* TF-7:                                  UTF-7.
-* TF-8:                                  UTF-8.
-* ti:                                    Texinfo.
-* TIS-620, aliases:                      libiconv.
-* TIS620:                                libiconv.
-* TIS620-0:                              libiconv.
-* TIS620.2529-1:                         libiconv.
-* TIS620.2533-0:                         libiconv.
-* TIS620.2533-1:                         libiconv.
-* tree, a special charset:               Surfaces.
-* txte:                                  Texte.
-* u2:                                    UCS-2.
-* u4:                                    UCS-4.
-* u6:                                    UTF-16.
-* u7:                                    UTF-7.
-* u8:                                    UTF-8.
-* UCS:                                   Universal.
-* UCS-2:                                 UCS-2.
-* UCS-2, aliases:                        libiconv.
-* UCS-2-INTERNAL:                        libiconv.
-* UCS-2-SWAPPED:                         libiconv.
-* UCS-2BE, aliases:                      libiconv.
-* UCS-2LE, aliases:                      libiconv.
-* UCS-4:                                 UCS-4.
-* UCS-4, aliases:                        libiconv.
-* UCS-4-INTERNAL:                        libiconv.
-* UCS-4-SWAPPED:                         libiconv.
-* UCS-4BE:                               libiconv.
-* UCS-4LE:                               libiconv.
-* UHC:                                   libiconv.
-* uk:                                    Tabular.
-* Unicode, an alias for UTF-16:          UTF-16.
-* UNICODE-1-1:                           libiconv.
-* UNICODE-1-1-UTF-7:                     libiconv.
-* UNICODE-1-1-UTF-7, and aliases:        UTF-7.
-* UNICODEBIG:                            libiconv.
-* UNICODELITTLE:                         libiconv.
-* us <1>:                                ASCII.
-* us:                                    Tabular.
-* US:                                    libiconv.
-* US-ASCII <1>:                          ASCII.
-* US-ASCII:                              Tabular.
-* US-ASCII, aliases:                     libiconv.
-* us-dk, not recognised by recode:       Tabular.
-* UTF-1:                                 Universal.
-* UTF-16:                                libiconv.
-* UTF-16, and aliases:                   UTF-16.
-* UTF-16BE:                              libiconv.
-* UTF-16LE:                              libiconv.
-* UTF-7:                                 UTF-7.
-* UTF-7, aliases:                        libiconv.
-* UTF-8:                                 UTF-8.
-* UTF-8, aliases <1>:                    libiconv.
-* UTF-8, aliases:                        UTF-8.
-* UTF-FSS:                               UTF-8.
-* UTF8:                                  libiconv.
-* VIQR:                                  Vietnamese.
-* VISCII:                                Vietnamese.
-* VISCII, aliases:                       libiconv.
-* VISCII1.1-1:                           libiconv.
-* VN1, maybe not available:              Vietnamese.
-* VN2, maybe not available:              Vietnamese.
-* VN3, maybe not available:              Vietnamese.
-* VNI:                                   Vietnamese.
-* VPS:                                   Vietnamese.
-* WinBaltRim:                            Tabular.
-* WINBALTRIM:                            libiconv.
-* windows-1250:                          Tabular.
-* WINDOWS-1250:                          libiconv.
-* windows-1251:                          Tabular.
-* WINDOWS-1251:                          libiconv.
-* windows-1252:                          Tabular.
-* WINDOWS-1252:                          libiconv.
-* windows-1253:                          Tabular.
-* WINDOWS-1253:                          libiconv.
-* windows-1254:                          Tabular.
-* WINDOWS-1254:                          libiconv.
-* windows-1255:                          Tabular.
-* WINDOWS-1255:                          libiconv.
-* windows-1256:                          Tabular.
-* WINDOWS-1256:                          libiconv.
-* windows-1257:                          Tabular.
-* WINDOWS-1257:                          libiconv.
-* WINDOWS-1258:                          libiconv.
-* WINDOWS-874:                           libiconv.
-* wolof:                                 African.
-* X0201 <1>:                             Tabular.
-* X0201:                                 libiconv.
-* x0201-7:                               Tabular.
-* X0208:                                 libiconv.
-* X0212:                                 libiconv.
-* x1:                                    Dump.
-* x2:                                    Dump.
-* x4:                                    Dump.
-* yu:                                    Tabular.
+* library, iconv:                        libiconv.
+* listing charsets:                      Listings.
+* Macintosh charset:                     Apple-Mac.
+* map filling:                           Reversibility.
+* map filling, disable:                  Reversibility.
+* markup language:                       HTML.
+* memory sequencing:                     Sequencing.
+* MIME encodings:                        MIME.
+* misuse of recoding library, error message: Errors.
+* MS-DOS charsets:                       IBM-PC.
+* MULE, in Emacs:                        Mule.
+* multiplexed charsets:                  Mule.
+* names of charsets and surfaces, abbreviation: Requests.
+* new charsets, how to add:              New charsets.
+* new surfaces, how to add:              New surfaces.
+* NeXT charsets:                         Micros.
+* non canonical input, error message:    Errors.
+* normilise an HTML file:                HTML.
+* NOS 6/12 code:                         CDC-NOS.
+* numeric character references:          HTML.
+* outer level functions:                 Outer level.
+* partial conversion:                    Mixed.
+* permutations of groups of bytes:       Permutations.
+* pipe sequencing:                       Sequencing.
+* program_name variable:                 Outer level.
+* programming language support:          Listings.
+* pseudo-charsets:                       Charset overview.
+* pure charset:                          Surface overview.
+* quality of recoding:                   Recoding.
+* recode internals:                      Internals.
+* recode request syntax:                 Requests.
+* recode use, a tutorial:                Tutorial.
+* recode version, printing:              Listings.
+* recode, a Macintosh port:              Apple-Mac.
+* recode, and RFC 1345:                  Tabular.
+* recode, main flow of operation:        Main flow.
+* recode, operation as filter:           Synopsis.
+* recode, synopsis of invocation:        Synopsis.
+* recoding details:                      Recoding.
+* recoding library:                      Library.
+* recoding path, rejection:              Recoding.
+* recoding steps, statistics:            Main flow.
+* removing diacritics and underlines:    flat.
+* reporting bugs:                        Contributing.
+* request level functions:               Request level.
+* request, syntax:                       Requests.
+* reversibility of recoding:             Reversibility.
+* RFC 1345:                              Tabular.
+* RFC 2045:                              MIME.
+* sequencing:                            Sequencing.
+* SGML:                                  HTML.
+* shared library implementation:         Design.
+* silent operation:                      Reversibility.
+* single step:                           Main flow.
+* source file generation:                Listings.
+* stdbool.h header:                      Outer level.
+* strict operation:                      Reversibility.
+* string and comments conversion:        Mixed.
+* structural surfaces:                   Surfaces.
+* subsets in charsets:                   Listings.
+* super-charsets:                        Mule.
+* supported programming languages:       Listings.
+* suppressing diagnostic messages:       Reversibility.
+* surface, what it is <1>:               Surfaces.
+* surface, what it is:                   Introduction.
+* surfaces, aliases:                     Requests.
+* surfaces, commutativity:               Requests.
+* surfaces, implementation in recode:    Surfaces.
+* surfaces, implied:                     Requests.
+* surfaces, overview:                    Surface overview.
+* surfaces, structural:                  Surfaces.
+* surfaces, syntax:                      Requests.
+* surfaces, trees:                       Surfaces.
+* system detected problem, error message: Errors.
+* task execution:                        Task level.
+* task level functions:                  Task level.
+* TeX files:                             LaTeX.
+* Texinfo files:                         Texinfo.
+* threshold for error reporting:         Errors.
+* time stamps of files:                  Recoding.
+* trivial surface:                       Surfaces.
+* tutorial:                              Tutorial.
+* unavailable conversions:               Charset overview.
+* Unicode:                               UCS-2.
+* unknown charsets:                      Listings.
+* unreachable charsets:                  Charset overview.
+* untranslatable input, error message:   Errors.
+* valid characters in charset names:     Requests.
+* verbose operation:                     Recoding.
+* Vietnamese charsets:                   Vietnamese.
+* Web:                                   HTML.
+* World Wide Web:                        HTML.
+* WWW:                                   HTML.
+* XML:                                   HTML.
+
+\1f
+File: recode.info,  Node: Option Index,  Next: Library Index,  Prev: Concept Index,  Up: Top
+
+Option Index
+************
+
+   This is an alphabetical list of all command-line options accepted by
+`recode'.
+
+* Menu:
+
+* --colons:                              Recoding.
+* --copyright:                           Listings.
+* --diacritics:                          Mixed.
+* --find-subsets:                        Listings.
+* --force:                               Reversibility.
+* --graphics:                            Recoding.
+* --header:                              Listings.
+* --help:                                Listings.
+* --ignore:                              Recoding.
+* --known=:                              Listings.
+* --list:                                Listings.
+* --quiet:                               Reversibility.
+* --sequence:                            Sequencing.
+* --silent:                              Reversibility.
+* --source:                              Mixed.
+* --strict:                              Reversibility.
+* --touch:                               Recoding.
+* --verbose:                             Recoding.
+* --version:                             Listings.
+* -c:                                    Recoding.
+* -C:                                    Listings.
+* -d:                                    Mixed.
+* -f:                                    Reversibility.
+* -g:                                    Recoding.
+* -h:                                    Listings.
+* -i:                                    Sequencing.
+* -k:                                    Listings.
+* -l:                                    Listings.
+* -p:                                    Sequencing.
+* -q:                                    Reversibility.
+* -S:                                    Mixed.
+* -s:                                    Reversibility.
+* -t:                                    Recoding.
+* -T:                                    Listings.
+* -v:                                    Recoding.
+* -x:                                    Recoding.
+
+\1f
+File: recode.info,  Node: Library Index,  Next: Charset and Surface Index,  Prev: Option Index,  Up: Top
+
+Library Index
+*************
+
+   This is an alphabetical index of important functions, data
+structures, and variables in the `recode' library.
+
+* Menu:
 
+* abort_level:                           Task level.
+* ascii_graphics:                        Request level.
+* byte_order_mark:                       Task level.
+* declare_step:                          New surfaces.
+* DEFAULT_CHARSET:                       Requests.
+* diacritics_only:                       Request level.
+* diaeresis_char:                        Request level.
+* error_so_far:                          Task level.
+* fail_level:                            Task level.
+* file_one_to_many:                      New charsets.
+* file_one_to_one:                       New charsets.
+* find_charset:                          Charset level.
+* LANG, when listing charsets:           Listings.
+* LANGUAGE, when listing charsets:       Listings.
+* list_all_charsets:                     Charset level.
+* list_concise_charset:                  Charset level.
+* list_full_charset:                     Charset level.
+* make_header_flag:                      Request level.
+* RECODE_AMBIGUOUS_OUTPUT:               Errors.
+* recode_buffer_to_buffer:               Request level.
+* recode_buffer_to_file:                 Request level.
+* recode_delete_outer:                   Outer level.
+* recode_delete_request:                 Request level.
+* recode_delete_task:                    Task level.
+* recode_file_to_buffer:                 Request level.
+* recode_file_to_file:                   Request level.
+* recode_filter_close:                   Task level.
+* recode_filter_close, not available:    Request level.
+* recode_filter_open:                    Task level.
+* recode_filter_open, not available:     Request level.
+* recode_format_table:                   Request level.
+* RECODE_INTERNAL_ERROR:                 Errors.
+* RECODE_INVALID_INPUT:                  Errors.
+* RECODE_MAXIMUM_ERROR <1>:              Errors.
+* RECODE_MAXIMUM_ERROR:                  Task level.
+* recode_new_outer:                      Outer level.
+* recode_new_request:                    Request level.
+* recode_new_task:                       Task level.
+* RECODE_NO_ERROR:                       Errors.
+* RECODE_NOT_CANONICAL:                  Errors.
+* RECODE_OUTER structure:                Outer level.
+* recode_perform_task:                   Task level.
+* recode_request structure:              Request level.
+* RECODE_REQUEST structure:              Request level.
+* recode_scan_request:                   Request level.
+* RECODE_SEQUENCE_IN_MEMORY:             Task level.
+* RECODE_SEQUENCE_WITH_FILES:            Task level.
+* RECODE_SEQUENCE_WITH_PIPE:             Task level.
+* RECODE_STRATEGY_UNDECIDED:             Task level.
+* recode_string:                         Request level.
+* recode_string_to_buffer:               Request level.
+* recode_string_to_file:                 Request level.
+* RECODE_SYSTEM_ERROR:                   Errors.
+* RECODE_TASK structure:                 Task level.
+* RECODE_UNTRANSLATABLE:                 Errors.
+* RECODE_USER_ERROR:                     Errors.
+* strategy:                              Task level.
+* task_request structure:                Task level.
+* verbose_flag:                          Request level.
 
diff --git a/doc/recode.info-7 b/doc/recode.info-7
new file mode 100644 (file)
index 0000000..72a38cb
--- /dev/null
@@ -0,0 +1,1100 @@
+This is recode.info, produced by makeinfo version 4.0 from recode.texi.
+
+INFO-DIR-SECTION Internationalization and character sets
+START-INFO-DIR-ENTRY
+* recode: (recode).     Conversion between character sets and surfaces.
+END-INFO-DIR-ENTRY
+
+   This file documents the `recode' command, which has the purpose of
+converting files between various character sets and surfaces.
+
+   Copyright (C) 1990, 93, 94, 96, 97, 98, 99, 00 Free Software
+Foundation, Inc.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+\1f
+File: recode.info,  Node: Charset and Surface Index,  Prev: Library Index,  Up: Top
+
+Charset and Surface Index
+*************************
+
+   This is an alphabetical list of all the charsets and surfaces
+supported by `recode', and their aliases.
+
+* Menu:
+
+* 037:                                   Tabular.
+* 038:                                   Tabular.
+* 1004:                                  Tabular.
+* 1026:                                  Tabular.
+* 1047:                                  Tabular.
+* 10646:                                 UCS-4.
+* 1129, not available:                   Vietnamese.
+* 1250:                                  Tabular.
+* 1251:                                  Tabular.
+* 1252:                                  Tabular.
+* 1253:                                  Tabular.
+* 1254:                                  Tabular.
+* 1255:                                  Tabular.
+* 1256:                                  Tabular.
+* 1257:                                  Tabular.
+* 1258, not available:                   Vietnamese.
+* 1345:                                  Tabular.
+* 1866:                                  HTML.
+* 2070:                                  HTML.
+* 21-Permutation:                        Permutations.
+* 256:                                   Tabular.
+* 273:                                   Tabular.
+* 274:                                   Tabular.
+* 275:                                   Tabular.
+* 278:                                   Tabular.
+* 280:                                   Tabular.
+* 281:                                   Tabular.
+* 284:                                   Tabular.
+* 285:                                   Tabular.
+* 290:                                   Tabular.
+* 297:                                   Tabular.
+* 367:                                   Tabular.
+* 420:                                   Tabular.
+* 423:                                   Tabular.
+* 424:                                   Tabular.
+* 4321-Permutation:                      Permutations.
+* 437:                                   Tabular.
+* 500:                                   Tabular.
+* 500V1:                                 Tabular.
+* 64:                                    MIME.
+* 819:                                   Tabular.
+* 850 <1>:                               Tabular.
+* 850:                                   libiconv.
+* 851:                                   Tabular.
+* 852:                                   Tabular.
+* 855:                                   Tabular.
+* 857:                                   Tabular.
+* 860:                                   Tabular.
+* 861:                                   Tabular.
+* 862:                                   Tabular.
+* 863:                                   Tabular.
+* 864:                                   Tabular.
+* 865:                                   Tabular.
+* 866:                                   libiconv.
+* 868:                                   Tabular.
+* 869:                                   Tabular.
+* 870:                                   Tabular.
+* 871:                                   Tabular.
+* 875:                                   Tabular.
+* 880:                                   Tabular.
+* 891:                                   Tabular.
+* 903:                                   Tabular.
+* 904:                                   Tabular.
+* 905:                                   Tabular.
+* 912:                                   Tabular.
+* 918:                                   Tabular.
+* AFRFUL-102-BPI_OCIL, and aliases:      African.
+* AFRFUL-103-BPI_OCIL, and aliases:      African.
+* AFRL1-101-BPI_OCIL:                    African.
+* AFRLIN-104-BPI_OCIL:                   African.
+* AFRLIN-105-BPI_OCIL:                   African.
+* ANSI_X3.110-1983, not recognised by recode: Tabular.
+* ANSI_X3.4-1968:                        libiconv.
+* ANSI_X3.4-1968, aliases and source:    Tabular.
+* ANSI_X3.4-1968, and its aliases:       ASCII.
+* ANSI_X3.4-1986:                        Tabular.
+* Apple-Mac:                             Apple-Mac.
+* arabic:                                Tabular.
+* ARABIC:                                libiconv.
+* arabic7:                               Tabular.
+* ARMSCII-8:                             libiconv.
+* ASCII <1>:                             Tabular.
+* ASCII:                                 libiconv.
+* ASCII, an alias for the ANSI_X3.4-1968 charset: ASCII.
+* ASCII-BS, and its aliases:             ASCII-BS.
+* ASMO-708 <1>:                          Tabular.
+* ASMO-708:                              libiconv.
+* ASMO_449, aliases and source:          Tabular.
+* AtariST:                               AtariST.
+* b64:                                   MIME.
+* baltic, aliases and source:            Tabular.
+* bambara:                               African.
+* Bang-Bang:                             Bang-Bang.
+* Base64:                                MIME.
+* BIG-5:                                 libiconv.
+* BIG-FIVE:                              libiconv.
+* BIG5, aliases:                         libiconv.
+* BIG5HKSCS:                             libiconv.
+* BIGFIVE:                               libiconv.
+* BMP:                                   UCS-2.
+* bra:                                   African.
+* BS, an alias for ASCII-BS charset:     ASCII-BS.
+* BS_4730, aliases and source:           Tabular.
+* BS_viewdata, aliases and source:       Tabular.
+* ca:                                    Tabular.
+* CDC-NOS, and its aliases:              CDC-NOS.
+* CHAR:                                  libiconv.
+* CHINESE:                               libiconv.
+* cl:                                    End lines.
+* cn:                                    Tabular.
+* CN:                                    libiconv.
+* CN-BIG5:                               libiconv.
+* CN-GB:                                 libiconv.
+* CN-GB-ISOIR165:                        libiconv.
+* combined-UCS-2:                        UCS-2.
+* CORK:                                  Others.
+* count-characters:                      count-characters.
+* count-characters, not as before charset: Charset overview.
+* cp-ar:                                 Tabular.
+* cp-gr:                                 Tabular.
+* cp-hu:                                 Tabular.
+* cp-is:                                 Tabular.
+* CP037:                                 Tabular.
+* CP038:                                 Tabular.
+* CP1004:                                Tabular.
+* CP1026:                                Tabular.
+* CP1047:                                Tabular.
+* CP1129, not available:                 Vietnamese.
+* CP1133, aliases:                       libiconv.
+* CP1250, aliases:                       libiconv.
+* CP1250, aliases and source:            Tabular.
+* CP1251, aliases:                       libiconv.
+* CP1251, aliases and source:            Tabular.
+* CP1252, aliases:                       libiconv.
+* CP1252, aliases and source:            Tabular.
+* CP1253, aliases:                       libiconv.
+* CP1253, aliases and source:            Tabular.
+* CP1254, aliases:                       libiconv.
+* CP1254, aliases and source:            Tabular.
+* CP1255, aliases:                       libiconv.
+* CP1255, aliases and source:            Tabular.
+* CP1256, aliases:                       libiconv.
+* CP1256, aliases and source:            Tabular.
+* CP1257, aliases:                       libiconv.
+* CP1257, aliases and source:            Tabular.
+* CP1258, aliases:                       libiconv.
+* CP1258, not available:                 Vietnamese.
+* CP1361:                                libiconv.
+* CP256:                                 Tabular.
+* CP273:                                 Tabular.
+* CP274:                                 Tabular.
+* CP275:                                 Tabular.
+* CP278:                                 Tabular.
+* CP280:                                 Tabular.
+* CP281:                                 Tabular.
+* CP284:                                 Tabular.
+* CP285:                                 Tabular.
+* CP290:                                 Tabular.
+* CP297:                                 Tabular.
+* cp367:                                 ASCII.
+* CP367 <1>:                             Tabular.
+* CP367:                                 libiconv.
+* CP420:                                 Tabular.
+* CP423:                                 Tabular.
+* CP424:                                 Tabular.
+* CP437:                                 Tabular.
+* CP500:                                 Tabular.
+* CP819 <1>:                             Tabular.
+* CP819:                                 libiconv.
+* CP850:                                 Tabular.
+* CP850, aliases:                        libiconv.
+* CP851:                                 Tabular.
+* CP852:                                 Tabular.
+* CP855:                                 Tabular.
+* CP857:                                 Tabular.
+* CP860:                                 Tabular.
+* CP861:                                 Tabular.
+* CP862:                                 Tabular.
+* CP863:                                 Tabular.
+* CP864:                                 Tabular.
+* CP865:                                 Tabular.
+* CP866, aliases:                        libiconv.
+* CP868:                                 Tabular.
+* CP869:                                 Tabular.
+* CP870:                                 Tabular.
+* CP871:                                 Tabular.
+* CP874, aliases:                        libiconv.
+* CP875:                                 Tabular.
+* CP880:                                 Tabular.
+* CP891:                                 Tabular.
+* CP903:                                 Tabular.
+* CP904:                                 Tabular.
+* CP905:                                 Tabular.
+* CP912:                                 Tabular.
+* CP918:                                 Tabular.
+* CP932:                                 libiconv.
+* CP936:                                 libiconv.
+* CP949, aliases:                        libiconv.
+* CP950:                                 libiconv.
+* CR, a surface:                         End lines.
+* CR-LF, a surface:                      End lines.
+* csa7-1:                                Tabular.
+* csa7-2:                                Tabular.
+* CSA_Z243.4-1985-1, aliases and source: Tabular.
+* CSA_Z243.4-1985-2, aliases and source: Tabular.
+* CSA_Z243.4-1985-gr, aliases and source: Tabular.
+* csASCII:                               libiconv.
+* csBig5:                                libiconv.
+* csEUCKR:                               libiconv.
+* csEUCPkdFmtJapanese:                   libiconv.
+* csEUCTW:                               libiconv.
+* csGB2312:                              libiconv.
+* csHalfWidthKatakana:                   libiconv.
+* csHPRoman8:                            libiconv.
+* csIBM866:                              libiconv.
+* csISO14JISC6220ro:                     libiconv.
+* csISO159JISX02121990:                  libiconv.
+* csISO2022CN:                           libiconv.
+* csISO2022JP:                           libiconv.
+* csISO2022JP2:                          libiconv.
+* csISO2022KR:                           libiconv.
+* csISO57GB1988:                         libiconv.
+* csISO58GB231280:                       libiconv.
+* csISO87JISX0208:                       libiconv.
+* csISOLatin1:                           libiconv.
+* csISOLatin2:                           libiconv.
+* csISOLatin3:                           libiconv.
+* csISOLatin4:                           libiconv.
+* csISOLatin5:                           libiconv.
+* csISOLatin6:                           libiconv.
+* csISOLatinArabic:                      libiconv.
+* csISOLatinCyrillic:                    libiconv.
+* csISOLatinGreek:                       libiconv.
+* csISOLatinHebrew:                      libiconv.
+* csKOI8R:                               libiconv.
+* csKSC56011987:                         libiconv.
+* csMacintosh:                           libiconv.
+* CSN_369103, aliases and source:        Tabular.
+* csPC850Multilingual:                   libiconv.
+* csShiftJIS:                            libiconv.
+* csUCS4:                                libiconv.
+* csUnicode:                             libiconv.
+* csUnicode11:                           libiconv.
+* csUnicode11UTF7:                       libiconv.
+* csVISCII:                              libiconv.
+* cuba:                                  Tabular.
+* CWI, aliases and source:               Tabular.
+* CWI-2:                                 Tabular.
+* cyrillic:                              Tabular.
+* CYRILLIC:                              libiconv.
+* d1:                                    Dump.
+* d2:                                    Dump.
+* d4:                                    Dump.
+* data, a special charset:               Surfaces.
+* data, not with charsets:               Charset overview.
+* de:                                    Tabular.
+* dec:                                   Tabular.
+* DEC-MCS, aliases and source:           Tabular.
+* Decimal-1:                             Dump.
+* Decimal-2:                             Dump.
+* Decimal-4:                             Dump.
+* DIN_66003, aliases and source:         Tabular.
+* dk:                                    Tabular.
+* dk-us, not recognised by recode:       Tabular.
+* dos:                                   IBM-PC.
+* DS2089:                                Tabular.
+* DS_2089, aliases and source:           Tabular.
+* dump-with-names:                       dump-with-names.
+* dump-with-names, not as before charset: Charset overview.
+* e13b:                                  Tabular.
+* EBCDIC, a charset:                     EBCDIC.
+* EBCDIC-AT-DE, aliases and source:      Tabular.
+* EBCDIC-AT-DE-A, aliases and source:    Tabular.
+* EBCDIC-BE:                             Tabular.
+* EBCDIC-BR:                             Tabular.
+* EBCDIC-CA-FR, aliases and source:      Tabular.
+* EBCDIC-CCC:                            EBCDIC.
+* ebcdic-cp-ar1:                         Tabular.
+* ebcdic-cp-ar2:                         Tabular.
+* ebcdic-cp-be:                          Tabular.
+* ebcdic-cp-ca:                          Tabular.
+* ebcdic-cp-ch:                          Tabular.
+* EBCDIC-CP-DK:                          Tabular.
+* ebcdic-cp-es:                          Tabular.
+* ebcdic-cp-fi:                          Tabular.
+* ebcdic-cp-fr:                          Tabular.
+* ebcdic-cp-gb:                          Tabular.
+* ebcdic-cp-gr:                          Tabular.
+* ebcdic-cp-he:                          Tabular.
+* ebcdic-cp-is:                          Tabular.
+* ebcdic-cp-it:                          Tabular.
+* ebcdic-cp-nl:                          Tabular.
+* EBCDIC-CP-NO:                          Tabular.
+* ebcdic-cp-roece:                       Tabular.
+* ebcdic-cp-se:                          Tabular.
+* ebcdic-cp-tr:                          Tabular.
+* ebcdic-cp-us:                          Tabular.
+* ebcdic-cp-wt:                          Tabular.
+* ebcdic-cp-yu:                          Tabular.
+* EBCDIC-Cyrillic:                       Tabular.
+* EBCDIC-DK-NO, aliases and source:      Tabular.
+* EBCDIC-DK-NO-A, aliases and source:    Tabular.
+* EBCDIC-ES, aliases and source:         Tabular.
+* EBCDIC-ES-A, aliases and source:       Tabular.
+* EBCDIC-ES-S, aliases and source:       Tabular.
+* EBCDIC-FI-SE, aliases and source:      Tabular.
+* EBCDIC-FI-SE-A, aliases and source:    Tabular.
+* EBCDIC-FR, aliases and source:         Tabular.
+* EBCDIC-Greek:                          Tabular.
+* EBCDIC-IBM:                            EBCDIC.
+* EBCDIC-INT:                            Tabular.
+* EBCDIC-INT1:                           Tabular.
+* EBCDIC-IS-FRISS, aliases and source:   Tabular.
+* EBCDIC-IT, aliases and source:         Tabular.
+* EBCDIC-JP-E:                           Tabular.
+* EBCDIC-JP-kana:                        Tabular.
+* EBCDIC-PT, aliases and source:         Tabular.
+* EBCDIC-UK, aliases and source:         Tabular.
+* EBCDIC-US, aliases and source:         Tabular.
+* ECMA-113:                              Tabular.
+* ECMA-113(1986):                        Tabular.
+* ECMA-114 <1>:                          Tabular.
+* ECMA-114:                              libiconv.
+* ECMA-118 <1>:                          Tabular.
+* ECMA-118:                              libiconv.
+* ECMA-cyrillic, aliases and source:     Tabular.
+* ELOT_928 <1>:                          Tabular.
+* ELOT_928:                              libiconv.
+* ES, aliases and source:                Tabular.
+* ES2, aliases and source:               Tabular.
+* EUC-CN, aliases:                       libiconv.
+* EUC-JP, aliases:                       libiconv.
+* EUC-KR, aliases:                       libiconv.
+* EUC-TW, aliases:                       libiconv.
+* EUC_CN:                                libiconv.
+* EUC_JP:                                libiconv.
+* EUC_KR:                                libiconv.
+* EUC_TW:                                libiconv.
+* EUCCN:                                 libiconv.
+* EUCJP:                                 libiconv.
+* EUCKR:                                 libiconv.
+* EUCTW:                                 libiconv.
+* ewondo:                                African.
+* Extended_UNIX_Code_Packed_Format_for_Japanese: libiconv.
+* FI:                                    Tabular.
+* flat, a charset:                       flat.
+* flat, not as before charset:           Charset overview.
+* fr:                                    Tabular.
+* friss:                                 Tabular.
+* FSS_UTF:                               UTF-8.
+* fulfude:                               African.
+* gb:                                    Tabular.
+* GB18030:                               libiconv.
+* GB2312:                                libiconv.
+* GB2312.1980-0:                         libiconv.
+* GB_1988-80, aliases:                   libiconv.
+* GB_1988-80, aliases and source:        Tabular.
+* GB_2312-80, aliases:                   libiconv.
+* GB_2312-80, not recognised by recode:  Tabular.
+* GBK, aliases:                          libiconv.
+* Georgian-Academy:                      libiconv.
+* Georgian-PS:                           libiconv.
+* GOST_19768-74:                         Tabular.
+* GOST_19768-87, aliases and source:     Tabular.
+* greek:                                 Tabular.
+* GREEK:                                 libiconv.
+* greek-ccitt, aliases and source:       Tabular.
+* greek7, aliases and source:            Tabular.
+* greek7-old, aliases and source:        Tabular.
+* greek8:                                Tabular.
+* GREEK8:                                libiconv.
+* h:                                     HTML.
+* h0:                                    HTML.
+* h1:                                    HTML.
+* h2:                                    HTML.
+* h3:                                    HTML.
+* h4:                                    HTML.
+* hebrew:                                Tabular.
+* HEBREW:                                libiconv.
+* Hexadecimal-1:                         Dump.
+* Hexadecimal-2:                         Dump.
+* Hexadecimal-4:                         Dump.
+* HP-ROMAN8, aliases:                    libiconv.
+* hp-roman8, aliases and source:         Tabular.
+* HTML-i18n:                             HTML.
+* HTML_1.1:                              HTML.
+* HTML_2.0:                              HTML.
+* HTML_3.2:                              HTML.
+* hu:                                    Tabular.
+* HZ, aliases:                           libiconv.
+* HZ-GB-2312:                            libiconv.
+* IBM-CP1133:                            libiconv.
+* IBM-PC:                                IBM-PC.
+* IBM-PC charset, and CR-LF surface:     Requests.
+* IBM037, aliases and source:            Tabular.
+* IBM038, aliases and source:            Tabular.
+* IBM1004, aliases and source:           Tabular.
+* IBM1026, aliases and source:           Tabular.
+* IBM1047, aliases and source:           Tabular.
+* IBM256, aliases and source:            Tabular.
+* IBM273, aliases and source:            Tabular.
+* IBM274, aliases and source:            Tabular.
+* IBM275, aliases and source:            Tabular.
+* IBM277, aliases and source:            Tabular.
+* IBM278, aliases and source:            Tabular.
+* IBM280, aliases and source:            Tabular.
+* IBM281, aliases and source:            Tabular.
+* IBM284, aliases and source:            Tabular.
+* IBM285, aliases and source:            Tabular.
+* IBM290, aliases and source:            Tabular.
+* IBM297, aliases and source:            Tabular.
+* IBM367 <1>:                            ASCII.
+* IBM367 <2>:                            Tabular.
+* IBM367:                                libiconv.
+* IBM420, aliases and source:            Tabular.
+* IBM423, aliases and source:            Tabular.
+* IBM424, aliases and source:            Tabular.
+* ibm437:                                IBM-PC.
+* IBM437, aliases and source:            Tabular.
+* IBM500, aliases and source:            Tabular.
+* IBM819 <1>:                            Tabular.
+* IBM819:                                libiconv.
+* IBM819, and CR-LF surface:             IBM-PC.
+* IBM850:                                libiconv.
+* IBM850, aliases and source:            Tabular.
+* IBM851, aliases and source:            Tabular.
+* IBM852, aliases and source:            Tabular.
+* IBM855, aliases and source:            Tabular.
+* IBM857, aliases and source:            Tabular.
+* IBM860, aliases and source:            Tabular.
+* IBM861, aliases and source:            Tabular.
+* IBM862, aliases and source:            Tabular.
+* IBM863, aliases and source:            Tabular.
+* IBM864, aliases and source:            Tabular.
+* IBM865, aliases and source:            Tabular.
+* IBM866:                                libiconv.
+* IBM868, aliases and source:            Tabular.
+* IBM869, aliases and source:            Tabular.
+* IBM870, aliases and source:            Tabular.
+* IBM871, aliases and source:            Tabular.
+* IBM875, aliases and source:            Tabular.
+* IBM880, aliases and source:            Tabular.
+* IBM891, aliases and source:            Tabular.
+* IBM903, aliases and source:            Tabular.
+* IBM904, aliases and source:            Tabular.
+* IBM905, aliases and source:            Tabular.
+* IBM912:                                Tabular.
+* IBM918, aliases and source:            Tabular.
+* Icon-QNX, and aliases:                 Icon-QNX.
+* IEC_P27-1, aliases and source:         Tabular.
+* INIS, aliases and source:              Tabular.
+* INIS-8, aliases and source:            Tabular.
+* INIS-cyrillic, aliases and source:     Tabular.
+* INVARIANT, aliases and source:         Tabular.
+* irv:                                   Tabular.
+* ISO-10646-UCS-2:                       libiconv.
+* ISO-10646-UCS-2, and aliases:          UCS-2.
+* ISO-10646-UCS-4:                       libiconv.
+* ISO-10646-UCS-4, and aliases:          UCS-4.
+* ISO-2022-CN, aliases:                  libiconv.
+* ISO-2022-CN-EXT:                       libiconv.
+* ISO-2022-JP, aliases:                  libiconv.
+* ISO-2022-JP-1:                         libiconv.
+* ISO-2022-JP-2, aliases:                libiconv.
+* ISO-2022-KR, aliases:                  libiconv.
+* ISO-8859-1, aliases:                   libiconv.
+* ISO-8859-1, aliases and source:        Tabular.
+* ISO-8859-10, aliases:                  libiconv.
+* ISO-8859-10, aliases and source:       Tabular.
+* ISO-8859-13, aliases:                  libiconv.
+* ISO-8859-13, aliases and source:       Tabular.
+* ISO-8859-14, aliases:                  libiconv.
+* ISO-8859-14, aliases and source:       Tabular.
+* ISO-8859-15, aliases:                  libiconv.
+* ISO-8859-15, aliases and source:       Tabular.
+* ISO-8859-16, aliases:                  libiconv.
+* ISO-8859-2, aliases:                   libiconv.
+* ISO-8859-2, aliases and source:        Tabular.
+* ISO-8859-3, aliases:                   libiconv.
+* ISO-8859-3, aliases and source:        Tabular.
+* ISO-8859-4, aliases:                   libiconv.
+* ISO-8859-4, aliases and source:        Tabular.
+* ISO-8859-5, aliases:                   libiconv.
+* ISO-8859-5, aliases and source:        Tabular.
+* ISO-8859-6, aliases:                   libiconv.
+* ISO-8859-6, aliases and source:        Tabular.
+* ISO-8859-7, aliases:                   libiconv.
+* ISO-8859-7, aliases and source:        Tabular.
+* ISO-8859-8, aliases:                   libiconv.
+* ISO-8859-8, aliases and source:        Tabular.
+* ISO-8859-9, aliases:                   libiconv.
+* ISO-8859-9, aliases and source:        Tabular.
+* iso-baltic:                            Tabular.
+* iso-celtic:                            Tabular.
+* iso-ir-10:                             Tabular.
+* iso-ir-100:                            Tabular.
+* ISO-IR-100:                            libiconv.
+* iso-ir-101:                            Tabular.
+* ISO-IR-101:                            libiconv.
+* iso-ir-102:                            Tabular.
+* iso-ir-109:                            Tabular.
+* ISO-IR-109:                            libiconv.
+* iso-ir-11:                             Tabular.
+* iso-ir-110:                            Tabular.
+* ISO-IR-110:                            libiconv.
+* iso-ir-111:                            Tabular.
+* iso-ir-121:                            Tabular.
+* iso-ir-122:                            Tabular.
+* iso-ir-123:                            Tabular.
+* iso-ir-126:                            Tabular.
+* ISO-IR-126:                            libiconv.
+* iso-ir-127:                            Tabular.
+* ISO-IR-127:                            libiconv.
+* iso-ir-13:                             Tabular.
+* iso-ir-138:                            Tabular.
+* ISO-IR-138:                            libiconv.
+* iso-ir-139:                            Tabular.
+* iso-ir-14:                             Tabular.
+* ISO-IR-14:                             libiconv.
+* iso-ir-141:                            Tabular.
+* iso-ir-143:                            Tabular.
+* iso-ir-144:                            Tabular.
+* ISO-IR-144:                            libiconv.
+* iso-ir-146:                            Tabular.
+* iso-ir-147:                            Tabular.
+* iso-ir-148:                            Tabular.
+* ISO-IR-148:                            libiconv.
+* ISO-IR-149:                            libiconv.
+* iso-ir-15:                             Tabular.
+* iso-ir-150:                            Tabular.
+* iso-ir-151:                            Tabular.
+* iso-ir-152:                            Tabular.
+* iso-ir-153:                            Tabular.
+* iso-ir-154:                            Tabular.
+* iso-ir-155:                            Tabular.
+* iso-ir-157:                            Tabular.
+* ISO-IR-157:                            libiconv.
+* iso-ir-158:                            Tabular.
+* ISO-IR-159:                            libiconv.
+* iso-ir-16:                             Tabular.
+* ISO-IR-165, aliases:                   libiconv.
+* ISO-IR-166:                            libiconv.
+* iso-ir-17:                             Tabular.
+* iso-ir-170:                            Tabular.
+* iso-ir-179:                            Tabular.
+* ISO-IR-179:                            libiconv.
+* iso-ir-179a:                           Tabular.
+* iso-ir-18:                             Tabular.
+* iso-ir-19:                             Tabular.
+* iso-ir-199:                            Tabular.
+* ISO-IR-199:                            libiconv.
+* iso-ir-2:                              Tabular.
+* iso-ir-203:                            Tabular.
+* ISO-IR-203:                            libiconv.
+* iso-ir-21:                             Tabular.
+* ISO-IR-226:                            libiconv.
+* iso-ir-25:                             Tabular.
+* iso-ir-27:                             Tabular.
+* iso-ir-37:                             Tabular.
+* iso-ir-4:                              Tabular.
+* iso-ir-47:                             Tabular.
+* iso-ir-49:                             Tabular.
+* iso-ir-50:                             Tabular.
+* iso-ir-51:                             Tabular.
+* iso-ir-54:                             Tabular.
+* iso-ir-55:                             Tabular.
+* iso-ir-57:                             Tabular.
+* ISO-IR-57:                             libiconv.
+* ISO-IR-58:                             libiconv.
+* iso-ir-6 <1>:                          ASCII.
+* iso-ir-6:                              Tabular.
+* ISO-IR-6:                              libiconv.
+* iso-ir-60:                             Tabular.
+* iso-ir-61:                             Tabular.
+* iso-ir-69:                             Tabular.
+* iso-ir-8-1:                            Tabular.
+* iso-ir-8-2:                            Tabular.
+* iso-ir-84:                             Tabular.
+* iso-ir-85:                             Tabular.
+* iso-ir-86:                             Tabular.
+* ISO-IR-87:                             libiconv.
+* iso-ir-88:                             Tabular.
+* iso-ir-89:                             Tabular.
+* iso-ir-9-1:                            Tabular.
+* iso-ir-9-2:                            Tabular.
+* iso-ir-90, not recognised by recode:   Tabular.
+* iso-ir-93:                             Tabular.
+* iso-ir-94:                             Tabular.
+* iso-ir-95:                             Tabular.
+* iso-ir-96:                             Tabular.
+* iso-ir-98:                             Tabular.
+* ISO2022CN:                             libiconv.
+* ISO2022JP:                             libiconv.
+* ISO2022KR:                             libiconv.
+* ISO646-CA:                             Tabular.
+* ISO646-CA2:                            Tabular.
+* ISO646-CN <1>:                         Tabular.
+* ISO646-CN:                             libiconv.
+* ISO646-CU:                             Tabular.
+* ISO646-DE:                             Tabular.
+* ISO646-DK:                             Tabular.
+* ISO646-ES:                             Tabular.
+* ISO646-ES2:                            Tabular.
+* ISO646-FI:                             Tabular.
+* ISO646-FR:                             Tabular.
+* ISO646-FR1:                            Tabular.
+* ISO646-GB:                             Tabular.
+* ISO646-HU:                             Tabular.
+* ISO646-IT:                             Tabular.
+* ISO646-JP <1>:                         Tabular.
+* ISO646-JP:                             libiconv.
+* ISO646-JP-OCR-B:                       Tabular.
+* ISO646-KR:                             Tabular.
+* ISO646-NO:                             Tabular.
+* ISO646-NO2:                            Tabular.
+* ISO646-PT:                             Tabular.
+* ISO646-PT2:                            Tabular.
+* ISO646-SE:                             Tabular.
+* ISO646-SE2:                            Tabular.
+* ISO646-US <1>:                         Tabular.
+* ISO646-US:                             libiconv.
+* ISO646-YU:                             Tabular.
+* ISO646.1991-IRV:                       libiconv.
+* ISO8859-1 <1>:                         Tabular.
+* ISO8859-1:                             libiconv.
+* ISO8859-10 <1>:                        Tabular.
+* ISO8859-10:                            libiconv.
+* ISO8859-13:                            Tabular.
+* ISO8859-14:                            Tabular.
+* ISO8859-15:                            Tabular.
+* ISO8859-2 <1>:                         Tabular.
+* ISO8859-2:                             libiconv.
+* ISO8859-3 <1>:                         Tabular.
+* ISO8859-3:                             libiconv.
+* ISO8859-4 <1>:                         Tabular.
+* ISO8859-4:                             libiconv.
+* ISO8859-5 <1>:                         Tabular.
+* ISO8859-5:                             libiconv.
+* ISO8859-6 <1>:                         Tabular.
+* ISO8859-6:                             libiconv.
+* ISO8859-7 <1>:                         Tabular.
+* ISO8859-7:                             libiconv.
+* ISO8859-8 <1>:                         Tabular.
+* ISO8859-8:                             libiconv.
+* ISO8859-9 <1>:                         Tabular.
+* ISO8859-9:                             libiconv.
+* ISO8859_1:                             libiconv.
+* ISO8859_2:                             libiconv.
+* ISO8859_3:                             libiconv.
+* ISO8859_4:                             libiconv.
+* ISO8859_5:                             libiconv.
+* ISO8859_6:                             libiconv.
+* ISO8859_7:                             libiconv.
+* ISO8859_8:                             libiconv.
+* ISO8859_9:                             libiconv.
+* ISO_10367-box, aliases and source:     Tabular.
+* ISO_10646:                             UCS-4.
+* ISO_2033-1983, aliases and source:     Tabular.
+* ISO_5427(1981):                        Tabular.
+* ISO_5427, aliases and source:          Tabular.
+* ISO_5427-ext, aliases and source:      Tabular.
+* ISO_5428(1980):                        Tabular.
+* ISO_5428, aliases and source:          Tabular.
+* ISO_646.basic(1983):                   Tabular.
+* ISO_646.basic, aliases and source:     Tabular.
+* ISO_646.irv(1983):                     Tabular.
+* ISO_646.irv(1991):                     Tabular.
+* ISO_646.IRV(1991):                     libiconv.
+* ISO_646.irv, aliases and source:       Tabular.
+* ISO_6937-2-25, aliases and source:     Tabular.
+* ISO_6937-2-add, not recognised by recode: Tabular.
+* ISO_8859-1 <1>:                        Tabular.
+* ISO_8859-1:                            libiconv.
+* ISO_8859-1(1987) <1>:                  Tabular.
+* ISO_8859-1(1987):                      libiconv.
+* ISO_8859-10 <1>:                       Tabular.
+* ISO_8859-10:                           libiconv.
+* ISO_8859-10(1992):                     libiconv.
+* ISO_8859-10(1993):                     Tabular.
+* ISO_8859-13 <1>:                       Tabular.
+* ISO_8859-13:                           libiconv.
+* ISO_8859-13(1998):                     Tabular.
+* ISO_8859-14 <1>:                       Tabular.
+* ISO_8859-14:                           libiconv.
+* ISO_8859-14(1998) <1>:                 Tabular.
+* ISO_8859-14(1998):                     libiconv.
+* ISO_8859-15 <1>:                       Tabular.
+* ISO_8859-15:                           libiconv.
+* ISO_8859-15(1998) <1>:                 Tabular.
+* ISO_8859-15(1998):                     libiconv.
+* ISO_8859-16:                           libiconv.
+* ISO_8859-16(2000):                     libiconv.
+* ISO_8859-2 <1>:                        Tabular.
+* ISO_8859-2:                            libiconv.
+* ISO_8859-2(1987) <1>:                  Tabular.
+* ISO_8859-2(1987):                      libiconv.
+* ISO_8859-3 <1>:                        Tabular.
+* ISO_8859-3:                            libiconv.
+* ISO_8859-3(1988) <1>:                  Tabular.
+* ISO_8859-3(1988):                      libiconv.
+* ISO_8859-4 <1>:                        Tabular.
+* ISO_8859-4:                            libiconv.
+* ISO_8859-4(1988) <1>:                  Tabular.
+* ISO_8859-4(1988):                      libiconv.
+* ISO_8859-5 <1>:                        Tabular.
+* ISO_8859-5:                            libiconv.
+* ISO_8859-5(1988) <1>:                  Tabular.
+* ISO_8859-5(1988):                      libiconv.
+* ISO_8859-6 <1>:                        Tabular.
+* ISO_8859-6:                            libiconv.
+* ISO_8859-6(1987) <1>:                  Tabular.
+* ISO_8859-6(1987):                      libiconv.
+* ISO_8859-7 <1>:                        Tabular.
+* ISO_8859-7:                            libiconv.
+* ISO_8859-7(1987) <1>:                  Tabular.
+* ISO_8859-7(1987):                      libiconv.
+* ISO_8859-8 <1>:                        Tabular.
+* ISO_8859-8:                            libiconv.
+* ISO_8859-8(1988) <1>:                  Tabular.
+* ISO_8859-8(1988):                      libiconv.
+* ISO_8859-9 <1>:                        Tabular.
+* ISO_8859-9:                            libiconv.
+* ISO_8859-9(1989) <1>:                  Tabular.
+* ISO_8859-9(1989):                      libiconv.
+* ISO_8859-supp, aliases and source:     Tabular.
+* ISO_9036:                              Tabular.
+* isoir91:                               Tabular.
+* isoir92:                               Tabular.
+* IT, aliases and source:                Tabular.
+* JAVA:                                  libiconv.
+* JIS0201:                               libiconv.
+* JIS0208:                               libiconv.
+* JIS0212:                               libiconv.
+* JIS_C6220-1969:                        Tabular.
+* JIS_C6220-1969-jp, aliases and source: Tabular.
+* JIS_C6220-1969-RO, aliases:            libiconv.
+* JIS_C6220-1969-ro, aliases and source: Tabular.
+* JIS_C6226-1978, not recognised by recode: Tabular.
+* JIS_C6229-1984-a, aliases and source:  Tabular.
+* JIS_C6229-1984-b, aliases and source:  Tabular.
+* JIS_C6229-1984-b-add, aliases and source: Tabular.
+* JIS_C6229-1984-hand, aliases and source: Tabular.
+* JIS_C6229-1984-hand-add, aliases and source: Tabular.
+* JIS_C6229-1984-kana, aliases and source: Tabular.
+* JIS_X0201, aliases:                    libiconv.
+* JIS_X0201, aliases and source:         Tabular.
+* JIS_X0208, aliases:                    libiconv.
+* JIS_X0208-1983:                        libiconv.
+* JIS_X0208-1990:                        libiconv.
+* JIS_X0212, aliases:                    libiconv.
+* JIS_X0212-1990:                        libiconv.
+* JIS_X0212-1990, not recognised by recode: Tabular.
+* JIS_X0212.1990-0:                      libiconv.
+* JISX0201-1976:                         libiconv.
+* JISX0201.1976-0:                       libiconv.
+* JISX0208.1983-0:                       libiconv.
+* JISX0208.1990-0:                       libiconv.
+* JISX0212.1990-0:                       libiconv.
+* JOHAB, aliases:                        libiconv.
+* jp:                                    Tabular.
+* JP:                                    libiconv.
+* jp-ocr-a:                              Tabular.
+* jp-ocr-b:                              Tabular.
+* jp-ocr-b-add:                          Tabular.
+* jp-ocr-hand:                           Tabular.
+* jp-ocr-hand-add:                       Tabular.
+* js:                                    Tabular.
+* JUS_I.B1.002, aliases and source:      Tabular.
+* JUS_I.B1.003-mac, aliases and source:  Tabular.
+* JUS_I.B1.003-serb, aliases and source: Tabular.
+* Kamenicky:                             Others.
+* katakana:                              Tabular.
+* KEYBCS2:                               Others.
+* KOI-7, aliases and source:             Tabular.
+* KOI-8, aliases and source:             Tabular.
+* KOI-8_CS2:                             Others.
+* KOI-8_L2:                              Tabular.
+* KOI8-R, aliases:                       libiconv.
+* KOI8-R, aliases and source:            Tabular.
+* KOI8-RU:                               libiconv.
+* KOI8-RU, aliases and source:           Tabular.
+* KOI8-U:                                libiconv.
+* KOI8-U, aliases and source:            Tabular.
+* koi8l2:                                Tabular.
+* KOREAN:                                libiconv.
+* KS_C_5601-1987:                        libiconv.
+* KS_C_5601-1987, not recognised by recode: Tabular.
+* KS_C_5601-1989:                        libiconv.
+* KSC5601.1987-0:                        libiconv.
+* KSC5636, aliases and source:           Tabular.
+* KSC_5601, aliases:                     libiconv.
+* KSX1001(1992):                         libiconv.
+* l1:                                    Tabular.
+* L1:                                    libiconv.
+* l2:                                    Tabular.
+* L2:                                    libiconv.
+* l3:                                    Tabular.
+* L3:                                    libiconv.
+* l4:                                    Tabular.
+* L4:                                    libiconv.
+* l5:                                    Tabular.
+* L5:                                    libiconv.
+* L6 <1>:                                Tabular.
+* L6:                                    libiconv.
+* l7:                                    Tabular.
+* L7:                                    libiconv.
+* l8:                                    Tabular.
+* L8:                                    libiconv.
+* l9:                                    Tabular.
+* lap:                                   Tabular.
+* LaTeX, a charset:                      LaTeX.
+* Latin-1:                               ISO 8859.
+* latin-greek, aliases and source:       Tabular.
+* Latin-greek-1, aliases and source:     Tabular.
+* latin-lap:                             Tabular.
+* latin1:                                Tabular.
+* LATIN1:                                libiconv.
+* latin1-2-5:                            Tabular.
+* latin2:                                Tabular.
+* LATIN2:                                libiconv.
+* latin3:                                Tabular.
+* LATIN3:                                libiconv.
+* latin4:                                Tabular.
+* LATIN4:                                libiconv.
+* latin5:                                Tabular.
+* LATIN5:                                libiconv.
+* latin6:                                Tabular.
+* LATIN6:                                libiconv.
+* latin7:                                Tabular.
+* LATIN7:                                libiconv.
+* latin8:                                Tabular.
+* LATIN8:                                libiconv.
+* latin9:                                Tabular.
+* libiconv:                              libiconv.
+* libiconv, not in requests:             Charset overview.
+* lin:                                   African.
+* lingala:                               African.
+* ltex:                                  LaTeX.
+* mac <1>:                               Apple-Mac.
+* mac:                                   Tabular.
+* MAC:                                   libiconv.
+* mac-is, aliases and source:            Tabular.
+* MacArabic:                             libiconv.
+* macce <1>:                             Apple-Mac.
+* macce:                                 Tabular.
+* MacCentralEurope:                      libiconv.
+* MacCroatian:                           libiconv.
+* MacCyrillic:                           libiconv.
+* macedonian:                            Tabular.
+* MacGreek:                              libiconv.
+* MacHebrew:                             libiconv.
+* MacIceland:                            libiconv.
+* Macintosh:                             libiconv.
+* macintosh, a charset, and its aliases: Apple-Mac.
+* macintosh, aliases and source:         Tabular.
+* macintosh_ce, aliases and source:      Tabular.
+* macintosh_ce, and its aliases:         Apple-Mac.
+* MacRoman, aliases:                     libiconv.
+* MacRomania:                            libiconv.
+* MacThai:                               libiconv.
+* MacTurkish:                            libiconv.
+* MacUkraine:                            libiconv.
+* mnemonic, an alias for RFC1345 charset: Tabular.
+* ms-ansi:                               Tabular.
+* MS-ANSI:                               libiconv.
+* ms-arab:                               Tabular.
+* MS-ARAB:                               libiconv.
+* ms-cyrl:                               Tabular.
+* MS-CYRL:                               libiconv.
+* ms-ee:                                 Tabular.
+* MS-EE:                                 libiconv.
+* ms-greek:                              Tabular.
+* MS-GREEK:                              libiconv.
+* ms-hebr:                               Tabular.
+* MS-HEBR:                               libiconv.
+* ms-turk:                               Tabular.
+* MS-TURK:                               libiconv.
+* MS_KANJI:                              libiconv.
+* MSDOS:                                 IBM-PC.
+* MSZ_7795.3, aliases and source:        Tabular.
+* Mule, a charset:                       Mule.
+* MuleLao-1:                             libiconv.
+* NATS-DANO, aliases and source:         Tabular.
+* NATS-DANO-ADD, aliases and source:     Tabular.
+* NATS-SEFI, aliases and source:         Tabular.
+* NATS-SEFI-ADD, aliases and source:     Tabular.
+* NC_NC00-10(81):                        Tabular.
+* NC_NC00-10, aliases and source:        Tabular.
+* next:                                  Tabular.
+* NEXTSTEP:                              libiconv.
+* NeXTSTEP, aliases and source:          Tabular.
+* NF_Z_62-010, aliases and source:       Tabular.
+* NF_Z_62-010_(1973), aliases and source: Tabular.
+* no:                                    Tabular.
+* no2:                                   Tabular.
+* NOS:                                   CDC-NOS.
+* NS_4551-1, aliases and source:         Tabular.
+* NS_4551-2, aliases and source:         Tabular.
+* o1:                                    Dump.
+* o2:                                    Dump.
+* o4:                                    Dump.
+* Octal-1:                               Dump.
+* Octal-2:                               Dump.
+* Octal-4:                               Dump.
+* os2latin1:                             Tabular.
+* pc:                                    IBM-PC.
+* pcl2:                                  Tabular.
+* pclatin2:                              Tabular.
+* PT, aliases and source:                Tabular.
+* PT2, aliases and source:               Tabular.
+* QNX, an alias for a charset:           Icon-QNX.
+* QP:                                    MIME.
+* quote-printable:                       MIME.
+* Quoted-Printable:                      MIME.
+* r8:                                    Tabular.
+* R8:                                    libiconv.
+* ref:                                   Tabular.
+* RFC1345, a charset, and its aliases:   Tabular.
+* RFC1866:                               HTML.
+* RFC2070:                               HTML.
+* roman8:                                Tabular.
+* ROMAN8:                                libiconv.
+* rune:                                  UCS-2.
+* sami, aliases and source:              Tabular.
+* sango:                                 African.
+* se:                                    Tabular.
+* se2:                                   Tabular.
+* SEN_850200_B, aliases and source:      Tabular.
+* SEN_850200_C, aliases and source:      Tabular.
+* serbian:                               Tabular.
+* SHIFT-JIS:                             libiconv.
+* SHIFT_JIS:                             libiconv.
+* SJIS, aliases:                         libiconv.
+* SS636127:                              Tabular.
+* ST_SEV_358-88:                         Tabular.
+* swabytes:                              Permutations.
+* t-bambara:                             African.
+* t-bra:                                 African.
+* t-ewondo:                              African.
+* t-fra:                                 African.
+* t-francais:                            African.
+* t-fulfude:                             African.
+* t-lin:                                 African.
+* t-lingala:                             African.
+* t-sango:                               African.
+* t-wolof:                               African.
+* T.101-G2, not recognised by recode:    Tabular.
+* T.61-7bit, aliases and source:         Tabular.
+* T.61-8bit, not recognised by recode:   Tabular.
+* T1:                                    Others.
+* TCVN, aliases:                         libiconv.
+* TCVN, for Vienamese:                   Vietnamese.
+* TCVN-5712:                             libiconv.
+* TCVN5712-1:                            libiconv.
+* TCVN5712-1(1993):                      libiconv.
+* test15:                                Test.
+* test16:                                Test.
+* test7:                                 Test.
+* test8:                                 Test.
+* texi:                                  Texinfo.
+* Texinfo, a charset:                    Texinfo.
+* Texte:                                 Texte.
+* TF-16:                                 UTF-16.
+* TF-7:                                  UTF-7.
+* TF-8:                                  UTF-8.
+* ti:                                    Texinfo.
+* TIS-620, aliases:                      libiconv.
+* TIS620:                                libiconv.
+* TIS620-0:                              libiconv.
+* TIS620.2529-1:                         libiconv.
+* TIS620.2533-0:                         libiconv.
+* TIS620.2533-1:                         libiconv.
+* tree, a special charset:               Surfaces.
+* txte:                                  Texte.
+* u2:                                    UCS-2.
+* u4:                                    UCS-4.
+* u6:                                    UTF-16.
+* u7:                                    UTF-7.
+* u8:                                    UTF-8.
+* UCS:                                   Universal.
+* UCS-2:                                 UCS-2.
+* UCS-2, aliases:                        libiconv.
+* UCS-2-INTERNAL:                        libiconv.
+* UCS-2-SWAPPED:                         libiconv.
+* UCS-2BE, aliases:                      libiconv.
+* UCS-2LE, aliases:                      libiconv.
+* UCS-4:                                 UCS-4.
+* UCS-4, aliases:                        libiconv.
+* UCS-4-INTERNAL:                        libiconv.
+* UCS-4-SWAPPED:                         libiconv.
+* UCS-4BE:                               libiconv.
+* UCS-4LE:                               libiconv.
+* UHC:                                   libiconv.
+* uk:                                    Tabular.
+* Unicode, an alias for UTF-16:          UTF-16.
+* UNICODE-1-1:                           libiconv.
+* UNICODE-1-1-UTF-7:                     libiconv.
+* UNICODE-1-1-UTF-7, and aliases:        UTF-7.
+* UNICODEBIG:                            libiconv.
+* UNICODELITTLE:                         libiconv.
+* us <1>:                                ASCII.
+* us:                                    Tabular.
+* US:                                    libiconv.
+* US-ASCII <1>:                          ASCII.
+* US-ASCII:                              Tabular.
+* US-ASCII, aliases:                     libiconv.
+* us-dk, not recognised by recode:       Tabular.
+* UTF-1:                                 Universal.
+* UTF-16:                                libiconv.
+* UTF-16, and aliases:                   UTF-16.
+* UTF-16BE:                              libiconv.
+* UTF-16LE:                              libiconv.
+* UTF-7:                                 UTF-7.
+* UTF-7, aliases:                        libiconv.
+* UTF-8:                                 UTF-8.
+* UTF-8, aliases <1>:                    libiconv.
+* UTF-8, aliases:                        UTF-8.
+* UTF-FSS:                               UTF-8.
+* UTF8:                                  libiconv.
+* VIQR:                                  Vietnamese.
+* VISCII:                                Vietnamese.
+* VISCII, aliases:                       libiconv.
+* VISCII1.1-1:                           libiconv.
+* VN1, maybe not available:              Vietnamese.
+* VN2, maybe not available:              Vietnamese.
+* VN3, maybe not available:              Vietnamese.
+* VNI:                                   Vietnamese.
+* VPS:                                   Vietnamese.
+* WCHAR_T:                               libiconv.
+* WinBaltRim:                            Tabular.
+* WINBALTRIM:                            libiconv.
+* windows-1250:                          Tabular.
+* WINDOWS-1250:                          libiconv.
+* windows-1251:                          Tabular.
+* WINDOWS-1251:                          libiconv.
+* windows-1252:                          Tabular.
+* WINDOWS-1252:                          libiconv.
+* windows-1253:                          Tabular.
+* WINDOWS-1253:                          libiconv.
+* windows-1254:                          Tabular.
+* WINDOWS-1254:                          libiconv.
+* windows-1255:                          Tabular.
+* WINDOWS-1255:                          libiconv.
+* windows-1256:                          Tabular.
+* WINDOWS-1256:                          libiconv.
+* windows-1257:                          Tabular.
+* WINDOWS-1257:                          libiconv.
+* WINDOWS-1258:                          libiconv.
+* WINDOWS-874:                           libiconv.
+* wolof:                                 African.
+* X0201 <1>:                             Tabular.
+* X0201:                                 libiconv.
+* x0201-7:                               Tabular.
+* X0208:                                 libiconv.
+* X0212:                                 libiconv.
+* x1:                                    Dump.
+* x2:                                    Dump.
+* x4:                                    Dump.
+* XML-standalone:                        HTML.
+* yu:                                    Tabular.
+
+
index ec942b1f6b0b2c0c1cf9822788bab46bf79e85fc..a54d40e790e1878407395632b199d2251ededa14 100644 (file)
@@ -374,9 +374,12 @@ problem of how lines are blocked into physical records, when the blocking
 information is added as binary markers or counters within files.  So,
 @code{recode} should be given textual streams which are rather @emph{pure}.
 
-This tool pays special attention to superimposition of diacritics for some
-French representations.  This orientation is mostly historical, it does
-not impair the usefulness, generality or extensibility of the program.
+This tool pays special attention to superimposition of diacritics for
+some French representations.  This orientation is mostly historical, it
+does not impair the usefulness, generality or extensibility of the program.
+@samp{recode} is both a French and English word.  For those who pay attention
+to those things, the proper pronunciation is French (that is, @samp{racud},
+with @samp{a} like in @samp{above}, and @samp{u} like in @samp{cut}).
 
 The program @code{recode} has been written by Fran@,{c}ois Pinard.
 With time, it got to reuse works from other contributors, and notably,
@@ -754,11 +757,10 @@ not very useful, as the recoding reduces to a mere copy in that case.}
 @vindex DEFAULT_CHARSET
 When a charset name is omitted or left empty, the value of the
 @code{DEFAULT_CHARSET} variable in the environment is used instead.  If this
-variable is not defined, the @code{recode} library uses the @dfn{usual
-charset} which is installation dependent.  When this variable is defined but
-has an empty value, charset names may not be omitted.  Unless overriden
-when @code{recode} was installed, the usual charset is @code{Latin-1} for
-Unix systems or @code{IBM-PC} for MS-DOS/MS-Windows machines.
+variable is not defined, the @code{recode} library uses the current locale's
+encoding. On POSIX compliant systems, this depends on the first non-empty
+value among the environment variables LC_ALL, LC_CTYPE, LANG, and can be
+determined through the command @samp{locale charmap}.
 
 If the charset name is omitted but followed by surfaces, the surfaces
 then qualify the usual or default charset.  For example, the request
@@ -846,8 +848,8 @@ This particular option is meant to help identifying an unknown charset,
 using as hints some already identified characters of the charset.  Some
 examples will help introducing the idea.
 
-Let's presume here that @code{recode} is run on Unix, where @w{Latin-1} is the
-usual charset, and that @code{DEFAULT_CHARSET} is unset in the environment.
+Let's presume here that @code{recode} is run in an ISO-8859-1 locale, and
+that @code{DEFAULT_CHARSET} is unset in the environment.
 Suppose you have guessed that code 130 (decimal) of the unknown charset
 represents a lower case @samp{e} with an acute accent.  That is to say
 that this code should map to code 233 (decimal) in the usual charset.
@@ -3682,16 +3684,101 @@ knows how to handle these particularly well for French texts.
 @node HTML, LaTeX, Miscellaneous, Miscellaneous
 @section World Wide Web representations
 
-@tindex HTML@r{, a charset}
-This charset is available in @code{recode} under the name @code{HTML},
-with @code{h4} as an acceptable alias.
-@c FIXME - untrue
+@cindex HTML
+@cindex SGML
+@cindex XML
+@cindex Web
+@cindex World Wide Web
+@cindex WWW
+@cindex markup language
+@cindex entities
+@cindex character entities
+@cindex character entity references
+@cindex numeric character references
+Character entities have been introduced by SGML and made widely popular
+through HTML, the markup language in use for the World Wide Web, or Web or
+WWW for short.  For representing @emph{unusual} characters, HTML texts use
+special sequences, beginning with an ampersand @kbd{&} and ending with a
+semicolon @kbd{;}.  The sequence may itself start with a number sigh @kbd{#}
+and be followed by digits, so forming a @dfn{numeric character reference},
+or else be an alphabetic identifier, so forming a @dfn{character entity
+reference}.
+
+The HTML standards have been revised into different HTML levels over time,
+and the list of allowable character entities differ in them.  The later XML,
+meant to simplify many things, has an option (@samp{standalone=yes}) which
+much restricts that list.  The @code{recode} library is able to convert
+character references between their mnemonic form and their numeric form,
+depending on aimed HTML standard level.  It also can, of course, convert
+between HTML and various other charsets.
+
+Here is a list of those HTML variants which @code{recode} supports.
+Some notes have been provided by François Yergeau @email{yergeau@@alis.com}.
 
-HTML texts used by World Wide Web often use special sequences, beginning with
-an ampersand @kbd{&} and ending with a semicolon @kbd{;}, for representing
-characters.  The sequence may itself start with a number sigh @kbd{#} and be
-followed by digits, so forming a @dfn{numeric character reference}, or else
-be an alphabetic identifier, so forming a @dfn{character entity reference}.
+@table @code
+@item XML-standalone
+@tindex h0
+@tindex XML-standalone
+This charset is available in @code{recode} under the name
+@code{XML-standalone}, with @code{h0} as an acceptable alias.  It is
+documented in section 4.1 of @uref{http://www.w3.org/TR/REC-xml}.
+It only knows @samp{&amp;}, @samp{&gt;}, @samp{&lt;}, @samp{&quot;}
+and @samp{&apos;}.
+
+@item HTML_1.1
+@tindex HTML_1.1
+@tindex h1
+This charset is available in @code{recode} under the name @code{HTML_1.1},
+with @code{h1} as an acceptable alias.  HTML 1.0 was never really documented.
+
+@item HTML_2.0
+@tindex HTML_2.0
+@tindex RFC1866
+@tindex 1866
+@tindex h2
+This charset is available in @code{recode} under the name @code{HTML_2.0},
+and has @code{RFC1866}, @code{1866} and @code{h2} for aliases.  HTML 2.0
+entities are listed in @w{RFC 1866}.  Basically, there is an entity for
+each @emph{alphabetical} character in the right part of @w{ISO 8859-1}.
+In addition, there are four entities for syntax-significant ASCII characters:
+@samp{&amp;}, @samp{&gt;}, @samp{&lt;} and @samp{&quot;}.
+
+@item HTML-i18n
+@tindex HTML-i18n
+@tindex RFC2070
+@tindex 2070
+This charset is available in @code{recode} under the name
+@code{HTML-i18n}, and has @code{RFC2070} and @code{2070} for
+aliases.  @w{RFC 2070} added entities to cover the whole right
+part of @w{ISO 8859-1}.  The list is conveniently accessible at
+@uref{http://www.alis.com:8085/ietf/html/html-latin1.sgml}.  In addition,
+four i18n-related entities were added: @samp{&zwnj;} (@samp{&#8204;}),
+@samp{&zwj;} (@samp{&#8205;}), @samp{&lrm;} (@samp{&#8206}) and @samp{&rlm;}
+(@samp{&#8207;}).
+
+@item HTML_3.2
+@tindex HTML_3.2
+@tindex h3
+This charset is available in @code{recode} under the name
+@code{HTML_3.2}, with @code{h3} as an acceptable alias.
+@uref{http://www.w3.org/TR/REC-html32.html, HTML 3.2} took up the full
+@w{Latin-1} list but not the i18n-related entities from @w{RFC 2070}.
+
+@item HTML_4.0
+@tindex h4
+@tindex h
+This charset is available in @code{recode} under the name @code{HTML_4.0},
+and has @code{h4} and @code{h} for aliases.  Beware that the particular
+alias @code{h} is not @emph{tied} to HTML 4.0, but to the highest HTML
+level supported by @code{recode}; so it might later represent HTML level
+5 if this is ever created.  @uref{http://www.w3.org/TR/REC-html40/,
+HTML 4.0} has the whole @w{Latin-1} list, a set of entities for
+symbols, mathematical symbols, and Greek letters, and another set for
+markup-significant and internationalization characters comprising the
+4 ASCII entities, the 4 i18n-related from @w{RFC 2070} plus some more.
+See @uref{http://www.w3.org/TR/REC-html40/sgml/entities.html}.
+
+@end table
 
 Printable characters from @w{Latin-1} may be used directly in an HTML text.
 However, partly because people have deficient keyboards, partly because
@@ -3722,45 +3809,11 @@ This is documented in:
 http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.3
 @end example
 
-About levels of HTML, François Yergeau @email{yergeau@@alis.com} writes:
-
-@itemize @bullet
-@item
-HTML 1.0 was never really documented.
-
-@item
-HTML 2.0 entities are listed in @w{RFC 1866}.  Basically, there is an entity
-for each @emph{alphabetical} character in the right part of @w{ISO 8859-1}.
-In addition, there are four entities for syntax-significant ASCII characters:
-@samp{&amp;}, @samp{&gt;}, @samp{&lt;} and @samp{&quot;}.
-
-@item
-@w{RFC 2070} (HTML-i18n) added entities to cover the whole right
-part of @w{ISO 8859-1}.  The list is conveniently accessible at
-@uref{http://www.alis.com:8085/ietf/html/html-latin1.sgml}.  In addition,
-four i18n-related entities were added: @samp{&zwnj;} (@samp{&#8204;}),
-@samp{&zwj;} (@samp{&#8205;}), @samp{&lrm;} (@samp{&#8206}) and @samp{&rlm;}
-(@samp{&#8207;}).
-
-@item
-@uref{http://www.w3.org/TR/REC-html32.html, HTML 3.2} took up the full
-@w{Latin-1} list but not the i18n-related entities from @w{RFC 2070}.
-
-@item
-@uref{http://www.w3.org/TR/REC-html40/, HTML 4.0} has the whole
-@w{Latin-1} list,
-a set of entities for symbols, mathematical symbols, and Greek letters,
-and another set for markup-significant and internationalization characters
-comprising the 4 ASCII entities, the 4 i18n-related from @w{RFC 2070} plus
-some more.
-@end itemize
-
-When @code{recode} translates to HTML, the translation occurs according
-to @uref{http://www.w3.org/TR/REC-html40/sgml/entities.html}.
-@c Previously: http://www.uni-passau.de/~ramsch/iso8859-1.html
-It is also assumed that @w{RFC 1866} has an equivalent contents.  When
-translating @emph{from} HTML, @code{recode} accepts some alternative
-special sequences, to be forgiving when files use older HTML tables.
+When @code{recode} translates to HTML, the translation occurs according to
+the HTML level as selected by the goal charset.  When translating @emph{from}
+HTML, @code{recode} not only accepts the character entity references known at
+that level, but also those of all other levels, as well as a few alternative
+special sequences, to be forgiving to files using other HTML standards.
 
 @cindex normilise an HTML file
 @cindex HTML normalization
index 29badf55c6fff46fa1514d790e4a02dccaa6a3ba..35d56acfe4033ac1b86b8d98554e86317606dbeb 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 28 June 2000
-@set EDITION 3.5d
-@set VERSION 3.5d
+@set UPDATED 6 December 2000
+@set EDITION 3.6
+@set VERSION 3.6
index 1141df08a877e6cef3162f8411149ab342e3f786..64f443a2da0fcace0a8c9a24ad92bbae313f3bf0 100755 (executable)
@@ -410,6 +410,11 @@ class Explodes(Options):
             del declare_alias[0]
         write('\n'
               '  return true;\n'
+              '}\n'
+              '\n'
+              'void\n'
+              'delmodule_explodes (struct recode_outer *outer)\n'
+              '{\n'
               '}\n')
 \f
 # Libiconv.
@@ -1126,6 +1131,11 @@ class Strips(Options):
             del self.declare_alias[0]
         write('\n'
               '  return true;\n'
+              '}\n'
+              '\n'
+              'void\n'
+              'delmodule_strips (struct recode_outer *outer)\n'
+              '{\n'
               '}\n')
 
         # Write the pool file.
index 29badf55c6fff46fa1514d790e4a02dccaa6a3ba..35d56acfe4033ac1b86b8d98554e86317606dbeb 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 28 June 2000
-@set EDITION 3.5d
-@set VERSION 3.5d
+@set UPDATED 6 December 2000
+@set EDITION 3.6
+@set VERSION 3.6
index 14b6e26db8fd21e488e0cc769d919f20048f383b..a63d191f69d0f939c1a058f4e3a5dcdb0fb372a8 100644 (file)
@@ -70,6 +70,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -120,9 +121,9 @@ all: all-redirect
 .SUFFIXES:
 .SUFFIXES: .mo .po .pox
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits i18n/Makefile
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps i18n/Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        cd $(top_builddir) \
          && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -135,11 +136,6 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 subdir = i18n
 
 distdir: $(DISTFILES)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(top_distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits i18n/Makefile
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
index 760a89173a1c21d96e85c6f74a7dada4630b57ac..9d98e3d27ebd7cdcbb4302c665734a968246c9df 100644 (file)
Binary files a/i18n/da.mo and b/i18n/da.mo differ
index 216cb954048e3f9ed87796abcb0d71040d9b60da..024e76462172cb11d9a15f969fabfd4de22c1ec7 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 2000-05-31 22:02+02:00\n"
 "Last-Translator: Niels Kristian Bech Jensen <nkbj@image.dk>\n"
 "Language-Team: Danish <dansk@klid.dk>\n"
@@ -13,44 +13,39 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Beskrivelse\n\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Ingen fejl"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Ualmindelige inddata"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Flertydige uddata"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Uoversættelige inddata"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Ugyldige inddata"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Systemet fandt et problem"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Misbrug af omkodningsbibliotek"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Intern omkodningsfejl"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -67,7 +62,8 @@ msgid ""
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 msgstr ""
 "Dette program er fri software; du må redistribuere det og/eller modificere\n"
-"det under betingelserne givet i GNU General Public License som publiceret af\n"
+"det under betingelserne givet i GNU General Public License som publiceret "
+"af\n"
 "Free Software Foundation; enten version 2, eller (efter dit valg) en senere\n"
 "version.\n"
 "\n"
@@ -80,21 +76,27 @@ msgstr ""
 "dette program; hvis ikke, så skriv til Free Software Foundation, Inc.,\n"
 "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Prøv \"%s %s\" for mere information.\n"
 
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
-msgstr "Fri \"recode\" konverterer filer mellem forskellige tegnsæt og pakninger.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
+msgstr ""
+"Fri \"recode\" konverterer filer mellem forskellige tegnsæt og pakninger.\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nBrug: %s [TILVALG]... [ [TEGNSÆT] | FORESPØRGSEL [FIL]... ]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Brug: %s [TILVALG]... [ [TEGNSÆT] | FORESPØRGSEL [FIL]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -105,12 +107,14 @@ msgstr ""
 "obligatorisk for det tilsvarende korte tilvalg.  På samme måde for valgfri\n"
 "argumenter.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -129,7 +133,7 @@ msgstr ""
 "      --help                 vis denne hjælp og afslut\n"
 "      --version              vis versionsnummer og afslut\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -142,7 +146,8 @@ msgid ""
 msgstr ""
 "\n"
 "Operationsmåder:\n"
-"  -v, --verbose           vis rækkefølgen af gennemløb, og rapportér fremskridt\n"
+"  -v, --verbose           vis rækkefølgen af gennemløb, og rapportér "
+"fremskridt\n"
 "  -q, --quiet, --silent   udelad meddelelser om irreversible oversættelser\n"
 "  -f, --force             gennemtving oversættelser, selv hvis de ikke er\n"
 "                          reversible\n"
@@ -150,15 +155,15 @@ msgstr ""
 "  -i, --sequence=files    brug midlertidige filer mellem gennemløbene\n"
 "      --sequence=memory   brug hukommelsesbuffere mellem gennemløbene\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     brug pibe-mekanismen mellem gennemløbene\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     samme som -i (på dette system)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -172,14 +177,16 @@ msgstr ""
 "\n"
 "Fintuning:\n"
 "  -s, --strict           brug kun nøjagtige tegnsæt selvom der mistes tegn\n"
-"  -d, --diacritics       oversæt kun diakritiske/specielle tegn i HTML/LaTeX\n"
+"  -d, --diacritics       oversæt kun diakritiske/specielle tegn i "
+"HTML/LaTeX\n"
 "  -S, --source[=SPR]     begræns omodning til strenge og kommentarer som\n"
 "                         for SPR\n"
-"  -c, --colons           brug koloner i stedet for anførselstegn som trema (¨)\n"
+"  -c, --colons           brug koloner i stedet for anførselstegn som trema "
+"(¨)\n"
 "  -g, --graphics         tilnærm IBMPC linie- og kassetegn med ASCII grafik\n"
 "  -x, --ignore=TEGNSÆT   ignorér TEGNSÆT når en omkodningssti vælges\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -191,46 +198,54 @@ msgstr ""
 "'full' (eller et af bogstaverne d, o, h eller f).\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr "Standard TEGNSÆT er \"%s\", med mindre DEFAULT_CHARSET er angivet.\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr "Der findes ikke et standard TEGNSÆT, angiv DEFAULT_CHARSET.\n"
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Med -k vises en liste over mulige før tegnsæt for det givne efter TEGNSÆT,\n"
-"begge tabellariske tegnsæt, med PAR af typen \"FØR1:EFTER1,FØR2:EFTER2,...\"\n"
+"begge tabellariske tegnsæt, med PAR af typen "
+"\"FØR1:EFTER1,FØR2:EFTER2,...\"\n"
 "hvor FØR'er og EFTER'e er tegnkoder givet efter titalssystemet.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
-msgstr "SPR er et programmeringssprog, f.eks. \"c\", \"perl\" eller \"po\"; \"c\" er standard.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+msgstr ""
+"SPR er et programmeringssprog, f.eks. \"c\", \"perl\" eller \"po\"; \"c\" er "
+"standard.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
-"FORESPØRGSEL er UNDERFORESPØRGSEL[,UNDERFORESPØRGSEL]...; UNDERFORESPØRGSEL er\n"
+"FORESPØRGSEL er UNDERFORESPØRGSEL[,UNDERFORESPØRGSEL]...; UNDERFORESPØRGSEL "
+"er\n"
 "INDKODNING[..INDKODNING]...; INDKODNING er [TEGNSÆT][/[PAKNING]]...\n"
 "FORESPØRGSEL har ofte formen FØR..EFTER, hvor FØR og EFTER er tegnsæt.\n"
 "Hvis et TEGNSÆT udelades, anvendes det normale tegnsæt; hvis [/PAKNING]...\n"
 "udelades, anvendes den normale pakning af TEGNSÆT; / uden navnet på en\n"
 "pakning betyder ingen pakning.  Se manualen.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -239,125 +254,152 @@ msgid ""
 msgstr ""
 "\n"
 "Hvis ingen af -i eller -p er valgt, bruges -p hvis ingen FIL, ellers -i.\n"
-"Hver FIL bliver oversat oveni sig selv og overskriver originalen.  Hvis ingen\n"
-"FIL er valgt, er programmet et filter, der oversætter fra std-ind til std-ud.\n"
+"Hver FIL bliver oversat oveni sig selv og overskriver originalen.  Hvis "
+"ingen\n"
+"FIL er valgt, er programmet et filter, der oversætter fra std-ind til "
+"std-ud.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nRapportér fejl til <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Rapportér fejl til <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Flertydig sekvens \"%s\""
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Ukendt sekvens \"%s\""
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Flertydigt sprog \"%s\""
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Ukendt sprog \"%s\""
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Flertydigt format \"%s\""
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Ukendt format \"%s\""
+msgid "Format `%s' is unknown"
+msgstr ""
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nOphavsret (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Skrevet af François Pinard <pinard@iro.umontreal.ca>.\n"
+
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Ophavsret (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
 "Dette er fri software; se kopieringsbetingelserne i kildeteksten. Der gives\n"
-"INGEN garanti; end ikke for SALGBARHED eller ANVENDELIGHED TIL NOGET FORMÅL.\n"
+"INGEN garanti; end ikke for SALGBARHED eller ANVENDELIGHED TIL NOGET "
+"FORMÅL.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nSkrevet af François Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Forældet syntaks, brug hellere \"%s\""
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Fejlagtig forespørgsel \"%s\""
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Omkoder %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " færdig\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " fejlede: %s i %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s fejlede: %s i %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s i %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Tegnsæt %s findes allerede og er ikke %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr "Kan ikke vise \"%s\", ingen navne tilgængelige for dette tegnsæt"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Okt Hex   UCS2  Mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Beklager, ingen navne tilgængelige for \"%s\""
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Genpakker indstillet flere gange for \"%s\""
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Udpakker indstillet flere gange for \"%s\""
@@ -367,12 +409,12 @@ msgid "Virtual memory exhausted"
 msgstr "Virtuel hukommelse opbrugt"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Tegnkoderne %3d og %3d oversættes begge til %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Ingen tegn oversættes til %3d"
 
@@ -394,95 +436,127 @@ msgstr "Par nr. %d: <%3d, %3d> er i konflikt med <%3d, %3d>"
 msgid "Cannot complete table from set of known pairs"
 msgstr "Kan ikke fuldende tabellen udfra mængden af kendte par"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Triviel omkodning, ikke værd at bruge en tabel"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Omkodningen er for kompleks for en simpel tabel"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sOmkodningstabellen er genereret automatisk af Free \"%s\" %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sfor sekvensen %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Ingen tabel at udskrive"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "reversibel"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s til %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "variabel"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Uopnåelig*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*bare kopi*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Virtuel hukommelse opbrugt!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Trinopstart fejlede"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Trinopstart fejlede (ubearbejdede tilvalg)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Forespørgsel: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Formindsket til: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Ukendt pakkenavn \"%s\""
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Umuligt at oversætte fra \"%s\" til \"%s\""
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Forventer \"..\" i forespørgsel"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Underprocessens ventestatus er 0x%0.2x"
+
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   Beskrivelse\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr "Der findes ikke et standard TEGNSÆT, angiv DEFAULT_CHARSET.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Flertydig sekvens \"%s\""
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Ukendt sekvens \"%s\""
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Flertydigt sprog \"%s\""
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Ukendt sprog \"%s\""
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Flertydigt format \"%s\""
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Ukendt format \"%s\""
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Fejlagtig forespørgsel \"%s\""
index fb6f027fd2fd2db1201941e238d9da8f23af0fd3..79c55b50a1db860ce676340641228655a27f6caf 100644 (file)
Binary files a/i18n/de.mo and b/i18n/de.mo differ
index 413f2055939daeb45db4ccacd372db9f902e21c3..c58890f29642a43d324ce52e97bc184d4b485269 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-09-14 22:51+01:00\n"
 "Last-Translator: Daniel Naber <dnaber@mini.gt.owl.de>\n"
 "Language-Team: German <de@li.org>\n"
@@ -14,44 +14,39 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Beschreibung\n\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Kein Fehler"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Keine gültige Eingabe"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Mehrdeutige Ausgabe"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Nicht übersetzbare Eingabe"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Ungültige Eingabe"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Das System ist auf ein Problem gestossen"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Falsche Benutzung der Umkodierungs-Bibliothek"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Interner Umkodierungsfehler"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -82,27 +77,33 @@ msgstr ""
 "\"GNU General Public License\" können weitere Einzelheiten nachgelesen\n"
 "werden.\n"
 "\n"
-"Sie sollten mit diesem Programm eine Kopie der \"GNU General Public License\"\n"
+"Sie sollten mit diesem Programm eine Kopie der \"GNU General Public "
+"License\"\n"
 "erhalten haben;  wenn nicht, schreiben Sie an die Free Software Foundation,\n"
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "`%s %s' zeigt weitere Informationen.\n"
 
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
 msgstr ""
 "`recode' konvertiert Dateien zwischen diversen Zeichensätzen und\n"
 "-formaten.\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nAufruf: %s [OPTION]... [ [ZEISATZ] | ANFRAGE [DATEI]... ]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Aufruf: %s [OPTION]... [ [ZEISATZ] | ANFRAGE [DATEI]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -113,12 +114,14 @@ msgstr ""
 "davon, ob die Kurz- oder Langschreibweise der Option benutzt wird.\n"
 "Entsprechendes gilt für optionale Argumente.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -128,17 +131,20 @@ msgid ""
 msgstr ""
 "\n"
 "Auflistungen:\n"
-"  -l, --list[=FORMAT]        Einen oder alle bekannten Zeichensätze auflisten\n"
-"  -k, --known=PAARE          Zeichensätze auf Liste bekannter PAARE beschränken\n"
+"  -l, --list[=FORMAT]        Einen oder alle bekannten Zeichensätze "
+"auflisten\n"
+"  -k, --known=PAARE          Zeichensätze auf Liste bekannter PAARE "
+"beschränken\n"
 "  -h, --header[=[LN/]NAME]   LN-Code für Tabelle NAME ausgeben\n"
 "  -F, --freeze-tables        Ein C-Modul mit allen Tabellen ausgeben\n"
-"  -T, --find-subsets         Alle Zeichensätze ausgeben, die Untermengen von\n"
+"  -T, --find-subsets         Alle Zeichensätze ausgeben, die Untermengen "
+"von\n"
 "                              anderen Zeichensätzen sind\n"
 "  -C, --copyright            Copyright und Kopierbedingungen anzeigen\n"
 "      --help                 Diese Hilfe anzeigen\n"
 "      --version              Versionsnummer ausgeben\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -151,24 +157,29 @@ msgid ""
 msgstr ""
 "\n"
 "Funktionsmodi:\n"
-"  -v, --verbose           Reihenfolge der Umkodierungsschritte und Fortschritt\n"
+"  -v, --verbose           Reihenfolge der Umkodierungsschritte und "
+"Fortschritt\n"
 "                           anzeigen\n"
-"  -q, --quiet, --silent   Keine Meldungen über nicht umkehrbare Umkodierungen\n"
-"  -f, --force             Umkodierung vornehmen, auch wenn sie nicht umkehrbar ist\n"
-"  -t, --touch             Nach der Umkodierung ein 'touch' auf die umkodierte\n"
+"  -q, --quiet, --silent   Keine Meldungen über nicht umkehrbare "
+"Umkodierungen\n"
+"  -f, --force             Umkodierung vornehmen, auch wenn sie nicht "
+"umkehrbar ist\n"
+"  -t, --touch             Nach der Umkodierung ein 'touch' auf die "
+"umkodierte\n"
 "                           Datei ausführen\n"
 "  -i, --sequence=files    Für Zwischenschritte temporäre Dateien anlegen\n"
 "      --sequence=memory   Für Zwischenschritte Speicherpuffer verwenden\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
-msgstr "  -p, --sequence=pipe     benutze \"pipe\" für Abarbeitung der Schritte\n"
+msgstr ""
+"  -p, --sequence=pipe     benutze \"pipe\" für Abarbeitung der Schritte\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     das gleiche wie '-i' (auf diesem System)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -181,16 +192,21 @@ msgid ""
 msgstr ""
 "\n"
 "Feineinstellungen:\n"
-"  -s, --strict           Strikte Abbildung benutzen, auch bei Zeichenverlust\n"
-"  -d, --diacritics       Nur Akzente/Umlaute umkodieren (z.B. für HTML/LaTeX)\n"
+"  -s, --strict           Strikte Abbildung benutzen, auch bei "
+"Zeichenverlust\n"
+"  -d, --diacritics       Nur Akzente/Umlaute umkodieren (z.B. für "
+"HTML/LaTeX)\n"
 "  -S, --source[=LN]      Bei LN nur Zeichenketten und Kommentare umkodieren\n"
-"  -c, --colons           benutze ':' statt '\"' für Umlaute (z.B. 'fu:r' statt\n"
+"  -c, --colons           benutze ':' statt '\"' für Umlaute (z.B. 'fu:r' "
+"statt\n"
 "                          ('fu\"r')\n"
-"  -g, --graphics         'Linienzeichen' des IBMPC-Zeichensatzes durch ähnliche\n"
+"  -g, --graphics         'Linienzeichen' des IBMPC-Zeichensatzes durch "
+"ähnliche\n"
 "                         ASCII-Zeichen darstellen\n"
-"  -x, --ignore=ZEISATZ   ZEISATZ bei der Wahl der Kodierungsschritte ignorieren\n"
+"  -x, --ignore=ZEISATZ   ZEISATZ bei der Wahl der Kodierungsschritte "
+"ignorieren\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -198,56 +214,63 @@ msgid ""
 msgstr ""
 "\n"
 "Die Option -l ohne FORMAT und ZEISATZ listet alle Zeichensätze und -formate\n"
-"auf. FORMAT ist `decimal', `octal', `hexadecimal' oder `full' (können durch den\n"
+"auf. FORMAT ist `decimal', `octal', `hexadecimal' oder `full' (können durch "
+"den\n"
 "Anfangsbuchstaben abgekürzt werden)\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "Wenn die Umgebungsvariable DEFAULT_CHARSET nicht gesetzt ist,\n"
 "gilt für ZEISATZ ist die Voreinstellung `%s'.\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-"Für ZEISATZ existiert keine Voreinstellung, bitte die Umgebungsvariable\n"
-"DEFAULT_CHARSET setzen.\n"
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Mit '-k' werden mögliche 'Vorher'-Zeichensätze für den 'Nachher'-ZEISATZ\n"
-"ausgegeben, mit PAAREn der Form 'VOR1:NACH1,VOR2:NACH2,...', wobei die VORs und\n"
+"ausgegeben, mit PAAREn der Form 'VOR1:NACH1,VOR2:NACH2,...', wobei die VORs "
+"und\n"
 "NACHs Kodes sind. Alle Kodes werden als Dezimalzahlen angegeben.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
 "LN ist eine Programmiersprache, z.B. `c', `perl' oder `po', wobei `c' die\n"
 "Voreinstellung ist.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
-"ANFRAGE ist UNTERANFRAGE[,UNTERANFRAGE]...; UNTERANFRAGE ist KODIERUNG[..KODIERUNG]...\n"
-"KODIERUNG ist [ZEISATZ][/[SURFACE]]...; ANFRAGE ist meistens VORHER..NACHHER,\n"
+"ANFRAGE ist UNTERANFRAGE[,UNTERANFRAGE]...; UNTERANFRAGE ist "
+"KODIERUNG[..KODIERUNG]...\n"
+"KODIERUNG ist [ZEISATZ][/[SURFACE]]...; ANFRAGE ist meistens "
+"VORHER..NACHHER,\n"
 "wobei VORHER und NACHHER Zeichensätze sind. Ohne ZEISATZ wird der übliche\n"
 "Zeichensatz benutzt; ohne [/SURFACE]... wird das für ZEISATZ übliche Format\n"
-"angenommen; ein / ohne Angabe eines Formats heisst, dass kein Format angenommen\n"
+"angenommen; ein / ohne Angabe eines Formats heisst, dass kein Format "
+"angenommen\n"
 "wird. Siehe Anleitung.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -261,46 +284,61 @@ msgstr ""
 "DATEI angegen ist wird die Standardeingabe umkodiert und auf der\n"
 "Standardausgabe ausgegeben.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nBerichte über Programmfehler bitte an <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Berichte über Programmfehler bitte an <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Mehrdeutige Folge `%s'"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Unbekannte Folge `%s'"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Mehrdeutiger Zeichensatz `%s'"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Unbekannter Zeichensatz `%s'"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Mehrdeutiges Format `%s'"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Unbekanntes Format `%s'"
+msgid "Format `%s' is unknown"
+msgstr ""
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Geschrieben von Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -310,50 +348,60 @@ msgstr ""
 "Es wird keinerlei Gewährleistung übernommen; auch nicht für gewerbliche\n"
 "Nutzbarkeit oder Tauglichkeit zu einem anderen Zweck.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nGeschrieben von Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Veraltete Syntax, bitte `%s' benutzen"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Fehlerhafte Anfrage `%s'"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Kodiere `%s' um..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " fertig\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " fehlgeschlagen: %s in %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s fehlgeschlagen: %s in %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s bei %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Zeichensatz %s existiert bereits und ist nicht %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr ""
@@ -362,25 +410,24 @@ msgstr ""
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Oct Hex   UCS2  Mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Tut mir leid, aber es sind für `%s' keine Namen verfügbar"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "`Resurfacer' für `%s' mehr als einmal gesetzt."
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "`Unsurfacer' für `%s' mehr als einmal gesetzt."
@@ -390,12 +437,12 @@ msgid "Virtual memory exhausted"
 msgstr "Virtueller Speicher voll"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Die Kodes %3d und %3d werden beide konvertiert zu %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Kein Zeichen wird zu %3d umkodiert"
 
@@ -415,97 +462,132 @@ msgstr "Paar Nr. %d: { %3d, %3d } steht in Konflikt mit { %3d, %3d }"
 
 #: src/recode.c:272
 msgid "Cannot complete table from set of known pairs"
-msgstr "Kann die Tabelle aus der Menge der bekannten Paare nicht vervollständigen"
+msgstr ""
+"Kann die Tabelle aus der Menge der bekannten Paare nicht vervollständigen"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Umkodierung ohne Änderung, zu trivial für eine Tabelle"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Umkodierung ist für eine einfache Tabelle zu kompliziert"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sKonvertierung automatisch generiert von »GNU %s %s«"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sfür Folge %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Keine Tabelle auszugeben"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "umkehrbar"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s nach %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "variabel"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*unmöglich*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*einface Kopie*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Virtueller Speicher voll!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Schrittinitialisierung fehlgeschlagen"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Schrittinitialisierung fehlgeschlagen (nichtbeachtete Optionen)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Anfrage: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Geschrumpft zu: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Unbekannter `surface' Name `%s'"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Keine Möglichkeit, von `%s' nach `%s' umzukodieren"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "In der Anfrage wird `..' erwartet"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Wartezustand des Kindprozesses ist 0x%0.2x"
+
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   Beschreibung\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "Für ZEISATZ existiert keine Voreinstellung, bitte die Umgebungsvariable\n"
+#~ "DEFAULT_CHARSET setzen.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Mehrdeutige Folge `%s'"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Unbekannte Folge `%s'"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Mehrdeutiger Zeichensatz `%s'"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Unbekannter Zeichensatz `%s'"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Mehrdeutiges Format `%s'"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Unbekanntes Format `%s'"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Fehlerhafte Anfrage `%s'"
index cc98c99975433b7c44d41746c79f38c4f14ed8fb..6308e95512b432758e1ab62ea6cadcd29b3a74fc 100644 (file)
Binary files a/i18n/el.mo and b/i18n/el.mo differ
index 7b962928808367ee2b12f0d8504a28751e2ff8f2..0acb18c52e00e1db7a28e49f2f26d17d6126d7dd 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU recode 3.4r\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-06-13 01:30+0000\n"
 "Last-Translator: Simos Xenitellis <S.Xenitellis@rhbnc.ac.uk>\n"
 "Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -13,44 +13,48 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-7\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-# src/debug.c:287
-#. Dump all characters.
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   ÐåñéãñáöÞ\n\n"
-
 # src/main.c:157
+#: src/main.c:142
 msgid "No error"
 msgstr "ÊáíÝíá óöÜëìá"
 
 # src/main.c:160
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Ìç êáíïíéêïðïéçìÝíç åßóïäïò"
 
 # src/main.c:163
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "ÁóáöÞò Ýîïäïò"
 
 # src/main.c:166
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Ìç ìåôáöñÜóéìç åßóïäïò"
 
 # src/main.c:169
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Ìç Ýãêõñç åßóïäïò"
 
 # src/main.c:172
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Ôï óýóôçìá äéáðßóôùóå ðñüâëçìá"
 
 # src/main.c:175
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "ÊáêÞ ÷ñÞóç ôçò âéâëéïèÞêçò recode"
 
 # src/main.c:178
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Åóùôåñéêü óöÜëìá (recoding)"
 
 # src/main.c:454
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -81,20 +85,31 @@ msgstr ""
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
 # src/main.c:479
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "ÄïêéìÜóôå `%s %s' ãéá ðåñéóóüôåñåò ðëçñïöïñßåò.\n"
 
 # src/main.c:483
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
-msgstr "Ôï åëåýèåñï `recode' ìåôáôñÝðåé áñ÷åßá ìåôáîý ðïéêßëùí óõíüëùí ÷áñáêôÞñùí êáé åðéöáíåéþí.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
+msgstr ""
+"Ôï åëåýèåñï `recode' ìåôáôñÝðåé áñ÷åßá ìåôáîý ðïéêßëùí óõíüëùí ÷áñáêôÞñùí "
+"êáé åðéöáíåéþí.\n"
 
 # src/main.c:486
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\n×ñÞóç: %s [ÅÐÉËÏÃÇ]... [ [ÓÕÍÏËÏ×ÁÑÁÊÔ¹ÑÙÍ] | ÁÉÔÇÓÇ [ÁÑ×ÅÉÏ]...\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"×ñÞóç: %s [ÅÐÉËÏÃÇ]... [ [ÓÕÍÏËÏ×ÁÑÁÊÔ¹ÑÙÍ] | ÁÉÔÇÓÇ [ÁÑ×ÅÉÏ]...\n"
 
 # src/main.c:489
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -106,11 +121,14 @@ msgstr ""
 "êáé ãéá ôéò ðñïáéñåôéêÝò ðáñáìÝôñïõò.\n"
 
 # src/main.c:494
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -122,7 +140,8 @@ msgstr ""
 "Åìöáíßóåéò:\n"
 "  -l, --list[=ÌÏÑÖÇ]         åìöÜíéóç Ýíá Þ üëá ôá ãíùóôÜ óýíïëá ÷áñáêôÞñùí\n"
 "  -k, --known=ÆÅÕÃÇ          ðåñéïñéóìüò ôùí óõíüëùí ÷áñáêôÞñùí óýìöùíá ìå\n"
-"                               ôç ëßóôá áðü ãíùóôÜ ÆÅÕÃÇ.  -h, --header[=[LN/]ÏÍÏÌÁ]  åìöÜíéóç ôïõ ðßíáêá ÏÍÏÌÁ óôçí êáíïíéêÞ Ýîïäï\n"
+"                               ôç ëßóôá áðü ãíùóôÜ ÆÅÕÃÇ.  -h, "
+"--header[=[LN/]ÏÍÏÌÁ]  åìöÜíéóç ôïõ ðßíáêá ÏÍÏÌÁ óôçí êáíïíéêÞ Ýîïäï\n"
 "                               ìå ÷ñÞóç ôïõ LN, ìåôÜ Ýîïäïò\n"
 "  -F, --freeze-tables        åìöÜíéóç óå êþäéêá C ìå üëïõò ôïõò ðßíáêåò\n"
 "  -T, --find-subsets         áíáöïñÜ üëùí ôùí óõíüëùí ÷áñáêôÞñùí ðïõ åßíáé\n"
@@ -132,6 +151,7 @@ msgstr ""
 "      --version              åìöÜíéóç ðëçñïöïñéþí Ýêäïóçò êáé Ýîïäïò\n"
 
 # src/main.c:506
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -146,21 +166,26 @@ msgstr ""
 "ÊáôáóôÜóåéò ëåéôïõñãßáò:\n"
 "  -v, --verbose           áíáöïñÜ äéáäï÷Þò âçìÜôùí êáé ðñïüäïõ\n"
 "  -q, --quiet, --silent   áðüêñõøç ìçíõìÜôùí ìç-áíôéóôñåðôþí ìåôáôñïðþí\n"
-"  -f, --force             åðéâïëÞ ìåôáôñïðþí áêüìá êáé áí åßíáé ìç áíôéóôñåðôÝò\n"
-"  -t, --touch             åíçìÝñùóç ôçò çìåñïìçíßáò ôùí ìåôáôñåðïìÝíùí áñ÷åßùí\n"
+"  -f, --force             åðéâïëÞ ìåôáôñïðþí áêüìá êáé áí åßíáé ìç "
+"áíôéóôñåðôÝò\n"
+"  -t, --touch             åíçìÝñùóç ôçò çìåñïìçíßáò ôùí ìåôáôñåðïìÝíùí "
+"áñ÷åßùí\n"
 "                          ìåôÜ ôçí áíôéêáôÜóôáóç\n"
 "  -i, --sequence=files    ÷ñÞóç åíäéÜìåóùí áñ÷åßùí óôá äéáäï÷éêÜ ðåñÜóìáôá\n"
 "      --sequence=memory   ÷ñÞóç åíôáìéåõôþí ìíÞìçò óôá äéáäï÷éêÜ ðåñÜóìáôá\n"
 
 # src/main.c:517
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     ÷ñÞóç óùëÞíùóçò óôá äéáäï÷éêÜ ðåñÜóìáôá\n"
 
 # src/main.c:521
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     ôï ßäéï ìå -i (óå áõôü ôï óýóôçìá)\n"
 
 # src/main.c:525
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -173,15 +198,20 @@ msgid ""
 msgstr ""
 "\n"
 "Ñõèìßóåéò:\n"
-"  -s, --strict           ÷ñÞóç áõóôçñþí óõó÷åôßóåùí, áêüìá êáé åëåýèåñùí ÷áñáêôÞñùí\n"
-"  -d, --diacritics       ìåôáôñïðÞ ìüíï äéáêñéôéêþí Þ ðáñüìïéùí ãéá HTML/LaTeX\n"
+"  -s, --strict           ÷ñÞóç áõóôçñþí óõó÷åôßóåùí, áêüìá êáé åëåýèåñùí "
+"÷áñáêôÞñùí\n"
+"  -d, --diacritics       ìåôáôñïðÞ ìüíï äéáêñéôéêþí Þ ðáñüìïéùí ãéá "
+"HTML/LaTeX\n"
 "  -S, --source[=LN]      ðåñéïñéóìüò ìåôáôñïðþí óå áëöáñéèìçôéêÜ êáé ó÷üëéá\n"
 "                           êÜôá ôï LN\n"
-"  -c, --colons           ÷ñÞóç êïëþíùí áíôß äéðëþí åéóáãùãéêþí ãéá ôç äéáßñåóç\n"
+"  -c, --colons           ÷ñÞóç êïëþíùí áíôß äéðëþí åéóáãùãéêþí ãéá ôç "
+"äéáßñåóç\n"
 "  -g, --graphics         ðñïóÝããéóç êáíüíùí IBMPC ìå ASCII ãñáöéêÜ\n"
-"  -x, --ignore=ÐÉÍ×ÁÑ    áãíüçóç ðßíáêá ÷áñáêôÞñùí (ÐÉÍ×ÁÑ) óôçí åðéëïãÞ ìïíïðáôéïý ìåôáôñïðþí\n"
+"  -x, --ignore=ÐÉÍ×ÁÑ    áãíüçóç ðßíáêá ÷áñáêôÞñùí (ÐÉÍ×ÁÑ) óôçí åðéëïãÞ "
+"ìïíïðáôéïý ìåôáôñïðþí\n"
 
 # src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -193,22 +223,22 @@ msgstr ""
 "Þ `full' (Þ Ýíá áðü ôá `dohf').\n"
 
 # src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+#: src/main.c:302
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "Åêôüò êáé áí Ý÷åé ïñéóôåß ç ìåôáâëçôÞ ðåñéâÜëëïíôïò DEFAULT_CHARSET,\n"
 "ï ðßíáêáò ÷áñáêôÞñùí (CHARSET) åßíáé åî'ïñéóìïý `%s'.\n"
 
-# src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-"O ÐÉÍ×ÁÑ (ðßíáêáò ÷áñáêôÞñùí Þ CHARSET) äåí Ý÷åé åî' ïñéóìïý ôéìÞ,\n"
-"ïñßóôå ôç ìåôáâëçôÞ ðåñéâÜëëïíôïò DEFAULT_CHARSET.\n"
-
 # src/main.c:540
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Ìå -k, ðéèáíïß ðñïçãïýìåíïé ðßíáêåò ÷áñáêôÞñùí åìöáíßæïíôáé ãéá ôï äïèÝí\n"
@@ -217,27 +247,40 @@ msgstr ""
 "êáé ôá ÐÑÏÇàêáé ÅÐÏÌÅÍ, üíôáò êùäéêïß, äßíïíôáé ùò áñéèìïß.\n"
 
 # src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
-msgstr "LN åßíáé ìéá ãëþóóá, ìðïñåß íá åßíáé `c', `perl' Þ `po'Ò åî'ïñéóìïý åßíáé `c'.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+msgstr ""
+"LN åßíáé ìéá ãëþóóá, ìðïñåß íá åßíáé `c', `perl' Þ `po'Ò åî'ïñéóìïý åßíáé "
+"`c'.\n"
 
 # src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
-"ÁÉÔÇÓÇ åßíáé ÕÐÏÁÉÔÇÓÇ[,ÕÐÏÁÉÔÇÓÇ]...Ò ÕÐÏÁÉÔÇÓÇ åßíáé ÊÙÄÉÊÏÐÏÉÇÓÇ[...ÊÙÄÉÊÏÐÏÉÇÓÇ]...\n"
-"ÊÙÄÉÊÏÐÏÉÇÓÇ åßíáé [ÐÉÍ×ÁÑ][/[ÅÐÉÖÁÍÅÉÁ]]...Ò ÁÉÔÇÓÇ óõíÞèùò ìïéÜæåé ìå ÐÑÏÇÃÏÕÌÅÍÏ...ÅÐÏÌÅÍÏ,\n"
+"ÁÉÔÇÓÇ åßíáé ÕÐÏÁÉÔÇÓÇ[,ÕÐÏÁÉÔÇÓÇ]...Ò ÕÐÏÁÉÔÇÓÇ åßíáé "
+"ÊÙÄÉÊÏÐÏÉÇÓÇ[...ÊÙÄÉÊÏÐÏÉÇÓÇ]...\n"
+"ÊÙÄÉÊÏÐÏÉÇÓÇ åßíáé [ÐÉÍ×ÁÑ][/[ÅÐÉÖÁÍÅÉÁ]]...Ò ÁÉÔÇÓÇ óõíÞèùò ìïéÜæåé ìå "
+"ÐÑÏÇÃÏÕÌÅÍÏ...ÅÐÏÌÅÍÏ,\n"
 "ìå ÐÑÏÇÃÏÕÌÅÍÏ êáé ÅÐÏÌÅÍÏ íá åßíáé ðßíáêåò ÷áñáêôÞñùí. ¸íáò ÐÉÍ×ÁÑ ðïõ\n"
-"Ý÷åé ðáñáëçöèåß, õðïäçëþíåé ôï óõíÞèåò ðßíáêá ÷áñáêôÞñùíÒ Ýíá [/ÅÐÉÖÁÍÅÉÁ]...\n"
+"Ý÷åé ðáñáëçöèåß, õðïäçëþíåé ôï óõíÞèåò ðßíáêá ÷áñáêôÞñùíÒ Ýíá "
+"[/ÅÐÉÖÁÍÅÉÁ]...\n"
 "ðïõ Ý÷åé ðáñáëçöèåß, óçìáßíåé ôéò õðïäçëùìÝíåò åðéöÜíåéåò ôïõ ÐÉÍ×ÁÑÒ Ýíá /\n"
-"÷ùñßò üíïìá åðéöÜíåéáò óçìáßíåé ÷ùñßò êáèüëïõ åðéöÜíåéåò. ÊïéôÜîôå ôï åã÷åéñßäéï.\n"
+"÷ùñßò üíïìá åðéöÜíåéáò óçìáßíåé ÷ùñßò êáèüëïõ åðéöÜíåéåò. ÊïéôÜîôå ôï "
+"åã÷åéñßäéï.\n"
 
 # src/main.c:556
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -245,253 +288,370 @@ msgid ""
 "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 msgstr ""
 "\n"
-"Áí êáíÝíá áðü ôá -i êáé -p äå äßäïíôáé, èåþñçóå -p áí äåí õðÜñ÷åé ÁÑ×ÅÉÏ, áëëéþò -i.\n"
+"Áí êáíÝíá áðü ôá -i êáé -p äå äßäïíôáé, èåþñçóå -p áí äåí õðÜñ÷åé ÁÑ×ÅÉÏ, "
+"áëëéþò -i.\n"
 "ÊÜèå ÁÑ×ÅÉÏ ìåôáôñÝðåôáé ðÜíù óôïí åáõôü ôïõ, êáôáóôñÝöïíôáò ôï ðñùôüôõðï.\n"
 "Áí êáíÝíá ÁÑ×ÅÉÏ äåí Ý÷åé ïñéóôåß, ôüôå öÝñóïõ óáí ößëôñï êáé ìåôÝôñåøå\n"
 "ôçí êáíïíéêÞ åßóïäï óôçí êáíïíéêÞ Ýîïäï.\n"
 
 # src/main.c:562
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nÁíáöÝñáôå óöÜëìáôá óôï <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"ÁíáöÝñáôå óöÜëìáôá óôï <recode-bugs@iro.umontreal.ca>.\n"
 
-# src/main.c:659
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "ÁóáöÞò óõìâïëïóåéñÜ `%s'"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-# src/main.c:663
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-# src/main.c:693 src/main.c:747
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "ÁóáöÞò ãëþóóá `%s'"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
-# src/main.c:697 src/main.c:751
 #. -1
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "¶ãíùóôç ãëþóóá `%s'"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-# src/main.c:785
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "ÁóáöÞò ìïñöÞ `%s'"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-# src/main.c:789
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "¶ãíùóôç ìïñöÞ `%s'"
+msgid "Format `%s' is unknown"
+msgstr ""
+
+# src/main.c:854
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"ÃñáììÝíï áðü ôïí Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 
 # src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
 # src/main.c:850
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
-"Áõôü åßíáé åëåýèåñï ëïãéóìéêüÒ äåßôå ôï ðçãáßï êþäéêá ãéá ôïõò êáíüíåò áíôéãñáöÞò.\n"
+"Áõôü åßíáé åëåýèåñï ëïãéóìéêüÒ äåßôå ôï ðçãáßï êþäéêá ãéá ôïõò êáíüíåò "
+"áíôéãñáöÞò.\n"
 "ÄÅÍ õðÜñ÷åé åããýçóçÒ ïýôå áêüìá ãéá ×ÑÇÓÉÌÏÔÇÔÁ Þ ÊÁÔÁËËÇËÏÔÇÔÁ ÃÉÁ ÅÍÁ\n"
 "ÓÕÃÊÅÊÑÉÌÅÍÏ ÓÊÏÐÏ.\n"
 
-# src/main.c:854
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nÃñáììÝíï áðü ôïí Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-# src/main.c:999
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+# src/main.c:999
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Ìç óõíéóôþìåíç óýíôáîç, ðáñáêáëþ ðñïôéìßóôå `%s'"
 
-# src/main.c:1005
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "ÅóöáëìÝíç áßôçóç `%s'"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
 # src/main.c:1098
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "ÌåôáôñïðÞ ôïõ %s..."
 
 # src/main.c:1108
+#: src/main.c:913
 msgid " done\n"
 msgstr " Ýãéíå\n"
 
 # src/main.c:1142
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " áðÝôõ÷å: %s óå %s..%s\n"
 
 # src/main.c:1149
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s áðÝôõ÷å: %s óå %s..%s"
 
 # src/main.c:1172
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s óå %s..%s"
 
 # src/names.c:259
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Ï ðßíáêáò ÷áñáêôÞñùí %s õðÜñ÷åé Þäç êáé äåí åßíáé ôï %s"
 
 # src/names.c:754
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
-msgstr "Áäõíáìßá åìöÜíéóçò ôïõ `%s', äåí õðÜñ÷ïõí ïíüìáôá äéáèÝóéìá ãéá áõôüí ôïí ðßíáêá ÷áñáêôÞñùí"
+msgstr ""
+"Áäõíáìßá åìöÜíéóçò ôïõ `%s', äåí õðÜñ÷ïõí ïíüìáôá äéáèÝóéìá ãéá áõôüí ôïí "
+"ðßíáêá ÷áñáêôÞñùí"
 
 # src/names.c:974 src/names.c:1020
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Oct Hex   UCS2  Mne  %s\n"
 
 # src/names.c:847
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Óõãíþìç, äåí õðÜñ÷ïõí äéáèÝóéìá ïíüìáôá ãéá ôï `%s'"
 
 # src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
-msgstr "Ï åðáíáôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
+msgstr ""
+"Ï åðáíáôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
 
 # src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
-msgstr "Ï áíôéôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
+msgstr ""
+"Ï áíôéôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
 
 # src/recode.c:117 src/recode.c:129
+#: src/recode.c:115 src/recode.c:127
 msgid "Virtual memory exhausted"
 msgstr "Ç éäåáôÞ ìíÞìç åîáíôëÞèçêå"
 
 # src/recode.c:157
-#, c-format
+#: src/recode.c:155
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Êáé ïé äýï êùäéêïß %3d êáé %3d ìåôáôñÝðïíôáé óå %3d"
 
 # src/recode.c:171
-#, c-format
+#: src/recode.c:169
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "ÊáíÝíáò ÷áñáêôÞñáò äåí ìåôáôñÝðåôáé óå %3d"
 
 # src/recode.c:172
+#: src/recode.c:170
 msgid "Cannot invert given one-to-one table"
 msgstr "Áäõíáìßá áíôéóôñïöÞò äïèÝíôïò 1-1 ðßíáêá"
 
 # src/recode.c:226 src/recode.c:238
+#: src/recode.c:224 src/recode.c:236
 #, c-format
 msgid "Following diagnostics for `%s' to `%s'"
 msgstr "Áêïëïõèïýí äéáãíùóôéêÜ ãéá `%s' óå `%s'"
 
 # src/recode.c:231 src/recode.c:243
+#: src/recode.c:229 src/recode.c:241
 #, c-format
 msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>"
 msgstr "Áñéèì. æåýãïõò %d: <%3d, %3d> óõãêñïýåôáé ìå <%3d, %3d>"
 
 # src/recode.c:274
+#: src/recode.c:272
 msgid "Cannot complete table from set of known pairs"
 msgstr "Áäõíáìßá óõìðëÞñùóçò ðßíáêá áðü ôï óýíïëï ãíùóôþí æåõãþí"
 
 # src/recode.c:504
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "ÌçäáìçíÞ ìåôáôñïðÞ, äåí ÷ñåéÜæåôáé ðßíáêá"
 
 # src/recode.c:512
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Ç ìåôáôñïðÞ åßíáé ðïëý ðåñßðëïêç ãéá Ýíá ìüíï ðßíáêá"
 
 # src/recode.c:544
 #. Print the header of the header file.
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sÐßíáêáò ìåôáôñïðÞò äçìéïõñãÞèçêå ìç÷áíéêÜ áðü ôï Åëåýèåñï `%s' %s"
 
 # src/recode.c:546
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sãéá äéáäï÷Þ %s.%s"
 
 # src/recode.c:736
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "ÊáíÝíáò ðßíáêáò ãéá åêôýðùóç"
 
 # src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "áíôéóôñåðôü"
 
 # src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s óå %s"
 
 # src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
 # src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
 # src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "ìåôáâëçôÞ"
 
 # src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Ìç êáôïñèùôü*"
 
 # src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*áðëÞ áíôéãñáöÞ*"
 
 # src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Ç éäåáôÞ ìíÞìç åîáíôëÞèçêå!"
 
 # src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
 
 # src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å (åðéëïãÝò ðïõ äåí Ý÷ïõí åðåîåñãáóôåß)"
 
 # src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Áßôçóç: %s\n"
 
 # src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Óõññßêíùóç óå %s\n"
 
 # src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Ìç áíáãíùñßóçìï üíïìá åðéöÜíåéáò `%s'"
 
 # src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "ÊáíÝíáò ôñüðïò íá ìåôáôñáðåß áðü `%s' óå `%s'"
 
 # src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "ÁíáìÝíåôáé `..' óôçí áßôçóç"
 
 # src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Ç êáôÜóôáóç ðáñáìïíÞò ôçò èõãáôñéêÞò äéåñãáóßáò åßíáé 0x%0.2x"
+
+# src/debug.c:287
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   ÐåñéãñáöÞ\n"
+"\n"
+
+# src/main.c:308
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "O ÐÉÍ×ÁÑ (ðßíáêáò ÷áñáêôÞñùí Þ CHARSET) äåí Ý÷åé åî' ïñéóìïý ôéìÞ,\n"
+#~ "ïñßóôå ôç ìåôáâëçôÞ ðåñéâÜëëïíôïò DEFAULT_CHARSET.\n"
+
+# src/main.c:659
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "ÁóáöÞò óõìâïëïóåéñÜ `%s'"
+
+# src/main.c:663
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
+
+# src/main.c:693 src/main.c:747
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "ÁóáöÞò ãëþóóá `%s'"
+
+# src/main.c:697 src/main.c:751
+#~ msgid "Unknown language `%s'"
+#~ msgstr "¶ãíùóôç ãëþóóá `%s'"
+
+# src/main.c:785
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "ÁóáöÞò ìïñöÞ `%s'"
+
+# src/main.c:789
+#~ msgid "Unknown format `%s'"
+#~ msgstr "¶ãíùóôç ìïñöÞ `%s'"
+
+# src/main.c:1005
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "ÅóöáëìÝíç áßôçóç `%s'"
index b153961bc7786605e758570c31f63729398379fe..ffd22d878c6c5be716d5e950d0638dbe6d32ba2b 100644 (file)
Binary files a/i18n/es.mo and b/i18n/es.mo differ
index 82d275caa12d34c75d409688a48cc3254182edde..fa564426b415e60378ab01b76bc13a3ba71c711f 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU recode 3.4r\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-05-21 18:45+0200\n"
 "Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -13,50 +13,41 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid ""
-"UCS2   Mne   Description\n"
-"\n"
-msgstr ""
-"UCS2   Nem   Descripción\n"
-"\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "No hay ningún error"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "La entrada no es canónica"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Resultado ambiguo"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Entrada no convertible"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Entrada inválida"
 
 # FIXME: "System-detected problem" or
 # "The system has detected a problem"?
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Problema detectado por el sistema"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Uso inadecuado de la biblioteca de conversión"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Bug interno de conversión"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -87,20 +78,20 @@ msgstr ""
 "a la Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, EE.UU.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Pruebe `%s %s' para más información.\n"
 
 # FUZZY. GNU/Free.
-#: src/main.c:235
+#: src/main.c:237
 msgid ""
 "Free `recode' converts files between various character sets and surfaces.\n"
 msgstr ""
 "GNU `recode' convierte ficheros entre varios juegos de caracteres y "
 "facetas.\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
 msgid ""
 "\n"
@@ -109,7 +100,7 @@ msgstr ""
 "\n"
 "Modo de empleo: %s [OPCIÓN]... [ [JUEGO] | PETICIÓN [FICHERO]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -120,11 +111,12 @@ msgstr ""
 "obligatorio también para la opción corta equivalente. Lo mismo para los\n"
 "argumentos opcionales.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
 "  -k, --known=PAIRS          restrict charsets according to known PAIRS "
 "list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
@@ -151,7 +143,7 @@ msgstr ""
 "      --help                 muestra esta ayuda y finaliza\n"
 "      --version              muestra la versión y finaliza\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -183,15 +175,15 @@ msgstr ""
 # Pero en este caso concreto, no hace falta porque la palabra pipe forma
 # parte del nombre de la opción (a la izquierda se ve). sv
 #
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     utiliza tuberías para las pasadas\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     lo mismo que -i (en este sistema)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -216,7 +208,7 @@ msgstr ""
 "  -g, --graphics         aproxima gráficos IBMPC mediante gráficos ASCII\n"
 "  -x, --ignore=JUEGO     descarta JUEGO al escoger un camino de conversión\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -230,20 +222,16 @@ msgstr ""
 "entre `dohf').\n"
 
 #: src/main.c:302
-#, c-format
+#, fuzzy
 msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "A menos que se establezca DEFAULT_CHARSET en el entorno,\n"
 "CHARSET es `%s' por omisión.\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-"CHARSET no tiene ningún valor predeterminado, defina DEFAULT_CHARSET en el\n"
-"entorno.\n"
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
 "both being tabular charsets, with PAIRS of the form "
@@ -256,7 +244,7 @@ msgstr ""
 "`ANT1:DES1,ANT2:DES2,...' y siendo los ANTs y los DESs códigos dados\n"
 "como números decimales.\n"
 
-#: src/main.c:318
+#: src/main.c:312
 msgid ""
 "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
@@ -264,7 +252,7 @@ msgstr ""
 "es `c'\n"
 
 # FIXME: [SURFACE]... means the usual surfaces or the usual surface?
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
 "REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
@@ -286,7 +274,7 @@ msgstr ""
 "implícita para el JUEGO; una / con una faceta vacía significa que no hay\n"
 "ninguna faceta. Véase el manual.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -300,7 +288,7 @@ msgstr ""
 "funciona\n"
 "como filtro y convierte la entrada estándar en la salida estándar.\n"
 
-#: src/main.c:335
+#: src/main.c:329
 msgid ""
 "\n"
 "Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
@@ -308,39 +296,47 @@ msgstr ""
 "\n"
 "Comunicar `bugs' a <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Sucesión ambigua `%s'"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Sucesión desconocida `%s'"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Idioma ambiguo `%s'"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Idioma desconocido `%s'"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Formato ambiguo `%s'"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Formato desconocido `%s'"
+msgid "Format `%s' is unknown"
+msgstr ""
+
+# Se entiende que los usuarios españoles sí tendrán iso-8859-1.
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Escrito por François Pinard <pinard@iro.umontreal.ca>.\n"
 
 # FIXME: Añadir 1998 (?).
-#: src/main.c:622
+#: src/main.c:624
 msgid ""
 "\n"
 "Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
@@ -348,7 +344,7 @@ msgstr ""
 "\n"
 "Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -357,55 +353,60 @@ msgstr ""
 "No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n"
 "FIN DETERMINADO.\n"
 
-# Se entiende que los usuarios españoles sí tendrán iso-8859-1.
-#: src/main.c:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
 msgstr ""
-"\n"
-"Escrito por François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Sintaxis antigua, por favor utilice `%s'"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Petición errónea `%s'"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Convirtiendo %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " hecho\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " falló: %s en %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s falló: %s en %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s en %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "El juego de caracteres %s ya existe y no es %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr ""
@@ -415,27 +416,26 @@ msgstr ""
 # "Nem" de "Nemónico", supongo.
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Oct Hex   UCS2  Nem  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Lo siento, no hay nombres disponibles para `%s'"
 
 # FIXME: ¿La palabra "Resurface" había desaparecido o no?
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Se ha establecido `resurfacer' más de una vez para `%s'"
 
 # FIXME: Lo mismo. ¿?
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Se ha establecido `unsurfacer' más de una vez para `%s'"
@@ -445,12 +445,12 @@ msgid "Virtual memory exhausted"
 msgstr "Memoria virtual agotada"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Los códigos %3d y %3d se convierten ambos en %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Ningún carácter se convierte en %3d"
 
@@ -475,11 +475,11 @@ msgid "Cannot complete table from set of known pairs"
 msgstr ""
 "No se puede completar la tabla a partir del conjunto de pares conocidos"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Conversión identidad, no merece una tabla"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "La conversión es demasiado compleja para una simple tabla"
 
@@ -488,90 +488,124 @@ msgstr "La conversi
 # ## (creo que ese mensaje anterior ya no existe (?))
 #
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sTabla de conversión generada automáticamente por GNU %s %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%spara la sucesión %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "No hay tabla que mostrar"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "reversible"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s a %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "variable"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Imposible*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*copia pura y simple*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "¡Memoria virtual agotada!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Falló la etapa de inicialización"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Falló la etapa de inicialización (opciones sin procesar)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Petición: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Encogido a: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Nombre de faceta no reconocido `%s'"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "No se puede convertir de `%s' a `%s'"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Se esperaba `..' en la petición"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "El estado de espera del proceso hijo es 0x%0.2x"
 
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Nem   Descripción\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "CHARSET no tiene ningún valor predeterminado, defina DEFAULT_CHARSET en el\n"
+#~ "entorno.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Sucesión ambigua `%s'"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Sucesión desconocida `%s'"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Idioma ambiguo `%s'"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Idioma desconocido `%s'"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Formato ambiguo `%s'"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Formato desconocido `%s'"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Petición errónea `%s'"
+
 # Este es difícil. Se admiten sugerencias.
 # Especialmente de alguien que conozca bien el programa.
 # Creo que "stats" en este caso es abreviatura de "statistics"
index fd4759bb48807a44b0e23c145e7e37cdb4b34ec4..31ea6fca7b21a7d0088378563282b0750afdf5e9 100644 (file)
Binary files a/i18n/fr.mo and b/i18n/fr.mo differ
index 54bc13b3eb7d12b47aa3c53bf36970b2d8695c11..575ba99854b72f4d838a20c33d36340248228809 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Free recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-08-17 14:14-04:00\n"
 "Last-Translator: François Pinard <pinard@iro.umontreal.ca>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -13,48 +13,39 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid ""
-"UCS2   Mne   Description\n"
-"\n"
-msgstr ""
-"UCS2   Mné   Description\n"
-"\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Pas d'erreur"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Entrée en forme non canonique"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Sortie ambiguë"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Entrée non traductible"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Entrée invalide"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Problème rapporté par le système"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Mauvais usage de la logithèque de recodage"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Problème interne durant le recodage"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -84,19 +75,19 @@ msgstr ""
 "avec ce programme; sinon, écrire à la Free Software Foundation, Inc.,\n"
 "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Pour plus d'information, essayez «%s %s».\n"
 
-#: src/main.c:235
+#: src/main.c:237
 msgid ""
 "Free `recode' converts files between various character sets and surfaces.\n"
 msgstr ""
 "« Free recode » transforme les jeux de caractères et les surfaces de "
 "fichiers\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
 msgid ""
 "\n"
@@ -105,7 +96,7 @@ msgstr ""
 "\n"
 "Usage: %s [OPTION]... [ [CHARSET] | DEMANDE [FICHIER]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -118,11 +109,12 @@ msgstr ""
 "comme\n"
 "étant optionnel.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
 "  -k, --known=PAIRS          restrict charsets according to known PAIRS "
 "list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
@@ -148,7 +140,7 @@ msgstr ""
 "      --help                fournir ce message d'aide, puis terminer\n"
 "      --version             identifier la programme, puis terminer\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -171,16 +163,16 @@ msgstr ""
 "passes\n"
 "      --sequence=memory   utiliser des tampons pour ordonnancer les passes\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr ""
 "  -p, --sequence=pipe     utiliser «pipe» pour ordonnancer les passes\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     même chose que -i (sur cette machine)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -200,7 +192,7 @@ msgstr ""
 "  -g, --graphics         convertir au mieux possible les «rulers» IBMPC\n"
 "  -x, --ignore=CHARSET   ignorer CHARSET durant le choix des étapes\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -214,18 +206,15 @@ msgstr ""
 "dans «dohf».\n"
 
 #: src/main.c:302
-#, c-format
+#, fuzzy
 msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "«%s» est présumé sii DEFAULT_CHARSET n'est pas défini dans l'environnement.\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-"CHARSET ne peut être omis, définir DEFAULT_CHARSET dans l'environment.\n"
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
 "both being tabular charsets, with PAIRS of the form "
@@ -237,13 +226,13 @@ msgstr ""
 "dites selon la syntaxe «AVANT1:APRÈS1,AVANT2:APRÈS2,...»; chaque code AVANT\n"
 "et APRÈS est exprimé en décimal.\n"
 
-#: src/main.c:318
+#: src/main.c:312
 msgid ""
 "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
 "LN est un langage de programmation, valant `c' (implicite), `perl' ou `po'.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
 "REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
@@ -265,7 +254,7 @@ msgstr ""
 "CHARSET; un / sans surface indique l'absence de toute surface.  Voir le "
 "manuel!\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -278,7 +267,7 @@ msgstr ""
 "FICHIER n'est donné, alors agir comme un filtre et recoder stdin sur "
 "stdout.\n"
 
-#: src/main.c:335
+#: src/main.c:329
 msgid ""
 "\n"
 "Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
@@ -287,38 +276,45 @@ msgstr ""
 "Rapporter tout disfonctionnement à mailto:recode-bugs@iro.umontreal.ca;\n"
 "et rapporter les problèmes de francisation à mailto:traduc@traduc.org.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "La séquence «%s» est ambiguë"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Séquence «%s» inconnue"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Le langage «%s» est ambigu"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Langage «%s» inconnu"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Le format «%s» est ambigu"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Format «%s» inconnu"
+msgid "Format `%s' is unknown"
+msgstr ""
+
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Écrit par François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:622
+#: src/main.c:624
 msgid ""
 "\n"
 "Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
@@ -326,7 +322,7 @@ msgstr ""
 "\n"
 "Copyright © 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -335,79 +331,84 @@ msgstr ""
 "les droits de copie.  Il n'y AUCUNE GARANTIE; même pas celle qu'il est\n"
 "DE QUALITÉ LOYALE ET MARCHANDE ou APPROPRIÉ POUR UN BUT PARTICULIER.\n"
 
-#: src/main.c:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
 msgstr ""
-"\n"
-"Écrit par François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Syntaxe désuète, veuillez préférer «%s»"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Demande «%s» en erreur"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Recodage de «%s»..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " complété\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " non-réussi: %s dans %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s non-réussi: %s dans %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s dans %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Le charset %s existe déjà, et n'est pas %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr "Incapable de lister «%s»: les noms n'y sont pas disponibles"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "déc  oct hex   UCS2  mné  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Désolé, aucun nom disponible pour «%s»"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Plus d'un re-surfaceur pour `%s'"
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Plus d'un dé-surfaceur pour `%s'"
@@ -417,12 +418,12 @@ msgid "Virtual memory exhausted"
 msgstr "Mémoire virtuelle épuisée"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Les codes %3d et %3d s'injectent tous deux dans %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Aucun caractère ne peut produire %3d"
 
@@ -444,99 +445,132 @@ msgstr "Paire no. %d: < %3d, %3d > en conflit avec < %3d, %3d >"
 msgid "Cannot complete table from set of known pairs"
 msgstr "Incapable de fermer une table en partant des paires connues"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Le recodage est trivial, une table n'est pas requise"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Recodage plus complexe que ce qu'une table peut décrire"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sTable de conversion engendrée mécaniquement par Free «%s» %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%spour séquence «%s».%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Aucune table à imprimer"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "réversible"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s vers %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "octet"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "flottant"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Irréalisable*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*simple copie*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Mémoire virtuelle épuisée"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "L'étape n'a pas été correctement initialisée"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "L'étape n'a pas été correctement initialisée (options non-traitées)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Demande: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Réduit à: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Nom de surface inconnu: %s"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Pas moyen de recoder %s vers %s"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Chaîne `..' attendue dans la demande"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Le constat «wait» du processus fils est 0x%0.2x"
 
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mné   Description\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "CHARSET ne peut être omis, définir DEFAULT_CHARSET dans l'environment.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "La séquence «%s» est ambiguë"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Séquence «%s» inconnue"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Le langage «%s» est ambigu"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Langage «%s» inconnu"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Le format «%s» est ambigu"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Format «%s» inconnu"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Demande «%s» en erreur"
+
 #~ msgid "   Each input char transforms into an output string,\n"
 #~ msgstr "   Chaque caractère lu devient une chaîne à la sortie,\n"
 
index 3f67518a3c58c81761555fa60a1f30b9065631fa..315ace4f47a62936cbedc86c1397bd5a952bc4ed 100644 (file)
Binary files a/i18n/gl.mo and b/i18n/gl.mo differ
index 89aedc48e975ade1a35c1b7f023c610a23c25ad4..4de0a6965c88d138568fd97d373a770b780d4b84 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 2000-05-06 01:44+02:00\n"
 "Last-Translator: Jacobo Tarrío Barreiro <jtarrio@iname.com>\n"
 "Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
@@ -13,44 +13,39 @@ msgstr ""
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Descripción\n\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Sen erros"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Sen saída normalizada"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Saída ambigua"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Entrada non traducible"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Entrada incorrecta"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "O sistema detectou un problema"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Uso incorrecto da librería de recodificación"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Erro interno na recodificación"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -80,21 +75,28 @@ msgstr ""
 "este programa; se non é o caso, escriba á Free Software Foundation, Inc.,\n"
 "59 Temple Place - Suite 330, Boston, MA 02111-1307, EE.UU.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Escriba `%s %s' para obter máis información.\n"
 
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
-msgstr "O `recode' libre convirte ficheiros entre varios xogos de caracteres e superficies.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
+msgstr ""
+"O `recode' libre convirte ficheiros entre varios xogos de caracteres e "
+"superficies.\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nUso: %s [OPCIÓN]... [ [XOGO-DE-CARACTERES] | PETICIÓN [FICHEIRO]... ]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Uso: %s [OPCIÓN]... [ [XOGO-DE-CARACTERES] | PETICIÓN [FICHEIRO]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -102,15 +104,18 @@ msgid ""
 msgstr ""
 "\n"
 "Se unha opción longa amosa un parámetro como obrigatorio, entón tamén é\n"
-"obrigatorio para a opción curta equivalente.  Do mesmo xeito para parámetros\n"
+"obrigatorio para a opción curta equivalente.  Do mesmo xeito para "
+"parámetros\n"
 "opcionais.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -120,18 +125,21 @@ msgid ""
 msgstr ""
 "\n"
 "Listados:\n"
-"  -l, --list[=FORMATO]      listar un ou tódolos xogos de caracteres coñecidos\n"
-"  -k, --known=PARES         restrinxi-los xogos de acordo coa lista de PARES\n"
+"  -l, --list[=FORMATO]      listar un ou tódolos xogos de caracteres "
+"coñecidos\n"
+"  -k, --known=PARES         restrinxi-los xogos de acordo coa lista de "
+"PARES\n"
 "                               coñecidos\n"
 "  -h, --header[=[LN/]NOME]  escribi-la táboa NOME na saída estándar usando\n"
 "                               LN, e logo sair\n"
-"  -F, --freeze-tables       escribir un módulo en C que contén tódalas táboas\n"
+"  -F, --freeze-tables       escribir un módulo en C que contén tódalas "
+"táboas\n"
 "  -T, --find-subsets        informar dos xogos que son subconxuntos doutros\n"
 "  -C, --copyright           amosa-lo copyright e as condicións de copia\n"
 "      --help                amosar esta axuda e sair\n"
 "      --version             amosar información sobre a versión e sair\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -152,18 +160,20 @@ msgstr ""
 "                               reversibles\n"
 "  -t, --touch               toca-los ficheiros recodificados despois de\n"
 "                               cambialos\n"
-"  -i, --sequence=files      usar ficheiros intermedios para pasos secuenciais\n"
+"  -i, --sequence=files      usar ficheiros intermedios para pasos "
+"secuenciais\n"
 "      --sequence=memory     usa-la memoria para pasos secuenciais\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
-msgstr "  -p, --sequence=pipe       usar canalizacións para pasos secuenciais\n"
+msgstr ""
+"  -p, --sequence=pipe       usar canalizacións para pasos secuenciais\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe       o mesmo que -i (neste sistema)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -178,12 +188,15 @@ msgstr ""
 "Axustes finos:\n"
 "  -s, --strict        usar mapeados estrictos, incluso perder caracteres\n"
 "  -d, --diacritics    converter só diacríticos ou similares para HTML/LaTeX\n"
-"  -S, --source[=LN]   limita-la recodificación a cadeas e comentarios para LN\n"
-"  -c, --colon         usar dous puntos no canto de comiñas dobres para diérese\n"
+"  -S, --source[=LN]   limita-la recodificación a cadeas e comentarios para "
+"LN\n"
+"  -c, --colon         usar dous puntos no canto de comiñas dobres para "
+"diérese\n"
 "  -g, --graphics      aproxima-las liñas de IBMPC con gráficos ASCII\n"
-"  -x, --ignore=XOGO   ignora-lo XOGO ao escoller unha rota de recodificación\n"
+"  -x, --ignore=XOGO   ignora-lo XOGO ao escoller unha rota de "
+"recodificación\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -195,46 +208,54 @@ msgstr ""
 "letra entre `dofh'.\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
-msgstr "A menos que se estableza a variable DEFAULT_CHARSET, XOGO é `%s' se non se indica o contrario.\n"
-
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr "XOGO non ten valor por defecto, defina a variable de ambiente DEFAULT_CHARSET.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
+msgstr ""
+"A menos que se estableza a variable DEFAULT_CHARSET, XOGO é `%s' se non se "
+"indica o contrario.\n"
 
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Con -k, os posibles xogos iniciais lístanse para o XOGO final indicado,\n"
 "sendo os dous xogos tabulares, con PARES da forma `INI1:FIN1,INI2:FIN2,...'\n"
 "e os códigos INI e FIN dándose coma números decimais.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr "LN é unha linguaxe, pode ser `c', `perl' ou `po'; `c' por defecto.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
 "PETICIÓN é SUBPETICIÓN[,SUBPETICIÓN]...; SUBPETICIÓN é\n"
 "CODIFICACIÓN[..CODIFICACIÓN]...; CODIFICACIÓN é [XOGO][/[SUPERFICIE]]...;\n"
 "PETICIÓN adoita parecer INICIAL..FINAL, sendo INICIAL e FINAL uns xogos de\n"
-"caracteres.  Se non se indica un XOGO tómase o xogo normal; se non se indica\n"
+"caracteres.  Se non se indica un XOGO tómase o xogo normal; se non se "
+"indica\n"
 "unha [/SUPERFICIE]... tómanse as superficies implicadas en XOGO; cunha /\n"
-"cun nome de superficie baleiro non se toma ningunha superficie.  Lea o manual.\n"
+"cun nome de superficie baleiro non se toma ningunha superficie.  Lea o "
+"manual.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -242,126 +263,153 @@ msgid ""
 "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 msgstr ""
 "\n"
-"Se non se indica -i nin -p, suponse -p se non se indica un FICHEIRO, senón -i.\n"
+"Se non se indica -i nin -p, suponse -p se non se indica un FICHEIRO, senón "
+"-i.\n"
 "Cada FICHEIRO recodifícase sobre si mesmo, destruíndose o orixinal.  Se non\n"
 "se indica un FICHEIRO, traballa coma un filtro e recodifica stdin a stdout.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nInforme dos erros en <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Informe dos erros en <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Secuencia `%s' ambigua"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Secuencia `%s' descoñecida"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Linguaxe `%s' ambigua"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Linguaxe `%s' descoñecida"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Formato `%s' ambigua"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Formato `%s' descoñecido"
+msgid "Format `%s' is unknown"
+msgstr ""
+
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Escrito por François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
-"Isto é software libre; vexa o código fonte polas condicións de copia. NON hai\n"
-"garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO.\n"
+"Isto é software libre; vexa o código fonte polas condicións de copia. NON "
+"hai\n"
+"garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN "
+"DETERMINADO.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nEscrito por François Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Sintaxe a estinguir, prefírese `%s'"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Petición `%s' errónea"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Recodificando %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " feito\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " fallou: %s en %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s fallou: %s en %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s en %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "O xogo de caracteres %s xa existe e non é %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr "Non se pode listar `%s', non hai nomes dispoñibles para este xogo"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Oct Hex   UCS2  Mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Síntoo, non hai nomes dispoñibles para `%s'"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Aplicáronse superficies máis dunha vez para `%s'"
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Quitáronse superficies máis dunha vez para `%s'"
@@ -371,12 +419,12 @@ msgid "Virtual memory exhausted"
 msgstr "Memoria virtual esgotada"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Ámbolos dous códigos %3d e %3d recodifícanse a %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Non hai caracteres que se recodifiquen a %3d"
 
@@ -398,95 +446,129 @@ msgstr "O par n
 msgid "Cannot complete table from set of known pairs"
 msgstr "Non podo completa-la táboa dado o conxunto de pares coñecidos"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Recodificación identidade, non merece a pena facer unha táboa"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "A recodificación é demasiado complicada para unha simple táboa"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sTáboa de conversión xerada mecánicamente polo `%s' Libre %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%spara a secuencia %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Non hai ningunha táboa que visualizar"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "reversible"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s a %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "variable"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Inalcanzable*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*simple copia*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "¡Memoria virtual esgotada!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "A inicialización do paso fallou"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "A inicialización do paso fallou (opcións sen procesar)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Petición: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Encollido a: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Nome de superficie `%s' non recoñecido"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Non hay xeito de recodificar de `%s' a `%s'"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Esperábase un `..' na petición"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "O estado de espera do proceso fillo é 0x%0.2x"
+
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   Descripción\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "XOGO non ten valor por defecto, defina a variable de ambiente "
+#~ "DEFAULT_CHARSET.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Secuencia `%s' ambigua"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Secuencia `%s' descoñecida"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Linguaxe `%s' ambigua"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Linguaxe `%s' descoñecida"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Formato `%s' ambigua"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Formato `%s' descoñecido"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Petición `%s' errónea"
index 6e690bd06cf6521da123ca2aa66905b99d56041c..b4e1a17d14f326edcc6324e781cfd536a078939c 100644 (file)
Binary files a/i18n/it.mo and b/i18n/it.mo differ
index ae9978d34423a93f8e98479a18bb95f4115d2d7d..44e8587009dce30f05b36f92c246d96e43cf3add 100644 (file)
@@ -11,7 +11,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-11-19 23:30+01:00\n"
 "Last-Translator: Lorenzo Cappelletti <L.Cappelletti@POBoxes.com>\n"
 "Language-Team: Italian <it@li.org>\n"
@@ -19,44 +19,39 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Descrizione\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Nessun errore"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Nessun input canonico"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Output ambiguo"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Input non traslabile"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Input non valido"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Rilevato problema di sistema"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Uso scorretto della libreria di ricodifica"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Bug di ricodifica interno"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -86,23 +81,29 @@ msgstr ""
 "assieme a questo programma; in caso contrario, scrivere a Free Software\n"
 "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Usare `%s %s' per ulteriori informazioni.\n"
 
 # Libero `recode' non mi piace
 # Cosa sono le surfaces in questo contesto?
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
-msgstr "`recode' gratuito converte file fra vari insiemi di caratteri e surface.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
+msgstr ""
+"`recode' gratuito converte file fra vari insiemi di caratteri e surface.\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nUso: %s [OPZIONI]... [ [CHARSET] | RICHIESTA [FILE]... ]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Uso: %s [OPZIONI]... [ [CHARSET] | RICHIESTA [FILE]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -113,12 +114,14 @@ msgstr ""
 "è richiesta anche per l'opzione breve.  Analogamente per gli argomenti\n"
 "opzionali.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -129,16 +132,19 @@ msgstr ""
 "\n"
 "Elenchi:\n"
 "  -l, --list[=FORMATO]       lista uno o tutti i charset conosciuti\n"
-"  -k, --known=COPPIE         restringe i charset secondo le COPPIE conosciute\n"
+"  -k, --known=COPPIE         restringe i charset secondo le COPPIE "
+"conosciute\n"
 "  -h, --header[=[LN/]NOME]   scrive la tabella NOME sullo stdout usando LN,\n"
 "                             poi esce\n"
-"  -F, --freeze-tables        riporta un modulo C contenente tutte le tabelle\n"
+"  -F, --freeze-tables        riporta un modulo C contenente tutte le "
+"tabelle\n"
 "  -T, --find-subsets         riporta tutti i charset sottoinsiemi di altri\n"
-"  -C, --copyright            mostra le condizioni del Copyright e riproduzione\n"
+"  -C, --copyright            mostra le condizioni del Copyright e "
+"riproduzione\n"
 "      --help                 mostra questo aiuto ed esce\n"
 "      --version              informazioni sulla versione ed uscita\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -151,22 +157,24 @@ msgid ""
 msgstr ""
 "\n"
 "Modi operativi:\n"
-"  -v, --verbose           spiega le sequenze dei passi e riporta i progressi\n"
+"  -v, --verbose           spiega le sequenze dei passi e riporta i "
+"progressi\n"
 "  -q, --quiet, --silent   inibisce i messaggi di ricodifiche inreversibili\n"
 "  -f, --force             forza le ricodifiche anche quando non reversibili\n"
 "  -t, --touch             touch dei file ricodificati dopo la sostituzione\n"
 "  -i, --sequence=files    usa file intermedi per i passi sequenziali\n"
 "      --sequence=memory   usa buffer di memoria per i passi sequenziali\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
-msgstr "  -p, --sequence=pipe     usa il sistema dei pipe per i passi sequenziali\n"
+msgstr ""
+"  -p, --sequence=pipe     usa il sistema dei pipe per i passi sequenziali\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     come -i (su questo sistema)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -179,14 +187,19 @@ msgid ""
 msgstr ""
 "\n"
 "Regolazioni fini:\n"
-"  -s, --strict           usa mappature strettamente conformi, anche con caratteri slegati\n"
-"  -d, --diacritics       converte solo segni diacritici o simili per HTML/LaTeX\n"
-"  -S, --source[=LN]      limita la ricodifica a stringhe e commenti come per LN\n"
-"  -c, --colons           usa i due punti al posto delle virgolette per le dieresi\n"
+"  -s, --strict           usa mappature strettamente conformi, anche con "
+"caratteri slegati\n"
+"  -d, --diacritics       converte solo segni diacritici o simili per "
+"HTML/LaTeX\n"
+"  -S, --source[=LN]      limita la ricodifica a stringhe e commenti come per "
+"LN\n"
+"  -c, --colons           usa i due punti al posto delle virgolette per le "
+"dieresi\n"
 "  -g, --graphics         approssima le regole IBMPC con grafica ASCII\n"
-"  -x, --ignore=CHARSET   ignora CHARSET quando sceglie un percorso di ricodifica\n"
+"  -x, --ignore=CHARSET   ignora CHARSET quando sceglie un percorso di "
+"ricodifica\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -198,38 +211,46 @@ msgstr ""
 "`esadecimale'(h) o `pieno'(f) (oppure uno tra `dohf').\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "Se DEFAULT_CHARSET non è specificato nell'ambiente, il CHARSET predefinito\n"
 "è `%s`.\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr "Nessun CHARSET predefinito, definire DEFAULT_CHARSET nell'ambiente.\n"
-
 # Non riesco assolutamente a capire la costruzione logica di questa frase
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
-"Con -k, possibile prima, charset vengono listati per quelli dati dopo CHARSET,\n"
-"entrambi essendo charset tabulari, con COPPIE nella foram `BEF1:AFT1,BEF2:AFT2,...',\n"
+"Con -k, possibile prima, charset vengono listati per quelli dati dopo "
+"CHARSET,\n"
+"entrambi essendo charset tabulari, con COPPIE nella foram "
+"`BEF1:AFT1,BEF2:AFT2,...',\n"
 "dove BEF e AFT sono codici forniti come numeri decimali.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
-msgstr "LN è qualche lingua, può essere `c', `perl' o `po'; quella predefinita è `c'.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+msgstr ""
+"LN è qualche lingua, può essere `c', `perl' o `po'; quella predefinita è "
+"`c'.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
@@ -240,7 +261,7 @@ msgstr ""
 "implica le superfici del CHARSET; un / con un nome di surface vuoto\n"
 "significa nessuna surface.  Vedere il manuale.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -248,51 +269,68 @@ msgid ""
 "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 msgstr ""
 "\n"
-"Se non è dato -i né -p, si presume -p se FILE non è presente, altrimenti -i.\n"
-"Ogni FILE è ricodificato su se stesso, ditruggendo l'originale.  Se non viene\n"
+"Se non è dato -i né -p, si presume -p se FILE non è presente, altrimenti "
+"-i.\n"
+"Ogni FILE è ricodificato su se stesso, ditruggendo l'originale.  Se non "
+"viene\n"
 "specificato nessun FILE, allora si comporta come un filtro ricodificando lo\n"
 "stdin sullo stdout.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nSegnalare i bug a <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Segnalare i bug a <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Sequenza ambigua `%s'"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Sequenza sconosciuta `%s'"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Lingua ambigua `%s'"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Lingua sconosciuta `%s'"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Formato ambiguo `%s'"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Formato sconosciuto `%s'"
+msgid "Format `%s' is unknown"
+msgstr ""
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Scritto da Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -301,75 +339,84 @@ msgstr ""
 "riproduzione.  NON c'è garanzia; neppure di COMMERCIABILITÀ o IDONEITÀ\n"
 "AD UN PARTICOLARE SCOPO.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nScritto da Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Sintassi sconsigliata, si preferisca `%s'"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Richiesta errata `%s'"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Sto ricodificando %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " fatto\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " fallito: %s in %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s fallito: %s in %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s in %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Il charset %s esiste già e non è %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr "Non posso listare `%s', nessun nome disponibile per questo charset"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Ott Esa   UCS2  Mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Spiacente, nessun nome disponibile per `%s'"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Il resurfacer è impostato piú di una volta per `%s'"
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "L'unsurfacer è impostato piú di una volta per `%s'"
@@ -379,12 +426,12 @@ msgid "Virtual memory exhausted"
 msgstr "Memoria virtuale esaurita"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Entrambi i codici %3d e %3d si ricodificano in %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Nessun carattere si ricodifica in %3d"
 
@@ -407,96 +454,127 @@ msgid "Cannot complete table from set of known pairs"
 msgstr "Impossibile completare la tabella dall'insieme delle coppie conosciute"
 
 # Una forma migliore per identity recoding?
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Sto ricodificando nell'identità, tabella non significativa"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "La ricodifica è troppo complessa per una sola tabella"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sTabella di conversione generata automaticamente dalla Free `%s' %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sper la sequenza %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Nessuna tabella da stampare"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "reversibile"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s in %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
 # Verificare il significato della sigla
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "variabile"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Inraggiungibile*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*per sola copia*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Memoria virtuale esaurita!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Passo di inizializzazione fallito"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Passo di inizializzazione fallito (opzioni non processate)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Richiesta: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Ridotto a: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Nome di surface non riconosciuta `%s'"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Nessuno modo per ricodificare da `%s' a `%s'"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Atteso `..' nella richiesta"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Lo stato di attesa del processo figlio è 0x%0.2x"
+
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr "UCS2   Mne   Descrizione\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "Nessun CHARSET predefinito, definire DEFAULT_CHARSET nell'ambiente.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Sequenza ambigua `%s'"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Sequenza sconosciuta `%s'"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Lingua ambigua `%s'"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Lingua sconosciuta `%s'"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Formato ambiguo `%s'"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Formato sconosciuto `%s'"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Richiesta errata `%s'"
index 3d9dd5778e825a014191f9af405fabce44b70505..04003ce7f098dcbc92479c10b54e518acb16c569 100644 (file)
Binary files a/i18n/nl.mo and b/i18n/nl.mo differ
index 078447da498fd2a6fac0a1c210cc602ab372d07d..aaa8a1cfb13d68f2295dad19cc17fe954c622ee4 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.4.2\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1996-10-07 10:05 MET DST\n"
 "Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
 "Language-Team: Dutch <nl@li.org>\n"
@@ -13,47 +13,40 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid ""
-"UCS2   Mne   Description\n"
-"\n"
-msgstr ""
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr ""
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr ""
 
-#: src/main.c:146
+#: src/main.c:148
 #, fuzzy
 msgid "Ambiguous output"
 msgstr "Dubbelzinnig format `%s'"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr ""
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr ""
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr ""
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr ""
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr ""
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -83,17 +76,17 @@ msgstr ""
 "Public License; zo niet, schrijf dan naar de Free Software Foundation,\n"
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Probeer `%s %s' voor meer informatie.\n"
 
-#: src/main.c:235
+#: src/main.c:237
 msgid ""
 "Free `recode' converts files between various character sets and surfaces.\n"
 msgstr ""
 
-#: src/main.c:239
+#: src/main.c:241
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -102,18 +95,18 @@ msgstr ""
 "\n"
 "Gebruik: %s [OPTIE]... [KARAKTERSET]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
 "for the equivalent short option also.  Similarly for optional arguments.\n"
 msgstr ""
 
-#: src/main.c:248
+#: src/main.c:250
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
 "  -k, --known=PAIRS          restrict charsets according to known PAIRS "
 "list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
@@ -124,7 +117,7 @@ msgid ""
 "      --version              output version information and exit\n"
 msgstr ""
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -136,18 +129,18 @@ msgid ""
 "      --sequence=memory   use memory buffers for sequencing passes\n"
 msgstr ""
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr ""
 "  -p, --sequence=pipe     gebruik pipe machinery for sequencing passes "
 "(FIXME)\n"
 
-#: src/main.c:278
+#: src/main.c:280
 #, fuzzy
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     zelfde als -o (op dit systeem)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 #, fuzzy
 msgid ""
 "\n"
@@ -176,7 +169,7 @@ msgstr ""
 "  -i, --sequence=files    gebruik tussen bestanden voor achtereenvolgende \n"
 "                          sessies\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -184,16 +177,13 @@ msgid ""
 msgstr ""
 
 #: src/main.c:302
-#, c-format
 msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
 "both being tabular charsets, with PAIRS of the form "
@@ -201,12 +191,12 @@ msgid ""
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 
-#: src/main.c:318
+#: src/main.c:312
 msgid ""
 "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
 "REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
@@ -219,7 +209,7 @@ msgid ""
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -227,7 +217,7 @@ msgid ""
 "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 msgstr ""
 
-#: src/main.c:335
+#: src/main.c:329
 #, fuzzy
 msgid ""
 "\n"
@@ -236,38 +226,45 @@ msgstr ""
 "\n"
 "Meld fouten via <recode-bugs@gnu.ai.mit.edu>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Dubbelzinnig `sequence' `%s'"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Onbekende `sequence' `%s' (FIXME)"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Dubbelzinnige taal `%s'"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Onbekende taal `%s'"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Dubbelzinnig format `%s'"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Onbekende format `%s'"
+msgid "Format `%s' is unknown"
+msgstr ""
+
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Geschreven door François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:622
+#: src/main.c:624
 #, fuzzy
 msgid ""
 "\n"
@@ -276,7 +273,7 @@ msgstr ""
 "\n"
 "Copyright (C) 1990, 1992, 1993, 1994, 1996 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -285,54 +282,60 @@ msgstr ""
 "Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID\n"
 "VOOR EEN BEPAALDE TOEPASSING.\n"
 
-#: src/main.c:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
+
+#: src/main.c:709 src/main.c:723
+#, c-format
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
 msgstr ""
-"\n"
-"Geschreven door François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:775
+#: src/main.c:797
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr ""
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
+msgid "Request `%s' is erroneous"
 msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Omzetten %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " klaar\n"
 
-#: src/main.c:924
+#: src/main.c:954
 #, c-format
-msgid " failed: %s in %s..%s\n"
+msgid " failed: %s in step `%s..%s'\n"
 msgstr ""
 
-#: src/main.c:931
+#: src/main.c:961
 #, c-format
-msgid "%s failed: %s in %s..%s"
+msgid "%s failed: %s in step `%s..%s'"
 msgstr ""
 
-#: src/main.c:954
+#: src/main.c:984
 #, fuzzy, c-format
-msgid "%s in %s..%s"
+msgid "%s in step `%s..%s'"
 msgstr "%svoor reeks %s.%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Karakterset %s bestaat reeds en is niet %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, fuzzy, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr ""
@@ -340,25 +343,24 @@ msgstr ""
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, fuzzy, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "dec  oct hex    ch   %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, fuzzy, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Sorry, geen RFC 1345 namen beschikbaar voor `%s'"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr ""
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr ""
@@ -368,12 +370,12 @@ msgid "Virtual memory exhausted"
 msgstr ""
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Code %3d en %3d beide omgezet naar %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Geen karakter omzetting naar %3d"
 
@@ -395,100 +397,124 @@ msgstr "Paar nummer %d: { %3d, %3d } conflictueerd met { %3d, %3d }"
 msgid "Cannot complete table from set of known pairs"
 msgstr "Kan tabel niet compleet maken uit set van bekende paren"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Codering is identiek, geen tabel waardig"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Omzetting is te complex voor een mere tabel (FIXME)"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, fuzzy, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sConversietabel mechanisch gegenereerd door GNU %s %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%svoor reeks %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Geen tabel om te tonen"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "omkeerbaar"
 
-#: src/request.c:37
+#: src/request.c:36
 #, fuzzy, c-format
 msgid "%s to %s"
 msgstr "%svoor reeks %s.%s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr ""
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr ""
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 #, fuzzy
 msgid "variable"
 msgstr "omkeerbaar"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Onmogelijk*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*gewone kopie*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr ""
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr ""
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr ""
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr ""
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr ""
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr ""
 
-#: src/request.c:884
+#: src/request.c:903
 #, fuzzy, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Geen mogelijkheid voor omzetting van %s naar %s"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr ""
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Wacht status proces kind is 0x%0.2x"
 
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Dubbelzinnig `sequence' `%s'"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Onbekende `sequence' `%s' (FIXME)"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Dubbelzinnige taal `%s'"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Onbekende taal `%s'"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Dubbelzinnig format `%s'"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Onbekende format `%s'"
+
 #~ msgid "Hash stats: %d names using %d buckets out of %d\n"
 #~ msgstr "Hash stats: %d names using %d buckets out of %d (FIXME)\n"
 
index fdc7f7aa28a95c8dd16ceeea1c03aec8067dbadf..70eba53f05f70e7006709bfe16f2d2fff62e1b83 100644 (file)
Binary files a/i18n/pl.mo and b/i18n/pl.mo differ
index 5703f00a87e286acfb508a27ab78e44cf4ad200a..bf65c02b641a7ea81abf8fca49b7ef2b4e7ed232 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.4r\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-05-26 14:49+02:00\n"
 "Last-Translator: Pawe³ Krawczyk <kravietz@ceti.pl>\n"
 "Language-Team: Polish <pl@li.org>\n"
@@ -13,44 +13,39 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Description\n\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Brak b³êdu"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Dane wej¶ciowe nie s± kanoniczne"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Dane wyj¶ciowe s± dwuznaczne"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Dane wej¶ciowe nie mog± byæ przet³umaczone"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "B³êdne dane wej¶ciowe"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "System wykry³ problem"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "B³êdne u¿ycie biblioteki przekodowuj±cej"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Wyst±pi³ wewnêtrzny b³±d przekodowania"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -80,24 +75,29 @@ msgstr ""
 "z tym programem. Je¶li nie, napisz do Free Software Foundation,\n"
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Polecenie `%s %s' wy¶wietli wiêcej informacji.\n"
 
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
 msgstr ""
 "Program `recode' konwertuje pliki pomiêdzy ró¿nymi zestawami znaków\n"
 "i sposobami kodowania.\n"
 
 # REQUEST t³umaczê wszêdzie konsekwentnie jako POLECENIE, a nie '¿±danie'
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nSk³adnia: %s [OPCJA]... [ [ZESTAW_ZNAKÓW] | POLECENIE [PLIK]... ]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Sk³adnia: %s [OPCJA]... [ [ZESTAW_ZNAKÓW] | POLECENIE [PLIK]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -107,12 +107,14 @@ msgstr ""
 "Je¶li argumenty s± obowi±zkowe dla d³ugich wersji opcji, to s± one równie¿\n"
 "obowi±zkowe dla krótkich wersji. Analogicznie dla argumentów opcjonalnych.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -136,7 +138,7 @@ msgstr ""
 "      --version              wy¶wietla wersjê programu i koñczy pracê\n"
 "      --help                 wy¶wietla ten tekst pomocy i koñczy pracê\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -159,15 +161,15 @@ msgstr ""
 "  -i, --sequence=pliki    u¿ywa plików tymczasowych miêdzy etapami\n"
 "      --sequence=memory   u¿ywa buforów w pamiêci miêdzy etapami\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     u¿ywa potoków miêdzy etapami\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     identyczne jak -i (w tym systemie)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -185,13 +187,14 @@ msgstr ""
 "                         znaków\n"
 "  -d, --diacritics       konwertuje tylko znaki diakrytyczne oraz symbole\n"
 "                         znaków (takie jak w HTML i LaTeX)\n"
-"  -c, --colons           u¿ywa dwukropków zamiast cudzys³owów dla oznaczenia\n"
+"  -c, --colons           u¿ywa dwukropków zamiast cudzys³owów dla "
+"oznaczenia\n"
 "                         umlautu\n"
 "  -g, --graphics         próbuje przybli¿aæ ramki IBMPC znakami ASCII\n"
 "  -x, --ignore=ZESTAW    ignoruje ZESTAW znaków podczas okre¶lania drogi\n"
 "                         przekodowania\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -203,22 +206,20 @@ msgstr ""
 "(lub jedna z liter `dohf').\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "Je¶li zmienna ¶rodowiskowa DEFAULT_CHARSET nie jest ustawiona, domy¶lnym\n"
 "zestawem znaków jest `%s'.\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-"ZESTAW znaków nie ma warto¶ci domy¶lnej, ustaw zmienn± ¶rodowiskow±\n"
-"DEFAULT_CHARSET.\n"
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Je¶li podano opcjê -k, program wy¶wietla zestawy znaków z których mo¿na\n"
@@ -226,19 +227,23 @@ msgstr ""
 "zestawami znaków z PARAmi postaci `SK¡D1:DOK¡D1,SK¡D2:DOK¡D2...', gdzie\n"
 "SK¡D i DOK¡D s± kodami podanymi jako liczby dziesiêtne.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
 "LN jest jêzykiem programowania, do wyboru `c', `perl' lub `po'.\n"
 "Domy¶ln± warto¶ci± jest `c'.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
@@ -250,7 +255,7 @@ msgstr ""
 "/ bez podanego KODOWANIA oznacza brak jakiegokolwiek kodowania. Szczegó³y\n"
 "w dokumentacji.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -263,46 +268,61 @@ msgstr ""
 "oryginalnej zawarto¶ci. Je¶li nie podano PLIKu, program dzia³a jako filtr\n"
 "przekodowuj±c stdin na stdout.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nProsimy o zg³aszanie b³êdów na adres <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Prosimy o zg³aszanie b³êdów na adres <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Nierozpoznana sekwencja `%s'"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Nieznana sekwencja `%s'"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Nierozpoznany jêzyk `%s'"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Nieznany jêzyk `%s'"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Nierozpoznany format `%s'"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Nieznany format `%s'"
+msgid "Format `%s' is unknown"
+msgstr ""
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Autorem jest Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:626
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -311,75 +331,84 @@ msgstr ""
 "¼ród³owym. Nie podlega ¿adnej gwarancji, nawet gwarancji przydatno¶ci\n"
 "do jakiegokolwiek zastosowania lub sprzeda¿y.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nAutorem jest Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Odradza siê stosowanie tej sk³adni, proszê u¿ywaæ `%s'"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "B³êdne polecenie `%s'"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Przekodowanie %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " skoñczone\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " nie powiod³o siê: %s w %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s nie powiod³o siê: %s w %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s w %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Zestaw %s ju¿ istnieje i nie jest %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr "Nie mogê wylistowaæ `%s', brak nazw dla tego zestawu znaków"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "Dec  Okt Hex   UCS2  Mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Brak nazw dla `%s'"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Procedura rekoduj±ca zosta³a ustawiona wiêcej ni¿ raz dla `%s'"
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Procedura dekoduj±ca zosta³a ustawiona wiêcej ni¿ raz dla `%s'"
@@ -389,12 +418,12 @@ msgid "Virtual memory exhausted"
 msgstr "Pamiêæ wirtualna wyczerpana"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Kody %3d i %3d oba t³umacz± siê na %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "¯aden znak nie koduje siê na %3d"
 
@@ -416,99 +445,133 @@ msgstr "Para nr %d: < %3d, %3d > konflikt z < %3d, %3d >"
 msgid "Cannot complete table from set of known pairs"
 msgstr "Nie mogê utworzyæ tablicy z zestawu znanych par"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Przekodowanie jest proste, tablica nie jest potrzebna"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Przekodowanie jest zbyt skomplikowane na zwyk³± tablicê"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sTablica przekodowañ wygenerowana automatycznie przez GNU `%s' %s."
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sdla sekwencji %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Brak tablicy do wypisania"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "odwracalna"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s na %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "bajt"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "ucs2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "zmienne"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Nieosi±galne*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*zwyk³a kopia*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Pamiêæ wirtualna wyczerpana!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Inicjalizacja kroku nie powiod³a siê"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Inicjalizacja kroku nie powiod³a siê (nieprzetworzone opcje)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Polecenie: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Zmniejszony do: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Nierozpoznana nazwa standardu kodowania `%s'"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Przekodowanie `%s' na `%s' jest niemo¿liwe"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Spodziewane `..' w poleceniu"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   Description\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "ZESTAW znaków nie ma warto¶ci domy¶lnej, ustaw zmienn± ¶rodowiskow±\n"
+#~ "DEFAULT_CHARSET.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Nierozpoznana sekwencja `%s'"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Nieznana sekwencja `%s'"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Nierozpoznany jêzyk `%s'"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Nieznany jêzyk `%s'"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Nierozpoznany format `%s'"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Nieznany format `%s'"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "B³êdne polecenie `%s'"
+
 #~ msgid "   Each input char transforms into an output string,\n"
 #~ msgstr "   Ka¿dy znak wej¶ciowy jest konwertowany na ³añcuch wyj¶ciowy,\n"
 
@@ -516,7 +579,9 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ msgstr "   Ka¿dy znak wej¶ciowy jest konwertowany na ³añcuch wyj¶ciowy.\n"
 
 #~ msgid "   Programming is needed to handle multichar input.\n"
-#~ msgstr "   Do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ programowania.\n"
+#~ msgstr ""
+#~ "   Do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ "
+#~ "programowania.\n"
 
 #~ msgid "   The recoding might not be reversible.\n"
 #~ msgstr "   Konwersja mo¿e byæ nieodwracalna.\n"
@@ -525,7 +590,9 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ msgstr "   Konwersja powinna byæ odwracalna.\n"
 
 #~ msgid "   programming is needed to handle multichar input.\n"
-#~ msgstr "   do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ programowania.\n"
+#~ msgstr ""
+#~ "   do obs³ugi kodów wieloznakowych potrzebna jest umiejêtno¶æ "
+#~ "programowania.\n"
 
 #~ msgid "  UNACHIEVABLE\n"
 #~ msgstr "  NIEOSI¡GALNE\n"
@@ -584,8 +651,10 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ msgid "  -o, --sequence=popen    same as -i (on this system)\n"
 #~ msgstr " -o, --sequence=popen    identyczne jak -i (w tym systemie)\n"
 
-#~ msgid "  -o, --sequence=popen    use popen machinery for sequencing passes\n"
-#~ msgstr "  -o, --sequence=popen    u¿ycie techniki popen w przebiegach sekwencyjnych\n"
+#~ msgid ""
+#~ "  -o, --sequence=popen    use popen machinery for sequencing passes\n"
+#~ msgstr ""
+#~ "  -o, --sequence=popen    u¿ycie techniki popen w przebiegach sekwencyjnych\n"
 
 #~ msgid ""
 #~ "  -q, --quiet, --silent   inhibit messages about irreversible recodings\n"
@@ -599,8 +668,10 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 #~ msgstr ""
 #~ " -q, --quiet, --silent    blokuj komunikaty o nieodwracalnych konwersjach\n"
-#~ " -s, --strict        u¿ywaj ¶cis³ych odwzorowañ, nawet dla w±tpliwych znaków\n"
-#~ " -t, --touch              uaktualnij datê przekodowanego, podstawionego pliku\n"
+#~ " -s, --strict        u¿ywaj ¶cis³ych odwzorowañ, nawet dla w±tpliwych "
+#~ "znaków\n"
+#~ " -t, --touch              uaktualnij datê przekodowanego, podstawionego "
+#~ "pliku\n"
 #~ " -v, --verbose            pokazuj kolejne kroki i postêp konwersji\n"
 #~ " -x, --ignore=ZESTAW      ignoruj ZESTAW znaków przy wyborze konwersji\n"
 #~ "\n"
@@ -626,7 +697,8 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ "FORMAT is a word among decimal, octal, hexadecimal or full (which may be\n"
 #~ "abbreviated to one of `dohf'), it defaults to just the canonical name.\n"
 #~ "With -k, possible before charsets are listed for the given after CHARSET,\n"
-#~ "both being RFC1345 charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...\n"
+#~ "both being RFC1345 charsets, with PAIRS of the form "
+#~ "`BEF1:AFT1,BEF2:AFT2,...\n"
 #~ "and BEFs and AFTs being codes.  All codes are given as decimal numbers.\n"
 #~ msgstr ""
 #~ "Obowi±zkowe lub opcjonalne argumenty d³ugich form opcji maj± tak± sam±\n"
@@ -645,7 +717,8 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ "z zestawów RFC1345, postaci: PRZED1:PO2,PRZED2:PO2,...\n"
 
 #~ msgid ""
-#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the Texinfo\n"
+#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the "
+#~ "Texinfo\n"
 #~ "documentation.  My preferred charsets are (each user has preferences):\n"
 #~ "\n"
 #~ "  ascii-bs   ASCII (7-bit), using backspace to apply diacritics\n"
@@ -675,15 +748,21 @@ msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x"
 #~ msgstr ""
 #~ "\n"
 #~ "  -c, --colons            u¿ywaj dwukropków zamiast cudzys³owów\n"
-#~ "  -d, --diacritics        ogranicz konwersjê do zn. diakryt. itp. dla LaTeXa\n"
+#~ "  -d, --diacritics        ogranicz konwersjê do zn. diakryt. itp. dla "
+#~ "LaTeXa\n"
 #~ "  -f, --force             wymuszaj konwersje, nawet je¶li s± nieodwracalne\n"
 #~ "                          (UWAGA: w tej wersji -f zawsze obowi±zuje)\n"
 #~ "  -g, --graphics          przybli¿aj ramki IBMPC za pomoc± znaków ASCII\n"
 #~ "  -h, --header[=NAZWA]    wypisz zestaw NAZWA w postaci kodu C na stdout\n"
-#~ "  -i, --sequence=pliki    u¿ywaj plików po¶rednich do przebiegów sekwencyjnych\n"
+#~ "  -i, --sequence=pliki    u¿ywaj plików po¶rednich do przebiegów "
+#~ "sekwencyjnych\n"
 
-#~ msgid "\nUsage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n"
-#~ msgstr "\nSk³adnia: %s [OPCJA]... [PRZED]:[PO] [PLIK]...\n"
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Sk³adnia: %s [OPCJA]... [PRZED]:[PO] [PLIK]...\n"
 
 #~ msgid "many to many"
 #~ msgstr "wiele na wiele"
index 16911d5784e1ca489c7113934b7157341037aa07..26c3f87b47b4f459c25cbda262dfe51d268ed9c9 100644 (file)
Binary files a/i18n/pt.mo and b/i18n/pt.mo differ
index a2c674189ecdaa05564d9b7ab49e675bfba7e506..89fcf100edb5d9d853b856237f8b50705b9cb20a 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU recode 3.4.3\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1996-11-25 10:00-0000\n"
 "Last-Translator: Vitor Duarte <vad@di.fct.unl.pt>\n"
 "Language-Team: Portuguese <pt@li.org>\n"
@@ -14,47 +14,40 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid ""
-"UCS2   Mne   Description\n"
-"\n"
-msgstr ""
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr ""
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr ""
 
-#: src/main.c:146
+#: src/main.c:148
 #, fuzzy
 msgid "Ambiguous output"
 msgstr "O formato «%s» é ambiguo"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr ""
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr ""
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr ""
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr ""
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr ""
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -84,17 +77,17 @@ msgstr ""
 "com este programa; se assim não for, escreva para Free Software\n"
 "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, EUA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Para mais informação tente «%s %s».\n"
 
-#: src/main.c:235
+#: src/main.c:237
 msgid ""
 "Free `recode' converts files between various character sets and surfaces.\n"
 msgstr ""
 
-#: src/main.c:239
+#: src/main.c:241
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -103,18 +96,18 @@ msgstr ""
 "\n"
 "Uso: %s [OPÇÃO]... [CHARSET]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
 "for the equivalent short option also.  Similarly for optional arguments.\n"
 msgstr ""
 
-#: src/main.c:248
+#: src/main.c:250
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
 "  -k, --known=PAIRS          restrict charsets according to known PAIRS "
 "list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
@@ -125,7 +118,7 @@ msgid ""
 "      --version              output version information and exit\n"
 msgstr ""
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -137,16 +130,16 @@ msgid ""
 "      --sequence=memory   use memory buffers for sequencing passes\n"
 msgstr ""
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     usar «pipe» para sequenciar os passos\n"
 
-#: src/main.c:278
+#: src/main.c:280
 #, fuzzy
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     o mesmo que -o (neste sistema)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 #, fuzzy
 msgid ""
 "\n"
@@ -170,7 +163,7 @@ msgstr ""
 "  -i, --sequence=files    usar ficheiros intermédios para os passos "
 "sucessivos\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -178,16 +171,13 @@ msgid ""
 msgstr ""
 
 #: src/main.c:302
-#, c-format
 msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr ""
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
 "both being tabular charsets, with PAIRS of the form "
@@ -195,12 +185,12 @@ msgid ""
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 
-#: src/main.c:318
+#: src/main.c:312
 msgid ""
 "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
 "REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
@@ -213,7 +203,7 @@ msgid ""
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -221,7 +211,7 @@ msgid ""
 "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 msgstr ""
 
-#: src/main.c:335
+#: src/main.c:329
 #, fuzzy
 msgid ""
 "\n"
@@ -230,38 +220,45 @@ msgstr ""
 "\n"
 "Reporte os «bugs» para <recode-bugs@gnu.ai.mit.edu>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "A sequência «%s» é ambígua"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Sequência «%s» desconhecida"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Linguagem «%s» ambígua"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Lingua «%s» desconhecida"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "O formato «%s» é ambiguo"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Formato «%s» desconhecido"
+msgid "Format `%s' is unknown"
+msgstr ""
+
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Escrito por Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:622
+#: src/main.c:624
 #, fuzzy
 msgid ""
 "\n"
@@ -270,7 +267,7 @@ msgstr ""
 "\n"
 "Copyright (C) 1990, 1992, 1993, 1994, 1996 Free Software Foundation, Inc.\n"
 
-#: src/main.c:626
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -279,54 +276,60 @@ msgstr ""
 "condições o pode copiar. SEM GARANTIA; nem mesmo de COMERCIABILIDADE ou\n"
 "de UTILIDADE PARA QUALQUER UTILIZAÇÃO.\n"
 
-#: src/main.c:630
-msgid ""
-"\n"
-"Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
+
+#: src/main.c:709 src/main.c:723
+#, c-format
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
 msgstr ""
-"\n"
-"Escrito por Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:775
+#: src/main.c:797
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr ""
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
+msgid "Request `%s' is erroneous"
 msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Convertendo %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " terminado\n"
 
-#: src/main.c:924
+#: src/main.c:954
 #, c-format
-msgid " failed: %s in %s..%s\n"
+msgid " failed: %s in step `%s..%s'\n"
 msgstr ""
 
-#: src/main.c:931
+#: src/main.c:961
 #, c-format
-msgid "%s failed: %s in %s..%s"
+msgid "%s failed: %s in step `%s..%s'"
 msgstr ""
 
-#: src/main.c:954
+#: src/main.c:984
 #, fuzzy, c-format
-msgid "%s in %s..%s"
+msgid "%s in step `%s..%s'"
 msgstr "%spara a sequência %s.%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "O conjunto de caracteres %s já existe e não é %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, fuzzy, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr ""
@@ -334,25 +337,24 @@ msgstr ""
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, fuzzy, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "dec  oct hex    ch   %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, fuzzy, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Desculpe, não existem nomes `RFC 1345' para «%s»"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr ""
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr ""
@@ -362,12 +364,12 @@ msgid "Virtual memory exhausted"
 msgstr ""
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Ambos os códigos %3d e %3d são convertidos em %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Nenhum carácter é convertido em %3d"
 
@@ -389,100 +391,124 @@ msgstr "Par n
 msgid "Cannot complete table from set of known pairs"
 msgstr "Não posso completar a tabela a partir do conjunto de pares conhecidos"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "A conversão não necessita de tabela"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Conversão demasiado complexa para uma simples tabela"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, fuzzy, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sTabela de conversão gerada automaticamente por GNU %s %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%spara a sequência %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Nenhuma tabela a imprimir"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "reversível"
 
-#: src/request.c:37
+#: src/request.c:36
 #, fuzzy, c-format
 msgid "%s to %s"
 msgstr "%spara a sequência %s.%s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr ""
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr ""
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 #, fuzzy
 msgid "variable"
 msgstr "reversível"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Impossível*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*simples cópia*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr ""
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr ""
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr ""
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr ""
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr ""
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr ""
 
-#: src/request.c:884
+#: src/request.c:903
 #, fuzzy, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "É impossível passar de %s para %s"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr ""
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "O processo filho terminou com estado 0x%0.2x"
 
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "A sequência «%s» é ambígua"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Sequência «%s» desconhecida"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Linguagem «%s» ambígua"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Lingua «%s» desconhecida"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "O formato «%s» é ambiguo"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Formato «%s» desconhecido"
+
 #~ msgid "Hash stats: %d names using %d buckets out of %d\n"
 #~ msgstr "Estatísticas de dispersão: %d nomes, usando %d de %d posições\n"
 
index b6b31ccea9e3b34ca79f32a33fa24946e9cc82a2..677cc34dd4dd3ea383f8d0ab2e038e9846a714d9 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-06-28 15:16-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -141,17 +141,14 @@ msgid ""
 "FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n"
 msgstr ""
 
-#: src/main.c:304
-#, c-format
+#: src/main.c:302
 msgid ""
-"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
-msgstr ""
-
-#: src/main.c:310
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 
-#: src/main.c:315
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
 "both being tabular charsets, with PAIRS of the form "
@@ -159,12 +156,12 @@ msgid ""
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 
-#: src/main.c:320
+#: src/main.c:312
 msgid ""
 "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr ""
 
-#: src/main.c:323
+#: src/main.c:315
 msgid ""
 "\n"
 "REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
@@ -177,7 +174,7 @@ msgid ""
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 
-#: src/main.c:331
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -185,79 +182,79 @@ msgid ""
 "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 msgstr ""
 
-#: src/main.c:337
+#: src/main.c:329
 msgid ""
 "\n"
 "Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
 msgstr ""
 
-#: src/main.c:433
+#: src/main.c:430
 #, c-format
 msgid "Sequence `%s' is ambiguous"
 msgstr ""
 
-#: src/main.c:437
+#: src/main.c:434
 #, c-format
 msgid "Sequence `%s' is unknown"
 msgstr ""
 
-#: src/main.c:467 src/main.c:525
+#: src/main.c:464 src/main.c:522
 #, c-format
 msgid "Language `%s' is ambiguous"
 msgstr ""
 
 #. -1
-#: src/main.c:471 src/main.c:529
+#: src/main.c:468 src/main.c:526
 #, c-format
 msgid "Language `%s' is unknown"
 msgstr ""
 
-#: src/main.c:563
+#: src/main.c:560
 #, c-format
 msgid "Format `%s' is ambiguous"
 msgstr ""
 
-#: src/main.c:567
+#: src/main.c:564
 #, c-format
 msgid "Format `%s' is unknown"
 msgstr ""
 
-#: src/main.c:624
+#: src/main.c:621
 msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 msgstr ""
 
-#: src/main.c:627
+#: src/main.c:624
 msgid ""
 "\n"
 "Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
 msgstr ""
 
-#: src/main.c:631
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
 
-#: src/main.c:672
+#: src/main.c:669
 #, c-format
 msgid "Symbol `%s' is unknown"
 msgstr ""
 
-#: src/main.c:712 src/main.c:726
+#: src/main.c:709 src/main.c:723
 #, c-format
 msgid "Charset `%s' is unknown or ambiguous"
 msgstr ""
 
-#: src/main.c:757
+#: src/main.c:754
 msgid "Required argument is missing"
 msgstr ""
 
-#: src/main.c:799
+#: src/main.c:797
 #, c-format
 msgid "Syntax is deprecated, please prefer `%s'"
 msgstr ""
 
-#: src/main.c:805
+#: src/main.c:803
 #, c-format
 msgid "Request `%s' is erroneous"
 msgstr ""
@@ -286,12 +283,12 @@ msgstr ""
 msgid "%s in step `%s..%s'"
 msgstr ""
 
-#: src/names.c:341
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr ""
 
-#: src/names.c:837
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr ""
@@ -300,22 +297,22 @@ msgstr ""
 #. expected value for code counter
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:990 src/names.c:1036
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr ""
 
-#: src/names.c:1055
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr ""
 
-#: src/outer.c:124
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr ""
 
-#: src/outer.c:132
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr ""
@@ -352,26 +349,26 @@ msgstr ""
 msgid "Cannot complete table from set of known pairs"
 msgstr ""
 
-#: src/recode.c:490
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr ""
 
-#: src/recode.c:497
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr ""
 
 #. Print the header of the header file.
-#: src/recode.c:529
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr ""
 
-#: src/recode.c:531
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr ""
 
-#: src/recode.c:737
+#: src/recode.c:744
 msgid "No table to print"
 msgstr ""
 
@@ -445,7 +442,7 @@ msgstr ""
 msgid "Child process wait status is 0x%0.2x"
 msgstr ""
 
-#: src/testdump.c:293
+#: src/testdump.c:298
 msgid ""
 "UCS2   Mne   Description\n"
 "\n"
index 8fae35c3d04be74903d3698898dc62d5eb593153..f61bedb8f06a9d299612fdf02bb7b0ae54b5e9bc 100644 (file)
Binary files a/i18n/sl.mo and b/i18n/sl.mo differ
index 010027ac825fede765e661e2e38596b1a9d612f6..1ef2880e023d6e8fa8f84bf54dccbc2a747936e6 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-12-21 17:01 MET\n"
 "Last-Translator: Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>\n"
 "Language-Team: Slovenian <sl@li.org>\n"
@@ -15,46 +15,41 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Opis\n\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Brez napak"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Nekanonièen vhod"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Dvoumen izhod"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Neprevedljiv vhod"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Neveljaven vhod"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Te¾ave v sistemu"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Zloraba pretvorne knji¾nice"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Notranja napaki pri pretvorbi"
 
 # POZOR!!!
 # Tole bi nujno moral dobiti v roke pravnik...
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -72,9 +67,11 @@ msgid ""
 msgstr ""
 "Ta program je prosta programska oprema; lahko ga redistribuirate in/ali\n"
 "spreminjate po pogojih, doloèenih v ,,GNU General Public License``, izdani\n"
-"pri Free Software Foundation; 2. izdaja (ali novej¹a, èe razpolagate z njo).\n"
+"pri Free Software Foundation; 2. izdaja (ali novej¹a, èe razpolagate z "
+"njo).\n"
 "\n"
-"Ta program se distribuira v upanju, da je uporaben, vendar BREZ KAKR©NEGAKOLI\n"
+"Ta program se distribuira v upanju, da je uporaben, vendar BREZ "
+"KAKR©NEGAKOLI\n"
 "JAMSTVA; vkljuèno z impliciranim jamstvom prodajnosti ali uporabnosti za\n"
 "izbrani namen.  Za podrobnosti si oglejte ,,GNU General Public License``.\n"
 "\n"
@@ -82,21 +79,28 @@ msgstr ""
 "èe ni, pi¹ite Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
 "Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Poskusite ,%s %s` za dodatne informacije.\n"
 
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
-msgstr "Prosti ,recode` pretvarja datoteke med razliènimi kodnimi nabori in preèrkovanji.\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
+msgstr ""
+"Prosti ,recode` pretvarja datoteke med razliènimi kodnimi nabori in "
+"preèrkovanji.\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nUporaba: %s [IZBIRA]... [ [NABOR] | ZAHTEVA [DATOTEKA]... ]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Uporaba: %s [IZBIRA]... [ [NABOR] | ZAHTEVA [DATOTEKA]... ]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -106,12 +110,14 @@ msgstr ""
 "Èe je pri dolgi obliki izbire argument naveden kot obvezen, velja\n"
 "obveza tudi za kratko obliko. Podobno tudi za neobvezne argumente.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -122,15 +128,18 @@ msgstr ""
 "\n"
 "Seznami:\n"
 "  -l, --list[=OBLIKA]        izpi¹i en ali vse kodirane nabore znakov\n"
-"  -k, --known=PARI           izpi¹i nabore, ki ustrezajo podanim PAROM pretvorb\n"
-"  -h, --header[=[JEZIK/]IME] izpi¹i pretvorno tabelo z danim IMENOM v prog. JEZIKU\n"
+"  -k, --known=PARI           izpi¹i nabore, ki ustrezajo podanim PAROM "
+"pretvorb\n"
+"  -h, --header[=[JEZIK/]IME] izpi¹i pretvorno tabelo z danim IMENOM v prog. "
+"JEZIKU\n"
 "  -F, --freeze-tables        izpi¹i modul v C z vsemi pretvornimi tabelami\n"
-"  -T, --find-subsets         poroèaj o vseh naborih, ki so podmno¾ica drugih\n"
+"  -T, --find-subsets         poroèaj o vseh naborih, ki so podmno¾ica "
+"drugih\n"
 "  -C, --copyright            izpi¹i dovoljenje za uporabo in raz¹irjanje\n"
 "      --help                 ta navodila\n"
 "      --version              razlièica programa\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -143,7 +152,8 @@ msgid ""
 msgstr ""
 "\n"
 "Naèini dela:\n"
-"  -v, --verbose           med potekom razlagaj korake in komentiraj napredek\n"
+"  -v, --verbose           med potekom razlagaj korake in komentiraj "
+"napredek\n"
 "  -q, --quiet, --silent   brez opozoril o neobrnljivih pretvorbah\n"
 "  -f, --force             pretvorbo izvedi, èetudi ni obrnljiva\n"
 "  -t, --touch             pretvorjena datoteka naj nosi datum pretvorbe,\n"
@@ -151,15 +161,15 @@ msgstr ""
 "  -i, --sequence=files    uporabi vmesne datoteke za zaporedne prehode\n"
 "      --sequence=memory   med prehodi hrani besedilo v pomnilniku\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     uporabi cevovode za nizanje prehodov\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     isto kot -i (na tem sistemu)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -172,37 +182,45 @@ msgid ""
 msgstr ""
 "\n"
 "Natanènej¹e nastavljanje:\n"
-"  -s, --strict           uporabi strogo pretvorbo, celo na raèun izgube znakov\n"
-"  -d, --diacritics       pretvori samo pregla¹ene in podobne znake za HTML/LaTeX\n"
-"  -S, --source[=JEZIK]   omeji pretvorbe na nize in komentarje, kot v JEZIKU\n"
-"  -c, --colons           nadomesti dierezo z dvopièjem, ne z dvojnim narekovajem\n"
-"  -g, --graphics         semigrafiène znake s PC pribl. nadomestimo z znaki ASCII\n"
+"  -s, --strict           uporabi strogo pretvorbo, celo na raèun izgube "
+"znakov\n"
+"  -d, --diacritics       pretvori samo pregla¹ene in podobne znake za "
+"HTML/LaTeX\n"
+"  -S, --source[=JEZIK]   omeji pretvorbe na nize in komentarje, kot v "
+"JEZIKU\n"
+"  -c, --colons           nadomesti dierezo z dvopièjem, ne z dvojnim "
+"narekovajem\n"
+"  -g, --graphics         semigrafiène znake s PC pribl. nadomestimo z znaki "
+"ASCII\n"
 "  -x, --ignore=NABOR     pri pretvorbi se izogni navedenemu vmesnemu NABORU\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
 "FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n"
 msgstr ""
 "\n"
-"Izbira -l brez podane OBLIKE ali NABORA izpi¹e seznam vseh znanih kodnih naborov\n"
-"in preèrkovalnih shem. OBLIKA je lahko ,decimal` (deseti¹ka), ,octal` (osmi¹ka),\n"
+"Izbira -l brez podane OBLIKE ali NABORA izpi¹e seznam vseh znanih kodnih "
+"naborov\n"
+"in preèrkovalnih shem. OBLIKA je lahko ,decimal` (deseti¹ka), ,octal` "
+"(osmi¹ka),\n"
 ",hexadecimal` (¹estnajsti¹ka) ali ,full` (polna), ali ena od èrk ,dohf`.\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
-msgstr "Èe ni doloèena spremenljivka DEFAULT_CHARSET, je privzeti NABOR ,%s`.\n"
-
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr "NABOR nima privzete vrednosti; doloèite spremenljivko okolja DEFAULT_CHARSET.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
+msgstr ""
+"Èe ni doloèena spremenljivka DEFAULT_CHARSET, je privzeti NABOR ,%s`.\n"
 
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Pri izbiri -k se izpi¹ejo vsi mo¾ni startni nabori za podani ciljni nabor.\n"
@@ -210,28 +228,34 @@ msgstr ""
 ",,START1:CILJ1,START2:CILJ2...``, kjer so STARTn in CILJn deseti¹ke kode \n"
 "znakov v startnem in ciljnem kodnem naboru.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
 msgstr "JEZIK je lahko ,c`, ,perl` ali ,po`; privzeto je ,c`.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
 "ZAHTEVEK ima obliko PODZAHTEVEK[,PODZAHTEVEK]...; PODZAHTEVEK ima obliko\n"
 "KODIRANJE[,KODIRANJE]...; KODIRANJE ima obliko [NABOR][/[SHEMA]]. ZAHTEVEK\n"
-"ima pogosto obliko PREJ..POTEM, kjer sta PREJ in POTEM kodirana nabora znakov.\n"
+"ima pogosto obliko PREJ..POTEM, kjer sta PREJ in POTEM kodirana nabora "
+"znakov.\n"
 "Izpu¹èeni NABOR pomeni privzetega; izpu¹èena [/SHEMA] pomeni privzeto\n"
-"preèrkovalno shemo za dani NABOR. Po¹evnica / brez sheme pomeni brez preèrkovalne\n"
+"preèrkovalno shemo za dani NABOR. Po¹evnica / brez sheme pomeni brez "
+"preèrkovalne\n"
 "sheme. Podrobnosti so v priroèniku.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -241,125 +265,151 @@ msgstr ""
 "\n"
 "Èe nista podana niti -i niti -p, se uporabi -p, kadar ni podana DATOTEKA, \n"
 "sicer pa -i. Pretvorba vsake DATOTEKE se zapi¹e prek izvorne razlièice. Èe\n"
-"DATOTEKA ni podana, recode deluje kot filter med standardnim vhodom in izhodom.\n"
+"DATOTEKA ni podana, recode deluje kot filter med standardnim vhodom in "
+"izhodom.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
-msgstr "\nSporoèila o napakah javite na <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Sporoèila o napakah javite na <recode-bugs@iro.umontreal.ca>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Dvoumno zaporedje ,%s`"
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Neznano zaporedje ,%s`"
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Dvoumen jezik ,%s`"
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Neznan jezik ,%s`"
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Dvoumen format ,%s`"
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Neznan format ,%s`"
+msgid "Format `%s' is unknown"
+msgstr ""
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Avtor Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:626
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
-"To je prost program; pogoji, pod katerimi ga lahko uporabljate, razmno¾ujete\n"
+"To je prost program; pogoji, pod katerimi ga lahko uporabljate, "
+"razmno¾ujete\n"
 "in raz¹irjate so navedeni v izvorni kodi. Za program ni NOBENEGA jamstva,\n"
 "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nAvtor Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Neodobravana skladnja: prosimo, uporabljajte ,%s`"
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Napaèen zahtevek ,%s`"
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Pretvarjamo %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " opravljeno\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " neuspe¹no: %s v %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s neuspe¹no: %s v %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s v %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Nabor %s ¾e obstaja in ni %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
 msgstr "Izpis ,%s' ni mogoè, imen za ta nabor ni na voljo"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "des  osm Hex   UCS2  Mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Imena za ,%s` niso na voljo"
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Veè kot ena preèrkovalna shema uvedena za ,%s`"
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Veè kot ena preèrkovalna shema preklicana za ,%s`"
@@ -369,12 +419,12 @@ msgid "Virtual memory exhausted"
 msgstr "Virtualni pomnilnik porabljen"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Kodi %3d in %3d se obe preslikata v %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Noben znak se ne preslika v %3d"
 
@@ -396,99 +446,133 @@ msgstr "Par 
 msgid "Cannot complete table from set of known pairs"
 msgstr "Iz mno¾ice znanih parov ni mogoèe dokonèati tabele"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Pretvorba je trivialna, nevredna tabele"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Pretvorba je prezapletena za tabelo"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sPretvorna tabela mehanièno generirana s prostim ,%s` %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sza zaporedje %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Tabele ni"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "obrnljivo"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s v %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "bajt"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "UCS2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "spremenljivo"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Nedosegljivo*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*zgolj prepis*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Virtualni pomnilnik porabljen!"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Inicializacija koraka neuspe¹na"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Inicializacija koraka neuspe¹na (nepredelane izbire)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Zahtevek: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Skrèeno v: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Neprepoznano ime preèrkovalne sheme ,%s`"
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Pretvorba iz ,%s` v ,%s` ni izvedljiva"
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "V zahtevku prièakujemo ,..`"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Èakalni status procesa potomca je 0x%0.2x"
 
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   Opis\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "NABOR nima privzete vrednosti; doloèite spremenljivko okolja "
+#~ "DEFAULT_CHARSET.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Dvoumno zaporedje ,%s`"
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Neznano zaporedje ,%s`"
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Dvoumen jezik ,%s`"
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Neznan jezik ,%s`"
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Dvoumen format ,%s`"
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Neznan format ,%s`"
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Napaèen zahtevek ,%s`"
+
 #~ msgid "   Each input char transforms into an output string,\n"
 #~ msgstr "   Vsak vhodni znak se preslika v niz znakov,\n"
 
@@ -529,7 +613,8 @@ msgstr "
 #~ msgstr "Za zdaj je izbira -s ignorirana, kadar je izbrano -g"
 
 #~ msgid "Hash stats: %d names using %d buckets out of %d\n"
-#~ msgstr "Statistika za razpr¹itveno tabelo: %d imen porabilo %d od %d ko¹ev\n"
+#~ msgstr ""
+#~ "Statistika za razpr¹itveno tabelo: %d imen porabilo %d od %d ko¹ev\n"
 
 #~ msgid "Internal error - strategy undecided"
 #~ msgstr "Interna napaka - neodloèen o strategiji"
@@ -564,7 +649,8 @@ msgstr "
 #~ msgid "  -o, --sequence=popen    same as -i (on this system)\n"
 #~ msgstr "  -o, --sequence=popen    isto kot -I (na tem sistemu)\n"
 
-#~ msgid "  -o, --sequence=popen    use popen machinery for sequencing passes\n"
+#~ msgid ""
+#~ "  -o, --sequence=popen    use popen machinery for sequencing passes\n"
 #~ msgstr "  -o, --sequence=popen    uporabi mehanizem ,popen'\n"
 
 #~ msgid ""
@@ -579,19 +665,22 @@ msgstr "
 #~ "FILE is specified, then act as a filter and recode stdin to stdout.\n"
 #~ msgstr ""
 #~ "  -q, --quiet, --silent   brez sporoèil o neobrnljivih pretvorbah\n"
-#~ "  -s, --strict            striktna pretvorba, tudi na ¹kodo izgubljenih znakov\n"
-#~ "  -t, --touch             konèna datoteka naj nosi datum pretvorbe, ne nastanka\n"
+#~ "  -s, --strict            striktna pretvorba, tudi na ¹kodo izgubljenih "
+#~ "znakov\n"
+#~ "  -t, --touch             konèna datoteka naj nosi datum pretvorbe, ne "
+#~ "nastanka\n"
 #~ "  -v, --verbose           z razlago poteka pretvorbe\n"
 #~ "  -x, --ignore=NABOR      izpusti NABOR pri izbiri poti pretvorbe\n"
 #~ "\n"
-#~ "Èe ni podan -i, -o, ali -p, se privzame -p, kadar ni podana DATOTEKA, sicer -i.\n"
+#~ "Èe ni podan -i, -o, ali -p, se privzame -p, kadar ni podana DATOTEKA, sicer "
+#~ "-i.\n"
 #~ "Vsaka DATOTEKA se pretvori èez samo sebe in unièi izvirnik.  Èe DATOTEKA\n"
 #~ "ni podana, deluje kot filter in pretvarja podatke z vhoda na izhod.\n"
 
 #~ msgid "BEFORE and AFTER both default to `%s' when needed.\n"
 #~ msgstr "Èe nabor PREJ ali POTEM ni podan, se nadomesti z ,%s'\n"
 
-#~ # POZOR
+# POZOR
 #~ msgid ""
 #~ "Mandatory or optional arguments to long options are mandatory or optional\n"
 #~ "for short options too.\n"
@@ -606,10 +695,12 @@ msgstr "
 #~ "FORMAT is a word among decimal, octal, hexadecimal or full (which may be\n"
 #~ "abbreviated to one of `dohf'), it defaults to just the canonical name.\n"
 #~ "With -k, possible before charsets are listed for the given after CHARSET,\n"
-#~ "both being RFC1345 charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...\n"
+#~ "both being RFC1345 charsets, with PAIRS of the form "
+#~ "`BEF1:AFT1,BEF2:AFT2,...\n"
 #~ "and BEFs and AFTs being codes.  All codes are given as decimal numbers.\n"
 #~ msgstr ""
-#~ "Argumenti, ki so obvezni za dolge oblike izbir so obvezni tudi za kratke oblike,\n"
+#~ "Argumenti, ki so obvezni za dolge oblike izbir so obvezni tudi za kratke "
+#~ "oblike,\n"
 #~ "in enako velja za neobvezne argumente.\n"
 #~ "\n"
 #~ "  -C, --copyright       obvestilo avtorskih pravicah\n"
@@ -619,14 +710,18 @@ msgstr "
 #~ "      --help            ta navodila\n"
 #~ "      --version         verzija programa\n"
 #~ "\n"
-#~ "FORMAT izpisa je eden od naslednjih: decimal, octal, hexadecimal ali full (mo¾na\n"
-#~ "je okraj¹ava na prvo èrko: dohf), privzeta izbira je samo kanonièno ime nabora.\n"
+#~ "FORMAT izpisa je eden od naslednjih: decimal, octal, hexadecimal ali full "
+#~ "(mo¾na\n"
+#~ "je okraj¹ava na prvo èrko: dohf), privzeta izbira je samo kanonièno ime "
+#~ "nabora.\n"
 #~ "With -k, possible before charsets are listed for the given after CHARSET,\n"
-#~ "both being RFC1345 charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...\n"
+#~ "both being RFC1345 charsets, with PAIRS of the form "
+#~ "`BEF1:AFT1,BEF2:AFT2,...\n"
 #~ "and BEFs and AFTs being codes.  All codes are given as decimal numbers.\n"
 
 #~ msgid ""
-#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the Texinfo\n"
+#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the "
+#~ "Texinfo\n"
 #~ "documentation.  My preferred charsets are (each user has preferences):\n"
 #~ "\n"
 #~ "  ascii-bs   ASCII (7-bit), using backspace to apply diacritics\n"
@@ -635,8 +730,10 @@ msgstr "
 #~ "  latin1     ISO Latin-1 8-bit extension of ASCII\n"
 #~ "  texte      Easy French convention for transmitting email messages\n"
 #~ msgstr ""
-#~ "Izbira -l brez podanih FORMAT ali NABOR dá seznam vseh naborov, oglejte si ¹e\n"
-#~ "dokumentacijo v Texinfo.  Moji priljubljeni nabori (vsak uporabnik ima svoje):\n"
+#~ "Izbira -l brez podanih FORMAT ali NABOR dá seznam vseh naborov, oglejte si "
+#~ "¹e\n"
+#~ "dokumentacijo v Texinfo.  Moji priljubljeni nabori (vsak uporabnik ima "
+#~ "svoje):\n"
 #~ "\n"
 #~ "  ascii-bs   7-bitni ASCII, z uporabo Backspace za tisk diakritiènih znakov\n"
 #~ "  ibmpc      8-bitni nabor IBM-PC, zakljuèek vrstice CR LF\n"
@@ -663,8 +760,12 @@ msgstr "
 #~ "  -h, --header[=NAME]     write C code with table NAME on stdout, then exit\n"
 #~ "  -i, --sequence=files    use intermediate files for sequencing passes\n"
 
-#~ msgid "\nUsage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n"
-#~ msgstr "\nUporaba: %s [IZBIRA]... [PREJ]:[POTEM] [DATOTEKA]...\n"
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Uporaba: %s [IZBIRA]... [PREJ]:[POTEM] [DATOTEKA]...\n"
 
 #~ msgid "many to many"
 #~ msgstr "veè v veè"
index 92992f84c4ecca89ffcc55b591f13c54f9f0e9f6..294f4880745c6b5413a6e67259ef78fb6b37e964 100644 (file)
Binary files a/i18n/sv.mo and b/i18n/sv.mo differ
index 7392c43231dd10fd4ac2126bd8ed105cce41b4be..c27ee0aa819cf64880f2675c78a3e2a64bcabe36 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: recode 3.5\n"
-"POT-Creation-Date: 1999-05-18 08:46-0400\n"
+"POT-Creation-Date: 2001-01-02 22:35+0100\n"
 "PO-Revision-Date: 1999-10-16 13:42 +02:00\n"
 "Last-Translator: Jan Djärv <Jan.Djarv@mbox200.swipnet.se>\n"
 "Language-Team: Swedish <sv@li.org>\n"
@@ -14,44 +14,39 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#. Dump all characters.
-#: src/debug.c:287
-msgid "UCS2   Mne   Description\n\n"
-msgstr "UCS2   Mne   Beskrivning\n\n"
-
-#: src/main.c:140
+#: src/main.c:142
 msgid "No error"
 msgstr "Inget fel"
 
-#: src/main.c:143
+#: src/main.c:145
 msgid "Non canonical input"
 msgstr "Indata ej kanonisk"
 
-#: src/main.c:146
+#: src/main.c:148
 msgid "Ambiguous output"
 msgstr "Tvetydig utdata"
 
-#: src/main.c:149
+#: src/main.c:151
 msgid "Untranslatable input"
 msgstr "Oöversättbar indata"
 
-#: src/main.c:152
+#: src/main.c:154
 msgid "Invalid input"
 msgstr "Felaktig indata"
 
-#: src/main.c:155
+#: src/main.c:157
 msgid "System detected problem"
 msgstr "Systemproblem upptäcktes"
 
-#: src/main.c:158
+#: src/main.c:160
 msgid "Misuse of recoding library"
 msgstr "Felaktig användning av omkodningsbibliotek"
 
-#: src/main.c:161
+#: src/main.c:163
 msgid "Internal recoding bug"
 msgstr "Internt omkodningsfel"
 
-#: src/main.c:206
+#: src/main.c:208
 msgid ""
 "This program is free software; you can redistribute it and/or modify\n"
 "it under the terms of the GNU General Public License as published by\n"
@@ -71,7 +66,8 @@ msgstr ""
 "informativt syfte. För alla juridiska tolkningar gäller den engelska\n"
 "originaltexten.\n"
 "\n"
-"Detta program är fri programvara.  Du kan distribuera den och/eller modifiera\n"
+"Detta program är fri programvara.  Du kan distribuera den och/eller "
+"modifiera\n"
 "den under villkoren i GNU General Public License, publicerad av\n"
 "Free Software Foundation, antingen version 2 eller (om du så vill)\n"
 "någon senare version.\n"
@@ -82,24 +78,31 @@ msgstr ""
 "Public License för ytterligare information.\n"
 "\n"
 "Du bör ha fått en kopia av GNU General Public License\n"
-"tillsammans med detta program. Om inte, skriv till Free Software Foundation,\n"
+"tillsammans med detta program. Om inte, skriv till Free Software "
+"Foundation,\n"
 "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
 
-#: src/main.c:231
+#: src/main.c:233
 #, c-format
 msgid "Try `%s %s' for more information.\n"
 msgstr "Försök med \"%s %s\" för mer information\n"
 
-#: src/main.c:235
-msgid "Free `recode' converts files between various character sets and surfaces.\n"
-msgstr "Fria \"recode\" konverterar filer mellan olika teckenuppsättningar och ytor\n"
+#: src/main.c:237
+msgid ""
+"Free `recode' converts files between various character sets and surfaces.\n"
+msgstr ""
+"Fria \"recode\" konverterar filer mellan olika teckenuppsättningar och ytor\n"
 
-#: src/main.c:239
+#: src/main.c:241
 #, c-format
-msgid "\nUsage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
-msgstr "\nAnvändning: %s [FLAGGA]... [ [TECKENUPPSÄTTNING] | BEGÄRAN [FIL]...]\n"
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n"
+msgstr ""
+"\n"
+"Användning: %s [FLAGGA]... [ [TECKENUPPSÄTTNING] | BEGÄRAN [FIL]...]\n"
 
-#: src/main.c:242
+#: src/main.c:244
 msgid ""
 "\n"
 "If a long option shows an argument as mandatory, then it is mandatory\n"
@@ -107,14 +110,17 @@ msgid ""
 msgstr ""
 "\n"
 "Om en lång flagga har ett obligatoriskt argument så är argumentet även\n"
-"obligatoriskt för motsvarade korta flagga.  Motsvarande för valfria argument.\n"
+"obligatoriskt för motsvarade korta flagga.  Motsvarande för valfria "
+"argument.\n"
 
-#: src/main.c:248
+#: src/main.c:250
+#, fuzzy
 msgid ""
 "\n"
 "Listings:\n"
-"  -l, --list[=FORMAT]        list one or all known charsets\n"
-"  -k, --known=PAIRS          restrict charsets according to known PAIRS list\n"
+"  -l, --list[=FORMAT]        list one or all known charsets and aliases\n"
+"  -k, --known=PAIRS          restrict charsets according to known PAIRS "
+"list\n"
 "  -h, --header[=[LN/]NAME]   write table NAME on stdout using LN, then exit\n"
 "  -F, --freeze-tables        write out a C module holding all tables\n"
 "  -T, --find-subsets         report all charsets being subset of others\n"
@@ -125,17 +131,19 @@ msgstr ""
 "\n"
 "Listningar:\n"
 "  -l, --list[=FORMAT]        visa en eller alla kända teckenuppsättningar\n"
-"  -k, --known=PAR            begränsa teckenuppsättningar till de i PAR listan\n"
+"  -k, --known=PAR            begränsa teckenuppsättningar till de i PAR "
+"listan\n"
 "  -h, --header[=[LN/]NAMN]   skriv tabell NAMN för LN till standard ut\n"
 "                             och avsluta.\n"
 "  -F, --freeze-tables        skriv ut en C modul med alla tabeller\n"
 "  -T, --find-subsets         skriv ut teckenuppsättningar som är delmängder\n"
 "                             av andra\n"
-"  -C, --copyright            visa copyrightinformation och kopieringsvillkor\n"
+"  -C, --copyright            visa copyrightinformation och "
+"kopieringsvillkor\n"
 "      --help                 visa denna hjälptext och avsluta\n"
 "      --version              visa versionsinformation och avsluta\n"
 
-#: src/main.c:261
+#: src/main.c:263
 msgid ""
 "\n"
 "Operation modes:\n"
@@ -149,21 +157,23 @@ msgstr ""
 "\n"
 "Exekveringsalternativ:\n"
 "  -v, --verbose           förklara delsteg och rapportera framsteg\n"
-"  -q, --quiet, --silent   undertryck meddelanden om irreversibla omkodningar\n"
+"  -q, --quiet, --silent   undertryck meddelanden om irreversibla "
+"omkodningar\n"
 "  -f, --force             gör omkodning även när den är irreversibel\n"
-"  -t, --touch             gör \"touch\" på filer som omkodas över sig själva\n"
+"  -t, --touch             gör \"touch\" på filer som omkodas över sig "
+"själva\n"
 "  -i, --sequence=files    använd temporärfiler mellan delsteg\n"
 "      --sequence=memory   använd minnesbuffertar mellan delsteg\n"
 
-#: src/main.c:273
+#: src/main.c:275
 msgid "  -p, --sequence=pipe     use pipe machinery for sequencing passes\n"
 msgstr "  -p, --sequence=pipe     använd rör mellan delsteg\n"
 
-#: src/main.c:278
+#: src/main.c:280
 msgid "  -p, --sequence=pipe     same as -i (on this system)\n"
 msgstr "  -p, --sequence=pipe     samma sak som -i (på detta system)\n"
 
-#: src/main.c:283
+#: src/main.c:285
 msgid ""
 "\n"
 "Fine tuning:\n"
@@ -186,7 +196,7 @@ msgstr ""
 "  -x, --ignore=TECKENUPPSÄTTNING\n"
 "                         ignorera TECKENUPPSÄTTNING när omkodningsväg väljs\n"
 
-#: src/main.c:294
+#: src/main.c:296
 msgid ""
 "\n"
 "Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n"
@@ -194,24 +204,25 @@ msgid ""
 msgstr ""
 "\n"
 "Flagga -l utan FORMAT och TECKENUPPSÄTTNING visar alla tillgängliga\n"
-"teckenuppsättningar och ytor.  FORMAT är \"decimal\", \"octal\", \"hexadecimal\"\n"
+"teckenuppsättningar och ytor.  FORMAT är \"decimal\", \"octal\", "
+"\"hexadecimal\"\n"
 "eller \"full\" (eller en av \"dohf\").\n"
 
 #: src/main.c:302
-#, c-format
-msgid "Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n"
+#, fuzzy
+msgid ""
+"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the "
+"locale\n"
+"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n"
 msgstr ""
 "Om miljövariabeln DEFAULT_CHARSET inte är satt blir standardvärdet för\n"
 "TECKENUPPSÄTTNING \"%s\"\n"
 
-#: src/main.c:308
-msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
-msgstr "TECKENUPPSÄTTNING har inget standardvärde, sätt miljövariabeln DEFAULT_CHARSET.\n"
-
-#: src/main.c:313
+#: src/main.c:307
 msgid ""
 "With -k, possible before charsets are listed for the given after CHARSET,\n"
-"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n"
+"both being tabular charsets, with PAIRS of the form "
+"`BEF1:AFT1,BEF2:AFT2,...'\n"
 "and BEFs and AFTs being codes are given as decimal numbers.\n"
 msgstr ""
 "Med -k, möjliga startuppsättningar visas för den givna slutuppsättningen,\n"
@@ -219,28 +230,35 @@ msgstr ""
 "\"START1:SLUT1,START2:SLUT2,...\" och START... och SLUT... är koder\n"
 "som anges med decimala tal.\n"
 
-#: src/main.c:318
-msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
-msgstr "LN är ett språk, det kan vara \"c\", \"perl\" eller \"po\"; \"c\" är standardvärde.\n"
+#: src/main.c:312
+msgid ""
+"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n"
+msgstr ""
+"LN är ett språk, det kan vara \"c\", \"perl\" eller \"po\"; \"c\" är "
+"standardvärde.\n"
 
-#: src/main.c:321
+#: src/main.c:315
 msgid ""
 "\n"
-"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n"
-"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n"
+"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is "
+"ENCODING[..ENCODING]...\n"
+"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like "
+"BEFORE..AFTER,\n"
 "with BEFORE and AFTER being charsets.  An omitted CHARSET implies the usual\n"
-"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n"
+"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a "
+"/\n"
 "with an empty surface name means no surfaces at all.  See the manual.\n"
 msgstr ""
 "\n"
 "BEGÄRAN är DELBEGÄRAN[,DELBEGÄRAN]..., DELBEGÄRAN är KODNING[..KODNING]...\n"
-"KODNING är [TECKENUPPSÄTTNING][/[YTA]].... BEGÄRAN ser ofta ut som START..SLUT,\n"
+"KODNING är [TECKENUPPSÄTTNING][/[YTA]].... BEGÄRAN ser ofta ut som "
+"START..SLUT,\n"
 "där START och SLUT är teckenuppsättningar.  Ett utelämnat TECKENUPPSÄTTNING\n"
 "innebär den normala teckenuppsättningen,\n"
 "en utelämnad [/YTA]... innebär den normala ytan för TECKENUPPSÄTTNING.\n"
 "Ett / utan ytnamn innebär ingen yta alls.  Se manualen för detaljer.\n"
 
-#: src/main.c:329
+#: src/main.c:323
 msgid ""
 "\n"
 "If none of -i and -p are given, presume -p if no FILE, else -i.\n"
@@ -253,49 +271,62 @@ msgstr ""
 "Om ingen FIL anges så blir beteendet ett filter som omkodar standard in\n"
 "till standard ut.\n"
 
-#: src/main.c:335
-msgid "\nReport bugs to <recode-bugs@iro.umontreal.ca>.\n"
+#: src/main.c:329
+msgid ""
+"\n"
+"Report bugs to <recode-bugs@iro.umontreal.ca>.\n"
 msgstr ""
 "\n"
 "Rapportera fel till <recode-bugs@iro.umontreal.ca>.\n"
 "Rapportera fel på översättningen till <sv@li.org>.\n"
 
-#: src/main.c:431
+#: src/main.c:430
 #, c-format
-msgid "Ambiguous sequence `%s'"
-msgstr "Tvetydig sekvens \"%s\""
+msgid "Sequence `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:435
+#: src/main.c:434
 #, c-format
-msgid "Unknown sequence `%s'"
-msgstr "Okänd sekvens \"%s\""
+msgid "Sequence `%s' is unknown"
+msgstr ""
 
-#: src/main.c:465 src/main.c:523
+#: src/main.c:464 src/main.c:522
 #, c-format
-msgid "Ambiguous language `%s'"
-msgstr "Tvetydigt språk \"%s\""
+msgid "Language `%s' is ambiguous"
+msgstr ""
 
 #. -1
-#: src/main.c:469 src/main.c:527
+#: src/main.c:468 src/main.c:526
 #, c-format
-msgid "Unknown language `%s'"
-msgstr "Okänt språk \"%s\""
+msgid "Language `%s' is unknown"
+msgstr ""
 
-#: src/main.c:561
+#: src/main.c:560
 #, c-format
-msgid "Ambiguous format `%s'"
-msgstr "Tvetydigt format \"%s\""
+msgid "Format `%s' is ambiguous"
+msgstr ""
 
-#: src/main.c:565
+#: src/main.c:564
 #, c-format
-msgid "Unknown format `%s'"
-msgstr "Okänt format \"%s\""
+msgid "Format `%s' is unknown"
+msgstr ""
 
-#: src/main.c:622
-msgid "\nCopyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
-msgstr "\nCopyright © 1990, 92, 93, 94, 96, 97, 1999 Free Software Foundation, Inc.\n"
+#: src/main.c:621
+#, fuzzy
+msgid "Written by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Skriven av François Pinard <pinard@iro.umontreal.ca>.\n"
 
-#: src/main.c:626
+#: src/main.c:624
+msgid ""
+"\n"
+"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright © 1990, 92, 93, 94, 96, 97, 1999 Free Software Foundation, Inc.\n"
+
+#: src/main.c:628
 msgid ""
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -304,75 +335,85 @@ msgstr ""
 "INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT\n"
 "ÄNDAMÅL.\n"
 
-#: src/main.c:630
-msgid "\nWritten by Franc,ois Pinard <pinard@iro.umontreal.ca>.\n"
-msgstr "\nSkriven av François Pinard <pinard@iro.umontreal.ca>.\n"
+#: src/main.c:669
+#, c-format
+msgid "Symbol `%s' is unknown"
+msgstr ""
 
-#: src/main.c:775
+#: src/main.c:709 src/main.c:723
 #, c-format
-msgid "Deprecated syntax, please prefer `%s'"
+msgid "Charset `%s' is unknown or ambiguous"
+msgstr ""
+
+#: src/main.c:754
+msgid "Required argument is missing"
+msgstr ""
+
+#: src/main.c:797
+#, fuzzy, c-format
+msgid "Syntax is deprecated, please prefer `%s'"
 msgstr "Föråldrad syntax, använd hellre \"%s\""
 
-#: src/main.c:781
+#: src/main.c:803
 #, c-format
-msgid "Erroneous request `%s'"
-msgstr "Felaktig begäran \"%s\""
+msgid "Request `%s' is erroneous"
+msgstr ""
 
-#: src/main.c:878
+#: src/main.c:903
 #, c-format
 msgid "Recoding %s..."
 msgstr "Omkodar %s..."
 
-#: src/main.c:888
+#: src/main.c:913
 msgid " done\n"
 msgstr " klart\n"
 
-#: src/main.c:924
-#, c-format
-msgid " failed: %s in %s..%s\n"
+#: src/main.c:954
+#, fuzzy, c-format
+msgid " failed: %s in step `%s..%s'\n"
 msgstr " misslyckades: %s i %s..%s\n"
 
-#: src/main.c:931
-#, c-format
-msgid "%s failed: %s in %s..%s"
+#: src/main.c:961
+#, fuzzy, c-format
+msgid "%s failed: %s in step `%s..%s'"
 msgstr "%s misslyckades: %s i %s..%s"
 
-#: src/main.c:954
-#, c-format
-msgid "%s in %s..%s"
+#: src/main.c:984
+#, fuzzy, c-format
+msgid "%s in step `%s..%s'"
 msgstr "%s i %s..%s"
 
-#: src/names.c:317
+#: src/names.c:335
 #, c-format
 msgid "Charset %s already exists and is not %s"
 msgstr "Teckenuppsättning %s finns och är inte %s"
 
-#: src/names.c:819
+#: src/names.c:831
 #, c-format
 msgid "Cannot list `%s', no names available for this charset"
-msgstr "Kan inte visa \"%s\", inga namn tillgängliga för denna teckenuppsättning"
+msgstr ""
+"Kan inte visa \"%s\", inga namn tillgängliga för denna teckenuppsättning"
 
 #. code counter
 #. expected value for code counter
-#. UCS-2 translation
 #. insert a while line before printing
 #. Print the long table according to explode data.
-#: src/names.c:974 src/names.c:1020
+#: src/names.c:984 src/names.c:1030
 #, c-format
 msgid "Dec  Oct Hex   UCS2  Mne  %s\n"
 msgstr "dec  okt hex   UCS2  mne  %s\n"
 
-#: src/names.c:1039
+#: src/names.c:1049
 #, c-format
 msgid "Sorry, no names available for `%s'"
 msgstr "Ledsen, men det finns inga namn tillgängliga för \"%s\""
 
-#: src/outer.c:95
+#: src/outer.c:125
 #, c-format
 msgid "Resurfacer set more than once for `%s'"
 msgstr "Ytkodning satt mer än en gång för \"%s\""
 
-#: src/outer.c:102
+#: src/outer.c:133
 #, c-format
 msgid "Unsurfacer set more than once for `%s'"
 msgstr "Ytavkodning satt mer än en gång för \"%s\""
@@ -382,12 +423,12 @@ msgid "Virtual memory exhausted"
 msgstr "Virtuellt minne slut"
 
 #: src/recode.c:155
-#, c-format
+#, c-format, ycp-format
 msgid "Codes %3d and %3d both recode to %3d"
 msgstr "Teckenkoderna %3d och %3d omkodas båda till %3d"
 
 #: src/recode.c:169
-#, c-format
+#, c-format, ycp-format
 msgid "No character recodes to %3d"
 msgstr "Inget tecken omkodas till %3d"
 
@@ -409,95 +450,129 @@ msgstr "Par nr. %d: <%3d, %3d> 
 msgid "Cannot complete table from set of known pairs"
 msgstr "Kan inte göra en tabell från mängden av kända par"
 
-#: src/recode.c:492
+#: src/recode.c:497
 msgid "Identity recoding, not worth a table"
 msgstr "Ingen omkodning behövs, den är inte värd en tabell"
 
-#: src/recode.c:499
+#: src/recode.c:504
 msgid "Recoding is too complex for a mere table"
 msgstr "Omkodning är för komplex för en enkel tabell"
 
 #. Print the header of the header file.
-#: src/recode.c:531
+#: src/recode.c:536
 #, c-format
 msgid "%sConversion table generated mechanically by Free `%s' %s"
 msgstr "%sKonverteringstabell automatgenererad av Fri \"%s\" %s"
 
-#: src/recode.c:533
+#: src/recode.c:538
 #, c-format
 msgid "%sfor sequence %s.%s"
 msgstr "%sför sekvens %s.%s"
 
-#: src/recode.c:724
+#: src/recode.c:744
 msgid "No table to print"
 msgstr "Ingen tabell att skriva ut"
 
-#: src/request.c:35
+#: src/request.c:34
 msgid "reversible"
 msgstr "reversibel"
 
-#: src/request.c:37
+#: src/request.c:36
 #, c-format
 msgid "%s to %s"
 msgstr "%s till %s"
 
-#: src/request.c:38 src/request.c:40
+#: src/request.c:37 src/request.c:39
 msgid "byte"
 msgstr "byte"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "ucs2"
 msgstr "usc2"
 
-#: src/request.c:39 src/request.c:41
+#: src/request.c:38 src/request.c:40
 msgid "variable"
 msgstr "variabel"
 
-#: src/request.c:112
+#: src/request.c:111
 msgid "*Unachievable*"
 msgstr "*Omöjligt*"
 
-#: src/request.c:114
+#: src/request.c:113
 msgid "*mere copy*"
 msgstr "*endast kopiering*"
 
-#: src/request.c:244
+#: src/request.c:246
 msgid "Virtual memory exhausted!"
 msgstr "Virtuellt minne slut"
 
-#: src/request.c:263
+#: src/request.c:265
 msgid "Step initialisation failed"
 msgstr "Steginitiering misslyckades"
 
-#: src/request.c:270
+#: src/request.c:272
 msgid "Step initialisation failed (unprocessed options)"
 msgstr "Steginitiering misslyckades (obearbetade flaggor)"
 
-#: src/request.c:566
+#: src/request.c:568
 #, c-format
 msgid "Request: %s\n"
 msgstr "Begäran: %s\n"
 
-#: src/request.c:702
+#: src/request.c:720
 #, c-format
 msgid "Shrunk to: %s\n"
 msgstr "Krympte till: %s\n"
 
-#: src/request.c:806 src/request.c:912
+#: src/request.c:823 src/request.c:932
 #, c-format
 msgid "Unrecognised surface name `%s'"
 msgstr "Okänt ytnamn: \"%s\""
 
-#: src/request.c:884
+#: src/request.c:903
 #, c-format
 msgid "No way to recode from `%s' to `%s'"
 msgstr "Omöjligt koda om från \"%s\" till \"%s\""
 
-#: src/request.c:992
+#: src/request.c:1013
 msgid "Expecting `..' in request"
 msgstr "Förväntar \"..\" i begäran"
 
-#: src/task.c:751 src/task.c:915
+#: src/task.c:826 src/task.c:1002
 #, c-format
 msgid "Child process wait status is 0x%0.2x"
 msgstr "Barnprocess slutstatus är 0x%0.2x"
+
+#: src/testdump.c:298
+msgid ""
+"UCS2   Mne   Description\n"
+"\n"
+msgstr ""
+"UCS2   Mne   Beskrivning\n"
+"\n"
+
+#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n"
+#~ msgstr ""
+#~ "TECKENUPPSÄTTNING har inget standardvärde, sätt miljövariabeln "
+#~ "DEFAULT_CHARSET.\n"
+
+#~ msgid "Ambiguous sequence `%s'"
+#~ msgstr "Tvetydig sekvens \"%s\""
+
+#~ msgid "Unknown sequence `%s'"
+#~ msgstr "Okänd sekvens \"%s\""
+
+#~ msgid "Ambiguous language `%s'"
+#~ msgstr "Tvetydigt språk \"%s\""
+
+#~ msgid "Unknown language `%s'"
+#~ msgstr "Okänt språk \"%s\""
+
+#~ msgid "Ambiguous format `%s'"
+#~ msgstr "Tvetydigt format \"%s\""
+
+#~ msgid "Unknown format `%s'"
+#~ msgstr "Okänt format \"%s\""
+
+#~ msgid "Erroneous request `%s'"
+#~ msgstr "Felaktig begäran \"%s\""
index a615986d525aee099f9129289f113e7f4dec3072..97f495a493afe949cc2c3b223429cf2e2ea10c81 100644 (file)
@@ -1,3 +1,14 @@
+2000-10-24  Bruno Haible  <haible@clisp.cons.org>
+
+       * xmalloc.c, xalloc.h: Move to src/.
+       * Makefile.am (noinst_HEADERS): Remove xalloc.h.
+       (libreco_a_SOURCES): Remove xmalloc.c.
+       Reported by Tomasz Kłoczko <kloczek@wun.zie.pg.gda.pl>.
+
+2000-08-30  Bruno Haible   <haible@clisp.cons.org>
+
+       * gettext.c (_nl_unload_domain): Enclose declaration in #ifdef _LIBC.
+
 1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am (INCLUDES): Do not use ../intl.
index 63dbbf3d1c063513461e38fea61c1cc7d996a65e..237fe7295f634b488b21aa498f61126359fe8c12 100644 (file)
@@ -20,8 +20,8 @@
 AUTOMAKE_OPTIONS = gnits
 
 noinst_LIBRARIES = libreco.a
-noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xalloc.h xstring.h
-libreco_a_SOURCES = error.c getopt.c getopt1.c xmalloc.c xstrdup.c
+noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xstring.h
+libreco_a_SOURCES = error.c getopt.c getopt1.c xstrdup.c
 
 EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c
 
index 4ecf2dce94f77a9bc1c210d0daccf1bd66df9ccd..b79fd4e11ff10c95ed7d33f6f14b74156705c106 100644 (file)
@@ -88,6 +88,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -106,8 +107,8 @@ VERSION = @VERSION@
 AUTOMAKE_OPTIONS = gnits
 
 noinst_LIBRARIES = libreco.a
-noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xalloc.h xstring.h
-libreco_a_SOURCES = error.c getopt.c getopt1.c xmalloc.c xstrdup.c
+noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xstring.h
+libreco_a_SOURCES = error.c getopt.c getopt1.c xstrdup.c
 
 EXTRA_DIST = alloca.c gettext.c malloc.c realloc.c strtol.c strtoul.c
 
@@ -127,7 +128,7 @@ CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
 libreco_a_DEPENDENCIES =  @ALLOCA@ @LIBOBJS@
-libreco_a_OBJECTS =  error.o getopt.o getopt1.o xmalloc.o xstrdup.o
+libreco_a_OBJECTS =  error.o getopt.o getopt1.o xstrdup.o
 AR = ar
 CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -144,9 +145,6 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 TAR = tar
 GZIP_ENV = --best
-DEP_FILES =  .deps/alloca.P .deps/error.P .deps/getopt.P .deps/getopt1.P \
-.deps/gettext.P .deps/strtol.P .deps/strtoul.P .deps/xmalloc.P \
-.deps/xstrdup.P
 SOURCES = $(libreco_a_SOURCES)
 OBJECTS = $(libreco_a_OBJECTS)
 
@@ -154,9 +152,9 @@ all: all-redirect
 .SUFFIXES:
 .SUFFIXES: .S .c .lo .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps lib/Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        cd $(top_builddir) \
          && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -170,6 +168,9 @@ distclean-noinstLIBRARIES:
 
 maintainer-clean-noinstLIBRARIES:
 
+.c.o:
+       $(COMPILE) -c $<
+
 .s.o:
        $(COMPILE) -c $<
 
@@ -186,6 +187,9 @@ distclean-compile:
 
 maintainer-clean-compile:
 
+.c.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
 .s.lo:
        $(LIBTOOL) --mode=compile $(COMPILE) -c $<
 
@@ -241,11 +245,6 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 subdir = lib
 
 distdir: $(DISTFILES)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(top_distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits lib/Makefile
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
@@ -256,38 +255,11 @@ distdir: $(DISTFILES)
            || cp -p $$d/$$file $(distdir)/$$file || :; \
          fi; \
        done
+error.o: error.c ../config.h error.h
+getopt.o: getopt.c ../config.h
+getopt1.o: getopt1.c ../config.h getopt.h
+xstrdup.o: xstrdup.c ../config.h
 
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-       -rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-       @echo '$(COMPILE) -c $<'; \
-       $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-       @-cp .deps/$(*F).pp .deps/$(*F).P; \
-       tr ' ' '\012' < .deps/$(*F).pp \
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm .deps/$(*F).pp
-
-%.lo: %.c
-       @echo '$(LTCOMPILE) -c $<'; \
-       $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-       @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
-         < .deps/$(*F).pp > .deps/$(*F).P; \
-       tr ' ' '\012' < .deps/$(*F).pp \
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm -f .deps/$(*F).pp
 info-am:
 info: info-am
 dvi-am:
@@ -324,27 +296,27 @@ distclean-generic:
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-               mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-libtool mostlyclean-tags \
                mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
 clean-am:  clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \
-               clean-depend clean-generic mostlyclean-am
+               clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-               distclean-libtool distclean-tags distclean-depend \
-               distclean-generic clean-am
+               distclean-libtool distclean-tags distclean-generic \
+               clean-am
        -rm -f libtool
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
                maintainer-clean-compile maintainer-clean-libtool \
-               maintainer-clean-tags maintainer-clean-depend \
-               maintainer-clean-generic distclean-am
+               maintainer-clean-tags maintainer-clean-generic \
+               distclean-am
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
 
@@ -355,14 +327,12 @@ clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile mostlyclean-libtool distclean-libtool \
 clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir \
-mostlyclean-depend distclean-depend clean-depend \
-maintainer-clean-depend info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
 
 
 gettext.o: gettext.c
index e4b6866af0a4df41b7e4e1f0a2cf5a71dd1218b9..3b9c2740fd30b9e887ed89a75e3a0c95bbd079f8 100644 (file)
@@ -811,8 +811,10 @@ static struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
      internal_function;
 static void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
      internal_function;
+#ifdef _LIBC
 static void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
      internal_function;
+#endif
 
 #endif /* gettextP.h  */
 
index c0db7910ba900598a9154f8d295ede900ac1c4a5..d9b2d91794f7b89ff334da6e55298d990789d752 100644 (file)
@@ -1,3 +1,193 @@
+2000-12-18  Bruno Haible  <haible@clisp.cons.org>
+
+       * config.charset: Add support for BeOS.
+
+2000-12-05  Bruno Haible  <haible@clisp.cons.org>
+
+       * Updated to libiconv 1.5.
+       * iconv.h (_LIBICONV_VERSION): Bump version number.
+
+       * iconv.h (_libiconv_version): New declaration.
+
+       * cp950.h (cp950_mbtowc, cp950_wctomb): Change implementation
+         so that it agrees with Microsoft's definition of CP950.
+
+       Add support for locale dependent "char" and "wchar_t" encodings.
+       * loop_unicode.h: New file, extracted from src/iconv.c.
+       * loop_wchar.h: New file.
+       * loops.h: New file. Include loop_unicode.h and loop_wchar.h.
+       * encodings_local.def: New file.
+       * converters.h (conv_struct): Add lfuncs field.
+       * aliases.h: Regenerated.
+       * config.charset: New file, from libiconv-1.5.
+       * red-add.sin, ref-del.sin: New files, from libiconv-1.5.
+       * libcharset.h: New file, from libiconv-1.5.
+       * Makefile.am (noinst_HEADERS): Add loops.h, loop_unicode.h,
+       loop_wchar.h, libcharset.h.
+       (EXTRA_DIST): Add encodings_local.def, config.charset, ref-add.sin,
+       ref-del.sin.
+       (all-local, install-exec-local, uninstall-local, charset.alias): New
+       targets.
+       (charset_alias, charset_tmp, SUFFIXES, CLEANFILES): New variables.
+       (.sin.sed): New rule.
+
+       * converters.h (ucs4_t): New type.
+         (wchar_t): Remove locally defined override.
+         (mbtowc_funcs, wctomb_funcs): Use ucs4_t instead of wchar_t.
+       * armscii_8.h: Use ucs4_t instead of wchar_t.
+       * ascii.h: Likewise.
+       * big5.h: Likewise.
+       * big5hkscs.h: Likewise.
+       * ces_big5.h: Likewise.
+       * ces_gbk.h: Likewise.
+       * cns11643.h: Likewise.
+       * cns11643_1.h: Likewise.
+       * cns11643_2.h: Likewise.
+       * cns11643_3.h: Likewise.
+       * cns11643_inv.h: Likewise.
+       * cp1133.h: Likewise.
+       * cp1250.h: Likewise.
+       * cp1251.h: Likewise.
+       * cp1252.h: Likewise.
+       * cp1253.h: Likewise.
+       * cp1254.h: Likewise.
+       * cp1255.h: Likewise.
+       * cp1256.h: Likewise.
+       * cp1257.h: Likewise.
+       * cp1258.h: Likewise.
+       * cp850.h: Likewise.
+       * cp866.h: Likewise.
+       * cp874.h: Likewise.
+       * cp932.h: Likewise.
+       * cp932ext.h: Likewise.
+       * cp936ext.h: Likewise.
+       * cp949.h: Likewise.
+       * cp950.h: Likewise.
+       * cp950ext.h: Likewise.
+       * euc_cn.h: Likewise.
+       * euc_jp.h: Likewise.
+       * euc_kr.h: Likewise.
+       * euc_tw.h: Likewise.
+       * gb12345.h: Likewise.
+       * gb12345ext.h: Likewise.
+       * gb18030.h: Likewise.
+       * gb18030ext.h: Likewise.
+       * gb18030uni.h: Likewise.
+       * gb2312.h: Likewise.
+       * gbk.h: Likewise.
+       * gbkext1.h: Likewise.
+       * gbkext2.h: Likewise.
+       * gbkext_inv.h: Likewise.
+       * georgian_academy.h: Likewise.
+       * georgian_ps.h: Likewise.
+       * hkscs.h: Likewise.
+       * hp_roman8.h: Likewise.
+       * hz.h: Likewise.
+       * iso2022_cn.h: Likewise.
+       * iso2022_cnext.h: Likewise.
+       * iso2022_jp.h: Likewise.
+       * iso2022_jp1.h: Likewise.
+       * iso2022_jp2.h: Likewise.
+       * iso2022_kr.h: Likewise.
+       * iso646_cn.h: Likewise.
+       * iso646_jp.h: Likewise.
+       * iso8859_1.h: Likewise.
+       * iso8859_10.h: Likewise.
+       * iso8859_13.h: Likewise.
+       * iso8859_14.h: Likewise.
+       * iso8859_15.h: Likewise.
+       * iso8859_16.h: Likewise.
+       * iso8859_2.h: Likewise.
+       * iso8859_3.h: Likewise.
+       * iso8859_4.h: Likewise.
+       * iso8859_5.h: Likewise.
+       * iso8859_6.h: Likewise.
+       * iso8859_7.h: Likewise.
+       * iso8859_8.h: Likewise.
+       * iso8859_9.h: Likewise.
+       * isoir165.h: Likewise.
+       * isoir165ext.h: Likewise.
+       * java.h: Likewise.
+       * jisx0201.h: Likewise.
+       * jisx0208.h: Likewise.
+       * jisx0212.h: Likewise.
+       * johab.h: Likewise.
+       * johab_hangul.h: Likewise.
+       * koi8_r.h: Likewise.
+       * koi8_ru.h: Likewise.
+       * koi8_u.h: Likewise.
+       * ksc5601.h: Likewise.
+       * mac_arabic.h: Likewise.
+       * mac_centraleurope.h: Likewise.
+       * mac_croatian.h: Likewise.
+       * mac_cyrillic.h: Likewise.
+       * mac_greek.h: Likewise.
+       * mac_hebrew.h: Likewise.
+       * mac_iceland.h: Likewise.
+       * mac_roman.h: Likewise.
+       * mac_romania.h: Likewise.
+       * mac_thai.h: Likewise.
+       * mac_turkish.h: Likewise.
+       * mac_ukraine.h: Likewise.
+       * mulelao.h: Likewise.
+       * nextstep.h: Likewise.
+       * sjis.h: Likewise.
+       * tcvn.h: Likewise.
+       * tis620.h: Likewise.
+       * ucs2.h: Likewise.
+       * ucs2be.h: Likewise.
+       * ucs2internal.h: Likewise.
+       * ucs2le.h: Likewise.
+       * ucs2swapped.h: Likewise.
+       * ucs4.h: Likewise.
+       * ucs4be.h: Likewise.
+       * ucs4internal.h: Likewise.
+       * ucs4le.h: Likewise.
+       * ucs4swapped.h: Likewise.
+       * uhc_1.h: Likewise.
+       * uhc_2.h: Likewise.
+       * utf16.h: Likewise.
+       * utf16be.h: Likewise.
+       * utf16le.h: Likewise.
+       * utf7.h: Likewise.
+       * utf8.h: Likewise.
+       * viscii.h: Likewise.
+
+2000-10-24  Bruno Haible  <haible@clisp.cons.org>
+
+       * Updated to libiconv 1.4.
+       * iconv.h (_LIBICONV_VERSION): Bump version number.
+
+       * gb18030ext.h, gb18030uni.h, gb18030.h, hkscs.h, big5hkscs.h: New
+       files.
+       * Makefile.am (noinst_HEADERS): Add them.
+       * converters.h: Include gb18030.h and big5hkscs.h.
+       * encodings.def (GB18030, BIG5HKSCS): New encodings.
+       * aliases.h, flags.h: Update.
+
+       * utf16.h (utf16_wctomb): Reject single surrogates.
+       * utf16be.h (utf16be_wctomb): Likewise.
+       * utf16le.h (utf16le_wctomb): Likewise.
+       * ucs2.h (ucs2_mbtowc, ucs2_wctomb): Likewise.
+       * ucs2be.h (ucs2be_mbtowc, ucs2be_wctomb): Likewise.
+       * ucs2le.h (ucs2le_mbtowc, ucs2le_wctomb): Likewise.
+       * ucs2internal.h (ucs2internal_mbtowc, ucs2internal_wctomb): Likewise.
+       * ucs2swapped.h (ucs2swapped_mbtowc, ucs2swapped_wctomb): Likewise.
+
+2000-09-11  Bruno Haible  <haible@clisp.cons.org>
+
+       * utf7.h (utf7_mbtowc): Fix combining of UTF-16 surrogates.
+
+2000-07-10  François Pinard  <pinard@iro.umontreal.ca>
+
+       * README: New file.
+       Reported by Bruno Haible.
+
+2000-06-29  Bruno Haible  <haible@clisp.cons.org>
+
+       * ucs2internal.h, ucs2swapped.h, ucs4internal.h, ucs4swapped.h:
+       Cosmetic changes to avoid compiler warnings.
+\f
 2000-06-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am (noinst_HEADERS): Distribute iconv.h.
 2000-03-14  Bruno Haible  <haible@ilog.fr>
 
        * Updated to libiconv 0.3, 1.0, 1.1, then 1.2.
-\f
+
 1999-12-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am: New file.
index bab0c2757375454d5a9aa8f2845ee7e9d57ac6a9..c1816a9a7adcb0e6072342bee6314c343f727755 100644 (file)
 
 AUTOMAKE_OPTIONS = gnits
 
-noinst_HEADERS = iconv.h aliases.h armscii_8.h ascii.h big5.h ces_big5.h \
-ces_gbk.h cjk_variants.h cns11643.h cns11643_1.h cns11643_2.h cns11643_3.h \
-cns11643_inv.h converters.h cp1133.h cp1250.h cp1251.h cp1252.h cp1253.h cp1254.h \
-cp1255.h cp1256.h cp1257.h cp1258.h cp850.h cp866.h cp874.h cp932.h \
-cp932ext.h cp936ext.h cp949.h cp950.h cp950ext.h euc_cn.h euc_jp.h euc_kr.h \
-euc_tw.h flags.h gb12345.h gb12345ext.h gb2312.h gbk.h gbkext1.h gbkext2.h \
-gbkext_inv.h georgian_academy.h georgian_ps.h hp_roman8.h hz.h \
-iso2022_cn.h iso2022_cnext.h iso2022_jp.h iso2022_jp1.h iso2022_jp2.h \
-iso2022_kr.h iso646_cn.h iso646_jp.h iso8859_1.h iso8859_10.h iso8859_13.h iso8859_14.h        \
+noinst_HEADERS = iconv.h aliases.h armscii_8.h ascii.h big5.h big5hkscs.h \
+ces_big5.h ces_gbk.h cjk_variants.h cns11643.h cns11643_1.h cns11643_2.h \
+cns11643_3.h cns11643_inv.h converters.h cp1133.h cp1250.h cp1251.h cp1252.h \
+cp1253.h cp1254.h cp1255.h cp1256.h cp1257.h cp1258.h cp850.h cp866.h cp874.h \
+cp932.h cp932ext.h cp936ext.h cp949.h cp950.h cp950ext.h euc_cn.h euc_jp.h \
+euc_kr.h euc_tw.h flags.h gb12345.h gb12345ext.h gb18030.h gb18030ext.h \
+gb18030uni.h gb2312.h gbk.h gbkext1.h gbkext2.h gbkext_inv.h \
+georgian_academy.h georgian_ps.h hkscs.h hp_roman8.h hz.h iso2022_cn.h \
+iso2022_cnext.h iso2022_jp.h iso2022_jp1.h iso2022_jp2.h iso2022_kr.h \
+iso646_cn.h iso646_jp.h iso8859_1.h iso8859_10.h iso8859_13.h iso8859_14.h \
 iso8859_15.h iso8859_16.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h \
-iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h isoir165.h isoir165ext.h java.h jisx0201.h \
-jisx0208.h jisx0212.h johab.h johab_hangul.h koi8_r.h \
-koi8_ru.h koi8_u.h ksc5601.h mac_arabic.h mac_centraleurope.h \
-mac_croatian.h mac_cyrillic.h mac_greek.h mac_hebrew.h mac_iceland.h \
-mac_roman.h mac_romania.h mac_thai.h mac_turkish.h mac_ukraine.h \
-mulelao.h nextstep.h sjis.h tcvn.h tis620.h translit.h \
+iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h isoir165.h isoir165ext.h java.h jisx0201.h jisx0208.h jisx0212.h johab.h johab_hangul.h koi8_r.h \
+koi8_ru.h koi8_u.h ksc5601.h loops.h loop_unicode.h loop_wchar.h mac_arabic.h \
+mac_centraleurope.h mac_croatian.h mac_cyrillic.h mac_greek.h mac_hebrew.h \
+mac_iceland.h mac_roman.h mac_romania.h mac_thai.h mac_turkish.h \
+mac_ukraine.h mulelao.h nextstep.h sjis.h tcvn.h tis620.h translit.h \
 ucs2.h ucs2be.h ucs2le.h ucs2internal.h ucs2swapped.h \
 ucs4.h ucs4be.h ucs4le.h ucs4internal.h ucs4swapped.h \
 uhc_1.h uhc_2.h utf16.h utf16be.h utf16le.h utf7.h \
-utf8.h viscii.h
+utf8.h viscii.h \
+libcharset.h
 
-EXTRA_DIST = encodings.def
+EXTRA_DIST = encodings.def encodings_local.def \
+config.charset ref-add.sin ref-del.sin
+
+all-local: charset.alias ref-add.sed ref-del.sed
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+install-exec-local: all-local
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       if test -f $(charset_alias); then \
+         sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+         $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+         rm -f $(charset_tmp) ; \
+       else \
+         if test @GLIBC21@ = no; then \
+           sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+           $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+           rm -f $(charset_tmp) ; \
+         fi ; \
+       fi
+
+uninstall-local: all-local
+       if test -f $(charset_alias); then \
+         sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+         if grep '^# Packages using this file: $$' $(charset_tmp) \
+             > /dev/null; then \
+           rm -f $(charset_alias); \
+         else \
+           $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+         fi; \
+         rm -f $(charset_tmp); \
+       fi
+
+charset.alias: config.charset
+       $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+       mv t-$@ $@
+
+SUFFIXES = .sed .sin
+.sin.sed:
+       sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t
+       mv $@-t $@
+
+CLEANFILES = charset.alias ref-add.sed ref-del.sed
index 390fda4dbf89d53565302918adba5e369a464e1f..fa1bca912f1c76125d1d06f9724a4a7b6b26bf21 100644 (file)
@@ -88,6 +88,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -105,16 +106,29 @@ VERSION = @VERSION@
 
 AUTOMAKE_OPTIONS = gnits
 
-noinst_HEADERS = iconv.h aliases.h armscii_8.h ascii.h big5.h ces_big5.h ces_gbk.h cjk_variants.h cns11643.h cns11643_1.h cns11643_2.h cns11643_3.h cns11643_inv.h converters.h cp1133.h cp1250.h cp1251.h cp1252.h cp1253.h cp1254.h cp1255.h cp1256.h cp1257.h cp1258.h cp850.h cp866.h cp874.h cp932.h cp932ext.h cp936ext.h cp949.h cp950.h cp950ext.h euc_cn.h euc_jp.h euc_kr.h euc_tw.h flags.h gb12345.h gb12345ext.h gb2312.h gbk.h gbkext1.h gbkext2.h gbkext_inv.h georgian_academy.h georgian_ps.h hp_roman8.h hz.h iso2022_cn.h iso2022_cnext.h iso2022_jp.h iso2022_jp1.h iso2022_jp2.h iso2022_kr.h iso646_cn.h iso646_jp.h iso8859_1.h iso8859_10.h iso8859_13.h iso8859_14.h  iso8859_15.h iso8859_16.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h isoir165.h isoir165ext.h java.h jisx0201.h jisx0208.h jisx0212.h johab.h johab_hangul.h koi8_r.h koi8_ru.h koi8_u.h ksc5601.h mac_arabic.h mac_centraleurope.h mac_croatian.h mac_cyrillic.h mac_greek.h mac_hebrew.h mac_iceland.h mac_roman.h mac_romania.h mac_thai.h mac_turkish.h mac_ukraine.h mulelao.h nextstep.h sjis.h tcvn.h tis620.h translit.h ucs2.h ucs2be.h ucs2le.h ucs2internal.h ucs2swapped.h ucs4.h ucs4be.h ucs4le.h ucs4internal.h ucs4swapped.h uhc_1.h uhc_2.h utf16.h utf16be.h utf16le.h utf7.h utf8.h viscii.h
+noinst_HEADERS = iconv.h aliases.h armscii_8.h ascii.h big5.h big5hkscs.h ces_big5.h ces_gbk.h cjk_variants.h cns11643.h cns11643_1.h cns11643_2.h cns11643_3.h cns11643_inv.h converters.h cp1133.h cp1250.h cp1251.h cp1252.h cp1253.h cp1254.h cp1255.h cp1256.h cp1257.h cp1258.h cp850.h cp866.h cp874.h cp932.h cp932ext.h cp936ext.h cp949.h cp950.h cp950ext.h euc_cn.h euc_jp.h euc_kr.h euc_tw.h flags.h gb12345.h gb12345ext.h gb18030.h gb18030ext.h gb18030uni.h gb2312.h gbk.h gbkext1.h gbkext2.h gbkext_inv.h georgian_academy.h georgian_ps.h hkscs.h hp_roman8.h hz.h iso2022_cn.h iso2022_cnext.h iso2022_jp.h iso2022_jp1.h iso2022_jp2.h iso2022_kr.h iso646_cn.h iso646_jp.h iso8859_1.h iso8859_10.h iso8859_13.h iso8859_14.h iso8859_15.h iso8859_16.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h isoir165.h isoir165ext.h java.h jisx0201.h jisx0208.h jisx0212.h johab.h johab_hangul.h koi8_r.h koi8_ru.h koi8_u.h ksc5601.h loops.h loop_unicode.h loop_wchar.h mac_arabic.h mac_centraleurope.h mac_croatian.h mac_cyrillic.h mac_greek.h mac_hebrew.h mac_iceland.h mac_roman.h mac_romania.h mac_thai.h mac_turkish.h mac_ukraine.h mulelao.h nextstep.h sjis.h tcvn.h tis620.h translit.h ucs2.h ucs2be.h ucs2le.h ucs2internal.h ucs2swapped.h ucs4.h ucs4be.h ucs4le.h ucs4internal.h ucs4swapped.h uhc_1.h uhc_2.h utf16.h utf16be.h utf16le.h utf7.h utf8.h viscii.h libcharset.h
 
 
-EXTRA_DIST = encodings.def
+EXTRA_DIST = encodings.def encodings_local.def config.charset ref-add.sin ref-del.sin
+
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+
+SUFFIXES = .sed .sin
+
+CLEANFILES = charset.alias ref-add.sed ref-del.sed
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
 HEADERS =  $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
@@ -123,6 +137,7 @@ TAR = tar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
+.SUFFIXES: .sed .sin
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
        cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps libiconv/Makefile
 
@@ -183,7 +198,7 @@ check-am: all-am
 check: check-am
 installcheck-am:
 installcheck: installcheck-am
-install-exec-am:
+install-exec-am: install-exec-local
 install-exec: install-exec-am
 
 install-data-am:
@@ -192,9 +207,9 @@ install-data: install-data-am
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-am
-uninstall-am:
+uninstall-am: uninstall-local
 uninstall: uninstall-am
-all-am: Makefile $(HEADERS)
+all-am: Makefile $(HEADERS) all-local
 all-redirect: all-am
 install-strip:
        $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
@@ -204,6 +219,7 @@ installdirs:
 mostlyclean-generic:
 
 clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
        -rm -f Makefile $(CONFIG_CLEAN_FILES)
@@ -232,12 +248,46 @@ maintainer-clean: maintainer-clean-am
 
 .PHONY: tags mostlyclean-tags distclean-tags clean-tags \
 maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
+installcheck-am installcheck install-exec-local install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-local uninstall-am uninstall all-local all-redirect all-am \
+all installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+all-local: charset.alias ref-add.sed ref-del.sed
+install-exec-local: all-local
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       if test -f $(charset_alias); then \
+         sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+         $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+         rm -f $(charset_tmp) ; \
+       else \
+         if test @GLIBC21@ = no; then \
+           sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+           $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+           rm -f $(charset_tmp) ; \
+         fi ; \
+       fi
+
+uninstall-local: all-local
+       if test -f $(charset_alias); then \
+         sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+         if grep '^# Packages using this file: $$' $(charset_tmp) \
+             > /dev/null; then \
+           rm -f $(charset_alias); \
+         else \
+           $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+         fi; \
+         rm -f $(charset_tmp); \
+       fi
+
+charset.alias: config.charset
+       $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+       mv t-$@ $@
+.sin.sed:
+       sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t
+       mv $@-t $@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libiconv/README b/libiconv/README
new file mode 100644 (file)
index 0000000..dc15858
--- /dev/null
@@ -0,0 +1,6 @@
+The files in this directory (except Makefile.am, Makefile.in,ChangeLog
+and this README) are taken from Bruno Haible's libiconv library, homepage
+    http://clisp.cons.org/~haible/packages-libiconv.html
+
+The copyright owner is the Free Software Foundation, Inc., and the
+files are covered by the GNU LGPL.
index 926062719cf3cc8b4ff142a368c9a1a0e28d03fb..f96c3eee26ba68dd56f2cf29b95ded30f70d6fd8 100644 (file)
@@ -1,35 +1,39 @@
-/* ANSI-C code produced by gperf version 2.7 */
-/* Command-line: gperf -t -L ANSI-C -H aliases_hash -N aliases_lookup -7 -C -k 1,3-11,$ -i 1 src/aliases.gperf  */
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -t -L ANSI-C -H aliases_hash -N aliases_lookup -7 -C -k '1,3-11,$' -i 1 src/aliases.gperf  */
 struct alias { const char* name; unsigned int encoding_index; };
 
-#define TOTAL_KEYWORDS 293
+#define TOTAL_KEYWORDS 297
 #define MIN_WORD_LENGTH 2
 #define MAX_WORD_LENGTH 45
 #define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 2145
-/* maximum key range = 2138, duplicates = 0 */
+#define MAX_HASH_VALUE 2446
+/* maximum key range = 2439, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
+#else
+#ifdef __cplusplus
+inline
+#endif
 #endif
 static unsigned int
 aliases_hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146,    1,   56, 2146,   41,   56,
-        26,  246,  426,  106,   86,  231,    1,  491,   16, 2146,
-      2146, 2146, 2146, 2146, 2146,   21,  231,  241,   39,    1,
-        91,  106,   76,    1,  111,   21,  418,   16,    6,    1,
-         6, 2146,   14,    1,    1,  346,  146,    1,  346,   16,
-         1, 2146, 2146, 2146, 2146,  492, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
-      2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447,    1,   11, 2447,   41,  236,
+        26,  471,   86,  131,   61,  196,    1,  246,    1, 2447,
+      2447, 2447, 2447, 2447, 2447,   21,  506,  317,  231,    1,
+        91,  131,  311,    1,   66,   46,  507,  116,    6,    1,
+        51, 2447,   16,    1,    1,  438,    6,    1,  391,    1,
+         1, 2447, 2447, 2447, 2447,  166, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447,
+      2447, 2447, 2447, 2447, 2447, 2447, 2447, 2447
     };
   register int hval = len;
 
@@ -72,579 +76,610 @@ aliases_lookup (register const char *str, register unsigned int len)
     {
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"SJIS", ei_sjis},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"R8", ei_hp_roman8},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"MS-EE", ei_cp1250},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"MS-ANSI", ei_cp1252},
+      {"R8", ei_hp_roman8},
       {""}, {""}, {""},
-      {"KOI8-R", ei_koi8_r},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"ROMAN8", ei_hp_roman8},
+      {"TCVN", ei_tcvn},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"KOREAN", ei_ksc5601},
-      {""}, {""}, {""},
-      {"HZ", ei_hz},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"850", ei_cp850},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"JP", ei_iso646_jp},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-58", ei_gb2312},
-      {"GREEK8", ei_iso8859_7},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"HP-ROMAN8", ei_hp_roman8},
-      {""}, {""}, {""}, {""},
-      {"GBK", ei_ces_gbk},
-      {""}, {""}, {""},
-      {"GREEK", ei_iso8859_7},
+      {"850", ei_cp850},
+      {"KOI8-R", ei_koi8_r},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""},
-      {"ECMA-118", ei_iso8859_7},
-      {""},
-      {"TCVN", ei_tcvn},
+      {"KOREAN", ei_ksc5601},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"866", ei_cp866},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-2022-KR", ei_iso2022_kr},
+      {"JAVA", ei_java},
+      {"JP", ei_iso646_jp},
       {""}, {""}, {""}, {""}, {""},
-      {"MS-GREEK", ei_cp1253},
+      {"MS-EE", ei_cp1250},
+      {"866", ei_cp866},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
       {"ISO-IR-6", ei_ascii},
       {""}, {""},
-      {"TIS620", ei_tis620},
-      {""},
-      {"TIS-620", ei_tis620},
-      {""}, {""}, {""},
-      {"ISO-IR-100", ei_iso8859_1},
+      {"MS-ANSI", ei_cp1252},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-58", ei_gb2312},
       {""}, {""}, {""},
-      {"IBM850", ei_cp850},
+      {"ROMAN8", ei_hp_roman8},
       {""}, {""}, {""}, {""}, {""},
       {"SHIFT-JIS", ei_sjis},
+      {""}, {""}, {""},
+      {"TIS620", ei_tis620},
+      {""},
+      {"TIS-620", ei_tis620},
       {""}, {""}, {""}, {""},
-      {"ISO-IR-110", ei_iso8859_4},
-      {""}, {""}, {""}, {""}, {""},
       {"JIS0208", ei_jisx0208},
+      {""}, {""},
+      {"GREEK8", ei_iso8859_7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-226", ei_iso8859_16},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-2022-KR", ei_iso2022_kr},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-101", ei_iso8859_2},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"TIS620-0", ei_tis620},
-      {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"GBK", ei_ces_gbk},
+      {""}, {""}, {""},
+      {"GREEK", ei_iso8859_7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"ISO-2022-JP-2", ei_iso2022_jp2},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"ISO-2022-JP", ei_iso2022_jp},
+      {""}, {""}, {""}, {""},
+      {"IBM866", ei_cp866},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"HZ", ei_hz},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
       {"CN", ei_iso646_cn},
       {"EUCTW", ei_euc_tw},
-      {"WINDOWS-1258", ei_cp1258},
+      {""},
       {"EUC-TW", ei_euc_tw},
-      {"ISO-IR-226", ei_iso8859_16},
-      {""}, {""}, {""},
-      {"ISO-2022-JP", ei_iso2022_jp},
+      {""}, {""}, {""}, {""},
+      {"VISCII", ei_viscii},
       {""},
       {"CHINESE", ei_gb2312},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
+      {"IBM850", ei_cp850},
+      {"SHIFT_JIS", ei_sjis},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"ASCII", ei_ascii},
-      {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-148", ei_iso8859_9},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"MS-GREEK", ei_cp1253},
+      {""}, {""}, {""}, {""}, {""},
       {"GEORGIAN-PS", ei_georgian_ps},
-      {"WINDOWS-1252", ei_cp1252},
-      {""}, {""},
-      {"ISO-2022-JP-2", ei_iso2022_jp2},
-      {""}, {""},
-      {"IBM866", ei_cp866},
-      {"ISO-IR-126", ei_iso8859_7},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"WINDOWS-1250", ei_cp1250},
       {""},
-      {"ARMSCII-8", ei_armscii_8},
+      {"CHAR", ei_local_char},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
+      {"ASMO-708", ei_iso8859_6},
+      {""},
+      {"ISO646-JP", ei_iso646_jp},
+      {""},
+      {"ISO-IR-100", ei_iso8859_1},
+      {""}, {""}, {""}, {""},
+      {"ISO-8859-8", ei_iso8859_8},
+      {""}, {""}, {""}, {""}, {""},
       {"EUCKR", ei_euc_kr},
       {""},
       {"EUC-KR", ei_euc_kr},
       {""},
       {"CSKOI8R", ei_koi8_r},
-      {""}, {""},
-      {"JAVA", ei_java},
-      {""}, {""},
-      {"WINDOWS-1251", ei_cp1251},
-      {""}, {""},
-      {"ISO-2022-JP-1", ei_iso2022_jp1},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"ASMO-708", ei_iso8859_6},
+      {"ISO-IR-126", ei_iso8859_7},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"MACROMAN", ei_mac_roman},
-      {"HEBREW", ei_iso8859_8},
-      {""}, {""},
-      {"ISO-IR-138", ei_iso8859_8},
-      {""}, {""},
-      {"WINDOWS-1256", ei_cp1256},
+      {"ISO-IR-87", ei_jisx0208},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MS_KANJI", ei_sjis},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-166", ei_tis620},
-      {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-14", ei_iso646_jp},
+      {""}, {""},
       {"US", ei_ascii},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"WINDOWS-1255", ei_cp1255},
-      {""}, {""}, {""},
-      {"MS-HEBR", ei_cp1255},
       {""}, {""}, {""},
-      {"MACTHAI", ei_mac_thai},
+      {"ISO-8859-2", ei_iso8859_2},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-166", ei_tis620},
+      {"ELOT_928", ei_iso8859_7},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"ISO-2022-CN-EXT", ei_iso2022_cn_ext},
+      {"ISO-2022-CN", ei_iso2022_cn},
+      {""},
+      {"X0208", ei_jisx0208},
       {""}, {""}, {""},
-      {"MACROMANIA", ei_mac_romania},
+      {"ARMSCII-8", ei_armscii_8},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"HP-ROMAN8", ei_hp_roman8},
+      {""}, {""}, {""}, {""}, {""},
+      {"ISO-2022-JP-1", ei_iso2022_jp1},
       {""},
       {"EUCJP", ei_euc_jp},
       {""},
       {"EUC-JP", ei_euc_jp},
       {""}, {""}, {""},
-      {"NEXTSTEP", ei_nextstep},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-165", ei_isoir165},
-      {""}, {""},
-      {"ISO-2022-CN-EXT", ei_iso2022_cn_ext},
-      {"ISO-2022-CN", ei_iso2022_cn},
-      {""}, {""}, {""}, {""}, {""},
-      {"CSHPROMAN8", ei_hp_roman8},
-      {""}, {""}, {""},
-      {"VISCII", ei_viscii},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"UCS-2", ei_ucs2},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"X0208", ei_jisx0208},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP866", ei_cp866},
+      {""}, {""}, {""},
       {"L8", ei_iso8859_14},
-      {""},
-      {"CSISO2022KR", ei_iso2022_kr},
+      {"NEXTSTEP", ei_nextstep},
       {""}, {""}, {""},
-      {"MS-TURK", ei_cp1254},
-      {"MACINTOSH", ei_mac_roman},
-      {"MACGREEK", ei_mac_greek},
-      {""}, {""}, {""}, {""},
+      {"ISO-8859-6", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"LATIN8", ei_iso8859_14},
+      {"WCHAR_T", ei_local_wchar_t},
+      {"ISO-IR-144", ei_iso8859_5},
+      {""}, {""},
+      {"CSISO2022KR", ei_iso2022_kr},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"L2", ei_iso8859_2},
       {"CP850", ei_cp850},
-      {""},
-      {"CP1258", ei_cp1258},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"UTF-8", ei_utf8},
-      {"L2", ei_iso8859_2},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"ISO646-CN", ei_iso646_cn},
+      {""}, {""}, {""},
+      {"ISO-IR-57", ei_iso646_cn},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"UCS-2-SWAPPED", ei_ucs2swapped},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"L1", ei_iso8859_1},
+      {"ISO_8859-8", ei_iso8859_8},
       {""}, {""}, {""}, {""},
-      {"WINDOWS-1257", ei_cp1257},
+      {"ISO-8859-4", ei_iso8859_4},
+      {"ISO_8859-8:1988", ei_iso8859_8},
+      {""}, {""}, {""},
+      {"L6", ei_iso8859_10},
       {""}, {""},
       {"LATIN2", ei_iso8859_2},
-      {"X0212", ei_jisx0212},
-      {""},
-      {"CP1252", ei_cp1252},
-      {""}, {""}, {""},
-      {"ISO-IR-87", ei_jisx0208},
-      {"GB2312", ei_euc_cn},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"ISO-IR-110", ei_iso8859_4},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-165", ei_isoir165},
       {""}, {""}, {""},
-      {"WINDOWS-1253", ei_cp1253},
-      {"CSISO2022JP", ei_iso2022_jp},
+      {"CSISO2022JP2", ei_iso2022_jp2},
+      {"L4", ei_iso8859_4},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"EUCCN", ei_euc_cn},
-      {"MAC", ei_mac_roman},
-      {"EUC-CN", ei_euc_cn},
+      {"MACROMAN", ei_mac_roman},
       {""}, {""},
-      {"CP866", ei_cp866},
-      {"L6", ei_iso8859_10},
+      {"ISO_8859-2", ei_iso8859_2},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-148", ei_iso8859_9},
-      {"CSASCII", ei_ascii},
+      {"UCS-4", ei_ucs4},
+      {"CSISO2022JP", ei_iso2022_jp},
       {""}, {""},
-      {"CP1250", ei_cp1250},
-      {"CSISO2022JP2", ei_iso2022_jp2},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"L5", ei_iso8859_9},
-      {""}, {""}, {""},
-      {"X0201", ei_jisx0201},
-      {""}, {""}, {""}, {""},
-      {"CSSHIFTJIS", ei_sjis},
+      {"ECMA-118", ei_iso8859_7},
+      {"WINDOWS-874", ei_cp874},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"MS-ARAB", ei_cp1256},
+      {"TCVN-5712", ei_tcvn},
       {""},
-      {"LATIN1", ei_iso8859_1},
+      {"L5", ei_iso8859_9},
       {""}, {""},
-      {"CP1251", ei_cp1251},
+      {"LATIN6", ei_iso8859_10},
       {""}, {""},
+      {"MACROMANIA", ei_mac_romania},
+      {""},
+      {"WINDOWS-1258", ei_cp1258},
+      {""}, {""},
+      {"ISO_8859-4:1988", ei_iso8859_4},
+      {"EUCCN", ei_euc_cn},
+      {"CSVISCII", ei_viscii},
+      {"EUC-CN", ei_euc_cn},
+      {"ISO-8859-5", ei_iso8859_5},
+      {""}, {""}, {""}, {""},
+      {"ISO646-US", ei_ascii},
+      {""},
+      {"ISO_646.IRV:1991", ei_ascii},
       {"GEORGIAN-ACADEMY", ei_georgian_academy},
       {""}, {""},
-      {"BIG5", ei_ces_big5},
+      {"CSASCII", ei_ascii},
+      {""}, {""}, {""}, {""},
+      {"MS-TURK", ei_cp1254},
       {""},
-      {"BIG-5", ei_ces_big5},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-127", ei_iso8859_6},
+      {"WINDOWS-1252", ei_cp1252},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"MACCROATIAN", ei_mac_croatian},
-      {""}, {""}, {""},
-      {"BIGFIVE", ei_ces_big5},
-      {""},
-      {"BIG-FIVE", ei_ces_big5},
+      {"ISO_8859-6", ei_iso8859_6},
       {""},
-      {"ISO-IR-203", ei_iso8859_15},
+      {"MACGREEK", ei_mac_greek},
       {""}, {""},
-      {"MACHEBREW", ei_mac_hebrew},
-      {""}, {""}, {""}, {""},
-      {"ISO-IR-57", ei_iso646_cn},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"LATIN6", ei_iso8859_10},
+      {"ISO-IR-127", ei_iso8859_6},
       {""}, {""},
-      {"CP1256", ei_cp1256},
-      {"TCVN-5712", ei_tcvn},
-      {""}, {""}, {""}, {""}, {""},
-      {"UCS-2BE", ei_ucs2be},
-      {"ISO-8859-8", ei_iso8859_8},
-      {""}, {""}, {""}, {""}, {""},
-      {"US-ASCII", ei_ascii},
-      {""}, {""}, {""}, {""}, {""},
-      {"CSISO2022CN", ei_iso2022_cn},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"CSVISCII", ei_viscii},
+      {"WINDOWS-1250", ei_cp1250},
       {""}, {""},
-      {"LATIN5", ei_iso8859_9},
+      {"CP874", ei_cp874},
+      {""},
+      {"LATIN4", ei_iso8859_4},
       {""}, {""},
-      {"CP1255", ei_cp1255},
-      {""}, {""}, {""},
+      {"ISO_8859-5:1988", ei_iso8859_5},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"L7", ei_iso8859_13},
+      {""}, {""},
+      {"WINDOWS-1256", ei_cp1256},
       {""},
-      {"ISO-IR-157", ei_iso8859_10},
+      {"X0212", ei_jisx0212},
+      {""},
+      {"ISO-8859-10", ei_iso8859_10},
+      {""}, {""}, {""}, {""}, {""},
+      {"CP1258", ei_cp1258},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"ISO-8859-2", ei_iso8859_2},
-      {"L3", ei_iso8859_3},
-      {""}, {""}, {""}, {""}, {""},
-      {"UTF-16", ei_utf16},
+      {"ISO_8859-4", ei_iso8859_4},
       {""}, {""},
-      {"JOHAB", ei_johab},
       {"WINDOWS-1254", ei_cp1254},
-      {"MS_KANJI", ei_sjis},
-      {"MACUKRAINE", ei_mac_ukraine},
-      {""}, {""}, {""},
-      {"VISCII1.1-1", ei_viscii},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSMACINTOSH", ei_mac_roman},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-138", ei_iso8859_8},
       {""}, {""},
-      {"TCVN5712-1", ei_tcvn},
+      {"JIS_X0208", ei_jisx0208},
+      {"BIGFIVE", ei_ces_big5},
+      {"L1", ei_iso8859_1},
+      {"BIG-FIVE", ei_ces_big5},
+      {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-16", ei_iso8859_16},
+      {"MAC", ei_mac_roman},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"SHIFT_JIS", ei_sjis},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CN-GB-ISOIR165", ei_isoir165},
-      {""}, {""}, {""},
-      {"KOI8-U", ei_koi8_u},
+      {""}, {""}, {""}, {""}, {""},
+      {"CP1252", ei_cp1252},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACTHAI", ei_mac_thai},
       {""}, {""},
-      {"ISO-8859-1", ei_iso8859_1},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO646-JP", ei_iso646_jp},
+      {"WINDOWS-1255", ei_cp1255},
+      {"CSISO2022CN", ei_iso2022_cn},
+      {"ISO-IR-101", ei_iso8859_2},
+      {"CP950", ei_cp950},
       {""},
-      {"WINBALTRIM", ei_cp1257},
+      {"LATIN5", ei_iso8859_9},
       {""},
-      {"KOI8-RU", ei_koi8_ru},
+      {"ISO-8859-7", ei_iso8859_7},
+      {"ISO_8859-2:1987", ei_iso8859_2},
+      {""}, {""},
+      {"US-ASCII", ei_ascii},
+      {"ISO-IR-157", ei_iso8859_10},
+      {"ECMA-114", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP1250", ei_cp1250},
+      {""},
+      {"ISO-IR-109", ei_iso8859_3},
+      {"CSSHIFTJIS", ei_sjis},
+      {"ISO-8859-14", ei_iso8859_14},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CP1361", ei_johab},
-      {""}, {""}, {""}, {""},
-      {"ISO-8859-10", ei_iso8859_10},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"TIS620.2529-1", ei_tis620},
+      {"ISO_8859-5", ei_iso8859_5},
+      {"ISO_8859-6:1987", ei_iso8859_6},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"MACCROATIAN", ei_mac_croatian},
       {""},
-      {"CSISOLATIN2", ei_iso8859_2},
+      {"UCS-2-SWAPPED", ei_ucs2swapped},
       {""},
-      {"CSIBM866", ei_cp866},
+      {"CP1256", ei_cp1256},
+      {""}, {""}, {""},
+      {"HEBREW", ei_iso8859_8},
+      {"WINDOWS-1257", ei_cp1257},
+      {""},
+      {"ISO-IR-149", ei_ksc5601},
       {""}, {""}, {""}, {""}, {""},
-      {"ARABIC", ei_iso8859_6},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSHPROMAN8", ei_hp_roman8},
+      {"IBM819", ei_iso8859_1},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""},
-      {"CSISOLATINHEBREW", ei_iso8859_8},
-      {"ISO-8859-6", ei_iso8859_6},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"CSBIG5", ei_ces_big5},
+      {"ISO-8859-1", ei_iso8859_1},
       {""},
-      {"CN-BIG5", ei_ces_big5},
+      {"ISO_8859-10:1992", ei_iso8859_10},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"GB_1988-80", ei_iso646_cn},
       {""},
-      {"UCS-2LE", ei_ucs2le},
+      {"ISO_8859-10", ei_iso8859_10},
+      {""}, {""}, {""}, {""}, {""},
+      {"WINDOWS-1251", ei_cp1251},
       {""},
-      {"MACTURKISH", ei_mac_turkish},
+      {"ISO-8859-9", ei_iso8859_9},
       {""},
-      {"HZ-GB-2312", ei_hz},
-      {""}, {""}, {""}, {""},
-      {"UNICODE-1-1", ei_ucs2be},
-      {""}, {""}, {""},
-      {"CSISOLATIN1", ei_iso8859_1},
-      {"CN-GB", ei_euc_cn},
+      {"ISO_8859-14:1998", ei_iso8859_14},
+      {"CP1254", ei_cp1254},
       {""},
-      {"IBM367", ei_ascii},
-      {""}, {""}, {""},
-      {"UTF-16BE", ei_utf16be},
-      {""}, {""}, {""},
-      {"ISO-8859-5", ei_iso8859_5},
-      {""}, {""}, {""}, {""},
-      {"UCS-2-INTERNAL", ei_ucs2internal},
-      {"UHC", ei_cp949},
+      {"ISO-IR-159", ei_jisx0212},
+      {""},
+      {"ISO-8859-15", ei_iso8859_15},
+      {""},
+      {"UTF-16", ei_utf16},
       {""},
-      {"CSISOLATINGREEK", ei_iso8859_7},
-      {""}, {""}, {""}, {""}, {""},
-      {"CSEUCTW", ei_euc_tw},
-      {""}, {""},
-      {"ISO-8859-16", ei_iso8859_16},
-      {""}, {""}, {""},
-      {"L4", ei_iso8859_4},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
       {"UCS-4-SWAPPED", ei_ucs4swapped},
-      {"ISO646-CN", ei_iso646_cn},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-16:2000", ei_iso8859_16},
+      {"BIG5", ei_ces_big5},
       {""},
-      {"CSISOLATIN6", ei_iso8859_10},
+      {"BIG-5", ei_ces_big5},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-8859-15", ei_iso8859_15},
-      {""}, {""},
-      {"CSEUCKR", ei_euc_kr},
-      {"CSUNICODE", ei_ucs2},
-      {""}, {""},
-      {"TIS620.2533-0", ei_tis620},
-      {""}, {""}, {""}, {""},
       {"LATIN7", ei_iso8859_13},
+      {""}, {""}, {""},
+      {"ISO_8859-16", ei_iso8859_16},
+      {""},
+      {"CSISOLATIN2", ei_iso8859_2},
       {""}, {""},
-      {"CP1257", ei_cp1257},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"TIS620.2533-1", ei_tis620},
+      {"GB2312", ei_euc_cn},
+      {""}, {""}, {""}, {""},
       {"UTF-7", ei_utf7},
-      {"TCVN5712-1:1993", ei_tcvn},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSISOLATIN5", ei_iso8859_9},
+      {""}, {""}, {""},
+      {"KOI8-U", ei_koi8_u},
+      {"ISO_8859-15:1998", ei_iso8859_15},
+      {""}, {""},
+      {"X0201", ei_jisx0201},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"LATIN3", ei_iso8859_3},
-      {"CP950", ei_cp950},
+      {""}, {""}, {""},
+      {"KOI8-RU", ei_koi8_ru},
       {""},
-      {"CP1253", ei_cp1253},
+      {"ISO_8859-7", ei_iso8859_7},
+      {""}, {""}, {""}, {""},
+      {"ISO-IR-179", ei_iso8859_13},
+      {"ISO_8859-7:1987", ei_iso8859_7},
+      {""}, {""},
+      {"JIS_C6220-1969-RO", ei_iso646_jp},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-14", ei_iso8859_14},
+      {"ISO-10646-UCS-2", ei_ucs2},
+      {"GB18030", ei_gb18030},
+      {""}, {""}, {""},
+      {"MACUKRAINE", ei_mac_ukraine},
+      {"MS-HEBR", ei_cp1255},
+      {""}, {""}, {""},
+      {"CP1255", ei_cp1255},
       {""},
-      {"TIS620.2529-1", ei_tis620},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-14", ei_iso646_jp},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"L3", ei_iso8859_3},
+      {"UCS-2BE", ei_ucs2be},
+      {"UCS-2LE", ei_ucs2le},
       {""}, {""}, {""}, {""}, {""},
+      {"JIS_X0212", ei_jisx0212},
+      {"CSISOLATIN6", ei_iso8859_10},
+      {""}, {""},
       {"CSISO87JISX0208", ei_jisx0208},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO646-US", ei_ascii},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSGB2312", ei_euc_cn},
+      {"LATIN1", ei_iso8859_1},
       {""}, {""},
-      {"CSISOLATINARABIC", ei_iso8859_6},
+      {"ISO_8859-1:1987", ei_iso8859_1},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-IR-199", ei_iso8859_14},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"MACCENTRALEUROPE", ei_mac_centraleurope},
-      {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", ei_euc_jp},
+      {"UCS-2-INTERNAL", ei_ucs2internal},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"UNICODE-1-1-UTF-7", ei_utf7},
-      {""}, {""}, {""}, {""}, {""},
-      {"MULELAO-1", ei_mulelao},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSHALFWIDTHKATAKANA", ei_jisx0201},
       {""}, {""},
-      {"UTF-16LE", ei_utf16le},
+      {"JIS_X0208-1990", ei_jisx0208},
       {""}, {""},
-      {"ECMA-114", ei_iso8859_6},
+      {"ISO-10646-UCS-4", ei_ucs4},
+      {""},
+      {"ISO_8859-1", ei_iso8859_1},
+      {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-3:1988", ei_iso8859_3},
       {""}, {""},
+      {"CSISOLATIN4", ei_iso8859_4},
+      {"ISO-IR-203", ei_iso8859_15},
       {"UCS-4BE", ei_ucs4be},
+      {"UCS-4LE", ei_ucs4le},
+      {""}, {""},
+      {"CSISO14JISC6220RO", ei_iso646_jp},
       {""},
-      {"CSISO58GB231280", ei_gb2312},
-      {""}, {""}, {""}, {""}, {""},
-      {"ELOT_928", ei_iso8859_7},
-      {"CSEUCPKDFMTJAPANESE", ei_euc_jp},
+      {"IBM367", ei_ascii},
+      {"CSISOLATINGREEK", ei_iso8859_7},
+      {""},
+      {"ISO_8859-9", ei_iso8859_9},
+      {"CP819", ei_iso8859_1},
+      {""}, {""}, {""}, {""},
+      {"ISO_8859-9:1989", ei_iso8859_9},
+      {"ISO_8859-15", ei_iso8859_15},
+      {""}, {""}, {""}, {""},
+      {"CSISO159JISX02121990", ei_jisx0212},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"MACICELAND", ei_mac_iceland},
       {""},
-      {"CP932", ei_cp932},
-      {"MACARABIC", ei_mac_arabic},
-      {""}, {""}, {""},
-      {"CP367", ei_ascii},
+      {"UCS-4-INTERNAL", ei_ucs4internal},
+      {"MACINTOSH", ei_mac_roman},
+      {"UHC", ei_cp949},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSEUCTW", ei_euc_tw},
+      {""},
+      {"TCVN5712-1", ei_tcvn},
       {""}, {""}, {""}, {""}, {""},
-      {"GB_2312-80", ei_gb2312},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSUNICODE11", ei_ucs2be},
+      {"CP932", ei_cp932},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP1257", ei_cp1257},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"WINDOWS-1253", ei_cp1253},
+      {""}, {""},
+      {"CN-GB-ISOIR165", ei_isoir165},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"IBM819", ei_iso8859_1},
-      {""},
-      {"UNICODELITTLE", ei_ucs2le},
+      {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", ei_euc_jp},
+      {"CSISOLATIN5", ei_iso8859_9},
+      {""}, {""},
+      {"CSIBM866", ei_cp866},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"JIS_X0208", ei_jisx0208},
-      {""},
-      {"CSISO159JISX02121990", ei_jisx0212},
+      {"CP949", ei_cp949},
       {""}, {""}, {""},
-      {"ISO-8859-7", ei_iso8859_7},
+      {"GB_2312-80", ei_gb2312},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"UNICODEBIG", ei_ucs2be},
+      {"CSEUCKR", ei_euc_kr},
       {""}, {""},
-      {"ISO-10646-UCS-2", ei_ucs2},
+      {"CP936", ei_ces_gbk},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"CP1133", ei_cp1133},
-      {"CSISO14JISC6220RO", ei_iso646_jp},
-      {"JIS_C6220-1969-RO", ei_iso646_jp},
-      {""}, {""}, {""}, {""}, {""},
-      {"ISO-8859-3", ei_iso8859_3},
-      {"ISO_8859-8", ei_iso8859_8},
-      {"KSC_5601", ei_ksc5601},
-      {"ISO-IR-109", ei_iso8859_3},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"IBM-CP1133", ei_cp1133},
-      {""},
-      {"ISO_8859-8:1988", ei_iso8859_8},
+      {""}, {""}, {""}, {""},
+      {"CSISOLATINHEBREW", ei_iso8859_8},
       {""}, {""}, {""},
-      {"MS-CYRL", ei_cp1251},
+      {"CP1251", ei_cp1251},
+      {"ARABIC", ei_iso8859_6},
+      {""}, {""}, {""}, {""},
+      {"MS-ARAB", ei_cp1256},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSISOLATINARABIC", ei_iso8859_6},
       {""}, {""},
-      {"JIS_X0212", ei_jisx0212},
+      {"JIS_X0201", ei_jisx0201},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSBIG5", ei_ces_big5},
       {""},
-      {"WINDOWS-874", ei_cp874},
+      {"CN-BIG5", ei_ces_big5},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CP936", ei_ces_gbk},
-      {"ISO_8859-2", ei_iso8859_2},
-      {""}, {""}, {""}, {""}, {""},
-      {"ISO-8859-13", ei_iso8859_13},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"JIS_X0208-1990", ei_jisx0208},
-      {""},
-      {"ISO-IR-159", ei_jisx0212},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"KSC_5601", ei_ksc5601},
+      {""}, {""},
+      {"JIS_X0212-1990", ei_jisx0212},
+      {"CP367", ei_ascii},
+      {""}, {""}, {""}, {""},
+      {"CSUCS4", ei_ucs4},
       {""}, {""}, {""}, {""}, {""},
-      {"JIS_X0201", ei_jisx0201},
+      {"JIS_X0212.1990-0", ei_jisx0212},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"CSISOLATINCYRILLIC", ei_iso8859_5},
-      {""}, {""},
-      {"CSISOLATIN3", ei_iso8859_3},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+      {"MACHEBREW", ei_mac_hebrew},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"VISCII1.1-1", ei_viscii},
+      {"TIS620.2533-0", ei_tis620},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"UCS-4LE", ei_ucs4le},
+      {"WINBALTRIM", ei_cp1257},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"MACCENTRALEUROPE", ei_mac_centraleurope},
+      {""},
+      {"CSUNICODE", ei_ucs2},
       {""}, {""}, {""},
-      {"UCS-4", ei_ucs4},
+      {"TCVN5712-1:1993", ei_tcvn},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO-8859-3", ei_iso8859_3},
+      {""}, {""}, {""},
+      {"CSISOLATIN1", ei_iso8859_1},
+      {""}, {""}, {""},
+      {"UTF-16BE", ei_utf16be},
+      {"UTF-16LE", ei_utf16le},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""},
-      {"JIS_X0212-1990", ei_jisx0212},
+      {"JISX0201-1976", ei_jisx0201},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"ISO_8859-1", ei_iso8859_1},
+      {"ANSI_X3.4-1968", ei_ascii},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"UCS-4-INTERNAL", ei_ucs4internal},
-      {""},
-      {"ISO_8859-5:1988", ei_iso8859_5},
-      {"ISO_8859-10:1992", ei_iso8859_10},
-      {"CSUNICODE11UTF7", ei_utf7},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"GB_1988-80", ei_iso646_cn},
-      {""},
-      {"ISO_8859-10", ei_iso8859_10},
+      {"CSMACINTOSH", ei_mac_roman},
+      {"JOHAB", ei_johab},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"JIS_X0212.1990-0", ei_jisx0212},
-      {"JISX0201-1976", ei_jisx0201},
-      {""}, {""}, {""},
-      {"ISO_8859-15:1998", ei_iso8859_15},
       {""}, {""},
-      {"ISO_8859-6", ei_iso8859_6},
+      {"BIG5HKSCS", ei_big5hkscs},
+      {"JIS_X0208-1983", ei_jisx0208},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"LATIN4", ei_iso8859_4},
-      {"CP819", ei_iso8859_1},
-      {""},
-      {"CP1254", ei_cp1254},
+      {"LATIN3", ei_iso8859_3},
+      {""}, {""},
+      {"CN-GB", ei_euc_cn},
       {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-16:2000", ei_iso8859_16},
-      {""}, {""}, {""}, {""},
-      {"ISO-IR-179", ei_iso8859_13},
+      {"MS-CYRL", ei_cp1251},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-5", ei_iso8859_5},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"TIS620.2533-1", ei_tis620},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"ISO_8859-3", ei_iso8859_3},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSISOLATINCYRILLIC", ei_iso8859_5},
       {""}, {""}, {""}, {""},
-      {"CP874", ei_cp874},
-      {""}, {""},
-      {"ISO_8859-16", ei_iso8859_16},
+      {"UNICODELITTLE", ei_ucs2le},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"ISO-IR-144", ei_iso8859_5},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-3:1988", ei_iso8859_3},
-      {"ISO_8859-15", ei_iso8859_15},
-      {""}, {""},
-      {"JIS_X0208-1983", ei_jisx0208},
       {""}, {""}, {""}, {""},
-      {"ISO_646.IRV:1991", ei_ascii},
-      {"ISO_8859-2:1987", ei_iso8859_2},
+      {"CP1361", ei_johab},
+      {""}, {""}, {""}, {""},
+      {"MACTURKISH", ei_mac_turkish},
+      {""}, {""}, {""},
+      {"ISO-8859-13", ei_iso8859_13},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"ISO_8859-1:1987", ei_iso8859_1},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""},
+      {"KS_C_5601-1987", ei_ksc5601},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSEUCPKDFMTJAPANESE", ei_euc_jp},
+      {""}, {""}, {""}, {""}, {""},
+      {"MULELAO-1", ei_mulelao},
+      {""}, {""}, {""}, {""}, {""},
+      {"MACARABIC", ei_mac_arabic},
+      {"CSISO58GB231280", ei_gb2312},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""},
+      {"CP1253", ei_cp1253},
       {""}, {""},
-      {"ISO_8859-6:1987", ei_iso8859_6},
+      {"KS_C_5601-1989", ei_ksc5601},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"UNICODE-1-1-UTF-7", ei_utf7},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"ISO-8859-4", ei_iso8859_4},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"CSISO57GB1988", ei_iso646_cn},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-10646-UCS-4", ei_ucs4},
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO-IR-149", ei_ksc5601},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"UNICODE-1-1", ei_ucs2be},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"ISO_8859-13", ei_iso8859_13},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"HZ-GB-2312", ei_hz},
       {""},
-      {"ISO-8859-14", ei_iso8859_14},
+      {"CSGB2312", ei_euc_cn},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+      {"MACICELAND", ei_mac_iceland},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"UNICODEBIG", ei_ucs2be},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"ISO_8859-4:1988", ei_iso8859_4},
+      {"CSISO57GB1988", ei_iso646_cn},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"CSISOLATIN4", ei_iso8859_4},
-      {""}, {""}, {""},
-      {"ISO-IR-199", ei_iso8859_14},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-7", ei_iso8859_7},
+      {"CSISOLATIN3", ei_iso8859_3},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CYRILLIC", ei_iso8859_5},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+      {"CSHALFWIDTHKATAKANA", ei_jisx0201},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"CSKSC56011987", ei_ksc5601},
-      {""}, {""},
-      {"ISO_8859-7:1987", ei_iso8859_7},
-      {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-14:1998", ei_iso8859_14},
-      {""},
-      {"ISO-8859-9", ei_iso8859_9},
-      {"ISO_8859-3", ei_iso8859_3},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"ISO_8859-13", ei_iso8859_13},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ANSI_X3.4-1968", ei_ascii},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSUCS4", ei_ucs4},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -653,21 +688,23 @@ aliases_lookup (register const char *str, register unsigned int len)
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"CYRILLIC", ei_iso8859_5},
+      {""}, {""}, {""},
+      {"CSUNICODE11UTF7", ei_utf7},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSUNICODE11", ei_ucs2be},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"KS_C_5601-1987", ei_ksc5601},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"CSPC850MULTILINGUAL", ei_cp850},
-      {""}, {""}, {""}, {""},
-      {"MACCYRILLIC", ei_mac_cyrillic},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -678,16 +715,19 @@ aliases_lookup (register const char *str, register unsigned int len)
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-4", ei_iso8859_4},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+      {"CP1133", ei_cp1133},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"ISO_8859-14", ei_iso8859_14},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -696,18 +736,19 @@ aliases_lookup (register const char *str, register unsigned int len)
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-9", ei_iso8859_9},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"KS_C_5601-1989", ei_ksc5601},
+      {"IBM-CP1133", ei_cp1133},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"ISO_8859-9:1989", ei_iso8859_9},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"CP949", ei_cp949}
+      {"MACCYRILLIC", ei_mac_cyrillic},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"CSPC850MULTILINGUAL", ei_cp850}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
index 4a105151b7e396480344937fb3c2be7f656bc99d..f3b20ec222ec22b43defca46aba87b607816fd33 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short armscii_8_2uni[96] = {
 };
 
 static int
-armscii_8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+armscii_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) armscii_8_2uni[c-0xa0];
+    *pwc = (ucs4_t) armscii_8_2uni[c-0xa0];
   return 1;
 }
 
@@ -66,7 +66,7 @@ static const unsigned char armscii_8_page20[24] = {
 };
 
 static int
-armscii_8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+armscii_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0020) {
index bdad43466c4f9a5a2ad449f1acce295c77e34941..e32cf417ebdb56727cb2f93323070c1ad11a7544 100644 (file)
@@ -4,18 +4,18 @@
  */
 
 static int
-ascii_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ascii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   return RET_ILSEQ;
 }
 
 static int
-ascii_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ascii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x0080) {
     *r = wc;
index 70d7ae4276b9141194cce1449d6310f222d0b46d..c771bd18b034f4d51a1dc61b0632be98c542e6fe 100644 (file)
@@ -1852,7 +1852,7 @@ static const unsigned short big5_2uni_pagec9[7652] = {
 };
 
 static int
-big5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0xa1 && c1 <= 0xc7) || (c1 >= 0xc9 && c1 <= 0xf9)) {
@@ -1869,7 +1869,7 @@ big5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = big5_2uni_pagec9[i-6280];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -4098,7 +4098,7 @@ static const Summary16 big5_uni2indx_pagefe[23] = {
 };
 
 static int
-big5_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
diff --git a/libiconv/big5hkscs.h b/libiconv/big5hkscs.h
new file mode 100644 (file)
index 0000000..fd825ff
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * BIG5HKSCS
+ */
+
+/*
+ * BIG5HKSCS can be downloaded from
+ *   http://www.info.gov.hk/digital21/eng/hkscs/download.html
+ *   http://www.info.gov.hk/digital21/eng/hkscs/index.html
+ *
+ * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges
+ *
+ *   0x{88..8D}{40..7E,A1..FE}      641 characters
+ *   0x{8E..A0}{40..7E,A1..FE}     2898 characters
+ *   0x{C6..C8}{40..7E,A1..FE}      359 characters
+ *   0xF9{D6..FE}                    41 characters
+ *   0x{FA..FE}{40..7E,A1..FE}      763 characters
+ *
+ * It thereby introduces an irreversible mapping
+ *   0x8BF8   0x9F9C
+ *   0xC074   0x9F9C
+ */
+
+#include "hkscs.h"
+
+static int
+big5hkscs_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c = *s;
+  /* Code set 0 (ASCII) */
+  if (c < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+  /* Code set 1 (BIG5 extended) */
+  if (c >= 0xa1 && c < 0xff) {
+    if (n < 2)
+      return RET_TOOFEW(0);
+    {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+        if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) {
+          int ret = big5_mbtowc(conv,pwc,s,2);
+          if (ret != RET_ILSEQ)
+            return ret;
+        }
+      }
+    }
+  }
+  return hkscs_mbtowc(conv,pwc,s,n);
+}
+
+static int
+big5hkscs_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+  unsigned char buf[2];
+  int ret;
+
+  /* Code set 0 (ASCII) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (BIG5 extended) */
+  ret = big5_wctomb(conv,buf,wc,2);
+  if (ret != RET_ILSEQ) {
+    if (ret != 2) abort();
+    if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) {
+      if (n < 2)
+        return RET_TOOSMALL;
+      r[0] = buf[0];
+      r[1] = buf[1];
+      return 2;
+    }
+  }
+  return hkscs_wctomb(conv,r,wc,n);
+}
index 0ffd3a7dd8c2e5c104cdde45830f4d07adb07611..e232e7404e4733d1cb145eeeffa4f963d1a6e8c1 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 static int
-ces_big5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ces_big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII) */
@@ -26,7 +26,7 @@ ces_big5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-ces_big5_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ces_big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 326cda201d4c1030a65eed1d4923eb5265943f84..be625264c3cd3375466ea6faa562363600144adf 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 static int
-ces_gbk_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ces_gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
 
@@ -20,7 +20,7 @@ ces_gbk_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-ces_gbk_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ces_gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 9299de41a82f3a853e6783b5ad24dbb112284448..d1b440d35a9ca470181996194dd92f26523fb565 100644 (file)
@@ -14,7 +14,7 @@
 
 /* Returns the plane number (0,1,2) in r[0], the two bytes in r[1],r[2]. */
 static int
-cns11643_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cns11643_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 3) {
     int ret = cns11643_inv_wctomb(conv,r+1,wc,2);
index be94c16d2079ea5438bf5f49fec66218047b5c24..bdf71de516f4be25d707082bd7dbbbffe7b21cba 100644 (file)
@@ -835,7 +835,7 @@ static const unsigned short cns11643_1_2uni_page44[5401] = {
 };
 
 static int
-cns11643_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cns11643_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x21 && c1 <= 0x26) || (c1 == 0x42) || (c1 >= 0x44 && c1 <= 0x7d)) {
@@ -855,7 +855,7 @@ cns11643_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = cns11643_1_2uni_page44[i-3290];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
index 851d396c5a758f32ea98050b4d4503d168b458d5..d952d2dd5c1e06a0c85a15f8de632c0e8ea04ad6 100644 (file)
@@ -1066,7 +1066,7 @@ static const unsigned short cns11643_2_2uni_page21[7650] = {
 };
 
 static int
-cns11643_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cns11643_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x21 && c1 <= 0x72)) {
@@ -1080,7 +1080,7 @@ cns11643_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = cns11643_2_2uni_page21[i];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
index bec4b25eb79ac5d6a50e8c217beccc535ecdf8a1..0fa27a0d14feb064c7e2d608859c22dbc077d47a 100644 (file)
@@ -858,7 +858,7 @@ static const unsigned short cns11643_3_2uni_page21[6147] = {
 };
 
 static int
-cns11643_3_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cns11643_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x21 && c1 <= 0x62)) {
@@ -872,7 +872,7 @@ cns11643_3_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = cns11643_3_2uni_page21[i];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
index 1b79541876430bada0e747ee411c57ab3341960d..02f8a32ebfd1c331161187c653952c1032cc8c0b 100644 (file)
@@ -2679,7 +2679,7 @@ static const Summary16 cns11643_inv_uni2indx_pagefe[31] = {
 };
 
 static int
-cns11643_inv_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cns11643_inv_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
diff --git a/libiconv/config.charset b/libiconv/config.charset
new file mode 100755 (executable)
index 0000000..b1f5d41
--- /dev/null
@@ -0,0 +1,234 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program 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, or (at your option)
+#   any later version.
+#
+#   This program 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 this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+#   USA.
+#
+# The table consists of lines of the form
+#    ALIAS  CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+#       name                         used by which systems         a MIME name?
+#   ASCII, ANSI_X3.4-1968     glibc solaris freebsd
+#   ISO-8859-1                glibc aix hpux irix osf solaris freebsd   yes
+#   ISO-8859-2                glibc aix hpux irix solaris freebsd       yes
+#   ISO-8859-3                glibc                                     yes
+#   ISO-8859-4                solaris                                   yes
+#   ISO-8859-5                glibc aix hpux irix solaris               yes
+#   ISO-8859-6                glibc aix hpux solaris                    yes
+#   ISO-8859-7                glibc aix hpux irix osf solaris           yes
+#   ISO-8859-8                glibc aix hpux solaris                    yes
+#   ISO-8859-9                glibc aix hpux irix osf solaris           yes
+#   ISO-8859-13               glibc
+#   ISO-8859-15               glibc aix solaris freebsd
+#   KOI8-R                    glibc solaris freebsd                     yes
+#   KOI8-U                    glibc                                     yes
+#   CP850                     aix osf
+#   CP856                     aix
+#   CP866                     freebsd
+#   CP874                     win32
+#   CP922                     aix
+#   CP932                     aix win32
+#   CP943                     aix
+#   CP949                     win32
+#   CP950                     win32
+#   CP1046                    aix
+#   CP1124                    aix
+#   CP1129                    aix
+#   CP1250                    win32
+#   CP1251                    glibc win32
+#   CP1252                    aix win32
+#   CP1253                    win32
+#   CP1254                    win32
+#   CP1255                    win32
+#   CP1256                    win32
+#   CP1257                    win32
+#   GB2312                    glibc aix hpux irix solaris               yes
+#   EUC-JP                    glibc aix hpux irix solaris               yes
+#   EUC-KR                    glibc aix hpux irix solaris               yes
+#   EUC-TW                    glibc aix hpux irix solaris
+#   BIG5                      glibc aix hpux solaris                    yes
+#   BIG5HKSCS                 glibc
+#   GBK                       aix win32
+#   GB18030                   glibc
+#   SJIS                      hpux solaris
+#   JOHAB                     glibc win32
+#   TIS-620                   glibc aix hpux solaris
+#   VISCII                    glibc                                     yes
+#   HP-ROMAN8                 hpux
+#   HP-ARABIC8                hpux
+#   HP-GREEK8                 hpux
+#   HP-HEBREW8                hpux
+#   HP-TURKISH8               hpux
+#   HP-KANA8                  hpux
+#   UTF-8                     glibc aix hpux solaris                    yes
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+    linux* | *-gnu*)
+       # With glibc-2.1 or newer, we don't need any canonicalization,
+       # because glibc has iconv and both glibc and libiconv support all
+       # GNU canonical names directly. Therefore, the Makefile does not
+       # need to install the alias file at all.
+       # The following applies only to glibc-2.0.x and older libcs.
+       echo "ISO_646.IRV:1983 ASCII"
+       ;;
+    aix*)
+       echo "ISO8859-1 ISO-8859-1"
+       echo "ISO8859-2 ISO-8859-2"
+       echo "ISO8859-5 ISO-8859-5"
+       echo "ISO8859-6 ISO-8859-6"
+       echo "ISO8859-7 ISO-8859-7"
+       echo "ISO8859-8 ISO-8859-8"
+       echo "ISO8859-9 ISO-8859-9"
+       echo "ISO8859-15 ISO-8859-15"
+       echo "IBM-850 CP850"
+       echo "IBM-856 CP856"
+       echo "IBM-921 ISO-8859-13"
+       echo "IBM-922 CP922"
+       echo "IBM-932 CP932"
+       echo "IBM-943 CP943"
+       echo "IBM-1046 CP1046"
+       echo "IBM-1124 CP1124"
+       echo "IBM-1129 CP1129"
+       echo "IBM-1252 CP1252"
+       echo "IBM-eucCN GB2312"
+       echo "IBM-eucJP EUC-JP"
+       echo "IBM-eucKR EUC-KR"
+       echo "IBM-eucTW EUC-TW"
+       echo "big5 BIG5"
+       echo "GBK GBK"
+       echo "TIS-620 TIS-620"
+       echo "UTF-8 UTF-8"
+       ;;
+    hpux*)
+       echo "iso88591 ISO-8859-1"
+       echo "iso88592 ISO-8859-2"
+       echo "iso88595 ISO-8859-5"
+       echo "iso88596 ISO-8859-6"
+       echo "iso88597 ISO-8859-7"
+       echo "iso88598 ISO-8859-8"
+       echo "iso88599 ISO-8859-9"
+       echo "iso885915 ISO-8859-15"
+       echo "roman8 HP-ROMAN8"
+       echo "arabic8 HP-ARABIC8"
+       echo "greek8 HP-GREEK8"
+       echo "hebrew8 HP-HEBREW8"
+       echo "turkish8 HP-TURKISH8"
+       echo "kana8 HP-KANA8"
+       echo "tis620 TIS-620"
+       echo "big5 BIG5"
+       echo "eucJP EUC-JP"
+       echo "eucKR EUC-KR"
+       echo "eucTW EUC-TW"
+       echo "hp15CN GB2312"
+       #echo "ccdc ?" # what is this?
+       echo "SJIS SJIS"
+       echo "utf8 UTF-8"
+       ;;
+    irix*)
+       echo "ISO8859-1 ISO-8859-1"
+       echo "ISO8859-2 ISO-8859-2"
+       echo "ISO8859-5 ISO-8859-5"
+       echo "ISO8859-7 ISO-8859-7"
+       echo "ISO8859-9 ISO-8859-9"
+       echo "eucCN GB2312"
+       echo "eucJP EUC-JP"
+       echo "eucKR EUC-KR"
+       echo "eucTW EUC-TW"
+       ;;
+    osf*)
+       echo "ISO8859-1 ISO-8859-1"
+       echo "ISO8859-7 ISO-8859-7"
+       echo "ISO8859-9 ISO-8859-9"
+       echo "cp850 CP850"
+       ;;
+    solaris*)
+       echo "646 ASCII"
+       echo "ISO8859-1 ISO-8859-1"
+       echo "ISO8859-2 ISO-8859-2"
+       echo "ISO8859-4 ISO-8859-4"
+       echo "ISO8859-5 ISO-8859-5"
+       echo "ISO8859-6 ISO-8859-6"
+       echo "ISO8859-7 ISO-8859-7"
+       echo "ISO8859-8 ISO-8859-8"
+       echo "ISO8859-9 ISO-8859-9"
+       echo "ISO8859-15 ISO-8859-15"
+       echo "koi8-r KOI8-R"
+       echo "BIG5 BIG5"
+       echo "gb2312 GB2312"
+       echo "cns11643 EUC-TW"
+       echo "5601 EUC-KR"
+       echo "eucJP EUC-JP"
+       echo "PCK SJIS"
+       echo "TIS620.2533 TIS-620"
+       #echo "sun_eu_greek ?" # what is this?
+       echo "UTF-8 UTF-8"
+       ;;
+    freebsd*)
+       # FreeBSD 3.3 doesn't have nl_langinfo(CODESET); therefore
+       # localcharset.c falls back to using the full locale name
+       # from the environment variables.
+       echo "C ASCII"
+       echo "US-ASCII ASCII"
+       for l in lt_LN; do
+         echo "$l.ASCII ASCII"
+       done
+       for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+                 fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT lt_LN \
+                 nl_BE nl_NL no_NO pt_PT sv_SE; do
+         echo "$l.ISO_8859-1 ISO-8859-1"
+         echo "$l.DIS_8859-15 ISO-8859-15"
+       done
+       for l in hr_HR hu_HU lt_LN pl_PL sl_SI; do
+         echo "$l.ISO_8859-2 ISO-8859-2"
+       done
+       for l in ru_RU ru_SU; do
+         echo "$l.KOI8-R KOI8-R"
+         echo "$l.CP866 CP866"
+       done
+       ;;
+    beos*)
+       # BeOS has a single locale, and it has UTF-8 encoding.
+       echo "C UTF-8"
+       ;;
+esac
index 26b1837c9ba0e9f6ff43fe217868bd1f6c366f65..99ddfca8f72355a61029777e49175250c2733023 100644 (file)
@@ -19,9 +19,8 @@
 /* This file defines all the converters. */
 
 
-/* Define our own notion of wchar_t, as UCS-4, according to ISO-10646-1. */
-#undef wchar_t
-#define wchar_t  unsigned int
+/* Our own notion of wide character, as UCS-4, according to ISO-10646-1. */
+typedef unsigned int ucs4_t;
 
 /* State used by a conversion. 0 denotes the initial state. */
 typedef unsigned int state_t;
@@ -33,9 +32,9 @@ typedef struct conv_struct * conv_t;
  * Data type for conversion multibyte -> unicode
  */
 struct mbtowc_funcs {
-  int (*xxx_mbtowc) (conv_t conv, wchar_t *pwc, unsigned char const *s, int n);
+  int (*xxx_mbtowc) (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n);
   /*
-   * int xxx_mbtowc (conv_t conv, wchar_t *pwc, unsigned char const *s, int n)
+   * int xxx_mbtowc (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n)
    * converts the byte sequence starting at s to a wide character. Up to n bytes
    * are available at s. n is >= 1.
    * Result is number of bytes consumed (if a wide character was read),
@@ -48,9 +47,9 @@ struct mbtowc_funcs {
  * Data type for conversion unicode -> multibyte
  */
 struct wctomb_funcs {
-  int (*xxx_wctomb) (conv_t conv, unsigned char *r, wchar_t wc, int n);
+  int (*xxx_wctomb) (conv_t conv, unsigned char *r, ucs4_t wc, int n);
   /*
-   * int xxx_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+   * int xxx_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
    * converts the wide character wc to the character set xxx, and stores the
    * result beginning at r. Up to n bytes may be written at r. n is >= 1.
    * Result is number of bytes written, or 0 if invalid, or -1 if n too small.
@@ -75,6 +74,7 @@ struct wctomb_funcs {
  * Contents of a conversion descriptor.
  */
 struct conv_struct {
+  struct loop_funcs lfuncs;
   /* Input (conversion multibyte -> unicode) */
   int iindex;
   struct mbtowc_funcs ifuncs;
@@ -199,12 +199,14 @@ typedef struct {
 
 #include "euc_cn.h"
 #include "ces_gbk.h"
+#include "gb18030.h"
 #include "iso2022_cn.h"
 #include "iso2022_cnext.h"
 #include "hz.h"
 #include "euc_tw.h"
 #include "ces_big5.h"
 #include "cp950.h"
+#include "big5hkscs.h"
 
 #include "euc_kr.h"
 #include "cp949.h"
index 4dc408ff4be5a0ef3e8831b650dba111f8b993ac..cf79b7aa111850da7f08e1b4baabe84ed952c188 100644 (file)
@@ -24,17 +24,17 @@ static const unsigned short cp1133_2uni_2[16] = {
 };
 
 static int
-cp1133_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1133_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else if (c < 0xe0) {
     unsigned short wc = cp1133_2uni_1[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -43,7 +43,7 @@ cp1133_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
   else {
     unsigned short wc = cp1133_2uni_2[c-0xf0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -70,7 +70,7 @@ static const unsigned char cp1133_page0e[96] = {
 };
 
 static int
-cp1133_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1133_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index cb97db0b37c8e026bdf0a2bcad70d16d0084b135..0ce37abda5f9a26efb11b75d9023d57409187e40 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp1250_2uni[128] = {
 };
 
 static int
-cp1250_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1250_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1250_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -95,7 +95,7 @@ static const unsigned char cp1250_page20[48] = {
 };
 
 static int
-cp1250_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1250_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 2bc6bfc945146f5fe9d627035004d24e3060d30f..8c0847a0c768d3d2007b9da51795089ff078ad52 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp1251_2uni[128] = {
 };
 
 static int
-cp1251_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1251_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1251_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -85,7 +85,7 @@ static const unsigned char cp1251_page20[48] = {
 };
 
 static int
-cp1251_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1251_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 29a6c178cac5346ebdd67ceee2f7a6bf8b5d5a8c..a2f9f477db624454c48f779b95972dbe65c4cf37 100644 (file)
@@ -13,17 +13,17 @@ static const unsigned short cp1252_2uni[32] = {
 };
 
 static int
-cp1252_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1252_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80 || c >= 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1252_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -57,7 +57,7 @@ static const unsigned char cp1252_page20[48] = {
 };
 
 static int
-cp1252_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1252_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index e24dea58c229a451e369a4a6de7f77c1dcbeba69..562ee0216e312c5ddc814bbb1d641b3aa71acf52 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp1253_2uni[128] = {
 };
 
 static int
-cp1253_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1253_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1253_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -76,7 +76,7 @@ static const unsigned char cp1253_page20[48] = {
 };
 
 static int
-cp1253_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1253_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index a6d7fdf7eaa6d7b3dd4f4143fa96b738837fe8ae..e753d4da3c6ddf53738b176e15a561dfed6aa3a3 100644 (file)
@@ -23,34 +23,34 @@ static const unsigned short cp1254_2uni_3[16] = {
 };
 
 static int
-cp1254_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1254_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else if (c < 0xa0) {
     unsigned short wc = cp1254_2uni_1[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
   else if (c < 0xd0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else if (c < 0xe0) {
-    *pwc = (wchar_t) cp1254_2uni_2[c-0xd0];
+    *pwc = (ucs4_t) cp1254_2uni_2[c-0xd0];
     return 1;
   }
   else if (c < 0xf0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
-    *pwc = (wchar_t) cp1254_2uni_3[c-0xf0];
+    *pwc = (ucs4_t) cp1254_2uni_3[c-0xf0];
     return 1;
   }
   return RET_ILSEQ;
@@ -98,7 +98,7 @@ static const unsigned char cp1254_page20[48] = {
 };
 
 static int
-cp1254_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1254_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index f3240dac638fc6f412b76e887bcfb80ad65eae1d..61b2b59d7c04dade52f492bd3245be5848eac560 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp1255_2uni[128] = {
 };
 
 static int
-cp1255_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1255_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1255_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -89,7 +89,7 @@ static const unsigned char cp1255_page20[56] = {
 };
 
 static int
-cp1255_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1255_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index e7f7159463ae68fa1b5baed789bc94444bd6ef36..72284f4c114421119388a67698aa0b978476458c 100644 (file)
@@ -31,13 +31,13 @@ static const unsigned short cp1256_2uni[128] = {
 };
 
 static int
-cp1256_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1256_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) cp1256_2uni[c-0x80];
+    *pwc = (ucs4_t) cp1256_2uni[c-0x80];
   return 1;
 }
 
@@ -105,7 +105,7 @@ static const unsigned char cp1256_page20[56] = {
 };
 
 static int
-cp1256_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1256_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 80e0072a6b7b2b5219662785261820e559bd32f7..21b6d521d1ff872037c81edf839f1b009316d06b 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp1257_2uni[128] = {
 };
 
 static int
-cp1257_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1257_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1257_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -95,7 +95,7 @@ static const unsigned char cp1257_page20[48] = {
 };
 
 static int
-cp1257_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1257_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index e82d9d39caba58159a51d25c7cf83d3e5401d4f3..5e23b4e701e6a57903f448b9cc87b2bd8967e0b5 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp1258_2uni[128] = {
 };
 
 static int
-cp1258_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp1258_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp1258_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -100,7 +100,7 @@ static const unsigned char cp1258_page20[48] = {
 };
 
 static int
-cp1258_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp1258_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 8fa9121c91a6ed736fcc0177b6a0454110afeb3b..f7cfccd612616062eec482fc85fa49895164c6e0 100644 (file)
@@ -31,13 +31,13 @@ static const unsigned short cp850_2uni[128] = {
 };
 
 static int
-cp850_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp850_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) cp850_2uni[c-0x80];
+    *pwc = (ucs4_t) cp850_2uni[c-0x80];
   return 1;
 }
 
@@ -80,7 +80,7 @@ static const unsigned char cp850_page25[168] = {
 };
 
 static int
-cp850_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp850_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index a99d54e79cfb3ad56df5c44a6c1973cdad1d3052..ca582e0aecfd4c3d5c4aa4af3174e94e856e8940 100644 (file)
@@ -22,15 +22,15 @@ static const unsigned short cp866_2uni[80] = {
 };
 
 static int
-cp866_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp866_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else if (c < 0xb0)
-    *pwc = (wchar_t) c + 0x0390;
+    *pwc = (ucs4_t) c + 0x0390;
   else
-    *pwc = (wchar_t) cp866_2uni[c-0xb0];
+    *pwc = (ucs4_t) cp866_2uni[c-0xb0];
   return 1;
 }
 
@@ -81,7 +81,7 @@ static const unsigned char cp866_page25[168] = {
 };
 
 static int
-cp866_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp866_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 2694fd706b7c23cce2103cafe9195e2e8d316a85..dc144d5e4a64a5dd4d75b1ec7d14cbcf84bd82ef 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short cp874_2uni[128] = {
 };
 
 static int
-cp874_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp874_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = cp874_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -69,7 +69,7 @@ static const unsigned char cp874_page20[24] = {
 };
 
 static int
-cp874_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp874_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index c6aec6fcbbb26672adc8ea2bc7df9a00e0a478a3..22fa358ebebdbe59df0f45d920633a6668206209 100644 (file)
@@ -51,7 +51,7 @@
  */
 
 static int
-cp932_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp932_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
@@ -93,7 +93,7 @@ cp932_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-cp932_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp932_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 10575591817ad0cf6870843da79908c0a7fa73b4..baf71e4c4f85965e6e496885a64ed3ffe504f1e7 100644 (file)
@@ -127,7 +127,7 @@ static const unsigned short cp932ext_2uni_pagefa[388] = {
 };
 
 static int
-cp932ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp932ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 == 0x87) || (c1 >= 0xed && c1 <= 0xee) || (c1 >= 0xfa && c1 <= 0xfc)) {
@@ -147,7 +147,7 @@ cp932ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = cp932ext_2uni_pagefa[i-10716];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -635,7 +635,7 @@ static const Summary16 cp932ext_uni2indx_pageff[15] = {
 };
 
 static int
-cp932ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp932ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 4d4a5e4697a71993f0be20e99e88fe83c82fce88..f796c66edbf076bd5aa495abc4e8caf27c2398dc 100644 (file)
@@ -16,7 +16,7 @@ static const unsigned short cp936ext_2uni_pagea8[128-122] = {
 };
 
 static int
-cp936ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp936ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 == 0xa6) || (c1 == 0xa8)) {
@@ -33,7 +33,7 @@ cp936ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = cp936ext_2uni_pagea8[i-7532];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -60,7 +60,7 @@ static const unsigned short cp936ext_pagefe[24] = {
 };
 
 static int
-cp936ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp936ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     unsigned short c = 0;
index 51837cfce42b53b48efe6e7ebb1d7e535d572d45..a91b67e673090d98f80f6b44ef6190156c6d8110 100644 (file)
@@ -7,7 +7,7 @@
 #include "uhc_2.h"
 
 static int
-cp949_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp949_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII) */
@@ -36,7 +36,7 @@ cp949_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-cp949_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp949_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 34455eccb5a1abdc529bbed851fbd358aff85f06..2960312152eaa8c3999395b93dfaade6492492a8 100644 (file)
@@ -33,8 +33,6 @@
  *    0xA2CC    ---                          0x5341
  *    0xA2CE    ---                          0x5345
  *
- *    We don't implement these changes.
- *
  * 2. A small new row. See cp950ext.h.
  *
  * 3. CP950.TXT is lacking the range 0xC6A1..0xC7FC (Hiragana, Katakana,
  *    in the unicode.org BIG5 table.
  */
 
+static const unsigned short cp950_2uni_pagea1[314] = {
+  /* 0xa1 */
+  0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a,
+  0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52,
+  0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31,
+  0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35,
+  0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39,
+  0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d,
+  0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41,
+  0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b,
+  0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d,
+  0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7,
+  0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605,
+  0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105,
+  0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e,
+  0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7,
+  0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267,
+  0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65,
+  0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf,
+  0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642,
+  0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197,
+  0x2199, 0x2198, 0x2225, 0x2223, 0xff0f,
+  /* 0xa2 */
+  0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1,
+  0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5,
+  0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4,
+  0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7,
+  0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586,
+  0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a,
+  0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500,
+  0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e,
+  0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3,
+  0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12,
+  0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160,
+  0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168,
+  0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027,
+  0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 0xff21, 0xff22, 0xff23,
+  0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b,
+  0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33,
+  0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41,
+  0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49,
+  0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51,
+  0xff52, 0xff53, 0xff54, 0xff55, 0xff56,
+};
+
 #include "cp950ext.h"
 
 static int
-cp950_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp950_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII) */
@@ -60,6 +103,14 @@ cp950_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
     {
       unsigned char c2 = s[1];
       if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+        if (c < 0xa3) {
+          unsigned int i = 157 * (c - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
+          unsigned short wc = cp950_2uni_pagea1[i];
+          if (wc != 0xfffd) {
+            *pwc = (ucs4_t) wc;
+            return 2;
+          }
+        }
         if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) {
           int ret = big5_mbtowc(conv,pwc,s,2);
           if (ret != RET_ILSEQ)
@@ -77,7 +128,7 @@ cp950_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-cp950_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp950_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
@@ -88,7 +139,52 @@ cp950_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
     return ret;
 
   /* Code set 1 (BIG5 extended) */
-  ret = big5_wctomb(conv,buf,wc,2);
+  switch (wc >> 8) {
+    case 0x00:
+      if (wc == 0x00af) { buf[0] = 0xa1; buf[1] = 0xc2; ret = 2; break; }
+      if (wc == 0x00a2 || wc == 0x00a3 || wc == 0x00a4)
+        return RET_ILSEQ;
+      break;
+    case 0x02:
+      if (wc == 0x02cd) { buf[0] = 0xa1; buf[1] = 0xc5; ret = 2; break; }
+      break;
+    case 0x20:
+      if (wc == 0x2027) { buf[0] = 0xa1; buf[1] = 0x45; ret = 2; break; }
+      if (wc == 0x2022 || wc == 0x203e)
+        return RET_ILSEQ;
+      break;
+    case 0x22:
+      if (wc == 0x2215) { buf[0] = 0xa2; buf[1] = 0x41; ret = 2; break; }
+      if (wc == 0x2295) { buf[0] = 0xa1; buf[1] = 0xf2; ret = 2; break; }
+      if (wc == 0x2299) { buf[0] = 0xa1; buf[1] = 0xf3; ret = 2; break; }
+      if (wc == 0x223c)
+        return RET_ILSEQ;
+      break;
+    case 0x25:
+      if (wc == 0x2574) { buf[0] = 0xa1; buf[1] = 0x5a; ret = 2; break; }
+      break;
+    case 0x26:
+      if (wc == 0x2609 || wc == 0x2641)
+        return RET_ILSEQ;
+      break;
+    case 0xfe:
+      if (wc == 0xfe51) { buf[0] = 0xa1; buf[1] = 0x4e; ret = 2; break; }
+      if (wc == 0xfe68) { buf[0] = 0xa2; buf[1] = 0x42; ret = 2; break; }
+      break;
+    case 0xff:
+      if (wc == 0xff0f) { buf[0] = 0xa1; buf[1] = 0xfe; ret = 2; break; }
+      if (wc == 0xff3c) { buf[0] = 0xa2; buf[1] = 0x40; ret = 2; break; }
+      if (wc == 0xff5e) { buf[0] = 0xa1; buf[1] = 0xe3; ret = 2; break; }
+      if (wc == 0xffe0) { buf[0] = 0xa2; buf[1] = 0x46; ret = 2; break; }
+      if (wc == 0xffe1) { buf[0] = 0xa2; buf[1] = 0x47; ret = 2; break; }
+      if (wc == 0xffe3) { buf[0] = 0xa1; buf[1] = 0xc3; ret = 2; break; }
+      if (wc == 0xffe5) { buf[0] = 0xa2; buf[1] = 0x44; ret = 2; break; }
+      if (wc == 0xff64)
+        return RET_ILSEQ;
+      break;
+  }
+  if (ret == RET_ILSEQ)
+    ret = big5_wctomb(conv,buf,wc,2);
   if (ret != RET_ILSEQ) {
     if (ret != 2) abort();
     if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) {
index eeae270d62586092945573319f077362abb00bf0..78ee36b3e979305cebd3e10626139c6f7bf2cdb0 100644 (file)
@@ -14,7 +14,7 @@ static const unsigned short cp950ext_2uni_pagef9[157-116] = {
 };
 
 static int
-cp950ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+cp950ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 == 0xf9)) {
@@ -28,7 +28,7 @@ cp950ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = cp950ext_2uni_pagef9[i-13932];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -99,7 +99,7 @@ static const Summary16 cp950ext_uni2indx_page92[12] = {
 };
 
 static int
-cp950ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+cp950ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 9787a211a24dd9974f55cdfc723d356f6c564496..f8eb572309a3c4131cb43fe9d4290155ae9b5ee0 100644 (file)
@@ -695,6 +695,11 @@ DEFENCODING(( "GBK",                    /* JDK 1.1 */
             ces_gbk,
             { ces_gbk_mbtowc },           { ces_gbk_wctomb, NULL })
 
+DEFENCODING(( "GB18030",                /* glibc */
+            ),
+            gb18030,
+            { gb18030_mbtowc },           { gb18030_wctomb, NULL })
+
 DEFENCODING(( "ISO-2022-CN",            /* IANA, RFC 1922 */
               "csISO2022CN",
             /*"ISO2022CN",                 JDK 1.1 */
@@ -736,6 +741,11 @@ DEFENCODING(( "CP950",                  /* JDK 1.1 */
             cp950,
             { cp950_mbtowc },             { cp950_wctomb, NULL })
 
+DEFENCODING(( "BIG5HKSCS",              /* glibc */
+            ),
+            big5hkscs,
+            { big5hkscs_mbtowc },         { big5hkscs_wctomb, NULL })
+
 DEFENCODING(( "EUC-KR",                 /* IANA, RFC 1557 */
               "EUCKR",                  /* glibc */
               "csEUCKR",                /* IANA */
diff --git a/libiconv/encodings_local.def b/libiconv/encodings_local.def
new file mode 100644 (file)
index 0000000..1aeba6b
--- /dev/null
@@ -0,0 +1,29 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV 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 ICONV 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 ICONV 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.  */
+
+/* Names for locale dependent encodings. */
+
+DEFENCODING(( "CHAR",
+            ),
+            local_char,
+            { NULL },                     { NULL, NULL })
+
+DEFENCODING(( "WCHAR_T",                /* glibc */
+            ),
+            local_wchar_t,
+            { NULL },                     { NULL, NULL })
index ae8f7de49156d922b356226f2d22240bba3fd470..00995093d81d5daf6ba80f3b322d6dad8a116948 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 static int
-euc_cn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+euc_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII or GB 1988-89) */
@@ -28,7 +28,7 @@ euc_cn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-euc_cn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+euc_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 30918af414d8c22a8749262604de3c402332d467..b107a18b8753b019e7ddcb1bcb6bf1648a959409 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 static int
-euc_jp_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+euc_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */
@@ -89,7 +89,7 @@ euc_jp_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-euc_jp_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+euc_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 6f3c4f225b479d7c6b2908b0ba6173aac92dc863..24ba2c4db8b834b993c758c599e5e79396364dec 100644 (file)
@@ -6,7 +6,7 @@
 /* Specification: RFC 1557 */
 
 static int
-euc_kr_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+euc_kr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII or KS C 5636-1993) */
@@ -30,7 +30,7 @@ euc_kr_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-euc_kr_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+euc_kr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index f942efd542f4f342b8d3daf32619b84ceb98e3b4..91d37493350bacb19261fae6cd37d12a7e22e34e 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 static int
-euc_tw_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+euc_tw_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   /* Code set 0 (ASCII) */
@@ -55,7 +55,7 @@ euc_tw_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-euc_tw_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+euc_tw_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[3];
   int ret;
index a122ec22589e80fe14b959ae743d108a004e1450..57228cd20e27757916dd49f49e8cf3a2f9d9b027 100644 (file)
 #define ei_iso2022_jp2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_euc_cn_oflags (HAVE_QUOTATION_MARKS)
 #define ei_ces_gbk_oflags (HAVE_QUOTATION_MARKS)
+#define ei_gb18030_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_iso2022_cn_oflags (HAVE_QUOTATION_MARKS)
 #define ei_iso2022_cn_ext_oflags (HAVE_QUOTATION_MARKS)
 #define ei_hz_oflags (HAVE_QUOTATION_MARKS)
 #define ei_euc_tw_oflags (HAVE_QUOTATION_MARKS)
 #define ei_ces_big5_oflags (HAVE_QUOTATION_MARKS)
 #define ei_cp950_oflags (HAVE_QUOTATION_MARKS)
+#define ei_big5hkscs_oflags (HAVE_QUOTATION_MARKS)
 #define ei_euc_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_cp949_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
 #define ei_johab_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
index a28e3b47cbdf62094ab9f33f8013a806748592a6..f4b4f6050b95c7d9cd296fb8f744e5123d906ece 100644 (file)
@@ -13,7 +13,7 @@
 #include "gb12345ext.h"
 
 static int
-gb12345_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+gb12345_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   int ret;
 
@@ -28,7 +28,7 @@ gb12345_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-gb12345_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+gb12345_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   int ret;
 
index c00a690429d4c93d951a29c2e15fb3edd0c1e935..7a9de7578124974bb06aeb3e868afc07fa5bf900 100644 (file)
@@ -985,7 +985,7 @@ static const unsigned short gb12345ext_2uni_page30[6871] = {
 };
 
 static int
-gb12345ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+gb12345ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 == 0x21) || (c1 == 0x26) || (c1 == 0x28) || (c1 >= 0x30 && c1 <= 0x79)) {
@@ -1008,7 +1008,7 @@ gb12345ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = gb12345ext_2uni_page30[i-1410];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -1740,7 +1740,7 @@ static const Summary16 gb12345ext_uni2indx_pagefe[5] = {
 };
 
 static int
-gb12345ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+gb12345ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
diff --git a/libiconv/gb18030.h b/libiconv/gb18030.h
new file mode 100644 (file)
index 0000000..b0916e8
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * GB18030
+ */
+
+/*
+ * GB18030, as implemented in glibc-2.2, is an extension of GBK (= CP936).
+ * It adds the following ranges:
+ * 1. Two-byte range
+ *    0xA2E3, 0xA8BF, 0xA98A..0xA995, 0xFE50..0xFE9F
+ * 2. Four-byte range
+ *    0x{81..84}{30..39}{81..FE}{30..39}
+ *    Most of Unicode plane 1 in Unicode order.
+ */
+
+#include "gb18030ext.h"
+#include "gb18030uni.h"
+
+static int
+gb18030_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  int ret;
+
+  /* Code set 0 (ASCII) */
+  if (*s < 0x80)
+    return ascii_mbtowc(conv,pwc,s,n);
+
+  /* Code set 1 (GBK extended) */
+  ret = gbk_mbtowc(conv,pwc,s,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  ret = gb18030ext_mbtowc(conv,pwc,s,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 2 (remainder of Unicode) */
+  return gb18030uni_mbtowc(conv,pwc,s,n);
+}
+
+static int
+gb18030_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+  int ret;
+
+  /* Code set 0 (ASCII) */
+  ret = ascii_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 1 (GBK extended) */
+  ret = gbk_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  ret = gb18030ext_wctomb(conv,r,wc,n);
+  if (ret != RET_ILSEQ)
+    return ret;
+
+  /* Code set 2 (remainder of Unicode) */
+  return gb18030uni_wctomb(conv,r,wc,n);
+}
diff --git a/libiconv/gb18030ext.h b/libiconv/gb18030ext.h
new file mode 100644 (file)
index 0000000..7c42811
--- /dev/null
@@ -0,0 +1,215 @@
+
+/*
+ * GB18030 two-byte extension
+ */
+
+static const unsigned short gb18030ext_2uni_pagea9[13] = {
+  /* 0xa9 */
+  0xfffd, 0x2ff0, 0x2ff1, 0x2ff2, 0x2ff3, 0x2ff4, 0x2ff5, 0x2ff6,
+  0x2ff7, 0x2ff8, 0x2ff9, 0x2ffa, 0x2ffb,
+};
+static const unsigned short gb18030ext_2uni_pagefe[95] = {
+  /* 0xfe */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x2e81, 0xfffd, 0xfffd, 0xfffd, 0x2e84, 0x3473, 0x3447, 0x2e88,
+  0x2e8b, 0xfffd, 0x359e, 0x361a, 0x360e, 0x2e8c, 0xfffd, 0x396e,
+  0x3918, 0xfffd, 0x39cf, 0x39df, 0x3a73, 0x39d0, 0xfffd, 0xfffd,
+  0x3b4e, 0x3c6e, 0x3ce0, 0x2ea7, 0xfffd, 0xfffd, 0x2eaa, 0x4056,
+  0x415f, 0x2eae, 0x4337, 0x2eb3, 0x2eb6, 0x2eb7, 0xfffd, 0x43b1,
+  0x43ac, 0x2ebb, 0x43dd, 0x44d6, 0x4661, 0x464c, 0xfffd, 0x4723,
+  0x4729, 0x477c, 0x478d, 0x2eca, 0x4947, 0x497a, 0x497d, 0x4982,
+  0x4983, 0x4985, 0x4986, 0x499f, 0x499b, 0x49b7, 0x49b6, 0xfffd,
+  0xfffd, 0x4ca3, 0x4c9f, 0x4ca0, 0x4ca1, 0x4c77, 0x4ca2, 0x4d13,
+  0x4d14, 0x4d15, 0x4d16, 0x4d17, 0x4d18, 0x4d19, 0x4dae,
+};
+
+static int
+gb18030ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 == 0xa2) || (c1 >= 0xa8 && c1 <= 0xa9) || (c1 == 0xfe)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) {
+        unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40));
+        unsigned short wc = 0xfffd;
+        if (i < 7410) {
+          if (i == 6432)
+            wc = 0x20ac;
+        } else if (i < 23750) {
+          if (i == 7536)
+            wc = 0x01f9;
+          else if (i >= 7672 && i < 7685)
+            wc = gb18030ext_2uni_pagea9[i-7672];
+        } else {
+          if (i < 23845)
+            wc = gb18030ext_2uni_pagefe[i-23750];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (ucs4_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short gb18030ext_page2e[80] = {
+  0x0000, 0xfe50, 0x0000, 0x0000, 0xfe54, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
+  0xfe57, 0x0000, 0x0000, 0xfe58, 0xfe5d, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe6b, /*0xa0-0xa7*/
+  0x0000, 0x0000, 0xfe6e, 0x0000, 0x0000, 0x0000, 0xfe71, 0x0000, /*0xa8-0xaf*/
+  0x0000, 0x0000, 0x0000, 0xfe73, 0x0000, 0x0000, 0xfe74, 0xfe75, /*0xb0-0xb7*/
+  0x0000, 0x0000, 0x0000, 0xfe79, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/
+  0x0000, 0x0000, 0xfe84, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
+};
+static const unsigned short gb18030ext_page2f[16] = {
+  0xa98a, 0xa98b, 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, /*0xf0-0xf7*/
+  0xa992, 0xa993, 0xa994, 0xa995, 0x0000, 0x0000, 0x0000, 0x0000, /*0xf8-0xff*/
+};
+static const unsigned short gb18030ext_page34[56] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe56, /*0x40-0x47*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
+  0x0000, 0x0000, 0x0000, 0xfe55, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/
+};
+static const unsigned short gb18030ext_page36[24] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5c, 0x0000, /*0x08-0x0f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/
+  0x0000, 0x0000, 0xfe5b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
+};
+static const unsigned short gb18030ext_page39[24] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe62, /*0xc8-0xcf*/
+  0xfe65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe63, /*0xd8-0xdf*/
+};
+static const unsigned short gb18030ext_page43[56] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0xfe78, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
+  0x0000, 0xfe77, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7a, 0x0000, 0x0000, /*0xd8-0xdf*/
+};
+static const unsigned short gb18030ext_page46[32] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0xfe7d, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
+  0x0000, 0xfe7c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
+};
+static const unsigned short gb18030ext_page47_1[16] = {
+  0x0000, 0x0000, 0x0000, 0xfe80, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/
+  0x0000, 0xfe81, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/
+};
+static const unsigned short gb18030ext_page47_2[24] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0xfe82, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe83, 0x0000, 0x0000, /*0x88-0x8f*/
+};
+static const unsigned short gb18030ext_page49[120] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe85, /*0x40-0x47*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/
+  0x0000, 0x0000, 0xfe86, 0x0000, 0x0000, 0xfe87, 0x0000, 0x0000, /*0x78-0x7f*/
+  0x0000, 0x0000, 0xfe88, 0xfe89, 0x0000, 0xfe8a, 0xfe8b, 0x0000, /*0x80-0x87*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
+  0x0000, 0x0000, 0x0000, 0xfe8d, 0x0000, 0x0000, 0x0000, 0xfe8c, /*0x98-0x9f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe8f, 0xfe8e, /*0xb0-0xb7*/
+};
+static const unsigned short gb18030ext_page4c[56] = {
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe96, /*0x70-0x77*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe93, /*0x98-0x9f*/
+  0xfe94, 0xfe95, 0xfe97, 0xfe92, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/
+};
+static const unsigned short gb18030ext_page4d[16] = {
+  0x0000, 0x0000, 0x0000, 0xfe98, 0xfe99, 0xfe9a, 0xfe9b, 0xfe9c, /*0x10-0x17*/
+  0xfe9d, 0xfe9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/
+};
+
+static int
+gb18030ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+  if (n >= 2) {
+    unsigned short c = 0;
+    if (wc == 0x01f9)
+      c = 0xa8bf;
+    else if (wc == 0x20ac)
+      c = 0xa2e3;
+    else if (wc >= 0x2e80 && wc < 0x2ed0)
+      c = gb18030ext_page2e[wc-0x2e80];
+    else if (wc >= 0x2ff0 && wc < 0x3000)
+      c = gb18030ext_page2f[wc-0x2ff0];
+    else if (wc >= 0x3440 && wc < 0x3478)
+      c = gb18030ext_page34[wc-0x3440];
+    else if (wc == 0x359e)
+      c = 0xfe5a;
+    else if (wc >= 0x3608 && wc < 0x3620)
+      c = gb18030ext_page36[wc-0x3608];
+    else if (wc == 0x3918)
+      c = 0xfe60;
+    else if (wc == 0x396e)
+      c = 0xfe5f;
+    else if (wc >= 0x39c8 && wc < 0x39e0)
+      c = gb18030ext_page39[wc-0x39c8];
+    else if (wc == 0x3a73)
+      c = 0xfe64;
+    else if (wc == 0x3b4e)
+      c = 0xfe68;
+    else if (wc == 0x3c6e)
+      c = 0xfe69;
+    else if (wc == 0x3ce0)
+      c = 0xfe6a;
+    else if (wc == 0x4056)
+      c = 0xfe6f;
+    else if (wc == 0x415f)
+      c = 0xfe70;
+    else if (wc == 0x4337)
+      c = 0xfe72;
+    else if (wc >= 0x43a8 && wc < 0x43e0)
+      c = gb18030ext_page43[wc-0x43a8];
+    else if (wc == 0x44d6)
+      c = 0xfe7b;
+    else if (wc >= 0x4648 && wc < 0x4668)
+      c = gb18030ext_page46[wc-0x4648];
+    else if (wc >= 0x4720 && wc < 0x4730)
+      c = gb18030ext_page47_1[wc-0x4720];
+    else if (wc >= 0x4778 && wc < 0x4790)
+      c = gb18030ext_page47_2[wc-0x4778];
+    else if (wc >= 0x4940 && wc < 0x49b8)
+      c = gb18030ext_page49[wc-0x4940];
+    else if (wc >= 0x4c70 && wc < 0x4ca8)
+      c = gb18030ext_page4c[wc-0x4c70];
+    else if (wc >= 0x4d10 && wc < 0x4d20)
+      c = gb18030ext_page4d[wc-0x4d10];
+    else if (wc == 0x4dae)
+      c = 0xfe9f;
+    if (c != 0) {
+      r[0] = (c >> 8); r[1] = (c & 0xff);
+      return 2;
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
diff --git a/libiconv/gb18030uni.h b/libiconv/gb18030uni.h
new file mode 100644 (file)
index 0000000..16d851c
--- /dev/null
@@ -0,0 +1,603 @@
+
+/*
+ * GB18030 four-byte extension
+ */
+
+static const unsigned short gb18030uni_charset2uni_ranges[368] = {
+  0x0000, 0x0022,  0x0023, 0x0024,  0x0025, 0x002b,  0x002c, 0x0030,
+  0x0031, 0x004f,  0x0050, 0x0057,  0x0058, 0x005d,  0x005e, 0x005e,
+  0x005f, 0x0062,  0x0063, 0x0065,  0x0066, 0x0066,  0x0067, 0x0067,
+  0x0068, 0x006b,  0x006c, 0x007c,  0x007d, 0x0083,  0x0084, 0x0092,
+  0x0093, 0x00aa,  0x00ab, 0x00ad,  0x00ae, 0x00b1,  0x00b2, 0x00ce,
+  0x00cf, 0x0130,  0x0131, 0x0131,  0x0132, 0x0132,  0x0133, 0x0133,
+  0x0134, 0x0134,  0x0135, 0x0135,  0x0136, 0x0136,  0x0137, 0x0137,
+  0x0138, 0x0153,  0x0154, 0x01aa,  0x01ab, 0x01b9,  0x01ba, 0x021e,
+  0x021f, 0x021f,  0x0220, 0x022c,  0x022d, 0x02e3,  0x02e5, 0x02eb,
+  0x02ec, 0x02ec,  0x02ed, 0x0323,  0x0324, 0x0331,  0x0332, 0x0332,
+  0x0333, 0x1ef0,  0x1ef1, 0x1ef2,  0x1ef3, 0x1ef3,  0x1ef4, 0x1ef5,
+  0x1ef6, 0x1efc,  0x1efd, 0x1f05,  0x1f06, 0x1f06,  0x1f07, 0x1f07,
+  0x1f08, 0x1f0c,  0x1f0d, 0x1f7c,  0x1f7d, 0x1fd2,  0x1fd3, 0x1fd3,
+  0x1fd4, 0x1fd6,  0x1fd7, 0x1fe2,  0x1fe3, 0x1fec,  0x1fed, 0x202a,
+  0x202b, 0x202e,  0x202f, 0x2038,  0x2045, 0x2046,  0x2047, 0x20b4,
+  0x20b5, 0x20ba,  0x20bb, 0x20bb,  0x20bc, 0x20be,  0x20bf, 0x20c2,
+  0x20c3, 0x20c4,  0x20c5, 0x20c6,  0x20c7, 0x20c7,  0x20c8, 0x20c8,
+  0x20c9, 0x20ca,  0x20cb, 0x20cf,  0x20d0, 0x20d4,  0x20d5, 0x20de,
+  0x20df, 0x20e1,  0x20e2, 0x20e6,  0x20e7, 0x20f3,  0x20f4, 0x20f5,
+  0x20f6, 0x20fb,  0x20fc, 0x2120,  0x2121, 0x2123,  0x2124, 0x212e,
+  0x212f, 0x2147,  0x2148, 0x2199,  0x219a, 0x22d1,  0x22e7, 0x22f0,
+  0x22f1, 0x233f,  0x2355, 0x2358,  0x2359, 0x2365,  0x2366, 0x2368,
+  0x2373, 0x2382,  0x2383, 0x238a,  0x238b, 0x2392,  0x2393, 0x2395,
+  0x2396, 0x2397,  0x2398, 0x23a9,  0x23aa, 0x23c8,  0x23c9, 0x23ca,
+  0x23cb, 0x2400,  0x2401, 0x2401,  0x2402, 0x2c3f,  0x2c40, 0x2c41,
+  0x2c42, 0x2c44,  0x2c45, 0x2c46,  0x2c47, 0x2c60,  0x2c61, 0x2c62,
+  0x2c63, 0x2c65,  0x2c66, 0x2c69,  0x2c6a, 0x2c6b,  0x2c6c, 0x2c6e,
+  0x2c6f, 0x2c7c,  0x2c7d, 0x2d87,  0x2da6, 0x2da6,  0x2da7, 0x2dab,
+  0x2dac, 0x2dad,  0x2dae, 0x2dc3,  0x2dc5, 0x2dcb,  0x2dce, 0x2dd2,
+  0x2dd9, 0x2ecb,  0x2ecf, 0x2ed5,  0x2ed6, 0x2f46,  0x2f47, 0x3030,
+  0x3031, 0x303c,  0x303d, 0x303e,  0x303f, 0x3060,  0x3061, 0x3069,
+  0x306a, 0x306b,  0x306c, 0x306d,  0x306e, 0x30de,  0x30df, 0x3109,
+  0x310a, 0x3233,  0x3234, 0x32a2,  0x32a3, 0x32ad,  0x32ae, 0x35aa,
+  0x35ab, 0x35ff,  0x3600, 0x365f,  0x3660, 0x366d,  0x366e, 0x3700,
+  0x3701, 0x37da,  0x37db, 0x38f9,  0x38fa, 0x396a,  0x396b, 0x3cdf,
+  0x3ce0, 0x3de7,  0x3de8, 0x3fbe,  0x3fbf, 0x4032,  0x4033, 0x4036,
+  0x4037, 0x4061,  0x4062, 0x4159,  0x415a, 0x42ce,  0x42cf, 0x42e2,
+  0x42e3, 0x43a3,  0x43a4, 0x43a8,  0x43a9, 0x43fa,  0x43fb, 0x440a,
+  0x440b, 0x45c3,  0x45c4, 0x45f5,  0x45f6, 0x45f7,  0x45f8, 0x45fb,
+  0x45fc, 0x45fc,  0x45fd, 0x4610,  0x4611, 0x4613,  0x4614, 0x4629,
+  0x462a, 0x48e8,  0x48e9, 0x490f,  0x4910, 0x497e,  0x497f, 0x4a12,
+  0x4a13, 0x4a19,  0x4abe, 0x8261,  0x9b59, 0x9b84,  0x9b85, 0x9bd0,
+  0x9bd1, 0x9beb,  0x9bec, 0x9c3c,  0x9c3d, 0x9c45,  0x9c46, 0x9c5f,
+  0x9c60, 0x9c60,  0x9c61, 0x9c61,  0x9c62, 0x9c64,  0x9c65, 0x9c6a,
+  0x9c6b, 0x9c6b,  0x9c6c, 0x9c6d,  0x9c6e, 0xa067,  0xa074, 0xa074,
+  0xa07a, 0xa07a,  0xa080, 0xa10f,  0xa113, 0xa18e,  0xa192, 0xa1a9
+};
+
+static const unsigned short gb18030uni_uni2charset_ranges[368] = {
+  0x0081, 0x00a3,  0x00a5, 0x00a6,  0x00a9, 0x00af,  0x00b2, 0x00b6,
+  0x00b8, 0x00d6,  0x00d8, 0x00df,  0x00e2, 0x00e7,  0x00eb, 0x00eb,
+  0x00ee, 0x00f1,  0x00f4, 0x00f6,  0x00f8, 0x00f8,  0x00fb, 0x00fb,
+  0x00fd, 0x0100,  0x0102, 0x0112,  0x0114, 0x011a,  0x011c, 0x012a,
+  0x012c, 0x0143,  0x0145, 0x0147,  0x0149, 0x014c,  0x014e, 0x016a,
+  0x016c, 0x01cd,  0x01cf, 0x01cf,  0x01d1, 0x01d1,  0x01d3, 0x01d3,
+  0x01d5, 0x01d5,  0x01d7, 0x01d7,  0x01d9, 0x01d9,  0x01db, 0x01db,
+  0x01dd, 0x01f8,  0x01fa, 0x0250,  0x0252, 0x0260,  0x0262, 0x02c6,
+  0x02c8, 0x02c8,  0x02cc, 0x02d8,  0x02da, 0x0390,  0x03aa, 0x03b0,
+  0x03c2, 0x03c2,  0x03ca, 0x0400,  0x0402, 0x040f,  0x0450, 0x0450,
+  0x0452, 0x200f,  0x2011, 0x2012,  0x2017, 0x2017,  0x201a, 0x201b,
+  0x201e, 0x2024,  0x2027, 0x202f,  0x2031, 0x2031,  0x2034, 0x2034,
+  0x2036, 0x203a,  0x203c, 0x20ab,  0x20ad, 0x2102,  0x2104, 0x2104,
+  0x2106, 0x2108,  0x210a, 0x2115,  0x2117, 0x2120,  0x2122, 0x215f,
+  0x216c, 0x216f,  0x217a, 0x2183,  0x2194, 0x2195,  0x219a, 0x2207,
+  0x2209, 0x220e,  0x2210, 0x2210,  0x2212, 0x2214,  0x2216, 0x2219,
+  0x221b, 0x221c,  0x2221, 0x2222,  0x2224, 0x2224,  0x2226, 0x2226,
+  0x222c, 0x222d,  0x222f, 0x2233,  0x2238, 0x223c,  0x223e, 0x2247,
+  0x2249, 0x224b,  0x224d, 0x2251,  0x2253, 0x225f,  0x2262, 0x2263,
+  0x2268, 0x226d,  0x2270, 0x2294,  0x2296, 0x2298,  0x229a, 0x22a4,
+  0x22a6, 0x22be,  0x22c0, 0x2311,  0x2313, 0x244a,  0x246a, 0x2473,
+  0x249c, 0x24ea,  0x254c, 0x254f,  0x2574, 0x2580,  0x2590, 0x2592,
+  0x25a2, 0x25b1,  0x25b4, 0x25bb,  0x25be, 0x25c5,  0x25c8, 0x25ca,
+  0x25cc, 0x25cd,  0x25d0, 0x25e1,  0x25e6, 0x2604,  0x2607, 0x2608,
+  0x260a, 0x263f,  0x2641, 0x2641,  0x2643, 0x2e80,  0x2e82, 0x2e83,
+  0x2e85, 0x2e87,  0x2e89, 0x2e8a,  0x2e8d, 0x2ea6,  0x2ea8, 0x2ea9,
+  0x2eab, 0x2ead,  0x2eaf, 0x2eb2,  0x2eb4, 0x2eb5,  0x2eb8, 0x2eba,
+  0x2ebc, 0x2ec9,  0x2ecb, 0x2fd5,  0x3004, 0x3004,  0x3018, 0x301c,
+  0x301f, 0x3020,  0x302a, 0x303f,  0x3094, 0x309a,  0x30f7, 0x30fb,
+  0x312a, 0x321c,  0x322a, 0x3230,  0x3232, 0x32a2,  0x32a4, 0x338d,
+  0x3390, 0x339b,  0x339f, 0x33a0,  0x33a2, 0x33c3,  0x33c5, 0x33cd,
+  0x33cf, 0x33d0,  0x33d3, 0x33d4,  0x33d6, 0x3446,  0x3448, 0x3472,
+  0x3474, 0x359d,  0x359f, 0x360d,  0x360f, 0x3619,  0x361b, 0x3917,
+  0x3919, 0x396d,  0x396f, 0x39ce,  0x39d1, 0x39de,  0x39e0, 0x3a72,
+  0x3a74, 0x3b4d,  0x3b4f, 0x3c6d,  0x3c6f, 0x3cdf,  0x3ce1, 0x4055,
+  0x4057, 0x415e,  0x4160, 0x4336,  0x4338, 0x43ab,  0x43ad, 0x43b0,
+  0x43b2, 0x43dc,  0x43de, 0x44d5,  0x44d7, 0x464b,  0x464d, 0x4660,
+  0x4662, 0x4722,  0x4724, 0x4728,  0x472a, 0x477b,  0x477d, 0x478c,
+  0x478e, 0x4946,  0x4948, 0x4979,  0x497b, 0x497c,  0x497e, 0x4981,
+  0x4984, 0x4984,  0x4987, 0x499a,  0x499c, 0x499e,  0x49a0, 0x49b5,
+  0x49b8, 0x4c76,  0x4c78, 0x4c9e,  0x4ca4, 0x4d12,  0x4d1a, 0x4dad,
+  0x4daf, 0x4db5,  0xa000, 0xd7a3,  0xf900, 0xf92b,  0xf92d, 0xf978,
+  0xf97a, 0xf994,  0xf996, 0xf9e6,  0xf9e8, 0xf9f0,  0xf9f2, 0xfa0b,
+  0xfa10, 0xfa10,  0xfa12, 0xfa12,  0xfa15, 0xfa17,  0xfa19, 0xfa1e,
+  0xfa22, 0xfa22,  0xfa25, 0xfa26,  0xfa2a, 0xfe23,  0xfe32, 0xfe32,
+  0xfe58, 0xfe58,  0xfe70, 0xfeff,  0xff61, 0xffdc,  0xffe6, 0xfffd
+};
+
+static const struct { unsigned short diff; unsigned short bitmap_offset; } gb18030uni_ranges[184] = {
+  {   129, 0x0000 }, {   130, 0x0023 }, {   132, 0x0025 }, {   134, 0x002c },
+  {   135, 0x0031 }, {   136, 0x0050 }, {   138, 0x0058 }, {   141, 0x005e },
+  {   143, 0x005f }, {   145, 0x0063 }, {   146, 0x0066 }, {   148, 0x0067 },
+  {   149, 0x0068 }, {   150, 0x006c }, {   151, 0x007d }, {   152, 0x0084 },
+  {   153, 0x0093 }, {   154, 0x00ab }, {   155, 0x00ae }, {   156, 0x00b2 },
+  {   157, 0x00cf }, {   158, 0x0131 }, {   159, 0x0132 }, {   160, 0x0133 },
+  {   161, 0x0134 }, {   162, 0x0135 }, {   163, 0x0136 }, {   164, 0x0137 },
+  {   165, 0x0138 }, {   166, 0x0154 }, {   167, 0x01ab }, {   168, 0x01ba },
+  {   169, 0x021f }, {   172, 0x0220 }, {   173, 0x022d }, {   197, 0x02e4 },
+  {   214, 0x02eb }, {   221, 0x02ec }, {   222, 0x0323 }, {   286, 0x0331 },
+  {   287, 0x0332 }, {   288, 0x1ef0 }, {   292, 0x1ef2 }, {   294, 0x1ef3 },
+  {   296, 0x1ef5 }, {   298, 0x1efc }, {   299, 0x1f05 }, {   301, 0x1f06 },
+  {   302, 0x1f07 }, {   303, 0x1f0c }, {   304, 0x1f7c }, {   305, 0x1fd2 },
+  {   306, 0x1fd3 }, {   307, 0x1fd6 }, {   308, 0x1fe2 }, {   309, 0x1fec },
+  {   321, 0x202a }, {   331, 0x202e }, {   335, 0x2038 }, {   339, 0x203a },
+  {   340, 0x20a8 }, {   341, 0x20ae }, {   342, 0x20af }, {   343, 0x20b2 },
+  {   344, 0x20b6 }, {   348, 0x20b8 }, {   349, 0x20ba }, {   350, 0x20bb },
+  {   355, 0x20bc }, {   356, 0x20be }, {   360, 0x20c3 }, {   361, 0x20c8 },
+  {   362, 0x20d2 }, {   363, 0x20d5 }, {   364, 0x20da }, {   366, 0x20e7 },
+  {   370, 0x20e9 }, {   372, 0x20ef }, {   373, 0x2114 }, {   374, 0x2117 },
+  {   375, 0x2122 }, {   376, 0x213b }, {   377, 0x218d }, {   387, 0x22c5 },
+  {   427, 0x22cf }, {   503, 0x231e }, {   539, 0x2322 }, {   554, 0x232f },
+  {   559, 0x2332 }, {   561, 0x2342 }, {   563, 0x234a }, {   565, 0x2352 },
+  {   566, 0x2355 }, {   568, 0x2357 }, {   572, 0x2369 }, {   574, 0x2388 },
+  {   575, 0x238a }, {   576, 0x23c0 }, {   577, 0x23c1 }, {   578, 0x2bff },
+  {   579, 0x2c01 }, {   580, 0x2c04 }, {   582, 0x2c06 }, {   583, 0x2c20 },
+  {   584, 0x2c22 }, {   585, 0x2c25 }, {   586, 0x2c29 }, {   588, 0x2c2b },
+  {   589, 0x2c2e }, {   590, 0x2c3c }, {   606, 0x2d47 }, {   625, 0x2d48 },
+  {   627, 0x2d4d }, {   636, 0x2d4f }, {   719, 0x2d65 }, {   809, 0x2d6c },
+  {   849, 0x2d71 }, {   859, 0x2e64 }, {   860, 0x2e6b }, {   861, 0x2edc },
+  {   863, 0x2fc6 }, {   866, 0x2fd2 }, {   867, 0x2fd4 }, {   868, 0x2ff6 },
+  {   869, 0x2fff }, {   871, 0x3001 }, {   872, 0x3003 }, {   873, 0x3074 },
+  {   874, 0x309f }, {   875, 0x31c9 }, {   876, 0x3238 }, {   877, 0x3243 },
+  {   878, 0x3540 }, {   879, 0x3595 }, {   881, 0x35f5 }, {   882, 0x3603 },
+  {   883, 0x3696 }, {   884, 0x3770 }, {   885, 0x388f }, {   886, 0x3900 },
+  {   887, 0x3c75 }, {   888, 0x3d7d }, {   889, 0x3f54 }, {   890, 0x3fc8 },
+  {   891, 0x3fcc }, {   892, 0x3ff7 }, {   893, 0x40ef }, {   894, 0x4264 },
+  {   895, 0x4278 }, {   896, 0x4339 }, {   897, 0x433e }, {   898, 0x4390 },
+  {   899, 0x43a0 }, {   900, 0x4559 }, {   901, 0x458b }, {   902, 0x458d },
+  {   904, 0x4591 }, {   906, 0x4592 }, {   907, 0x45a6 }, {   908, 0x45a9 },
+  {   910, 0x45bf }, {   911, 0x487e }, {   916, 0x48a5 }, {   923, 0x4914 },
+  {   924, 0x49a8 }, { 21826, 0x49af }, { 23975, 0x8153 }, { 23976, 0x817f },
+  { 23977, 0x81cb }, { 23978, 0x81e6 }, { 23979, 0x8237 }, { 23980, 0x8240 },
+  { 23984, 0x825a }, { 23985, 0x825b }, { 23987, 0x825c }, { 23988, 0x825f },
+  { 23991, 0x8265 }, { 23993, 0x8266 }, { 23996, 0x8268 }, { 23998, 0x8662 },
+  { 24030, 0x8663 }, { 24048, 0x8664 }, { 24142, 0x86f4 }, { 24148, 0x8770 }
+};
+
+static const unsigned char gb18030uni_bitmap[4337] = {
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
+  0xff, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0x03, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0x03, 0x00, 0x38, 0x00, 0x80, 0x21, 0x82, 0xbf, 0xfe, 0xff, 0xfd, 0xf3,
+  0xff, 0xff, 0x3f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0x7f, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x19, 0xff, 0xff,
+  0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff,
+  0xff, 0xff, 0x7f, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x06, 0xfe, 0xff,
+  0xfb, 0xff, 0xff, 0xfb, 0x1f, 0x00, 0xff, 0xff, 0xff, 0x07, 0x1f, 0x00,
+  0x00, 0x10, 0x00, 0x88, 0xfe, 0xff, 0xff, 0x07, 0xff, 0xff, 0x3f, 0x00,
+  0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0x7f, 0xff, 0xbf, 0xff, 0xff,
+  0xff, 0x1f, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x3f, 0x1f, 0xff,
+  0xff, 0xff, 0x01, 0x00, 0xee, 0x9f, 0xf9, 0xff, 0xff, 0xfd, 0xc5, 0xd3,
+  0x9f, 0x39, 0x80, 0xb0, 0xcf, 0xff, 0xff, 0x07, 0xe4, 0x87, 0xf9, 0xff,
+  0xff, 0xfd, 0x6d, 0xd3, 0x87, 0x39, 0x00, 0x5e, 0xc0, 0xff, 0x1f, 0x00,
+  0xee, 0xaf, 0xfb, 0xff, 0xff, 0xfd, 0xed, 0xf3, 0xbf, 0x3b, 0x01, 0x00,
+  0xc1, 0xff, 0x00, 0x00, 0xee, 0x9f, 0xf9, 0xff, 0xff, 0xfd, 0xcd, 0xf3,
+  0x8f, 0x39, 0xc0, 0xb0, 0xc3, 0xff, 0x01, 0x00, 0xec, 0xc7, 0x3d, 0xd6,
+  0x18, 0xc7, 0xbf, 0xc3, 0xc7, 0x3d, 0x80, 0x00, 0x80, 0xff, 0x07, 0x00,
+  0xee, 0xdf, 0xfd, 0xff, 0xff, 0xfd, 0xef, 0xc3, 0xdf, 0x3d, 0x60, 0x00,
+  0xc3, 0xff, 0x00, 0x00, 0xec, 0xdf, 0xfd, 0xff, 0xff, 0xfd, 0xef, 0xc3,
+  0xdf, 0x3d, 0x60, 0x40, 0xc3, 0xff, 0x00, 0x00, 0xec, 0xdf, 0xfd, 0xff,
+  0xff, 0xfd, 0xff, 0xc3, 0xcf, 0x3d, 0x80, 0x00, 0xc3, 0xff, 0x00, 0x00,
+  0xec, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xfb, 0x2f, 0x7f, 0x84, 0x5f, 0xff,
+  0x00, 0x00, 0x1c, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87,
+  0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x96, 0x25, 0xf0, 0xfe,
+  0xae, 0xec, 0xff, 0x3b, 0x5f, 0x3f, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
+  0xff, 0x07, 0xfe, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xdf,
+  0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0xfb, 0xf6, 0xc7, 0x03, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff,
+  0xff, 0xff, 0x7f, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03,
+  0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3d, 0x7f, 0x3d,
+  0xff, 0xff, 0xff, 0xff, 0x7f, 0x3d, 0xff, 0xff, 0xff, 0x7f, 0x3d, 0x7f,
+  0x3d, 0x7f, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x3d, 0x7f,
+  0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x1f,
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0x1f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00,
+  0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0x03, 0x00, 0x00,
+  0xff, 0x7f, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0x3f, 0x3f,
+  0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0xff, 0xaa, 0xff, 0xff, 0xff, 0x3f,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xcf, 0xef,
+  0xff, 0xff, 0xdc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f,
+  0x00, 0x00, 0x00, 0xfc, 0xf1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xff, 0x7f,
+  0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 0x00, 0x00, 0x80, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0x1f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x1f, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
+  0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf8, 0xff, 0x0f, 0xfe,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x80, 0xf7, 0xfc, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff,
+  0xff, 0xeb, 0xd1, 0x9f, 0x3f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xc7, 0xff,
+  0xff, 0xbf, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0x38, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
+  0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0x01, 0x00, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xe7, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xf9, 0xff,
+  0xf7, 0xff, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
+  0x1f, 0x00, 0x3e, 0xf8, 0xff, 0xff, 0xdf, 0xd7, 0xf6, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
+  0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
+  0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03,
+  0x00, 0x00, 0x00, 0xc0, 0x7f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff,
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe7,
+  0xe7, 0xe7, 0xfd, 0x01, 0xf8
+};
+
+static int
+gb18030uni_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if (c1 >= 0x81 && c1 <= 0x84) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if (c2 >= 0x30 && c2 <= 0x39) {
+        if (n >= 3) {
+          unsigned char c3 = s[2];
+          if (c3 >= 0x81 && c3 <= 0xfe) {
+            if (n >= 4) {
+              unsigned char c4 = s[3];
+              if (c4 >= 0x30 && c4 <= 0x39) {
+                unsigned int i = (((c1 - 0x81) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30);
+                if (i >= 0 && i <= 41385) {
+                  unsigned int k1 = 0;
+                  unsigned int k2 = 183;
+                  while (k1 < k2) {
+                    unsigned int k = (k1 + k2) / 2;
+                    if (i <= gb18030uni_charset2uni_ranges[2*k+1])
+                      k2 = k;
+                    else if (i >= gb18030uni_charset2uni_ranges[2*k+2])
+                      k1 = k + 1;
+                    else
+                      return RET_ILSEQ;
+                  }
+                  {
+                    unsigned int bitmap_index = i - gb18030uni_charset2uni_ranges[2*k1] + gb18030uni_ranges[k1].bitmap_offset;
+                    if ((gb18030uni_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {
+                      unsigned int diff = gb18030uni_ranges[k1].diff;
+                      *pwc = (ucs4_t) (i + diff);
+                      return 4;
+                    }
+                  }
+                }
+              }
+              return RET_ILSEQ;
+            }
+            return RET_TOOFEW(0);
+          }
+          return RET_ILSEQ;
+        }
+        return RET_TOOFEW(0);
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static int
+gb18030uni_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+  if (n >= 4) {
+    unsigned int i = wc;
+    if (i >= 0x0081 && i <= 0xfffd) {
+      unsigned int k1 = 0;
+      unsigned int k2 = 183;
+      while (k1 < k2) {
+        unsigned int k = (k1 + k2) / 2;
+        if (i <= gb18030uni_uni2charset_ranges[2*k+1])
+          k2 = k;
+        else if (i >= gb18030uni_uni2charset_ranges[2*k+2])
+          k1 = k + 1;
+        else
+          return RET_ILSEQ;
+      }
+      {
+        unsigned int bitmap_index = i - gb18030uni_uni2charset_ranges[2*k1] + gb18030uni_ranges[k1].bitmap_offset;
+        if ((gb18030uni_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {
+          unsigned int diff = gb18030uni_ranges[k1].diff;
+          i -= diff;
+          r[3] = (i % 10) + 0x30; i = i / 10;
+          r[2] = (i % 126) + 0x81; i = i / 126;
+          r[1] = (i % 10) + 0x30; i = i / 10;
+          r[0] = i + 0x81;
+          return 4;
+        }
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
index 251c664b4c8cfbdefc7fd7e14aa78391fccf76f7..d2ef9957dbad1b5448570e240bdb8076c60669fc 100644 (file)
@@ -1060,7 +1060,7 @@ static const unsigned short gb2312_2uni_page30[6768] = {
 };
 
 static int
-gb2312_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+gb2312_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x21 && c1 <= 0x29) || (c1 >= 0x30 && c1 <= 0x77)) {
@@ -1077,7 +1077,7 @@ gb2312_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = gb2312_2uni_page30[i-1410];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -2513,7 +2513,7 @@ static const Summary16 gb2312_uni2indx_pageff[15] = {
 };
 
 static int
-gb2312_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+gb2312_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 23a48c60ac3711e88b3762bebca0afec0c85b76a..b81bb05b2a97a76ac8fabcf0ee15434d69a3860f 100644 (file)
@@ -47,7 +47,7 @@
 #include "cp936ext.h"
 
 static int
-gbk_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
 
@@ -95,7 +95,7 @@ gbk_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-gbk_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 04ee88c5aced4d1de6b419c782985616a5d7ef54..b88714f6ed1564620866ff6aadc59d23ca873e90 100644 (file)
@@ -807,7 +807,7 @@ static const unsigned short gbkext1_2uni_page81[6080] = {
 };
 
 static int
-gbkext1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+gbkext1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x81 && c1 <= 0xa0)) {
@@ -821,7 +821,7 @@ gbkext1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = gbkext1_2uni_page81[i];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
index f787f988df5ba519e97958ec71adcc4505715c50..92844d8f7a355295e6b63dbfa0db2d8f8c97eec8 100644 (file)
@@ -1128,7 +1128,7 @@ static const unsigned short gbkext2_2uni_pagea8[8272] = {
 };
 
 static int
-gbkext2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+gbkext2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0xa8 && c1 <= 0xfe)) {
@@ -1142,7 +1142,7 @@ gbkext2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = gbkext2_2uni_pagea8[i-3744];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
index 389952004de88d4978ae478d1d21c794919bd7d6..8b2ca6634e8d1e7e59f2bcbb50ddb341e28b018d 100644 (file)
@@ -2281,7 +2281,7 @@ static const Summary16 gbkext_inv_uni2indx_pagefe[31] = {
 };
 
 static int
-gbkext_inv_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+gbkext_inv_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 14aebda9671141df69c53698f70d024bb82ab0e6..0e4350461fd40ac3187a0e9dbca7f0af5d5b9869 100644 (file)
@@ -13,15 +13,15 @@ static const unsigned short georgian_academy_2uni[32] = {
 };
 
 static int
-georgian_academy_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+georgian_academy_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0x80 && c < 0xa0)
-    *pwc = (wchar_t) georgian_academy_2uni[c-0x80];
+    *pwc = (ucs4_t) georgian_academy_2uni[c-0x80];
   else if (c >= 0xc0 && c < 0xe7)
-    *pwc = (wchar_t) c + 0x1010;
+    *pwc = (ucs4_t) c + 0x1010;
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -58,7 +58,7 @@ static const unsigned char georgian_academy_page20[48] = {
 };
 
 static int
-georgian_academy_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+georgian_academy_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index f82c5e96231580885499fe4b1f2b68354aebf405..b96c491dfb68ef2d40481494dbe8c01e3226a4f0 100644 (file)
@@ -23,15 +23,15 @@ static const unsigned short georgian_ps_2uni_2[39] = {
 };
 
 static int
-georgian_ps_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+georgian_ps_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0x80 && c < 0xa0)
-    *pwc = (wchar_t) georgian_ps_2uni_1[c-0x80];
+    *pwc = (ucs4_t) georgian_ps_2uni_1[c-0x80];
   else if (c >= 0xc0 && c < 0xe6)
-    *pwc = (wchar_t) georgian_ps_2uni_2[c-0xc0];
+    *pwc = (ucs4_t) georgian_ps_2uni_2[c-0xc0];
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -75,7 +75,7 @@ static const unsigned char georgian_ps_page20[48] = {
 };
 
 static int
-georgian_ps_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+georgian_ps_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
diff --git a/libiconv/hkscs.h b/libiconv/hkscs.h
new file mode 100644 (file)
index 0000000..b4df3e9
--- /dev/null
@@ -0,0 +1,2106 @@
+
+/*
+ * HKSCS
+ */
+
+static const unsigned short hkscs_2uni_page88[627] = {
+  /* 0x88 */
+  0xf303, 0xf304, 0xf305, 0xf306, 0xf307, 0xf308, 0xf309, 0xf30a,
+  0xf30b, 0xf30c, 0xf30d, 0xf30e, 0xf30f, 0xf310, 0xf311, 0xf312,
+  0xf313, 0xf314, 0xf315, 0xf316, 0xf317, 0xf318, 0x0100, 0x00c1,
+  0x01cd, 0x00c0, 0x0112, 0x00c9, 0x011a, 0x00c8, 0x014c, 0x00d3,
+  0x01d1, 0x00d2, 0xf325, 0x1ebe, 0xf327, 0x1ec0, 0x00ca, 0x0101,
+  0x00e1, 0x01ce, 0x00e0, 0x0251, 0x0113, 0x00e9, 0x011b, 0x00e8,
+  0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2,
+  0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc,
+  0x00fc, 0xf344, 0x1ebf, 0xf346, 0x1ec1, 0x00ea, 0x0261, 0xf34a,
+  0xf34b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  /* 0x89 */
+  0xf3a0, 0xf3a1, 0xfffd, 0x650a, 0xfffd, 0xfffd, 0x4e3d, 0x6edd,
+  0x9d4e, 0x91df, 0xfffd, 0xfffd, 0xf3ac, 0x6491, 0x4f1a, 0x4f28,
+  0x4fa8, 0x5156, 0x5174, 0x519c, 0x51e4, 0x52a1, 0x52a8, 0x533b,
+  0x534e, 0x53d1, 0x53d8, 0x56e2, 0x58f0, 0x5904, 0x5907, 0x5932,
+  0x5934, 0x5b66, 0x5b9e, 0x5b9f, 0x5c9a, 0x5e86, 0x603b, 0x6589,
+  0x67fe, 0x6804, 0x6865, 0x6d4e, 0x70bc, 0x7535, 0x7ea4, 0x7eac,
+  0x7eba, 0x7ec7, 0x7ecf, 0x7edf, 0x7f06, 0x7f37, 0x827a, 0x82cf,
+  0x836f, 0x89c6, 0x8bbe, 0x8be2, 0x8f66, 0x8f67, 0x8f6e, 0x7411,
+  0x7cfc, 0x7dcd, 0x6946, 0x7ac9, 0x5227, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x918c, 0x78b8, 0x915e, 0x80bc, 0xfffd, 0x8d0b, 0x80f6,
+  0xf3f0, 0xfffd, 0xfffd, 0x809f, 0x9ec7, 0x4ccd, 0x9dc9, 0x9e0c,
+  0x4c3e, 0xf3f9, 0xf3fa, 0x9e0a, 0xf3fc, 0x35c1, 0xfffd, 0x6e9a,
+  0x823e, 0x7519, 0xfffd, 0x4911, 0x9a6c, 0x9a8f, 0x9f99, 0x7987,
+  0xf408, 0xf409, 0xf40a, 0xf40b, 0x4e24, 0x4e81, 0x4e80, 0x4e87,
+  0x4ebf, 0x4eeb, 0x4f37, 0x344c, 0x4fbd, 0x3e48, 0x5003, 0x5088,
+  0x347d, 0x3493, 0x34a5, 0x5186, 0x5905, 0x51db, 0x51fc, 0x5205,
+  0x4e89, 0x5279, 0x5290, 0x5327, 0x35c7, 0x53a9, 0x3551, 0x53b0,
+  0x3553, 0x53c2, 0x5423, 0x356d, 0x3572, 0x3681, 0x5493, 0x54a3,
+  0x54b4, 0x54b9, 0x54d0, 0x54ef, 0x5518, 0x5523, 0x5528, 0x3598,
+  0x553f, 0x35a5, 0x35bf, 0x55d7, 0x35c5,
+  /* 0x8a */
+  0xf43d, 0x5525, 0xfffd, 0xf440, 0xf441, 0xf442, 0x5590, 0xf444,
+  0x39ec, 0xf446, 0x8e46, 0xf448, 0xf449, 0x4053, 0xf44b, 0x777a,
+  0xf44d, 0x3a34, 0x47d5, 0xf450, 0xf451, 0xf452, 0x64dd, 0xf454,
+  0xf455, 0xf456, 0xf457, 0x648d, 0x8e7e, 0xf45a, 0xf45b, 0xf45c,
+  0xf45d, 0xf45e, 0xf45f, 0xfffd, 0xf461, 0xf462, 0xf463, 0x47f4,
+  0xf465, 0xf466, 0x9ab2, 0x3a67, 0xf469, 0x3fed, 0x3506, 0xf46c,
+  0xf46d, 0xf46e, 0xf46f, 0x9d6e, 0x9815, 0xfffd, 0x43d9, 0xf474,
+  0x64b4, 0x54e3, 0xf477, 0xf478, 0xf479, 0x39fb, 0xf47b, 0xf47c,
+  0xf47d, 0xf47e, 0x64ea, 0xf480, 0xf481, 0x8e68, 0xf483, 0xf484,
+  0xf485, 0xfffd, 0x480b, 0xf488, 0x3ffa, 0x5873, 0xf48b, 0xfffd,
+  0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0x5579, 0x40bb, 0x43ba,
+  0xfffd, 0x4ab4, 0xf497, 0xf498, 0x81aa, 0x98f5, 0xf49b, 0x6379,
+  0x39fe, 0xf49e, 0x8dc0, 0x56a1, 0x647c, 0x3e43, 0xfffd, 0xf4a4,
+  0xf4a5, 0xf4a6, 0xf4a7, 0xfffd, 0xf4a9, 0xf4aa, 0x3992, 0x3a06,
+  0xf4ad, 0x3578, 0xf4af, 0xf4b0, 0x5652, 0xf4b2, 0xf4b3, 0xf4b4,
+  0x34bc, 0x6c3d, 0xf4b7, 0xfffd, 0xfffd, 0xf4ba, 0xf4bb, 0xf4bc,
+  0xf4bd, 0xf4be, 0xf4bf, 0xf4c0, 0xf4c1, 0x7f93, 0xf4c3, 0xf4c4,
+  0xf4c5, 0x35fb, 0xf4c7, 0xf4c8, 0xf4c9, 0xf4ca, 0x3f93, 0xf4cc,
+  0xf4cd, 0xf4ce, 0xf4cf, 0xfffd, 0xf4d1, 0xf4d2, 0xf4d3, 0xf4d4,
+  0xf4d5, 0x3ff9, 0xf4d7, 0x6432, 0xf4d9,
+  /* 0x8b */
+  0xf4da, 0xf4db, 0xf4dc, 0xf4dd, 0xf4de, 0xf4df, 0xf4e0, 0x3a18,
+  0xf4e2, 0xf4e3, 0xf4e4, 0xf4e5, 0xf4e6, 0xf4e7, 0xf4e8, 0xf4e9,
+  0x95aa, 0x54cc, 0x82c4, 0x55b9, 0xfffd, 0xf4ef, 0x9c26, 0x9ab6,
+  0xf4f2, 0xf4f3, 0x7140, 0x816d, 0x80ec, 0x5c1c, 0xf4f8, 0x8134,
+  0x3797, 0x535f, 0xf4fc, 0x91b6, 0xf4fe, 0xf4ff, 0xf500, 0xf501,
+  0x35dd, 0xf503, 0x3609, 0xf505, 0x56af, 0xf507, 0xf508, 0xf509,
+  0xf50a, 0xf50b, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510, 0xf511,
+  0x5a54, 0xf513, 0xf514, 0xf515, 0xf516, 0x579c, 0xf518, 0xf519,
+  0xf51a, 0xf51b, 0xf51c, 0xf51d, 0x3703, 0xf51f, 0xf520, 0xf521,
+  0xf522, 0xf523, 0xf524, 0xf525, 0xf526, 0x5899, 0x5268, 0x361a,
+  0xf52a, 0x7bb2, 0x5b68, 0x4800, 0x4b2c, 0x9f27, 0x49e7, 0x9c1f,
+  0x9b8d, 0xf533, 0xf534, 0x55fb, 0x35f2, 0x5689, 0x4e28, 0x5902,
+  0xf53a, 0xf53b, 0x9751, 0xf53d, 0x4e5b, 0x4ebb, 0x353e, 0x5c23,
+  0x5f51, 0x5fc4, 0x38fa, 0x624c, 0x6535, 0x6b7a, 0x6c35, 0x6c3a,
+  0x706c, 0x722b, 0x4e2c, 0x72ad, 0xf54e, 0x7f52, 0x793b, 0x7cf9,
+  0x7f53, 0xf553, 0x34c1, 0xfffd, 0xf556, 0x8002, 0x8080, 0xf559,
+  0xf55a, 0x535d, 0x8864, 0x89c1, 0xf55e, 0x8ba0, 0x8d1d, 0x9485,
+  0x9578, 0x957f, 0x95e8, 0xf565, 0x97e6, 0x9875, 0x98ce, 0x98de,
+  0x9963, 0xf56b, 0x9c7c, 0x9e1f, 0x9ec4, 0x6b6f, 0x9f9c, 0x4e37,
+  0xf572, 0x961d, 0x6237, 0x94a2,
+};
+static const unsigned short hkscs_2uni_page8d[3140] = {
+  /* 0x8d */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0x5d3e, 0x5d48, 0x5d56, 0x3dfc, 0x380f, 0x5da4, 0x5db9, 0x3820,
+  0x3838, 0x5e42, 0x5ebd, 0x5f25, 0x5f83, 0x3908, 0x3914, 0x393f,
+  0x394d, 0x60d7, 0x613d, 0x5ce5, 0x3989, 0x61b7, 0x61b9, 0x61cf,
+  0x39b8, 0x622c, 0x6290, 0x62e5, 0x6318, 0x39f8, 0x56b1, 0x3a03,
+  0x63e2, 0x63fb, 0x6407, 0x645a, 0x3a4b, 0x64c0, 0x5d15, 0x5621,
+  0x9f9f, 0x3a97, 0x6586, 0x3abd, 0x65ff, 0x6653, 0x3af2, 0x6692,
+  0x3b22, 0x6716, 0x3b42, 0x67a4, 0x6800, 0x3b58, 0x684a, 0x6884,
+  0x3b72, 0x3b71, 0x3b7b, 0x6909, 0x6943, 0x725c, 0x6964, 0x699f,
+  0x6985, 0x3bbc, 0x69d6, 0x3bdd, 0x6a65, 0x6a74, 0x6a71, 0x6a82,
+  0x3bec, 0x6a99, 0x3bf2, 0x6aab, 0x6ab5, 0x6ad4, 0x6af6, 0x6b81,
+  0x6bc1, 0x6bea, 0x6c75, 0x6caa, 0x3ccb, 0x6d02, 0x6d06, 0x6d26,
+  0x6d81, 0x3cef, 0x6da4, 0x6db1, 0x6e15, 0x6e18, 0x6e29, 0x6e86,
+  0xf694, 0x6ebb, 0x6ee2, 0x6eda, 0x9f7f, 0x6ee8, 0x6ee9, 0x6f24,
+  0x6f34, 0x3d46, 0xf69e, 0x6f81, 0x6fbe, 0x3d6a, 0x3d75, 0x71b7,
+  0x5c99, 0x3d8a, 0x702c, 0x3d91, 0x7050, 0x7054, 0x706f, 0x707f,
+  0x7089, 0xf6ad, 0x43c1, 0x35f1, 0xf6b0,
+  /* 0x8e */
+  0xe311, 0x57be, 0xe313, 0x713e, 0xe315, 0x364e, 0x69a2, 0xe318,
+  0x5b74, 0x7a49, 0xe31b, 0xe31c, 0x7a65, 0x7a7d, 0xe31f, 0x7abb,
+  0x7ab0, 0x7ac2, 0x7ac3, 0x71d1, 0xe325, 0x41ca, 0x7ada, 0x7add,
+  0x7aea, 0x41ef, 0x54b2, 0xe32c, 0x7b0b, 0x7b55, 0x7b29, 0xe330,
+  0xe331, 0x7ba2, 0x7b6f, 0x839c, 0xe335, 0xe336, 0x7bd0, 0x8421,
+  0x7b92, 0xfffd, 0xe33b, 0x3dad, 0xe33d, 0x8492, 0x7bfa, 0xfffd,
+  0x7c35, 0xe342, 0x7c44, 0x7c83, 0xe345, 0x7ca6, 0x667d, 0xe348,
+  0x7cc9, 0x7cc7, 0x7ce6, 0x7c74, 0x7cf3, 0x7cf5, 0xfffd, 0x7e67,
+  0x451d, 0xe352, 0x7d5d, 0xe354, 0x748d, 0x7d89, 0x7dab, 0x7135,
+  0x7db3, 0xfffd, 0xe35b, 0xe35c, 0x7de4, 0x3d13, 0x7df5, 0xe360,
+  0x7de5, 0xe362, 0xfffd, 0xe364, 0xe365, 0x7e6e, 0x7e92, 0x432b,
+  0x946c, 0x7e27, 0x7f40, 0x7f41, 0x7f47, 0x7936, 0xe36f, 0x99e1,
+  0x7f97, 0xe372, 0x7fa3, 0xe374, 0xe375, 0x455c, 0xe377, 0x4503,
+  0xe379, 0x7ffa, 0xe37b, 0xfffd, 0x8008, 0x801d, 0xfffd, 0x802f,
+  0xe381, 0xe382, 0x803b, 0x803c, 0x8061, 0xe386, 0x4989, 0xe388,
+  0xe389, 0xe38a, 0x6725, 0x80a7, 0xe38d, 0x8107, 0x811a, 0x58b0,
+  0xe391, 0x6c7f, 0xe393, 0xe394, 0x64e7, 0xe396, 0x8218, 0xe398,
+  0x6a53, 0xe39a, 0xe39b, 0x447a, 0x8229, 0xe39e, 0xe39f, 0xe3a0,
+  0x4ff9, 0xe3a2, 0x84e2, 0x8362, 0xe3a5, 0xe3a6, 0xe3a7, 0xe3a8,
+  0xe3a9, 0x82aa, 0x691b, 0xe3ac, 0x41db,
+  /* 0x8f */
+  0x854b, 0x82d0, 0x831a, 0xe3b1, 0xe3b2, 0x36c1, 0xe3b4, 0xe3b5,
+  0x827b, 0x82e2, 0x8318, 0xe3b9, 0xe3ba, 0xe3bb, 0xe3bc, 0xe3bd,
+  0x3dbf, 0x831d, 0x55ec, 0x8385, 0x450b, 0xe3c3, 0x83ac, 0xfffd,
+  0x83d3, 0x347e, 0xe3c8, 0x6a57, 0x855a, 0x3496, 0xe3cc, 0xe3cd,
+  0x8458, 0xe3cf, 0x8471, 0x3dd3, 0x44e4, 0x6aa7, 0x844a, 0xe3d5,
+  0x7958, 0xfffd, 0xe3d8, 0xe3d9, 0xe3da, 0x84de, 0xfffd, 0x8391,
+  0x44a0, 0x8493, 0x84e4, 0xe3e1, 0x4240, 0xe3e3, 0x4543, 0x8534,
+  0x5af2, 0xe3e7, 0x4527, 0x8573, 0x4516, 0x67bf, 0x8616, 0xe3ed,
+  0xe3ee, 0x85c1, 0xe3f0, 0x8602, 0xe3f2, 0xe3f3, 0xe3f4, 0x456a,
+  0x8628, 0x3648, 0xe3f8, 0x53f7, 0xe3fa, 0x867e, 0x8771, 0xe3fd,
+  0x87ee, 0xe3ff, 0x87b1, 0x87da, 0x880f, 0x5661, 0x866c, 0x6856,
+  0x460f, 0x8845, 0x8846, 0xe409, 0xe40a, 0xe40b, 0x885e, 0x889c,
+  0x465b, 0x88b4, 0x88b5, 0x63c1, 0x88c5, 0x7777, 0xe414, 0x8987,
+  0x898a, 0xfffd, 0xfffd, 0x89a7, 0x89bc, 0xe41b, 0x89e7, 0xe41d,
+  0xe41e, 0x8a9c, 0x7793, 0x91fe, 0x8a90, 0xe423, 0x7ae9, 0xe425,
+  0xe426, 0x4713, 0xe428, 0x717c, 0x8b0c, 0x8b1f, 0xe42c, 0xe42d,
+  0x8b3f, 0x8b4c, 0x8b4d, 0x8aa9, 0xe432, 0x8b90, 0x8b9b, 0x8aaf,
+  0xe436, 0x4615, 0x884f, 0x8c9b, 0xe43a, 0xe43b, 0xe43c, 0x3725,
+  0xe43e, 0x8cd6, 0xe440, 0xe441, 0x8d12, 0x8d03, 0xe444, 0x8cdb,
+  0x705c, 0x8d11, 0xe448, 0x3ed0, 0xfffd,
+  /* 0x90 */
+  0x8da9, 0xe44c, 0xe44d, 0xe44e, 0x3b7c, 0xe450, 0xe451, 0x7ae7,
+  0x8ead, 0x8eb6, 0x8ec3, 0x92d4, 0x8f19, 0x8f2d, 0xe459, 0xe45a,
+  0x8fa5, 0x9303, 0xe45d, 0xe45e, 0x8fb3, 0x492a, 0xe461, 0xe462,
+  0xe463, 0x5ef8, 0xe465, 0x8ff9, 0xe467, 0xe468, 0xe469, 0xe46a,
+  0x3980, 0xe46c, 0x9037, 0xe46e, 0xe46f, 0x9061, 0xe471, 0xe472,
+  0x90a8, 0xe474, 0x90c4, 0xe476, 0x90ae, 0xfffd, 0x9167, 0x3af0,
+  0x91a9, 0x91c4, 0x7cac, 0xe47e, 0xe47f, 0x920e, 0x6c9f, 0x9241,
+  0x9262, 0xe484, 0xfffd, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a,
+  0x932c, 0x936b, 0xe48d, 0xe48e, 0x708f, 0x5ac3, 0xe491, 0xe492,
+  0x4965, 0x9244, 0xe495, 0xe496, 0xe497, 0x9373, 0x945b, 0x8ebc,
+  0x9585, 0x95a6, 0x9426, 0x95a0, 0x6ff6, 0x42b9, 0xe4a1, 0xe4a2,
+  0xe4a3, 0xe4a4, 0x49df, 0x6c1c, 0x967b, 0x9696, 0x416c, 0x96a3,
+  0xe4ab, 0x61da, 0x96b6, 0x78f5, 0xe4af, 0x96bd, 0x53cc, 0x49a1,
+  0xe4b3, 0xe4b4, 0xe4b5, 0xe4b6, 0xe4b7, 0xe4b8, 0xe4b9, 0xe4ba,
+  0x9731, 0x8642, 0x9736, 0x4a0f, 0x453d, 0x4585, 0xe4c1, 0x7075,
+  0x5b41, 0x971b, 0xfffd, 0xe4c6, 0x9757, 0x5b4a, 0xe4c9, 0x975f,
+  0x9425, 0x50d0, 0xe4cd, 0xe4ce, 0x9789, 0x979f, 0x97b1, 0x97be,
+  0x97c0, 0x97d2, 0x97e0, 0xe4d6, 0x97ee, 0x741c, 0xe4d9, 0xfffd,
+  0x97f5, 0xe4dc, 0xe4dd, 0x4ad1, 0x9834, 0x9833, 0x984b, 0x9866,
+  0x3b0e, 0xe4e4, 0x3d51, 0xe4e6, 0xe4e7,
+  /* 0x91 */
+  0xe4e8, 0x98ca, 0x98b7, 0x98c8, 0x98c7, 0x4aff, 0xe4ee, 0xe4ef,
+  0x55b0, 0x98e1, 0x98e6, 0x98ec, 0x9378, 0x9939, 0xe4f6, 0x4b72,
+  0xe4f8, 0xe4f9, 0x99f5, 0x9a0c, 0x9a3b, 0x9a10, 0x9a58, 0xe4ff,
+  0x36c4, 0xe501, 0xe502, 0x9ae0, 0x9ae2, 0xe505, 0x9af4, 0x4c0e,
+  0x9b14, 0x9b2d, 0xe50a, 0x5034, 0x9b34, 0xe50d, 0x38c3, 0xe50f,
+  0x9b50, 0x9b40, 0xe512, 0x5a45, 0xe514, 0x9b8e, 0xe516, 0x9c02,
+  0x9bff, 0x9c0c, 0xe51a, 0x9dd4, 0xe51c, 0xe51d, 0xe51e, 0xe51f,
+  0xe520, 0xe521, 0x9d7e, 0x9d83, 0xe524, 0x9e0e, 0x6888, 0x9dc4,
+  0xe528, 0xe529, 0xe52a, 0xe52b, 0xe52c, 0x9d39, 0xe52e, 0xe52f,
+  0x9e90, 0x9e95, 0x9e9e, 0x9ea2, 0x4d34, 0x9eaa, 0x9eaf, 0xe537,
+  0x9ec1, 0x3b60, 0x39e5, 0x3d1d, 0x4f32, 0x37be, 0xe53e, 0x9f02,
+  0x9f08, 0x4b96, 0x9424, 0xe543, 0x9f17, 0xfffd, 0x9f39, 0x569f,
+  0x568a, 0x9f45, 0x99b8, 0xe54b, 0x97f2, 0x847f, 0x9f62, 0x9f69,
+  0x7adc, 0x9f8e, 0x7216, 0x4bbe, 0xe554, 0xe555, 0x7177, 0xe557,
+  0xe558, 0xe559, 0x739e, 0xe55b, 0xe55c, 0x799f, 0xe55e, 0xe55f,
+  0x9369, 0x93f3, 0xe562, 0x92ec, 0x9381, 0x93cb, 0xe566, 0xe567,
+  0x7217, 0x3eeb, 0x7772, 0x7a43, 0x70d0, 0xe56d, 0xe56e, 0x717e,
+  0xe570, 0x70a3, 0xe572, 0xe573, 0x3ec7, 0xe575, 0xe576, 0xe577,
+  0x3722, 0xe579, 0xe57a, 0x36e1, 0xe57c, 0xe57d, 0xe57e, 0x3723,
+  0xe580, 0x575b, 0xe582, 0xe583, 0xe584,
+  /* 0x92 */
+  0xe585, 0xe586, 0x8503, 0xe588, 0xfffd, 0x8455, 0xe58b, 0xe58c,
+  0xe58d, 0xe58e, 0xe58f, 0xe590, 0x44f4, 0xe592, 0xe593, 0xe594,
+  0x67f9, 0x3733, 0x3c15, 0x3de7, 0x586c, 0xe59a, 0x6810, 0x4057,
+  0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe5a1, 0x54cb, 0x569e, 0xe5a4,
+  0x5692, 0xe5a6, 0xe5a7, 0xe5a8, 0x93c6, 0xe5aa, 0x939c, 0x4ef8,
+  0x512b, 0x3819, 0xe5af, 0x4ebc, 0xe5b1, 0xe5b2, 0x4f4b, 0x4f8a,
+  0xe5b5, 0x5a68, 0xe5b7, 0xe5b8, 0x3999, 0xe5ba, 0xe5bb, 0x3435,
+  0x4f29, 0xe5be, 0xe5bf, 0xe5c0, 0x8ada, 0xe5c2, 0x4e98, 0x50cd,
+  0x510d, 0x4fa2, 0x4f03, 0xe5c8, 0xe5c9, 0x4f42, 0x502e, 0x506c,
+  0x5081, 0x4fcc, 0x4fe5, 0x5058, 0x50fc, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0x6e76, 0xe5d7, 0xe5d8, 0xe5d9, 0x6d72, 0xe5db, 0xe5dc,
+  0x51a8, 0x51c3, 0xe5df, 0x44dd, 0xe5e1, 0xe5e2, 0xe5e3, 0x8d7a,
+  0xe5e5, 0xe5e6, 0x5259, 0x52a4, 0xe5e9, 0x52e1, 0xfffd, 0x467a,
+  0x718c, 0xe5ee, 0xe5ef, 0xe5f0, 0xe5f1, 0x69d1, 0xe5f3, 0xfffd,
+  0x3ede, 0x7499, 0x7414, 0x7456, 0x7398, 0x4b8e, 0xe5fb, 0xe5fc,
+  0x53d0, 0x3584, 0x720f, 0xe600, 0x55b4, 0xe602, 0x54cd, 0xe604,
+  0x571d, 0x925d, 0x96f4, 0x9366, 0x57dd, 0x578d, 0x577f, 0x363e,
+  0x58cb, 0x5a99, 0xe60f, 0xe610, 0xe611, 0xe612, 0x5a2c, 0x59b8,
+  0x928f, 0x5a7e, 0x5acf, 0x5a12, 0xe619, 0xe61a, 0xe61b, 0xe61c,
+  0x36f5, 0x6d05, 0x7443, 0x5a21, 0xe621,
+  /* 0x93 */
+  0x5a81, 0xe623, 0xe624, 0x93e0, 0x748c, 0xe627, 0x7105, 0x4972,
+  0x9408, 0xe62b, 0x93bd, 0x37a0, 0x5c1e, 0x5c9e, 0x5e5e, 0x5e48,
+  0xe632, 0xe633, 0xe634, 0x5ecd, 0x5b4f, 0xe637, 0xe638, 0x3701,
+  0xe63a, 0x36dd, 0xe63c, 0x36d3, 0x812a, 0xe63f, 0xe640, 0xe641,
+  0xe642, 0x5f0c, 0x5f0e, 0xe645, 0xe646, 0x5a6b, 0xe648, 0x5b44,
+  0x8614, 0xe64b, 0x8860, 0x607e, 0xe64e, 0xe64f, 0x5fdb, 0x3eb8,
+  0xe652, 0xe653, 0xe654, 0xe655, 0x61c0, 0xe657, 0xe658, 0xe659,
+  0x6199, 0x6198, 0x6075, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0x6471,
+  0xe662, 0xe663, 0x3a29, 0xe665, 0xe666, 0xe667, 0xe668, 0x6337,
+  0xe66a, 0x64b6, 0x6331, 0x63d1, 0xe66e, 0xe66f, 0x62a4, 0xe671,
+  0x643b, 0x656b, 0x6972, 0x3bf4, 0xe676, 0xe677, 0xe678, 0xe679,
+  0x550d, 0xe67b, 0xe67c, 0xe67d, 0x66ce, 0xe67f, 0xe680, 0x3ae0,
+  0x4190, 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0x78ee,
+  0xe68a, 0xe68b, 0xe68c, 0x3464, 0xe68e, 0xe68f, 0xe690, 0x668e,
+  0xe692, 0x666b, 0x4b93, 0x6630, 0xe696, 0xe697, 0x6663, 0xe699,
+  0xe69a, 0x661e, 0xe69c, 0x38d1, 0xe69e, 0xe69f, 0x3b99, 0xe6a1,
+  0xe6a2, 0x74d0, 0x3b96, 0x678f, 0xe6a6, 0x68b6, 0x681e, 0x3bc4,
+  0x6abe, 0x3863, 0xe6ac, 0xe6ad, 0x6a33, 0x6a52, 0x6ac9, 0x6b05,
+  0xe6b2, 0x6511, 0x6898, 0x6a4c, 0x3bd7, 0x6a7a, 0x6b57, 0xe6b9,
+  0xe6ba, 0x93a0, 0x92f2, 0xe6bd, 0xe6be,
+  /* 0x94 */
+  0x9289, 0xe6c0, 0xe6c1, 0x9467, 0x6da5, 0x6f0b, 0xe6c5, 0xfffd,
+  0xe6c7, 0x3d8f, 0x6e04, 0xe6ca, 0x5a3d, 0x6e0a, 0x5847, 0x6d24,
+  0x7842, 0x713b, 0xe6d1, 0xe6d2, 0x70f1, 0x7250, 0x7287, 0x7294,
+  0xe6d7, 0xe6d8, 0x5179, 0xe6da, 0xe6db, 0x747a, 0xe6dd, 0xe6de,
+  0xe6df, 0xe6e0, 0xe6e1, 0x3f06, 0x3eb1, 0xe6e4, 0xe6e5, 0xe6e6,
+  0x60a7, 0x3ef3, 0x74cc, 0x743c, 0x9387, 0x7437, 0x449f, 0xe6ee,
+  0x4551, 0x7583, 0x3f63, 0xe6f2, 0xe6f3, 0x3f58, 0x7555, 0x7673,
+  0xe6f7, 0x3b19, 0x7468, 0xe6fa, 0xe6fb, 0xe6fc, 0x3afb, 0x3dcd,
+  0xe6ff, 0x3eff, 0xe701, 0xe702, 0x91fa, 0x5732, 0x9342, 0xe706,
+  0xe707, 0x50df, 0xe709, 0xe70a, 0x7778, 0xe70c, 0x770e, 0x770f,
+  0x777b, 0xe710, 0xe711, 0x3a5e, 0xe713, 0x7438, 0x749b, 0x3ebf,
+  0xe717, 0xe718, 0x40c8, 0xe71a, 0xe71b, 0x9307, 0xe71d, 0x781e,
+  0x788d, 0x7888, 0x78d2, 0x73d0, 0x7959, 0xe724, 0xe725, 0x410e,
+  0xfffd, 0x8496, 0x79a5, 0x6a2d, 0xe72b, 0x7a3a, 0x79f4, 0x416e,
+  0xe72f, 0x4132, 0x9235, 0x79f1, 0xe733, 0xe734, 0xe735, 0xe736,
+  0xe737, 0x3597, 0x556b, 0x3570, 0x36aa, 0xe73c, 0xe73d, 0x7ae2,
+  0x5a59, 0xe740, 0xe741, 0xe742, 0x5a0d, 0xe744, 0x78f0, 0x5a2a,
+  0xe747, 0x7afe, 0x41f9, 0x7c5d, 0x7c6d, 0x4211, 0xe74d, 0xe74e,
+  0xe74f, 0x7ccd, 0xe751, 0xe752, 0x7c8e, 0x7c7c, 0x7cae, 0x6ab2,
+  0x7ddc, 0x7e07, 0x7dd3, 0x7f4e, 0xe75b,
+  /* 0x95 */
+  0xe75c, 0xe75d, 0x7d97, 0xe75f, 0x426a, 0xe761, 0xe762, 0x67d6,
+  0xe764, 0xe765, 0x57c4, 0xe767, 0xe768, 0xe769, 0x7fdd, 0x7b27,
+  0xe76c, 0xe76d, 0xe76e, 0x7b0c, 0xe770, 0x99e6, 0x8645, 0x9a63,
+  0x6a1c, 0xe775, 0x39e2, 0xe777, 0xe778, 0x9a1f, 0xe77a, 0x8480,
+  0xe77c, 0xe77d, 0x44ea, 0x8137, 0x4402, 0x80c6, 0x8109, 0x8142,
+  0xe784, 0x98c3, 0xe786, 0x8262, 0x8265, 0xe789, 0x8453, 0xe78b,
+  0x8610, 0xe78d, 0x5a86, 0x417f, 0xe790, 0x5b2b, 0xe792, 0x5ae4,
+  0xe794, 0x86a0, 0xe796, 0xe797, 0x882d, 0xe799, 0x5a02, 0x886e,
+  0x4f45, 0x8887, 0x88bf, 0x88e6, 0x8965, 0x894d, 0xe7a2, 0x8954,
+  0xe7a4, 0xe7a5, 0xe7a6, 0xe7a7, 0xe7a8, 0xe7a9, 0x3ead, 0x84a3,
+  0x46f5, 0x46cf, 0x37f2, 0x8a3d, 0x8a1c, 0xe7b1, 0x5f4d, 0x922b,
+  0xe7b4, 0x65d4, 0x7129, 0x70c4, 0xe7b8, 0x9d6d, 0x8c9f, 0x8ce9,
+  0xe7bc, 0x599a, 0x77c3, 0x59f0, 0x436e, 0x36d4, 0x8e2a, 0x8ea7,
+  0xe7c4, 0x8f30, 0x8f4a, 0x42f4, 0x6c58, 0x6fbb, 0xe7ca, 0x489b,
+  0x6f79, 0x6e8b, 0xe7ce, 0x9be9, 0x36b5, 0xe7d1, 0x90bb, 0xfffd,
+  0x5571, 0x4906, 0x91bb, 0x9404, 0xe7d8, 0x4062, 0xe7da, 0x9427,
+  0xe7dc, 0xe7dd, 0x84e5, 0x8a2b, 0x9599, 0x95a7, 0x9597, 0x9596,
+  0xe7e4, 0x7445, 0x3ec2, 0xe7e7, 0xe7e8, 0xe7e9, 0x3ee7, 0xe7eb,
+  0x968f, 0xe7ed, 0xe7ee, 0xe7ef, 0x3ecc, 0xe7f1, 0xe7f2, 0xe7f3,
+  0x7412, 0x746b, 0x3efc, 0x9741, 0xe7f8,
+  /* 0x96 */
+  0x6847, 0x4a1d, 0xe7fb, 0xe7fc, 0xfffd, 0x9368, 0xe7ff, 0xe800,
+  0xe801, 0xe802, 0x92ba, 0x5b11, 0x8b69, 0x493c, 0x73f9, 0xe808,
+  0x979b, 0x9771, 0x9938, 0xe80c, 0x5dc1, 0xe80e, 0xe80f, 0x981f,
+  0xe811, 0x92f6, 0xe813, 0x91e5, 0x44c0, 0xe816, 0xe817, 0xe818,
+  0x98dc, 0xe81a, 0x3f00, 0x922a, 0x4925, 0x8414, 0x993b, 0x994d,
+  0xe821, 0x3dfd, 0x999b, 0x4b6f, 0x99aa, 0x9a5c, 0xe827, 0xe828,
+  0x6a8f, 0x9a21, 0x5afe, 0x9a2f, 0xe82d, 0x4b90, 0xe82f, 0x99bc,
+  0x4bbd, 0x4b97, 0x937d, 0x5872, 0xe835, 0x5822, 0xe837, 0xe838,
+  0x7844, 0xe83a, 0xe83b, 0x68c5, 0x3d7d, 0x9458, 0x3927, 0x6150,
+  0xe841, 0xe842, 0x6107, 0x9c4f, 0x9c53, 0x9c7b, 0x9c35, 0x9c10,
+  0x9b7f, 0x9bcf, 0xe84b, 0x9b9f, 0xe84d, 0xe84e, 0x9d21, 0x4cae,
+  0xe851, 0x9e18, 0x4cb0, 0x9d0c, 0xe855, 0xe856, 0xe857, 0xe858,
+  0x9da5, 0x84bd, 0xe85b, 0xe85c, 0xe85d, 0x85fc, 0x4533, 0xe860,
+  0xe861, 0xe862, 0x8420, 0x85ee, 0xe865, 0xe866, 0xe867, 0x79e2,
+  0xe869, 0xe86a, 0x492d, 0xe86c, 0x3d62, 0x93db, 0x92be, 0x9348,
+  0xe871, 0x78b9, 0x9277, 0x944d, 0x4fe4, 0x3440, 0x9064, 0xe878,
+  0x783d, 0x7854, 0x78b6, 0x784b, 0xe87d, 0xe87e, 0xe87f, 0x369a,
+  0x4f72, 0x6fda, 0x6fd9, 0xfffd, 0x701e, 0x5414, 0xe887, 0x57bb,
+  0x58f3, 0x578a, 0x9d16, 0x57d7, 0x7134, 0x34af, 0xe88f, 0x71eb,
+  0xe891, 0xe892, 0xfffd, 0xe894, 0xe895,
+  /* 0x97 */
+  0x610c, 0x5ace, 0x5a0b, 0x42bc, 0xe89a, 0x372c, 0x4b7b, 0xe89d,
+  0x93bb, 0x93b8, 0xe8a0, 0xe8a1, 0x8472, 0xe8a3, 0xe8a4, 0xe8a5,
+  0xe8a6, 0xe8a7, 0x5994, 0xe8a9, 0xe8aa, 0x7da8, 0xe8ac, 0xe8ad,
+  0xe8ae, 0xe8af, 0xe8b0, 0x92e5, 0x73e2, 0x3ee9, 0x74b4, 0xe8b5,
+  0xe8b6, 0x3ee1, 0xe8b8, 0x6ad8, 0x73f3, 0x73fb, 0x3ed6, 0xe8bd,
+  0xe8be, 0xe8bf, 0xe8c0, 0xe8c1, 0xe8c2, 0xe8c3, 0x7448, 0xe8c5,
+  0x70a5, 0xe8c7, 0x9284, 0x73e6, 0x935f, 0xe8cb, 0x9331, 0xe8cd,
+  0xe8ce, 0x9386, 0xe8d0, 0xe8d1, 0x4935, 0xe8d3, 0x716b, 0xe8d5,
+  0xe8d6, 0x56a4, 0xe8d8, 0xe8d9, 0xe8da, 0x5502, 0x79c4, 0xe8dd,
+  0x7dfe, 0xe8df, 0xe8e0, 0xe8e1, 0x452e, 0x9401, 0x370a, 0xe8e5,
+  0xe8e6, 0x59b0, 0xe8e8, 0xe8e9, 0xe8ea, 0x5aa1, 0x36e2, 0xe8ed,
+  0x36b0, 0x925f, 0x5a79, 0xe8f1, 0xe8f2, 0x9374, 0x3ccd, 0xe8f5,
+  0x4a96, 0x398a, 0x50f4, 0x3d69, 0x3d4c, 0xe8fb, 0x7175, 0x42fb,
+  0xe8fe, 0x6e0f, 0xe900, 0x44eb, 0x6d57, 0xe903, 0x7067, 0x6caf,
+  0x3cd6, 0xe907, 0xe908, 0x6e02, 0x6f0c, 0x3d6f, 0xe90c, 0x7551,
+  0x36bc, 0x34c8, 0x4680, 0x3eda, 0x4871, 0x59c4, 0x926e, 0x493e,
+  0x8f41, 0xe917, 0xe918, 0x5812, 0x57c8, 0x36d6, 0xe91c, 0x70fe,
+  0xe91e, 0xe91f, 0xe920, 0xe921, 0xe922, 0x68b9, 0x6967, 0xe925,
+  0xe926, 0xe927, 0xe928, 0xe929, 0xe92a, 0xe92b, 0xe92c, 0x6a1a,
+  0xe92e, 0xe92f, 0x843e, 0x44df, 0x44ce,
+  /* 0x98 */
+  0xe933, 0xe934, 0xe935, 0xe936, 0x6f17, 0xe938, 0x833d, 0xe93a,
+  0x83ed, 0xe93c, 0xe93d, 0xe93e, 0x5989, 0x5a82, 0xe941, 0x5a61,
+  0x5a71, 0xe944, 0xe945, 0x372d, 0x59ef, 0xe948, 0x36c7, 0x718e,
+  0x9390, 0x669a, 0xe94d, 0x5a6e, 0x5a2b, 0xe950, 0x6a2b, 0xe952,
+  0xe953, 0xe954, 0xe955, 0x711d, 0xe957, 0xe958, 0x4fb0, 0xe95a,
+  0x5cc2, 0xe95c, 0xe95d, 0xe95e, 0x6a0c, 0xe960, 0xe961, 0x70a6,
+  0x7133, 0xe964, 0x3da5, 0x6cdf, 0xe967, 0xe968, 0x7e65, 0x59eb,
+  0x5d2f, 0x3df3, 0x5f5c, 0xe96e, 0xe96f, 0x7da4, 0x8426, 0x5485,
+  0xe973, 0xe974, 0xe975, 0x577e, 0xe977, 0xe978, 0x3fe5, 0xe97a,
+  0xe97b, 0x7003, 0xe97d, 0x5d70, 0x738f, 0x7cd3, 0xe981, 0xe982,
+  0x4fc8, 0x7fe7, 0x72cd, 0x7310, 0xe987, 0x7338, 0x7339, 0xe98a,
+  0x7341, 0x7348, 0x3ea9, 0xe98e, 0x906c, 0x71f5, 0xe991, 0x73e1,
+  0x81f6, 0x3eca, 0x770c, 0x3ed1, 0x6ca2, 0x56fd, 0x7419, 0x741e,
+  0x741f, 0x3ee2, 0x3ef0, 0x3ef4, 0x3efa, 0x74d3, 0x3f0e, 0x3f53,
+  0x7542, 0x756d, 0x7572, 0x758d, 0x3f7c, 0x75c8, 0x75dc, 0x3fc0,
+  0x764d, 0x3fd7, 0x7674, 0x3fdc, 0x767a, 0xe9b0, 0x7188, 0x5623,
+  0x8980, 0x5869, 0x401d, 0x7743, 0x4039, 0x6761, 0x4045, 0x35db,
+  0x7798, 0x406a, 0x406f, 0x5c5e, 0x77be, 0x77cb, 0x58f2, 0x7818,
+  0x70b9, 0x781c, 0x40a8, 0x7839, 0x7847, 0x7851, 0x7866, 0x8448,
+  0xe9cb, 0x7933, 0x6803, 0x7932, 0x4103,
+  /* 0x99 */
+  0x4109, 0x7991, 0x7999, 0x8fbb, 0x7a06, 0x8fbc, 0x4167, 0x7a91,
+  0x41b2, 0x7abc, 0x8279, 0x41c4, 0x7acf, 0x7adb, 0x41cf, 0x4e21,
+  0x7b62, 0x7b6c, 0x7b7b, 0x7c12, 0x7c1b, 0x4260, 0x427a, 0x7c7b,
+  0x7c9c, 0x428c, 0x7cb8, 0x4294, 0x7ced, 0x8f93, 0x70c0, 0xe9ef,
+  0x7dcf, 0x7dd4, 0x7dd0, 0x7dfd, 0x7fae, 0x7fb4, 0x729f, 0x4397,
+  0x8020, 0x8025, 0x7b39, 0x802e, 0x8031, 0x8054, 0x3dcc, 0x57b4,
+  0x70a0, 0x80b7, 0x80e9, 0x43ed, 0x810c, 0x732a, 0x810e, 0x8112,
+  0x7560, 0x8114, 0x4401, 0x3b39, 0x8156, 0x8159, 0x815a, 0x4413,
+  0x583a, 0x817c, 0x8184, 0x4425, 0x8193, 0x442d, 0x81a5, 0x57ef,
+  0x81c1, 0x81e4, 0x8254, 0x448f, 0x82a6, 0x8276, 0x82ca, 0x82d8,
+  0x82ff, 0x44b0, 0x8357, 0x9669, 0x698a, 0x8405, 0x70f5, 0x8464,
+  0x60e3, 0x8488, 0x4504, 0x84be, 0x84e1, 0x84f8, 0x8510, 0x8538,
+  0x8552, 0x453b, 0x856f, 0x8570, 0x85e0, 0x4577, 0x8672, 0x8692,
+  0x86b2, 0x86ef, 0x9645, 0x878b, 0x4606, 0x4617, 0x88ae, 0x88ff,
+  0x8924, 0x8947, 0x8991, 0xea43, 0x8a29, 0x8a38, 0x8a94, 0x8ab4,
+  0x8c51, 0x8cd4, 0x8cf2, 0x8d1c, 0x4798, 0x585f, 0x8dc3, 0x47ed,
+  0x4eee, 0x8e3a, 0x55d8, 0x5754, 0x8e71, 0x55f5, 0x8eb0, 0x4837,
+  0x8ece, 0x8ee2, 0x8ee4, 0x8eed, 0x8ef2, 0x8fb7, 0x8fc1, 0x8fca,
+  0x8fcc, 0x9033, 0x99c4, 0x48ad, 0x98e0, 0x9213, 0x491e, 0x9228,
+  0x9258, 0x926b, 0x92b1, 0x92ae, 0x92bf,
+  /* 0x9a */
+  0x92e3, 0x92eb, 0x92f3, 0x92f4, 0x92fd, 0x9343, 0x9384, 0x93ad,
+  0x4945, 0x4951, 0x9ebf, 0x9417, 0x5301, 0x941d, 0x942d, 0x943e,
+  0x496a, 0x9454, 0x9479, 0x952d, 0x95a2, 0x49a7, 0x95f4, 0x9633,
+  0x49e5, 0x67a0, 0x4a24, 0x9740, 0x4a35, 0x97b2, 0x97c2, 0x5654,
+  0x4ae4, 0x60e8, 0x98b9, 0x4b19, 0x98f1, 0x5844, 0x990e, 0x9919,
+  0x51b4, 0x991c, 0x9937, 0x9942, 0x995d, 0x9962, 0x4b70, 0x99c5,
+  0x4b9d, 0x9a3c, 0x9b0f, 0x7a83, 0x9b69, 0x9b81, 0x9bdd, 0x9bf1,
+  0x9bf4, 0x4c6d, 0x9c20, 0x376f, 0xeaa9, 0x9d49, 0x9c3a, 0x9efe,
+  0x5650, 0x9d93, 0x9dbd, 0x9dc0, 0x9dfc, 0x94f6, 0x8fb6, 0x9e7b,
+  0x9eac, 0x9eb1, 0x9ebd, 0x9ec6, 0x94dc, 0x9ee2, 0x9ef1, 0x9ef8,
+  0x7ac8, 0x9f44, 0xeabf, 0xeac0, 0xeac1, 0x691a, 0x94c3, 0x59ac,
+  0xeac5, 0x5840, 0x94c1, 0x37b9, 0xeac9, 0xeaca, 0xeacb, 0xeacc,
+  0x5757, 0x7173, 0xeacf, 0xead0, 0xead1, 0x546a, 0xead3, 0xead4,
+  0x549e, 0xead6, 0xead7, 0xead8, 0xead9, 0xeada, 0x60e7, 0xeadc,
+  0x567a, 0xeade, 0xeadf, 0xeae0, 0xeae1, 0xeae2, 0xeae3, 0x6955,
+  0x9c2f, 0x87a5, 0xeae7, 0xeae8, 0xeae9, 0xeaea, 0xeaeb, 0xeaec,
+  0x5c20, 0xeaee, 0x5e0b, 0xeaf0, 0xeaf1, 0xeaf2, 0x671e, 0xeaf4,
+  0xeaf5, 0xeaf6, 0x3647, 0xeaf8, 0xeaf9, 0xeafa, 0xeafb, 0x5364,
+  0x84ad, 0xeafe, 0xeaff, 0xeb00, 0x8b81, 0xeb02, 0xeb03, 0xeb04,
+  0xeb05, 0x4e78, 0x70bb, 0xeb08, 0xeb09,
+  /* 0x9b */
+  0xeb0a, 0xeb0b, 0xeb0c, 0xeb0d, 0xeb0e, 0xeb0f, 0x62c3, 0xeb11,
+  0xeb12, 0x7198, 0x6855, 0xeb15, 0x69e9, 0x36c8, 0xeb18, 0xeb19,
+  0xeb1a, 0xeb1b, 0xeb1c, 0xeb1d, 0x82fd, 0xeb1f, 0xeb20, 0xeb21,
+  0x89a5, 0xeb23, 0x8fa0, 0xeb25, 0x97b8, 0xeb27, 0x9847, 0x9abd,
+  0xeb2a, 0xfffd, 0xeb2c, 0xeb2d, 0xeb2e, 0xeb2f, 0xeb30, 0xeb31,
+  0xeb32, 0xeb33, 0xeb34, 0xeb35, 0xeb36, 0xeb37, 0xeb38, 0xeb39,
+  0x5fb1, 0x6648, 0x66bf, 0xeb3d, 0xeb3e, 0xeb3f, 0xfffd, 0xeb41,
+  0xfffd, 0xeb43, 0xeb44, 0xfffd, 0xeb46, 0x58b5, 0x670e, 0x6918,
+  0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0x48d0,
+  0x4ab8, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59,
+  0xeb5a, 0xeb5b, 0x51d2, 0xeb5d, 0x599f, 0xeb5f, 0x3bbe, 0xeb61,
+  0xeb62, 0xeb63, 0x5788, 0xeb65, 0x399b, 0xeb67, 0xeb68, 0xeb69,
+  0x3762, 0xeb6b, 0x8b5e, 0xeb6d, 0xfffd, 0xeb6f, 0xeb70, 0xeb71,
+  0x7209, 0xeb73, 0xeb74, 0x5965, 0xeb76, 0xeb77, 0xeb78, 0x8eda,
+  0xeb7a, 0x528f, 0x573f, 0x7171, 0xeb7e, 0xeb7f, 0xeb80, 0xeb81,
+  0x55bc, 0xeb83, 0xeb84, 0xeb85, 0xfffd, 0x3473, 0xeb88, 0xeb89,
+  0xeb8a, 0x4718, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, 0xeb90, 0x5066,
+  0x34fb, 0xeb93, 0xfffd, 0xeb95, 0x477c, 0xeb97, 0xeb98, 0xeb99,
+  0xeb9a, 0xeb9b, 0x57a1, 0x7151, 0xfffd, 0xeb9f, 0xeba0, 0x9056,
+  0xeba2, 0xeba3, 0x8b62, 0xeba5, 0xeba6,
+  /* 0x9c */
+  0x5d5b, 0xeba8, 0xfffd, 0xebaa, 0xebab, 0x8aea, 0xebad, 0xebae,
+  0xebaf, 0xebb0, 0x4bc0, 0xebb2, 0xebb3, 0xebb4, 0x9465, 0xebb6,
+  0x6195, 0x5a27, 0xebb9, 0xfffd, 0x56b9, 0xebbc, 0xebbd, 0x4e6a,
+  0xebbf, 0x9656, 0x6d8f, 0xebc2, 0x3618, 0x8977, 0xebc5, 0xebc6,
+  0xebc7, 0xebc8, 0xfffd, 0xebca, 0x7b42, 0xebcc, 0xebcd, 0xebce,
+  0xfffd, 0xebd0, 0x7a45, 0xfffd, 0xebd3, 0x9a26, 0xebd5, 0x365f,
+  0xebd7, 0xebd8, 0x7983, 0xebda, 0xebdb, 0x5d2c, 0xebdd, 0xfffd,
+  0xebdf, 0x46d0, 0xebe1, 0x753b, 0x8865, 0xebe4, 0x58b6, 0x371c,
+  0xebe7, 0xebe8, 0xebe9, 0x3c54, 0xebeb, 0xebec, 0x9281, 0xebee,
+  0xebef, 0x9330, 0xebf1, 0xebf2, 0x6c39, 0x949f, 0xebf5, 0xebf6,
+  0x8827, 0x88f5, 0xebf9, 0xebfa, 0xebfb, 0x6eb8, 0xebfd, 0xebfe,
+  0x39a4, 0x36b9, 0xfffd, 0xfffd, 0x453f, 0x66b6, 0xec05, 0xec06,
+  0x8943, 0xec08, 0xec09, 0x56d6, 0x40df, 0xec0c, 0x39a1, 0xec0e,
+  0xec0f, 0xec10, 0x71ad, 0x8366, 0xec13, 0xec14, 0xfffd, 0x4cb7,
+  0xec17, 0xec18, 0xec19, 0xec1a, 0xec1b, 0xec1c, 0xec1d, 0x7b43,
+  0x797e, 0xec20, 0x6fb5, 0xec22, 0x6a03, 0xec24, 0x53a2, 0xec26,
+  0x93bf, 0x6836, 0x975d, 0xec2a, 0xec2b, 0xec2c, 0xec2d, 0xec2e,
+  0xec2f, 0x5d85, 0xec31, 0xec32, 0x5715, 0x9823, 0xec35, 0x5dab,
+  0xec37, 0x65be, 0x69d5, 0x53d2, 0xec3b, 0xec3c, 0x3c11, 0x6736,
+  0xec3f, 0xec40, 0xec41, 0xec42, 0xec43,
+  /* 0x9d */
+  0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49, 0x35ca, 0xec4b,
+  0xec4c, 0x48fa, 0x63e6, 0xec4f, 0x7808, 0x9255, 0xec52, 0x43f2,
+  0xec54, 0x43df, 0xec56, 0xec57, 0xec58, 0x59f8, 0xec5a, 0xfffd,
+  0xec5c, 0xec5d, 0xfffd, 0xec5f, 0xec60, 0x3df7, 0xec62, 0xec63,
+  0x8fd0, 0x728f, 0x568b, 0xec67, 0xec68, 0xec69, 0xec6a, 0xec6b,
+  0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71, 0xec72, 0xec73,
+  0x7e9f, 0xec75, 0xec76, 0x4ca4, 0x9547, 0xec79, 0x71a2, 0xec7b,
+  0x4d91, 0x9012, 0xec7e, 0x4d9c, 0xec80, 0x8fbe, 0x55c1, 0x8fba,
+  0xec84, 0x8fb9, 0xec86, 0x4509, 0x7e7f, 0x6f56, 0x6ab1, 0x4eea,
+  0x34e4, 0xec8d, 0xec8e, 0x373a, 0x8e80, 0xec91, 0xec92, 0xec93,
+  0xec94, 0xec95, 0xec96, 0x3deb, 0xec98, 0xec99, 0xec9a, 0xec9b,
+  0x4e9a, 0xec9d, 0xec9e, 0x56bf, 0xeca0, 0x8e0e, 0x5b6d, 0xeca3,
+  0xeca4, 0x63de, 0xfffd, 0xeca7, 0xeca8, 0x6530, 0x562d, 0xecab,
+  0x541a, 0xecad, 0x3dc6, 0xecaf, 0x4c7d, 0x5622, 0x561e, 0x7f49,
+  0xecb4, 0x5975, 0xecb6, 0x8770, 0x4e1c, 0xecb9, 0xecba, 0xecbb,
+  0x8117, 0x9d5e, 0x8d18, 0x763b, 0x9c45, 0x764e, 0x77b9, 0x9345,
+  0x5432, 0x8148, 0x82f7, 0x5625, 0x8132, 0x8418, 0x80bd, 0x55ea,
+  0x7962, 0x5643, 0x5416, 0xeccf, 0x35ce, 0x5605, 0x55f1, 0x66f1,
+  0xecd4, 0x362d, 0x7534, 0x55f0, 0x55ba, 0x5497, 0x5572, 0xecdb,
+  0xecdc, 0x5ed0, 0xecde, 0xecdf, 0xece0,
+  /* 0x9e */
+  0xece1, 0x9eab, 0x7d5a, 0x55de, 0xece5, 0x629d, 0x976d, 0x5494,
+  0x8ccd, 0x71f6, 0x9176, 0x63fc, 0x63b9, 0x63fe, 0x5569, 0xecf0,
+  0x9c72, 0xecf2, 0x519a, 0x34df, 0xecf5, 0x51a7, 0x544d, 0x551e,
+  0x5513, 0x7666, 0x8e2d, 0xecfc, 0x75b1, 0x80b6, 0x8804, 0x8786,
+  0x88c7, 0x81b6, 0x841c, 0xed04, 0x44ec, 0x7304, 0xed07, 0x5b90,
+  0x830b, 0xed0a, 0x567b, 0xed0c, 0xed0d, 0xed0e, 0xed0f, 0xed10,
+  0xed11, 0x9170, 0xed13, 0x9208, 0xed15, 0xed16, 0xed17, 0xed18,
+  0x7266, 0xed1a, 0x474e, 0xed1c, 0xed1d, 0xed1e, 0x40fa, 0x9c5d,
+  0x651f, 0xed22, 0x48f3, 0xed24, 0xed25, 0xed26, 0xed27, 0xfffd,
+  0xed29, 0xed2a, 0xfffd, 0xed2c, 0xed2d, 0x71a3, 0x7e8e, 0x9d50,
+  0x4e1a, 0x4e04, 0x3577, 0x5b0d, 0x6cb2, 0x5367, 0x36ac, 0x39dc,
+  0x537d, 0x36a5, 0xed3b, 0x589a, 0xed3d, 0x822d, 0x544b, 0x57aa,
+  0xed41, 0xed42, 0xfffd, 0x3a52, 0xed45, 0x7374, 0xed47, 0x4d09,
+  0x9bed, 0xed4a, 0xed4b, 0x4c5b, 0xed4d, 0xed4e, 0xed4f, 0x845c,
+  0xed51, 0xed52, 0xed53, 0xed54, 0x632e, 0x7d25, 0xed57, 0xed58,
+  0x3a2a, 0x9008, 0x52cc, 0x3e74, 0x367a, 0x45e9, 0xed5f, 0x7640,
+  0x5af0, 0xed62, 0x787a, 0x47b6, 0x58a7, 0x40bf, 0x567c, 0x9b8b,
+  0x5d74, 0x7654, 0xed6b, 0x9e85, 0x4ce1, 0xfffd, 0x37fb, 0x6119,
+  0xed71, 0xed72, 0xfffd, 0x565d, 0xed75, 0x57a7, 0xed77, 0xed78,
+  0x5234, 0xed7a, 0x35ad, 0xfffd, 0x9d7c,
+  /* 0x9f */
+  0x7c56, 0x9b39, 0x57de, 0xed81, 0x5c53, 0x64d3, 0xed84, 0xed85,
+  0xed86, 0x86ad, 0xed88, 0xed89, 0xed8a, 0xed8b, 0xfffd, 0x51fe,
+  0xed8e, 0x5d8e, 0x9703, 0xed91, 0x9e81, 0x904c, 0x7b1f, 0x9b02,
+  0x5cd1, 0x7ba3, 0x6268, 0x6335, 0x9aff, 0x7bcf, 0x9b2a, 0x7c7e,
+  0xfffd, 0x7c42, 0x7c86, 0x9c15, 0x7bfc, 0x9b09, 0xfffd, 0x9c1b,
+  0xeda6, 0x9f5a, 0x5573, 0x5bc3, 0x4ffd, 0x9e98, 0x4ff2, 0x5260,
+  0x3e06, 0x52d1, 0x5767, 0x5056, 0x59b7, 0x5e12, 0x97c8, 0x9dab,
+  0x8f5c, 0x5469, 0x97b4, 0x9940, 0x97ba, 0x532c, 0x6130, 0x692c,
+  0x53da, 0x9c0a, 0x9d02, 0x4c3b, 0x9641, 0x6980, 0x50a6, 0x7546,
+  0xedc6, 0x99da, 0x5273, 0xfffd, 0x9159, 0x9681, 0x915c, 0xfffd,
+  0x9151, 0xedcf, 0x637f, 0xedd1, 0x6aca, 0x5611, 0x918e, 0x757a,
+  0x6285, 0xedd7, 0x734f, 0x7c70, 0xedda, 0xeddb, 0xfffd, 0xeddd,
+  0x76d6, 0x9b9d, 0x4e2a, 0xede1, 0x83be, 0x8842, 0xfffd, 0x5c4a,
+  0x69c0, 0xfffd, 0x577a, 0x521f, 0x5df5, 0x4ece, 0x6c31, 0xeded,
+  0x4f39, 0x549c, 0x54da, 0x529a, 0x8d82, 0x35fe, 0xfffd, 0x35f3,
+  0xfffd, 0x6b52, 0x917c, 0x9fa5, 0x9b97, 0x982e, 0x98b4, 0x9aba,
+  0x9ea8, 0x9e84, 0x717a, 0x7b14, 0xfffd, 0x6bfa, 0x8818, 0x7f78,
+  0xfffd, 0x5620, 0xee08, 0x8e77, 0x9f53, 0xfffd, 0x8dd4, 0x8e4f,
+  0x9e1c, 0x8e01, 0x6282, 0xee11, 0x8e28, 0x8e75, 0x7ad3, 0xee15,
+  0x7a3e, 0x78d8, 0x6cea, 0x8a67, 0x7607,
+  /* 0xa0 */
+  0xee1b, 0x9f26, 0x6cce, 0x87d6, 0x75c3, 0xee20, 0x7853, 0xee22,
+  0x8d0c, 0x72e2, 0x7371, 0x8b2d, 0x7302, 0x74f1, 0x8ceb, 0xee2a,
+  0x862f, 0x5fba, 0x88a0, 0x44b7, 0xfffd, 0xee30, 0xee31, 0xfffd,
+  0x8a7e, 0xee34, 0xfffd, 0x60fd, 0x7667, 0x9ad7, 0x9d44, 0x936e,
+  0x9b8f, 0x87f5, 0xfffd, 0xfffd, 0x8cf7, 0x732c, 0x9721, 0x9bb0,
+  0x35d6, 0x72b2, 0x4c07, 0x7c51, 0x994a, 0xee48, 0x6159, 0x4c04,
+  0x9e96, 0x617d, 0xfffd, 0x575f, 0x616f, 0x62a6, 0x6239, 0xfffd,
+  0x3a5c, 0x61e2, 0x53aa, 0xee56, 0x6364, 0x6802, 0x35d2, 0x5d57,
+  0xee5b, 0x8fda, 0xee5d, 0xfffd, 0x50d9, 0xee60, 0x7906, 0x5332,
+  0x9638, 0xee64, 0x4065, 0xfffd, 0x77fe, 0xfffd, 0x7cc2, 0xee6a,
+  0x7cda, 0x7a2d, 0x8066, 0x8063, 0x7d4d, 0x7505, 0x74f2, 0x8994,
+  0x821a, 0x670c, 0x8062, 0xee76, 0x805b, 0x74f0, 0x8103, 0x7724,
+  0x8989, 0xee7c, 0x7553, 0xee7e, 0x87a9, 0x87ce, 0x81c8, 0x878c,
+  0x8a49, 0x8cad, 0x8b43, 0x772b, 0x74f8, 0x84da, 0x3635, 0x69b2,
+  0x8da6, 0xfffd, 0x89a9, 0xfffd, 0x6db9, 0x87c1, 0xee91, 0x74e7,
+  0x3ddb, 0x7176, 0x60a4, 0x619c, 0x3cd1, 0xfffd, 0x6077, 0xfffd,
+  0x7f71, 0xee9c, 0xfffd, 0x60e9, 0x4b7e, 0x5220, 0xeea1, 0xeea2,
+  0xeea3, 0xeea4, 0xeea5, 0xeea6, 0xeea7, 0xeea8, 0xeea9, 0xeeaa,
+  0x5cc1, 0xeeac, 0xeead, 0xeeae, 0xeeaf, 0xeeb0, 0xeeb1, 0x4562,
+  0x5b1f, 0xeeb4, 0x9f50, 0x9ea6, 0xeeb7,
+};
+static const unsigned short hkscs_2uni_pagec6[471] = {
+  /* 0xc6 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2460,
+  0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468,
+  0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
+  0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174,
+  0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x4e36, 0x4e3f, 0x4e85,
+  0x4ea0, 0x5182, 0x5196, 0x51ab, 0x52f9, 0x5338, 0x5369, 0x53b6,
+  0x590a, 0x5b80, 0x5ddb, 0x2f33, 0x5e7f, 0xfffd, 0x5f50, 0x5f61,
+  0x6534, 0xfffd, 0x7592, 0xfffd, 0x8fb5, 0xfffd, 0x00a8, 0x02c6,
+  0x30fd, 0x30fe, 0x309d, 0x309e, 0xfffd, 0xfffd, 0x3005, 0x3006,
+  0x3007, 0x30fc, 0xff3b, 0xff3d, 0x273d, 0x3041, 0x3042, 0x3043,
+  0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b,
+  0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053,
+  0x3054, 0x3055, 0x3056, 0x3057, 0x3058,
+  /* 0xc7 */
+  0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060,
+  0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068,
+  0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070,
+  0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078,
+  0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080,
+  0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088,
+  0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090,
+  0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5,
+  0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad,
+  0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5,
+  0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd,
+  0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5,
+  0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd,
+  0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5,
+  0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd,
+  0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5,
+  0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed,
+  0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5,
+  0x30f6, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401,
+  0x0416, 0x0417, 0x0418, 0x0419, 0x041a,
+  /* 0xc8 */
+  0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422,
+  0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
+  0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432,
+  0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439,
+  0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441,
+  0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449,
+  0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x21e7, 0x21b8,
+  0x21b9, 0xf7e5, 0xf7e6, 0x4e5a, 0xf7e8, 0x5202, 0xf7ea, 0xf7eb,
+  0x5188, 0xf7ed, 0xf7ee, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xffe2, 0xffe4, 0xff07, 0xff02, 0x3231,
+  0x2116, 0x2121, 0x309b, 0x309c, 0x2e80, 0x2e84, 0x2e86, 0x2e87,
+  0x2e88, 0x2e8a, 0x2e8c, 0x2e8d, 0x2e95, 0x2e9c, 0x2e9d, 0x2ea5,
+  0x2ea7, 0x2eaa, 0x2eac, 0x2eae, 0x2eb6, 0x2ebc, 0x2ebe, 0x2ec6,
+  0x2eca, 0x2ecc, 0x2ecd, 0x2ecf, 0x2ed6, 0x2ed7, 0x2ede, 0x2ee3,
+  0xfffd, 0xfffd, 0xfffd, 0x0283, 0x0250, 0x025b, 0x0254, 0x0275,
+  0x0153, 0x00f8, 0x014b, 0x028a, 0x026a,
+};
+static const unsigned short hkscs_2uni_pagef9[942] = {
+  /* 0xf9 */
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
+  0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7881, 0x92b9, 0x88cf, 0x58bb,
+  0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, 0x2560, 0x256c,
+  0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, 0x2555, 0x255e,
+  0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, 0x2565, 0x2556,
+  0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, 0x2551, 0x2550,
+  0x256d, 0x256e, 0x2570, 0x256f, 0xffed,
+  /* 0xfa */
+  0xe000, 0x92db, 0xe002, 0xe003, 0x854c, 0x42b5, 0x73ef, 0x51b5,
+  0x3649, 0xe009, 0xe00a, 0x9344, 0xe00c, 0x82ee, 0xe00e, 0x783c,
+  0x6744, 0x62df, 0xe012, 0xe013, 0xe014, 0xe015, 0xe016, 0x4fab,
+  0xe018, 0x5008, 0xe01a, 0xe01b, 0xe01c, 0xe01d, 0xe01e, 0xfffd,
+  0xe020, 0x5fa4, 0xe022, 0xe023, 0x6edb, 0xe025, 0xfffd, 0x5101,
+  0x347a, 0x510e, 0x986c, 0x3743, 0x8416, 0xe02d, 0xe02e, 0x5160,
+  0xe030, 0x516a, 0xe032, 0xe033, 0xe034, 0xe035, 0xe036, 0xe037,
+  0xe038, 0x5b82, 0x877d, 0xe03b, 0xe03c, 0x51b2, 0x51b8, 0x9d34,
+  0x51c9, 0x51cf, 0x51d1, 0x3cdc, 0x51d3, 0xe045, 0x51b3, 0x51e2,
+  0x5342, 0x51ed, 0x83cd, 0x693e, 0xe04c, 0x5f7b, 0x520b, 0x5226,
+  0x523c, 0x52b5, 0x5257, 0x5294, 0x52b9, 0x52c5, 0x7c15, 0x8542,
+  0x52e0, 0x860d, 0xe05a, 0xfffd, 0xe05c, 0x5549, 0x6ed9, 0xe05f,
+  0xe060, 0xe061, 0x5333, 0xfffd, 0xe064, 0x6ccb, 0xe066, 0x681b,
+  0x73d5, 0x604a, 0x3eaa, 0x38cc, 0xe06c, 0x71dd, 0x44a2, 0x536d,
+  0x5374, 0xe071, 0x537e, 0xfffd, 0xe074, 0xe075, 0x77e6, 0x5393,
+  0xe078, 0x53a0, 0x53ab, 0x53ae, 0x73a7, 0xe07d, 0x3f59, 0x739c,
+  0x53c1, 0x53c5, 0x6c49, 0x4e49, 0x57fe, 0x53d9, 0x3aab, 0xe087,
+  0x53e0, 0xe089, 0xe08a, 0x53f6, 0xe08c, 0x5413, 0x7079, 0x552b,
+  0x6657, 0x6d5b, 0x546d, 0xe093, 0xe094, 0x555d, 0x548f, 0x54a4,
+  0x47a6, 0xe099, 0xe09a, 0x3db4, 0xe09c,
+  /* 0xfb */
+  0xe09d, 0xe09e, 0x5547, 0x4ced, 0x542f, 0x7417, 0x5586, 0x55a9,
+  0xfffd, 0xe0a6, 0xe0a7, 0x4552, 0xe0a9, 0x66b3, 0xe0ab, 0x5637,
+  0x66cd, 0xe0ae, 0x66a4, 0x66ad, 0x564d, 0x564f, 0x78f1, 0x56f1,
+  0x9787, 0x53fe, 0x5700, 0x56ef, 0x56ed, 0xe0ba, 0x3623, 0xe0bc,
+  0x5746, 0xe0be, 0x6c6e, 0x708b, 0x5742, 0x36b1, 0xe0c3, 0x57e6,
+  0xe0c5, 0x5803, 0xe0c7, 0xe0c8, 0x5826, 0xe0ca, 0x585c, 0x58aa,
+  0x3561, 0x58e0, 0x58dc, 0xe0d0, 0x58fb, 0x5bff, 0x5743, 0xe0d4,
+  0xe0d5, 0x93d3, 0x35a1, 0x591f, 0x68a6, 0x36c3, 0x6e59, 0xe0dc,
+  0x5a24, 0x5553, 0xe0df, 0x8505, 0x59c9, 0xe0e2, 0xe0e3, 0xe0e4,
+  0xe0e5, 0x59d9, 0xe0e7, 0xe0e8, 0xe0e9, 0x6d71, 0xe0eb, 0xe0ec,
+  0x59f9, 0xe0ee, 0x5aab, 0x5a63, 0x36e6, 0xe0f2, 0xfffd, 0x3708,
+  0x5a96, 0x7465, 0x5ad3, 0xe0f8, 0xe0f9, 0x3d85, 0xe0fb, 0x3732,
+  0xe0fd, 0x5e83, 0x52d0, 0x5b76, 0x6588, 0x5b7c, 0xe103, 0x4004,
+  0x485d, 0xe106, 0x5bd5, 0x6160, 0xe109, 0xe10a, 0xe10b, 0x5bf3,
+  0x5b9d, 0x4d10, 0x5c05, 0xe110, 0x5c13, 0x73ce, 0x5c14, 0xe114,
+  0xe115, 0x5c49, 0x48dd, 0x5c85, 0x5ce9, 0x5cef, 0x5d8b, 0xe11c,
+  0xe11d, 0x5d10, 0x5d18, 0x5d46, 0xe121, 0x5cba, 0x5dd7, 0x82fc,
+  0x382d, 0xe126, 0xe127, 0xe128, 0x8287, 0x3836, 0x3bc2, 0x5e2e,
+  0x6a8a, 0xfffd, 0x5e7a, 0xe130, 0xe131, 0x53a6, 0x4eb7, 0xfffd,
+  0x53a8, 0xe136, 0x5e09, 0x5ef4, 0xe139,
+  /* 0xfc */
+  0x5ef9, 0x5efb, 0x38a0, 0x5efc, 0x683e, 0x941b, 0x5f0d, 0xe141,
+  0xe142, 0x3ade, 0x48ae, 0xe145, 0x5f3a, 0xe147, 0xe148, 0xfffd,
+  0xe14a, 0x5f63, 0x97bd, 0xe14d, 0x5f72, 0x9340, 0xe150, 0x5fa7,
+  0x5db6, 0x3d5f, 0xe154, 0xe155, 0xe156, 0xe157, 0x91d6, 0xe159,
+  0xe15a, 0x6031, 0x6685, 0xe15d, 0x3963, 0x3dc7, 0x3639, 0x5790,
+  0xe162, 0x7971, 0x3e40, 0x609e, 0xfffd, 0x60b3, 0xe168, 0xe169,
+  0xe16a, 0x74a4, 0x50e1, 0x5aa0, 0x6164, 0x8424, 0x6142, 0xe171,
+  0xe172, 0x6181, 0x51f4, 0xe175, 0x6187, 0x5baa, 0xe178, 0xe179,
+  0x61d3, 0xe17b, 0xe17c, 0x61d0, 0x3932, 0xe17f, 0xe180, 0x6023,
+  0x615c, 0x651e, 0x638b, 0xe185, 0x62c5, 0xe187, 0x62d5, 0xe189,
+  0x636c, 0xe18b, 0x3a17, 0x6438, 0x63f8, 0xe18f, 0xe190, 0xfffd,
+  0x6f8a, 0xe193, 0x9814, 0xe195, 0xe196, 0x64e1, 0x64e5, 0x947b,
+  0x3a66, 0x643a, 0x3a57, 0x654d, 0x6f16, 0xe19f, 0xe1a0, 0x6585,
+  0x656d, 0x655f, 0xe1a4, 0x65b5, 0xe1a6, 0x4b37, 0x65d1, 0x40d8,
+  0xe1aa, 0x65e0, 0x65e3, 0x5fdf, 0xe1ae, 0x6618, 0xe1b0, 0xe1b1,
+  0x6644, 0xe1b3, 0xe1b4, 0x664b, 0xe1b6, 0x6667, 0xe1b8, 0x6673,
+  0xfffd, 0xe1bb, 0xe1bc, 0xe1bd, 0xe1be, 0xe1bf, 0x77c5, 0xe1c1,
+  0x99a4, 0x6702, 0xe1c4, 0xe1c5, 0x3b2b, 0x69fa, 0xe1c8, 0xfffd,
+  0x6767, 0x6762, 0xe1cc, 0xe1cd, 0x67d7, 0x44e9, 0x6822, 0x6e50,
+  0x923c, 0x6801, 0xe1d4, 0xe1d5, 0x685d,
+  /* 0xfd */
+  0xe1d7, 0x69e1, 0x6a0b, 0xe1da, 0x6973, 0x68c3, 0xe1dd, 0x6901,
+  0x6900, 0x3d32, 0x3a01, 0xe1e2, 0x3b80, 0x67ac, 0x6961, 0xe1e6,
+  0x42fc, 0x6936, 0x6998, 0x3ba1, 0xe1eb, 0x8363, 0x5090, 0x69f9,
+  0xe1ef, 0xe1f0, 0x6a45, 0xe1f2, 0x6a9d, 0x3bf3, 0x67b1, 0x6ac8,
+  0xe1f7, 0x3c0d, 0x6b1d, 0xe1fa, 0x60de, 0x6b35, 0x6b74, 0xe1fe,
+  0x6eb5, 0xe200, 0xe201, 0xe202, 0x3740, 0x5421, 0xe205, 0x6be1,
+  0xe207, 0x6bdc, 0x6c37, 0xe20a, 0xe20b, 0xe20c, 0x6c5a, 0x8226,
+  0x6c79, 0xe210, 0x44c5, 0xe212, 0xe213, 0xe214, 0xe215, 0xe216,
+  0x36e5, 0x3ceb, 0xe219, 0x9b83, 0xe21b, 0xe21c, 0x7f8f, 0x6837,
+  0xe21f, 0xe220, 0xe221, 0x6d96, 0x6d5c, 0x6e7c, 0x6f04, 0xe226,
+  0xe227, 0xe228, 0x8533, 0xe22a, 0x51c7, 0xfffd, 0xfffd, 0x842e,
+  0xe22f, 0xfffd, 0xe231, 0x7453, 0xe233, 0x79cc, 0x6e4f, 0x5a91,
+  0xe237, 0x6ff8, 0x370d, 0x6f9d, 0xe23b, 0x6efa, 0xe23d, 0xe23e,
+  0x4555, 0x93f0, 0x6f44, 0x6f5c, 0x3d4e, 0x6f74, 0xe245, 0x3d3b,
+  0x6f9f, 0xe248, 0x6fd3, 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e,
+  0xe24f, 0x51df, 0xe251, 0xe252, 0xe253, 0xe254, 0x704b, 0x707e,
+  0x70a7, 0x7081, 0x70cc, 0x70d5, 0x70d6, 0x70df, 0x4104, 0x3de8,
+  0x71b4, 0x7196, 0xe261, 0x712b, 0x7145, 0x5a88, 0x714a, 0xfffd,
+  0x5c9c, 0xe268, 0x714f, 0x9362, 0xe26b, 0x712c, 0xe26d, 0xe26e,
+  0xe26f, 0x71ba, 0xe271, 0x70bd, 0x720e,
+  /* 0xfe */
+  0x9442, 0x7215, 0x5911, 0x9443, 0x7224, 0x9341, 0xe27a, 0x722e,
+  0x7240, 0xe27d, 0x68bd, 0x7255, 0x7257, 0x3e55, 0xe282, 0x680d,
+  0x6f3d, 0x7282, 0xfffd, 0x732b, 0xe288, 0xe289, 0x48ed, 0xe28b,
+  0x7328, 0x732e, 0x73cf, 0x73aa, 0xe290, 0xe291, 0x73c9, 0x7449,
+  0xe294, 0xe295, 0xe296, 0x6623, 0x36c5, 0xe299, 0xe29a, 0xe29b,
+  0x73f7, 0x7415, 0x6903, 0xe29f, 0x7439, 0xe2a1, 0x3ed7, 0xfffd,
+  0xe2a4, 0x7460, 0xe2a6, 0x7447, 0x73e4, 0x7476, 0x83b9, 0x746c,
+  0x3730, 0x7474, 0x93f1, 0x6a2c, 0x7482, 0x4953, 0xe2b2, 0xe2b3,
+  0xe2b4, 0xe2b5, 0x5b46, 0xe2b7, 0xe2b8, 0x74c8, 0xe2ba, 0x750e,
+  0xfffd, 0x751e, 0xe2be, 0xe2bf, 0x5bd7, 0xe2c1, 0x9385, 0x754d,
+  0x754a, 0x7567, 0x756e, 0xe2c7, 0x3f04, 0xe2c9, 0x758e, 0x745d,
+  0x759e, 0x75b4, 0x7602, 0x762c, 0x7651, 0x764f, 0x766f, 0x7676,
+  0xe2d4, 0x7690, 0x81ef, 0x37f8, 0xe2d8, 0xe2d9, 0x76a1, 0x76a5,
+  0x76b7, 0x76cc, 0xe2de, 0x8462, 0xe2e0, 0xe2e1, 0xe2e2, 0x771e,
+  0x7726, 0x7740, 0x64af, 0xe2e7, 0x7758, 0xe2e9, 0x77af, 0xe2eb,
+  0xe2ec, 0xe2ed, 0x77f4, 0xfffd, 0xe2f0, 0xe2f1, 0x68ca, 0x78af,
+  0x78c7, 0x78d3, 0x96a5, 0x792e, 0xe2f8, 0x78d7, 0x7934, 0x78b1,
+  0xe2fc, 0x8fb8, 0x8884, 0xe2ff, 0xe300, 0xe301, 0x7986, 0x8900,
+  0x6902, 0x7980, 0xe306, 0x799d, 0xe308, 0x793c, 0x79a9, 0x6e2a,
+  0xe30c, 0x3ea8, 0x79c6, 0xe30f, 0x79d4,
+};
+
+static int
+hkscs_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+  unsigned char c1 = s[0];
+  if ((c1 >= 0x88 && c1 <= 0x8b) || (c1 >= 0x8d && c1 <= 0xa0) || (c1 >= 0xc6 && c1 <= 0xc8) || (c1 >= 0xf9 && c1 <= 0xfe)) {
+    if (n >= 2) {
+      unsigned char c2 = s[1];
+      if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+        unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
+        unsigned short wc = 0xfffd;
+        if (i < 2041) {
+          if (i < 1883)
+            wc = hkscs_2uni_page88[i-1256];
+        } else if (i < 10990) {
+          if (i < 5181)
+            wc = hkscs_2uni_page8d[i-2041];
+        } else if (i < 18997) {
+          if (i < 11461)
+            wc = hkscs_2uni_pagec6[i-10990];
+        } else {
+          if (i < 19939)
+            wc = hkscs_2uni_pagef9[i-18997];
+        }
+        if (wc != 0xfffd) {
+          *pwc = (ucs4_t) wc;
+          return 2;
+        }
+      }
+      return RET_ILSEQ;
+    }
+    return RET_TOOFEW(0);
+  }
+  return RET_ILSEQ;
+}
+
+static const unsigned short hkscs_2charset[4702] = {
+  0xc6d8, 0x8859, 0x8857, 0x885d, 0x885b, 0x8866, 0x8861, 0x885f,
+  0x886a, 0x8868, 0x886f, 0x886d, 0x88a7, 0x8873, 0x8871, 0x8877,
+  0x8875, 0xc8fb, 0x887b, 0x8879, 0x88a2, 0x8856, 0x8867, 0x885a,
+  0x886c, 0x885c, 0x886e, 0x8870, 0xc8fc, 0x885e, 0x8874, 0xc8fa,
+  0x8878, 0x8858, 0x8869, 0x8872, 0x8860, 0x8876, 0x887a, 0x887c,
+  0x887d, 0x887e, 0x88a1, 0xc8f6, 0x886b, 0xc8f8, 0xc8f7, 0x88a8,
+  0xc8fe, 0xc8f9, 0xc8f5, 0xc8fd, 0xc6d9, 0xc7f9, 0xc7f3, 0xc7f4,
+  0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7fa, 0xc7fb, 0xc7fc, 0xc7fd,
+  0xc7fe, 0xc840, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846,
+  0xc847, 0xc848, 0xc849, 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e,
+  0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0xc854, 0xc855, 0xc856,
+  0xc857, 0xc858, 0xc859, 0xc85a, 0xc85c, 0xc85d, 0xc85e, 0xc85f,
+  0xc860, 0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867,
+  0xc868, 0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f,
+  0xc870, 0xc871, 0xc872, 0xc873, 0xc874, 0xc875, 0xc85b, 0x8863,
+  0x88a4, 0x8865, 0x88a6, 0xc8d2, 0xc8d3, 0xc6b5, 0xc6b6, 0xc6b7,
+  0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc877,
+  0xc878, 0xc876, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a4, 0xc6a5, 0xc6a6,
+  0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae,
+  0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, 0xc6b4, 0xf9f9, 0xf9f8,
+  0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, 0xf9ec, 0xf9f5,
+  0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, 0xf9e0, 0xf9eb,
+  0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, 0xf9f6, 0xf9e4,
+  0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd, 0xf9fc, 0xc6e6,
+  0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da, 0xc8db, 0xc8dc, 0xc8dd,
+  0xc8de, 0xc8df, 0xc8e0, 0xc8e1, 0xc8e2, 0xc8e3, 0xc8e4, 0xc8e5,
+  0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed,
+  0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc6cd, 0xc6e0, 0xc6e1, 0xc6e2,
+  0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, 0xc6ed, 0xc6ee,
+  0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6,
+  0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe,
+  0xc740, 0xc741, 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747,
+  0xc748, 0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f,
+  0xc750, 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757,
+  0xc758, 0xc759, 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f,
+  0xc760, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767,
+  0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f,
+  0xc770, 0xc771, 0xc772, 0xc773, 0xc774, 0xc775, 0xc776, 0xc777,
+  0xc778, 0xc779, 0xc77a, 0xc8d4, 0xc8d5, 0xc6dc, 0xc6dd, 0xc77b,
+  0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, 0xc7a5,
+  0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac, 0xc7ad,
+  0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b4, 0xc7b5,
+  0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7bc, 0xc7bd,
+  0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, 0xc7c3, 0xc7c4, 0xc7c5,
+  0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, 0xc7cb, 0xc7cc, 0xc7cd,
+  0xc7ce, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5,
+  0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, 0xc7dc, 0xc7dd,
+  0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0xc7e4, 0xc7e5,
+  0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec, 0xc7ed,
+  0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc6e3, 0xc6da, 0xc6db,
+  0xc8d1, 0x9277, 0x96df, 0x89d5, 0x93cd, 0x9bdf, 0xfa68, 0x89da,
+  0x8f59, 0x89db, 0x8f5d, 0x89dc, 0x96f7, 0x8ada, 0x8bdc, 0x97db,
+  0x9e53, 0x9daa, 0x9bea, 0x8a6e, 0x8bc8, 0x89e8, 0x89ea, 0xfb70,
+  0x89ed, 0x94dd, 0x89ee, 0x9eb4, 0x8ad3, 0x92db, 0x94db, 0x89f9,
+  0xfb7a, 0x89fb, 0x9efc, 0x89fc, 0x89bf, 0x89fe, 0x89e6, 0x9d46,
+  0x9dee, 0xa07e, 0xa068, 0x98e9, 0x8b68, 0x8dfd, 0x8bbe, 0x9fd9,
+  0x8aeb, 0x9fd7, 0x8b6a, 0x9c5c, 0x8bb1, 0xfb5e, 0x9df3, 0xa0d0,
+  0xfc66, 0x92e9, 0x9aec, 0x8fab, 0xfa48, 0x8e45, 0x9c6f, 0x9ede,
+  0x89ef, 0x96e9, 0x9ebb, 0x94de, 0x9eb8, 0x97ba, 0xfb65, 0x95d6,
+  0x9cbb, 0x97da, 0x8f45, 0xfb7d, 0x9158, 0xfe64, 0x9856, 0x9b4d,
+  0x935b, 0x95c7, 0x97e7, 0x9359, 0x91f5, 0x97b8, 0xfda2, 0xfbb6,
+  0x92fa, 0x9357, 0x8ba6, 0xfbb9, 0x97b0, 0xfdc4, 0x9ca1, 0x91f2,
+  0x91f9, 0x8ff1, 0x9745, 0x9853, 0xfe78, 0xfbc1, 0x9251, 0x9dad,
+  0xfd6c, 0xfa6b, 0x9bc2, 0x9a7b, 0x8b60, 0x934b, 0x9abd, 0x91b7,
+  0x95b4, 0xfec5, 0x9ef0, 0x8d64, 0x9269, 0x8d67, 0xfbea, 0xfbef,
+  0x8d68, 0x93eb, 0xfc42, 0x9166, 0xfacd, 0x93dd, 0x8bcc, 0x8d6d,
+  0x8d6e, 0x96a8, 0xfca6, 0x8d6f, 0x8d70, 0xfc64, 0x9060, 0x8d74,
+  0x97c3, 0x8ad0, 0x9274, 0x9bbe, 0x9cc8, 0x9cba, 0x8d78, 0x9eb9,
+  0x955a, 0x91b4, 0x8a48, 0x8d7d, 0x8a7d, 0x8ac2, 0xfd4a, 0x8da1,
+  0x8ad1, 0xfcb4, 0x8b47, 0x93a4, 0x9eda, 0x8a51, 0x8da6, 0x9ec5,
+  0xfcc4, 0xa078, 0x94b5, 0xfcc2, 0x8a6b, 0x8dab, 0xfae8, 0x8dad,
+  0xfc49, 0x93c1, 0x906f, 0x8db0, 0x947e, 0x90fa, 0x9479, 0x8db2,
+  0xfcee, 0x997b, 0x8db4, 0x8db7, 0x91b3, 0x8dbb, 0x8dba, 0x8dbc,
+  0x9044, 0xfd4c, 0x93e4, 0x93e0, 0xfd53, 0x8dc3, 0x9bb8, 0xfbf0,
+  0x93e9, 0x93f6, 0x8dc5, 0x8dca, 0x8dcc, 0xfd5d, 0x93b5, 0xfd61,
+  0x9cf8, 0x9252, 0x9ca5, 0x8dd6, 0x97c0, 0xa0de, 0x97d2, 0xfaa5,
+  0xfda3, 0x8ddb, 0x8eaf, 0x91b5, 0xfd49, 0xfdd1, 0x8deb, 0x97c6,
+  0xfdce, 0x90fc, 0xfc59, 0x96d6, 0x97c5, 0x8def, 0x97d7, 0x8df0,
+  0x96a6, 0xfbbf, 0x8df3, 0x9449, 0x8df5, 0x9872, 0x8e6b, 0xfafd,
+  0x8f50, 0x9dcc, 0xfc65, 0x996e, 0x94a1, 0x8f63, 0xa0da, 0x9253,
+  0xfde9, 0x9db5, 0x9879, 0x9d5d, 0x8d63, 0x9669, 0x9f70, 0xfc6a,
+  0x8ac7, 0x89d7, 0xfe4d, 0x9edd, 0xfefb, 0x98bc, 0xfacc, 0x95b0,
+  0x9464, 0x936f, 0x94b9, 0x95ec, 0x91ee, 0x98c3, 0x95f6, 0x8ffd,
+  0x98c5, 0x9766, 0xfe6e, 0x97dd, 0x92d2, 0x9761, 0x98cb, 0x95f0,
+  0x975d, 0x91e3, 0x98cc, 0x9469, 0x98cd, 0x98ce, 0x95fc, 0x94a3,
+  0x9662, 0xfeb6, 0x9463, 0x98d0, 0x98d1, 0x9475, 0xfae0, 0x9472,
+  0x98d6, 0x8af0, 0x98d9, 0x98db, 0x98dd, 0x98a8, 0x8a6d, 0x8afb,
+  0x8aae, 0xfbc9, 0x98e4, 0x98e6, 0x98e8, 0x8a4d, 0x9257, 0x95df,
+  0xa0ac, 0x98eb, 0x98ec, 0x98f4, 0x8ab8, 0x9ee7, 0x94bc, 0xfcd1,
+  0x9cc6, 0x9e7e, 0x98fe, 0xfde8, 0x9940, 0x94c9, 0x94d3, 0x9946,
+  0x90c0, 0x94d1, 0x9573, 0x93c2, 0x9948, 0x994b, 0x8e55, 0x994e,
+  0x8efe, 0x8e59, 0x94ec, 0x94ef, 0x8f74, 0x9955, 0x9544, 0x9956,
+  0x9959, 0x995b, 0xfa45, 0x90b7, 0x9743, 0x95cd, 0x97c9, 0xfd50,
+  0x8eb9, 0x95c6, 0x9967, 0x8ab9, 0x8dfc, 0x8a76, 0x9d51, 0x9973,
+  0x9d4f, 0x997a, 0x9564, 0x99a1, 0x99a5, 0x99a7, 0x8eed, 0x99ad,
+  0x946e, 0x8f70, 0xfad0, 0x99b3, 0xa053, 0x965c, 0xfd7a, 0x97fe,
+  0x92bd, 0x97fd, 0x8f64, 0xfcf7, 0x9562, 0x97cd, 0x9e64, 0x924c,
+  0x8ec9, 0x99bc, 0x9da5, 0x8f54, 0x8f7c, 0x8ea2, 0x8f7a, 0x97ae,
+  0x96c8, 0x99c3, 0x90d6, 0x9cbe, 0x8f76, 0x9470, 0xfb4b, 0xfdca,
+  0x8ec7, 0xa0f9, 0x8fa9, 0x99c7, 0x90d7, 0x9edf, 0x99ce, 0x8fba,
+  0x8feb, 0x99cf, 0x8fc2, 0x92c9, 0x97dc, 0x95b3, 0x9c79, 0x95b2,
+  0x8fdb, 0x9be3, 0x9e7a, 0x9bee, 0x99de, 0xfafa, 0x9ee5, 0x8a52,
+  0x99e1, 0x8a67, 0x8bb5, 0x8aac, 0x99e9, 0xfbca, 0x97de, 0x95d1,
+  0x99f5, 0xfc4a, 0x9ba9, 0xfbdc, 0xfe56, 0x9ea4, 0x9d49, 0x95db,
+  0x89c5, 0x99f8, 0x9664, 0x9055, 0x96d4, 0x977c, 0x964d, 0x97e1,
+  0x9a48, 0x9a49, 0xfe7d, 0x90aa, 0x9a50, 0x9347, 0x8ed8, 0x90c9,
+  0x9a55, 0x90bc, 0x9a58, 0x8bb8, 0x90d5, 0x9641, 0x9a5a, 0x9a5c,
+  0x97c2, 0x8abb, 0x9baa, 0x90f5, 0x9a60, 0x9145, 0x9a63, 0x8bb6,
+  0xfccf, 0x966b, 0x9a6e, 0x914f, 0x9746, 0xa0e6, 0x92d7, 0x9675,
+  0x93d4, 0x91bb, 0x9679, 0x9a70, 0x9678, 0x91cd, 0x9c4a, 0xa06f,
+  0xa06a, 0x915f, 0x9fa5, 0x89ba, 0x9ecd, 0x9a79, 0x9dce, 0x9d73,
+  0x96b9, 0x96bc, 0x9cd1, 0x89b7, 0x9eee, 0xfb43, 0x9ec9, 0xfbd3,
+  0x91ae, 0x9d78, 0x9d7b, 0x9eb3, 0x9eb2, 0x9dd6, 0x994f, 0x89ce,
+  0x8bc0, 0x9fc4, 0x8bd4, 0xc6bf, 0x8bf9, 0x8946, 0xc6c0, 0xfae5,
+  0xc87b, 0x8bc6, 0x9c57, 0x9afb, 0x89d0, 0x89cf, 0xc6c1, 0x89d1,
+  0x89e2, 0x927e, 0x9dba, 0xc6c2, 0xfbf8, 0x8bc7, 0x926b, 0x89d2,
+  0x9fcf, 0x9da9, 0x89d3, 0x99e2, 0x9267, 0x92a4, 0x894e, 0x894f,
+  0x9278, 0x91b6, 0x89d4, 0x9fd2, 0x92a7, 0x95a2, 0x926e, 0x96ea,
+  0x926f, 0x92a3, 0x8950, 0xfa57, 0x9866, 0x89d6, 0x98b2, 0x92ab,
+  0x96de, 0x92ac, 0x9f6e, 0x8ef2, 0x9f6c, 0x89d8, 0xfa59, 0x92a8,
+  0x9163, 0x9f73, 0x92ad, 0x9be9, 0x92a9, 0x92aa, 0x89d9, 0xfd56,
+  0x9fa8, 0x92a1, 0x90e3, 0xa0a6, 0x94ab, 0xfc72, 0x97c4, 0x92ae,
+  0xfa67, 0x92a2, 0xfa69, 0x9268, 0x8951, 0xfa6f, 0xfa71, 0x8952,
+  0x945a, 0xc6c3, 0x89dd, 0xc8a2, 0xc6c4, 0x9e52, 0x8953, 0x9e55,
+  0x92ba, 0xc6c5, 0xfa7d, 0xfaa8, 0x9a68, 0xfa47, 0xfa7e, 0x92bb,
+  0xfdb6, 0xfaa2, 0xfaa3, 0xfaa4, 0x9bb4, 0xfaa6, 0x89df, 0xfddb,
+  0xfaa9, 0x8954, 0xfaab, 0xfc7a, 0x89e0, 0x9f4f, 0xc87d, 0x89e1,
+  0xfab0, 0x9fcd, 0xa0e7, 0xfab1, 0x89a6, 0x9efa, 0xfab2, 0xfab4,
+  0x92c4, 0x9f6f, 0x8bb0, 0x9fac, 0x89e3, 0x9bd3, 0x89e4, 0xfab5,
+  0x9fd5, 0x8955, 0x92c5, 0x8956, 0xfab3, 0xfab6, 0xfab7, 0x9edc,
+  0xfbc4, 0x9f71, 0xfaba, 0x92c7, 0xc6c6, 0x9a4c, 0x89e5, 0x9f7d,
+  0xa0a9, 0xfac4, 0xc6c7, 0x8957, 0xfaaa, 0x8958, 0x8be3, 0x8b61,
+  0x9af1, 0x9eb7, 0xc6c8, 0xfad1, 0xfad2, 0x9eba, 0xfad4, 0xfad9,
+  0xfadb, 0x9ce0, 0xfbf7, 0xfbfa, 0x89e7, 0xa07a, 0xfadc, 0xfadd,
+  0x89e9, 0xc6c9, 0xfae2, 0x89eb, 0xfae3, 0x90c8, 0x92da, 0x8959,
+  0x9cf5, 0x895a, 0xfae7, 0x9fa2, 0xfaea, 0xfaed, 0x8fad, 0xfb59,
+  0xfaef, 0x96ef, 0x9dec, 0x9dca, 0xfd6d, 0x89ec, 0xfb44, 0x9de2,
+  0x9ec0, 0x9e56, 0x9f79, 0x9ac7, 0xfaf4, 0x98a1, 0xfaf8, 0x89f0,
+  0x9e47, 0x9df7, 0x9fd3, 0x9aca, 0x89f1, 0xfaf9, 0x8e5a, 0x89f2,
+  0x89f3, 0x925d, 0x8b51, 0x92e0, 0x89f4, 0x9fd4, 0x8a79, 0x89f5,
+  0x97a7, 0x93ba, 0x9e58, 0x89f6, 0x9e57, 0x89f7, 0x8a41, 0x89f8,
+  0xfaf1, 0x89fa, 0xfb42, 0xfabf, 0xfba3, 0xfaf7, 0x9e4e, 0x94dc,
+  0x95da, 0x9df8, 0x9f6a, 0x8ab7, 0xfb46, 0x8a46, 0xfb47, 0x9148,
+  0x92de, 0x8b53, 0x9df6, 0x9bda, 0x9d7e, 0x89fd, 0x99e4, 0x9e43,
+  0x9de9, 0x8f52, 0x9df5, 0x9df0, 0x99e7, 0x8bbd, 0x9def, 0x9fb7,
+  0x9dd0, 0x9feb, 0x8da9, 0x9dcf, 0x98e1, 0x9de5, 0x9dc8, 0xfb4f,
+  0x9deb, 0xfb54, 0xfb55, 0x9aa2, 0x8ad6, 0x9a5f, 0x9ef5, 0x8fb7,
+  0x9ad2, 0x9e6a, 0x9ee8, 0x8bbf, 0x91c2, 0x9d62, 0x9260, 0x925e,
+  0x91c1, 0x8ac5, 0x97a3, 0x8b6c, 0x8d7e, 0x9c54, 0x9dbd, 0x9cc5,
+  0x895b, 0xfb5c, 0xfb5b, 0xfb57, 0x98c7, 0xfb5a, 0x9cee, 0x92e2,
+  0x94a7, 0x9bd4, 0xfb64, 0xfb76, 0xfb60, 0x99e5, 0x9ac2, 0x91fb,
+  0xa073, 0x9f72, 0x9fcc, 0x98a5, 0x92e8, 0x9bbc, 0x96f3, 0x92e7,
+  0xfc67, 0x8b7d, 0x9bf4, 0x9ef7, 0x9ec1, 0x996f, 0x96f1, 0x8e41,
+  0x954a, 0x97e6, 0x96f5, 0x92e6, 0x9f42, 0xfb67, 0x99a9, 0xfae6,
+  0xfb69, 0x97e5, 0x967d, 0xfb6c, 0x99a2, 0x9abb, 0x9a65, 0x944e,
+  0xfb6e, 0x99df, 0x98e3, 0x9254, 0x967b, 0x8aaf, 0x8baf, 0x9ebd,
+  0x9ee6, 0xfb6f, 0x8ee1, 0x9b7d, 0x9c7e, 0xf9d9, 0x92ea, 0xfb72,
+  0xfb71, 0x895c, 0x98f0, 0x96f2, 0xfb74, 0x8bc1, 0x895d, 0x89de,
+  0x895e, 0xc6ca, 0xfe42, 0xfb7b, 0x895f, 0x8960, 0x9bcd, 0x9dd3,
+  0x984c, 0x9752, 0x95c3, 0x9bb6, 0x9ab9, 0x97b3, 0x9f74, 0x92f1,
+  0x97df, 0xfba6, 0xfbab, 0x9877, 0x9854, 0x95c5, 0x9d55, 0xfbb2,
+  0x957e, 0x9742, 0x94e6, 0x92f5, 0x92fd, 0xfba2, 0x9c51, 0x94e9,
+  0x985c, 0x92f0, 0x944c, 0x916b, 0x8b78, 0x94e2, 0x984f, 0xfbb5,
+  0x9271, 0x9365, 0x985b, 0x9850, 0x97bc, 0x92f3, 0x9340, 0x984d,
+  0x9572, 0xfdef, 0xfdc1, 0xfbba, 0x92eb, 0xfc73, 0x97b7, 0xfbb4,
+  0x90a7, 0x9741, 0x92f4, 0xfbbc, 0x9577, 0x9ee2, 0x8f78, 0xf9dc,
+  0x9672, 0x9eb5, 0x964b, 0xa0fa, 0x9575, 0x90da, 0x9367, 0xfea4,
+  0x90df, 0x9354, 0x8961, 0x8bb4, 0x9dc0, 0x8e48, 0xfbc5, 0xfbc7,
+  0xc6cb, 0xfa79, 0x9e67, 0xfbd2, 0x8962, 0x8963, 0xfc7d, 0x9f6b,
+  0xfbcc, 0xfeae, 0xfbd1, 0xfb75, 0xfbd4, 0xfbd6, 0xfbd8, 0x8b5d,
+  0x934c, 0x9ae2, 0x8bc9, 0xfbdb, 0x9fc9, 0x9f44, 0x98ed, 0xfbdd,
+  0x8df2, 0x8964, 0xfdf2, 0x934d, 0xfbe7, 0xa0f2, 0x9868, 0x9f58,
+  0x8d73, 0xfbde, 0xfbdf, 0xfbe3, 0x8da8, 0xfbe4, 0x9c75, 0x9878,
+  0x8d60, 0xfbe5, 0x8d61, 0x8d62, 0xa0a1, 0x9c40, 0x98ad, 0x9eea,
+  0x9ceb, 0xfbe0, 0x9f51, 0x8d65, 0x9cf1, 0xfc58, 0x8d66, 0x9654,
+  0xfbe8, 0xc6cc, 0x9fce, 0xfbfc, 0x9ae4, 0x9f75, 0xfbf1, 0x8d69,
+  0x934f, 0x934e, 0xfbf4, 0xc6ce, 0xfbc3, 0x8965, 0x8d6a, 0x9353,
+  0x9dfb, 0xfbfd, 0x9059, 0xfc40, 0xfc41, 0xfc43, 0x9361, 0xfc46,
+  0x9362, 0x8d6b, 0xfc4c, 0x95b8, 0xc6d0, 0x8bca, 0x987a, 0xc6d1,
+  0xfc51, 0xfc54, 0xfaaf, 0x8d6c, 0xfa61, 0xfc57, 0x9b70, 0xa051,
+  0x8bcb, 0x936e, 0xfcd5, 0xfca9, 0xfc61, 0x8966, 0xfacb, 0xf9da,
+  0x937a, 0xa0e0, 0x936b, 0xfc6b, 0xa0dc, 0x9468, 0xfc6d, 0x8d71,
+  0xfd64, 0x99ba, 0x9ad0, 0x9a61, 0xa0e5, 0xa05b, 0x96ac, 0x9740,
+  0x9ef1, 0x9f7e, 0x8d72, 0xfc76, 0x96a9, 0xa06e, 0xfcaa, 0xfbcd,
+  0xfc74, 0xa074, 0xa071, 0xfc79, 0xfc7c, 0x9c50, 0x9379, 0x9378,
+  0xa0dd, 0x8d75, 0x8d76, 0x9374, 0x8d77, 0xfca5, 0xfca2, 0x90c3,
+  0xa079, 0x8d79, 0x8bfc, 0xa076, 0x8bcd, 0x9f5a, 0x9ff4, 0x9fba,
+  0x8d7a, 0x9e45, 0x93b0, 0xa075, 0x9b46, 0xfcae, 0xfcb0, 0xfa51,
+  0x8d7b, 0x8d7c, 0x9ed6, 0x93ac, 0x9f5b, 0x93a9, 0xa07c, 0xfcb2,
+  0x8ac1, 0x9fb4, 0xfcac, 0x9e4c, 0x8fc5, 0x93ad, 0x9dc3, 0x8da2,
+  0x9d4a, 0xfcb6, 0x8da3, 0x9e4b, 0x9e4d, 0x8da4, 0x8afd, 0xfcb5,
+  0xfcc3, 0x93b2, 0x8da5, 0x93a1, 0x8ac6, 0x8a5b, 0x894d, 0xfed4,
+  0x8a78, 0x93ab, 0x8da7, 0x9f45, 0x8a56, 0xfcbf, 0xfcc0, 0x8ee6,
+  0x8aa4, 0x8943, 0x93f3, 0xfcab, 0x9ea2, 0x9dc7, 0xc6d2, 0x8bce,
+  0xfcc5, 0xfccb, 0x93b3, 0xfcca, 0xfcc9, 0x8dac, 0xfbc6, 0x8967,
+  0xfccd, 0x9cf3, 0xfcd0, 0x95bb, 0xfcd3, 0xfcd4, 0x8dae, 0xfcd7,
+  0x93db, 0xfe63, 0x93d5, 0xfcda, 0x9b71, 0xfcdd, 0x8daf, 0xfaf2,
+  0x93d8, 0xfcdf, 0x93d3, 0xfce1, 0x8e76, 0xfc62, 0x93d1, 0x8db1,
+  0x9859, 0xfb52, 0xfb53, 0xfb4d, 0x9cbf, 0x9b72, 0xfb50, 0x93be,
+  0x9df1, 0xfceb, 0xa0bb, 0x9b7e, 0x8db3, 0x9ae8, 0x8edc, 0x9cf9,
+  0xfa50, 0x98e7, 0xfcf3, 0xfcf2, 0x93e5, 0x9a59, 0x8db5, 0xfd4d,
+  0xfd5e, 0x8f7d, 0x9547, 0xfcf6, 0x9250, 0x8968, 0x8db6, 0xfcfb,
+  0xa07d, 0x98fc, 0x8969, 0xfe4f, 0x9256, 0xfac9, 0x93e8, 0xfcf8,
+  0x9ce3, 0xfda9, 0xfc44, 0x9640, 0x8db8, 0x9b4a, 0x8fb9, 0xfcfe,
+  0x896a, 0x8db9, 0x917e, 0x93f4, 0xfb7c, 0x93e7, 0x97ef, 0xfe4a,
+  0xfd45, 0x96a5, 0xfee0, 0xfd48, 0xfd47, 0xfef2, 0xfe6a, 0x8dbd,
+  0x9ba1, 0x9ab7, 0x8efc, 0x9fa1, 0xfd51, 0xfaad, 0x8dbe, 0x89a4,
+  0x9ad9, 0xfd4e, 0x8dc0, 0x97f0, 0x93b4, 0xfd44, 0x9fa7, 0x8dc2,
+  0x99b6, 0xfd52, 0x8dc1, 0x8e46, 0xa0d1, 0x9fca, 0x92cf, 0x9cf4,
+  0x8dc4, 0xfd41, 0x9b4c, 0xfd57, 0xfcef, 0x9cde, 0xfd42, 0x986c,
+  0x97f9, 0x9558, 0x985e, 0xfe7b, 0x94cd, 0x93ee, 0xfd5a, 0x93f5,
+  0x93ef, 0x8eea, 0x8f5b, 0x8dc6, 0x8dc8, 0x8dc7, 0x93f7, 0x8dc9,
+  0xfbf2, 0x9670, 0x8dcb, 0xfd5c, 0x8f65, 0x8dcd, 0x9da8, 0x94f9,
+  0x8dce, 0x93ea, 0xfd5f, 0x93f0, 0x9fb6, 0x8dcf, 0x9763, 0x8dd0,
+  0x93f1, 0xfd62, 0xfd65, 0x9fdb, 0x93f8, 0x8bf7, 0xfd66, 0x8bcf,
+  0x8dd1, 0x8dd2, 0xfd71, 0xfd6f, 0x8dd3, 0x9fe7, 0x90bd, 0x9fd0,
+  0x8bd0, 0xfd72, 0x9cae, 0x8bd1, 0x8adb, 0xfae4, 0x95ce, 0xfd76,
+  0xfb62, 0x8dd4, 0xfd78, 0x8ee3, 0x9076, 0x98c6, 0x8dd5, 0x97d1,
+  0x9eb6, 0xfac7, 0xa042, 0x9873, 0x9ffc, 0x8dd7, 0x92fb, 0x8dd8,
+  0x944f, 0x8dd9, 0x896b, 0x97ce, 0xfaf3, 0xfdae, 0xfbaf, 0x92b7,
+  0x8dda, 0x9c5a, 0xfdad, 0x8ddc, 0x9444, 0x8ddd, 0xa0d6, 0x97d5,
+  0x944a, 0x944d, 0x97cb, 0x8dde, 0x8ddf, 0x8de0, 0xfef9, 0xfdc0,
+  0xfcf9, 0xfb7e, 0x92b3, 0xfdaf, 0x8de1, 0x95d3, 0x89c1, 0xfd68,
+  0x9cb7, 0x8de3, 0xfac0, 0x8de5, 0xfa64, 0x8947, 0x8de4, 0x8de7,
+  0x8de8, 0xfdc7, 0xfdb0, 0x9445, 0x97d6, 0xfcc6, 0x9844, 0x8de9,
+  0x8dea, 0xfe50, 0xfdcc, 0x9da7, 0xfdcd, 0xfdcf, 0x95d2, 0x8ded,
+  0xfcba, 0xfdc5, 0xfdd2, 0x9cdc, 0x95cf, 0x8dee, 0xfdd4, 0x96ec,
+  0x96eb, 0x90b6, 0xfdc3, 0x98ab, 0x96ee, 0x8df4, 0xfde0, 0x8df6,
+  0x8df7, 0x8ffa, 0x97d0, 0x8bd2, 0x8df8, 0x90d9, 0xfaf0, 0xfde1,
+  0x8df9, 0xfde3, 0x8dfa, 0xfb63, 0x90a6, 0x9970, 0x91eb, 0x9770,
+  0x986f, 0xfde2, 0x98f2, 0x9afc, 0x896c, 0xfdfd, 0x995e, 0x95bd,
+  0xfde4, 0x91e6, 0xfde5, 0xfde6, 0xfde7, 0x9454, 0x99b8, 0x97e9,
+  0x9346, 0x9863, 0x95bc, 0xfded, 0xfdf7, 0x9870, 0x96f6, 0x8ea9,
+  0x9451, 0x8e43, 0x8b5a, 0xfdee, 0xfdf0, 0xfdf4, 0x9bf5, 0x977e,
+  0x9bd5, 0x9ac3, 0x97c8, 0xa0db, 0x91d0, 0x9fe4, 0x8fdd, 0x91e9,
+  0x98e0, 0x92ca, 0x9857, 0xfdeb, 0x9b49, 0x9d76, 0x9eaf, 0x9ccc,
+  0xfdea, 0x8df1, 0xfdfb, 0x8e53, 0xfacf, 0x96f9, 0x98bf, 0x9e49,
+  0x9bca, 0xfdfe, 0x92dc, 0xfe41, 0x91cc, 0x91e2, 0xfe44, 0x8bd3,
+  0xfe47, 0xfe48, 0x9455, 0xfe4b, 0xfe4c, 0x8dbf, 0x9e78, 0xfe51,
+  0x9456, 0x9d61, 0x9457, 0x9966, 0x8bd5, 0xa069, 0x98b4, 0xa049,
+  0xa04c, 0x9e65, 0x98b5, 0xfe58, 0x9975, 0xfe53, 0xa065, 0xfe59,
+  0x98b7, 0x98b8, 0x98ba, 0x98bb, 0x9fbc, 0xa04a, 0x9ec7, 0x98ae,
+  0x92d6, 0xfae1, 0x91d4, 0xfade, 0xfe5b, 0xfe5e, 0xfbd7, 0xfe5a,
+  0x94c5, 0xfaca, 0x98c1, 0x975c, 0xfe74, 0x9773, 0xfa46, 0x9764,
+  0xfe68, 0x964e, 0x9765, 0x89a1, 0x95fa, 0x92d4, 0xfe69, 0xfb45,
+  0x98c8, 0x90ef, 0x98c9, 0x98ca, 0x946d, 0x94b7, 0xfe6c, 0x946b,
+  0x92fc, 0x95eb, 0xfe73, 0x976e, 0xfe5f, 0xfdbd, 0x92d5, 0xfeb9,
+  0xfe71, 0xfbbb, 0x947a, 0x95fb, 0xfe77, 0xfe79, 0xfe75, 0x945d,
+  0xfe7c, 0x9344, 0x8ea6, 0x92d3, 0x94b8, 0xfc71, 0x975e, 0xfea7,
+  0x946a, 0x93e3, 0x98cf, 0xa0d9, 0xa0bf, 0xa04d, 0xa0b8, 0xa0ce,
+  0xa0b7, 0xfea9, 0x89c3, 0xfeab, 0x9df4, 0x896d, 0x9c7b, 0x98d2,
+  0x9fa9, 0xfeb2, 0xfeb1, 0x97d9, 0xa0c4, 0x9476, 0x9978, 0xfeb3,
+  0x98d3, 0xfeb4, 0x98d4, 0x9fb9, 0x9471, 0x98d5, 0xfeb8, 0xc6d4,
+  0xfeba, 0x9e5c, 0xfebb, 0xa044, 0x98d7, 0x98d8, 0xfebc, 0x9ffe,
+  0xfebd, 0x9ddd, 0x9ee1, 0x98da, 0x9ddf, 0xfebf, 0xfebe, 0x9eeb,
+  0x9e59, 0xa05c, 0xfec0, 0x9477, 0x98dc, 0xfec1, 0x98de, 0xfec3,
+  0xfec8, 0xfec9, 0xfeca, 0xfecb, 0x9fc2, 0x98c4, 0x94b0, 0x94b1,
+  0xfed1, 0xa0c1, 0xfed2, 0xa0cd, 0xfed3, 0x98e5, 0xfed6, 0x91e4,
+  0x8fc7, 0x94ae, 0x8a4f, 0x94b2, 0x8fd4, 0x98ea, 0xfed8, 0x9de0,
+  0x98ee, 0x95c4, 0xfce8, 0x98ef, 0xfad8, 0xfedc, 0xa0ae, 0x9d4c,
+  0x98f1, 0x98f3, 0x94c1, 0x98f5, 0xfa4f, 0x96e2, 0x9450, 0x96a2,
+  0x98f6, 0x96e5, 0x98f7, 0xa046, 0x96e3, 0x98f8, 0x9ee4, 0xf9d6,
+  0x94c3, 0x94c2, 0xfee1, 0xfee9, 0x96e4, 0x89ac, 0x96db, 0xfee2,
+  0x94c4, 0xfee3, 0xfee7, 0x9ffb, 0x93c9, 0x94e8, 0xfb56, 0x90c5,
+  0xa0a8, 0xfee5, 0x98fd, 0x98fb, 0xfee8, 0x8ebf, 0x8bd8, 0xfef7,
+  0x8f68, 0x94c6, 0x9dea, 0xfc69, 0x9cda, 0xfef3, 0x9c72, 0xfef0,
+  0x89c9, 0x9941, 0x9942, 0xfef5, 0x91d7, 0x94cc, 0xfef8, 0x97a8,
+  0xfefc, 0xfdbf, 0xfefe, 0x96d1, 0x94d5, 0x94d0, 0x9944, 0xa0b3,
+  0x94cf, 0x9ffa, 0x91e5, 0x9c6a, 0x8e49, 0x8e4c, 0x8e4d, 0x9a73,
+  0x9947, 0x8e50, 0x8e4f, 0x9949, 0x8e51, 0x8e52, 0x9ab2, 0x89a5,
+  0x994c, 0x9ff8, 0x8e56, 0x994d, 0x91ca, 0x8e57, 0x94e1, 0x9047,
+  0x8fd8, 0x8e58, 0x94eb, 0x8e5c, 0x9553, 0x9fe5, 0x9f56, 0x954f,
+  0x8e5e, 0x996a, 0x9c64, 0x9cd9, 0x8e5d, 0x9950, 0x9951, 0x8e62,
+  0x9952, 0x8e68, 0x8e61, 0x9f59, 0x8bb3, 0x9f5d, 0x8e66, 0x8e6e,
+  0x9f64, 0x9953, 0xfab8, 0x9954, 0x8e70, 0x9f61, 0x8e72, 0xa06b,
+  0x9f40, 0x94ed, 0x94ee, 0x9fbd, 0x8e7b, 0x9957, 0x94f7, 0x9f5f,
+  0x8e73, 0x9f62, 0x94f6, 0x9958, 0x8e75, 0xf9db, 0x9072, 0x94f8,
+  0x995a, 0xa0b0, 0x8e79, 0x8e78, 0x94f3, 0x98af, 0xa0b2, 0x8e7a,
+  0x995c, 0x8e7c, 0x8e7d, 0x8bd9, 0x89a2, 0x9ed7, 0xa0b6, 0x9e42,
+  0x8ea4, 0x8ea7, 0x9542, 0x987d, 0x9755, 0x8ea8, 0x8eaa, 0x89a3,
+  0x9960, 0x9962, 0x94fc, 0x9961, 0x94fa, 0x8eae, 0x8eb2, 0x8eb0,
+  0x9963, 0x97aa, 0x94fb, 0x8ebb, 0x9876, 0x8ea1, 0x8eb7, 0x9da6,
+  0x9eb0, 0x8eb8, 0x9d70, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972,
+  0x8973, 0x8974, 0x8975, 0x8ebc, 0x8ebd, 0x8ebe, 0x9dd1, 0x94fd,
+  0x8bd7, 0x8bda, 0xa0e2, 0x9fe9, 0xfda8, 0x8ae7, 0x8ec2, 0x8ec4,
+  0x9964, 0x9965, 0x954e, 0x98b3, 0x8ecb, 0x8bdf, 0x8ece, 0x8ecf,
+  0x9968, 0x9969, 0x996b, 0x8ed1, 0x996c, 0x8ed4, 0x8ed5, 0x996d,
+  0xa0be, 0x8ed6, 0xa0bc, 0xa0b5, 0xa0b4, 0x8be0, 0x89b5, 0x8edd,
+  0x9e5d, 0x9971, 0x89ae, 0x9de8, 0x9565, 0x9972, 0x8b5c, 0x89b1,
+  0xa0c0, 0x8edf, 0x9566, 0x9974, 0x9976, 0x9977, 0x9979, 0x9dda,
+  0x8ee0, 0x935c, 0x9de6, 0x8b5f, 0x9563, 0x9567, 0x9de3, 0x997c,
+  0x997d, 0x997e, 0x8b5b, 0x99a3, 0x99a4, 0x99a6, 0x99a8, 0x8abe,
+  0x9e61, 0x99aa, 0xa0c8, 0x99ab, 0xfec4, 0x98c2, 0x8ee8, 0xa0ba,
+  0xfd77, 0x8eee, 0x9ebf, 0x89c2, 0x99ac, 0x956b, 0x956c, 0x99af,
+  0x994a, 0x8976, 0x8f48, 0xfbee, 0x99ae, 0x8efb, 0x8b52, 0x99b0,
+  0x8977, 0x8f41, 0x99b1, 0x8f49, 0xfa4d, 0x9de4, 0xfbe9, 0x9b54,
+  0x99b2, 0x9e68, 0x8f4a, 0x8f42, 0x8f51, 0x9846, 0x99b4, 0x8ef5,
+  0xfd55, 0x9ccd, 0x8978, 0x8f53, 0x8f6f, 0x8e63, 0x8f56, 0xfe76,
+  0x9fc6, 0xfaac, 0x8f58, 0x9848, 0x99b7, 0x9665, 0xfa6c, 0x9de7,
+  0x9e62, 0x96cc, 0x8e67, 0xfc75, 0x987e, 0xfdb9, 0x97fc, 0x98f9,
+  0x8f66, 0x956e, 0x9245, 0x8f60, 0x9ed1, 0xfecd, 0x99b9, 0x8f62,
+  0x974c, 0x91c7, 0x955f, 0x99bb, 0x8e6d, 0x8f71, 0x94cb, 0x95b1,
+  0x9af2, 0x96c3, 0x99bd, 0xa0cf, 0x8f6d, 0x99be, 0x8ef4, 0x8f72,
+  0x95e4, 0x99bf, 0x9242, 0xfba5, 0x99c0, 0xfdb4, 0x8f77, 0x99c1,
+  0xfab9, 0x8f40, 0xfa44, 0x99c2, 0x8f5c, 0x99c4, 0x99c5, 0x8f7b,
+  0x8fa3, 0x99c6, 0x96cd, 0x96c7, 0x8fa5, 0xfabb, 0x9570, 0x9368,
+  0x8f7e, 0x8faa, 0xa050, 0x90d3, 0x9556, 0x8fb8, 0x99c8, 0x8faf,
+  0x99c9, 0x9579, 0x9f49, 0x99ca, 0x99cb, 0x9dd5, 0x8fb0, 0xfa7a,
+  0x9e5f, 0x99cd, 0xa0c9, 0x9adb, 0xa0c6, 0x8fb4, 0xa0d7, 0xa0c7,
+  0xa043, 0x8fb5, 0x8fb2, 0xa061, 0x9e5e, 0x8fb6, 0x9fe8, 0x9cb2,
+  0x957c, 0x9fc7, 0x8fbb, 0x8fbc, 0x8fec, 0x8fc0, 0x936a, 0x8be4,
+  0x9c7c, 0x95a1, 0xfeec, 0x95a3, 0x8fc1, 0xa052, 0x99d0, 0x8fc3,
+  0x8fc4, 0x95a4, 0x8fc6, 0x9e60, 0xf9d8, 0x95a5, 0x9cb3, 0x99d1,
+  0xfef1, 0x99d2, 0x9cc2, 0x99d3, 0x95a7, 0x95a9, 0x95a6, 0x9c5d,
+  0x98e2, 0x8fc9, 0xa0c2, 0x8fca, 0x99d4, 0xa0b9, 0x9b58, 0x8fcd,
+  0xa0d4, 0x8fce, 0x8be5, 0x8979, 0x8fd0, 0x95b6, 0x99d6, 0x95e5,
+  0x99d7, 0x95b5, 0xa0ca, 0x9ffd, 0xa058, 0x8fd6, 0x99d8, 0x8fd3,
+  0x8fe5, 0x8fe9, 0x99d9, 0x927c, 0x9c45, 0x8fde, 0x8fdf, 0xa04b,
+  0x8fe2, 0xa0cc, 0x8fe3, 0x8fe4, 0x9bc4, 0x9bfc, 0x964c, 0x9af6,
+  0x8fe7, 0x8fe8, 0x8be7, 0x897a, 0x897b, 0x99da, 0x8fed, 0x95c0,
+  0xa0cb, 0x9e48, 0x99db, 0x8ff3, 0x8ff9, 0x95c1, 0xa04e, 0x99dc,
+  0xa064, 0x8ff7, 0x89b0, 0xa048, 0x8ffb, 0x8ff6, 0x9ddc, 0x99dd,
+  0x8be8, 0x92c1, 0x9fd6, 0xa0d2, 0x9040, 0x8ac4, 0x99e0, 0x9ff0,
+  0x9ff3, 0x9dbf, 0x9ff6, 0x95c8, 0x9e5a, 0x99e3, 0x8a4a, 0x9ff1,
+  0x8aa7, 0x99e6, 0x9ff7, 0x9fed, 0x8a5c, 0x9dae, 0x95c9, 0x9048,
+  0x99e8, 0x9049, 0x90b1, 0x904a, 0x99ea, 0x9bd1, 0x99eb, 0x99ec,
+  0x99ed, 0x99ee, 0x904c, 0x904d, 0x95cb, 0x97e2, 0x95cc, 0x9f78,
+  0x897c, 0x897d, 0x897e, 0x995d, 0x9b5a, 0x9050, 0x9054, 0xc6d6,
+  0x9aa8, 0x99ef, 0xfeeb, 0x9da3, 0x9da1, 0x9943, 0x9945, 0x9d7d,
+  0x99f0, 0x99f1, 0x99f2, 0x9d60, 0xa0a3, 0x905b, 0x9edb, 0x9d79,
+  0x99f3, 0x9062, 0x9f55, 0x9bf9, 0x9065, 0x96e0, 0x98be, 0x9068,
+  0x906c, 0x95d8, 0x906a, 0x9fb2, 0x9fae, 0x9fb0, 0x89ad, 0x906e,
+  0x9e71, 0x9e4a, 0x9fdc, 0x89ab, 0x9fb8, 0x9070, 0x8b63, 0x95dc,
+  0x9071, 0xfc5e, 0x8949, 0x965b, 0x94a6, 0x8fd5, 0x9e73, 0x9075,
+  0x99f7, 0x99f9, 0x9663, 0x95b9, 0x94d4, 0xfcfa, 0x9077, 0x90ab,
+  0x9d4d, 0x99fa, 0x92e3, 0x97bb, 0x9078, 0x99fb, 0x97e0, 0x96dc,
+  0x9ca8, 0x9772, 0x9440, 0x92f2, 0x99fd, 0x99fc, 0xf9d7, 0x964a,
+  0x96d8, 0x99fe, 0x904b, 0xfa41, 0x9a40, 0x975b, 0x9a41, 0x91dd,
+  0x93fc, 0x9a42, 0x9a43, 0x9659, 0x9a44, 0x9051, 0x94bf, 0x90a2,
+  0x9cab, 0x9776, 0xfc55, 0xfe45, 0x94a8, 0x9a45, 0xfa4b, 0x9de1,
+  0x96d9, 0x9774, 0xfdf5, 0x92e5, 0x9645, 0x91da, 0x90a3, 0xa05f,
+  0x90af, 0x97bf, 0x914c, 0x967a, 0x91de, 0x9a46, 0xfeb0, 0x9779,
+  0x946c, 0x9858, 0x9266, 0x93fb, 0x9a47, 0x9749, 0x9748, 0x934a,
+  0x9ce2, 0x9264, 0x91df, 0xfb79, 0x96d7, 0x9343, 0xfdcb, 0xfe7a,
+  0x91db, 0x97af, 0x95dd, 0x9348, 0x9a4b, 0xfc45, 0x9a4d, 0x91bc,
+  0x90e2, 0x90b4, 0x95e1, 0x9a4e, 0x9a4f, 0xfe40, 0xfe43, 0x96dd,
+  0x9a51, 0x96a7, 0x90b0, 0x9c4e, 0x9443, 0x8eba, 0x9a52, 0xfcc1,
+  0x8be9, 0x9caf, 0x8bfd, 0x9abc, 0x9ab8, 0x9aae, 0x9aa7, 0x9a53,
+  0x9d74, 0x8bea, 0x8beb, 0x90b2, 0x95e9, 0x95e8, 0x95e6, 0x90b5,
+  0x9a54, 0x90b3, 0x95e7, 0x8b50, 0x8bec, 0x9a56, 0x8bfb, 0x9a57,
+  0xa0aa, 0x9fa6, 0x99cc, 0x9c59, 0x99b5, 0x90be, 0x9faf, 0x95f2,
+  0x90bf, 0x90c1, 0xfee4, 0x90c4, 0x90c7, 0x92e4, 0x9f52, 0x90db,
+  0xa066, 0x90d2, 0x90d4, 0x9a5b, 0x95fd, 0x8bc4, 0x90de, 0x9ce4,
+  0x90e1, 0x9e46, 0x9651, 0xfb58, 0x90e6, 0x9650, 0x90e7, 0x90e8,
+  0x9a5d, 0x9f7a, 0x9b5c, 0x9f7c, 0xfc52, 0x90e9, 0x90ea, 0x9a5e,
+  0x9f76, 0x90eb, 0x90ec, 0x8bee, 0x90ee, 0x91c6, 0x90f2, 0xfcbc,
+  0x8a74, 0x9657, 0x9cef, 0x9fdf, 0x90f7, 0x90f6, 0x9b5e, 0x90f8,
+  0x90f9, 0xfa6a, 0x8bef, 0x9fe0, 0x9142, 0x9a62, 0x9569, 0x9144,
+  0x9143, 0x9141, 0x8bf0, 0x9660, 0x8bf1, 0x99f6, 0x9149, 0x914a,
+  0x914b, 0x9a64, 0x8abf, 0x9a66, 0x9a67, 0x9a69, 0x9a6a, 0x9652,
+  0x914d, 0x9666, 0x9f7b, 0x9a6b, 0xa06c, 0x9667, 0x9a6c, 0x9a6d,
+  0x8bf2, 0x966a, 0xfcea, 0x966c, 0x91c4, 0x9677, 0x99f4, 0x9a6f,
+  0x9fab, 0x8ec1, 0x9555, 0x9152, 0x9153, 0x9155, 0x955d, 0x9671,
+  0x9c6d, 0x9673, 0x9154, 0x9a71, 0x9156, 0x966d, 0x9557, 0x89c6,
+  0x89c7, 0x8a6a, 0x8b57, 0x9fe1, 0x9b5f, 0xa05d, 0x915b, 0x915c,
+  0x915e, 0x9f5c, 0x9f57, 0x9f65, 0x9a72, 0x9160, 0x9f5e, 0x9161,
+  0x9164, 0x9f41, 0x9169, 0x9168, 0x9a74, 0x96b2, 0x9a75, 0xfda5,
+  0x9ee9, 0x8bba, 0x916d, 0xa060, 0x9fde, 0x9fc3, 0x96b5, 0xa067,
+  0x96b3, 0x9a76, 0x95d5, 0x9eca, 0x9a77, 0x9a78, 0x9170, 0x916f,
+  0x9fa3, 0x9171, 0x96b1, 0x9f63, 0x9f67, 0x8bb9, 0x9a7a, 0x8b56,
+  0x9ada, 0x96b0, 0x9a7e, 0x9dde, 0x96ad, 0x96ae, 0x9ea1, 0x9e50,
+  0x96af, 0x8bf4, 0x9fa4, 0x96bd, 0x96f4, 0x96b8, 0xfaa1, 0x91a7,
+  0xa05e, 0x9a7d, 0x8948, 0x9eb1, 0x9ddb, 0x95bf, 0x8a73, 0x9efe,
+  0x917a, 0x917b, 0x9aa3, 0x96c2, 0x9f77, 0x9aa4, 0x9aa5, 0x91a1,
+  0x89b8, 0x9173, 0x9aa6, 0x89bd, 0x89b9, 0x917d, 0x96bb, 0x9ff2,
+  0x8bf5, 0x9aa9, 0x9f54, 0x9fe3, 0x9eed, 0x91aa, 0x91ab, 0xa070,
+  0x9f6d, 0x91ac, 0x91ad, 0xa0fd, 0x9fe2, 0x91af, 0x9e41, 0x9aaa,
+  0x91b0, 0x9aab, 0x9aac, 0x9a4a, 0x91b2, 0x8bf6, 0x9aad, 0x89b6,
+  0x9aaf, 0x9ab0, 0x9ab1, 0x9aa1, 0x91b9, 0x91ba, 0x91be, 0xa041,
+  0x8bb7, 0x91c0, 0x9ab3, 0x91c3, 0xa0fc, 0x9fee, 0x9f69, 0x91c8,
+  0x91c9, 0x8de6, 0x91cb, 0x89c8, 0x8bf8, 0x8daa, 0x9fdd, 0xfa40,
+  0xfa42, 0xfa43, 0xfa49, 0xfa4a, 0xfa4c, 0xfa4e, 0xfa52, 0xfa53,
+  0xfa54, 0xfa55, 0xfa56, 0xfa58, 0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d,
+  0xfa5e, 0xfa60, 0xfa62, 0xfa63, 0xfa65, 0xfa6d, 0xfa6e, 0xfa70,
+  0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa7b,
+  0xfa7c, 0xfaa7, 0xfaae, 0xfabc, 0xfabe, 0xfac1, 0xfac2, 0xfac3,
+  0xfac6, 0xfac8, 0xface, 0xfad3, 0xfad6, 0xfad7, 0xfada, 0xfadf,
+  0xfae9, 0xfaeb, 0xfaec, 0xfaee, 0xfaf5, 0xfaf6, 0xfafb, 0xfafc,
+  0xfafe, 0xfb40, 0xfb41, 0xfb49, 0xfb4a, 0xfb4c, 0xfb4e, 0xfb51,
+  0xfb5d, 0xfb5f, 0xfb61, 0xfb66, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6d,
+  0xfb73, 0xfb77, 0xfb78, 0xfba1, 0xfba4, 0xfba7, 0xfba8, 0xfba9,
+  0xfbaa, 0xfbac, 0xfbad, 0xfbae, 0xfbb0, 0xfbb1, 0xfbb3, 0xfbb7,
+  0xfbbd, 0xfbbe, 0xfbc0, 0xfbc2, 0xfbc8, 0xfbcb, 0xfbce, 0xfbcf,
+  0xfbd0, 0xfbd5, 0xfbd9, 0xfbda, 0xfbe1, 0xfbe2, 0xfbe6, 0xfbeb,
+  0xfbec, 0xfbed, 0xfbf5, 0xfbf6, 0xfbfb, 0xfbfe, 0xfc47, 0xfc48,
+  0xfc4b, 0xfc4d, 0xfc4e, 0xfc50, 0xfc53, 0xfc56, 0xfc5a, 0xfc5b,
+  0xfc5c, 0xfc5d, 0xfc5f, 0xfc60, 0xfc63, 0xfc68, 0xfc6e, 0xfc6f,
+  0xfc70, 0xfc77, 0xfc78, 0xfc7b, 0xfc7e, 0xfca1, 0xfca3, 0xfca4,
+  0xfca7, 0xfca8, 0xfcad, 0xfcaf, 0xfcb1, 0xfcb3, 0xfcb7, 0xfcb8,
+  0xfcbb, 0xfcbd, 0xfcbe, 0xfcc7, 0xfcc8, 0xfccc, 0xfcce, 0xfcd2,
+  0xfcd6, 0xfcd8, 0xfcd9, 0xfcdb, 0xfcdc, 0xfcde, 0xfce0, 0xfce3,
+  0xfce4, 0xfce5, 0xfce6, 0xfce7, 0xfce9, 0xfcec, 0xfced, 0xfcf0,
+  0xfcf4, 0xfcf5, 0xfcfc, 0xfcfd, 0xfd40, 0xfd43, 0xfd46, 0xfd4b,
+  0xfd4f, 0xfd54, 0xfd58, 0xfd59, 0xfd5b, 0xfd60, 0xfd63, 0xfd67,
+  0xfd69, 0xfd6a, 0xfd6b, 0xfd6e, 0xfd70, 0xfd73, 0xfd74, 0xfd75,
+  0xfd79, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfda1, 0xfda4, 0xfda6,
+  0xfda7, 0xfdaa, 0xfdab, 0xfdac, 0xfdb1, 0xfdb2, 0xfdb3, 0xfdb5,
+  0xfdba, 0xfdbc, 0xfdbe, 0xfdc2, 0xfdc6, 0xfdc8, 0xfdc9, 0xfdd0,
+  0xfdd3, 0xfdd5, 0xfdd6, 0xfdd7, 0xfdd8, 0xfdd9, 0xfdda, 0xfddc,
+  0xfddd, 0xfdde, 0xfddf, 0xfdec, 0xfdf3, 0xfdf6, 0xfdf8, 0xfdf9,
+  0xfdfa, 0xfdfc, 0xfe46, 0xfe49, 0xfe4e, 0xfe54, 0xfe55, 0xfe57,
+  0xfe5c, 0xfe5d, 0xfe60, 0xfe61, 0xfe62, 0xfe65, 0xfe66, 0xfe67,
+  0xfe6b, 0xfe6d, 0xfe70, 0xfe72, 0xfe7e, 0xfea1, 0xfea2, 0xfea3,
+  0xfea5, 0xfea6, 0xfea8, 0xfeac, 0xfead, 0xfeaf, 0xfeb5, 0xfeb7,
+  0xfec2, 0xfec6, 0xfec7, 0xfecc, 0xfece, 0xfecf, 0xfed0, 0xfed5,
+  0xfed7, 0xfed9, 0xfeda, 0xfedb, 0xfede, 0xfedf, 0xfee6, 0xfeea,
+  0xfeed, 0xfeee, 0xfeef, 0xfef4, 0xfef6, 0xfefa, 0xfefd, 0x8e40,
+  0x8e42, 0x8e44, 0x8e47, 0x8e4a, 0x8e4b, 0x8e4e, 0x8e54, 0x8e5b,
+  0x8e5f, 0x8e60, 0x8e64, 0x8e65, 0x8e6a, 0x8e6c, 0x8e71, 0x8e74,
+  0x8e77, 0x8ea3, 0x8ea5, 0x8eac, 0x8ead, 0x8eb1, 0x8eb3, 0x8eb5,
+  0x8eb6, 0x8ec0, 0x8ec3, 0x8ec5, 0x8ec6, 0x8ec8, 0x8eca, 0x8ecc,
+  0x8ed2, 0x8ed3, 0x8ed7, 0x8ed9, 0x8eda, 0x8edb, 0x8ede, 0x8ee2,
+  0x8ee4, 0x8ee5, 0x8ee7, 0x8ee9, 0x8eeb, 0x8eec, 0x8eef, 0x8ef0,
+  0x8ef1, 0x8ef3, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efd,
+  0x8f43, 0x8f44, 0x8f46, 0x8f47, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e,
+  0x8f4f, 0x8f55, 0x8f5a, 0x8f5e, 0x8f5f, 0x8f61, 0x8f67, 0x8f6a,
+  0x8f6b, 0x8f6c, 0x8f73, 0x8f75, 0x8f79, 0x8fa1, 0x8fa2, 0x8fa4,
+  0x8fa6, 0x8fa7, 0x8fa8, 0x8fac, 0x8fae, 0x8fb1, 0x8fb3, 0x8fbd,
+  0x8fbe, 0x8fbf, 0x8fc8, 0x8fcf, 0x8fd1, 0x8fd2, 0x8fd7, 0x8fd9,
+  0x8fda, 0x8fdc, 0x8fe0, 0x8fe1, 0x8fe6, 0x8fea, 0x8fee, 0x8fef,
+  0x8ff0, 0x8ff2, 0x8ff4, 0x8ff5, 0x8ff8, 0x8ffc, 0x9041, 0x9042,
+  0x9043, 0x9045, 0x9046, 0x904e, 0x904f, 0x9052, 0x9053, 0x9056,
+  0x9057, 0x9058, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f, 0x9061,
+  0x9063, 0x9064, 0x9066, 0x9067, 0x9069, 0x906b, 0x9073, 0x9074,
+  0x9079, 0x907b, 0x907c, 0x907d, 0x907e, 0x90a1, 0x90a4, 0x90a5,
+  0x90a8, 0x90a9, 0x90ac, 0x90ad, 0x90ae, 0x90b8, 0x90b9, 0x90ba,
+  0x90bb, 0x90c2, 0x90c6, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce,
+  0x90cf, 0x90d0, 0x90d1, 0x90d8, 0x90dd, 0x90e0, 0x90e4, 0x90e5,
+  0x90ed, 0x90f0, 0x90f3, 0x90f4, 0x90fb, 0x90fd, 0x90fe, 0x9140,
+  0x9146, 0x9147, 0x914e, 0x9150, 0x9151, 0x9157, 0x9159, 0x915a,
+  0x915d, 0x9162, 0x9165, 0x9167, 0x916a, 0x916c, 0x916e, 0x9172,
+  0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, 0x917c, 0x91a2,
+  0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a8, 0x91a9, 0x91b1, 0x91b8,
+  0x91bd, 0x91c5, 0x91ce, 0x91cf, 0x91d1, 0x91d2, 0x91d3, 0x91d5,
+  0x91d6, 0x91d8, 0x91d9, 0x91dc, 0x91e0, 0x91e1, 0x91e7, 0x91e8,
+  0x91ea, 0x91ec, 0x91ed, 0x91ef, 0x91f0, 0x91f1, 0x91f3, 0x91f4,
+  0x91f6, 0x91f7, 0x91f8, 0x91fa, 0x91fc, 0x91fd, 0x91fe, 0x9240,
+  0x9241, 0x9243, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b,
+  0x924d, 0x924e, 0x924f, 0x9255, 0x9258, 0x9259, 0x925a, 0x925b,
+  0x925c, 0x925f, 0x9261, 0x9262, 0x9263, 0x9265, 0x926a, 0x926c,
+  0x926d, 0x9270, 0x9272, 0x9273, 0x9275, 0x9276, 0x9279, 0x927a,
+  0x927b, 0x927d, 0x92a5, 0x92a6, 0x92b4, 0x92b5, 0x92b6, 0x92b8,
+  0x92b9, 0x92bc, 0x92be, 0x92bf, 0x92c0, 0x92c2, 0x92c3, 0x92c6,
+  0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92d0, 0x92d8, 0x92d9, 0x92dd,
+  0x92df, 0x92e1, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f6, 0x92f7,
+  0x92f8, 0x92f9, 0x92fe, 0x9341, 0x9342, 0x9345, 0x9349, 0x9350,
+  0x9351, 0x9352, 0x9355, 0x9356, 0x9358, 0x935a, 0x935d, 0x935e,
+  0x935f, 0x9360, 0x9363, 0x9364, 0x9366, 0x9369, 0x936c, 0x936d,
+  0x9370, 0x9371, 0x9372, 0x9373, 0x9375, 0x9376, 0x9377, 0x937b,
+  0x937c, 0x937d, 0x937e, 0x93a2, 0x93a3, 0x93a5, 0x93a6, 0x93a7,
+  0x93a8, 0x93aa, 0x93ae, 0x93af, 0x93b1, 0x93b6, 0x93b7, 0x93b8,
+  0x93b9, 0x93bb, 0x93bc, 0x93bd, 0x93bf, 0x93c0, 0x93c3, 0x93c4,
+  0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93ca, 0x93cb, 0x93cc, 0x93ce,
+  0x93cf, 0x93d0, 0x93d2, 0x93d6, 0x93d7, 0x93d9, 0x93da, 0x93dc,
+  0x93de, 0x93df, 0x93e1, 0x93e2, 0x93e6, 0x93ec, 0x93ed, 0x93f2,
+  0x93f9, 0x93fa, 0x93fd, 0x93fe, 0x9441, 0x9442, 0x9446, 0x9448,
+  0x944b, 0x9452, 0x9453, 0x9458, 0x9459, 0x945b, 0x945c, 0x945e,
+  0x945f, 0x9460, 0x9461, 0x9462, 0x9465, 0x9466, 0x9467, 0x946f,
+  0x9473, 0x9474, 0x9478, 0x947b, 0x947c, 0x947d, 0x94a2, 0x94a4,
+  0x94a5, 0x94a9, 0x94aa, 0x94ac, 0x94ad, 0x94af, 0x94b3, 0x94b4,
+  0x94b6, 0x94ba, 0x94bb, 0x94bd, 0x94be, 0x94c0, 0x94c7, 0x94c8,
+  0x94ce, 0x94d2, 0x94d6, 0x94d7, 0x94d8, 0x94d9, 0x94da, 0x94df,
+  0x94e0, 0x94e3, 0x94e4, 0x94e5, 0x94e7, 0x94ea, 0x94f0, 0x94f1,
+  0x94f2, 0x94f4, 0x94f5, 0x94fe, 0x9540, 0x9541, 0x9543, 0x9545,
+  0x9546, 0x9548, 0x9549, 0x954b, 0x954c, 0x954d, 0x9550, 0x9551,
+  0x9552, 0x9554, 0x9559, 0x955b, 0x955c, 0x955e, 0x9560, 0x9561,
+  0x9568, 0x956a, 0x956d, 0x956f, 0x9571, 0x9574, 0x9576, 0x9578,
+  0x957a, 0x957b, 0x957d, 0x95a8, 0x95aa, 0x95ab, 0x95ac, 0x95ad,
+  0x95ae, 0x95af, 0x95b7, 0x95ba, 0x95be, 0x95c2, 0x95ca, 0x95d0,
+  0x95d4, 0x95d7, 0x95de, 0x95e0, 0x95e2, 0x95e3, 0x95ea, 0x95ed,
+  0x95ee, 0x95ef, 0x95f1, 0x95f3, 0x95f4, 0x95f5, 0x95f7, 0x95f8,
+  0x95f9, 0x95fe, 0x9642, 0x9643, 0x9646, 0x9647, 0x9648, 0x9649,
+  0x964f, 0x9653, 0x9655, 0x9656, 0x9658, 0x965a, 0x965d, 0x965e,
+  0x965f, 0x9661, 0x9668, 0x966e, 0x966f, 0x9674, 0x9676, 0x967c,
+  0x967e, 0x96a1, 0x96a3, 0x96a4, 0x96aa, 0x96ab, 0x96b4, 0x96b6,
+  0x96b7, 0x96ba, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c4, 0x96c5,
+  0x96c6, 0x96c9, 0x96ca, 0x96cb, 0x96ce, 0x96cf, 0x96d0, 0x96d2,
+  0x96d3, 0x96d5, 0x96da, 0x96e1, 0x96e6, 0x96e7, 0x96e8, 0x96f0,
+  0x96f8, 0x96fa, 0x96fb, 0x96fd, 0x96fe, 0x9744, 0x9747, 0x974a,
+  0x974b, 0x974d, 0x974e, 0x974f, 0x9750, 0x9751, 0x9753, 0x9754,
+  0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x975f, 0x9760, 0x9762,
+  0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, 0x976f,
+  0x9771, 0x9775, 0x9777, 0x9778, 0x977a, 0x977b, 0x977d, 0x97a1,
+  0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a9, 0x97ab, 0x97ac, 0x97ad,
+  0x97b1, 0x97b2, 0x97b4, 0x97b5, 0x97b6, 0x97b9, 0x97bd, 0x97be,
+  0x97c1, 0x97c7, 0x97ca, 0x97cc, 0x97cf, 0x97d3, 0x97d4, 0x97d8,
+  0x97e3, 0x97e4, 0x97e8, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee,
+  0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, 0x97f7, 0x97f8,
+  0x97fa, 0x97fb, 0x9840, 0x9841, 0x9842, 0x9843, 0x9845, 0x9847,
+  0x9849, 0x984a, 0x984b, 0x984e, 0x9851, 0x9852, 0x9855, 0x985a,
+  0x985d, 0x985f, 0x9860, 0x9861, 0x9862, 0x9864, 0x9865, 0x9867,
+  0x9869, 0x986a, 0x986b, 0x986d, 0x986e, 0x9871, 0x9874, 0x9875,
+  0x987b, 0x987c, 0x98a2, 0x98a3, 0x98a4, 0x98a6, 0x98a7, 0x98a9,
+  0x98aa, 0x98ac, 0x98b0, 0x98b1, 0x98b6, 0x98b9, 0x98bd, 0x98c0,
+  0x98df, 0x98fa, 0x995f, 0x99d5, 0x9a7c, 0x9ab4, 0x9ab5, 0x9ab6,
+  0x9aba, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac4, 0x9ac5, 0x9ac6,
+  0x9ac8, 0x9ac9, 0x9acb, 0x9acc, 0x9acd, 0x9ace, 0x9acf, 0x9ad1,
+  0x9ad3, 0x9ad4, 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9adc, 0x9add,
+  0x9ade, 0x9adf, 0x9ae0, 0x9ae1, 0x9ae3, 0x9ae5, 0x9ae6, 0x9ae7,
+  0x9ae9, 0x9aea, 0x9aeb, 0x9aed, 0x9aee, 0x9aef, 0x9af0, 0x9af3,
+  0x9af4, 0x9af5, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0x9afd, 0x9afe,
+  0x9b40, 0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45, 0x9b47, 0x9b48,
+  0x9b4b, 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b52, 0x9b53, 0x9b55,
+  0x9b56, 0x9b57, 0x9b59, 0x9b5b, 0x9b5d, 0x9b60, 0x9b62, 0x9b63,
+  0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b,
+  0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b73, 0x9b74, 0x9b75, 0x9b77,
+  0x9b79, 0x9b7a, 0x9b7c, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6,
+  0x9ba7, 0x9ba8, 0x9bab, 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0,
+  0x9bb1, 0x9bb2, 0x9bb3, 0x9bb5, 0x9bb7, 0x9bb9, 0x9bba, 0x9bbb,
+  0x9bbd, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc3, 0x9bc5, 0x9bc7, 0x9bc8,
+  0x9bc9, 0x9bcb, 0x9bcc, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd2, 0x9bd6,
+  0x9bd7, 0x9bd8, 0x9bd9, 0x9bdb, 0x9bdc, 0x9bdd, 0x9be0, 0x9be1,
+  0x9be2, 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9beb, 0x9bed,
+  0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf7, 0x9bf8, 0x9bfa,
+  0x9bfb, 0x9bfd, 0x9bfe, 0x9c41, 0x9c43, 0x9c44, 0x9c46, 0x9c47,
+  0x9c48, 0x9c49, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4f, 0x9c52, 0x9c55,
+  0x9c56, 0x9c58, 0x9c5b, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c63,
+  0x9c65, 0x9c66, 0x9c67, 0x9c69, 0x9c6c, 0x9c6e, 0x9c70, 0x9c71,
+  0x9c73, 0x9c74, 0x9c76, 0x9c78, 0x9c7a, 0x9c7d, 0x9ca2, 0x9ca3,
+  0x9ca4, 0x9ca6, 0x9ca7, 0x9ca9, 0x9caa, 0x9cac, 0x9cad, 0x9cb0,
+  0x9cb1, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb8, 0x9cb9, 0x9cc0, 0x9cc1,
+  0x9cc3, 0x9cc4, 0x9cc7, 0x9cc9, 0x9cca, 0x9ccb, 0x9cce, 0x9ccf,
+  0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, 0x9cdb,
+  0x9cdd, 0x9cdf, 0x9ce1, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9,
+  0x9cea, 0x9cec, 0x9ced, 0x9cf0, 0x9cf2, 0x9cf6, 0x9cf7, 0x9cfa,
+  0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41, 0x9d42, 0x9d43,
+  0x9d44, 0x9d45, 0x9d47, 0x9d48, 0x9d4b, 0x9d4e, 0x9d50, 0x9d52,
+  0x9d53, 0x9d54, 0x9d56, 0x9d58, 0x9d59, 0x9d5b, 0x9d5c, 0x9d5e,
+  0x9d5f, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69,
+  0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d71, 0x9d72,
+  0x9d75, 0x9d77, 0x9d7a, 0x9d7c, 0x9da2, 0x9da4, 0x9dab, 0x9dac,
+  0x9daf, 0x9db0, 0x9db1, 0x9db2, 0x9db3, 0x9db4, 0x9db6, 0x9db7,
+  0x9db8, 0x9db9, 0x9dbb, 0x9dbc, 0x9dbe, 0x9dc1, 0x9dc2, 0x9dc5,
+  0x9dc6, 0x9dc9, 0x9dcb, 0x9dcd, 0x9dd2, 0x9dd4, 0x9dd7, 0x9dd8,
+  0x9dd9, 0x9ded, 0x9df2, 0x9df9, 0x9dfa, 0x9dfc, 0x9dfd, 0x9dfe,
+  0x9e40, 0x9e44, 0x9e4f, 0x9e51, 0x9e54, 0x9e5b, 0x9e63, 0x9e66,
+  0x9e69, 0x9e6b, 0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e72,
+  0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e79, 0x9e7b, 0x9e7c, 0x9e7d,
+  0x9ea3, 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9eaa, 0x9eab, 0x9ead,
+  0x9eae, 0x9ebc, 0x9ebe, 0x9ec2, 0x9ec3, 0x9ec6, 0x9ec8, 0x9ecb,
+  0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed4, 0x9ed5,
+  0x9ed8, 0x9ed9, 0x9ee0, 0x9ee3, 0x9eec, 0x9ef2, 0x9ef3, 0x9ef6,
+  0x9ef8, 0x9ef9, 0x9efb, 0x9f43, 0x9f46, 0x9f47, 0x9f48, 0x9f4a,
+  0x9f4b, 0x9f4c, 0x9f4d, 0x9f50, 0x9f53, 0x9f68, 0x9faa, 0x9fb3,
+  0x9fb5, 0x9fbb, 0x9fbe, 0x9fbf, 0x9fc1, 0x9fc5, 0x9fd1, 0x9fec,
+  0x9ff5, 0x9ff9, 0xa040, 0xa045, 0xa047, 0xa04f, 0xa055, 0xa056,
+  0xa059, 0xa06d, 0xa07b, 0xa0a2, 0xa0a4, 0xa0a7, 0xa0ab, 0xa0b1,
+  0xa0bd, 0xa0c3, 0xa0c5, 0xa0d8, 0xa0e3, 0xa0e8, 0xa0e9, 0xa0ea,
+  0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, 0xa0f1, 0xa0f3,
+  0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, 0xa0fb, 0xa0fe, 0x8840,
+  0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847, 0x8848,
+  0x8849, 0x884a, 0x884b, 0x884c, 0x884d, 0x884e, 0x884f, 0x8850,
+  0x8851, 0x8852, 0x8853, 0x8854, 0x8855, 0x8862, 0x8864, 0x88a3,
+  0x88a5, 0x88a9, 0x88aa, 0x8940, 0x8941, 0x894c, 0x89b2, 0x89bb,
+  0x89bc, 0x89be, 0x89ca, 0x89cb, 0x89cc, 0x89cd, 0x8a40, 0x8a43,
+  0x8a44, 0x8a45, 0x8a47, 0x8a49, 0x8a4b, 0x8a4c, 0x8a4e, 0x8a50,
+  0x8a53, 0x8a54, 0x8a55, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5d,
+  0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a64, 0x8a65, 0x8a66,
+  0x8a68, 0x8a69, 0x8a6c, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a77,
+  0x8a7a, 0x8a7b, 0x8a7c, 0x8a7e, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa5,
+  0x8aa6, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aad, 0x8ab0, 0x8ab2, 0x8ab3,
+  0x8ab4, 0x8ab5, 0x8ab6, 0x8abc, 0x8abd, 0x8ac0, 0x8ac3, 0x8ac9,
+  0x8aca, 0x8acb, 0x8acc, 0x8ace, 0x8acf, 0x8ad2, 0x8ad4, 0x8ad5,
+  0x8ad7, 0x8ad8, 0x8ad9, 0x8adc, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2,
+  0x8ae3, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae8, 0x8ae9, 0x8aea, 0x8aec,
+  0x8aed, 0x8aee, 0x8aef, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0x8af6,
+  0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afc, 0x8afe, 0x8b40, 0x8b41,
+  0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46, 0x8b48, 0x8b49, 0x8b4a,
+  0x8b4b, 0x8b4c, 0x8b4d, 0x8b4e, 0x8b4f, 0x8b55, 0x8b58, 0x8b59,
+  0x8b5e, 0x8b62, 0x8b64, 0x8b65, 0x8b66, 0x8b67, 0x8b69, 0x8b6b,
+  0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74,
+  0x8b75, 0x8b76, 0x8b77, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7e,
+  0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba7, 0x8ba8, 0x8ba9,
+  0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, 0x8bb2, 0x8bbb, 0x8bbc,
+  0x8bc2, 0x8bc3, 0x8bc5, 0x8bd6, 0x8bdb, 0x8bde, 0x8be1, 0x8be2,
+  0x8be6, 0x8bed, 0x8bf3, 0x8bfa, 0x8de2, 0x8dec, 0x8dfb, 0x8dfe,
+  0xc879, 0xc87a, 0xc87c, 0xc87e, 0xc8a1, 0xc8a3, 0xc8a4, 0xc8d0,
+  0xc8cf, 0xc6e4, 0xc6e5, 0xc8cd, 0xc8ce, 0xf9fe,
+};
+
+static const Summary16 hkscs_uni2indx_page00[45] = {
+  /* 0x0000 */
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0000 },
+  {    0, 0x0000 }, {    0, 0x0000 }, {    0, 0x0100 }, {    1, 0x0000 },
+  {    1, 0x0703 }, {    6, 0x000c }, {    8, 0x3703 }, {   15, 0x170c },
+  /* 0x0100 */
+  {   21, 0x0003 }, {   23, 0x0c0c }, {   27, 0x0800 }, {   28, 0x0000 },
+  {   28, 0x3800 }, {   31, 0x0008 }, {   32, 0x0800 }, {   33, 0x0000 },
+  {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 }, {   33, 0x0000 },
+  {   33, 0x6000 }, {   35, 0x1557 }, {   43, 0x0000 }, {   43, 0x0000 },
+  /* 0x0200 */
+  {   43, 0x0000 }, {   43, 0x0000 }, {   43, 0x0000 }, {   43, 0x0000 },
+  {   43, 0x0000 }, {   43, 0x0813 }, {   47, 0x0402 }, {   49, 0x0020 },
+  {   50, 0x0408 }, {   52, 0x0000 }, {   52, 0x0000 }, {   52, 0x0000 },
+  {   52, 0x0040 },
+};
+static const Summary16 hkscs_uni2indx_page04[6] = {
+  /* 0x0400 */
+  {   53, 0x0002 }, {   54, 0xffff }, {   70, 0xffff }, {   86, 0xffff },
+  {  102, 0xffff }, {  118, 0x0002 },
+};
+static const Summary16 hkscs_uni2indx_page1e[13] = {
+  /* 0x1e00 */
+  {  119, 0x0000 }, {  119, 0x0000 }, {  119, 0x0000 }, {  119, 0x0000 },
+  {  119, 0x0000 }, {  119, 0x0000 }, {  119, 0x0000 }, {  119, 0x0000 },
+  {  119, 0x0000 }, {  119, 0x0000 }, {  119, 0x0000 }, {  119, 0xc000 },
+  {  121, 0x0003 },
+};
+static const Summary16 hkscs_uni2indx_page21[15] = {
+  /* 0x2100 */
+  {  123, 0x0000 }, {  123, 0x0040 }, {  124, 0x0002 }, {  125, 0x0000 },
+  {  125, 0x0000 }, {  125, 0x0000 }, {  125, 0x0000 }, {  125, 0x03ff },
+  {  135, 0x0000 }, {  135, 0x0000 }, {  135, 0x0000 }, {  135, 0x0300 },
+  {  137, 0x0000 }, {  137, 0x0000 }, {  137, 0x0080 },
+};
+static const Summary16 hkscs_uni2indx_page24[24] = {
+  /* 0x2400 */
+  {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x0000 },
+  {  138, 0x0000 }, {  138, 0x0000 }, {  138, 0x03ff }, {  148, 0x3ff0 },
+  {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 },
+  {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 },
+  /* 0x2500 */
+  {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 }, {  158, 0x0000 },
+  {  158, 0x0000 }, {  158, 0xffff }, {  174, 0xffff }, {  190, 0x0001 },
+};
+static const Summary16 hkscs_uni2indx_page27[4] = {
+  /* 0x2700 */
+  {  191, 0x0000 }, {  191, 0x0000 }, {  191, 0x0000 }, {  191, 0x2000 },
+};
+static const Summary16 hkscs_uni2indx_page2e[48] = {
+  /* 0x2e00 */
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 }, {  192, 0x0000 },
+  {  192, 0x35d1 }, {  200, 0x3020 }, {  203, 0x54a0 }, {  208, 0x5040 },
+  {  211, 0xb440 }, {  216, 0x40c0 }, {  219, 0x0008 }, {  220, 0x0000 },
+  /* 0x2f00 */
+  {  220, 0x0000 }, {  220, 0x0000 }, {  220, 0x0000 }, {  220, 0x0008 },
+  {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0000 },
+  {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0000 },
+  {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0000 }, {  221, 0x0000 },
+  /* 0x3000 */
+  {  221, 0x00e0 }, {  224, 0x0000 }, {  224, 0x0000 }, {  224, 0x0000 },
+  {  224, 0xfffe }, {  239, 0xffff }, {  255, 0xffff }, {  271, 0xffff },
+  {  287, 0xffff }, {  303, 0x780f }, {  311, 0xfffe }, {  326, 0xffff },
+  {  342, 0xffff }, {  358, 0xffff }, {  374, 0xffff }, {  390, 0x707f },
+};
+static const Summary16 hkscs_uni2indx_page32[4] = {
+  /* 0x3200 */
+  {  400, 0x0000 }, {  400, 0x0000 }, {  400, 0x0000 }, {  400, 0x0002 },
+};
+static const Summary16 hkscs_uni2indx_page34[1723] = {
+  /* 0x3400 */
+  {  401, 0x0000 }, {  401, 0x0000 }, {  401, 0x0000 }, {  401, 0x0020 },
+  {  402, 0x1001 }, {  404, 0x0000 }, {  404, 0x0010 }, {  405, 0x6408 },
+  {  409, 0x0000 }, {  409, 0x0048 }, {  411, 0x8020 }, {  413, 0x1000 },
+  {  414, 0x0102 }, {  416, 0x8000 }, {  417, 0x0010 }, {  418, 0x0800 },
+  /* 0x3500 */
+  {  419, 0x0040 }, {  420, 0x0000 }, {  420, 0x0000 }, {  420, 0x4000 },
+  {  421, 0x0000 }, {  421, 0x000a }, {  423, 0x2002 }, {  425, 0x0185 },
+  {  429, 0x0010 }, {  430, 0x0180 }, {  432, 0x2022 }, {  435, 0x8000 },
+  {  436, 0x44a2 }, {  441, 0x2844 }, {  445, 0x0000 }, {  445, 0x480e },
+  /* 0x3600 */
+  {  450, 0x0200 }, {  451, 0x0500 }, {  453, 0x2008 }, {  455, 0x4220 },
+  {  458, 0x4380 }, {  462, 0x8000 }, {  463, 0x0000 }, {  463, 0x0400 },
+  {  464, 0x0002 }, {  465, 0x0400 }, {  466, 0x1420 }, {  469, 0x1223 },
+  {  474, 0x01ba }, {  480, 0x2058 }, {  484, 0x0066 }, {  488, 0x0020 },
+  /* 0x3700 */
+  {  489, 0x250a }, {  494, 0x1000 }, {  495, 0x302c }, {  500, 0x040d },
+  {  504, 0x0009 }, {  506, 0x0000 }, {  506, 0x8004 }, {  508, 0x0000 },
+  {  508, 0x0000 }, {  508, 0x0080 }, {  509, 0x0001 }, {  510, 0x4200 },
+  {  512, 0x0000 }, {  512, 0x0000 }, {  512, 0x0000 }, {  512, 0x0904 },
+  /* 0x3800 */
+  {  515, 0x8000 }, {  516, 0x0200 }, {  517, 0x2001 }, {  519, 0x0140 },
+  {  521, 0x0000 }, {  521, 0x0000 }, {  521, 0x0008 }, {  522, 0x0000 },
+  {  522, 0x0000 }, {  522, 0x0000 }, {  522, 0x0001 }, {  523, 0x0000 },
+  {  523, 0x1008 }, {  525, 0x0002 }, {  526, 0x0000 }, {  526, 0x0400 },
+  /* 0x3900 */
+  {  527, 0x0100 }, {  528, 0x0010 }, {  529, 0x0080 }, {  530, 0x8004 },
+  {  532, 0x2000 }, {  533, 0x0000 }, {  533, 0x0008 }, {  534, 0x0000 },
+  {  534, 0x0601 }, {  537, 0x0a04 }, {  540, 0x0012 }, {  542, 0x0100 },
+  {  543, 0x0000 }, {  543, 0x1000 }, {  544, 0x1024 }, {  547, 0x4900 },
+  /* 0x3a00 */
+  {  550, 0x004a }, {  553, 0x0180 }, {  555, 0x0600 }, {  557, 0x0010 },
+  {  558, 0x0800 }, {  559, 0x5084 }, {  563, 0x00c0 }, {  565, 0x0000 },
+  {  565, 0x0000 }, {  565, 0x0080 }, {  566, 0x0800 }, {  567, 0x2000 },
+  {  568, 0x0000 }, {  568, 0x4000 }, {  569, 0x0001 }, {  570, 0x0805 },
+  /* 0x3b00 */
+  {  573, 0x4000 }, {  574, 0x0200 }, {  575, 0x0804 }, {  577, 0x0200 },
+  {  578, 0x0004 }, {  579, 0x0100 }, {  580, 0x0001 }, {  581, 0x1806 },
+  {  585, 0x0001 }, {  586, 0x0240 }, {  588, 0x0002 }, {  589, 0x5000 },
+  {  591, 0x0014 }, {  593, 0x2080 }, {  595, 0x1000 }, {  596, 0x001c },
+  /* 0x3c00 */
+  {  599, 0x2000 }, {  600, 0x0022 }, {  602, 0x0000 }, {  602, 0x0000 },
+  {  602, 0x0000 }, {  602, 0x0010 }, {  603, 0x0000 }, {  603, 0x0000 },
+  {  603, 0x0000 }, {  603, 0x0000 }, {  603, 0x0000 }, {  603, 0x0000 },
+  {  603, 0x2800 }, {  605, 0x1042 }, {  608, 0x8800 }, {  610, 0x0000 },
+  /* 0x3d00 */
+  {  610, 0x0000 }, {  610, 0x2008 }, {  612, 0x0000 }, {  612, 0x0804 },
+  {  614, 0x5040 }, {  617, 0x8002 }, {  619, 0x8604 }, {  623, 0x2020 },
+  {  625, 0x8420 }, {  628, 0x0002 }, {  629, 0x2020 }, {  631, 0x8010 },
+  {  633, 0x30c0 }, {  637, 0x0808 }, {  639, 0x0980 }, {  642, 0x3088 },
+  /* 0x3e00 */
+  {  646, 0x0040 }, {  647, 0x0000 }, {  647, 0x0000 }, {  647, 0x0000 },
+  {  647, 0x0109 }, {  650, 0x0020 }, {  651, 0x0000 }, {  651, 0x0010 },
+  {  652, 0x0000 }, {  652, 0x0000 }, {  652, 0x2700 }, {  656, 0x8102 },
+  {  659, 0x1484 }, {  663, 0x44c3 }, {  669, 0x0a86 }, {  674, 0x9419 },
+  /* 0x3f00 */
+  {  680, 0x4051 }, {  684, 0x0000 }, {  684, 0x0000 }, {  684, 0x0000 },
+  {  684, 0x0000 }, {  684, 0x0308 }, {  687, 0x0008 }, {  688, 0x1000 },
+  {  689, 0x0000 }, {  689, 0x0008 }, {  690, 0x0000 }, {  690, 0x0000 },
+  {  690, 0x0001 }, {  691, 0x1080 }, {  693, 0x2020 }, {  695, 0x0600 },
+  /* 0x4000 */
+  {  697, 0x0010 }, {  698, 0x2000 }, {  699, 0x0000 }, {  699, 0x0200 },
+  {  700, 0x0020 }, {  701, 0x0088 }, {  703, 0x8424 }, {  707, 0x0000 },
+  {  707, 0x0000 }, {  707, 0x0000 }, {  707, 0x0100 }, {  708, 0x8800 },
+  {  710, 0x0100 }, {  711, 0x8100 }, {  713, 0x0000 }, {  713, 0x0400 },
+  /* 0x4100 */
+  {  714, 0x4218 }, {  718, 0x0000 }, {  718, 0x0000 }, {  718, 0x0004 },
+  {  719, 0x0000 }, {  719, 0x0000 }, {  719, 0x5080 }, {  722, 0x8000 },
+  {  723, 0x0000 }, {  723, 0x0001 }, {  724, 0x0000 }, {  724, 0x0004 },
+  {  725, 0x8410 }, {  728, 0x0800 }, {  729, 0x8000 }, {  730, 0x0200 },
+  /* 0x4200 */
+  {  731, 0x0000 }, {  731, 0x0002 }, {  732, 0x0000 }, {  732, 0x0000 },
+  {  732, 0x0001 }, {  733, 0x0000 }, {  733, 0x0401 }, {  735, 0x0400 },
+  {  736, 0x1000 }, {  737, 0x0010 }, {  738, 0x0000 }, {  738, 0x1220 },
+  {  741, 0x0000 }, {  741, 0x0000 }, {  741, 0x0000 }, {  741, 0x1810 },
+  /* 0x4300 */
+  {  744, 0x0000 }, {  744, 0x0000 }, {  744, 0x0800 }, {  745, 0x0000 },
+  {  745, 0x0000 }, {  745, 0x0000 }, {  745, 0x4000 }, {  746, 0x0000 },
+  {  746, 0x0000 }, {  746, 0x0080 }, {  747, 0x0000 }, {  747, 0x0400 },
+  {  748, 0x0002 }, {  749, 0x8200 }, {  751, 0x2000 }, {  752, 0x0004 },
+  /* 0x4400 */
+  {  753, 0x0006 }, {  755, 0x0008 }, {  756, 0x2020 }, {  758, 0x0000 },
+  {  758, 0x0000 }, {  758, 0x0000 }, {  758, 0x0000 }, {  758, 0x0400 },
+  {  759, 0x8000 }, {  760, 0x8000 }, {  761, 0x0005 }, {  763, 0x0081 },
+  {  765, 0x4021 }, {  768, 0xa000 }, {  770, 0x1e10 }, {  775, 0x0010 },
+  /* 0x4500 */
+  {  776, 0x0a18 }, {  780, 0x2040 }, {  782, 0x4080 }, {  784, 0xa808 },
+  {  788, 0x0008 }, {  789, 0x1026 }, {  793, 0x0404 }, {  795, 0x0080 },
+  {  796, 0x0020 }, {  797, 0x0000 }, {  797, 0x0000 }, {  797, 0x0000 },
+  {  797, 0x0000 }, {  797, 0x0000 }, {  797, 0x0200 }, {  798, 0x0000 },
+  /* 0x4600 */
+  {  798, 0x8040 }, {  800, 0x00a0 }, {  802, 0x0000 }, {  802, 0x0000 },
+  {  802, 0x0000 }, {  802, 0x0800 }, {  803, 0x0000 }, {  803, 0x0400 },
+  {  804, 0x0001 }, {  805, 0x0000 }, {  805, 0x0000 }, {  805, 0x0000 },
+  {  805, 0x8000 }, {  806, 0x0001 }, {  807, 0x0000 }, {  807, 0x0020 },
+  /* 0x4700 */
+  {  808, 0x0000 }, {  808, 0x0108 }, {  810, 0x0000 }, {  810, 0x0000 },
+  {  810, 0x4000 }, {  811, 0x0000 }, {  811, 0x0000 }, {  811, 0x1000 },
+  {  812, 0x0000 }, {  812, 0x0100 }, {  813, 0x0040 }, {  814, 0x0040 },
+  {  815, 0x0000 }, {  815, 0x0020 }, {  816, 0x2000 }, {  817, 0x0010 },
+  /* 0x4800 */
+  {  818, 0x0801 }, {  820, 0x0000 }, {  820, 0x0000 }, {  820, 0x0080 },
+  {  821, 0x0000 }, {  821, 0x2000 }, {  822, 0x0000 }, {  822, 0x0002 },
+  {  823, 0x0000 }, {  823, 0x0800 }, {  824, 0x6000 }, {  826, 0x0000 },
+  {  826, 0x0000 }, {  826, 0x2001 }, {  828, 0x2000 }, {  829, 0x0408 },
+  /* 0x4900 */
+  {  831, 0x0040 }, {  832, 0x4002 }, {  834, 0x2420 }, {  837, 0x5020 },
+  {  840, 0x0020 }, {  841, 0x000a }, {  843, 0x0420 }, {  845, 0x0004 },
+  {  846, 0x0200 }, {  847, 0x0000 }, {  847, 0x0082 }, {  849, 0x0000 },
+  {  849, 0x0000 }, {  849, 0x8000 }, {  850, 0x00a0 }, {  852, 0x0000 },
+  /* 0x4a00 */
+  {  852, 0x8000 }, {  853, 0x2000 }, {  854, 0x0010 }, {  855, 0x0020 },
+  {  856, 0x0000 }, {  856, 0x0000 }, {  856, 0x0000 }, {  856, 0x0000 },
+  {  856, 0x0000 }, {  856, 0x0040 }, {  857, 0x0000 }, {  857, 0x0110 },
+  {  859, 0x0000 }, {  859, 0x0002 }, {  860, 0x0010 }, {  861, 0x8000 },
+  /* 0x4b00 */
+  {  862, 0x0000 }, {  862, 0x0200 }, {  863, 0x1000 }, {  864, 0x0080 },
+  {  865, 0x0000 }, {  865, 0x0000 }, {  865, 0x8000 }, {  866, 0x4805 },
+  {  870, 0x4000 }, {  871, 0x20c9 }, {  876, 0x0000 }, {  876, 0x6000 },
+  {  878, 0x0001 }, {  879, 0x0000 }, {  879, 0x0000 }, {  879, 0x0000 },
+  /* 0x4c00 */
+  {  879, 0x4090 }, {  882, 0x0000 }, {  882, 0x0000 }, {  882, 0x4800 },
+  {  884, 0x0000 }, {  884, 0x0800 }, {  885, 0x2000 }, {  886, 0x2000 },
+  {  887, 0x0000 }, {  887, 0x0000 }, {  887, 0x4010 }, {  889, 0x0081 },
+  {  891, 0x2000 }, {  892, 0x0000 }, {  892, 0x2002 }, {  894, 0x0000 },
+  /* 0x4d00 */
+  {  894, 0x0200 }, {  895, 0x0001 }, {  896, 0x0000 }, {  896, 0x0010 },
+  {  897, 0x0000 }, {  897, 0x0000 }, {  897, 0x0000 }, {  897, 0x0000 },
+  {  897, 0x0000 }, {  897, 0x1002 }, {  899, 0x0000 }, {  899, 0x0000 },
+  {  899, 0x0000 }, {  899, 0x0000 }, {  899, 0x0000 }, {  899, 0x0000 },
+  /* 0x4e00 */
+  {  899, 0x0010 }, {  900, 0x1400 }, {  902, 0x1512 }, {  907, 0xa0c0 },
+  {  911, 0x0200 }, {  912, 0x0c00 }, {  914, 0x0400 }, {  915, 0x0100 },
+  {  916, 0x02a3 }, {  921, 0x0500 }, {  923, 0x0001 }, {  924, 0x9880 },
+  {  928, 0x4000 }, {  929, 0x0000 }, {  929, 0x4c00 }, {  932, 0x0100 },
+  /* 0x4f00 */
+  {  933, 0x0008 }, {  934, 0x0400 }, {  935, 0x0300 }, {  937, 0x0284 },
+  {  940, 0x0824 }, {  943, 0x0000 }, {  943, 0x0000 }, {  943, 0x0004 },
+  {  944, 0x0400 }, {  945, 0x0000 }, {  945, 0x0904 }, {  948, 0x2001 },
+  {  950, 0x1100 }, {  952, 0x0000 }, {  952, 0x0030 }, {  954, 0x2204 },
+  /* 0x5000 */
+  {  957, 0x0108 }, {  959, 0x0000 }, {  959, 0x4000 }, {  960, 0x0010 },
+  {  961, 0x0000 }, {  961, 0x0140 }, {  963, 0x1040 }, {  965, 0x0000 },
+  {  965, 0x0102 }, {  967, 0x0001 }, {  968, 0x0040 }, {  969, 0x0000 },
+  {  969, 0x2000 }, {  970, 0x8201 }, {  973, 0x0002 }, {  974, 0x1010 },
+  /* 0x5100 */
+  {  976, 0x6002 }, {  979, 0x0000 }, {  979, 0x0800 }, {  980, 0x0000 },
+  {  980, 0x0000 }, {  980, 0x0040 }, {  981, 0x0401 }, {  983, 0x0210 },
+  {  985, 0x0144 }, {  988, 0x1440 }, {  991, 0x0980 }, {  994, 0x013c },
+  {  999, 0x8288 }, { 1003, 0x880e }, { 1008, 0x2014 }, { 1011, 0x5010 },
+  /* 0x5200 */
+  { 1014, 0x0824 }, { 1017, 0x8000 }, { 1018, 0x00c1 }, { 1021, 0x1010 },
+  { 1023, 0x0000 }, { 1023, 0x0280 }, { 1025, 0x0101 }, { 1027, 0x0208 },
+  { 1029, 0x8000 }, { 1030, 0x0411 }, { 1033, 0x0112 }, { 1036, 0x0220 },
+  { 1038, 0x1020 }, { 1040, 0x0003 }, { 1042, 0x0003 }, { 1044, 0x0200 },
+  /* 0x5300 */
+  { 1045, 0x0002 }, { 1046, 0x0000 }, { 1046, 0x1080 }, { 1048, 0x090c },
+  { 1052, 0x4004 }, { 1054, 0xa000 }, { 1056, 0x2290 }, { 1060, 0x6010 },
+  { 1063, 0x0000 }, { 1063, 0x0008 }, { 1064, 0x4f45 }, { 1072, 0x0041 },
+  { 1074, 0x1026 }, { 1078, 0x0707 }, { 1084, 0x0001 }, { 1085, 0x40c0 },
+  /* 0x5400 */
+  { 1088, 0x0000 }, { 1088, 0x0458 }, { 1092, 0x800a }, { 1095, 0x0004 },
+  { 1096, 0x2800 }, { 1098, 0x0000 }, { 1098, 0x2600 }, { 1101, 0x0000 },
+  { 1101, 0x8020 }, { 1103, 0x5098 }, { 1108, 0x0018 }, { 1110, 0x0214 },
+  { 1113, 0x3800 }, { 1116, 0x0401 }, { 1118, 0x8008 }, { 1120, 0x0000 },
+  /* 0x5500 */
+  { 1120, 0x2004 }, { 1122, 0x4108 }, { 1125, 0x0928 }, { 1129, 0x8000 },
+  { 1130, 0x0280 }, { 1132, 0x2008 }, { 1134, 0x0a00 }, { 1136, 0x020e },
+  { 1140, 0x0040 }, { 1141, 0x0001 }, { 1142, 0x0200 }, { 1143, 0x1611 },
+  { 1148, 0x0002 }, { 1149, 0x4180 }, { 1152, 0x1400 }, { 1154, 0x0823 },
+  /* 0x5600 */
+  { 1158, 0x0020 }, { 1159, 0x4002 }, { 1161, 0x202f }, { 1167, 0x0080 },
+  { 1168, 0xa008 }, { 1171, 0x2015 }, { 1175, 0x0002 }, { 1176, 0x1c00 },
+  { 1179, 0x0e00 }, { 1182, 0xc004 }, { 1185, 0x8012 }, { 1188, 0x8202 },
+  { 1191, 0x0000 }, { 1191, 0x0040 }, { 1192, 0xa004 }, { 1195, 0x2002 },
+  /* 0x5700 */
+  { 1197, 0x0001 }, { 1198, 0x2020 }, { 1200, 0x0000 }, { 1200, 0x8004 },
+  { 1202, 0x004c }, { 1205, 0x8890 }, { 1209, 0x0080 }, { 1210, 0xc400 },
+  { 1213, 0x2500 }, { 1216, 0x1001 }, { 1218, 0x0482 }, { 1221, 0x4810 },
+  { 1224, 0x0110 }, { 1226, 0x6080 }, { 1229, 0x8040 }, { 1231, 0x4000 },
+  /* 0x5800 */
+  { 1232, 0x0008 }, { 1233, 0x0004 }, { 1234, 0x0044 }, { 1236, 0x0400 },
+  { 1237, 0x0091 }, { 1240, 0x9000 }, { 1242, 0x1200 }, { 1244, 0x000c },
+  { 1246, 0x0000 }, { 1246, 0x0600 }, { 1248, 0x0480 }, { 1250, 0x0861 },
+  { 1254, 0x0800 }, { 1255, 0x1000 }, { 1256, 0x0001 }, { 1257, 0x080d },
+  /* 0x5900 */
+  { 1261, 0x04b4 }, { 1266, 0x8002 }, { 1268, 0x0000 }, { 1268, 0x0014 },
+  { 1270, 0x0000 }, { 1270, 0x0000 }, { 1270, 0x0020 }, { 1271, 0x0020 },
+  { 1272, 0x0200 }, { 1273, 0x8410 }, { 1276, 0x1000 }, { 1277, 0x0181 },
+  { 1280, 0x0210 }, { 1282, 0x0200 }, { 1283, 0x8800 }, { 1285, 0x0301 },
+  /* 0x5a00 */
+  { 1288, 0x2804 }, { 1291, 0x0004 }, { 1292, 0x1c92 }, { 1298, 0x2000 },
+  { 1299, 0x0020 }, { 1300, 0x0210 }, { 1302, 0x490a }, { 1307, 0x4202 },
+  { 1310, 0x0146 }, { 1314, 0x0242 }, { 1317, 0x0803 }, { 1320, 0x0000 },
+  { 1320, 0xc008 }, { 1323, 0x0008 }, { 1324, 0x0010 }, { 1325, 0x4405 },
+  /* 0x5b00 */
+  { 1329, 0x2000 }, { 1330, 0x8002 }, { 1332, 0x0800 }, { 1333, 0x0000 },
+  { 1333, 0x8452 }, { 1338, 0x0000 }, { 1338, 0x2140 }, { 1341, 0x1050 },
+  { 1344, 0x0005 }, { 1346, 0xe001 }, { 1350, 0x0400 }, { 1351, 0x0000 },
+  { 1351, 0x0008 }, { 1352, 0x00a0 }, { 1354, 0x0000 }, { 1354, 0x8008 },
+  /* 0x5c00 */
+  { 1356, 0x0020 }, { 1357, 0x5018 }, { 1361, 0x0009 }, { 1363, 0x0000 },
+  { 1363, 0x0600 }, { 1365, 0x4008 }, { 1367, 0x0000 }, { 1367, 0x0000 },
+  { 1367, 0x0020 }, { 1368, 0x5600 }, { 1372, 0x0000 }, { 1372, 0x0400 },
+  { 1373, 0x0006 }, { 1375, 0x0002 }, { 1376, 0x8220 }, { 1379, 0x0000 },
+  /* 0x5d00 */
+  { 1379, 0x0000 }, { 1379, 0x0121 }, { 1382, 0x9000 }, { 1384, 0x4000 },
+  { 1385, 0x0140 }, { 1387, 0x08c0 }, { 1390, 0x0000 }, { 1390, 0x0011 },
+  { 1392, 0x4820 }, { 1395, 0x0000 }, { 1395, 0x0810 }, { 1397, 0x0240 },
+  { 1399, 0x0002 }, { 1400, 0x0880 }, { 1402, 0x0000 }, { 1402, 0x0020 },
+  /* 0x5e00 */
+  { 1403, 0x0a00 }, { 1405, 0x0004 }, { 1406, 0x4000 }, { 1407, 0x0000 },
+  { 1407, 0x0104 }, { 1409, 0x4000 }, { 1410, 0x0000 }, { 1410, 0x8400 },
+  { 1412, 0x0048 }, { 1414, 0x0000 }, { 1414, 0x0000 }, { 1414, 0x2000 },
+  { 1415, 0x2000 }, { 1416, 0x0001 }, { 1417, 0x0000 }, { 1417, 0x1b10 },
+  /* 0x5f00 */
+  { 1422, 0x7000 }, { 1425, 0x0000 }, { 1425, 0x0020 }, { 1426, 0x0400 },
+  { 1427, 0x2000 }, { 1428, 0x1003 }, { 1431, 0x000a }, { 1433, 0x0804 },
+  { 1435, 0x0008 }, { 1436, 0x0000 }, { 1436, 0x0090 }, { 1438, 0x0402 },
+  { 1440, 0x0010 }, { 1441, 0x8800 }, { 1443, 0x0000 }, { 1443, 0x0000 },
+  /* 0x6000 */
+  { 1443, 0x0000 }, { 1443, 0x0000 }, { 1443, 0x0008 }, { 1444, 0x0802 },
+  { 1446, 0x0400 }, { 1447, 0x0004 }, { 1448, 0x0000 }, { 1448, 0x40a0 },
+  { 1451, 0x0000 }, { 1451, 0x4000 }, { 1452, 0x0090 }, { 1454, 0x0008 },
+  { 1455, 0x0000 }, { 1455, 0x4080 }, { 1457, 0x0388 }, { 1461, 0x2000 },
+  /* 0x6100 */
+  { 1462, 0x1080 }, { 1464, 0x0200 }, { 1465, 0x0000 }, { 1465, 0x2001 },
+  { 1467, 0x0004 }, { 1468, 0x1201 }, { 1471, 0x8011 }, { 1474, 0x2000 },
+  { 1475, 0x0082 }, { 1477, 0x1320 }, { 1481, 0x0000 }, { 1481, 0x0280 },
+  { 1483, 0x8001 }, { 1485, 0x0409 }, { 1488, 0x0004 }, { 1489, 0x0000 },
+  /* 0x6200 */
+  { 1489, 0x0000 }, { 1489, 0x0000 }, { 1489, 0x1000 }, { 1490, 0x0280 },
+  { 1492, 0x1000 }, { 1493, 0x0000 }, { 1493, 0x0100 }, { 1494, 0x0000 },
+  { 1494, 0x0024 }, { 1496, 0x2001 }, { 1498, 0x0050 }, { 1500, 0x0000 },
+  { 1500, 0x0028 }, { 1502, 0x8020 }, { 1504, 0x0020 }, { 1505, 0x0000 },
+  /* 0x6300 */
+  { 1505, 0x0000 }, { 1505, 0x0100 }, { 1506, 0x4000 }, { 1507, 0x00a2 },
+  { 1510, 0x0000 }, { 1510, 0x0000 }, { 1510, 0x1010 }, { 1512, 0x8200 },
+  { 1514, 0x0800 }, { 1515, 0x0000 }, { 1515, 0x0000 }, { 1515, 0x0200 },
+  { 1516, 0x0002 }, { 1517, 0x4002 }, { 1519, 0x0044 }, { 1521, 0x5900 },
+  /* 0x6400 */
+  { 1525, 0x0080 }, { 1526, 0x0000 }, { 1526, 0x0000 }, { 1526, 0x0d04 },
+  { 1530, 0x0000 }, { 1530, 0x0400 }, { 1531, 0x0000 }, { 1531, 0x1002 },
+  { 1533, 0x2000 }, { 1534, 0x0002 }, { 1535, 0x8000 }, { 1536, 0x0050 },
+  { 1538, 0x0001 }, { 1539, 0x2008 }, { 1541, 0x04a2 }, { 1545, 0x0000 },
+  /* 0x6500 */
+  { 1545, 0x0400 }, { 1546, 0xc002 }, { 1549, 0x0000 }, { 1549, 0x0031 },
+  { 1552, 0x2000 }, { 1553, 0x8000 }, { 1554, 0x2800 }, { 1556, 0x0000 },
+  { 1556, 0x0360 }, { 1560, 0x0000 }, { 1560, 0x0000 }, { 1560, 0x4020 },
+  { 1562, 0x0000 }, { 1562, 0x0012 }, { 1564, 0x0009 }, { 1566, 0x8000 },
+  /* 0x6600 */
+  { 1567, 0x0000 }, { 1567, 0x4100 }, { 1569, 0x0008 }, { 1570, 0x0001 },
+  { 1571, 0x0910 }, { 1574, 0x0088 }, { 1576, 0x0888 }, { 1579, 0x2008 },
+  { 1581, 0x4020 }, { 1583, 0x0404 }, { 1585, 0x2010 }, { 1587, 0x8048 },
+  { 1590, 0x6000 }, { 1592, 0x0000 }, { 1592, 0x0000 }, { 1592, 0x0002 },
+  /* 0x6700 */
+  { 1593, 0x5004 }, { 1596, 0x4040 }, { 1598, 0x0020 }, { 1599, 0x0040 },
+  { 1600, 0x0010 }, { 1601, 0x0000 }, { 1601, 0x0086 }, { 1604, 0x0000 },
+  { 1604, 0x8000 }, { 1605, 0x0000 }, { 1605, 0x1011 }, { 1608, 0x8002 },
+  { 1610, 0x0000 }, { 1610, 0x00c0 }, { 1612, 0x0000 }, { 1612, 0x4200 },
+  /* 0x6800 */
+  { 1614, 0x201f }, { 1620, 0x4801 }, { 1623, 0x0004 }, { 1624, 0x40c0 },
+  { 1627, 0x0480 }, { 1629, 0x2060 }, { 1632, 0x0020 }, { 1633, 0x0000 },
+  { 1633, 0x0110 }, { 1635, 0x0100 }, { 1636, 0x0040 }, { 1637, 0x2240 },
+  { 1640, 0x0428 }, { 1643, 0x0000 }, { 1643, 0x0000 }, { 1643, 0x0000 },
+  /* 0x6900 */
+  { 1643, 0x020f }, { 1648, 0x0d00 }, { 1651, 0x1000 }, { 1652, 0x4040 },
+  { 1654, 0x0048 }, { 1656, 0x0020 }, { 1657, 0x0092 }, { 1660, 0x000c },
+  { 1662, 0x0421 }, { 1665, 0x8100 }, { 1667, 0x0004 }, { 1668, 0x0004 },
+  { 1669, 0x0001 }, { 1670, 0x0062 }, { 1673, 0x0202 }, { 1675, 0x0600 },
+  /* 0x6a00 */
+  { 1677, 0x1808 }, { 1680, 0x1400 }, { 1682, 0x3800 }, { 1685, 0x0008 },
+  { 1686, 0x1020 }, { 1688, 0x008c }, { 1691, 0x0020 }, { 1692, 0x0412 },
+  { 1695, 0x8404 }, { 1698, 0x2200 }, { 1700, 0x0880 }, { 1702, 0x4026 },
+  { 1706, 0x0700 }, { 1709, 0x0110 }, { 1711, 0x0000 }, { 1711, 0x0040 },
+  /* 0x6b00 */
+  { 1712, 0x0020 }, { 1713, 0x2000 }, { 1714, 0x0000 }, { 1714, 0x0020 },
+  { 1715, 0x0000 }, { 1715, 0x0084 }, { 1717, 0x8000 }, { 1718, 0x0410 },
+  { 1720, 0x0002 }, { 1721, 0x0000 }, { 1721, 0x0000 }, { 1721, 0x0000 },
+  { 1721, 0x0002 }, { 1722, 0x1000 }, { 1723, 0x0402 }, { 1725, 0x0400 },
+  /* 0x6c00 */
+  { 1726, 0x0000 }, { 1726, 0x1000 }, { 1727, 0x0000 }, { 1727, 0x26a2 },
+  { 1733, 0x0200 }, { 1734, 0x0500 }, { 1736, 0x4000 }, { 1737, 0x8220 },
+  { 1740, 0x0000 }, { 1740, 0x8000 }, { 1741, 0x8404 }, { 1744, 0x0004 },
+  { 1745, 0x4800 }, { 1747, 0x8000 }, { 1748, 0x0400 }, { 1749, 0x0000 },
+  /* 0x6d00 */
+  { 1749, 0x0064 }, { 1752, 0x0000 }, { 1752, 0x0050 }, { 1754, 0x0000 },
+  { 1754, 0x4000 }, { 1755, 0x1880 }, { 1758, 0x0000 }, { 1758, 0x0006 },
+  { 1760, 0x8002 }, { 1762, 0x0040 }, { 1763, 0x0030 }, { 1765, 0x0202 },
+  { 1767, 0x0000 }, { 1767, 0x0000 }, { 1767, 0x0000 }, { 1767, 0x0000 },
+  /* 0x6e00 */
+  { 1767, 0x8414 }, { 1771, 0x0120 }, { 1773, 0x0600 }, { 1775, 0x0000 },
+  { 1775, 0x8000 }, { 1776, 0x0201 }, { 1778, 0x0000 }, { 1778, 0x1040 },
+  { 1780, 0x0840 }, { 1782, 0x0400 }, { 1783, 0x0000 }, { 1783, 0x0920 },
+  { 1786, 0x0000 }, { 1786, 0x2e00 }, { 1790, 0x0304 }, { 1793, 0x0400 },
+  /* 0x6f00 */
+  { 1794, 0x1810 }, { 1797, 0x00c0 }, { 1799, 0x0010 }, { 1800, 0x2010 },
+  { 1802, 0x0010 }, { 1803, 0x1040 }, { 1805, 0x0000 }, { 1805, 0x0210 },
+  { 1807, 0x0402 }, { 1809, 0xa000 }, { 1811, 0x0000 }, { 1811, 0x4820 },
+  { 1814, 0x0000 }, { 1814, 0x0608 }, { 1817, 0x0000 }, { 1817, 0x0140 },
+  /* 0x7000 */
+  { 1819, 0x0008 }, { 1820, 0x4000 }, { 1821, 0x1000 }, { 1822, 0x0000 },
+  { 1822, 0x0800 }, { 1823, 0x1011 }, { 1826, 0x9080 }, { 1829, 0xc220 },
+  { 1833, 0x8a02 }, { 1837, 0x0000 }, { 1837, 0x00e9 }, { 1842, 0x3a00 },
+  { 1846, 0x1011 }, { 1849, 0x8061 }, { 1853, 0x0000 }, { 1853, 0x4022 },
+  /* 0x7100 */
+  { 1856, 0x0020 }, { 1857, 0x2000 }, { 1858, 0x1a00 }, { 1861, 0x4838 },
+  { 1866, 0x8421 }, { 1870, 0x0002 }, { 1871, 0x0800 }, { 1872, 0x54ea },
+  { 1880, 0x5100 }, { 1883, 0x0140 }, { 1885, 0x200c }, { 1888, 0x0490 },
+  { 1891, 0x0000 }, { 1891, 0x2002 }, { 1893, 0x0800 }, { 1894, 0x0060 },
+  /* 0x7200 */
+  { 1896, 0xc200 }, { 1899, 0x00e0 }, { 1902, 0x4810 }, { 1905, 0x0000 },
+  { 1905, 0x0001 }, { 1906, 0x10a1 }, { 1910, 0x0040 }, { 1911, 0x0000 },
+  { 1911, 0x8084 }, { 1914, 0x8010 }, { 1916, 0x2000 }, { 1917, 0x0004 },
+  { 1918, 0x2000 }, { 1919, 0x0000 }, { 1919, 0x0004 }, { 1920, 0x0000 },
+  /* 0x7300 */
+  { 1920, 0x0014 }, { 1922, 0x0001 }, { 1923, 0x5d00 }, { 1928, 0x0300 },
+  { 1930, 0x8102 }, { 1933, 0x0000 }, { 1933, 0x0000 }, { 1933, 0x0012 },
+  { 1935, 0x8000 }, { 1936, 0x5100 }, { 1939, 0x0480 }, { 1941, 0x0000 },
+  { 1941, 0xc200 }, { 1944, 0x0021 }, { 1946, 0x8056 }, { 1951, 0x0a88 },
+  /* 0x7400 */
+  { 1955, 0x0000 }, { 1955, 0xd2b6 }, { 1964, 0x0000 }, { 1964, 0x1380 },
+  { 1968, 0x03a8 }, { 1973, 0x2048 }, { 1976, 0x1921 }, { 1981, 0x0450 },
+  { 1984, 0x3004 }, { 1987, 0x0a00 }, { 1989, 0x0010 }, { 1990, 0x0010 },
+  { 1991, 0x1100 }, { 1993, 0x0009 }, { 1995, 0x0080 }, { 1996, 0x0107 },
+  /* 0x7500 */
+  { 2000, 0x4020 }, { 2002, 0x4200 }, { 2004, 0x0000 }, { 2004, 0x0830 },
+  { 2007, 0x2444 }, { 2011, 0x002a }, { 2014, 0x6081 }, { 2018, 0x0404 },
+  { 2020, 0x6008 }, { 2023, 0x4004 }, { 2025, 0x0000 }, { 2025, 0x0012 },
+  { 2027, 0x0108 }, { 2029, 0x1000 }, { 2030, 0x0000 }, { 2030, 0x0000 },
+  /* 0x7600 */
+  { 2030, 0x0084 }, { 2032, 0x0000 }, { 2032, 0x1000 }, { 2033, 0x0800 },
+  { 2034, 0xe001 }, { 2038, 0x0012 }, { 2040, 0x80c0 }, { 2043, 0x0458 },
+  { 2047, 0x0000 }, { 2047, 0x0001 }, { 2048, 0x0022 }, { 2050, 0x0080 },
+  { 2051, 0x1000 }, { 2052, 0x0040 }, { 2053, 0x0000 }, { 2053, 0x0000 },
+  /* 0x7700 */
+  { 2053, 0xd000 }, { 2056, 0x4000 }, { 2057, 0x0850 }, { 2060, 0x0000 },
+  { 2060, 0x0009 }, { 2062, 0x0100 }, { 2063, 0x0000 }, { 2063, 0x0d84 },
+  { 2068, 0x0000 }, { 2068, 0x0108 }, { 2070, 0x8000 }, { 2071, 0x4200 },
+  { 2073, 0x0828 }, { 2076, 0x0000 }, { 2076, 0x0040 }, { 2077, 0x4010 },
+  /* 0x7800 */
+  { 2079, 0x0100 }, { 2080, 0x5100 }, { 2083, 0x0000 }, { 2083, 0x3200 },
+  { 2086, 0x0894 }, { 2090, 0x001a }, { 2093, 0x0040 }, { 2094, 0x0400 },
+  { 2095, 0x2102 }, { 2098, 0x0000 }, { 2098, 0x8000 }, { 2099, 0x0342 },
+  { 2103, 0x0080 }, { 2104, 0x018c }, { 2108, 0x4000 }, { 2109, 0x0023 },
+  /* 0x7900 */
+  { 2112, 0x0040 }, { 2113, 0x0000 }, { 2113, 0x4000 }, { 2114, 0x185c },
+  { 2120, 0x0000 }, { 2120, 0x0300 }, { 2122, 0x0004 }, { 2123, 0x4002 },
+  { 2125, 0x00c9 }, { 2129, 0xa202 }, { 2133, 0x0220 }, { 2135, 0x0000 },
+  { 2135, 0x1050 }, { 2138, 0x0010 }, { 2139, 0x0004 }, { 2140, 0x0012 },
+  /* 0x7a00 */
+  { 2142, 0x0040 }, { 2143, 0x0000 }, { 2143, 0x2000 }, { 2144, 0x4400 },
+  { 2146, 0x0228 }, { 2149, 0x0000 }, { 2149, 0x0020 }, { 2150, 0x2000 },
+  { 2151, 0x0008 }, { 2152, 0x0002 }, { 2153, 0x0000 }, { 2153, 0x1801 },
+  { 2156, 0x830c }, { 2161, 0x3c08 }, { 2166, 0x0684 }, { 2170, 0x4000 },
+  /* 0x7b00 */
+  { 2171, 0x1800 }, { 2173, 0x8010 }, { 2175, 0x0280 }, { 2177, 0x0200 },
+  { 2178, 0x000c }, { 2180, 0x0020 }, { 2181, 0x9004 }, { 2184, 0x0800 },
+  { 2185, 0x0000 }, { 2185, 0x0004 }, { 2186, 0x000c }, { 2188, 0x0004 },
+  { 2189, 0x8000 }, { 2190, 0x0001 }, { 2191, 0x0000 }, { 2191, 0x1400 },
+  /* 0x7c00 */
+  { 2193, 0x0000 }, { 2193, 0x0824 }, { 2196, 0x0000 }, { 2196, 0x0020 },
+  { 2197, 0x0014 }, { 2199, 0x2042 }, { 2202, 0x2000 }, { 2203, 0x5811 },
+  { 2208, 0x4048 }, { 2211, 0x1000 }, { 2212, 0x50c0 }, { 2216, 0x0100 },
+  { 2217, 0x2284 }, { 2221, 0x0408 }, { 2223, 0x2040 }, { 2225, 0x1228 },
+  /* 0x7d00 */
+  { 2229, 0x0000 }, { 2229, 0x0000 }, { 2229, 0x0020 }, { 2230, 0x0000 },
+  { 2230, 0x2000 }, { 2231, 0x2400 }, { 2233, 0x0000 }, { 2233, 0x0000 },
+  { 2233, 0x0200 }, { 2234, 0x0080 }, { 2235, 0x0910 }, { 2238, 0x0008 },
+  { 2239, 0xa000 }, { 2241, 0x1019 }, { 2245, 0x0030 }, { 2247, 0x6020 },
+  /* 0x7e00 */
+  { 2250, 0x0080 }, { 2251, 0x0000 }, { 2251, 0x0080 }, { 2252, 0x0000 },
+  { 2252, 0x0000 }, { 2252, 0x0000 }, { 2252, 0x40a0 }, { 2255, 0x8000 },
+  { 2256, 0x4000 }, { 2257, 0x8004 }, { 2259, 0x1010 }, { 2261, 0x0400 },
+  { 2262, 0x8080 }, { 2264, 0x8000 }, { 2265, 0x0000 }, { 2265, 0x0000 },
+  /* 0x7f00 */
+  { 2265, 0x0040 }, { 2266, 0x0000 }, { 2266, 0x0000 }, { 2266, 0x0080 },
+  { 2267, 0x4283 }, { 2272, 0x000c }, { 2274, 0x0000 }, { 2274, 0x0102 },
+  { 2276, 0x8000 }, { 2277, 0x0088 }, { 2279, 0x4008 }, { 2281, 0x0010 },
+  { 2282, 0x0000 }, { 2282, 0x2000 }, { 2283, 0x0080 }, { 2284, 0x0400 },
+  /* 0x8000 */
+  { 2285, 0x0104 }, { 2287, 0x2000 }, { 2288, 0xc021 }, { 2292, 0x1802 },
+  { 2295, 0x0000 }, { 2295, 0x0810 }, { 2297, 0x004e }, { 2301, 0x0000 },
+  { 2301, 0x0001 }, { 2302, 0x8000 }, { 2303, 0x0080 }, { 2304, 0x30c0 },
+  { 2308, 0x0040 }, { 2309, 0x0000 }, { 2309, 0x1200 }, { 2311, 0x0040 },
+  /* 0x8100 */
+  { 2312, 0x5288 }, { 2317, 0x0494 }, { 2321, 0x0400 }, { 2322, 0x0094 },
+  { 2325, 0x0104 }, { 2327, 0x0640 }, { 2330, 0x2000 }, { 2331, 0x1000 },
+  { 2332, 0x0010 }, { 2333, 0x0008 }, { 2334, 0x0420 }, { 2336, 0x0040 },
+  { 2337, 0x0102 }, { 2339, 0x0000 }, { 2339, 0x8010 }, { 2341, 0x0040 },
+  /* 0x8200 */
+  { 2342, 0x0000 }, { 2342, 0x0500 }, { 2344, 0x2240 }, { 2347, 0x4000 },
+  { 2348, 0x0000 }, { 2348, 0x0010 }, { 2349, 0x0024 }, { 2351, 0x0e40 },
+  { 2355, 0x0080 }, { 2356, 0x0000 }, { 2356, 0x0440 }, { 2358, 0x0000 },
+  { 2358, 0x8410 }, { 2361, 0x0101 }, { 2363, 0x4004 }, { 2365, 0xb080 },
+  /* 0x8300 */
+  { 2369, 0x0800 }, { 2370, 0x2500 }, { 2373, 0x0000 }, { 2373, 0x2000 },
+  { 2374, 0x0000 }, { 2374, 0x0080 }, { 2375, 0x804c }, { 2379, 0x0000 },
+  { 2379, 0x0020 }, { 2380, 0x1002 }, { 2382, 0x1000 }, { 2383, 0x4200 },
+  { 2385, 0x2000 }, { 2386, 0x0008 }, { 2387, 0x2000 }, { 2388, 0x0000 },
+  /* 0x8400 */
+  { 2388, 0x0020 }, { 2389, 0x1150 }, { 2393, 0x4053 }, { 2398, 0x4000 },
+  { 2399, 0x0500 }, { 2401, 0x1128 }, { 2405, 0x0014 }, { 2407, 0x8006 },
+  { 2410, 0x0101 }, { 2412, 0x004c }, { 2415, 0x2008 }, { 2417, 0x6000 },
+  { 2419, 0x0000 }, { 2419, 0x4400 }, { 2421, 0x0036 }, { 2425, 0x0100 },
+  /* 0x8500 */
+  { 2426, 0x0028 }, { 2428, 0x0001 }, { 2429, 0x0000 }, { 2429, 0x0118 },
+  { 2432, 0x1804 }, { 2435, 0x0404 }, { 2437, 0x8000 }, { 2438, 0x0009 },
+  { 2440, 0x0000 }, { 2440, 0x0000 }, { 2440, 0x0000 }, { 2440, 0x0000 },
+  { 2440, 0x0002 }, { 2441, 0x0000 }, { 2441, 0x4001 }, { 2443, 0x1000 },
+  /* 0x8600 */
+  { 2444, 0x2004 }, { 2446, 0x0051 }, { 2449, 0x8100 }, { 2451, 0x0000 },
+  { 2451, 0x0024 }, { 2453, 0x0000 }, { 2453, 0x1000 }, { 2454, 0x4004 },
+  { 2456, 0x0000 }, { 2456, 0x0004 }, { 2457, 0x2001 }, { 2459, 0x0004 },
+  { 2460, 0x0000 }, { 2460, 0x0000 }, { 2460, 0x8000 }, { 2461, 0x0000 },
+  /* 0x8700 */
+  { 2461, 0x0000 }, { 2461, 0x0000 }, { 2461, 0x0000 }, { 2461, 0x0000 },
+  { 2461, 0x0000 }, { 2461, 0x0000 }, { 2461, 0x0000 }, { 2461, 0x2003 },
+  { 2464, 0x1840 }, { 2467, 0x0000 }, { 2467, 0x0220 }, { 2469, 0x0002 },
+  { 2470, 0x4002 }, { 2472, 0x0440 }, { 2474, 0x4000 }, { 2475, 0x0020 },
+  /* 0x8800 */
+  { 2476, 0x8010 }, { 2478, 0x0100 }, { 2479, 0x2080 }, { 2481, 0x0000 },
+  { 2481, 0x8064 }, { 2485, 0x4000 }, { 2486, 0x4031 }, { 2490, 0x0000 },
+  { 2490, 0x0090 }, { 2492, 0x1000 }, { 2493, 0x4001 }, { 2495, 0x8030 },
+  { 2498, 0x80a0 }, { 2501, 0x0000 }, { 2501, 0x0040 }, { 2502, 0x8020 },
+  /* 0x8900 */
+  { 2504, 0x0001 }, { 2505, 0x0000 }, { 2505, 0x0010 }, { 2506, 0x0000 },
+  { 2506, 0x2088 }, { 2509, 0x0010 }, { 2510, 0x0020 }, { 2511, 0x0080 },
+  { 2512, 0x0681 }, { 2516, 0x0012 }, { 2518, 0x02a0 }, { 2521, 0x1000 },
+  { 2522, 0x0042 }, { 2524, 0x0000 }, { 2524, 0x0080 }, { 2525, 0x0000 },
+  /* 0x8a00 */
+  { 2525, 0x0000 }, { 2525, 0x1000 }, { 2526, 0x0a00 }, { 2528, 0x2100 },
+  { 2530, 0x0200 }, { 2531, 0x0000 }, { 2531, 0x0080 }, { 2532, 0x4000 },
+  { 2533, 0x0000 }, { 2533, 0x1011 }, { 2536, 0x8200 }, { 2538, 0x0010 },
+  { 2539, 0x0000 }, { 2539, 0x0400 }, { 2540, 0x0400 }, { 2541, 0x0000 },
+  /* 0x8b00 */
+  { 2541, 0x1000 }, { 2542, 0x8000 }, { 2543, 0x2000 }, { 2544, 0x8000 },
+  { 2545, 0x3008 }, { 2548, 0x4000 }, { 2549, 0x0204 }, { 2551, 0x0000 },
+  { 2551, 0x0002 }, { 2552, 0x0801 }, { 2554, 0x0001 }, { 2555, 0x4000 },
+  { 2556, 0x0000 }, { 2556, 0x0000 }, { 2556, 0x0004 }, { 2557, 0x0000 },
+  /* 0x8c00 */
+  { 2557, 0x0000 }, { 2557, 0x0000 }, { 2557, 0x0000 }, { 2557, 0x0000 },
+  { 2557, 0x0000 }, { 2557, 0x0002 }, { 2558, 0x0000 }, { 2558, 0x0000 },
+  { 2558, 0x0000 }, { 2558, 0x8800 }, { 2560, 0x2000 }, { 2561, 0x0000 },
+  { 2561, 0x2000 }, { 2562, 0x0850 }, { 2565, 0x0a00 }, { 2567, 0x0084 },
+  /* 0x8d00 */
+  { 2569, 0x1808 }, { 2572, 0x3106 }, { 2577, 0x0000 }, { 2577, 0x0000 },
+  { 2577, 0x0000 }, { 2577, 0x0000 }, { 2577, 0x0000 }, { 2577, 0x0400 },
+  { 2578, 0x0004 }, { 2579, 0x0000 }, { 2579, 0x0240 }, { 2581, 0x0000 },
+  { 2581, 0x0009 }, { 2583, 0x0010 }, { 2584, 0x0000 }, { 2584, 0x0000 },
+  /* 0x8e00 */
+  { 2584, 0x4002 }, { 2586, 0x0000 }, { 2586, 0x2500 }, { 2589, 0x0400 },
+  { 2590, 0x8040 }, { 2592, 0x0000 }, { 2592, 0x0100 }, { 2593, 0x40a2 },
+  { 2597, 0x0001 }, { 2598, 0x0000 }, { 2598, 0x2080 }, { 2600, 0x1041 },
+  { 2603, 0x4008 }, { 2605, 0x0400 }, { 2606, 0x2014 }, { 2609, 0x0004 },
+  /* 0x8f00 */
+  { 2610, 0x0000 }, { 2610, 0x0200 }, { 2611, 0x2000 }, { 2612, 0x0001 },
+  { 2613, 0x0402 }, { 2615, 0x1000 }, { 2616, 0x40c0 }, { 2619, 0x0000 },
+  { 2619, 0x0000 }, { 2619, 0x0008 }, { 2620, 0x0021 }, { 2622, 0x5fe8 },
+  { 2632, 0x1402 }, { 2635, 0x0401 }, { 2637, 0x0000 }, { 2637, 0x0200 },
+  /* 0x9000 */
+  { 2638, 0x0100 }, { 2639, 0x0004 }, { 2640, 0x0000 }, { 2640, 0x0088 },
+  { 2642, 0x1000 }, { 2643, 0x0040 }, { 2644, 0x1012 }, { 2647, 0x0000 },
+  { 2647, 0x0000 }, { 2647, 0x0000 }, { 2647, 0x4100 }, { 2649, 0x0800 },
+  { 2650, 0x0010 }, { 2651, 0x0000 }, { 2651, 0x0000 }, { 2651, 0x0000 },
+  /* 0x9100 */
+  { 2651, 0x0000 }, { 2651, 0x0000 }, { 2651, 0x0000 }, { 2651, 0x0000 },
+  { 2651, 0x0000 }, { 2651, 0x5202 }, { 2655, 0x0080 }, { 2656, 0x1041 },
+  { 2659, 0x5000 }, { 2661, 0x0000 }, { 2661, 0x0200 }, { 2662, 0x0840 },
+  { 2664, 0x0010 }, { 2665, 0x8040 }, { 2667, 0x0020 }, { 2668, 0x4400 },
+  /* 0x9200 */
+  { 2670, 0x4100 }, { 2672, 0x0008 }, { 2673, 0x0d00 }, { 2676, 0x1020 },
+  { 2678, 0x0012 }, { 2680, 0xa120 }, { 2684, 0x4804 }, { 2687, 0x0080 },
+  { 2688, 0x8212 }, { 2692, 0x0000 }, { 2692, 0x4000 }, { 2693, 0xc602 },
+  { 2698, 0x0000 }, { 2698, 0x0810 }, { 2700, 0x1828 }, { 2704, 0x205c },
+  /* 0x9300 */
+  { 2709, 0x0088 }, { 2711, 0x0000 }, { 2711, 0x1000 }, { 2712, 0x0003 },
+  { 2714, 0x013f }, { 2721, 0x8000 }, { 2722, 0x4b44 }, { 2728, 0x2118 },
+  { 2732, 0x00f2 }, { 2737, 0x1001 }, { 2739, 0x2001 }, { 2741, 0xa900 },
+  { 2745, 0x0840 }, { 2747, 0x0808 }, { 2749, 0x0001 }, { 2750, 0x000b },
+  /* 0x9400 */
+  { 2753, 0x0112 }, { 2756, 0x2880 }, { 2759, 0x20f0 }, { 2764, 0x4000 },
+  { 2765, 0x200c }, { 2768, 0x0910 }, { 2771, 0x10a0 }, { 2774, 0x0a00 },
+  { 2776, 0x0020 }, { 2777, 0x8000 }, { 2778, 0x0004 }, { 2779, 0x0000 },
+  { 2779, 0x000a }, { 2781, 0x1000 }, { 2782, 0x0000 }, { 2782, 0x0040 },
+  /* 0x9500 */
+  { 2783, 0x0000 }, { 2783, 0x0000 }, { 2783, 0x2000 }, { 2784, 0x0000 },
+  { 2784, 0x0080 }, { 2785, 0x0000 }, { 2785, 0x0000 }, { 2785, 0x8100 },
+  { 2787, 0x0020 }, { 2788, 0x02c0 }, { 2791, 0x04c5 }, { 2796, 0x0000 },
+  { 2796, 0x0000 }, { 2796, 0x0000 }, { 2796, 0x0100 }, { 2797, 0x0010 },
+  /* 0x9600 */
+  { 2798, 0x0000 }, { 2798, 0x2000 }, { 2799, 0x0000 }, { 2799, 0x0108 },
+  { 2801, 0x0022 }, { 2803, 0x0040 }, { 2804, 0x0200 }, { 2805, 0x0800 },
+  { 2806, 0x8002 }, { 2808, 0x0040 }, { 2809, 0x0028 }, { 2811, 0x2040 },
+  { 2813, 0x0000 }, { 2813, 0x0000 }, { 2813, 0x0000 }, { 2813, 0x0010 },
+  /* 0x9700 */
+  { 2814, 0x0008 }, { 2815, 0x0800 }, { 2816, 0x0002 }, { 2817, 0x0042 },
+  { 2819, 0x0003 }, { 2821, 0xa082 }, { 2825, 0x2000 }, { 2826, 0x0002 },
+  { 2827, 0x0280 }, { 2829, 0x8800 }, { 2831, 0x0000 }, { 2831, 0x6516 },
+  { 2838, 0x0105 }, { 2841, 0x0004 }, { 2842, 0x4041 }, { 2845, 0x0024 },
+  /* 0x9800 */
+  { 2847, 0x0000 }, { 2847, 0x8030 }, { 2850, 0x4008 }, { 2852, 0x0018 },
+  { 2854, 0x0880 }, { 2856, 0x0000 }, { 2856, 0x1040 }, { 2858, 0x0020 },
+  { 2859, 0x0000 }, { 2859, 0x0000 }, { 2859, 0x0000 }, { 2859, 0x0290 },
+  { 2862, 0x4588 }, { 2867, 0x5000 }, { 2869, 0x1043 }, { 2873, 0x0022 },
+  /* 0x9900 */
+  { 2875, 0x4000 }, { 2876, 0x1200 }, { 2878, 0x0000 }, { 2878, 0x0b80 },
+  { 2882, 0x2405 }, { 2886, 0x2000 }, { 2887, 0x000c }, { 2889, 0x0000 },
+  { 2889, 0x0000 }, { 2889, 0x0800 }, { 2890, 0x0410 }, { 2892, 0x1100 },
+  { 2894, 0x0030 }, { 2896, 0x0400 }, { 2897, 0x0042 }, { 2899, 0x0020 },
+  /* 0x9a00 */
+  { 2900, 0x1000 }, { 2901, 0x8001 }, { 2903, 0x8042 }, { 2906, 0x1800 },
+  { 2908, 0x0000 }, { 2908, 0x1100 }, { 2910, 0x1008 }, { 2912, 0x0000 },
+  { 2912, 0x8000 }, { 2913, 0x0000 }, { 2913, 0x0000 }, { 2913, 0x2444 },
+  { 2917, 0x0000 }, { 2917, 0x0080 }, { 2918, 0x0005 }, { 2920, 0x8010 },
+  /* 0x9b00 */
+  { 2922, 0x8204 }, { 2925, 0x0010 }, { 2926, 0x2400 }, { 2928, 0x0210 },
+  { 2930, 0x0001 }, { 2931, 0x0001 }, { 2932, 0x0200 }, { 2933, 0x8000 },
+  { 2934, 0xe80a }, { 2940, 0xa080 }, { 2943, 0x0000 }, { 2943, 0x0001 },
+  { 2944, 0x8000 }, { 2945, 0x2000 }, { 2946, 0x2200 }, { 2948, 0x8012 },
+  /* 0x9c00 */
+  { 2951, 0x1404 }, { 2954, 0x8821 }, { 2958, 0x8041 }, { 2961, 0x0420 },
+  { 2963, 0x8020 }, { 2965, 0x2008 }, { 2967, 0x0000 }, { 2967, 0x1804 },
+  { 2970, 0x0000 }, { 2970, 0x0000 }, { 2970, 0x0000 }, { 2970, 0x0000 },
+  { 2970, 0x0000 }, { 2970, 0x0000 }, { 2970, 0x0000 }, { 2970, 0x0000 },
+  /* 0x9d00 */
+  { 2970, 0x1004 }, { 2972, 0x0040 }, { 2973, 0x0002 }, { 2974, 0x0210 },
+  { 2976, 0x4210 }, { 2979, 0x4001 }, { 2981, 0x6000 }, { 2983, 0x5000 },
+  { 2985, 0x0008 }, { 2986, 0x0008 }, { 2987, 0x0820 }, { 2989, 0x2000 },
+  { 2990, 0x0211 }, { 2993, 0x0010 }, { 2994, 0x0000 }, { 2994, 0x1000 },
+  /* 0x9e00 */
+  { 2995, 0x5400 }, { 2998, 0x9100 }, { 3001, 0x0000 }, { 3001, 0x0000 },
+  { 3001, 0x0000 }, { 3001, 0x0000 }, { 3001, 0x0000 }, { 3001, 0x0800 },
+  { 3002, 0x0032 }, { 3005, 0x4161 }, { 3010, 0x9d44 }, { 3017, 0xa002 },
+  { 3020, 0x00d2 }, { 3024, 0x0000 }, { 3024, 0x0004 }, { 3025, 0x4102 },
+  /* 0x9f00 */
+  { 3028, 0x0104 }, { 3030, 0x0080 }, { 3031, 0x00c0 }, { 3033, 0x0200 },
+  { 3034, 0x0030 }, { 3036, 0x0409 }, { 3039, 0x0204 }, { 3041, 0x8000 },
+  { 3042, 0x4000 }, { 3043, 0x9200 }, { 3046, 0x0020 },
+};
+static const Summary16 hkscs_uni2indx_pagee0[236] = {
+  /* 0xe000 */
+  { 3047, 0x560d }, { 3054, 0x7d7c }, { 3065, 0x602d }, { 3071, 0x19fd },
+  { 3081, 0x1020 }, { 3083, 0x9400 }, { 3086, 0x1053 }, { 3091, 0x2132 },
+  { 3096, 0x1680 }, { 3100, 0x7618 }, { 3107, 0x4ac0 }, { 3112, 0x5400 },
+  { 3115, 0x05a8 }, { 3120, 0x9031 }, { 3125, 0x5bbc }, { 3135, 0x2b04 },
+  /* 0xe100 */
+  { 3140, 0x0e48 }, { 3145, 0x3031 }, { 3150, 0x01c2 }, { 3154, 0x0243 },
+  { 3158, 0x25a6 }, { 3165, 0x26f1 }, { 3173, 0x0704 }, { 3177, 0x9b26 },
+  { 3185, 0x8aa1 }, { 3191, 0x8069 }, { 3196, 0x4451 }, { 3201, 0xf95b },
+  { 3212, 0x3132 }, { 3218, 0x24b0 }, { 3223, 0x8844 }, { 3227, 0x4485 },
+  /* 0xe200 */
+  { 3232, 0x1ca7 }, { 3240, 0x9a7d }, { 3250, 0x85c3 }, { 3257, 0x688a },
+  { 3263, 0xfd20 }, { 3271, 0x001e }, { 3275, 0xe902 }, { 3281, 0x2402 },
+  { 3284, 0x0b04 }, { 3288, 0x8e73 }, { 3297, 0x0052 }, { 3300, 0xc5bc },
+  { 3309, 0x0282 }, { 3312, 0x4310 }, { 3316, 0x3a87 }, { 3324, 0x9103 },
+  /* 0xe300 */
+  { 3329, 0x9143 }, { 3335, 0x992a }, { 3342, 0x1020 }, { 3344, 0x2863 },
+  { 3350, 0x0124 }, { 3353, 0x1814 }, { 3357, 0x8035 }, { 3362, 0x0ab4 },
+  { 3368, 0x2746 }, { 3375, 0xcd5a }, { 3384, 0x13e5 }, { 3392, 0x3e36 },
+  { 3401, 0xb108 }, { 3406, 0x0720 }, { 3410, 0x608a }, { 3415, 0xa51d },
+  /* 0xe400 */
+  { 3423, 0x0e00 }, { 3426, 0x6810 }, { 3430, 0x3168 }, { 3436, 0x5c44 },
+  { 3442, 0x7113 }, { 3449, 0x6603 }, { 3455, 0xd7ae }, { 3466, 0xc056 },
+  { 3472, 0x67d0 }, { 3480, 0x00e6 }, { 3485, 0x881e }, { 3491, 0x07f8 },
+  { 3499, 0x6242 }, { 3504, 0x3240 }, { 3508, 0xc1d0 }, { 3514, 0x8340 },
+  /* 0xe500 */
+  { 3518, 0xa426 }, { 3524, 0xf454 }, { 3532, 0xdf13 }, { 3542, 0x4080 },
+  { 3544, 0x0808 }, { 3546, 0xdbb0 }, { 3555, 0x60c4 }, { 3560, 0x76ed },
+  { 3571, 0xf97d }, { 3583, 0xe41d }, { 3591, 0x85d3 }, { 3599, 0xcda6 },
+  { 3608, 0x0305 }, { 3612, 0x9b80 }, { 3618, 0xc26e }, { 3626, 0x180b },
+  /* 0xe600 */
+  { 3631, 0x8015 }, { 3635, 0x1e07 }, { 3642, 0x089a }, { 3647, 0x959c },
+  { 3655, 0xc967 }, { 3664, 0xe3bc }, { 3674, 0xc5ed }, { 3684, 0xbbc2 },
+  { 3693, 0xddf9 }, { 3705, 0xd6c5 }, { 3714, 0x3046 }, { 3719, 0x6604 },
+  { 3724, 0x04a3 }, { 3729, 0xed86 }, { 3738, 0x4073 }, { 3744, 0x9c8c },
+  /* 0xe700 */
+  { 3751, 0x16c6 }, { 3758, 0x2d8b }, { 3766, 0x8830 }, { 3770, 0x30f8 },
+  { 3777, 0xe097 }, { 3785, 0xb806 }, { 3791, 0x73b6 }, { 3801, 0x35a1 },
+  { 3808, 0x2a50 }, { 3813, 0x02d5 }, { 3819, 0x03f4 }, { 3826, 0x1112 },
+  { 3830, 0x4410 }, { 3833, 0x3502 }, { 3838, 0xeb90 }, { 3846, 0x990e },
+  /* 0xe800 */
+  { 3853, 0xd107 }, { 3860, 0x05ca }, { 3866, 0xa182 }, { 3871, 0x0da0 },
+  { 3876, 0x6806 }, { 3881, 0x39e2 }, { 3889, 0x16e7 }, { 3898, 0xe102 },
+  { 3903, 0x8080 }, { 3905, 0x2436 }, { 3911, 0xf6fb }, { 3924, 0xe161 },
+  { 3931, 0x68af }, { 3940, 0xa76b }, { 3950, 0x2763 }, { 3958, 0x4826 },
+  /* 0xe900 */
+  { 3963, 0x1189 }, { 3968, 0xd180 }, { 3973, 0xdfe7 }, { 3986, 0x7578 },
+  { 3995, 0x2132 }, { 4000, 0x75bd }, { 4011, 0xc193 }, { 4018, 0x2db8 },
+  { 4026, 0x4486 }, { 4031, 0x0002 }, { 4032, 0x0000 }, { 4032, 0x0001 },
+  { 4033, 0x0800 }, { 4034, 0x0000 }, { 4034, 0x8000 }, { 4035, 0x0000 },
+  /* 0xea00 */
+  { 4035, 0x0000 }, { 4035, 0x0000 }, { 4035, 0x0000 }, { 4035, 0x0000 },
+  { 4035, 0x0008 }, { 4036, 0x0000 }, { 4036, 0x0000 }, { 4036, 0x0000 },
+  { 4036, 0x0000 }, { 4036, 0x0000 }, { 4036, 0x0200 }, { 4037, 0x8000 },
+  { 4038, 0x9e23 }, { 4046, 0xd7db }, { 4058, 0x5f8f }, { 4069, 0xcf77 },
+  /* 0xeb00 */
+  { 4081, 0xff3d }, { 4094, 0xbf26 }, { 4104, 0xf4ab }, { 4114, 0xe3ff },
+  { 4127, 0xfc5a }, { 4137, 0xaff9 }, { 4149, 0xabae }, { 4159, 0xc5db },
+  { 4169, 0xf73b }, { 4181, 0x8fa9 }, { 4190, 0xed6d }, { 4201, 0xb25d },
+  { 4210, 0x75e4 }, { 4219, 0xada9 }, { 4228, 0xdb92 }, { 4237, 0x6e66 },
+  /* 0xec00 */
+  { 4246, 0xd360 }, { 4253, 0x3f99 }, { 4263, 0xfc55 }, { 4273, 0x98a6 },
+  { 4280, 0x9bff }, { 4293, 0xb5d4 }, { 4302, 0xff8d }, { 4314, 0x4a6f },
+  { 4323, 0x6051 }, { 4328, 0x6f7e }, { 4340, 0xa999 }, { 4348, 0x0e50 },
+  { 4353, 0x8000 }, { 4354, 0xd810 }, { 4359, 0x0023 }, { 4362, 0x1025 },
+  /* 0xed00 */
+  { 4366, 0xf490 }, { 4373, 0x75eb }, { 4384, 0x36f4 }, { 4393, 0x2800 },
+  { 4395, 0xeca6 }, { 4404, 0x819e }, { 4411, 0x0804 }, { 4413, 0x05a6 },
+  { 4419, 0x4f72 }, { 4428, 0x0002 }, { 4429, 0x0040 }, { 4430, 0x0000 },
+  { 4430, 0x8040 }, { 4432, 0x2c82 }, { 4437, 0x2002 }, { 4439, 0x0000 },
+  /* 0xee00 */
+  { 4439, 0x0100 }, { 4440, 0x0822 }, { 4443, 0x0405 }, { 4446, 0x0013 },
+  { 4449, 0x0100 }, { 4450, 0x2840 }, { 4453, 0x0411 }, { 4456, 0x5040 },
+  { 4459, 0x0000 }, { 4459, 0x1002 }, { 4461, 0xf7fe }, { 4475, 0x0093 },
+};
+static const Summary16 hkscs_uni2indx_pagef3[79] = {
+  /* 0xf300 */
+  { 4479, 0xfff8 }, { 4492, 0x01ff }, { 4501, 0x00a0 }, { 4503, 0x0000 },
+  { 4503, 0x0c50 }, { 4507, 0x0000 }, { 4507, 0x0000 }, { 4507, 0x0000 },
+  { 4507, 0x0000 }, { 4507, 0x0000 }, { 4507, 0x1003 }, { 4510, 0x0000 },
+  { 4510, 0x0000 }, { 4510, 0x0000 }, { 4510, 0x0000 }, { 4510, 0x1601 },
+  /* 0xf400 */
+  { 4514, 0x0f00 }, { 4518, 0x0000 }, { 4518, 0x0000 }, { 4518, 0x2000 },
+  { 4519, 0x2b57 }, { 4528, 0xfcf7 }, { 4541, 0xf26e }, { 4551, 0x7b90 },
+  { 4559, 0xe93b }, { 4569, 0x4983 }, { 4575, 0xa6f0 }, { 4583, 0xfc9d },
+  { 4594, 0xf7bb }, { 4607, 0xfebe }, { 4620, 0x83fd }, { 4630, 0xd10c },
+  /* 0xf500 */
+  { 4636, 0xffab }, { 4649, 0xbf7b }, { 4662, 0x047f }, { 4670, 0x2c18 },
+  { 4675, 0x4000 }, { 4676, 0x4648 }, { 4681, 0x0820 }, { 4683, 0x0004 },
+  { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 },
+  { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 },
+  /* 0xf600 */
+  { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 },
+  { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 }, { 4684, 0x0000 },
+  { 4684, 0x0000 }, { 4684, 0x4010 }, { 4686, 0x2000 }, { 4687, 0x0001 },
+  { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 },
+  /* 0xf700 */
+  { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 },
+  { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 },
+  { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x0000 },
+  { 4688, 0x0000 }, { 4688, 0x0000 }, { 4688, 0x6d60 },
+};
+static const Summary16 hkscs_uni2indx_pageff[15] = {
+  /* 0xff00 */
+  { 4695, 0x0084 }, { 4697, 0x0000 }, { 4697, 0x0000 }, { 4697, 0x2800 },
+  { 4699, 0x0000 }, { 4699, 0x0000 }, { 4699, 0x0000 }, { 4699, 0x0000 },
+  { 4699, 0x0000 }, { 4699, 0x0000 }, { 4699, 0x0000 }, { 4699, 0x0000 },
+  { 4699, 0x0000 }, { 4699, 0x0000 }, { 4699, 0x2014 },
+};
+
+static int
+hkscs_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+  if (n >= 2) {
+    const Summary16 *summary = NULL;
+    if (wc >= 0x0000 && wc < 0x02d0)
+      summary = &hkscs_uni2indx_page00[(wc>>4)];
+    else if (wc >= 0x0400 && wc < 0x0460)
+      summary = &hkscs_uni2indx_page04[(wc>>4)-0x040];
+    else if (wc >= 0x1e00 && wc < 0x1ed0)
+      summary = &hkscs_uni2indx_page1e[(wc>>4)-0x1e0];
+    else if (wc >= 0x2100 && wc < 0x21f0)
+      summary = &hkscs_uni2indx_page21[(wc>>4)-0x210];
+    else if (wc >= 0x2400 && wc < 0x2580)
+      summary = &hkscs_uni2indx_page24[(wc>>4)-0x240];
+    else if (wc >= 0x2700 && wc < 0x2740)
+      summary = &hkscs_uni2indx_page27[(wc>>4)-0x270];
+    else if (wc >= 0x2e00 && wc < 0x3100)
+      summary = &hkscs_uni2indx_page2e[(wc>>4)-0x2e0];
+    else if (wc >= 0x3200 && wc < 0x3240)
+      summary = &hkscs_uni2indx_page32[(wc>>4)-0x320];
+    else if (wc >= 0x3400 && wc < 0x9fb0)
+      summary = &hkscs_uni2indx_page34[(wc>>4)-0x340];
+    else if (wc >= 0xe000 && wc < 0xeec0)
+      summary = &hkscs_uni2indx_pagee0[(wc>>4)-0xe00];
+    else if (wc >= 0xf300 && wc < 0xf7f0)
+      summary = &hkscs_uni2indx_pagef3[(wc>>4)-0xf30];
+    else if (wc >= 0xff00 && wc < 0xfff0)
+      summary = &hkscs_uni2indx_pageff[(wc>>4)-0xff0];
+    if (summary) {
+      unsigned short used = summary->used;
+      unsigned int i = wc & 0x0f;
+      if (used & ((unsigned short) 1 << i)) {
+        unsigned short c;
+        /* Keep in `used' only the bits 0..i-1. */
+        used &= ((unsigned short) 1 << i) - 1;
+        /* Add `summary->indx' and the number of bits set in `used'. */
+        used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+        used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+        used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+        used = (used & 0x00ff) + (used >> 8);
+        c = hkscs_2charset[summary->indx + used];
+        r[0] = (c >> 8); r[1] = (c & 0xff);
+        return 2;
+      }
+    }
+    return RET_ILSEQ;
+  }
+  return RET_TOOSMALL;
+}
index 5e8c2124c8253386d99d3b235d3924120a8c0a32..b05eb234a0c4d4afadf2973630e1c33defa81b87 100644 (file)
@@ -25,17 +25,17 @@ static const unsigned short hp_roman8_2uni[96] = {
 };
 
 static int
-hp_roman8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+hp_roman8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = hp_roman8_2uni[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -73,7 +73,7 @@ static const unsigned char hp_roman8_page02[32] = {
 };
 
 static int
-hp_roman8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+hp_roman8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index bc95ef4afa123791e57b2a15be45daa5e2846a26..12aabf6162026756d45e145851b1e35b0f4d196a 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 static int
-hz_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+hz_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   unsigned int count = 0;
@@ -23,7 +23,7 @@ hz_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
       c = s[1];
       if (state == 0) {
         if (c == '~') {
-          *pwc = (wchar_t) '~';
+          *pwc = (ucs4_t) '~';
           conv->istate = state;
           return count+2;
         }
@@ -54,7 +54,7 @@ hz_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
     break;
   }
   if (state == 0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     conv->istate = state;
     return count+1;
   } else {
@@ -75,7 +75,7 @@ none:
 }
 
 static int
-hz_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+hz_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   unsigned char buf[2];
index 9f1834e49b06aee95ac4c2048249deefe422ea80..2402d27e5f8930f6504ee4ed4b7e69ece4b1f71c 100644 (file)
@@ -21,7 +21,8 @@
 #ifndef _LIBICONV_H
 #define _LIBICONV_H
 
-#define _LIBICONV_VERSION 0x0103    /* version number: (major<<8) + minor */
+#define _LIBICONV_VERSION 0x0105    /* version number: (major<<8) + minor */
+extern int _libiconv_version;       /* Likewise */
 
 /* We would like to #include any system header file which could define
    iconv_t, 1. in order to eliminate the risk that the user gets compilation
index 407e53895aa26fce5e860b258f8d9c494ba81f4d..28586e3be598f79372d071507070cd8340d178e2 100644 (file)
@@ -32,7 +32,7 @@
   state = (state3 << 16) | (state2 << 8) | state1
 
 static int
-iso2022_cn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso2022_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   SPLIT_STATE;
@@ -155,7 +155,7 @@ none:
 }
 
 static int
-iso2022_cn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso2022_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   SPLIT_STATE;
index 5318d77b8fd11dac9de2d14844e702f8339b6e70..7b7fa5f3a6a6f34404fb86814176c3fbf7dbaa92 100644 (file)
@@ -42,7 +42,7 @@
   state = (state4 << 24) | (state3 << 16) | (state2 << 8) | state1
 
 static int
-iso2022_cn_ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso2022_cn_ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   SPLIT_STATE;
@@ -253,7 +253,7 @@ none:
 }
 
 static int
-iso2022_cn_ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso2022_cn_ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   SPLIT_STATE;
index ee2426d7e0021f716fac830fb936aad95f1fd1fe..c75252e5a53608aa12b86590f735dbb986058602 100644 (file)
@@ -15,7 +15,7 @@
 #define STATE_JISX0208       2
 
 static int
-iso2022_jp_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso2022_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   int count = 0;
@@ -99,7 +99,7 @@ none:
 }
 
 static int
-iso2022_jp_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso2022_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   unsigned char buf[2];
index e69e4c5e2818409b0c18483c799cd07511bd4e6c..a0494c17216b4b484bc99245f3bac3a075122152 100644 (file)
@@ -16,7 +16,7 @@
 #define STATE_JISX0212       3
 
 static int
-iso2022_jp1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso2022_jp1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   int count = 0;
@@ -123,7 +123,7 @@ none:
 }
 
 static int
-iso2022_jp1_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso2022_jp1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   unsigned char buf[2];
index 8983dc5e5758ef28e56dfa62431fe2a5292100ac..ec5251eb710107e0dc2ba7cc492ba807ee06e58b 100644 (file)
@@ -32,7 +32,7 @@
   state = (state2 << 8) | state1
 
 static int
-iso2022_jp2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso2022_jp2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   SPLIT_STATE;
@@ -259,7 +259,7 @@ none:
 }
 
 static int
-iso2022_jp2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso2022_jp2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   SPLIT_STATE;
index d5a74276bacead3a9d9811ff8cb53ae732e36d16..ef5bd1fd7611d518e6686cabce470c5460999765 100644 (file)
@@ -31,7 +31,7 @@
   state = (state2 << 8) | state1
 
 static int
-iso2022_kr_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso2022_kr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   SPLIT_STATE;
@@ -113,7 +113,7 @@ none:
 }
 
 static int
-iso2022_kr_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso2022_kr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   state_t state = conv->ostate;
   SPLIT_STATE;
index 80d0a65d692a64b63975339d1cf035b194acede5..ef7ddc06b3359c0544902fde8350de96985ac0ba 100644 (file)
@@ -5,23 +5,23 @@
  */
 
 static int
-iso646_cn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso646_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
     if (c == 0x24)
-      *pwc = (wchar_t) 0x00a5;
+      *pwc = (ucs4_t) 0x00a5;
     else if (c == 0x7e)
-      *pwc = (wchar_t) 0x203e;
+      *pwc = (ucs4_t) 0x203e;
     else
-      *pwc = (wchar_t) c;
+      *pwc = (ucs4_t) c;
     return 1;
   }
   return RET_ILSEQ;
 }
 
 static int
-iso646_cn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso646_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x0080 && !(wc == 0x0024 || wc == 0x007e)) {
     *r = wc;
index aceed91a0a3f11db701821c7f8f70ec81144f799..38de442a97ff2a55577231f59609aeaa60d72010 100644 (file)
@@ -7,23 +7,23 @@
 /* This is the lower half of JIS_X0201. */
 
 static int
-iso646_jp_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso646_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
     if (c == 0x5c)
-      *pwc = (wchar_t) 0x00a5;
+      *pwc = (ucs4_t) 0x00a5;
     else if (c == 0x7e)
-      *pwc = (wchar_t) 0x203e;
+      *pwc = (ucs4_t) 0x203e;
     else
-      *pwc = (wchar_t) c;
+      *pwc = (ucs4_t) c;
     return 1;
   }
   return RET_ILSEQ;
 }
 
 static int
-iso646_jp_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso646_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) {
     *r = wc;
index fb64e2e2dce58c754619cb1eab007ce758b15dfb..fc302bb44851656a0b9999a288b95cbac5a9054b 100644 (file)
@@ -4,15 +4,15 @@
  */
 
 static int
-iso8859_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
-  *pwc = (wchar_t) c;
+  *pwc = (ucs4_t) c;
   return 1;
 }
 
 static int
-iso8859_1_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x0100) {
     *r = wc;
index a727a2f99850afa6776998d92ff4176f8b223187..508db57586caccf35aa73dea14d8ac04c6552b25 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_10_2uni[96] = {
 };
 
 static int
-iso8859_10_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_10_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) iso8859_10_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_10_2uni[c-0xa0];
   return 1;
 }
 
@@ -68,7 +68,7 @@ static const unsigned char iso8859_10_page00[224] = {
 };
 
 static int
-iso8859_10_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_10_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index fae2770c8b6c818c80e3344bbb0d6f59c20c4ec3..c041b154ab08f4c2b4fda399439408f5a4962118 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_13_2uni[96] = {
 };
 
 static int
-iso8859_13_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_13_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) iso8859_13_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_13_2uni[c-0xa0];
   return 1;
 }
 
@@ -71,7 +71,7 @@ static const unsigned char iso8859_13_page20[8] = {
 };
 
 static int
-iso8859_13_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_13_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 2fea4431f9fa7f8354abfaf66e20ec77690fa733..f0158149222a85021585dbbfd7b372a45331ba6d 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_14_2uni[96] = {
 };
 
 static int
-iso8859_14_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_14_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0xa0)
-    *pwc = (wchar_t) iso8859_14_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_14_2uni[c-0xa0];
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -83,7 +83,7 @@ static const unsigned char iso8859_14_page1e_1[8] = {
 };
 
 static int
-iso8859_14_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_14_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 3801fc12fd564c8fc46f334d3129b0782ce4eb12..631d9b5e263444896f051bdd09124f4aabb14954 100644 (file)
@@ -13,13 +13,13 @@ static const unsigned short iso8859_15_2uni[32] = {
 };
 
 static int
-iso8859_15_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_15_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0xa0 && c < 0xc0)
-    *pwc = (wchar_t) iso8859_15_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_15_2uni[c-0xa0];
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -39,7 +39,7 @@ static const unsigned char iso8859_15_page01[48] = {
 };
 
 static int
-iso8859_15_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_15_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 3dbf3648be85fe4f890d4449b659f209cf3f8a4a..94f8377e6432826ed4aa0fa83a3da7e4484e50ed 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_16_2uni[96] = {
 };
 
 static int
-iso8859_16_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) iso8859_16_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_16_2uni[c-0xa0];
   return 1;
 }
 
@@ -74,7 +74,7 @@ static const unsigned char iso8859_16_page20[8] = {
 };
 
 static int
-iso8859_16_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 2309854be24f7a70cebbc437f8f9a0cc8546a8a5..a63d00424aa115af32762fd5bbfe022b58f01ecf 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_2_2uni[96] = {
 };
 
 static int
-iso8859_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) iso8859_2_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_2_2uni[c-0xa0];
   return 1;
 }
 
@@ -74,7 +74,7 @@ static const unsigned char iso8859_2_page02[32] = {
 };
 
 static int
-iso8859_2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index dd49928e7dcab9e0b91ddd4fe2a0b91f03d8eb2c..2282f19cfe522a84ad7720ad67946a2b570f520e 100644 (file)
@@ -25,17 +25,17 @@ static const unsigned short iso8859_3_2uni[96] = {
 };
 
 static int
-iso8859_3_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = iso8859_3_2uni[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -78,7 +78,7 @@ static const unsigned char iso8859_3_page02[8] = {
 };
 
 static int
-iso8859_3_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_3_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 8afd809c0bf39fbd6f259ed9c6b7e359cf4f3929..878a7e44a4d9645f5ae591e522813540cc3185f1 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_4_2uni[96] = {
 };
 
 static int
-iso8859_4_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) iso8859_4_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_4_2uni[c-0xa0];
   return 1;
 }
 
@@ -74,7 +74,7 @@ static const unsigned char iso8859_4_page02[32] = {
 };
 
 static int
-iso8859_4_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index de105458dcb094e13483f5b93d79b6c39c513756..cdd6c45db809af3fa5caa108234f8d9092d49732 100644 (file)
@@ -25,13 +25,13 @@ static const unsigned short iso8859_5_2uni[96] = {
 };
 
 static int
-iso8859_5_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) iso8859_5_2uni[c-0xa0];
+    *pwc = (ucs4_t) iso8859_5_2uni[c-0xa0];
   return 1;
 }
 
@@ -55,7 +55,7 @@ static const unsigned char iso8859_5_page04[96] = {
 };
 
 static int
-iso8859_5_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 28761f97103bc7e39a7a89f44493a1e74b104337..4c80a64f53855bd90187a628717171cf02c7c25e 100644 (file)
@@ -25,17 +25,17 @@ static const unsigned short iso8859_6_2uni[96] = {
 };
 
 static int
-iso8859_6_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = iso8859_6_2uni[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -60,7 +60,7 @@ static const unsigned char iso8859_6_page06[80] = {
 };
 
 static int
-iso8859_6_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_6_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index ae3233e7fc0a9343933a40a9c26461aa9f62a186..9b500e4b319f04a8212efe346cd0399c9f4a0508 100644 (file)
@@ -25,17 +25,17 @@ static const unsigned short iso8859_7_2uni[96] = {
 };
 
 static int
-iso8859_7_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = iso8859_7_2uni[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -66,7 +66,7 @@ static const unsigned char iso8859_7_page20[16] = {
 };
 
 static int
-iso8859_7_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_7_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 79569be1a4c3fa2ecc89ab307fe8efb936626d68..152dc3cae1ed4f18b59d7d357aac803842f83278 100644 (file)
@@ -25,18 +25,18 @@ static const unsigned short iso8859_8_2uni[96] = {
 };
 
 static int
-iso8859_8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0xa0) {
     unsigned short wc = iso8859_8_2uni[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
   else {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   return RET_ILSEQ;
@@ -67,7 +67,7 @@ static const unsigned char iso8859_8_page20[16] = {
 };
 
 static int
-iso8859_8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 8ca9979188cb415034f4800a7d7538cde1edef55..b94ac9de6d3fe288f46ac928c9c9960cacf39182 100644 (file)
@@ -16,13 +16,13 @@ static const unsigned short iso8859_9_2uni[48] = {
 };
 
 static int
-iso8859_9_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+iso8859_9_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0xd0)
-    *pwc = (wchar_t) iso8859_9_2uni[c-0xd0];
+    *pwc = (ucs4_t) iso8859_9_2uni[c-0xd0];
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -47,7 +47,7 @@ static const unsigned char iso8859_9_page01[72] = {
 };
 
 static int
-iso8859_9_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+iso8859_9_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00d0) {
index 40a3d42d8d90ee43fc8f11ab31724245c14ddda8..42f35f4b3dc664d90e16910b36ff253e61e93cb7 100644 (file)
@@ -61,7 +61,7 @@
 #include "isoir165ext.h"
 
 static int
-isoir165_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+isoir165_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   int ret;
 
@@ -102,7 +102,7 @@ isoir165_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-isoir165_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+isoir165_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[1];
   int ret;
index e3bb1b598f6b425e49411a2aad885ba717d1a7c8..06ed8b462545f5ebb1b2039d1b895bcd937eb940 100644 (file)
@@ -139,7 +139,7 @@ static const unsigned short isoir165ext_2uni_page7a[470] = {
 };
 
 static int
-isoir165ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+isoir165ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x2b && c1 <= 0x2f) || (c1 >= 0x7a && c1 <= 0x7e)) {
@@ -156,7 +156,7 @@ isoir165ext_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = isoir165ext_2uni_page7a[i-8366];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -734,7 +734,7 @@ static const Summary16 isoir165ext_uni2indx_pageff[5] = {
 };
 
 static int
-isoir165ext_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+isoir165ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 081d9b5fb634476a7e5db71ea456a84e83ad91f8..dc8cda1ad3d860f4a583734a8f0f8d21bca4a733 100644 (file)
@@ -4,10 +4,10 @@
  */
 
 static int
-java_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+java_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c;
-  wchar_t wc;
+  ucs4_t wc;
   int i;
 
   c = s[0];
@@ -32,7 +32,7 @@ java_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
       c -= 'a'-10;
     else
       goto simply_backslash;
-    wc |= (wchar_t) c << (4 * (5-i));
+    wc |= (ucs4_t) c << (4 * (5-i));
   }
   *pwc = wc;
   return 6;
@@ -42,7 +42,7 @@ simply_backslash:
 }
 
 static int
-java_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+java_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x80) {
     *r = wc;
index 5bde56fa5d3920022a29a95f7df512df27a48eec..e4af9666f773da09a2cd356917530a8595747164 100644 (file)
@@ -4,20 +4,20 @@
  */
 
 static int
-jisx0201_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+jisx0201_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
     if (c == 0x5c)
-      *pwc = (wchar_t) 0x00a5;
+      *pwc = (ucs4_t) 0x00a5;
     else if (c == 0x7e)
-      *pwc = (wchar_t) 0x203e;
+      *pwc = (ucs4_t) 0x203e;
     else
-      *pwc = (wchar_t) c;
+      *pwc = (ucs4_t) c;
     return 1;
   } else {
     if (c >= 0xa1 && c < 0xe0) {
-      *pwc = (wchar_t) c + 0xfec0;
+      *pwc = (ucs4_t) c + 0xfec0;
       return 1;
     }
   }
@@ -25,7 +25,7 @@ jisx0201_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-jisx0201_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+jisx0201_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) {
     *r = wc;
index ff833d6ee7487b59f902dcffcee4beee5092b78e..10adf20e6422325b0cea81c306d7b2805b012daf 100644 (file)
@@ -991,7 +991,7 @@ static const unsigned short jisx0208_2uni_page30[6398] = {
 };
 
 static int
-jisx0208_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+jisx0208_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x21 && c1 <= 0x28) || (c1 >= 0x30 && c1 <= 0x74)) {
@@ -1008,7 +1008,7 @@ jisx0208_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = jisx0208_2uni_page30[i-1410];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -2355,7 +2355,7 @@ static const Summary16 jisx0208_uni2indx_pageff[15] = {
 };
 
 static int
-jisx0208_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+jisx0208_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 6ba69459eaba877ff415f41dba97c31253d64237..f31c55ca151629c0563bd00c823aca66a109cd71 100644 (file)
@@ -892,7 +892,7 @@ static const unsigned short jisx0212_2uni_page30[5801] = {
 };
 
 static int
-jisx0212_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+jisx0212_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 == 0x22) || (c1 >= 0x26 && c1 <= 0x27) || (c1 >= 0x29 && c1 <= 0x2b) || (c1 >= 0x30 && c1 <= 0x6d)) {
@@ -915,7 +915,7 @@ jisx0212_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = jisx0212_2uni_page30[i-1410];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -2130,7 +2130,7 @@ static const Summary16 jisx0212_uni2indx_page4e[1307] = {
 };
 
 static int
-jisx0212_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+jisx0212_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
index 04891f2f6081284741210427857e431eb7ad975b..3e2eee9aa7f86edb0dc4995e80d37569e11529bf 100644 (file)
  */
 
 static int
-johab_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+johab_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
     if (c == 0x5c)
-      *pwc = (wchar_t) 0x20a9;
+      *pwc = (ucs4_t) 0x20a9;
     else
-      *pwc = (wchar_t) c;
+      *pwc = (ucs4_t) c;
     return 1;
   } else if (c < 0xd8) {
     return johab_hangul_mbtowc(conv,pwc,s,n);
@@ -66,7 +66,7 @@ johab_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-johab_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+johab_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 96b25ee7d003a14b0bad03977a45d715983feff0..b661f22ca37156262784be688c280a9fe20186de 100644 (file)
@@ -14,7 +14,7 @@
  *   bit 14..10 = initial jamo, only 19+1 out of 32 possible values are used
  *   bit 9..5 = medial jamo, only 21+1 out of 32 possible values are used
  *   bit 4..0 = final jamo, only 27+1 out of 32 possible values are used
- *
+ * 
  * Structure of the Unicode encoding:
  * grep '^0x\([8-C]...\|D[0-7]..\)' unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT
  * You see that all characters there are marked "HANGUL LETTER" or "HANGUL
@@ -83,7 +83,7 @@ static const signed char jamo_final_index[32] = {
 };
 
 static int
-johab_hangul_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+johab_hangul_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x84 && c1 <= 0xd3)) {
@@ -104,13 +104,13 @@ johab_hangul_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             if (index2 == fill) {
               unsigned char jamo3 = jamo_final_notinitial[bitspart3];
               if (jamo3 != NONE) {
-                *pwc = (wchar_t) 0x3130 + jamo3;
+                *pwc = (ucs4_t) 0x3130 + jamo3;
                 return 2;
               }
             } else if (index3 == fill) {
               unsigned char jamo2 = jamo_medial[bitspart2];
               if (jamo2 != NONE && jamo2 != FILL) {
-                *pwc = (wchar_t) 0x3130 + jamo2;
+                *pwc = (ucs4_t) 0x3130 + jamo2;
                 return 2;
               }
             }
@@ -119,7 +119,7 @@ johab_hangul_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             if (index3 == fill) {
               unsigned char jamo1 = jamo_initial[bitspart1];
               if (jamo1 != NONE && jamo1 != FILL) {
-                *pwc = (wchar_t) 0x3130 + jamo1;
+                *pwc = (ucs4_t) 0x3130 + jamo1;
                 return 2;
               }
             }
@@ -176,7 +176,7 @@ static const char jamo_final_index_inverse[28] = {
 };
 
 static int
-johab_hangul_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+johab_hangul_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     if (wc >= 0x3131 && wc < 0x3164) {
@@ -211,7 +211,7 @@ johab_hangul_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
 /* Decompose wc into r[0..2], and return the number of resulting Jamo elements.
    Return RET_ILSEQ if decomposition is not possible. */
 
-static int johab_hangul_decompose (conv_t conv, wchar_t* r, wchar_t wc)
+static int johab_hangul_decompose (conv_t conv, ucs4_t* r, ucs4_t wc)
 {
   unsigned char buf[2];
   int ret = johab_hangul_wctomb(conv,buf,wc,2);
@@ -224,7 +224,7 @@ static int johab_hangul_decompose (conv_t conv, wchar_t* r, wchar_t wc)
     if (jamo1 != NONE && jamo2 != NONE && jamo3 != NONE) {
       /* They are not all three == FILL because that would correspond to
          johab = 0x8441, which doesn't exist. */
-      wchar_t* p = r;
+      ucs4_t* p = r;
       if (jamo1 != FILL)
         *p++ = 0x3130 + jamo1;
       if (jamo2 != FILL)
index b0c802ee5883292c30c6d2886dc641f173dee90f..37ca594f61018975d083f7823951f227f6b43a7e 100644 (file)
@@ -33,13 +33,13 @@ static const unsigned short koi8_r_2uni[128] = {
 };
 
 static int
-koi8_r_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+koi8_r_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) koi8_r_2uni[c-0x80];
+    *pwc = (ucs4_t) koi8_r_2uni[c-0x80];
   return 1;
 }
 
@@ -109,7 +109,7 @@ static const unsigned char koi8_r_page25[168] = {
 };
 
 static int
-koi8_r_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+koi8_r_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index caf71b1c7b2878c0c807a299e2fc4f9adf7251d0..e399cfe50d48756d667273f94ba724d4e4fe1492 100644 (file)
@@ -31,13 +31,13 @@ static const unsigned short koi8_ru_2uni[128] = {
 };
 
 static int
-koi8_ru_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+koi8_ru_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) koi8_ru_2uni[c-0x80];
+    *pwc = (ucs4_t) koi8_ru_2uni[c-0x80];
   return 1;
 }
 
@@ -115,7 +115,7 @@ static const unsigned char koi8_ru_page25[168] = {
 };
 
 static int
-koi8_ru_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+koi8_ru_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index bc0bfd0444e3728c587071c341e4cc859653ca64..e094419bcdcecb15511519ea459a32f697f9e721 100644 (file)
@@ -33,13 +33,13 @@ static const unsigned short koi8_u_2uni[128] = {
 };
 
 static int
-koi8_u_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+koi8_u_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) koi8_u_2uni[c-0x80];
+    *pwc = (ucs4_t) koi8_u_2uni[c-0x80];
   return 1;
 }
 
@@ -117,7 +117,7 @@ static const unsigned char koi8_u_page25[168] = {
 };
 
 static int
-koi8_u_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+koi8_u_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 0e387feeac141e93291e5d9ed7e3f68b7d4866d1..33c4d865dc5ac65726a8aa261947a5751d6cbe28 100644 (file)
@@ -1167,7 +1167,7 @@ static const unsigned short ksc5601_2uni_page4a[4888] = {
 };
 
 static int
-ksc5601_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ksc5601_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x30 && c1 <= 0x48) || (c1 >= 0x4a && c1 <= 0x7d)) {
@@ -1187,7 +1187,7 @@ ksc5601_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
             wc = ksc5601_2uni_page4a[i-3854];
         }
         if (wc != 0xfffd) {
-          *pwc = (wchar_t) wc;
+          *pwc = (ucs4_t) wc;
           return 2;
         }
       }
@@ -2961,7 +2961,7 @@ static const Summary16 ksc5601_uni2indx_pageff[15] = {
 };
 
 static int
-ksc5601_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ksc5601_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     const Summary16 *summary = NULL;
diff --git a/libiconv/libcharset.h b/libiconv/libcharset.h
new file mode 100644 (file)
index 0000000..e769813
--- /dev/null
@@ -0,0 +1,41 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU CHARSET Library.
+
+   The GNU CHARSET 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 CHARSET 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 ICONV 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 _LIBCHARSET_H
+#define _LIBCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name or NULL.  */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LIBCHARSET_H */
diff --git a/libiconv/loop_unicode.h b/libiconv/loop_unicode.h
new file mode 100644 (file)
index 0000000..782c692
--- /dev/null
@@ -0,0 +1,248 @@
+/* Copyright (C) 1999-2000 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV 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 ICONV 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 ICONV 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.  */
+
+/* This file defines the conversion loop via Unicode as a pivot encoding. */
+
+static size_t unicode_loop_convert (iconv_t icd,
+                                    const char* * inbuf, size_t *inbytesleft,
+                                    char* * outbuf, size_t *outbytesleft)
+{
+  conv_t cd = (conv_t) icd;
+  size_t result = 0;
+  const unsigned char* inptr = (const unsigned char*) *inbuf;
+  size_t inleft = *inbytesleft;
+  unsigned char* outptr = (unsigned char*) *outbuf;
+  size_t outleft = *outbytesleft;
+  while (inleft > 0) {
+    ucs4_t wc;
+    int incount;
+    int outcount;
+    incount = cd->ifuncs.xxx_mbtowc(cd,&wc,inptr,inleft);
+    if (incount <= 0) {
+      if (incount == 0) {
+        /* Case 1: invalid input */
+        errno = EILSEQ;
+        result = -1;
+        break;
+      }
+      if (incount == -1) {
+        /* Case 2: not enough bytes available to detect anything */
+        errno = EINVAL;
+        result = -1;
+        break;
+      }
+      /* Case 3: k bytes read, but only a shift sequence */
+      incount = -1-incount;
+    } else {
+      /* Case 4: k bytes read, making up a wide character */
+      if (outleft == 0) {
+        errno = E2BIG;
+        result = -1;
+        break;
+      }
+      outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft);
+      if (outcount != 0)
+        goto outcount_ok;
+      /* Try transliteration. */
+      result++;
+      if (cd->transliterate) {
+        if (cd->oflags & HAVE_HANGUL_JAMO) {
+          /* Decompose Hangul into Jamo. Use double-width Jamo (contained
+             in all Korean encodings and ISO-2022-JP-2), not half-width Jamo
+             (contained in Unicode only). */
+          ucs4_t buf[3];
+          int ret = johab_hangul_decompose(cd,buf,wc);
+          if (ret != RET_ILSEQ) {
+            /* we know 1 <= ret <= 3 */
+            state_t backup_state = cd->ostate;
+            unsigned char* backup_outptr = outptr;
+            size_t backup_outleft = outleft;
+            int i, sub_outcount;
+            for (i = 0; i < ret; i++) {
+              if (outleft == 0) {
+                sub_outcount = RET_TOOSMALL;
+                goto johab_hangul_failed;
+              }
+              sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft);
+              if (sub_outcount <= 0)
+                goto johab_hangul_failed;
+              if (!(sub_outcount <= outleft)) abort();
+              outptr += sub_outcount; outleft -= sub_outcount;
+            }
+            goto char_done;
+          johab_hangul_failed:
+            cd->ostate = backup_state;
+            outptr = backup_outptr;
+            outleft = backup_outleft;
+            if (sub_outcount < 0) {
+              errno = E2BIG;
+              result = -1;
+              break;
+            }
+          }
+        }
+        {
+          /* Try to use a variant, but postfix it with
+             U+303E IDEOGRAPHIC VARIATION INDICATOR
+             (cf. Ken Lunde's "CJKV information processing", p. 188). */
+          int indx = -1;
+          if (wc == 0x3006)
+            indx = 0;
+          else if (wc == 0x30f6)
+            indx = 1;
+          else if (wc >= 0x4e00 && wc < 0xa000)
+            indx = cjk_variants_indx[wc-0x4e00];
+          if (indx >= 0) {
+            for (;; indx++) {
+              ucs4_t buf[2];
+              unsigned short variant = cjk_variants[indx];
+              unsigned short last = variant & 0x8000;
+              variant &= 0x7fff;
+              variant += 0x3000;
+              buf[0] = variant; buf[1] = 0x303e;
+              {
+                state_t backup_state = cd->ostate;
+                unsigned char* backup_outptr = outptr;
+                size_t backup_outleft = outleft;
+                int i, sub_outcount;
+                for (i = 0; i < 2; i++) {
+                  if (outleft == 0) {
+                    sub_outcount = RET_TOOSMALL;
+                    goto variant_failed;
+                  }
+                  sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft);
+                  if (sub_outcount <= 0)
+                    goto variant_failed;
+                  if (!(sub_outcount <= outleft)) abort();
+                  outptr += sub_outcount; outleft -= sub_outcount;
+                }
+                goto char_done;
+              variant_failed:
+                cd->ostate = backup_state;
+                outptr = backup_outptr;
+                outleft = backup_outleft;
+                if (sub_outcount < 0) {
+                  errno = E2BIG;
+                  result = -1;
+                  break;
+                }
+              }
+              if (last)
+                break;
+            }
+          }
+        }
+        if (wc >= 0x2018 && wc <= 0x201a) {
+          /* Special case for quotation marks 0x2018, 0x2019, 0x201a */
+          ucs4_t substitute =
+            (cd->oflags & HAVE_QUOTATION_MARKS
+             ? (wc == 0x201a ? 0x2018 : wc)
+             : (cd->oflags & HAVE_ACCENTS
+                ? (wc==0x2019 ? 0x00b4 : 0x0060) /* use accents */
+                : 0x0027 /* use apostrophe */
+            )  );
+          outcount = cd->ofuncs.xxx_wctomb(cd,outptr,substitute,outleft);
+          if (outcount != 0)
+            goto outcount_ok;
+        }
+        {
+          /* Use the transliteration table. */
+          int indx = translit_index(wc);
+          if (indx >= 0) {
+            const unsigned char * cp = &translit_data[indx];
+            unsigned int num = *cp++;
+            state_t backup_state = cd->ostate;
+            unsigned char* backup_outptr = outptr;
+            size_t backup_outleft = outleft;
+            unsigned int i;
+            int sub_outcount;
+            for (i = 0; i < num; i++) {
+              if (outleft == 0) {
+                sub_outcount = RET_TOOSMALL;
+                goto translit_failed;
+              }
+              sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,cp[i],outleft);
+              if (sub_outcount <= 0)
+                goto translit_failed;
+              if (!(sub_outcount <= outleft)) abort();
+              outptr += sub_outcount; outleft -= sub_outcount;
+            }
+            goto char_done;
+          translit_failed:
+            cd->ostate = backup_state;
+            outptr = backup_outptr;
+            outleft = backup_outleft;
+            if (sub_outcount < 0) {
+              errno = E2BIG;
+              result = -1;
+              break;
+            }
+          }
+        }
+      }
+      outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft);
+      if (outcount != 0)
+        goto outcount_ok;
+      errno = EILSEQ;
+      result = -1;
+      break;
+    outcount_ok:
+      if (outcount < 0) {
+        errno = E2BIG;
+        result = -1;
+        break;
+      }
+      if (!(outcount <= outleft)) abort();
+      outptr += outcount; outleft -= outcount;
+    char_done:
+      ;
+    }
+    if (!(incount <= inleft)) abort();
+    inptr += incount; inleft -= incount;
+  }
+  *inbuf = (const char*) inptr;
+  *inbytesleft = inleft;
+  *outbuf = (char*) outptr;
+  *outbytesleft = outleft;
+  return result;
+}
+
+static size_t unicode_loop_reset (iconv_t icd,
+                                  char* * outbuf, size_t *outbytesleft)
+{
+  conv_t cd = (conv_t) icd;
+  if (outbuf == NULL || *outbuf == NULL) {
+    /* Reset the states. */
+    memset(&cd->istate,'\0',sizeof(state_t));
+    memset(&cd->ostate,'\0',sizeof(state_t));
+    return 0;
+  } else {
+    if (cd->ofuncs.xxx_reset) {
+      int outcount =
+        cd->ofuncs.xxx_reset(cd, (unsigned char *) *outbuf, *outbytesleft);
+      if (outcount < 0) {
+        errno = E2BIG;
+        return -1;
+      }
+      *outbuf += outcount; *outbytesleft -= outcount;
+    }
+    memset(&cd->istate,'\0',sizeof(state_t));
+    memset(&cd->ostate,'\0',sizeof(state_t));
+    return 0;
+  }
+}
diff --git a/libiconv/loop_wchar.h b/libiconv/loop_wchar.h
new file mode 100644 (file)
index 0000000..7f15596
--- /dev/null
@@ -0,0 +1,259 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV 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 ICONV 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 ICONV 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.  */
+
+/* This file defines three conversion loops:
+     - from wchar_t to anything else,
+     - from anything else to wchar_t,
+     - from wchar_t to wchar_t.
+ */
+
+#if HAVE_WCRTOMB || HAVE_MBRTOWC
+#include <wchar.h>
+#define BUF_SIZE 64  /* assume MB_LEN_MAX <= 64 */
+#else
+typedef int mbstate_t;
+#endif
+
+/*
+ * The first two conversion loops have an extended conversion descriptor.
+ */
+struct wchar_conv_struct {
+  struct conv_struct parent;
+  mbstate_t state;
+};
+
+
+#if HAVE_WCRTOMB
+
+/* From wchar_t to anything else. */
+
+static size_t wchar_from_loop_convert (iconv_t icd,
+                                       const char* * inbuf, size_t *inbytesleft,
+                                       char* * outbuf, size_t *outbytesleft)
+{
+  struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd;
+  size_t result = 0;
+  while (*inbytesleft >= sizeof(wchar_t)) {
+    const wchar_t * inptr = (const wchar_t *) *inbuf;
+    size_t inleft = *inbytesleft;
+    char buf[BUF_SIZE];
+    mbstate_t state = wcd->state;
+    size_t bufcount = 0;
+    while (inleft >= sizeof(wchar_t)) {
+      /* Convert one wchar_t to multibyte representation. */
+      size_t count = wcrtomb(buf+bufcount,*inptr,&state);
+      if (count == (size_t)(-1)) {
+        /* Invalid input. */
+        errno = EILSEQ;
+        return -1;
+      }
+      inptr++;
+      inleft -= sizeof(wchar_t);
+      bufcount += count;
+      if (count == 0) {
+        /* Continue, append next wchar_t. */
+      } else {
+        /* Attempt to convert the accumulated multibyte representations
+           to the target encoding. */
+        const char* bufptr = buf;
+        size_t bufleft = bufcount;
+        char* outptr = *outbuf;
+        size_t outleft = *outbytesleft;
+        size_t res = unicode_loop_convert(&wcd->parent,
+                                          &bufptr,&bufleft,
+                                          &outptr,&outleft);
+        if (res == (size_t)(-1)) {
+          if (errno == EILSEQ)
+            /* Invalid input. */
+            return -1;
+          else if (errno == E2BIG)
+            /* Output buffer too small. */
+            return -1;
+          else if (errno == EINVAL) {
+            /* Continue, append next wchar_t, but avoid buffer overrun. */
+            if (bufcount + MB_CUR_MAX > BUF_SIZE)
+              abort();
+          } else
+            abort();
+        } else {
+          /* Successful conversion. */
+          wcd->state = state;
+          *inbuf = (const char *) inptr;
+          *inbytesleft = inleft;
+          *outbuf = outptr;
+          *outbytesleft = outleft;
+          result += res;
+          break;
+        }
+      }
+    }
+  }
+  return result;
+}
+
+static size_t wchar_from_loop_reset (iconv_t icd,
+                                     char* * outbuf, size_t *outbytesleft)
+{
+  struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd;
+  if (outbuf == NULL || *outbuf == NULL) {
+    /* Reset the states. */
+    memset(&wcd->state,'\0',sizeof(mbstate_t));
+    return unicode_loop_reset(&wcd->parent,NULL,NULL);
+  } else {
+    if (!mbsinit(&wcd->state)) {
+      mbstate_t state = wcd->state;
+      char buf[BUF_SIZE];
+      size_t bufcount = wcrtomb(buf,(wchar_t)0,&state);
+      if (bufcount == (size_t)(-1) || bufcount == 0 || buf[bufcount-1] != '\0')
+        abort();
+      else {
+        const char* bufptr = buf;
+        size_t bufleft = bufcount-1;
+        char* outptr = *outbuf;
+        size_t outleft = *outbytesleft;
+        size_t res = unicode_loop_convert(&wcd->parent,
+                                          &bufptr,&bufleft,
+                                          &outptr,&outleft);
+        if (res == (size_t)(-1)) {
+          if (errno == E2BIG)
+            return -1;
+          else
+            abort();
+        } else {
+          res = unicode_loop_reset(&wcd->parent,&outptr,&outleft);
+          if (res == (size_t)(-1))
+            return res;
+          else {
+            /* Successful. */
+            wcd->state = state;
+            *outbuf = outptr;
+            *outbytesleft = outleft;
+            return 0;
+          }
+        }
+      }
+    } else
+      return unicode_loop_reset(&wcd->parent,outbuf,outbytesleft);
+  }
+}
+
+#endif
+
+
+#if HAVE_MBRTOWC
+
+/* From anything else to wchar_t. */
+
+static size_t wchar_to_loop_convert (iconv_t icd,
+                                     const char* * inbuf, size_t *inbytesleft,
+                                     char* * outbuf, size_t *outbytesleft)
+{
+  struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd;
+  size_t result = 0;
+  while (*inbytesleft > 0) {
+    size_t try;
+    for (try = 1; try <= *inbytesleft; try++) {
+      char buf[BUF_SIZE];
+      const char* inptr = *inbuf;
+      size_t inleft = try;
+      char* bufptr = buf;
+      size_t bufleft = BUF_SIZE;
+      size_t res = unicode_loop_convert(&wcd->parent,
+                                        &inptr,&inleft,
+                                        &bufptr,&bufleft);
+      if (res == (size_t)(-1)) {
+        if (errno == EILSEQ)
+          /* Invalid input. */
+          return -1;
+        else if (errno == EINVAL) {
+          /* Incomplete input. Next try with one more input byte. */
+        } else
+          /* E2BIG shouldn't occur. */
+          abort();
+      } else {
+        /* Successful conversion. */
+        size_t bufcount = bufptr-buf; /* = BUF_SIZE-bufleft */
+        mbstate_t state = wcd->state;
+        wchar_t wc;
+        res = mbrtowc(&wc,buf,bufcount,&state);
+        if (res == (size_t)(-2)) {
+          /* Next try with one more input byte. */
+        } else if (res == (size_t)(-1)) {
+          /* Invalid input. */
+          return -1;
+        } else {
+          if (*outbytesleft < sizeof(wchar_t)) {
+            errno = E2BIG;
+            return -1;
+          }
+          *(wchar_t*) *outbuf = wc;
+          *outbuf += sizeof(wchar_t);
+          *outbytesleft -= sizeof(wchar_t);
+          *inbuf += try;
+          *inbytesleft -= try;
+          result += res;
+          break;
+        }
+      }
+    }
+  }
+  return result;
+}
+
+static size_t wchar_to_loop_reset (iconv_t icd,
+                                   char* * outbuf, size_t *outbytesleft)
+{
+  struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd;
+  size_t res = unicode_loop_reset(&wcd->parent,outbuf,outbytesleft);
+  if (res == (size_t)(-1))
+    return res;
+  memset(&wcd->state,0,sizeof(mbstate_t));
+  return 0;
+}
+
+#endif
+
+
+/* From wchar_t to wchar_t. */
+
+static size_t wchar_id_loop_convert (iconv_t icd,
+                                     const char* * inbuf, size_t *inbytesleft,
+                                     char* * outbuf, size_t *outbytesleft)
+{
+  const wchar_t* inptr = (const wchar_t*) *inbuf;
+  size_t inleft = *inbytesleft / sizeof(wchar_t);
+  wchar_t* outptr = (wchar_t*) *outbuf;
+  size_t outleft = *outbytesleft / sizeof(wchar_t);
+  size_t count = (inleft <= outleft ? inleft : outleft);
+  if (count > 0) {
+    *inbytesleft -= count * sizeof(wchar_t);
+    *outbytesleft -= count * sizeof(wchar_t);
+    do
+      *outptr++ = *inptr++;
+    while (--count > 0);
+    *inbuf = (const char*) inptr;
+    *outbuf = (char*) outptr;
+  }
+  return 0;
+}
+
+static size_t wchar_id_loop_reset (iconv_t icd,
+                                   char* * outbuf, size_t *outbytesleft)
+{
+  return 0;
+}
diff --git a/libiconv/loops.h b/libiconv/loops.h
new file mode 100644 (file)
index 0000000..6f9b535
--- /dev/null
@@ -0,0 +1,23 @@
+/* Copyright (C) 2000 Free Software Foundation, Inc.
+   This file is part of the GNU ICONV Library.
+
+   The GNU ICONV 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 ICONV 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 ICONV 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.  */
+
+/* This file defines all the loops. */
+
+#include "loop_unicode.h"
+#include "loop_wchar.h"
+
index b54c53cfe0d9f35f78297e2c93ee57fa51d513a3..1b86c5e740f1d4660db6a5a5245e10cf8530e47b 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_arabic_2uni[128] = {
 };
 
 static int
-mac_arabic_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_arabic_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_arabic_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -92,7 +92,7 @@ static const unsigned char mac_arabic_page06[208] = {
 };
 
 static int
-mac_arabic_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_arabic_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index b26353f7fb9028d1a722cdd364eca06e704d434d..56d0ce0bcab7bd9a0fb9800501839e544304a495 100644 (file)
@@ -31,13 +31,13 @@ static const unsigned short mac_centraleurope_2uni[128] = {
 };
 
 static int
-mac_centraleurope_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_centraleurope_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) mac_centraleurope_2uni[c-0x80];
+    *pwc = (ucs4_t) mac_centraleurope_2uni[c-0x80];
   return 1;
 }
 
@@ -91,7 +91,7 @@ static const unsigned char mac_centraleurope_page22_1[8] = {
 };
 
 static int
-mac_centraleurope_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_centraleurope_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 104a199df62e26cc588abd8e8c25ca4a742a1614..42acacb6210d2b37dd316f499e0fcb07cc1c4d34 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_croatian_2uni[128] = {
 };
 
 static int
-mac_croatian_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_croatian_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_croatian_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -117,7 +117,7 @@ static const unsigned char mac_croatian_page22[104] = {
 };
 
 static int
-mac_croatian_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_croatian_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 4b82275f0fcf17fbe8fed7afff8771d7d4202fda..3c8cfc4773940431ca0586d9e91b85a5498979a4 100644 (file)
@@ -31,13 +31,13 @@ static const unsigned short mac_cyrillic_2uni[128] = {
 };
 
 static int
-mac_cyrillic_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_cyrillic_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0x80)
-    *pwc = (wchar_t) mac_cyrillic_2uni[c-0x80];
+    *pwc = (ucs4_t) mac_cyrillic_2uni[c-0x80];
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -88,7 +88,7 @@ static const unsigned char mac_cyrillic_page22[104] = {
 };
 
 static int
-mac_cyrillic_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_cyrillic_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 650c51b7faa87ad3a9f77f96a68cd1164b809464..55f7f6c5ac35c1752a235f324697614179b40058 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_greek_2uni[128] = {
 };
 
 static int
-mac_greek_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_greek_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_greek_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -89,7 +89,7 @@ static const unsigned char mac_greek_page22[32] = {
 };
 
 static int
-mac_greek_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_greek_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 0b0c23e530a61f16b6d65c7a0e07f937c8c04103..c113355697639a3e482aa38003b14d9af6a0eb14 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_hebrew_2uni[128] = {
 };
 
 static int
-mac_hebrew_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_hebrew_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else if (c >= 0x80) {
     unsigned short wc = mac_hebrew_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -88,7 +88,7 @@ static const unsigned char mac_hebrew_pagefb[56] = {
 };
 
 static int
-mac_hebrew_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_hebrew_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index bd140413490dbae1853af3691ade8bc3af354fec..431b48325081e71a28240f32265dfbab7380237e 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_iceland_2uni[128] = {
 };
 
 static int
-mac_iceland_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_iceland_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_iceland_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -112,7 +112,7 @@ static const unsigned char mac_iceland_page22[104] = {
 };
 
 static int
-mac_iceland_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_iceland_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 130c4594b937c3c966be06446119f98d678bd7ea..9fe24397acaeaf7cd8790bebe0c3105ab1a53abf 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_roman_2uni[128] = {
 };
 
 static int
-mac_roman_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_roman_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_roman_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -115,7 +115,7 @@ static const unsigned char mac_roman_pagefb[8] = {
 };
 
 static int
-mac_roman_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_roman_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index d0c64f1bdd88cccddecd5150d89df9f07600ec0e..4391f1abefe141e8918a93192c09bcf24af7c900 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_romania_2uni[128] = {
 };
 
 static int
-mac_romania_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_romania_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_romania_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -117,7 +117,7 @@ static const unsigned char mac_romania_page22[104] = {
 };
 
 static int
-mac_romania_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_romania_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index ab756e00452f7edbc385c886aee1db32bde72e09..af5ae5a089882c3265ae0fa80169812936c52a21 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_thai_2uni[128] = {
 };
 
 static int
-mac_thai_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_thai_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_thai_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -82,7 +82,7 @@ static const unsigned char mac_thai_pagef8[32] = {
 };
 
 static int
-mac_thai_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_thai_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index c73503b567da71e2205dad6663ac7ab37a2bc9ef..4065a0f75d8fe373ed1c7b8c926e88543b0d5053 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short mac_turkish_2uni[128] = {
 };
 
 static int
-mac_turkish_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_turkish_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mac_turkish_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -113,7 +113,7 @@ static const unsigned char mac_turkish_page22[104] = {
 };
 
 static int
-mac_turkish_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_turkish_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 2fdf2df26171e36687017def0d59fdc4a9e938ce..411e7525f228f3f5c5f223b10d0b42b9aaf6c9a2 100644 (file)
@@ -31,13 +31,13 @@ static const unsigned short mac_ukraine_2uni[128] = {
 };
 
 static int
-mac_ukraine_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mac_ukraine_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c >= 0x80)
-    *pwc = (wchar_t) mac_ukraine_2uni[c-0x80];
+    *pwc = (ucs4_t) mac_ukraine_2uni[c-0x80];
   else
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   return 1;
 }
 
@@ -95,7 +95,7 @@ static const unsigned char mac_ukraine_page22[104] = {
 };
 
 static int
-mac_ukraine_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mac_ukraine_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
index 03e138b6a3dc15c221edf52780db84aa60ccec43..5b8245762a055fdf8d3221f2e3f0669a911ad647 100644 (file)
@@ -25,17 +25,17 @@ static const unsigned short mulelao_2uni[96] = {
 };
 
 static int
-mulelao_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+mulelao_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0xa0) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = mulelao_2uni[c-0xa0];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -58,7 +58,7 @@ static const unsigned char mulelao_page0e[96] = {
 };
 
 static int
-mulelao_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+mulelao_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x00a0) {
index 8f06ae6ef1faa6a6c08b819103b44d332ebc8db2..2936d498939d139fbc671ab25b0619555066230c 100644 (file)
@@ -31,17 +31,17 @@ static const unsigned short nextstep_2uni[128] = {
 };
 
 static int
-nextstep_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+nextstep_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else {
     unsigned short wc = nextstep_2uni[c-0x80];
     if (wc != 0xfffd) {
-      *pwc = (wchar_t) wc;
+      *pwc = (ucs4_t) wc;
       return 1;
     }
   }
@@ -97,7 +97,7 @@ static const unsigned char nextstep_pagefb[8] = {
 };
 
 static int
-nextstep_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+nextstep_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080) {
diff --git a/libiconv/ref-add.sin b/libiconv/ref-add.sin
new file mode 100644 (file)
index 0000000..167374e
--- /dev/null
@@ -0,0 +1,31 @@
+# Add this package to a list of references stored in a text file.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program 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, or (at your option)
+#   any later version.
+#
+#   This program 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 this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+#   USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+  s/# Packages using this file://
+  ta
+  :a
+  s/ @PACKAGE@ / @PACKAGE@ /
+  tb
+  s/ $/ @PACKAGE@ /
+  :b
+  s/^/# Packages using this file:/
+}
diff --git a/libiconv/ref-del.sin b/libiconv/ref-del.sin
new file mode 100644 (file)
index 0000000..613cf37
--- /dev/null
@@ -0,0 +1,26 @@
+# Remove this package from a list of references stored in a text file.
+#
+#   Copyright (C) 2000 Free Software Foundation, Inc.
+#
+#   This program 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, or (at your option)
+#   any later version.
+#
+#   This program 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 this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+#   USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+  s/# Packages using this file://
+  s/ @PACKAGE@ / /
+  s/^/# Packages using this file:/
+}
index ab8c615ddd131adee853b5c5323c54377e7623bf..6ee17f573b3880ea39e2c6b950eaceb0369f6376 100644 (file)
@@ -25,7 +25,7 @@
  */
 
 static int
-sjis_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+sjis_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80 || (c >= 0xa1 && c <= 0xdf))
@@ -61,7 +61,7 @@ sjis_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-sjis_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+sjis_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char buf[2];
   int ret;
index 32330bf3fb29376b8516bd914bb59c00e600ccf2..4662683dccddaf1ec4d2eb9a15974f9178461a37 100644 (file)
@@ -39,15 +39,15 @@ static const unsigned short tcvn_2uni_2[128] = {
 };
 
 static int
-tcvn_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+tcvn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x20)
-    *pwc = (wchar_t) tcvn_2uni_1[c];
+    *pwc = (ucs4_t) tcvn_2uni_1[c];
   else if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) tcvn_2uni_2[c-0x80];
+    *pwc = (ucs4_t) tcvn_2uni_2[c-0x80];
   return 1;
 }
 
@@ -112,7 +112,7 @@ static const unsigned char tcvn_page1e[96] = {
 };
 
 static int
-tcvn_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+tcvn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076 & (1 << wc)) == 0)) {
index 90547e328f3e82189a59f062fbf38e26080b35f7..bc7709c3fb8a1b4d59f2c10b403656d1cfd9ce8e 100644 (file)
@@ -4,22 +4,22 @@
  */
 
 static int
-tis620_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+tis620_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x80) {
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
     return 1;
   }
   else if (c >= 0xa1 && c <= 0xfb && !(c >= 0xdb && c <= 0xde)) {
-    *pwc = (wchar_t) (c + 0x0d60);
+    *pwc = (ucs4_t) (c + 0x0d60);
     return 1;
   }
   return RET_ILSEQ;
 }
 
 static int
-tis620_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+tis620_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc < 0x0080) {
     *r = wc;
index 5332a8f82334b8c2c4cef1279bb66b8371bb1d9e..b2e385dc3bb0e8283e9a460ea66390861ba7a61f 100644 (file)
@@ -6,16 +6,18 @@
    in the stream, not just at the beginning. The default is big-endian. */
 /* The state is 0 if big-endian, 1 if little-endian. */
 static int
-ucs2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   int count = 0;
   for (; n >= 2;) {
-    wchar_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]);
+    ucs4_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]);
     s += 2; n -= 2; count += 2;
     if (wc == 0xfeff) {
     } else if (wc == 0xfffe) {
       state ^= 1;
+    } else if (wc >= 0xd800 && wc < 0xe000) {
+      return RET_ILSEQ;
     } else {
       *pwc = wc;
       conv->istate = state;
@@ -31,9 +33,9 @@ ucs2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
    "ISO/IEC 10646-1:1993(E) specifies that when characters the UCS-2 form are
     serialized as octets, that the most significant octet appear first." */
 static int
-ucs2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000 && wc != 0xfffe) {
+  if (wc < 0x10000 && wc != 0xfffe && !(wc >= 0xd800 && wc < 0xe000)) {
     if (n >= 2) {
       r[0] = (unsigned char) (wc >> 8);
       r[1] = (unsigned char) wc;
index 092ab499e8f755f7eb526d9a3c1801e6e9a9a564..20a8b27bd135f342164d0b7ae870ff145c5b4f2b 100644 (file)
@@ -3,19 +3,23 @@
  */
 
 static int
-ucs2be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs2be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   if (n >= 2) {
-    *pwc = (s[0] << 8) + s[1];
-    return 2;
+    if (s[0] >= 0xd8 && s[0] < 0xe0) {
+      return RET_ILSEQ;
+    } else {
+      *pwc = (s[0] << 8) + s[1];
+      return 2;
+    }
   }
   return RET_TOOFEW(0);
 }
 
 static int
-ucs2be_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs2be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000) {
+  if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) {
     if (n >= 2) {
       r[0] = (unsigned char) (wc >> 8);
       r[1] = (unsigned char) wc;
index d89e79c072d285acf0be77d3ac242b1e6ae877c9..424b581b183f12fcd33e8ffd5fb9bae9fa39c69e 100644 (file)
@@ -3,19 +3,24 @@
  */
 
 static int
-ucs2internal_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs2internal_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   if (n >= 2) {
-    *pwc = *(unsigned short *)s;
-    return 2;
+    unsigned short x = *(const unsigned short *)s;
+    if (x >= 0xd800 && x < 0xe000) {
+      return RET_ILSEQ;
+    } else {
+      *pwc = x;
+      return 2;
+    }
   }
   return RET_TOOFEW(0);
 }
 
 static int
-ucs2internal_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs2internal_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000) {
+  if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) {
     if (n >= 2) {
       *(unsigned short *)r = wc;
       return 2;
index ba2e1199299986e456af728b288ecd9bfc9c7060..7e63feacb23ba5c34985b540ea78eb5878b78ff3 100644 (file)
@@ -3,19 +3,23 @@
  */
 
 static int
-ucs2le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs2le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   if (n >= 2) {
-    *pwc = s[0] + (s[1] << 8);
-    return 2;
+    if (s[1] >= 0xd8 && s[1] < 0xe0) {
+      return RET_ILSEQ;
+    } else {
+      *pwc = s[0] + (s[1] << 8);
+      return 2;
+    }
   }
   return RET_TOOFEW(0);
 }
 
 static int
-ucs2le_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs2le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000) {
+  if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) {
     if (n >= 2) {
       r[0] = (unsigned char) wc;
       r[1] = (unsigned char) (wc >> 8);
index b733f8f2ff6b7fa781521bf7d0f589fd3b573b52..b880a64f696e93bda6e4e25a2f5b11cc90126212 100644 (file)
@@ -3,21 +3,31 @@
  */
 
 static int
-ucs2swapped_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs2swapped_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
+  /* This function assumes that 'unsigned short' has exactly 16 bits. */
+  if (sizeof(unsigned short) != 2) abort();
+
   if (n >= 2) {
-    unsigned short x = *(unsigned short *)s;
+    unsigned short x = *(const unsigned short *)s;
     x = (x >> 8) | (x << 8);
-    *pwc = x;
-    return 2;
+    if (x >= 0xd800 && x < 0xe000) {
+      return RET_ILSEQ;
+    } else {
+      *pwc = x;
+      return 2;
+    }
   }
   return RET_TOOFEW(0);
 }
 
 static int
-ucs2swapped_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs2swapped_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000) {
+  /* This function assumes that 'unsigned short' has exactly 16 bits. */
+  if (sizeof(unsigned short) != 2) abort();
+
+  if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) {
     if (n >= 2) {
       unsigned short x = wc;
       x = (x >> 8) | (x << 8);
index f7121f7f63fd015cd8eb9a5248af4b45237479c3..707334494592a77bcaacb8fed45980f418106234 100644 (file)
@@ -6,12 +6,12 @@
    in the stream, not just at the beginning. The default is big-endian. */
 /* The state is 0 if big-endian, 1 if little-endian. */
 static int
-ucs4_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   int count = 0;
   for (; n >= 4;) {
-    wchar_t wc = (state
+    ucs4_t wc = (state
                   ? s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24)
                   : (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]);
     s += 4; n -= 4; count += 4;
@@ -31,7 +31,7 @@ ucs4_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 
 /* But we output UCS-4 in big-endian order, without byte-order mark. */
 static int
-ucs4_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (wc != 0xfffe) {
     if (n >= 4) {
index 6e85be7e8b9bb7b8b66effca19ced7f3b78471b9..f86897f1cc84f2e665ab1b1311c31b4edfb51620 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 static int
-ucs4be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs4be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   if (n >= 4) {
     *pwc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3];
@@ -13,7 +13,7 @@ ucs4be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-ucs4be_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs4be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 4) {
     r[0] = (unsigned char) (wc >> 24);
index 3b536cd70ae56a51578a8cb4fe75634fe23352ce..362adfd41494ce559f6e3e48e90242536bb71d2e 100644 (file)
@@ -3,17 +3,17 @@
  */
 
 static int
-ucs4internal_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs4internal_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   if (n >= 4) {
-    *pwc = *(unsigned int *)s;
+    *pwc = *(const unsigned int *)s;
     return 4;
   }
   return RET_TOOFEW(0);
 }
 
 static int
-ucs4internal_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs4internal_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 4) {
     *(unsigned int *)r = wc;
index 285a77ba72641f35cf91d59feaad4adfd979d5a3..b5714430a691ce7f4fb6141dd79df7ee21a1e03e 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 static int
-ucs4le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs4le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   if (n >= 4) {
     *pwc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24);
@@ -13,7 +13,7 @@ ucs4le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-ucs4le_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs4le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 4) {
     r[0] = (unsigned char) wc;
index 89f23145f462f6e53e9469645f665f8bc7b79a45..c076ecf6c56eeb0dcac576ea8c06bd833666e190 100644 (file)
@@ -3,11 +3,14 @@
  */
 
 static int
-ucs4swapped_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+ucs4swapped_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
+  /* This function assumes that 'unsigned int' has exactly 32 bits. */
+  if (sizeof(unsigned int) != 4) abort();
+
   if (n >= 4) {
-    unsigned int x = *(unsigned int *)s;
-    x = ((x & 0xffffffff) >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | ((x << 24) & 0xffffffff);
+    unsigned int x = *(const unsigned int *)s;
+    x = (x >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | (x << 24);
     *pwc = x;
     return 4;
   }
@@ -15,11 +18,14 @@ ucs4swapped_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-ucs4swapped_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+ucs4swapped_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
+  /* This function assumes that 'unsigned int' has exactly 32 bits. */
+  if (sizeof(unsigned int) != 4) abort();
+
   if (n >= 4) {
     unsigned int x = wc;
-    x = ((x & 0xffffffff) >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | ((x << 24) & 0xffffffff);
+    x = (x >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | (x << 24);
     *(unsigned int *)r = x;
     return 4;
   } else
index 296b1086c441b46bd729829c482e2d195bb38190..f85cb9f90077b11b760a71d08fde366604db83ef 100644 (file)
@@ -785,7 +785,7 @@ static const unsigned char uhc_1_2uni_page81[5696] = {
 };
 
 static int
-uhc_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+uhc_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0x81 && c1 <= 0xa0)) {
@@ -796,7 +796,7 @@ uhc_1_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
         unsigned int col = c2 - (c2 >= 0x81 ? 0x4d : c2 >= 0x61 ? 0x47 : 0x41);
         unsigned int i = 178 * row + col;
         if (i < 5696) {
-          *pwc = (wchar_t) (uhc_1_2uni_main_page81[2*row+(col>=89?1:0)] + uhc_1_2uni_page81[i]);
+          *pwc = (ucs4_t) (uhc_1_2uni_main_page81[2*row+(col>=89?1:0)] + uhc_1_2uni_page81[i]);
           return 2;
         }
       }
@@ -1678,7 +1678,7 @@ static const Summary16 uhc_1_uni2indx_pageac[459] = {
 };
 
 static int
-uhc_1_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+uhc_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     if (wc >= 0xac00 && wc < 0xc8b0) {
index 859002e41f8b4ec2f17949c9c364b2553ebf3a87..eccf9ffbc16342745c6ba52d4271388fd0aef51b 100644 (file)
@@ -467,7 +467,7 @@ static const unsigned char uhc_2_2uni_pagea1[3126] = {
 };
 
 static int
-uhc_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+uhc_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c1 = s[0];
   if ((c1 >= 0xa1 && c1 <= 0xc6)) {
@@ -478,7 +478,7 @@ uhc_2_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
         unsigned int col = c2 - (c2 >= 0x81 ? 0x4d : c2 >= 0x61 ? 0x47 : 0x41);
         unsigned int i = 84 * row + col;
         if (i < 3126) {
-          *pwc = (wchar_t) (uhc_2_2uni_main_pagea1[2*row+(col>=42?1:0)] + uhc_2_2uni_pagea1[i]);
+          *pwc = (ucs4_t) (uhc_2_2uni_main_pagea1[2*row+(col>=42?1:0)] + uhc_2_2uni_pagea1[i]);
           return 2;
         }
       }
@@ -975,7 +975,7 @@ static const Summary16 uhc_2_uni2indx_pagec8[251] = {
 };
 
 static int
-uhc_2_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+uhc_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   if (n >= 2) {
     if (wc >= 0xc800 && wc < 0xd7b0) {
index 5cb2169c9aa973eb9c36d54a4df7ff64850f5ec4..818455c2ed892692d75e9b2adc1188a8a65daeb3 100644 (file)
    The default is big-endian. */
 /* The state is 0 if big-endian, 1 if little-endian. */
 static int
-utf16_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+utf16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   int count = 0;
   for (; n >= 2;) {
-    wchar_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]);
+    ucs4_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]);
     if (wc == 0xfeff) {
     } else if (wc == 0xfffe) {
       state ^= 1;
     } else if (wc >= 0xd800 && wc < 0xdc00) {
       if (n >= 4) {
-        wchar_t wc2 = (state ? s[2] + (s[3] << 8) : (s[2] << 8) + s[3]);
+        ucs4_t wc2 = (state ? s[2] + (s[3] << 8) : (s[2] << 8) + s[3]);
         if (!(wc2 >= 0xdc00 && wc2 < 0xe000))
           return RET_ILSEQ;
         *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
@@ -50,9 +50,9 @@ utf16_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
    long as the above utf16_mbtowc function is used. */
 /* The state is 0 at the beginning, 1 after the BOM has been written. */
 static int
-utf16_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+utf16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc != 0xfffe) {
+  if (wc != 0xfffe && !(wc >= 0xd800 && wc < 0xe000)) {
     int count = 0;
     if (!conv->ostate) {
       if (n >= 2) {
@@ -73,8 +73,8 @@ utf16_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
     }
     else if (wc < 0x110000) {
       if (n >= 4) {
-        wchar_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
-        wchar_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+        ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+        ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
         r[0] = (unsigned char) (wc1 >> 8);
         r[1] = (unsigned char) wc1;
         r[2] = (unsigned char) (wc2 >> 8);
index 69c56043d3005c3d8aecbc55c77dd5346aaf2a60..4ff87ee1766585891533cdc1597ad4e7ede171e0 100644 (file)
@@ -5,14 +5,14 @@
 /* Specification: RFC 2781 */
 
 static int
-utf16be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+utf16be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   int count = 0;
   if (n >= 2) {
-    wchar_t wc = (s[0] << 8) + s[1];
+    ucs4_t wc = (s[0] << 8) + s[1];
     if (wc >= 0xd800 && wc < 0xdc00) {
       if (n >= 4) {
-        wchar_t wc2 = (s[2] << 8) + s[3];
+        ucs4_t wc2 = (s[2] << 8) + s[3];
         if (!(wc2 >= 0xdc00 && wc2 < 0xe000))
           return RET_ILSEQ;
         *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
@@ -29,27 +29,29 @@ utf16be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-utf16be_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+utf16be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000) {
-    if (n >= 2) {
-      r[0] = (unsigned char) (wc >> 8);
-      r[1] = (unsigned char) wc;
-      return 2;
-    } else
-      return RET_TOOSMALL;
-  }
-  else if (wc < 0x110000) {
-    if (n >= 4) {
-      wchar_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
-      wchar_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
-      r[0] = (unsigned char) (wc1 >> 8);
-      r[1] = (unsigned char) wc1;
-      r[2] = (unsigned char) (wc2 >> 8);
-      r[3] = (unsigned char) wc2;
-      return 4;
-    } else
-      return RET_TOOSMALL;
+  if (!(wc >= 0xd800 && wc < 0xe000)) {
+    if (wc < 0x10000) {
+      if (n >= 2) {
+        r[0] = (unsigned char) (wc >> 8);
+        r[1] = (unsigned char) wc;
+        return 2;
+      } else
+        return RET_TOOSMALL;
+    }
+    else if (wc < 0x110000) {
+      if (n >= 4) {
+        ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+        ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+        r[0] = (unsigned char) (wc1 >> 8);
+        r[1] = (unsigned char) wc1;
+        r[2] = (unsigned char) (wc2 >> 8);
+        r[3] = (unsigned char) wc2;
+        return 4;
+      } else
+        return RET_TOOSMALL;
+    }
   }
   return RET_ILSEQ;
 }
index ad54f59fa6a494b5866b1f8c3629fcb922078d2e..170bbc47a49adcb7759c3c145fcd40e8b38c9972 100644 (file)
@@ -5,14 +5,14 @@
 /* Specification: RFC 2781 */
 
 static int
-utf16le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+utf16le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   int count = 0;
   if (n >= 2) {
-    wchar_t wc = s[0] + (s[1] << 8);
+    ucs4_t wc = s[0] + (s[1] << 8);
     if (wc >= 0xd800 && wc < 0xdc00) {
       if (n >= 4) {
-        wchar_t wc2 = s[2] + (s[3] << 8);
+        ucs4_t wc2 = s[2] + (s[3] << 8);
         if (!(wc2 >= 0xdc00 && wc2 < 0xe000))
           return RET_ILSEQ;
         *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
@@ -29,27 +29,29 @@ utf16le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
 }
 
 static int
-utf16le_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+utf16le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
-  if (wc < 0x10000) {
-    if (n >= 2) {
-      r[0] = (unsigned char) wc;
-      r[1] = (unsigned char) (wc >> 8);
-      return 2;
-    } else
-      return RET_TOOSMALL;
-  }
-  else if (wc < 0x110000) {
-    if (n >= 4) {
-      wchar_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
-      wchar_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
-      r[0] = (unsigned char) wc1;
-      r[1] = (unsigned char) (wc1 >> 8);
-      r[2] = (unsigned char) wc2;
-      r[3] = (unsigned char) (wc2 >> 8);
-      return 4;
-    } else
-      return RET_TOOSMALL;
+  if (!(wc >= 0xd800 && wc < 0xe000)) {
+    if (wc < 0x10000) {
+      if (n >= 2) {
+        r[0] = (unsigned char) wc;
+        r[1] = (unsigned char) (wc >> 8);
+        return 2;
+      } else
+        return RET_TOOSMALL;
+    }
+    else if (wc < 0x110000) {
+      if (n >= 4) {
+        ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+        ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+        r[0] = (unsigned char) wc1;
+        r[1] = (unsigned char) (wc1 >> 8);
+        r[2] = (unsigned char) wc2;
+        r[3] = (unsigned char) (wc2 >> 8);
+        return 4;
+      } else
+        return RET_TOOSMALL;
+    }
   }
   return RET_ILSEQ;
 }
index 65ef3b1e205774dd0b8af2dd3a0e9192130a89da..ceabf79367c5bffa0575a330eb6e5e8e83fc2f7a 100644 (file)
@@ -46,7 +46,7 @@ static const unsigned char xbase64_tab[128/8] = {
  */
 
 static int
-utf7_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+utf7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   state_t state = conv->istate;
   int count = 0; /* number of input bytes already read */
@@ -63,7 +63,7 @@ inactive:
     {
       unsigned char c = *s;
       if (isxdirect(c)) {
-        *pwc = (wchar_t) c;
+        *pwc = (ucs4_t) c;
         conv->istate = state;
         return count+1;
       }
@@ -71,7 +71,7 @@ inactive:
         if (n < count+2)
           goto none;
         if (s[1] == '-') {
-          *pwc = (wchar_t) '+';
+          *pwc = (ucs4_t) '+';
           conv->istate = state;
           return count+2;
         }
@@ -145,11 +145,11 @@ active:
     /* Here k = kmax > 0, hence base64count > 0. */
     if ((base64state & 3) == 0) abort();
     if (kmax == 4) {
-      wchar_t wc1 = wc >> 16;
-      wchar_t wc2 = wc & 0xffff;
+      ucs4_t wc1 = wc >> 16;
+      ucs4_t wc2 = wc & 0xffff;
       if (!(wc1 >= 0xd800 && wc1 < 0xdc00)) abort();
       if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ;
-      *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
+      *pwc = 0x10000 + ((wc1 - 0xd800) << 10) + (wc2 - 0xdc00);
     } else {
       *pwc = wc;
     }
@@ -183,7 +183,7 @@ none:
 #define UTF7_ENCODE_OPTIONAL_CHARS 1
 
 static int
-utf7_wctomb (conv_t conv, unsigned char *r, wchar_t iwc, int n)
+utf7_wctomb (conv_t conv, unsigned char *r, ucs4_t iwc, int n)
 {
   state_t state = conv->ostate;
   unsigned int wc = iwc;
index 57143bca0c9b1a4c56b7fdd9cc624a05477505d1..e757bbf30a8fa521a5ae8aceab8d59210ea636c9 100644 (file)
@@ -5,7 +5,7 @@
 /* Specification: RFC 2279 */
 
 static int
-utf8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+utf8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = s[0];
 
@@ -19,8 +19,8 @@ utf8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
       return RET_TOOFEW(0);
     if (!((s[1] ^ 0x80) < 0x40))
       return RET_ILSEQ;
-    *pwc = ((wchar_t) (c & 0x1f) << 6)
-           | (wchar_t) (s[1] ^ 0x80);
+    *pwc = ((ucs4_t) (c & 0x1f) << 6)
+           | (ucs4_t) (s[1] ^ 0x80);
     return 2;
   } else if (c < 0xf0) {
     if (n < 3)
@@ -28,36 +28,36 @@ utf8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
     if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
           && (c >= 0xe1 || s[1] >= 0xa0)))
       return RET_ILSEQ;
-    *pwc = ((wchar_t) (c & 0x0f) << 12)
-           | ((wchar_t) (s[1] ^ 0x80) << 6)
-           | (wchar_t) (s[2] ^ 0x80);
+    *pwc = ((ucs4_t) (c & 0x0f) << 12)
+           | ((ucs4_t) (s[1] ^ 0x80) << 6)
+           | (ucs4_t) (s[2] ^ 0x80);
     return 3;
-  } else if (c < 0xf8 && sizeof(wchar_t)*8 >= 32) {
+  } else if (c < 0xf8 && sizeof(ucs4_t)*8 >= 32) {
     if (n < 4)
       return RET_TOOFEW(0);
     if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
           && (s[3] ^ 0x80) < 0x40
           && (c >= 0xf1 || s[1] >= 0x90)))
       return RET_ILSEQ;
-    *pwc = ((wchar_t) (c & 0x07) << 18)
-           | ((wchar_t) (s[1] ^ 0x80) << 12)
-           | ((wchar_t) (s[2] ^ 0x80) << 6)
-           | (wchar_t) (s[3] ^ 0x80);
+    *pwc = ((ucs4_t) (c & 0x07) << 18)
+           | ((ucs4_t) (s[1] ^ 0x80) << 12)
+           | ((ucs4_t) (s[2] ^ 0x80) << 6)
+           | (ucs4_t) (s[3] ^ 0x80);
     return 4;
-  } else if (c < 0xfc && sizeof(wchar_t)*8 >= 32) {
+  } else if (c < 0xfc && sizeof(ucs4_t)*8 >= 32) {
     if (n < 5)
       return RET_TOOFEW(0);
     if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
           && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
           && (c >= 0xf9 || s[1] >= 0x88)))
       return RET_ILSEQ;
-    *pwc = ((wchar_t) (c & 0x03) << 24)
-           | ((wchar_t) (s[1] ^ 0x80) << 18)
-           | ((wchar_t) (s[2] ^ 0x80) << 12)
-           | ((wchar_t) (s[3] ^ 0x80) << 6)
-           | (wchar_t) (s[4] ^ 0x80);
+    *pwc = ((ucs4_t) (c & 0x03) << 24)
+           | ((ucs4_t) (s[1] ^ 0x80) << 18)
+           | ((ucs4_t) (s[2] ^ 0x80) << 12)
+           | ((ucs4_t) (s[3] ^ 0x80) << 6)
+           | (ucs4_t) (s[4] ^ 0x80);
     return 5;
-  } else if (c < 0xfe && sizeof(wchar_t)*8 >= 32) {
+  } else if (c < 0xfe && sizeof(ucs4_t)*8 >= 32) {
     if (n < 6)
       return RET_TOOFEW(0);
     if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
@@ -65,19 +65,19 @@ utf8_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
           && (s[5] ^ 0x80) < 0x40
           && (c >= 0xfd || s[1] >= 0x84)))
       return RET_ILSEQ;
-    *pwc = ((wchar_t) (c & 0x01) << 30)
-           | ((wchar_t) (s[1] ^ 0x80) << 24)
-           | ((wchar_t) (s[2] ^ 0x80) << 18)
-           | ((wchar_t) (s[3] ^ 0x80) << 12)
-           | ((wchar_t) (s[4] ^ 0x80) << 6)
-           | (wchar_t) (s[5] ^ 0x80);
+    *pwc = ((ucs4_t) (c & 0x01) << 30)
+           | ((ucs4_t) (s[1] ^ 0x80) << 24)
+           | ((ucs4_t) (s[2] ^ 0x80) << 18)
+           | ((ucs4_t) (s[3] ^ 0x80) << 12)
+           | ((ucs4_t) (s[4] ^ 0x80) << 6)
+           | (ucs4_t) (s[5] ^ 0x80);
     return 6;
   } else
     return RET_ILSEQ;
 }
 
 static int
-utf8_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n) /* n == 0 is acceptable */
+utf8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) /* n == 0 is acceptable */
 {
   int count;
   if (wc < 0x80)
index b43bc620addd4abd398c1af221d8be7951ac3e42..d5147e81ed7c9928d3656a09ca2c686e1c4d55ab 100644 (file)
@@ -41,15 +41,15 @@ static const unsigned short viscii_2uni_2[128] = {
 };
 
 static int
-viscii_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+viscii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
 {
   unsigned char c = *s;
   if (c < 0x20)
-    *pwc = (wchar_t) viscii_2uni_1[c];
+    *pwc = (ucs4_t) viscii_2uni_1[c];
   else if (c < 0x80)
-    *pwc = (wchar_t) c;
+    *pwc = (ucs4_t) c;
   else
-    *pwc = (wchar_t) viscii_2uni_2[c-0x80];
+    *pwc = (ucs4_t) viscii_2uni_2[c-0x80];
   return 1;
 }
 
@@ -103,7 +103,7 @@ static const unsigned char viscii_page1e[96] = {
 };
 
 static int
-viscii_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+viscii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
 {
   unsigned char c = 0;
   if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064 & (1 << wc)) == 0)) {
index cbc47ad32db16d014ad54d942e43a5662f22591b..3d7e0700f11b70a849d3d18985f4eb66ab589719 100644 (file)
@@ -1,3 +1,23 @@
+2001-01-03  Bruno Haible  <haible@clisp.cons.org>
+
+       * gettext.m4: Check for argz.h, limits.h, malloc.h, string.h,
+       unistd.h, sys/param.h, mmap, mempcpy, munmap, stpcpy, strcasecmp,
+       strchr, strdup, __argz_count, __argz_stringify, __argz_next.
+
+2000-12-06  Bruno Haible  <haible@clisp.cons.org>
+
+       * microsoft.m4: Remove file.
+       * Makefile.am (EXTRA_DIST): Remove it.
+
+2000-12-05  Bruno Haible  <haible@clisp.cons.org>
+
+       * codeset.m4: New file, from libiconv-1.5.
+       * glibc21.m4: New file, from libiconv-1.5.
+       * Makefile.am (EXTRA_DIST): Add them.
+
+       * libtool.m4: New file.
+       * Makefile.am (EXTRA_DIST): Add it.
+
 2000-06-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * Makefile.am (EXTRA_DIST):
index 2d71d00c4e2d9af11d7d9628bccff81684cf446d..c44de89bcf6dbdf29762683e261d6375636bec96 100644 (file)
@@ -1,4 +1,4 @@
 AUTOMAKE_OPTIONS = gnits
 
-EXTRA_DIST = atconfig.m4 flex.m4 gettext.m4 lcmessage.m4 malloc.m4 \
-microsoft.m4 realloc.m4 utimbuf.m4
+EXTRA_DIST = atconfig.m4 codeset.m4 flex.m4 gettext.m4 glibc21.m4 \
+lcmessage.m4 libtool.m4 malloc.m4 realloc.m4 utimbuf.m4
index 9ed3b1770b3a8bf0d7dfca196bd6fa563cb38a6a..9a87ce51a72f1e7eb9e308db8d8fd3df9c0f1fe1 100644 (file)
@@ -69,6 +69,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
@@ -86,7 +87,7 @@ VERSION = @VERSION@
 
 AUTOMAKE_OPTIONS = gnits
 
-EXTRA_DIST = atconfig.m4 flex.m4 gettext.m4 lcmessage.m4 malloc.m4 microsoft.m4 realloc.m4 utimbuf.m4
+EXTRA_DIST = atconfig.m4 codeset.m4 flex.m4 gettext.m4 glibc21.m4 lcmessage.m4 libtool.m4 malloc.m4 realloc.m4 utimbuf.m4
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = ../config.h
@@ -101,9 +102,9 @@ GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits m4/Makefile
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps m4/Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        cd $(top_builddir) \
          && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -116,11 +117,6 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 subdir = m4
 
 distdir: $(DISTFILES)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(top_distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits m4/Makefile
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
diff --git a/m4/codeset.m4 b/m4/codeset.m4
new file mode 100644 (file)
index 0000000..fbe6a80
--- /dev/null
@@ -0,0 +1,20 @@
+#serial 2
+
+dnl From Bruno Haible.
+
+AC_DEFUN(jm_LANGINFO_CODESET,
+[
+  AC_CHECK_HEADERS(langinfo.h)
+  AC_CHECK_FUNCS(nl_langinfo)
+
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], jm_cv_langinfo_codeset,
+    [AC_TRY_LINK([#include <langinfo.h>],
+      [char* cs = nl_langinfo(CODESET);],
+      jm_cv_langinfo_codeset=yes,
+      jm_cv_langinfo_codeset=no)
+    ])
+  if test $jm_cv_langinfo_codeset = yes; then
+    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+  fi
+])
index f2f345c1dab68f95541cd848c480fc3a7b7decbc..433ff25c96c4f82321a168d024d222d0fb170d8f 100644 (file)
@@ -84,8 +84,9 @@ AC_DEFUN(fp_WITH_GETTEXT, [
       AC_CHECK_FUNCS(dcgettext gettext)
     fi
 
-    AC_CHECK_HEADERS(locale.h)
-    AC_CHECK_FUNCS(getcwd setlocale stpcpy)
+    AC_CHECK_HEADERS(argz.h limits.h locale.h malloc.h string.h unistd.h sys/param.h)
+    AC_FUNC_MMAP
+    AC_CHECK_FUNCS(getcwd mempcpy munmap setlocale stpcpy strcasecmp strchr strdup __argz_count __argz_stringify __argz_next)
     AM_LC_MESSAGES
 
     if test -z "$ALL_LINGUAS"; then
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
new file mode 100644 (file)
index 0000000..9fd4566
--- /dev/null
@@ -0,0 +1,26 @@
+#serial 2
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN(jm_GLIBC21,
+  [
+    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+      ac_cv_gnu_library_2_1,
+      [AC_EGREP_CPP([Lucky GNU user],
+       [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+       ],
+       ac_cv_gnu_library_2_1=yes,
+       ac_cv_gnu_library_2_1=no)
+      ]
+    )
+    AC_SUBST(GLIBC21)
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  ]
+)
diff --git a/m4/libtool.m4 b/m4/libtool.m4
new file mode 100644 (file)
index 0000000..72fac3b
--- /dev/null
@@ -0,0 +1,434 @@
+## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
+## Copyright (C) 1996-1999, 2000 Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 40 AC_PROG_LIBTOOL
+AC_DEFUN(AC_PROG_LIBTOOL,
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# Save cache, so that ltconfig can load it
+AC_CACHE_SAVE
+
+# Actually configure libtool.  ac_aux_dir is where install-sh is found.
+CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
+|| AC_MSG_ERROR([libtool configure failed])
+
+# Reload cache, that may have been modified by ltconfig
+AC_CACHE_LOAD
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Redirect the config.log output again, so that the ltconfig log is not
+# clobbered by the next message.
+exec 5>>./config.log
+])
+
+AC_DEFUN(AC_LIBTOOL_SETUP,
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
+
+case "$target" in
+NONE) lt_target="$host" ;;
+*) lt_target="$target" ;;
+esac
+
+# Check for any special flags to pass to ltconfig.
+libtool_flags=""
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+[libtool_flags="$libtool_flags --enable-dlopen"])
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[libtool_flags="$libtool_flags --enable-win32-dll"])
+AC_ARG_ENABLE(libtool-lock,
+  [  --disable-libtool-lock  avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case "$lt_target" in
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+])
+esac
+])
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
+#   `yes'.
+AC_DEFUN(AC_ENABLE_SHARED, [dnl
+define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+  enable_shared=no
+  # Look at the argument we got.  We use all the common list separators.
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+  for pkg in $enableval; do
+    if test "X$pkg" = "X$p"; then
+      enable_shared=yes
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
+#   `yes'.
+AC_DEFUN(AC_ENABLE_STATIC, [dnl
+define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+  enable_static=no
+  # Look at the argument we got.  We use all the common list separators.
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+  for pkg in $enableval; do
+    if test "X$pkg" = "X$p"; then
+      enable_static=yes
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
+#   `yes'.
+AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+  enable_fast_install=no
+  # Look at the argument we got.  We use all the common list separators.
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+  for pkg in $enableval; do
+    if test "X$pkg" = "X$p"; then
+      enable_fast_install=yes
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN(AC_PROG_LD,
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  ac_prog=`($CC -print-prog-name=ld) 2>&5`
+  case "$ac_prog" in
+    # Accept absolute paths.
+changequote(,)dnl
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+changequote([,])dnl
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(ac_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      ac_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+       test "$with_gnu_ld" != no && break
+      else
+       test "$with_gnu_ld" != yes && break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  ac_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$ac_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])
+
+AC_DEFUN(AC_PROG_LD_GNU,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+  ac_cv_prog_gnu_ld=yes
+else
+  ac_cv_prog_gnu_ld=no
+fi])
+])
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN(AC_PROG_NM,
+[AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(ac_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  ac_cv_path_NM="$NM"
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+       ac_cv_path_NM="$ac_dir/nm -B"
+       break
+      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+       ac_cv_path_NM="$ac_dir/nm -p"
+       break
+      else
+       ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+       continue # so that we can try to find one that supports BSD flags
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
+fi])
+NM="$ac_cv_path_NM"
+AC_MSG_RESULT([$NM])
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN(AC_CHECK_LIBM,
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case "$lt_target" in
+*-*-beos* | *-*-cygwin*)
+  # These system don't have libm
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, main, LIBM="-lm")
+  ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library and INCLTDL to the include flags for
+# the libltdl header and adds --enable-ltdl-convenience to the
+# configure arguments.  Note that LIBLTDL and INCLTDL are not
+# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If DIR is not
+# provided, it is assumed to be `libltdl'.  LIBLTDL will be prefixed
+# with '${top_builddir}/' and INCLTDL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case "$enable_ltdl_convenience" in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library and INCLTDL to the include flags for
+# the libltdl header and adds --enable-ltdl-install to the configure
+# arguments.  Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
+# AC_CONFIG_SUBDIRS called.  If DIR is not provided and an installed
+# libltdl is not found, it is assumed to be `libltdl'.  LIBLTDL will
+# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
+# with '${top_srcdir}/' (note the single quotes!).  If your package is
+# not flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, main,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    INCLTDL=
+  fi
+])
+
+dnl old names
+AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+
+dnl This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])dnl
diff --git a/m4/microsoft.m4 b/m4/microsoft.m4
deleted file mode 100644 (file)
index 6fcc68e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-## ---------------------------------------- ##
-## See if compiling for Microsoft systems.  ##
-## ---------------------------------------- ##
-
-AC_DEFUN(fp_OS_MICROSOFT,
-[AC_CACHE_CHECK([for MSDOS, Win95 or WinNT], fp_cv_os_microsoft,
-[if test -n "$COMSPEC"; then
-  # MSDOS or Win95
-   fp_cv_os_microsoft=yes
-elif test -n "$ComSpec"; then
-  # WinNT
-  fp_cv_os_microsoft=yes
-else
-  fp_cv_os_microsoft=no
-fi
-])])
index 28ddf4583908c5cae7f5177ec34d32d427c862d7..9abf5915e04e1beb807c0c7e1d35e2c79564765a 100644 (file)
@@ -1,3 +1,68 @@
+2001-01-22  Bruno Haible  <haible@clisp.cons.org>
+
+       * hash.c: Avoid use of undefined macros HAVE_DECL_MALLOC/FREE.
+
+2001-01-03  Bruno Haible  <haible@clisp.cons.org>
+
+       * recodext.h (put_byte): Don't use "void" type expressions in
+       conditional expressions. Works around a compilation failure with
+       old Solaris cc.
+
+2000-12-19  Jim Meyering  <jim@meyering.net>
+
+       * localcharset.c: Improve WIN32 macrology.
+       (locale_charset): Increase size of buffer.
+
+2000-12-06  Bruno Haible  <haible@clisp.cons.org>
+
+       * names.c (disambiguate_name): When DEFAULT_CHARSET is not set, use
+       "char".
+       * main.c (usage): Modified default charset.
+
+2000-12-05  Bruno Haible  <haible@clisp.cons.org>
+
+       * Updated to libiconv 1.5.
+
+       * iconv.c (_libiconv_version): New variable.
+
+       * iconv.c: Include libcharset.h.
+         (loop_funcs): New structure.
+         Treat encodings_local.def like encodings.def.
+         Include loops.h.
+         (iconv): Move the bulk of the code to loop_unicode.h.
+         (iconvctl): Extend determination of TRIVIALP to wchar_t conversion
+         descriptors.
+       * localcharset.c: New file, from libiconv-1.5.
+       * Makefile.am (librecode_la_SOURCES): Add localcharset.c.
+       (DEFS): Override automake default.
+
+       * iconv.c (iconv): Use ucs4_t instead of wchar_t.
+
+       Make transliteration optional.
+       * iconv.c (iconv_open): Strip off //TRANSLIT suffix from names.
+         Set transliteration on if and only if tocode ends in //TRANSLIT.
+
+2000-10-24  Bruno Haible  <haible@clisp.cons.org>
+
+       * xmalloc.c, xalloc.h: Move here from lib/.
+       * Makefile.am (noinst_HEADERS): Add xalloc.h.
+       (librecode_la_SOURCES): Add xmalloc.c.
+       Reported by Tomasz Kłoczko <kloczek@wun.zie.pg.gda.pl>.
+
+2000-10-24  Bruno Haible  <haible@clisp.cons.org>
+
+       * main.c (main): Remove libtool's "lt-" prefix from program_name.
+
+2000-10-15  Bruno Haible  <haible@clisp.cons.org>
+
+       * Makefile.am (inisteps.h): New target, depend on stamp-steps.
+       (tersteps.h): Likewise.
+       (noinst_HEADERS): Add tersteps.h.
+
+2000-08-30  Bruno Haible  <haible@clisp.cons.org>
+
+       * outer.c: Include "hash.h".
+
 2000-08-18  François Pinard  <pinard@iro.umontreal.ca>
 
        * html.c: Add XML-standalone, and h0 for an alias.
        wait() declaration and W* macros.
        (recode_perform_task): Silence gcc warning.
        * utf16.c (transform_ucs4_utf16): Remove unused variables 'character',
-        'chunk'.
+       'chunk'.
        * utf7.c (transform_utf16_utf7): Remove unused variable 'character'.
        * vn.c (module_vietnamese): Return true.
 
index 9023a728f0c61e73471144ed093ebf3d98d49b85..c918aa7c0e41807eb7faea039e9dab5c9453e7c0 100644 (file)
@@ -24,8 +24,8 @@ man_MANS = recode.1
 include_HEADERS = recode.h recodext.h
 
 noinst_HEADERS = argmatch.h charname.h common.h decsteps.h \
-fr-charname.h hash.h inisteps.h libiconv.h quotearg.h rfc1345.h        \
-$(H_FALLBACKS) $(H_SURFACES)
+fr-charname.h hash.h inisteps.h libiconv.h quotearg.h rfc1345.h        tersteps.h \
+xalloc.h $(H_FALLBACKS) $(H_SURFACES)
 EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.py $(MANS)
 
 C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \
@@ -46,11 +46,12 @@ recode_SOURCES = main.c freeze.c mixed.c
 recode_LDADD = librecode.la ../lib/libreco.a
 
 librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c \
-hash.c iconv.c libiconv.c merged.c names.c outer.c quotearg.c recode.c \
-request.c strip-pool.c task.c $(C_STEPS)
+hash.c iconv.c libiconv.c localcharset.c merged.c names.c outer.c quotearg.c \
+recode.c request.c strip-pool.c task.c xmalloc.c $(C_STEPS)
 librecode_la_LDFLAGS = -version-info 0:0:0
 
 INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/libiconv
+DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
 
 ETAGS_ARGS = $(L_STEPS)
 TAGS_DEPENDENCIES = $(L_STEPS)
@@ -64,6 +65,8 @@ PERL = perl
 PYTHON = python
 
 $(srcdir)/decsteps.h: stamp-steps
+$(srcdir)/inisteps.h: stamp-steps
+$(srcdir)/tersteps.h: stamp-steps
 stamp-steps: $(C_STEPS) merged.c
        @echo "Updating {dec,ini,ter}steps.h"
        @(cd $(srcdir) && grep -h '^module_' $(C_STEPS) merged.c ) \
index 56a749b590ab22b4949e90fac041d9670f8f63b4..9bdb85d214205e628c1aebedf0fe52bf739815eb 100644 (file)
@@ -88,6 +88,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
 LIBTOOL = @LIBTOOL@
@@ -108,7 +109,7 @@ lib_LTLIBRARIES = librecode.la
 man_MANS = recode.1
 include_HEADERS = recode.h recodext.h
 
-noinst_HEADERS = argmatch.h charname.h common.h decsteps.h fr-charname.h hash.h inisteps.h libiconv.h quotearg.h rfc1345.h     $(H_FALLBACKS) $(H_SURFACES)
+noinst_HEADERS = argmatch.h charname.h common.h decsteps.h fr-charname.h hash.h inisteps.h libiconv.h quotearg.h rfc1345.h     tersteps.h xalloc.h $(H_FALLBACKS) $(H_SURFACES)
 
 EXTRA_DIST = stamp-steps $(L_STEPS) mergelex.py $(MANS)
 
@@ -128,11 +129,12 @@ L_SURFACES =
 recode_SOURCES = main.c freeze.c mixed.c
 recode_LDADD = librecode.la ../lib/libreco.a
 
-librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c hash.c iconv.c libiconv.c merged.c names.c outer.c quotearg.c recode.c request.c strip-pool.c task.c $(C_STEPS)
+librecode_la_SOURCES = argmatch.c charname.c combine.c fr-charname.c hash.c iconv.c libiconv.c localcharset.c merged.c names.c outer.c quotearg.c recode.c request.c strip-pool.c task.c xmalloc.c $(C_STEPS)
 
 librecode_la_LDFLAGS = -version-info 0:0:0
 
 INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/libiconv
+DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
 
 ETAGS_ARGS = $(L_STEPS)
 TAGS_DEPENDENCIES = $(L_STEPS)
@@ -149,22 +151,21 @@ CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
 LTLIBRARIES =  $(lib_LTLIBRARIES)
 
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
 ANSI2KNR = @ANSI2KNR@
 librecode_la_LIBADD = 
 librecode_la_OBJECTS =  argmatch$U.lo charname$U.lo combine$U.lo \
-fr-charname$U.lo hash$U.lo iconv$U.lo libiconv$U.lo merged$U.lo \
-names$U.lo outer$U.lo quotearg$U.lo recode$U.lo request$U.lo \
-strip-pool$U.lo task$U.lo african$U.lo afrtran$U.lo applemac$U.lo \
-atarist$U.lo bangbang$U.lo cdcnos$U.lo ebcdic$U.lo ibmpc$U.lo \
-iconqnx$U.lo lat1asci$U.lo mule$U.lo strip-data$U.lo testdump$U.lo \
-ucs$U.lo utf16$U.lo utf7$U.lo utf8$U.lo varia$U.lo vn$U.lo flat$U.lo \
-html$U.lo lat1ltex$U.lo lat1txte$U.lo rfc1345$U.lo texinfo$U.lo \
-base64$U.lo dump$U.lo endline$U.lo permut$U.lo quoted$U.lo
+fr-charname$U.lo hash$U.lo iconv$U.lo libiconv$U.lo localcharset$U.lo \
+merged$U.lo names$U.lo outer$U.lo quotearg$U.lo recode$U.lo \
+request$U.lo strip-pool$U.lo task$U.lo xmalloc$U.lo african$U.lo \
+afrtran$U.lo applemac$U.lo atarist$U.lo bangbang$U.lo cdcnos$U.lo \
+ebcdic$U.lo ibmpc$U.lo iconqnx$U.lo lat1asci$U.lo mule$U.lo \
+strip-data$U.lo testdump$U.lo ucs$U.lo utf16$U.lo utf7$U.lo utf8$U.lo \
+varia$U.lo vn$U.lo flat$U.lo html$U.lo lat1ltex$U.lo lat1txte$U.lo \
+rfc1345$U.lo texinfo$U.lo base64$U.lo dump$U.lo endline$U.lo \
+permut$U.lo quoted$U.lo
 PROGRAMS =  $(bin_PROGRAMS)
 
 recode_OBJECTS =  main$U.o freeze$U.o mixed$U.o
@@ -188,18 +189,6 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 TAR = tar
 GZIP_ENV = --best
-DEP_FILES =  .deps/african.P .deps/afrtran.P .deps/applemac.P \
-.deps/argmatch.P .deps/atarist.P .deps/bangbang.P .deps/base64.P \
-.deps/cdcnos.P .deps/charname.P .deps/combine.P .deps/dump.P \
-.deps/ebcdic.P .deps/endline.P .deps/flat.P .deps/fr-charname.P \
-.deps/freeze.P .deps/hash.P .deps/html.P .deps/ibmpc.P .deps/iconqnx.P \
-.deps/iconv.P .deps/lat1asci.P .deps/lat1ltex.P .deps/lat1txte.P \
-.deps/libiconv.P .deps/main.P .deps/merged.P .deps/mixed.P .deps/mule.P \
-.deps/names.P .deps/outer.P .deps/permut.P .deps/quotearg.P \
-.deps/quoted.P .deps/recode.P .deps/request.P .deps/rfc1345.P \
-.deps/strip-data.P .deps/strip-pool.P .deps/task.P .deps/testdump.P \
-.deps/texinfo.P .deps/ucs.P .deps/utf16.P .deps/utf7.P .deps/utf8.P \
-.deps/varia.P .deps/vn.P
 SOURCES = $(librecode_la_SOURCES) $(recode_SOURCES)
 OBJECTS = $(librecode_la_OBJECTS) $(recode_OBJECTS)
 
@@ -207,9 +196,9 @@ all: all-redirect
 .SUFFIXES:
 .SUFFIXES: .S .c .lo .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile
+       cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps src/Makefile
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        cd $(top_builddir) \
          && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -239,6 +228,9 @@ uninstall-libLTLIBRARIES:
          $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
        done
 
+.c.o:
+       $(COMPILE) -c $<
+
 .s.o:
        $(COMPILE) -c $<
 
@@ -255,6 +247,9 @@ distclean-compile:
 
 maintainer-clean-compile:
 
+.c.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
 .s.lo:
        $(LIBTOOL) --mode=compile $(COMPILE) -c $<
 
@@ -374,6 +369,8 @@ lat1txte_.c: lat1txte.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lat1txte.c; then echo $(srcdir)/lat1txte.c; else echo lat1txte.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > lat1txte_.c
 libiconv_.c: libiconv.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/libiconv.c; then echo $(srcdir)/libiconv.c; else echo libiconv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > libiconv_.c
+localcharset_.c: localcharset.c $(ANSI2KNR)
+       $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/localcharset.c; then echo $(srcdir)/localcharset.c; else echo localcharset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > localcharset_.c
 main_.c: main.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > main_.c
 merged_.c: merged.c $(ANSI2KNR)
@@ -420,6 +417,8 @@ varia_.c: varia.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/varia.c; then echo $(srcdir)/varia.c; else echo varia.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > varia_.c
 vn_.c: vn.c $(ANSI2KNR)
        $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vn.c; then echo $(srcdir)/vn.c; else echo vn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > vn_.c
+xmalloc_.c: xmalloc.c $(ANSI2KNR)
+       $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c
 african_.o african_.lo afrtran_.o afrtran_.lo applemac_.o applemac_.lo \
 argmatch_.o argmatch_.lo atarist_.o atarist_.lo bangbang_.o \
 bangbang_.lo base64_.o base64_.lo cdcnos_.o cdcnos_.lo charname_.o \
@@ -428,14 +427,15 @@ ebcdic_.lo endline_.o endline_.lo flat_.o flat_.lo fr-charname_.o \
 fr-charname_.lo freeze_.o freeze_.lo hash_.o hash_.lo html_.o html_.lo \
 ibmpc_.o ibmpc_.lo iconqnx_.o iconqnx_.lo iconv_.o iconv_.lo \
 lat1asci_.o lat1asci_.lo lat1ltex_.o lat1ltex_.lo lat1txte_.o \
-lat1txte_.lo libiconv_.o libiconv_.lo main_.o main_.lo merged_.o \
-merged_.lo mixed_.o mixed_.lo mule_.o mule_.lo names_.o names_.lo \
-outer_.o outer_.lo permut_.o permut_.lo quotearg_.o quotearg_.lo \
-quoted_.o quoted_.lo recode_.o recode_.lo request_.o request_.lo \
-rfc1345_.o rfc1345_.lo strip-data_.o strip-data_.lo strip-pool_.o \
-strip-pool_.lo task_.o task_.lo testdump_.o testdump_.lo texinfo_.o \
-texinfo_.lo ucs_.o ucs_.lo utf16_.o utf16_.lo utf7_.o utf7_.lo utf8_.o \
-utf8_.lo varia_.o varia_.lo vn_.o vn_.lo : $(ANSI2KNR)
+lat1txte_.lo libiconv_.o libiconv_.lo localcharset_.o localcharset_.lo \
+main_.o main_.lo merged_.o merged_.lo mixed_.o mixed_.lo mule_.o \
+mule_.lo names_.o names_.lo outer_.o outer_.lo permut_.o permut_.lo \
+quotearg_.o quotearg_.lo quoted_.o quoted_.lo recode_.o recode_.lo \
+request_.o request_.lo rfc1345_.o rfc1345_.lo strip-data_.o \
+strip-data_.lo strip-pool_.o strip-pool_.lo task_.o task_.lo \
+testdump_.o testdump_.lo texinfo_.o texinfo_.lo ucs_.o ucs_.lo utf16_.o \
+utf16_.lo utf7_.o utf7_.lo utf8_.o utf8_.lo varia_.o varia_.lo vn_.o \
+vn_.lo xmalloc_.o xmalloc_.lo : $(ANSI2KNR)
 
 install-man1:
        $(mkinstalldirs) $(DESTDIR)$(man1dir)
@@ -525,11 +525,6 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 subdir = src
 
 distdir: $(DISTFILES)
-       here=`cd $(top_builddir) && pwd`; \
-       top_distdir=`cd $(top_distdir) && pwd`; \
-       distdir=`cd $(distdir) && pwd`; \
-       cd $(top_srcdir) \
-         && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnits src/Makefile
        @for file in $(DISTFILES); do \
          d=$(srcdir); \
          if test -d $$d/$$file; then \
@@ -540,38 +535,162 @@ distdir: $(DISTFILES)
            || cp -p $$d/$$file $(distdir)/$$file || :; \
          fi; \
        done
+african.lo african.o : african.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+afrtran.lo afrtran.o : afrtran.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+applemac.lo applemac.o : applemac.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+argmatch.lo argmatch.o : argmatch.c argmatch.h ../config.h \
+       ../lib/error.h quotearg.h
+atarist.lo atarist.o : atarist.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+bangbang.lo bangbang.o : bangbang.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+base64.lo base64.o : base64.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h base64.h
+cdcnos.lo cdcnos.o : cdcnos.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+charname.lo charname.o : charname.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h charname.h
+combine.lo combine.o : combine.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h hash.h
+dump.lo dump.o : dump.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+ebcdic.lo ebcdic.o : ebcdic.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+endline.lo endline.o : endline.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+flat.lo flat.o : flat.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+fr-charname.lo fr-charname.o : fr-charname.c common.h ../config.h \
+       xalloc.h argmatch.h ../lib/error.h recodext.h recode.h \
+       fr-charname.h
+freeze.o: freeze.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+hash.lo hash.o : hash.c ../config.h hash.h
+html.lo html.o : html.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h hash.h
+ibmpc.lo ibmpc.o : ibmpc.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+iconqnx.lo iconqnx.o : iconqnx.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+iconv.lo iconv.o : iconv.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h ../libiconv/iconv.h \
+       ../libiconv/libcharset.h ../libiconv/converters.h \
+       ../libiconv/ascii.h ../libiconv/utf8.h ../libiconv/ucs2.h \
+       ../libiconv/ucs2be.h ../libiconv/ucs2le.h ../libiconv/ucs4.h \
+       ../libiconv/ucs4be.h ../libiconv/ucs4le.h ../libiconv/utf16.h \
+       ../libiconv/utf16be.h ../libiconv/utf16le.h ../libiconv/utf7.h \
+       ../libiconv/ucs2internal.h ../libiconv/ucs2swapped.h \
+       ../libiconv/ucs4internal.h ../libiconv/ucs4swapped.h \
+       ../libiconv/java.h ../libiconv/iso8859_1.h \
+       ../libiconv/iso8859_2.h ../libiconv/iso8859_3.h \
+       ../libiconv/iso8859_4.h ../libiconv/iso8859_5.h \
+       ../libiconv/iso8859_6.h ../libiconv/iso8859_7.h \
+       ../libiconv/iso8859_8.h ../libiconv/iso8859_9.h \
+       ../libiconv/iso8859_10.h ../libiconv/iso8859_13.h \
+       ../libiconv/iso8859_14.h ../libiconv/iso8859_15.h \
+       ../libiconv/iso8859_16.h ../libiconv/koi8_r.h \
+       ../libiconv/koi8_u.h ../libiconv/koi8_ru.h ../libiconv/cp1250.h \
+       ../libiconv/cp1251.h ../libiconv/cp1252.h ../libiconv/cp1253.h \
+       ../libiconv/cp1254.h ../libiconv/cp1255.h ../libiconv/cp1256.h \
+       ../libiconv/cp1257.h ../libiconv/cp1258.h ../libiconv/cp850.h \
+       ../libiconv/cp866.h ../libiconv/mac_roman.h \
+       ../libiconv/mac_centraleurope.h ../libiconv/mac_iceland.h \
+       ../libiconv/mac_croatian.h ../libiconv/mac_romania.h \
+       ../libiconv/mac_cyrillic.h ../libiconv/mac_ukraine.h \
+       ../libiconv/mac_greek.h ../libiconv/mac_turkish.h \
+       ../libiconv/mac_hebrew.h ../libiconv/mac_arabic.h \
+       ../libiconv/mac_thai.h ../libiconv/hp_roman8.h \
+       ../libiconv/nextstep.h ../libiconv/armscii_8.h \
+       ../libiconv/georgian_academy.h ../libiconv/georgian_ps.h \
+       ../libiconv/mulelao.h ../libiconv/cp1133.h ../libiconv/tis620.h \
+       ../libiconv/cp874.h ../libiconv/viscii.h ../libiconv/tcvn.h \
+       ../libiconv/iso646_jp.h ../libiconv/jisx0201.h \
+       ../libiconv/jisx0208.h ../libiconv/jisx0212.h \
+       ../libiconv/iso646_cn.h ../libiconv/gb2312.h \
+       ../libiconv/isoir165.h ../libiconv/isoir165ext.h \
+       ../libiconv/gbk.h ../libiconv/gbkext1.h ../libiconv/gbkext2.h \
+       ../libiconv/gbkext_inv.h ../libiconv/cp936ext.h \
+       ../libiconv/cns11643.h ../libiconv/cns11643_1.h \
+       ../libiconv/cns11643_2.h ../libiconv/cns11643_3.h \
+       ../libiconv/cns11643_inv.h ../libiconv/big5.h \
+       ../libiconv/ksc5601.h ../libiconv/johab_hangul.h \
+       ../libiconv/euc_jp.h ../libiconv/sjis.h ../libiconv/cp932.h \
+       ../libiconv/cp932ext.h ../libiconv/iso2022_jp.h \
+       ../libiconv/iso2022_jp1.h ../libiconv/iso2022_jp2.h \
+       ../libiconv/euc_cn.h ../libiconv/ces_gbk.h \
+       ../libiconv/gb18030.h ../libiconv/gb18030ext.h \
+       ../libiconv/gb18030uni.h ../libiconv/iso2022_cn.h \
+       ../libiconv/iso2022_cnext.h ../libiconv/hz.h \
+       ../libiconv/euc_tw.h ../libiconv/ces_big5.h ../libiconv/cp950.h \
+       ../libiconv/cp950ext.h ../libiconv/big5hkscs.h \
+       ../libiconv/hkscs.h ../libiconv/euc_kr.h ../libiconv/cp949.h \
+       ../libiconv/uhc_1.h ../libiconv/uhc_2.h ../libiconv/johab.h \
+       ../libiconv/iso2022_kr.h ../libiconv/cjk_variants.h \
+       ../libiconv/translit.h ../libiconv/encodings.def \
+       ../libiconv/encodings_local.def ../libiconv/flags.h \
+       ../libiconv/loops.h ../libiconv/loop_unicode.h \
+       ../libiconv/loop_wchar.h ../libiconv/aliases.h
+lat1asci.lo lat1asci.o : lat1asci.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+lat1ltex.lo lat1ltex.o : lat1ltex.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+lat1txte.lo lat1txte.o : lat1txte.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+libiconv.lo libiconv.o : libiconv.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h \
+       ../libiconv/iconv.h libiconv.h
+localcharset.lo localcharset.o : localcharset.c ../config.h
+main.o: main.c common.h ../config.h xalloc.h argmatch.h ../lib/error.h \
+       recodext.h recode.h ../lib/getopt.h
+merged.lo merged.o : merged.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+mixed.o: mixed.c common.h ../config.h xalloc.h argmatch.h ../lib/error.h \
+       recodext.h recode.h
+mule.lo mule.o : mule.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+names.lo names.o : names.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h hash.h
+outer.lo outer.o : outer.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h hash.h decsteps.h inisteps.h \
+       tersteps.h
+permut.lo permut.o : permut.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+quotearg.lo quotearg.o : quotearg.c ../config.h quotearg.h xalloc.h
+quoted.lo quoted.o : quoted.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+recode.lo recode.o : recode.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h ../lib/getopt.h hash.h
+request.lo request.o : request.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+rfc1345.lo rfc1345.o : rfc1345.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h rfc1345.h
+strip-data.lo strip-data.o : strip-data.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+strip-pool.lo strip-pool.o : strip-pool.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+task.lo task.o : task.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h ../lib/getopt.h
+testdump.lo testdump.o : testdump.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h hash.h
+texinfo.lo texinfo.o : texinfo.c common.h ../config.h xalloc.h \
+       argmatch.h ../lib/error.h recodext.h recode.h
+ucs.lo ucs.o : ucs.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+utf16.lo utf16.o : utf16.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+utf7.lo utf7.o : utf7.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h base64.h
+utf8.lo utf8.o : utf8.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+varia.lo varia.o : varia.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+vn.lo vn.o : vn.c common.h ../config.h xalloc.h argmatch.h \
+       ../lib/error.h recodext.h recode.h
+xmalloc.lo xmalloc.o : xmalloc.c ../config.h ../lib/error.h xalloc.h
 
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-       -rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-       @echo '$(COMPILE) -c $<'; \
-       $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-       @-cp .deps/$(*F).pp .deps/$(*F).P; \
-       tr ' ' '\012' < .deps/$(*F).pp \
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm .deps/$(*F).pp
-
-%.lo: %.c
-       @echo '$(LTCOMPILE) -c $<'; \
-       $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-       @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
-         < .deps/$(*F).pp > .deps/$(*F).P; \
-       tr ' ' '\012' < .deps/$(*F).pp \
-         | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-           >> .deps/$(*F).P; \
-       rm -f .deps/$(*F).pp
 info-am:
 info: info-am
 dvi-am:
@@ -614,20 +733,20 @@ maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
                mostlyclean-libtool mostlyclean-krextra mostlyclean-kr \
                mostlyclean-binPROGRAMS mostlyclean-tags \
-               mostlyclean-depend mostlyclean-generic
+               mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
 clean-am:  clean-libLTLIBRARIES clean-compile clean-libtool \
                clean-krextra clean-kr clean-binPROGRAMS clean-tags \
-               clean-depend clean-generic mostlyclean-am
+               clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-libLTLIBRARIES distclean-compile \
                distclean-libtool distclean-krextra distclean-kr \
-               distclean-binPROGRAMS distclean-tags distclean-depend \
-               distclean-generic clean-am
+               distclean-binPROGRAMS distclean-tags distclean-generic \
+               clean-am
        -rm -f libtool
 
 distclean: distclean-am
@@ -636,8 +755,7 @@ maintainer-clean-am:  maintainer-clean-libLTLIBRARIES \
                maintainer-clean-compile maintainer-clean-libtool \
                maintainer-clean-krextra maintainer-clean-kr \
                maintainer-clean-binPROGRAMS maintainer-clean-tags \
-               maintainer-clean-depend maintainer-clean-generic \
-               distclean-am
+               maintainer-clean-generic distclean-am
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
 
@@ -655,9 +773,8 @@ distclean-binPROGRAMS clean-binPROGRAMS maintainer-clean-binPROGRAMS \
 uninstall-binPROGRAMS install-binPROGRAMS install-man1 uninstall-man1 \
 install-man uninstall-man uninstall-includeHEADERS \
 install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
+maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
 install-data-am install-data install-am install uninstall-am uninstall \
 all-redirect all-am all installdirs mostlyclean-generic \
 distclean-generic clean-generic maintainer-clean-generic clean \
@@ -665,6 +782,8 @@ mostlyclean distclean maintainer-clean
 
 
 $(srcdir)/decsteps.h: stamp-steps
+$(srcdir)/inisteps.h: stamp-steps
+$(srcdir)/tersteps.h: stamp-steps
 stamp-steps: $(C_STEPS) merged.c
        @echo "Updating {dec,ini,ter}steps.h"
        @(cd $(srcdir) && grep -h '^module_' $(C_STEPS) merged.c ) \
index 2d808e3865b30f49ba05ceea1e4a8b455e4b98fc..83ec06f5a6eac4882440c3d75e6603c4ddf4c882 100644 (file)
@@ -1,5 +1,5 @@
 /* Traitement de certaines tables africaines.
-   Copyright © 1999 Progiciels Bourbeau-Pinard inc.
+   Copyright © 1999, 2000 Progiciels Bourbeau-Pinard inc.
    François Pinard <pinard@iro.umontreal.ca>, 1997.  */
 
 #include "common.h"
@@ -130,3 +130,8 @@ module_african (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_african (RECODE_OUTER outer)
+{
+}
index d67f8fbf63ceb4ea2d3ea65db890cf4ce02223ac..a70490f2384646eadab7a141bf8fb1f9b08f3b74 100644 (file)
@@ -1,5 +1,5 @@
 /* Traitement de certaines tables africaines.
-   Copyright © 1999 Progiciels Bourbeau-Pinard inc.
+   Copyright © 1999, 2000 Progiciels Bourbeau-Pinard inc.
    François Pinard <pinard@iro.umontreal.ca>, 1997.  */
 
 #include "common.h"
@@ -345,3 +345,8 @@ module_afrtran (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_afrtran (RECODE_OUTER outer)
+{
+}
index 4c1ec839387f680b751baf51cf81e596de4a4a3d..72428c5757fe1c9cfb23312bef284fdf6bfcf760 100644 (file)
@@ -179,3 +179,8 @@ module_applemac (RECODE_OUTER outer)
 #endif
   return true;
 }
+
+void
+delmodule_applemac (RECODE_OUTER outer)
+{
+}
index 46263ce49f4d57db88b0dd873ca010b75c004d35..8f8704a2c48a45b93a5c624a52f5f3b70d79a316 100644 (file)
@@ -91,3 +91,8 @@ module_ascii_latin1 (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_ascii_latin1 (RECODE_OUTER outer)
+{
+}
index abefcbfefc9dd79a5353063a7f040feef0186cef..2b31dcf19d298c22919a62c87ae60e52cfcf4a6b 100644 (file)
@@ -226,3 +226,8 @@ module_atarist (RECODE_OUTER outer)
 
 #endif
 }
+
+void
+delmodule_atarist (RECODE_OUTER outer)
+{
+}
index cf96423bd8e92891e4d18103c5a40ff97905b535..553f42fb19945cc9ae65b39ccef48e1bb084a1fc 100644 (file)
@@ -389,3 +389,8 @@ module_bangbang (RECODE_OUTER outer)
                       outer->quality_variable_to_byte,
                       NULL, transform_bangbang_latin1);
 }
+
+void
+delmodule_bangbang (RECODE_OUTER outer)
+{
+}
index b9ab02923eeb9471c1e00e5c3dff4dd0ec3a1091..8f6524b63dba91d01bb1923b72f26b9953bbab3e 100644 (file)
@@ -256,3 +256,8 @@ module_base64 (RECODE_OUTER outer)
     && declare_alias (outer, "b64", "Base64")
     && declare_alias (outer, "64", "Base64");
 }
+
+void
+delmodule_base64 (RECODE_OUTER outer)
+{
+}
index b04ca36e5badc7b5a1a4eb25a86de8e1e4eb25a6..878063b90d71426db5b44d8ecc00dfb91b7208b3 100644 (file)
@@ -331,3 +331,8 @@ module_cdcnos (RECODE_OUTER outer)
                       NULL, transform_cdcnos_ascii)
     && declare_alias (outer, "NOS", "CDC-NOS");
 }
+
+void
+delmodule_cdcnos (RECODE_OUTER outer)
+{
+}
index eb53b72c029cea48b04bfa3d9af01e4f89635ec6..25fa0fa4fb4f5e44d023644a15e0585e1c9713c9 100644 (file)
@@ -1,7 +1,7 @@
 /* DO NOT MODIFY THIS FILE!  It was generated by `recode/doc/tables.py'.  */
 
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1999, 2000 Free Software Foundation, Inc.
+   Copyright © 1999 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    This library is free software; you can redistribute it and/or
index a09591c7706969f1279be96ce1fc503ea9b23b84..d76211d5d5292e3e8ecd5a792853510ed821ffef 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1990, 92, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+   Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    This library is free software; you can redistribute it and/or
@@ -279,6 +279,21 @@ state_compare (const void *void_first, const void *void_second)
   return first->character == second->character;
 }
 
+static void
+state_free (void *void_state)
+{
+  struct state *state = void_state;
+  struct state *shift = state->shift;
+
+  while (shift != NULL)
+    {
+      struct state *next_shift = shift->next;
+      free (shift);
+      shift = next_shift;
+    }
+  free (state);
+}
+
 static struct state *
 prepare_shifted_state (struct state *state, unsigned character,
                       RECODE_CONST_STEP step)
@@ -367,7 +382,7 @@ init_combine (RECODE_STEP step,
   if (before_options || after_options)
     return false;
 
-  table = hash_initialize (0, NULL, state_hash, state_compare, NULL);
+  table = hash_initialize (0, NULL, state_hash, state_compare, state_free);
 
   if (!table)
     return false;
index 5d9bb64f0715d0b54b6e6d7cc1352aa465b4752d..d400e7e0267281f3d7fe693c37150e6a86647519 100644 (file)
@@ -31,3 +31,36 @@ bool module_quoted_printable PARAMS ((struct recode_outer *));
 bool module_ascii_latin1 PARAMS ((struct recode_outer *));
 bool module_latex_latin1 PARAMS ((struct recode_outer *));
 bool module_texte_latin1 PARAMS ((struct recode_outer *));
+void delmodule_african PARAMS ((struct recode_outer *));
+void delmodule_afrtran PARAMS ((struct recode_outer *));
+void delmodule_applemac PARAMS ((struct recode_outer *));
+void delmodule_atarist PARAMS ((struct recode_outer *));
+void delmodule_bangbang PARAMS ((struct recode_outer *));
+void delmodule_cdcnos PARAMS ((struct recode_outer *));
+void delmodule_ebcdic PARAMS ((struct recode_outer *));
+void delmodule_ibmpc PARAMS ((struct recode_outer *));
+void delmodule_iconqnx PARAMS ((struct recode_outer *));
+void delmodule_latin1_ascii PARAMS ((struct recode_outer *));
+void delmodule_mule PARAMS ((struct recode_outer *));
+void delmodule_strips PARAMS ((struct recode_outer *));
+void delmodule_testdump PARAMS ((struct recode_outer *));
+void delmodule_ucs PARAMS ((struct recode_outer *));
+void delmodule_utf16 PARAMS ((struct recode_outer *));
+void delmodule_utf7 PARAMS ((struct recode_outer *));
+void delmodule_utf8 PARAMS ((struct recode_outer *));
+void delmodule_varia PARAMS ((struct recode_outer *));
+void delmodule_vietnamese PARAMS ((struct recode_outer *));
+void delmodule_flat PARAMS ((struct recode_outer *));
+void delmodule_html PARAMS ((struct recode_outer *));
+void delmodule_latin1_latex PARAMS ((struct recode_outer *));
+void delmodule_latin1_texte PARAMS ((struct recode_outer *));
+void delmodule_rfc1345 PARAMS ((struct recode_outer *));
+void delmodule_texinfo PARAMS ((struct recode_outer *));
+void delmodule_base64 PARAMS ((struct recode_outer *));
+void delmodule_dump PARAMS ((struct recode_outer *));
+void delmodule_endline PARAMS ((struct recode_outer *));
+void delmodule_permutations PARAMS ((struct recode_outer *));
+void delmodule_quoted_printable PARAMS ((struct recode_outer *));
+void delmodule_ascii_latin1 PARAMS ((struct recode_outer *));
+void delmodule_latex_latin1 PARAMS ((struct recode_outer *));
+void delmodule_texte_latin1 PARAMS ((struct recode_outer *));
index f89cf581f3532101ae1ee7016a5248b35f1e8cd9..5ed54caa5c688248b0adbd5967f6e0711d65ee52 100644 (file)
@@ -459,3 +459,8 @@ module_dump (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_dump (RECODE_OUTER outer)
+{
+}
index 41c34751a0356134700437d6166ed0a2c992ac45..a76eadb2dab746ec21f24181ff2e518d5ee0c754 100644 (file)
@@ -261,3 +261,8 @@ module_ebcdic (RECODE_OUTER outer)
                       outer->quality_byte_reversible,
                       init_ebcdic_ibm_ascii, transform_byte_to_byte);
 }
+
+void
+delmodule_ebcdic (RECODE_OUTER outer)
+{
+}
index e29cdfa0a7d8ef326a8ab998be4d9ab885196cac..5367497dabc0e61b310434d59065e4bda4b2a083 100644 (file)
@@ -107,3 +107,8 @@ module_flat (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_flat (RECODE_OUTER outer)
+{
+}
index 8223ad1bd505782e5c5dc3ce4c9d9ae7dae600b4..25cca4bbb452f7c90dc43e6db71f473f5cbb434b 100644 (file)
@@ -1,7 +1,7 @@
 /* DO NOT MODIFY THIS FILE!  It was generated by `recode/doc/tables.py'.  */
 
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1999, 2000 Free Software Foundation, Inc.
+   Copyright © 1999 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    This library is free software; you can redistribute it and/or
index 79c2515f62096f475016b9d5cd671758492179ad..11edad746968a4cb6133bac05874c75d1e5bb4e0 100644 (file)
@@ -1,5 +1,5 @@
 /* hash - hashing table processing.
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
    Written by Jim Meyering, 1992.
 
    This program is free software; you can redistribute it and/or modify
@@ -35,10 +35,8 @@ typedef enum {false = 0, true = 1} bool;
 #include <stdio.h>
 #include <assert.h>
 
-#if !HAVE_DECL_FREE
+#if !HAVE_STDLIB_H
 void free ();
-#endif
-#if !HAVE_DECL_MALLOC
 char *malloc ();
 #endif
 
index c202ef969fe6743a6d6740d77ea6e5a51e6ddc3c..a4f80a3aa0853a93f46d3c4333f1b3544bd34355 100644 (file)
@@ -47,6 +47,8 @@
        &trade;         (TM)
 */
 
+/* XML with stand-alone=yes */
+#define V00            (1 << 0)
 /* Old Emacs-W3, HTML 1.1 ? */
 #define V11            (1 << 1)
 /* RFC1866, HTML 2.0 */
 
 static struct ucs2_to_string translations [] =
   {
-    ENTRY (33, "excl",      0                             ),
-    ENTRY (34, "quot",      0      | V20 | V27 | V32 | V40),
-    ENTRY (35, "num",       0                             ),
-    ENTRY (36, "dollar",    0                             ),
-    ENTRY (37, "percnt",    0                             ),
-    ENTRY (38, "amp",       0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (39, "apos",      0                             ),
-    ENTRY (40, "lpar",      0                             ),
-    ENTRY (41, "rpar",      0                             ),
-    ENTRY (42, "ast",       0                             ),
-    ENTRY (43, "plus",      0                             ),
-    ENTRY (44, "comma",     0                             ),
-    ENTRY (45, "horbar",    0                             ),
-    ENTRY (46, "period",    0                             ),
-    ENTRY (58, "colon",     0                             ),
-    ENTRY (59, "semi",      0                             ),
-    ENTRY (60, "lt",        0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (61, "equals",    0                             ),
-    ENTRY (62, "gt",        0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (63, "quest",     0                             ),
-    ENTRY (64, "commat",    0                             ),
-    ENTRY (91, "lsqb",      0                             ),
-    ENTRY (93, "rsqb",      0                             ),
-    ENTRY (94, "uarr",      0                             ),
-    ENTRY (95, "lowbar",    0                             ),
-    ENTRY (96, "grave",     0                             ),
-    ENTRY (123, "lcub",     0                             ),
-    ENTRY (124, "verbar",   0                             ),
-    ENTRY (125, "rcub",     0                             ),
-    ENTRY (126, "tilde",    0                             ),
-    ENTRY (160, "nbsp",     0            | V27 | V32 | V40),
-    ENTRY (161, "iexcl",    0            | V27 | V32 | V40),
-    ENTRY (162, "cent",     0            | V27 | V32 | V40),
-    ENTRY (163, "pound",    0            | V27 | V32 | V40),
-    ENTRY (164, "curren",   0            | V27 | V32 | V40),
-    ENTRY (165, "yen",      0            | V27 | V32 | V40),
-    ENTRY (166, "brkbar",   0 | V11                        ),
-    ENTRY (166, "brvbar",   0            | V27 | V32 | V40),
-    ENTRY (167, "sect",     0            | V27 | V32 | V40),
-    ENTRY (168, "die",      0 | V11                        ),
-    ENTRY (168, "uml",      0            | V27 | V32 | V40),
-    ENTRY (169, "copy",     0            | V27 | V32 | V40),
-    ENTRY (170, "ordf",     0            | V27 | V32 | V40),
-    ENTRY (171, "laquo",    0            | V27 | V32 | V40),
-    ENTRY (172, "not",      0            | V27 | V32 | V40),
-    ENTRY (173, "hyphen",   0 | V11                        ),
-    ENTRY (173, "shy",      0            | V27 | V32 | V40),
-    ENTRY (174, "reg",      0            | V27 | V32 | V40),
-    ENTRY (175, "hibar",    0 | V11                        ),
-    ENTRY (175, "macr",     0            | V27 | V32 | V40),
-    ENTRY (176, "deg",      0            | V27 | V32 | V40),
-    ENTRY (177, "plusmn",   0            | V27 | V32 | V40),
-    ENTRY (178, "sup2",     0            | V27 | V32 | V40),
-    ENTRY (179, "sup3",     0            | V27 | V32 | V40),
-    ENTRY (180, "acute",    0            | V27 | V32 | V40),
-    ENTRY (181, "micro",    0            | V27 | V32 | V40),
-    ENTRY (182, "para",     0            | V27 | V32 | V40),
-    ENTRY (183, "middot",   0            | V27 | V32 | V40),
-    ENTRY (184, "cedil",    0            | V27 | V32 | V40),
-    ENTRY (185, "sup1",     0            | V27 | V32 | V40),
-    ENTRY (186, "ordm",     0            | V27 | V32 | V40),
-    ENTRY (187, "raquo",    0            | V27 | V32 | V40),
-    ENTRY (188, "frac14",   0            | V27 | V32 | V40),
-    ENTRY (189, "half",     0 | V11                        ),
-    ENTRY (189, "frac12",   0            | V27 | V32 | V40),
-    ENTRY (190, "frac34",   0            | V27 | V32 | V40),
-    ENTRY (191, "iquest",   0            | V27 | V32 | V40),
-    ENTRY (192, "Agrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (193, "Aacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (194, "Acircu",   0 | V11                        ),
-    ENTRY (194, "Acirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (195, "Atilde",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (196, "Adiaer",   0 | V11                        ),
-    ENTRY (196, "Auml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (197, "Aring",    0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (198, "AE",       0 | V11                        ),
-    ENTRY (198, "AElig",    0      | V20 | V27 | V32 | V40),
-    ENTRY (199, "Ccedil",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (200, "Egrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (201, "Eacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (202, "Ecircu",   0 | V11                        ),
-    ENTRY (202, "Ecirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (203, "Ediaer",   0 | V11                        ),
-    ENTRY (203, "Euml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (204, "Igrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (205, "Iacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (206, "Icircu",   0 | V11                        ),
-    ENTRY (206, "Icirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (207, "Idiaer",   0 | V11                        ),
-    ENTRY (207, "Iuml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (208, "ETH",      0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (209, "Ntilde",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (210, "Ograve",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (211, "Oacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (212, "Ocircu",   0 | V11                        ),
-    ENTRY (212, "Ocirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (213, "Otilde",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (214, "Odiaer",   0 | V11                        ),
-    ENTRY (214, "Ouml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (215, "MULT",     0 | V11                        ),
-    ENTRY (215, "times",    0            | V27 | V32 | V40),
-    ENTRY (216, "Ostroke",  0 | V11                        ),
-    ENTRY (216, "Oslash",   0      | V20 | V27 | V32 | V40),
-    ENTRY (217, "Ugrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (218, "Uacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (219, "Ucircu",   0 | V11                        ),
-    ENTRY (219, "Ucirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (220, "Udiaer",   0 | V11                        ),
-    ENTRY (220, "Uuml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (221, "Yacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (222, "THORN",    0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (223, "ssharp",   0 | V11                        ),
-    ENTRY (223, "szlig",    0      | V20 | V27 | V32 | V40),
-    ENTRY (224, "agrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (225, "aacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (226, "acircu",   0 | V11                        ),
-    ENTRY (226, "acirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (227, "atilde",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (228, "adiaer",   0 | V11                        ),
-    ENTRY (228, "auml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (229, "aring",    0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (230, "ae",       0 | V11                        ),
-    ENTRY (230, "aelig",    0      | V20 | V27 | V32 | V40),
-    ENTRY (231, "ccedil",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (232, "egrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (233, "eacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (234, "ecircu",   0 | V11                        ),
-    ENTRY (234, "ecirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (235, "ediaer",   0 | V11                        ),
-    ENTRY (235, "euml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (236, "igrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (237, "iacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (238, "icircu",   0 | V11                        ),
-    ENTRY (238, "icirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (239, "idiaer",   0 | V11                        ),
-    ENTRY (239, "iuml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (240, "eth",      0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (241, "ntilde",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (242, "ograve",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (243, "oacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (244, "ocircu",   0 | V11                        ),
-    ENTRY (244, "ocirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (245, "otilde",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (246, "odiaer",   0 | V11                        ),
-    ENTRY (246, "ouml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (247, "DIVIS",    0 | V11                        ),
-    ENTRY (247, "divide",   0            | V27 | V32 | V40),
-    ENTRY (248, "ostroke",  0 | V11                        ),
-    ENTRY (248, "oslash",   0      | V20 | V27 | V32 | V40),
-    ENTRY (249, "ugrave",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (250, "uacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (251, "ucircu",   0 | V11                        ),
-    ENTRY (251, "ucirc",    0      | V20 | V27 | V32 | V40),
-    ENTRY (252, "udiaer",   0 | V11                        ),
-    ENTRY (252, "uuml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (253, "yacute",   0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (254, "thorn",    0 | V11 | V20 | V27 | V32 | V40),
-    ENTRY (255, "ydiaer",   0 | V11                        ),
-    ENTRY (255, "yuml",     0      | V20 | V27 | V32 | V40),
-    ENTRY (338, "OElig",    0                        | V40),
-    ENTRY (339, "oelig",    0                        | V40),
-    ENTRY (352, "Scaron",   0                        | V40),
-    ENTRY (353, "scaron",   0                        | V40),
-    ENTRY (376, "Yuml",     0                        | V40),
-    ENTRY (402, "fnof",     0                        | V40),
-    ENTRY (710, "circ",     0                        | V40),
-    ENTRY (732, "tilde",    0                        | V40),
-    ENTRY (913, "Alpha",    0                        | V40),
-    ENTRY (914, "Beta",     0                        | V40),
-    ENTRY (915, "Gamma",    0                        | V40),
-    ENTRY (916, "Delta",    0                        | V40),
-    ENTRY (917, "Epsilon",  0                        | V40),
-    ENTRY (918, "Zeta",     0                        | V40),
-    ENTRY (919, "Eta",      0                        | V40),
-    ENTRY (920, "Theta",    0                        | V40),
-    ENTRY (921, "Iota",     0                        | V40),
-    ENTRY (922, "Kappa",    0                        | V40),
-    ENTRY (923, "Lambda",   0                        | V40),
-    ENTRY (924, "Mu",       0                        | V40),
-    ENTRY (925, "Nu",       0                        | V40),
-    ENTRY (926, "Xi",       0                        | V40),
-    ENTRY (927, "Omicron",  0                        | V40),
-    ENTRY (928, "Pi",       0                        | V40),
-    ENTRY (929, "Rho",      0                        | V40),
-    ENTRY (931, "Sigma",    0                        | V40),
-    ENTRY (932, "Tau",      0                        | V40),
-    ENTRY (933, "Upsilon",  0                        | V40),
-    ENTRY (934, "Phi",      0                        | V40),
-    ENTRY (935, "Chi",      0                        | V40),
-    ENTRY (936, "Psi",      0                        | V40),
-    ENTRY (937, "Omega",    0                        | V40),
-    ENTRY (945, "alpha",    0                        | V40),
-    ENTRY (946, "beta",     0                        | V40),
-    ENTRY (947, "gamma",    0                        | V40),
-    ENTRY (948, "delta",    0                        | V40),
-    ENTRY (949, "epsilon",  0                        | V40),
-    ENTRY (950, "zeta",     0                        | V40),
-    ENTRY (951, "eta",      0                        | V40),
-    ENTRY (952, "theta",    0                        | V40),
-    ENTRY (953, "iota",     0                        | V40),
-    ENTRY (954, "kappa",    0                        | V40),
-    ENTRY (955, "lambda",   0                        | V40),
-    ENTRY (956, "mu",       0                        | V40),
-    ENTRY (957, "nu",       0                        | V40),
-    ENTRY (958, "xi",       0                        | V40),
-    ENTRY (959, "omicron",  0                        | V40),
-    ENTRY (960, "pi",       0                        | V40),
-    ENTRY (961, "rho",      0                        | V40),
-    ENTRY (962, "sigmaf",   0                        | V40),
-    ENTRY (963, "sigma",    0                        | V40),
-    ENTRY (964, "tau",      0                        | V40),
-    ENTRY (965, "upsilon",  0                        | V40),
-    ENTRY (966, "phi",      0                        | V40),
-    ENTRY (967, "chi",      0                        | V40),
-    ENTRY (968, "psi",      0                        | V40),
-    ENTRY (969, "omega",    0                        | V40),
-    ENTRY (977, "thetasym", 0                        | V40),
-    ENTRY (978, "upsih",    0                        | V40),
-    ENTRY (982, "piv",      0                        | V40),
-    ENTRY (8194, "ensp",    0                        | V40),
-    ENTRY (8195, "emsp",    0                        | V40),
-    ENTRY (8201, "thinsp",  0                        | V40),
-    ENTRY (8204, "zwnj",    0            | V27       | V40),
-    ENTRY (8205, "zwj",     0            | V27       | V40),
-    ENTRY (8206, "lrm",     0            | V27       | V40),
-    ENTRY (8207, "rlm",     0            | V27       | V40),
-    ENTRY (8211, "ndash",   0                        | V40),
-    ENTRY (8212, "mdash",   0                        | V40),
-    ENTRY (8216, "lsquo",   0                        | V40),
-    ENTRY (8217, "rsquo",   0                        | V40),
-    ENTRY (8218, "sbquo",   0                        | V40),
-    ENTRY (8220, "ldquo",   0                        | V40),
-    ENTRY (8221, "rdquo",   0                        | V40),
-    ENTRY (8222, "bdquo",   0                        | V40),
-    ENTRY (8224, "dagger",  0                        | V40),
-    ENTRY (8225, "Dagger",  0                        | V40),
-    ENTRY (8226, "bull",    0                        | V40),
-    ENTRY (8230, "hellip",  0                        | V40),
-    ENTRY (8240, "permil",  0                        | V40),
-    ENTRY (8242, "prime",   0                        | V40),
-    ENTRY (8243, "Prime",   0                        | V40),
-    ENTRY (8249, "lsaquo",  0                        | V40),
-    ENTRY (8250, "rsaquo",  0                        | V40),
-    ENTRY (8254, "oline",   0                        | V40),
-    ENTRY (8260, "frasl",   0                        | V40),
-    ENTRY (8364, "euro",    0                        | V40),
-    ENTRY (8465, "image",   0                        | V40),
-    ENTRY (8472, "weierp",  0                        | V40),
-    ENTRY (8476, "real",    0                        | V40),
-    ENTRY (8482, "trade",   0                        | V40),
-    ENTRY (8501, "alefsym", 0                        | V40),
-    ENTRY (8592, "larr",    0                        | V40),
-    ENTRY (8593, "uarr",    0                        | V40),
-    ENTRY (8594, "rarr",    0                        | V40),
-    ENTRY (8595, "darr",    0                        | V40),
-    ENTRY (8596, "harr",    0                        | V40),
-    ENTRY (8629, "crarr",   0                        | V40),
-    ENTRY (8656, "lArr",    0                        | V40),
-    ENTRY (8657, "uArr",    0                        | V40),
-    ENTRY (8658, "rArr",    0                        | V40),
-    ENTRY (8659, "dArr",    0                        | V40),
-    ENTRY (8660, "hArr",    0                        | V40),
-    ENTRY (8704, "forall",  0                        | V40),
-    ENTRY (8706, "part",    0                        | V40),
-    ENTRY (8707, "exist",   0                        | V40),
-    ENTRY (8709, "empty",   0                        | V40),
-    ENTRY (8711, "nabla",   0                        | V40),
-    ENTRY (8712, "isin",    0                        | V40),
-    ENTRY (8713, "notin",   0                        | V40),
-    ENTRY (8715, "ni",      0                        | V40),
-    ENTRY (8719, "prod",    0                        | V40),
-    ENTRY (8721, "sum",     0                        | V40),
-    ENTRY (8722, "minus",   0                        | V40),
-    ENTRY (8727, "lowast",  0                        | V40),
-    ENTRY (8730, "radic",   0                        | V40),
-    ENTRY (8733, "prop",    0                        | V40),
-    ENTRY (8734, "infin",   0                        | V40),
-    ENTRY (8736, "ang",     0                        | V40),
-    ENTRY (8743, "and",     0                        | V40),
-    ENTRY (8744, "or",      0                        | V40),
-    ENTRY (8745, "cap",     0                        | V40),
-    ENTRY (8746, "cup",     0                        | V40),
-    ENTRY (8747, "int",     0                        | V40),
-    ENTRY (8756, "there4",  0                        | V40),
-    ENTRY (8764, "sim",     0                        | V40),
-    ENTRY (8773, "cong",    0                        | V40),
-    ENTRY (8776, "asymp",   0                        | V40),
-    ENTRY (8800, "ne",      0                        | V40),
-    ENTRY (8801, "equiv",   0                        | V40),
-    ENTRY (8804, "le",      0                        | V40),
-    ENTRY (8805, "ge",      0                        | V40),
-    ENTRY (8834, "sub",     0                        | V40),
-    ENTRY (8835, "sup",     0                        | V40),
-    ENTRY (8836, "nsub",    0                        | V40),
-    ENTRY (8838, "sube",    0                        | V40),
-    ENTRY (8839, "supe",    0                        | V40),
-    ENTRY (8853, "oplus",   0                        | V40),
-    ENTRY (8855, "otimes",  0                        | V40),
-    ENTRY (8869, "perp",    0                        | V40),
-    ENTRY (8901, "sdot",    0                        | V40),
-    ENTRY (8968, "lceil",   0                        | V40),
-    ENTRY (8969, "rceil",   0                        | V40),
-    ENTRY (8970, "lfloor",  0                        | V40),
-    ENTRY (8971, "rfloor",  0                        | V40),
-    ENTRY (9001, "lang",    0                        | V40),
-    ENTRY (9002, "rang",    0                        | V40),
-    ENTRY (9674, "loz",     0                        | V40),
-    ENTRY (9824, "spades",  0                        | V40),
-    ENTRY (9827, "clubs",   0                        | V40),
-    ENTRY (9829, "hearts",  0                        | V40),
-    ENTRY (9830, "diams",   0                        | V40),
-    ENTRY (0,    NULL,      0                              )
+    ENTRY (33, "excl",      0                                   ),
+    ENTRY (34, "quot",      0 | V00      | V20 | V27 | V32 | V40),
+    ENTRY (35, "num",       0                                   ),
+    ENTRY (36, "dollar",    0                                   ),
+    ENTRY (37, "percnt",    0                                   ),
+    ENTRY (38, "amp",       0 | V00 | V11 | V20 | V27 | V32 | V40),
+    ENTRY (39, "apos",      0 | V00                             ),
+    ENTRY (40, "lpar",      0                                   ),
+    ENTRY (41, "rpar",      0                                   ),
+    ENTRY (42, "ast",       0                                   ),
+    ENTRY (43, "plus",      0                                   ),
+    ENTRY (44, "comma",     0                                   ),
+    ENTRY (45, "horbar",    0                                   ),
+    ENTRY (46, "period",    0                                   ),
+    ENTRY (58, "colon",     0                                   ),
+    ENTRY (59, "semi",      0                                   ),
+    ENTRY (60, "lt",        0 | V00 | V11 | V20 | V27 | V32 | V40),
+    ENTRY (61, "equals",    0                                   ),
+    ENTRY (62, "gt",        0 | V00 | V11 | V20 | V27 | V32 | V40),
+    ENTRY (63, "quest",     0                                   ),
+    ENTRY (64, "commat",    0                                   ),
+    ENTRY (91, "lsqb",      0                                   ),
+    ENTRY (93, "rsqb",      0                                   ),
+    ENTRY (94, "uarr",      0                                   ),
+    ENTRY (95, "lowbar",    0                                   ),
+    ENTRY (96, "grave",     0                                   ),
+    ENTRY (123, "lcub",     0                                   ),
+    ENTRY (124, "verbar",   0                                   ),
+    ENTRY (125, "rcub",     0                                   ),
+    ENTRY (126, "tilde",    0                                   ),
+    ENTRY (160, "nbsp",     0                  | V27 | V32 | V40),
+    ENTRY (161, "iexcl",    0                  | V27 | V32 | V40),
+    ENTRY (162, "cent",     0                  | V27 | V32 | V40),
+    ENTRY (163, "pound",    0                  | V27 | V32 | V40),
+    ENTRY (164, "curren",   0                  | V27 | V32 | V40),
+    ENTRY (165, "yen",      0                  | V27 | V32 | V40),
+    ENTRY (166, "brkbar",   0       | V11                        ),
+    ENTRY (166, "brvbar",   0                  | V27 | V32 | V40),
+    ENTRY (167, "sect",     0                  | V27 | V32 | V40),
+    ENTRY (168, "die",      0       | V11                        ),
+    ENTRY (168, "uml",      0                  | V27 | V32 | V40),
+    ENTRY (169, "copy",     0                  | V27 | V32 | V40),
+    ENTRY (170, "ordf",     0                  | V27 | V32 | V40),
+    ENTRY (171, "laquo",    0                  | V27 | V32 | V40),
+    ENTRY (172, "not",      0                  | V27 | V32 | V40),
+    ENTRY (173, "hyphen",   0       | V11                        ),
+    ENTRY (173, "shy",      0                  | V27 | V32 | V40),
+    ENTRY (174, "reg",      0                  | V27 | V32 | V40),
+    ENTRY (175, "hibar",    0       | V11                        ),
+    ENTRY (175, "macr",     0                  | V27 | V32 | V40),
+    ENTRY (176, "deg",      0                  | V27 | V32 | V40),
+    ENTRY (177, "plusmn",   0                  | V27 | V32 | V40),
+    ENTRY (178, "sup2",     0                  | V27 | V32 | V40),
+    ENTRY (179, "sup3",     0                  | V27 | V32 | V40),
+    ENTRY (180, "acute",    0                  | V27 | V32 | V40),
+    ENTRY (181, "micro",    0                  | V27 | V32 | V40),
+    ENTRY (182, "para",     0                  | V27 | V32 | V40),
+    ENTRY (183, "middot",   0                  | V27 | V32 | V40),
+    ENTRY (184, "cedil",    0                  | V27 | V32 | V40),
+    ENTRY (185, "sup1",     0                  | V27 | V32 | V40),
+    ENTRY (186, "ordm",     0                  | V27 | V32 | V40),
+    ENTRY (187, "raquo",    0                  | V27 | V32 | V40),
+    ENTRY (188, "frac14",   0                  | V27 | V32 | V40),
+    ENTRY (189, "half",     0       | V11                        ),
+    ENTRY (189, "frac12",   0                  | V27 | V32 | V40),
+    ENTRY (190, "frac34",   0                  | V27 | V32 | V40),
+    ENTRY (191, "iquest",   0                  | V27 | V32 | V40),
+    ENTRY (192, "Agrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (193, "Aacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (194, "Acircu",   0       | V11                        ),
+    ENTRY (194, "Acirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (195, "Atilde",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (196, "Adiaer",   0       | V11                        ),
+    ENTRY (196, "Auml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (197, "Aring",    0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (198, "AE",       0       | V11                        ),
+    ENTRY (198, "AElig",    0            | V20 | V27 | V32 | V40),
+    ENTRY (199, "Ccedil",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (200, "Egrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (201, "Eacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (202, "Ecircu",   0       | V11                        ),
+    ENTRY (202, "Ecirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (203, "Ediaer",   0       | V11                        ),
+    ENTRY (203, "Euml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (204, "Igrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (205, "Iacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (206, "Icircu",   0       | V11                        ),
+    ENTRY (206, "Icirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (207, "Idiaer",   0       | V11                        ),
+    ENTRY (207, "Iuml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (208, "ETH",      0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (209, "Ntilde",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (210, "Ograve",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (211, "Oacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (212, "Ocircu",   0       | V11                        ),
+    ENTRY (212, "Ocirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (213, "Otilde",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (214, "Odiaer",   0       | V11                        ),
+    ENTRY (214, "Ouml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (215, "MULT",     0       | V11                        ),
+    ENTRY (215, "times",    0                  | V27 | V32 | V40),
+    ENTRY (216, "Ostroke",  0       | V11                        ),
+    ENTRY (216, "Oslash",   0            | V20 | V27 | V32 | V40),
+    ENTRY (217, "Ugrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (218, "Uacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (219, "Ucircu",   0       | V11                        ),
+    ENTRY (219, "Ucirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (220, "Udiaer",   0       | V11                        ),
+    ENTRY (220, "Uuml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (221, "Yacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (222, "THORN",    0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (223, "ssharp",   0       | V11                        ),
+    ENTRY (223, "szlig",    0            | V20 | V27 | V32 | V40),
+    ENTRY (224, "agrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (225, "aacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (226, "acircu",   0       | V11                        ),
+    ENTRY (226, "acirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (227, "atilde",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (228, "adiaer",   0       | V11                        ),
+    ENTRY (228, "auml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (229, "aring",    0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (230, "ae",       0       | V11                        ),
+    ENTRY (230, "aelig",    0            | V20 | V27 | V32 | V40),
+    ENTRY (231, "ccedil",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (232, "egrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (233, "eacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (234, "ecircu",   0       | V11                        ),
+    ENTRY (234, "ecirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (235, "ediaer",   0       | V11                        ),
+    ENTRY (235, "euml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (236, "igrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (237, "iacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (238, "icircu",   0       | V11                        ),
+    ENTRY (238, "icirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (239, "idiaer",   0       | V11                        ),
+    ENTRY (239, "iuml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (240, "eth",      0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (241, "ntilde",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (242, "ograve",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (243, "oacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (244, "ocircu",   0       | V11                        ),
+    ENTRY (244, "ocirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (245, "otilde",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (246, "odiaer",   0       | V11                        ),
+    ENTRY (246, "ouml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (247, "DIVIS",    0       | V11                        ),
+    ENTRY (247, "divide",   0                  | V27 | V32 | V40),
+    ENTRY (248, "ostroke",  0       | V11                        ),
+    ENTRY (248, "oslash",   0            | V20 | V27 | V32 | V40),
+    ENTRY (249, "ugrave",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (250, "uacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (251, "ucircu",   0       | V11                        ),
+    ENTRY (251, "ucirc",    0            | V20 | V27 | V32 | V40),
+    ENTRY (252, "udiaer",   0       | V11                        ),
+    ENTRY (252, "uuml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (253, "yacute",   0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (254, "thorn",    0       | V11 | V20 | V27 | V32 | V40),
+    ENTRY (255, "ydiaer",   0       | V11                        ),
+    ENTRY (255, "yuml",     0            | V20 | V27 | V32 | V40),
+    ENTRY (338, "OElig",    0                              | V40),
+    ENTRY (339, "oelig",    0                              | V40),
+    ENTRY (352, "Scaron",   0                              | V40),
+    ENTRY (353, "scaron",   0                              | V40),
+    ENTRY (376, "Yuml",     0                              | V40),
+    ENTRY (402, "fnof",     0                              | V40),
+    ENTRY (710, "circ",     0                              | V40),
+    ENTRY (732, "tilde",    0                              | V40),
+    ENTRY (913, "Alpha",    0                              | V40),
+    ENTRY (914, "Beta",     0                              | V40),
+    ENTRY (915, "Gamma",    0                              | V40),
+    ENTRY (916, "Delta",    0                              | V40),
+    ENTRY (917, "Epsilon",  0                              | V40),
+    ENTRY (918, "Zeta",     0                              | V40),
+    ENTRY (919, "Eta",      0                              | V40),
+    ENTRY (920, "Theta",    0                              | V40),
+    ENTRY (921, "Iota",     0                              | V40),
+    ENTRY (922, "Kappa",    0                              | V40),
+    ENTRY (923, "Lambda",   0                              | V40),
+    ENTRY (924, "Mu",       0                              | V40),
+    ENTRY (925, "Nu",       0                              | V40),
+    ENTRY (926, "Xi",       0                              | V40),
+    ENTRY (927, "Omicron",  0                              | V40),
+    ENTRY (928, "Pi",       0                              | V40),
+    ENTRY (929, "Rho",      0                              | V40),
+    ENTRY (931, "Sigma",    0                              | V40),
+    ENTRY (932, "Tau",      0                              | V40),
+    ENTRY (933, "Upsilon",  0                              | V40),
+    ENTRY (934, "Phi",      0                              | V40),
+    ENTRY (935, "Chi",      0                              | V40),
+    ENTRY (936, "Psi",      0                              | V40),
+    ENTRY (937, "Omega",    0                              | V40),
+    ENTRY (945, "alpha",    0                              | V40),
+    ENTRY (946, "beta",     0                              | V40),
+    ENTRY (947, "gamma",    0                              | V40),
+    ENTRY (948, "delta",    0                              | V40),
+    ENTRY (949, "epsilon",  0                              | V40),
+    ENTRY (950, "zeta",     0                              | V40),
+    ENTRY (951, "eta",      0                              | V40),
+    ENTRY (952, "theta",    0                              | V40),
+    ENTRY (953, "iota",     0                              | V40),
+    ENTRY (954, "kappa",    0                              | V40),
+    ENTRY (955, "lambda",   0                              | V40),
+    ENTRY (956, "mu",       0                              | V40),
+    ENTRY (957, "nu",       0                              | V40),
+    ENTRY (958, "xi",       0                              | V40),
+    ENTRY (959, "omicron",  0                              | V40),
+    ENTRY (960, "pi",       0                              | V40),
+    ENTRY (961, "rho",      0                              | V40),
+    ENTRY (962, "sigmaf",   0                              | V40),
+    ENTRY (963, "sigma",    0                              | V40),
+    ENTRY (964, "tau",      0                              | V40),
+    ENTRY (965, "upsilon",  0                              | V40),
+    ENTRY (966, "phi",      0                              | V40),
+    ENTRY (967, "chi",      0                              | V40),
+    ENTRY (968, "psi",      0                              | V40),
+    ENTRY (969, "omega",    0                              | V40),
+    ENTRY (977, "thetasym", 0                              | V40),
+    ENTRY (978, "upsih",    0                              | V40),
+    ENTRY (982, "piv",      0                              | V40),
+    ENTRY (8194, "ensp",    0                              | V40),
+    ENTRY (8195, "emsp",    0                              | V40),
+    ENTRY (8201, "thinsp",  0                              | V40),
+    ENTRY (8204, "zwnj",    0                  | V27       | V40),
+    ENTRY (8205, "zwj",     0                  | V27       | V40),
+    ENTRY (8206, "lrm",     0                  | V27       | V40),
+    ENTRY (8207, "rlm",     0                  | V27       | V40),
+    ENTRY (8211, "ndash",   0                              | V40),
+    ENTRY (8212, "mdash",   0                              | V40),
+    ENTRY (8216, "lsquo",   0                              | V40),
+    ENTRY (8217, "rsquo",   0                              | V40),
+    ENTRY (8218, "sbquo",   0                              | V40),
+    ENTRY (8220, "ldquo",   0                              | V40),
+    ENTRY (8221, "rdquo",   0                              | V40),
+    ENTRY (8222, "bdquo",   0                              | V40),
+    ENTRY (8224, "dagger",  0                              | V40),
+    ENTRY (8225, "Dagger",  0                              | V40),
+    ENTRY (8226, "bull",    0                              | V40),
+    ENTRY (8230, "hellip",  0                              | V40),
+    ENTRY (8240, "permil",  0                              | V40),
+    ENTRY (8242, "prime",   0                              | V40),
+    ENTRY (8243, "Prime",   0                              | V40),
+    ENTRY (8249, "lsaquo",  0                              | V40),
+    ENTRY (8250, "rsaquo",  0                              | V40),
+    ENTRY (8254, "oline",   0                              | V40),
+    ENTRY (8260, "frasl",   0                              | V40),
+    ENTRY (8364, "euro",    0                              | V40),
+    ENTRY (8465, "image",   0                              | V40),
+    ENTRY (8472, "weierp",  0                              | V40),
+    ENTRY (8476, "real",    0                              | V40),
+    ENTRY (8482, "trade",   0                              | V40),
+    ENTRY (8501, "alefsym", 0                              | V40),
+    ENTRY (8592, "larr",    0                              | V40),
+    ENTRY (8593, "uarr",    0                              | V40),
+    ENTRY (8594, "rarr",    0                              | V40),
+    ENTRY (8595, "darr",    0                              | V40),
+    ENTRY (8596, "harr",    0                              | V40),
+    ENTRY (8629, "crarr",   0                              | V40),
+    ENTRY (8656, "lArr",    0                              | V40),
+    ENTRY (8657, "uArr",    0                              | V40),
+    ENTRY (8658, "rArr",    0                              | V40),
+    ENTRY (8659, "dArr",    0                              | V40),
+    ENTRY (8660, "hArr",    0                              | V40),
+    ENTRY (8704, "forall",  0                              | V40),
+    ENTRY (8706, "part",    0                              | V40),
+    ENTRY (8707, "exist",   0                              | V40),
+    ENTRY (8709, "empty",   0                              | V40),
+    ENTRY (8711, "nabla",   0                              | V40),
+    ENTRY (8712, "isin",    0                              | V40),
+    ENTRY (8713, "notin",   0                              | V40),
+    ENTRY (8715, "ni",      0                              | V40),
+    ENTRY (8719, "prod",    0                              | V40),
+    ENTRY (8721, "sum",     0                              | V40),
+    ENTRY (8722, "minus",   0                              | V40),
+    ENTRY (8727, "lowast",  0                              | V40),
+    ENTRY (8730, "radic",   0                              | V40),
+    ENTRY (8733, "prop",    0                              | V40),
+    ENTRY (8734, "infin",   0                              | V40),
+    ENTRY (8736, "ang",     0                              | V40),
+    ENTRY (8743, "and",     0                              | V40),
+    ENTRY (8744, "or",      0                              | V40),
+    ENTRY (8745, "cap",     0                              | V40),
+    ENTRY (8746, "cup",     0                              | V40),
+    ENTRY (8747, "int",     0                              | V40),
+    ENTRY (8756, "there4",  0                              | V40),
+    ENTRY (8764, "sim",     0                              | V40),
+    ENTRY (8773, "cong",    0                              | V40),
+    ENTRY (8776, "asymp",   0                              | V40),
+    ENTRY (8800, "ne",      0                              | V40),
+    ENTRY (8801, "equiv",   0                              | V40),
+    ENTRY (8804, "le",      0                              | V40),
+    ENTRY (8805, "ge",      0                              | V40),
+    ENTRY (8834, "sub",     0                              | V40),
+    ENTRY (8835, "sup",     0                              | V40),
+    ENTRY (8836, "nsub",    0                              | V40),
+    ENTRY (8838, "sube",    0                              | V40),
+    ENTRY (8839, "supe",    0                              | V40),
+    ENTRY (8853, "oplus",   0                              | V40),
+    ENTRY (8855, "otimes",  0                              | V40),
+    ENTRY (8869, "perp",    0                              | V40),
+    ENTRY (8901, "sdot",    0                              | V40),
+    ENTRY (8968, "lceil",   0                              | V40),
+    ENTRY (8969, "rceil",   0                              | V40),
+    ENTRY (8970, "lfloor",  0                              | V40),
+    ENTRY (8971, "rfloor",  0                              | V40),
+    ENTRY (9001, "lang",    0                              | V40),
+    ENTRY (9002, "rang",    0                              | V40),
+    ENTRY (9674, "loz",     0                              | V40),
+    ENTRY (9824, "spades",  0                              | V40),
+    ENTRY (9827, "clubs",   0                              | V40),
+    ENTRY (9829, "hearts",  0                              | V40),
+    ENTRY (9830, "diams",   0                              | V40),
+    ENTRY (0,    NULL,      0                                   )
   };
 
 #undef ENTRY
@@ -438,6 +440,16 @@ init_ucs2_html (RECODE_STEP step,
   return true;
 }
 
+static bool
+init_ucs2_html_v00 (RECODE_STEP step,
+                   RECODE_CONST_REQUEST request,
+                   RECODE_CONST_OPTION_LIST before_options,
+                   RECODE_CONST_OPTION_LIST after_options)
+{
+  return
+    init_ucs2_html (step, request, before_options, after_options, V00);
+}
+
 static bool
 init_ucs2_html_v11 (RECODE_STEP step,
                    RECODE_CONST_REQUEST request,
@@ -525,11 +537,13 @@ transform_ucs2_html (RECODE_SUBTASK subtask)
          put_byte ('#', subtask);
          while (divider > value)
            divider /= 10;
-         while (divider)
+         while (divider > 1)
            {
              put_byte ('0' + value / divider, subtask);
+             value %= divider;
              divider /= 10;
            }
+         put_byte ('0' + value, subtask);
          put_byte (';', subtask);
        }
       else
@@ -607,6 +621,16 @@ init_html_ucs2 (RECODE_STEP step,
   return true;
 }
 
+static bool
+init_html_v00_ucs2 (RECODE_STEP step,
+                   RECODE_CONST_REQUEST request,
+                   RECODE_CONST_OPTION_LIST before_options,
+                   RECODE_CONST_OPTION_LIST after_options)
+{
+  return
+    init_html_ucs2 (step, request, before_options, after_options, V00);
+}
+
 static bool
 init_html_v11_ucs2 (RECODE_STEP step,
                    RECODE_CONST_REQUEST request,
@@ -834,7 +858,13 @@ bool
 module_html (RECODE_OUTER outer)
 {
   return
-    declare_single (outer, "ISO-10646-UCS-2", "HTML_1.1",
+    declare_single (outer, "ISO-10646-UCS-2", "XML-standalone",
+                   outer->quality_byte_to_variable,
+                   init_ucs2_html_v00, transform_ucs2_html)
+    && declare_single (outer, "XML-standalone", "ISO-10646-UCS-2",
+                      outer->quality_variable_to_byte,
+                      init_html_v00_ucs2, transform_html_ucs2)
+    && declare_single (outer, "ISO-10646-UCS-2", "HTML_1.1",
                    outer->quality_byte_to_variable,
                    init_ucs2_html_v11, transform_ucs2_html)
     && declare_single (outer, "HTML_1.1", "ISO-10646-UCS-2",
@@ -865,6 +895,7 @@ module_html (RECODE_OUTER outer)
                       outer->quality_variable_to_byte,
                       init_html_v40_ucs2, transform_html_ucs2)
 
+    && declare_alias (outer, "h0", "XML-standalone")
     && declare_alias (outer, "h1", "HTML_1.1")
     && declare_alias (outer, "RFC1866", "HTML_2.0")
     && declare_alias (outer, "1866", "HTML_2.0")
@@ -877,3 +908,8 @@ module_html (RECODE_OUTER outer)
     && declare_alias (outer, "HTML", "HTML_4.0")
     && declare_alias (outer, "h", "HTML_4.0");
 }
+
+void
+delmodule_html (RECODE_OUTER outer)
+{
+}
index 0c01a785cebe7b74ea8a81fab06a0a63db0f07e2..382a53119b0df5136784db80220a8d150e804a97 100644 (file)
@@ -382,3 +382,8 @@ module_ibmpc (RECODE_OUTER outer)
 #endif
   return true;
 }
+
+void
+delmodule_ibmpc (RECODE_OUTER outer)
+{
+}
index 9f36f902307b8ba59a15f613a056e45ea1b74025..49d33ef308124cdcc866b8c9e435ee7727cb4ff0 100644 (file)
@@ -227,3 +227,8 @@ module_iconqnx (RECODE_OUTER outer)
                       NULL, transform_iconqnx_ibmpc)
     && declare_alias (outer, "QNX", "Icon-QNX");
 }
+
+void
+delmodule_iconqnx (RECODE_OUTER outer)
+{
+}
index 838468e24c0fb999e1e27921373960a77b5e9567..89a838deb686736ba0acf897be81e29d880022c9 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "common.h"
 #include "iconv.h"
+#include "libcharset.h"
 
 #if 0
 
 
 #endif
 
+/*
+ * Data type for general conversion loop.
+ */
+struct loop_funcs {
+  size_t (*loop_convert) (iconv_t icd,
+                          const char* * inbuf, size_t *inbytesleft,
+                          char* * outbuf, size_t *outbytesleft);
+  size_t (*loop_reset) (iconv_t icd,
+                        char* * outbuf, size_t *outbytesleft);
+};
+
 /*
  * Converters.
  */
@@ -57,6 +69,7 @@ enum {
 #ifdef USE_AIX
 #include "encodings_aix.def"
 #endif
+#include "encodings_local.def"
 #undef DEFENCODING
 ei_for_broken_compilers_that_dont_like_trailing_commas
 };
@@ -69,8 +82,17 @@ static struct encoding const all_encodings[] = {
 #include "encodings_aix.def"
 #endif
 #undef DEFENCODING
+#define DEFENCODING(xxx_names,xxx,xxx_ifuncs,xxx_ofuncs1,xxx_ofuncs2) \
+  { xxx_ifuncs, xxx_ofuncs1,xxx_ofuncs2, 0 },
+#include "encodings_local.def"
+#undef DEFENCODING
 };
 
+/*
+ * Conversion loops.
+ */
+#include "loops.h"
+
 /*
  * Alias lookup function.
  * Defines
@@ -131,70 +153,185 @@ static int strequal (const char* str1, const char* str2)
 
 iconv_t iconv_open (const char* tocode, const char* fromcode)
 {
-  struct conv_struct * cd = (struct conv_struct *) malloc(sizeof(struct conv_struct));
-  char buf[MAX_WORD_LENGTH+1];
+  struct conv_struct * cd;
+  char buf[MAX_WORD_LENGTH+10+1];
   const char* cp;
   char* bp;
   const struct alias * ap;
   unsigned int count;
+  unsigned int from_index;
+  int from_wchar;
+  unsigned int to_index;
+  int to_wchar;
+  int transliterate = 0;
 
-  if (cd == NULL) {
-    errno = ENOMEM;
-    return (iconv_t)(-1);
-  }
   /* Before calling aliases_lookup, convert the input string to upper case,
    * and check whether it's entirely ASCII (we call gperf with option "-7"
    * to achieve a smaller table) and non-empty. If it's not entirely ASCII,
    * or if it's too long, it is not a valid encoding name.
    */
-  /* Search tocode in the table. */
-  for (cp = tocode, bp = buf, count = MAX_WORD_LENGTH+1; ; cp++, bp++) {
-    unsigned char c = * (unsigned char *) cp;
-    if (c >= 0x80)
-      goto invalid;
-    if (c >= 'a' && c <= 'z')
-      c -= 'a'-'A';
-    *bp = c;
-    if (c == '\0')
-      break;
-    if (--count == 0)
+  for (to_wchar = 0;;) {
+    /* Search tocode in the table. */
+    for (cp = tocode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) {
+      unsigned char c = * (unsigned char *) cp;
+      if (c >= 0x80)
+        goto invalid;
+      if (c >= 'a' && c <= 'z')
+        c -= 'a'-'A';
+      *bp = c;
+      if (c == '\0')
+        break;
+      if (--count == 0)
+        goto invalid;
+    }
+    if (bp-buf > 10 && memcmp(bp-10,"//TRANSLIT",10)==0) {
+      bp -= 10;
+      *bp = '\0';
+      transliterate = 1;
+    }
+    ap = aliases_lookup(buf,bp-buf);
+    if (ap == NULL) {
+      ap = aliases2_lookup(buf);
+      if (ap == NULL)
+        goto invalid;
+    }
+    if (ap->encoding_index == ei_local_char) {
+      tocode = locale_charset();
+      if (tocode != NULL)
+        continue;
       goto invalid;
-  }
-  ap = aliases_lookup(buf,bp-buf);
-  if (ap == NULL) {
-    ap = aliases2_lookup(buf);
-    if (ap == NULL)
+    }
+    if (ap->encoding_index == ei_local_wchar_t) {
+#if __STDC_ISO_10646__
+      if (sizeof(wchar_t) == 4) {
+        to_index = ei_ucs4internal;
+        break;
+      }
+      if (sizeof(wchar_t) == 2) {
+        to_index = ei_ucs2internal;
+        break;
+      }
+      if (sizeof(wchar_t) == 1) {
+        to_index = ei_iso8859_1;
+        break;
+      }
+#endif
+#if HAVE_MBRTOWC
+      to_wchar = 1;
+      tocode = locale_charset();
+      if (tocode != NULL)
+        continue;
+#endif
       goto invalid;
+    }
+    to_index = ap->encoding_index;
+    break;
   }
-  cd->oindex = ap->encoding_index;
-  cd->ofuncs = all_encodings[ap->encoding_index].ofuncs;
-  cd->oflags = all_encodings[ap->encoding_index].oflags;
-  /* Search fromcode in the table. */
-  for (cp = fromcode, bp = buf, count = MAX_WORD_LENGTH+1; ; cp++, bp++) {
-    unsigned char c = * (unsigned char *) cp;
-    if (c >= 0x80)
+  for (from_wchar = 0;;) {
+    /* Search fromcode in the table. */
+    for (cp = fromcode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) {
+      unsigned char c = * (unsigned char *) cp;
+      if (c >= 0x80)
+        goto invalid;
+      if (c >= 'a' && c <= 'z')
+        c -= 'a'-'A';
+      *bp = c;
+      if (c == '\0')
+        break;
+      if (--count == 0)
+        goto invalid;
+    }
+    if (bp-buf > 10 && memcmp(bp-10,"//TRANSLIT",10)==0) {
+      bp -= 10;
+      *bp = '\0';
+    }
+    ap = aliases_lookup(buf,bp-buf);
+    if (ap == NULL) {
+      ap = aliases2_lookup(buf);
+      if (ap == NULL)
+        goto invalid;
+    }
+    if (ap->encoding_index == ei_local_char) {
+      fromcode = locale_charset();
+      if (fromcode != NULL)
+        continue;
       goto invalid;
-    if (c >= 'a' && c <= 'z')
-      c -= 'a'-'A';
-    *bp = c;
-    if (c == '\0')
-      break;
-    if (--count == 0)
+    }
+    if (ap->encoding_index == ei_local_wchar_t) {
+#if __STDC_ISO_10646__
+      if (sizeof(wchar_t) == 4) {
+        from_index = ei_ucs4internal;
+        break;
+      }
+      if (sizeof(wchar_t) == 2) {
+        from_index = ei_ucs2internal;
+        break;
+      }
+      if (sizeof(wchar_t) == 1) {
+        from_index = ei_iso8859_1;
+        break;
+      }
+#endif
+#if HAVE_WCRTOMB
+      from_wchar = 1;
+      fromcode = locale_charset();
+      if (fromcode != NULL)
+        continue;
+#endif
       goto invalid;
+    }
+    from_index = ap->encoding_index;
+    break;
   }
-  ap = aliases_lookup(buf,bp-buf);
-  if (ap == NULL) {
-    ap = aliases2_lookup(buf);
-    if (ap == NULL)
-      goto invalid;
+  cd = (struct conv_struct *) malloc(from_wchar != to_wchar
+                                     ? sizeof(struct wchar_conv_struct)
+                                     : sizeof(struct conv_struct));
+  if (cd == NULL) {
+    errno = ENOMEM;
+    return (iconv_t)(-1);
+  }
+  cd->iindex = from_index;
+  cd->ifuncs = all_encodings[from_index].ifuncs;
+  cd->oindex = to_index;
+  cd->ofuncs = all_encodings[to_index].ofuncs;
+  cd->oflags = all_encodings[to_index].oflags;
+  /* Initialize the loop functions. */
+#if HAVE_MBRTOWC
+  if (to_wchar) {
+#if HAVE_WCRTOMB
+    if (from_wchar) {
+      cd->lfuncs.loop_convert = wchar_id_loop_convert;
+      cd->lfuncs.loop_reset = wchar_id_loop_reset;
+    } else
+#endif
+    {
+      cd->lfuncs.loop_convert = wchar_to_loop_convert;
+      cd->lfuncs.loop_reset = wchar_to_loop_reset;
+    }
+  } else
+#endif
+  {
+#if HAVE_WCRTOMB
+    if (from_wchar) {
+      cd->lfuncs.loop_convert = wchar_from_loop_convert;
+      cd->lfuncs.loop_reset = wchar_from_loop_reset;
+    } else
+#endif
+    {
+      cd->lfuncs.loop_convert = unicode_loop_convert;
+      cd->lfuncs.loop_reset = unicode_loop_reset;
+    }
   }
-  cd->iindex = ap->encoding_index;
-  cd->ifuncs = all_encodings[ap->encoding_index].ifuncs;
   /* Initialize the states. */
   memset(&cd->istate,'\0',sizeof(state_t));
   memset(&cd->ostate,'\0',sizeof(state_t));
   /* Initialize the operation flags. */
-  cd->transliterate = 1;
+  cd->transliterate = transliterate;
+  /* Initialize additional fields. */
+  if (from_wchar != to_wchar) {
+    struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) cd;
+    memset(&wcd->state,'\0',sizeof(mbstate_t));
+  }
   /* Done. */
   return (iconv_t)cd;
 invalid:
@@ -207,225 +344,12 @@ size_t iconv (iconv_t icd,
               char* * outbuf, size_t *outbytesleft)
 {
   conv_t cd = (conv_t) icd;
-  if (inbuf == NULL || *inbuf == NULL) {
-    if (outbuf == NULL || *outbuf == NULL) {
-      /* Reset the states. */
-      memset(&cd->istate,'\0',sizeof(state_t));
-      memset(&cd->ostate,'\0',sizeof(state_t));
-      return 0;
-    } else {
-      if (cd->ofuncs.xxx_reset) {
-        int outcount =
-          cd->ofuncs.xxx_reset(cd, (unsigned char *) *outbuf, *outbytesleft);
-        if (outcount < 0) {
-          errno = E2BIG;
-          return -1;
-        }
-        *outbuf += outcount; *outbytesleft -= outcount;
-      }
-      memset(&cd->istate,'\0',sizeof(state_t));
-      memset(&cd->ostate,'\0',sizeof(state_t));
-      return 0;
-    }
-  } else {
-    size_t result = 0;
-    const unsigned char* inptr = (const unsigned char*) *inbuf;
-    size_t inleft = *inbytesleft;
-    unsigned char* outptr = (unsigned char*) *outbuf;
-    size_t outleft = *outbytesleft;
-    while (inleft > 0) {
-      wchar_t wc;
-      int incount;
-      int outcount;
-      incount = cd->ifuncs.xxx_mbtowc(cd,&wc,inptr,inleft);
-      if (incount <= 0) {
-        if (incount == 0) {
-          /* Case 1: invalid input */
-          errno = EILSEQ;
-          result = -1;
-          break;
-        }
-        if (incount == -1) {
-          /* Case 2: not enough bytes available to detect anything */
-          errno = EINVAL;
-          result = -1;
-          break;
-        }
-        /* Case 3: k bytes read, but only a shift sequence */
-        incount = -1-incount;
-      } else {
-        /* Case 4: k bytes read, making up a wide character */
-        if (outleft == 0) {
-          errno = E2BIG;
-          result = -1;
-          break;
-        }
-        outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft);
-        if (outcount != 0)
-          goto outcount_ok;
-        /* Try transliteration. */
-        result++;
-        if (cd->transliterate) {
-          if (cd->oflags & HAVE_HANGUL_JAMO) {
-            /* Decompose Hangul into Jamo. Use double-width Jamo (contained
-               in all Korean encodings and ISO-2022-JP-2), not half-width Jamo
-               (contained in Unicode only). */
-            wchar_t buf[3];
-            int ret = johab_hangul_decompose(cd,buf,wc);
-            if (ret != RET_ILSEQ) {
-              /* we know 1 <= ret <= 3 */
-              state_t backup_state = cd->ostate;
-              unsigned char* backup_outptr = outptr;
-              size_t backup_outleft = outleft;
-              int i, sub_outcount;
-              for (i = 0; i < ret; i++) {
-                if (outleft == 0) {
-                  sub_outcount = RET_TOOSMALL;
-                  goto johab_hangul_failed;
-                }
-                sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft);
-                if (sub_outcount <= 0)
-                  goto johab_hangul_failed;
-                if (!(sub_outcount <= outleft)) abort();
-                outptr += sub_outcount; outleft -= sub_outcount;
-              }
-              goto char_done;
-            johab_hangul_failed:
-              cd->ostate = backup_state;
-              outptr = backup_outptr;
-              outleft = backup_outleft;
-              if (sub_outcount < 0) {
-                errno = E2BIG;
-                result = -1;
-                break;
-              }
-            }
-          }
-          {
-            /* Try to use a variant, but postfix it with
-               U+303E IDEOGRAPHIC VARIATION INDICATOR
-               (cf. Ken Lunde's "CJKV information processing", p. 188). */
-            int indx = -1;
-            if (wc == 0x3006)
-              indx = 0;
-            else if (wc == 0x30f6)
-              indx = 1;
-            else if (wc >= 0x4e00 && wc < 0xa000)
-              indx = cjk_variants_indx[wc-0x4e00];
-            if (indx >= 0) {
-              for (;; indx++) {
-                wchar_t buf[2];
-                unsigned short variant = cjk_variants[indx];
-                unsigned short last = variant & 0x8000;
-                variant &= 0x7fff;
-                variant += 0x3000;
-                buf[0] = variant; buf[1] = 0x303e;
-                {
-                  state_t backup_state = cd->ostate;
-                  unsigned char* backup_outptr = outptr;
-                  size_t backup_outleft = outleft;
-                  int i, sub_outcount;
-                  for (i = 0; i < 2; i++) {
-                    if (outleft == 0) {
-                      sub_outcount = RET_TOOSMALL;
-                      goto variant_failed;
-                    }
-                    sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft);
-                    if (sub_outcount <= 0)
-                      goto variant_failed;
-                    if (!(sub_outcount <= outleft)) abort();
-                    outptr += sub_outcount; outleft -= sub_outcount;
-                  }
-                  goto char_done;
-                variant_failed:
-                  cd->ostate = backup_state;
-                  outptr = backup_outptr;
-                  outleft = backup_outleft;
-                  if (sub_outcount < 0) {
-                    errno = E2BIG;
-                    result = -1;
-                    break;
-                  }
-                }
-                if (last)
-                  break;
-              }
-            }
-          }
-          if (wc >= 0x2018 && wc <= 0x201a) {
-            /* Special case for quotation marks 0x2018, 0x2019, 0x201a */
-            wchar_t substitute =
-              (cd->oflags & HAVE_QUOTATION_MARKS
-               ? (wc == 0x201a ? 0x2018 : wc)
-               : (cd->oflags & HAVE_ACCENTS
-                  ? (wc==0x2019 ? 0x00b4 : 0x0060) /* use accents */
-                  : 0x0027 /* use apostrophe */
-              )  );
-            outcount = cd->ofuncs.xxx_wctomb(cd,outptr,substitute,outleft);
-            if (outcount != 0)
-              goto outcount_ok;
-          }
-          {
-            /* Use the transliteration table. */
-            int indx = translit_index(wc);
-            if (indx >= 0) {
-              const unsigned char * cp = &translit_data[indx];
-              unsigned int num = *cp++;
-              state_t backup_state = cd->ostate;
-              unsigned char* backup_outptr = outptr;
-              size_t backup_outleft = outleft;
-              unsigned int i;
-              int sub_outcount;
-              for (i = 0; i < num; i++) {
-                if (outleft == 0) {
-                  sub_outcount = RET_TOOSMALL;
-                  goto translit_failed;
-                }
-                sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,cp[i],outleft);
-                if (sub_outcount <= 0)
-                  goto translit_failed;
-                if (!(sub_outcount <= outleft)) abort();
-                outptr += sub_outcount; outleft -= sub_outcount;
-              }
-              goto char_done;
-            translit_failed:
-              cd->ostate = backup_state;
-              outptr = backup_outptr;
-              outleft = backup_outleft;
-              if (sub_outcount < 0) {
-                errno = E2BIG;
-                result = -1;
-                break;
-              }
-            }
-          }
-        }
-        outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft);
-        if (outcount != 0)
-          goto outcount_ok;
-        errno = EILSEQ;
-        result = -1;
-        break;
-      outcount_ok:
-        if (outcount < 0) {
-          errno = E2BIG;
-          result = -1;
-          break;
-        }
-        if (!(outcount <= outleft)) abort();
-        outptr += outcount; outleft -= outcount;
-      char_done:
-        ;
-      }
-      if (!(incount <= inleft)) abort();
-      inptr += incount; inleft -= incount;
-    }
-    *inbuf = (const char*) inptr;
-    *inbytesleft = inleft;
-    *outbuf = (char*) outptr;
-    *outbytesleft = outleft;
-    return result;
-  }
+  if (inbuf == NULL || *inbuf == NULL)
+    return cd->lfuncs.loop_reset(icd,outbuf,outbytesleft);
+  else
+    return cd->lfuncs.loop_convert(icd,
+                                   (const char* *)inbuf,inbytesleft,
+                                   outbuf,outbytesleft);
 }
 
 int iconv_close (iconv_t icd)
@@ -442,7 +366,11 @@ int iconvctl (iconv_t icd, int request, void* argument)
   conv_t cd = (conv_t) icd;
   switch (request) {
     case ICONV_TRIVIALP:
-      *(int *)argument = (cd->iindex == cd->oindex ? 1 : 0);
+      *(int *)argument =
+        ((cd->lfuncs.loop_convert == unicode_loop_convert
+          && cd->iindex == cd->oindex)
+         || cd->lfuncs.loop_convert == wchar_id_loop_convert
+         ? 1 : 0);
       return 0;
     case ICONV_GET_TRANSLITERATE:
       *(int *)argument = cd->transliterate;
@@ -456,4 +384,6 @@ int iconvctl (iconv_t icd, int request, void* argument)
   }
 }
 
+int _libiconv_version = _LIBICONV_VERSION;
+
 #endif
index cd3b9e8210d8170d30481116f42427d685344007..1f3034f735196b0fd83821054c4a5d92c86ac798 100644 (file)
@@ -195,3 +195,8 @@ module_latin1_ascii (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_latin1_ascii (RECODE_OUTER outer)
+{
+}
index 056b669813a3ce44617601aff11d2bccba8dc71a..a0a93263e90d75863d196b129a5ef65e13047ef1 100644 (file)
@@ -173,3 +173,8 @@ module_latin1_latex (RECODE_OUTER outer)
     && declare_alias (outer, "TeX", "LaTeX")
     && declare_alias (outer, "ltex", "LaTeX");
 }
+
+void
+delmodule_latin1_latex (RECODE_OUTER outer)
+{
+}
diff --git a/src/lat1texi.c b/src/lat1texi.c
deleted file mode 100644 (file)
index 51c73cc..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Conversion of files between different charsets and surfaces.
-   Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc.
-   Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
-
-   The `recode' 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 `recode' 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 `recode' 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 "common.h"
-
-static const char *const translation_table[128] =
-  {
-    NULL,                      /* 128 */
-    NULL,                      /* 129 */
-    NULL,                      /* 130 */
-    NULL,                      /* 131 */
-    NULL,                      /* 132 */
-    NULL,                      /* 133 */
-    NULL,                      /* 134 */
-    NULL,                      /* 135 */
-    NULL,                      /* 136 */
-    NULL,                      /* 137 */
-    NULL,                      /* 138 */
-    NULL,                      /* 139 */
-    NULL,                      /* 140 */
-    NULL,                      /* 141 */
-    NULL,                      /* 142 */
-    NULL,                      /* 143 */
-    NULL,                      /* 144 */
-    NULL,                      /* 145 */
-    NULL,                      /* 146 */
-    NULL,                      /* 147 */
-    NULL,                      /* 148 */
-    NULL,                      /* 149 */
-    NULL,                      /* 150 */
-    NULL,                      /* 151 */
-    NULL,                      /* 152 */
-    NULL,                      /* 153 */
-    NULL,                      /* 154 */
-    NULL,                      /* 155 */
-    NULL,                      /* 156 */
-    NULL,                      /* 157 */
-    NULL,                      /* 158 */
-    NULL,                      /* 159 */
-
-    " ",                       /* 160 no-break space */
-    "@exclamdown{}",           /* 161 inverted exclamation mark */
-    NULL,                      /* 162 cent sign */
-    NULL,                      /* 163 pound sign */
-    NULL,                      /* 164 currency sign */
-    NULL,                      /* 165 yen sign */
-    NULL,                      /* 166 broken bar */
-    NULL,                      /* 167 paragraph sign, section sign */
-    NULL,                      /* 168 diaeresis */
-    NULL,                      /* 169 copyright sign */
-    NULL,                      /* 170 feminine ordinal indicator */
-    "``",                      /* 171 left angle quotation mark */
-    NULL,                      /* 172 not sign */
-    NULL,                      /* 173 soft hyphen */
-    NULL,                      /* 174 registered trade mark sign */
-    NULL,                      /* 175 macron */
-    NULL,                      /* 176 degree sign */
-    NULL,                      /* 177 plus-minus sign */
-    NULL,                      /* 178 superscript two */
-    NULL,                      /* 179 superscript three */
-    NULL,                      /* 180 acute accent */
-    NULL,                      /* 181 small greek mu, micro sign */
-    NULL,                      /* 182 pilcrow sign */
-    NULL,                      /* 183 middle dot */
-    NULL,                      /* 184 cedilla */
-    NULL,                      /* 185 superscript one */
-    NULL,                      /* 186 masculine ordinal indicator */
-    "''",                      /* 187 right angle quotation mark */
-    NULL,                      /* 188 vulgar fraction one quarter */
-    NULL,                      /* 189 vulgar fraction one half */
-    NULL,                      /* 190 vulgar fraction three quarters */
-    "@questiondown{}",         /* 191 inverted question mark */
-    "@`A",                     /* 192 capital A with grave accent */
-    NULL,                      /* 193 capital A with acute accent */
-    "@^A",                     /* 194 capital A with circumflex accent */
-    NULL,                      /* 195 capital A with tilde */
-    "@\"A",                    /* 196 capital A diaeresis */
-    "@AA{}",                   /* 197 capital A with ring above */
-    NULL,                      /* 198 capital diphthong A with E */
-    "@,{C}",                   /* 199 capital C with cedilla */
-    "@`E",                     /* 200 capital E with grave accent */
-    "@\'E",                    /* 201 capital E with acute accent */
-    "@^E",                     /* 202 capital E with circumflex accent */
-    "@\"E",                    /* 203 capital E with diaeresis */
-    NULL,                      /* 204 capital I with grave accent */
-    NULL,                      /* 205 capital I with acute accent */
-    "@^I",                     /* 206 capital I with circumflex accent */
-    "@\"I",                    /* 207 capital I with diaeresis */
-    NULL,                      /* 208 capital icelandic ETH */
-    NULL,                      /* 209 capital N with tilde */
-    "@`O",                     /* 210 capital O with grave accent */
-    NULL,                      /* 211 capital O with acute accent */
-    "@^O",                     /* 212 capital O with circumflex accent */
-    NULL,                      /* 213 capital O with tilde */
-    "@\"O",                    /* 214 capital O with diaeresis */
-    NULL,                      /* 215 multiplication sign */
-    "@O{}",                    /* 216 capital O with oblique stroke */
-    "@`U",                     /* 217 capital U with grave accent */
-    NULL,                      /* 218 capital U with acute accent */
-    "@^U",                     /* 219 capital U with circumflex accent */
-    "@\"U",                    /* 220 capital U with diaeresis */
-    NULL,                      /* 221 capital Y with acute accent */
-    NULL,                      /* 222 capital icelandic THORN */
-    "@ss{}",                   /* 223 small german sharp s */
-    "@`a",                     /* 224 small a with grave accent */
-    NULL,                      /* 225 small a with acute accent */
-    "@^a",                     /* 226 small a with circumflex accent */
-    NULL,                      /* 227 small a with tilde */
-    "@\"a",                    /* 228 small a with diaeresis */
-    "@aa{}",                   /* 229 small a with ring above */
-    NULL,                      /* 230 small diphthong a with e */
-    "@,{c}",                   /* 231 small c with cedilla */
-    "@`e",                     /* 232 small e with grave accent */
-    "@\'e",                    /* 233 small e with acute accent */
-    "@^e",                     /* 234 small e with circumflex accent */
-    "@\"e",                    /* 235 small e with diaeresis */
-    "@`i",                     /* 236 small i with grave accent */
-    "@\'i",                    /* 237 small i with acute accent */
-    "@^{@dotless{i}}",         /* 238 small i with circumflex accent */
-    "@\"{@dotless{i}}",                /* 239 small i with diaeresis */
-    NULL,                      /* 240 small icelandic eth */
-    NULL,                      /* 241 small n with tilde */
-    "@`o",                     /* 242 small o with grave accent */
-    NULL,                      /* 243 small o with acute accent */
-    "@^o",                     /* 244 small o with circumflex accent */
-    NULL,                      /* 245 small o with tilde */
-    "@\"o",                    /* 246 small o with diaeresis */
-    NULL,                      /* 247 division sign */
-    NULL,                      /* 248 small o with oblique stroke */
-    "@`u",                     /* 249 small u with grave accent */
-    NULL,                      /* 250 small u with acute accent */
-    "@^u",                     /* 251 small u with circumflex accent */
-    "@\"u",                    /* 252 small u with diaeresis */
-    NULL,                      /* 253 small y with acute accent */
-    NULL,                      /* 254 small icelandic thorn */
-    NULL,                      /* 255 small y with diaeresis */
-  };
-
-static bool
-init_latin1_texinfo (RECODE_STEP step,
-                    RECODE_CONST_REQUEST request,
-                    RECODE_CONST_OPTION_LIST before_options,
-                    RECODE_CONST_OPTION_LIST after_options)
-{
-  RECODE_OUTER outer = request->outer;
-
-  unsigned rewritten;          /* number of rewritten translations */
-  const char **table;          /* allocated structure, including pool */
-  char *pool;                  /* cursor in character pool */
-  unsigned counter;            /* general purpose counter */
-
-  if (before_options || after_options)
-    return false;
-
-  /* The algorithm for proper processing of -c option depends on the fact
-     that quotes to be changed in colons are exactly those, in strings
-     from translation_table, which are in second position while the
-     string is two characters in length.  This is sufficient for now.  */
-
-  rewritten = 0;
-  if (request->diaeresis_char != '"')
-    for (counter = 128; counter < 256; counter++)
-      if (translation_table[counter - 128]
-         && translation_table[counter - 128][1] == '"'
-         && translation_table[counter - 128][2] == NUL)
-       rewritten++;
-
-  if (!ALLOC_SIZE (table, sizeof (char *) * 256 + 2 * 128 + 3 * rewritten,
-                  const char *))
-    return false;
-  pool = (char *) (table + 256);
-
-  for (counter = 0; counter < 128; counter++)
-    {
-      table[counter] = pool;
-      *pool++ = counter;
-      *pool++ = NUL;
-    }
-
-  for (; counter < 256; counter++)
-    if (request->diaeresis_char != '"'
-       && translation_table[counter - 128]
-       && translation_table[counter - 128][1] == '"'
-       && translation_table[counter - 128][2] == NUL)
-      {
-       table[counter] = pool;
-       *pool++ = translation_table[counter - 128][0];
-       *pool++ = request->diaeresis_char;
-       *pool++ = NUL;
-      }
-    else
-      table[counter] = translation_table[counter - 128];
-
-  step->step_type = RECODE_BYTE_TO_STRING;
-  step->step_table = table;
-  return true;
-}
-
-bool
-module_latin1_texinfo (RECODE_OUTER outer)
-{
-  return
-    declare_single (outer, "Latin-1", "Texinfo",
-                   outer->quality_byte_to_variable,
-                   init_latin1_texinfo, transform_byte_to_variable)
-    && declare_alias (outer, "texi", "Texinfo")
-    && declare_alias (outer, "ti", "Texinfo");
-}
index f39a1bcc82fd7822373e8f59362fb777684dd62f..fdc9392653ee1fe1b82f5da4ee4593c8c442d67a 100644 (file)
@@ -221,3 +221,8 @@ module_latin1_texte (RECODE_OUTER outer)
                    init_latin1_texte, transform_byte_to_variable)
     && declare_alias (outer, "txte", "Texte");
 }
+
+void
+delmodule_latin1_texte (RECODE_OUTER outer)
+{
+}
index dc7c4dc3724e63eb7bb1d0da2b09e021f2d7252d..fbaa40643c85e97fe688a29798258d96c3dd647d 100644 (file)
@@ -20,7 +20,7 @@
    Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* This is derived from Bruno Haible's `libiconv' package.  */
-static const char *iconv_name_list[426] =
+static const char *iconv_name_list[434] =
   {
     "US-ASCII",
        "ASCII",
@@ -352,6 +352,7 @@ static const char *iconv_name_list[426] =
        "EUC_CN", NULL,
     "GBK",
        "CP936", NULL,
+    "GB18030", NULL,
     "ISO-2022-CN",
        "csISO2022CN",
        "ISO2022CN", NULL,
@@ -369,6 +370,7 @@ static const char *iconv_name_list[426] =
        "CN-BIG5",
        "csBig5", NULL,
     "CP950", NULL,
+    "BIG5HKSCS", NULL,
     "EUC-KR",
        "EUCKR",
        "csEUCKR",
@@ -380,5 +382,7 @@ static const char *iconv_name_list[426] =
     "ISO-2022-KR",
        "csISO2022KR",
        "ISO2022KR", NULL,
+    "CHAR", NULL,
+    "WCHAR_T", NULL,
     NULL
   };
diff --git a/src/localcharset.c b/src/localcharset.c
new file mode 100644 (file)
index 0000000..936d93d
--- /dev/null
@@ -0,0 +1,262 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+   Copyright (C) 2000 Free Software Foundation, Inc.
+
+   This program 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, or (at your option)
+   any later version.
+
+   This program 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 this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   USA.  */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+
+#include <stdio.h>
+#if HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# undef WIN32   /* avoid warning on mingw32 */
+# define WIN32
+#endif
+
+#ifndef WIN32
+# if HAVE_LANGINFO_CODESET
+#  include <langinfo.h>
+# else
+#  if HAVE_SETLOCALE
+#   include <locale.h>
+#  endif
+# endif
+#else /* WIN32 */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+   possible multithread problem in the function get_charset_aliases. If we
+   are running in a threaded environment, and if two threads initialize
+   'charset_aliases' simultaneously, both will produce the same value,
+   and everything will be ok if the two assignments to 'charset_aliases'
+   are atomic. But I don't know what will happen if the two assignments mix.  */
+/* Pointer to the contents of the charset.alias file, if it has already been
+   read, else NULL.  Its format is:
+   ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0'  */
+static char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file.  */
+static const char *
+get_charset_aliases ()
+{
+  char *cp;
+
+  cp = charset_aliases;
+  if (cp == NULL)
+    {
+#ifndef WIN32
+      FILE *fp;
+      const char *dir = LIBDIR;
+      const char *base = "charset.alias";
+      char *file_name;
+
+      /* Concatenate dir and base into freshly allocated file_name.  */
+      {
+       size_t dir_len = strlen (dir);
+       size_t base_len = strlen (base);
+       int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+       file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+       if (file_name != NULL)
+         {
+           memcpy (file_name, dir, dir_len);
+           if (add_slash)
+             file_name[dir_len] = DIRECTORY_SEPARATOR;
+           memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+         }
+      }
+
+      if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+       /* Out of memory or file not found, treat it as empty.  */
+       cp = "";
+      else
+       {
+         /* Parse the file's contents.  */
+         int c;
+         char buf1[50+1];
+         char buf2[50+1];
+         char *res_ptr = NULL;
+         size_t res_size = 0;
+         size_t l1, l2;
+
+         for (;;)
+           {
+             c = getc (fp);
+             if (c == EOF)
+               break;
+             if (c == '\n' || c == ' ' || c == '\t')
+               continue;
+             if (c == '#')
+               {
+                 /* Skip comment, to end of line.  */
+                 do
+                   c = getc (fp);
+                 while (!(c == EOF || c == '\n'));
+                 if (c == EOF)
+                   break;
+                 continue;
+               }
+             ungetc (c, fp);
+             if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
+               break;
+             l1 = strlen (buf1);
+             l2 = strlen (buf2);
+             if (res_size == 0)
+               {
+                 res_size = l1 + 1 + l2 + 1;
+                 res_ptr = malloc (res_size + 1);
+               }
+             else
+               {
+                 res_size += l1 + 1 + l2 + 1;
+                 res_ptr = realloc (res_ptr, res_size + 1);
+               }
+             if (res_ptr == NULL)
+               {
+                 /* Out of memory. */
+                 res_size = 0;
+                 break;
+               }
+             strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+             strcpy (res_ptr + res_size - (l2 + 1), buf2);
+           }
+         fclose (fp);
+         if (res_size == 0)
+           cp = "";
+         else
+           {
+             *(res_ptr + res_size) = '\0';
+             cp = res_ptr;
+           }
+       }
+
+      if (file_name != NULL)
+       free (file_name);
+
+#else /* WIN32 */
+
+      /* To avoid the troubles of installing a separate file in the same
+        directory as the DLL and of retrieving the DLL's directory at
+        runtime, simply inline the aliases here.  */
+
+      cp = "CP936" "\0" "GBK" "\0"
+          "CP1361" "\0" "JOHAB" "\0";
+#endif
+
+      charset_aliases = cp;
+    }
+
+  return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+   into one of the canonical names listed in config.charset.
+   The result must not be freed; it is statically allocated.
+   If the canonical name cannot be determined, the result is a non-canonical
+   name or NULL.  */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset ()
+{
+  const char *codeset;
+  const char *aliases;
+
+#ifndef WIN32
+
+# if HAVE_LANGINFO_CODESET
+
+  /* Most systems support nl_langinfo (CODESET) nowadays.  */
+  codeset = nl_langinfo (CODESET);
+
+# else
+
+  /* On old systems which lack it, use setlocale and getenv.  */
+  const char *locale = NULL;
+
+#  if HAVE_SETLOCALE
+  locale = setlocale (LC_CTYPE, NULL);
+#  endif
+  if (locale == NULL || locale[0] == '\0')
+    {
+      locale = getenv ("LC_ALL");
+      if (locale == NULL || locale[0] == '\0')
+       {
+         locale = getenv ("LC_CTYPE");
+         if (locale == NULL || locale[0] == '\0')
+           locale = getenv ("LANG");
+       }
+    }
+
+  /* On some old systems, one used to set locale = "iso8859_1". On others,
+     you set it to "language_COUNTRY.charset". In any case, we resolve it
+     through the charset.alias file.  */
+  codeset = locale;
+
+# endif
+
+#else /* WIN32 */
+
+  static char buf[2 + 10 + 1];
+
+  /* Win32 has a function returning the locale's codepage as a number.  */
+  sprintf (buf, "CP%u", GetACP ());
+  codeset = buf;
+
+#endif
+
+  if (codeset != NULL && codeset[0] != '\0')
+    {
+      /* Resolve alias. */
+      for (aliases = get_charset_aliases ();
+          *aliases != '\0';
+          aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+       if (!strcmp (codeset, aliases))
+         {
+           codeset = aliases + strlen (aliases) + 1;
+           break;
+         }
+    }
+
+  return codeset;
+}
index 88c3390517c5a159d79d23b229ee880012818def..6f347792f5e1d51e7d4c21a8d0bcd73befcb37f0 100644 (file)
@@ -126,9 +126,14 @@ bool
 module_latex_latin1 (RECODE_OUTER outer)
 {
   return
-declare_single (outer, "LaTeX", "Latin-1",
-outer->quality_variable_to_byte,
-NULL, transform_latex_latin1)
+    declare_single (outer, "LaTeX", "Latin-1",
+                    outer->quality_variable_to_byte,
+                    NULL, transform_latex_latin1)
     && declare_alias (outer, "TeX", "LaTeX")
     && declare_alias (outer, "ltex", "LaTeX");
 }
+
+void
+delmodule_latex_latin1 (RECODE_OUTER outer)
+{
+}
index 84bb2c58dabfa0226b0196f11e40cec876762303..3a5de1d8bbebfda54008f17ccb8c9d8cd4eccc28 100644 (file)
@@ -299,19 +299,11 @@ Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n\
 FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n\
 "),
             stdout);
-#ifdef DEFAULT_CHARSET
-      if (*DEFAULT_CHARSET)
-       printf (_("\
-Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `%s'.\n\
-"),
-               DEFAULT_CHARSET);
-      else
-#else
-       fputs (_("\
-CHARSET has no default, define DEFAULT_CHARSET in the environment.\n\
+      fputs (_("\
+Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the locale\n\
+dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n\
 "),
               stdout);
-#endif
       fputs (_("\
 With -k, possible before charsets are listed for the given after CHARSET,\n\
 both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n\
@@ -396,6 +388,11 @@ main (int argc, char *const *argv)
   RECODE_REQUEST request;
 
   program_name = argv[0];
+  /* libtool creates a temporary executable whose names is prefixed with
+     "lt-".  Remove this prefix here.  */
+  if (strncmp (program_name, "lt-", 3) == 0)
+    program_name += 3;
+
   setlocale (LC_ALL, "");
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
index 1670bd10a54a8141f3203d4aba73981e6492d6a8..bb21100a243e0c30120087e31742216974121479 100644 (file)
@@ -2880,6 +2880,11 @@ module_ascii_latin1 (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_ascii_latin1 (RECODE_OUTER outer)
+{
+}
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
@@ -2916,12 +2921,17 @@ bool
 module_latex_latin1 (RECODE_OUTER outer)
 {
   return
-declare_single (outer, "LaTeX", "Latin-1",
-outer->quality_variable_to_byte,
-NULL, transform_latex_latin1)
+    declare_single (outer, "LaTeX", "Latin-1",
+                    outer->quality_variable_to_byte,
+                    NULL, transform_latex_latin1)
     && declare_alias (outer, "TeX", "LaTeX")
     && declare_alias (outer, "ltex", "LaTeX");
 }
+
+void
+delmodule_latex_latin1 (RECODE_OUTER outer)
+{
+}
 /* Conversion of files between different charsets and surfaces.
    Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1989.
@@ -2996,3 +3006,8 @@ module_texte_latin1 (RECODE_OUTER outer)
                    transform_texte_latin1)
     && declare_alias (outer, "txte", "Texte");
 }
+
+void
+delmodule_texte_latin1 (RECODE_OUTER outer)
+{
+}
index 164f54f3d38f3904103723c74542ef07089d7196..d3123d21dc99a56fdee56172a6e707a896cf33bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1990, 92, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+   Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc.
    François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    This program is free software; you can redistribute it and/or modify it
index 9ebed57c28c29388848bb74e7ab1fee9a0ac0274..3973e300ca660c6af92b17b8dd915b42d1154a61 100644 (file)
@@ -110,3 +110,8 @@ module_mule (RECODE_OUTER outer)
                       outer->quality_variable_to_byte,
                       NULL, transform_mule_latin2);
 }
+
+void
+delmodule_mule (RECODE_OUTER outer)
+{
+}
index 55c30807158409455f7a594f051ff9801338242f..6ec7721aa0d63c88632e1b68df0469811bc261ef 100644 (file)
@@ -172,13 +172,7 @@ disambiguate_name (RECODE_OUTER outer,
       case ALIAS_FIND_AS_EITHER:
        name = getenv ("DEFAULT_CHARSET");
        if (!name)
-         {
-#ifdef DEFAULT_CHARSET
-           name = DEFAULT_CHARSET;
-           if (!*name)
-#endif
-             return NULL;
-         }
+         name = "char"; /* locale dependent */
        break;
 
       default:
index 3e1d495b8213f9a0ce04ebaad6b58cccfb6a52f2..ebe8ae3759fc0d02edc3f08061c2f69c0918336f 100644 (file)
@@ -18,6 +18,7 @@
    Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "common.h"
+#include "hash.h"
 
 /*-----------------------------------------------------------------------.
 | This dummy fallback routine is used to flag the intent of a reversible |
index b23c742a6014141278e5824a35a062cfe94152bd..cf7fa685809acf35d36dee793bd934a6bb9ab9f3 100644 (file)
@@ -111,3 +111,8 @@ module_permutations (RECODE_OUTER outer)
                       NULL, permute_4321)
     && declare_alias (outer, "swabytes", "21-Permutation");
 }
+
+void
+delmodule_permutations (RECODE_OUTER outer)
+{
+}
diff --git a/src/pool.c b/src/pool.c
deleted file mode 100644 (file)
index f99b271..0000000
+++ /dev/null
@@ -1,1097 +0,0 @@
-/* DO NOT MODIFY THIS FILE!  It was generated by `recode/doc/tables.pl'.  */
-
-/* Conversion of files between different charsets and surfaces.
-   Copyright © 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
-
-   The `recode' 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 `recode' 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 `recode' 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 "common.h"
-
-const recode_ucs2 ucs2_data_pool[8560] =
-  {
-    /*    0 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*    8 */ 0x0020, 0x0021, 0x0022, 0xFFFF, 0xFFFF, 0x0025, 0x0026, 0x0027,
-    /*   16 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
-    /*   24 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-    /*   32 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
-    /*   40 */ 0xFFFF, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*   48 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
-    /*   56 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-    /*   64 */ 0x0058, 0x0059, 0x005A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x005F,
-    /*   72 */ 0xFFFF, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /*   80 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
-    /*   88 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-    /*   96 */ 0x0078, 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  104 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
-    /*  112 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
-    /*  120 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
-    /*  128 */ 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
-    /*  136 */ 0x0078, 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007F,
-    /*  144 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x00A4, 0x0025, 0x0026, 0x0027,
-    /*  152 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*  160 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
-    /*  168 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /*  176 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x203E, 0x007F,
-    /*  184 */ 0x0020, 0x0021, 0x0022, 0x00A3, 0x0024, 0x0025, 0x0026, 0x0027,
-    /*  192 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-    /*  200 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
-    /*  208 */ 0xE018, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*  216 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00C5, 0x25A0, 0x005F,
-    /*  224 */ 0xE019, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /*  232 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00E5, 0x2013, 0x007F,
-    /*  240 */ 0xFFFF, 0x00C0, 0xFFFF, 0xFFFF, 0x0110, 0x00C9, 0xFFFF, 0xFFFF,
-    /*  248 */ 0x00DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00DC, 0xFFFF, 0xFFFF,
-    /*  256 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00C6, 0x00D8, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  264 */ 0xFFFF, 0x00E0, 0xFFFF, 0xFFFF, 0x0111, 0x00E9, 0xFFFF, 0xFFFF,
-    /*  272 */ 0x00FE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FC, 0xFFFF, 0xFFFF,
-    /*  280 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00E6, 0x00F8, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  288 */ 0x0020, 0x0021, 0x00AB, 0x00BB, 0x0024, 0x0025, 0x0026, 0x0027,
-    /*  296 */ 0x0058, 0x0059, 0x005A, 0x00C6, 0x00D8, 0x00C5, 0x25A0, 0x005F,
-    /*  304 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x2013, 0x007F,
-    /*  312 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00C4, 0x00D6, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  320 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00E4, 0x00F6, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  328 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00C5, 0x005E, 0x005F,
-    /*  336 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00E5, 0x203E, 0x007F,
-    /*  344 */ 0x00C9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*  352 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00C5, 0x00DC, 0x005F,
-    /*  360 */ 0x00E9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /*  368 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00E5, 0x00FC, 0x007F,
-    /*  376 */ 0x0020, 0x3002, 0x300C, 0x300D, 0x3001, 0x30FB, 0x30F2, 0x30A1,
-    /*  384 */ 0x30A3, 0x30A5, 0x30A7, 0x30A9, 0x30E3, 0x30E5, 0x30E7, 0x30C3,
-    /*  392 */ 0x30FC, 0x30A2, 0x30A4, 0x30A6, 0x30A8, 0x30AA, 0x30AB, 0x30AD,
-    /*  400 */ 0x30AF, 0x30B1, 0x30B3, 0x30B5, 0x30B7, 0x30B9, 0x30BB, 0x30BD,
-    /*  408 */ 0x30BF, 0x30C1, 0x30C4, 0x30C6, 0x30C8, 0x30CA, 0x30CB, 0x30CC,
-    /*  416 */ 0x30CD, 0x30CE, 0x30CF, 0x30D2, 0x30D5, 0x30D8, 0x30DB, 0x30DE,
-    /*  424 */ 0x30DF, 0x30E0, 0x30E1, 0x30E2, 0x30E4, 0x30E6, 0x30E8, 0x30E9,
-    /*  432 */ 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EF, 0x30F3, 0x309B, 0x309C,
-    /*  440 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007F,
-    /*  448 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x00A5, 0x005D, 0x005E, 0x005F,
-    /*  456 */ 0x00A7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*  464 */ 0x0058, 0x0059, 0x005A, 0x00B0, 0x00E7, 0x00E9, 0x005E, 0x005F,
-    /*  472 */ 0x00F9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /*  480 */ 0x0078, 0x0079, 0x007A, 0x00E0, 0x00F2, 0x00E8, 0x00EC, 0x007F,
-    /*  488 */ 0x0058, 0x0059, 0x005A, 0x00C3, 0x00C7, 0x00D5, 0x005E, 0x005F,
-    /*  496 */ 0x0078, 0x0079, 0x007A, 0x00E3, 0x00E7, 0x00F5, 0x00B0, 0x007F,
-    /*  504 */ 0x0058, 0x0059, 0x005A, 0x00A1, 0x00D1, 0x00BF, 0x005E, 0x005F,
-    /*  512 */ 0x0078, 0x0079, 0x007A, 0x00B0, 0x00F1, 0x00E7, 0x007E, 0x007F,
-    /*  520 */ 0x00B4, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3,
-    /*  528 */ 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF,
-    /*  536 */ 0x03C0, 0x037A, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2,
-    /*  544 */ 0x03C7, 0x03C5, 0x03B6, 0x1FCF, 0x1FBF, 0x1FCE, 0x007E, 0x005F,
-    /*  552 */ 0x0060, 0x0391, 0x0392, 0x03A8, 0x0394, 0x0395, 0x03A6, 0x0393,
-    /*  560 */ 0x0397, 0x0399, 0x039E, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F,
-    /*  568 */ 0x03A0, 0xFFFF, 0x03A1, 0x03A3, 0x03A4, 0x0398, 0x03A9, 0x00B7,
-    /*  576 */ 0x03A7, 0x03A5, 0x0396, 0x1FDF, 0x1FFE, 0x1FDE, 0x00A8, 0x007F,
-    /*  584 */ 0x03A7, 0x03A5, 0x0396, 0x007B, 0x007C, 0x007D, 0x00A8, 0x007F,
-    /*  592 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00DC, 0x005E, 0x005F,
-    /*  600 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00FC, 0x00DF, 0x007F,
-    /*  608 */ 0x00E0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*  616 */ 0x0058, 0x0059, 0x005A, 0x00B0, 0x00E7, 0x00A7, 0x005E, 0x005F,
-    /*  624 */ 0x0078, 0x0079, 0x007A, 0x00E9, 0x00F9, 0x00E8, 0x00A8, 0x007F,
-    /*  632 */ 0x0020, 0x039E, 0x0022, 0x0393, 0x00A4, 0x0025, 0x0026, 0x0027,
-    /*  640 */ 0x0038, 0x0039, 0x03A8, 0x003B, 0x003C, 0x003D, 0x003E, 0x03A0,
-    /*  648 */ 0x0394, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /*  656 */ 0x0058, 0x0059, 0x005A, 0x03A9, 0x0398, 0x03A6, 0x039B, 0x03A3,
-    /*  664 */ 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
-    /*  672 */ 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
-    /*  680 */ 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
-    /*  688 */ 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
-    /*  696 */ 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
-    /*  704 */ 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
-    /*  712 */ 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
-    /*  720 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x007F,
-    /*  728 */ 0x0058, 0x0059, 0x005A, 0x2190, 0x00BD, 0x2192, 0x2191, 0x25A1,
-    /*  736 */ 0x0078, 0x0079, 0x007A, 0x00BC, 0x2225, 0x00BE, 0x00F7, 0x007F,
-    /*  744 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0x0024, 0x0025, 0xFFFF, 0x0027,
-    /*  752 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0xFFFF,
-    /*  760 */ 0x0058, 0x0059, 0x005A, 0x005B, 0xFFFF, 0x005D, 0xFFFF, 0xFFFF,
-    /*  768 */ 0x0078, 0x0079, 0x007A, 0xFFFF, 0x007C, 0xFFFF, 0xFFFF, 0x007F,
-    /*  776 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  784 */ 0xFFFF, 0xFFFF, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x039E, 0xFFFF,
-    /*  792 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2192, 0x222B,
-    /*  800 */ 0x2070, 0x00B9, 0x00B2, 0x00B3, 0x2074, 0x2075, 0x2076, 0x2077,
-    /*  808 */ 0x2078, 0x2079, 0x207A, 0x207B, 0x30EB, 0x0394, 0x039B, 0x03A9,
-    /*  816 */ 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087,
-    /*  824 */ 0x2088, 0x2089, 0x03A3, 0x03BC, 0x03BD, 0x03C9, 0x03C0, 0x007F,
-    /*  832 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x221A, 0xFFFF, 0x2192, 0x222B,
-    /*  840 */ 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03A3, 0x03BC, 0x03BD, 0x03C9,
-    /*  848 */ 0x03C0, 0x039E, 0x0394, 0x039B, 0x03A9, 0x042A, 0x207B, 0x207A,
-    /*  856 */ 0x0491, 0x0452, 0x0453, 0x0454, 0x0451, 0x0455, 0x0456, 0x0457,
-    /*  864 */ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045E, 0x045F, 0xFFFF,
-    /*  872 */ 0x0463, 0x0473, 0x0475, 0x046B, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  880 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x005B, 0xFFFF, 0x005D, 0xFFFF, 0x005F,
-    /*  888 */ 0x0490, 0x0402, 0x0403, 0x0404, 0x0401, 0x0405, 0x0406, 0x0407,
-    /*  896 */ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, 0x040F, 0x042A,
-    /*  904 */ 0x0462, 0x0472, 0x0474, 0x046A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /*  912 */ 0x0020, 0xE002, 0xE003, 0xE009, 0xE005, 0xE012, 0xE013, 0xE014,
-    /*  920 */ 0x00AB, 0x00BB, 0x201D, 0x201C, 0x0374, 0x0375, 0xFFFF, 0xFFFF,
-    /*  928 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00B7, 0xFFFF, 0xFFFF, 0xFFFF, 0x003B,
-    /*  936 */ 0xFFFF, 0x0391, 0x0392, 0xFFFF, 0x0393, 0x0394, 0x0395, 0x03DA,
-    /*  944 */ 0x03DC, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C,
-    /*  952 */ 0x039D, 0x039E, 0x039F, 0x03A0, 0x03DE, 0x03A1, 0x03A3, 0xFFFF,
-    /*  960 */ 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03E0, 0xFFFF,
-    /*  968 */ 0xFFFF, 0x03B1, 0x03B2, 0x03D0, 0x03B3, 0x03B4, 0x03B5, 0xE01A,
-    /*  976 */ 0xE01B, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC,
-    /*  984 */ 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0xE01C, 0x03C1, 0x03C3, 0x03C2,
-    /*  992 */ 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0xE01D, 0x007F,
-    /* 1000 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x00A5, 0x0025, 0x0026, 0x0027,
-    /* 1008 */ 0x0058, 0x0059, 0x005A, 0x00C6, 0x00D8, 0x00C5, 0x005E, 0x005F,
-    /* 1016 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x203E, 0x007F,
-    /* 1024 */ 0x0020, 0x0021, 0x0022, 0x00A7, 0x0024, 0x0025, 0x0026, 0x0027,
-    /* 1032 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x007C, 0x007F,
-    /* 1040 */ 0x00B5, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 1048 */ 0x00B4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 1056 */ 0x0078, 0x0079, 0x007A, 0x00E3, 0x00E7, 0x00F5, 0x007E, 0x007F,
-    /* 1064 */ 0x2022, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 1072 */ 0x0058, 0x0059, 0x005A, 0x00A1, 0x00D1, 0x00C7, 0x00BF, 0x005F,
-    /* 1080 */ 0x0078, 0x0079, 0x007A, 0x00B4, 0x00F1, 0x00E7, 0x00A8, 0x007F,
-    /* 1088 */ 0x00C1, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 1096 */ 0x0058, 0x0059, 0x005A, 0x00C9, 0x00D6, 0x00DC, 0x005E, 0x005F,
-    /* 1104 */ 0x00E1, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 1112 */ 0x0078, 0x0079, 0x007A, 0x00E9, 0x00F6, 0x00FC, 0x02DD, 0x007F,
-    /* 1120 */ 0x0040, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
-    /* 1128 */ 0x0398, 0x0399, 0xFFFF, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E,
-    /* 1136 */ 0x039F, 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0xFFFF,
-    /* 1144 */ 0x03A7, 0x03A8, 0x03A9, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
-    /* 1152 */ 0x0060, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
-    /* 1160 */ 0x03B8, 0x03B9, 0xFFFF, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE,
-    /* 1168 */ 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C2,
-    /* 1176 */ 0x03C7, 0x03C8, 0x03C9, 0x007B, 0x007C, 0x007D, 0x203E, 0x007F,
-    /* 1184 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x060C, 0x002D, 0x002E, 0x002F,
-    /* 1192 */ 0x0038, 0x0039, 0x003A, 0x061B, 0x003C, 0x003D, 0x003E, 0x061F,
-    /* 1200 */ 0x0040, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
-    /* 1208 */ 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
-    /* 1216 */ 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
-    /* 1224 */ 0x0638, 0x0639, 0x063A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
-    /* 1232 */ 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
-    /* 1240 */ 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F,
-    /* 1248 */ 0x0650, 0x0651, 0x0652, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 1256 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x007B, 0x007C, 0x007D, 0x203E, 0x007F,
-    /* 1264 */ 0x0020, 0xFFFF, 0x0022, 0x00A3, 0x0024, 0x0025, 0x0026, 0x0027,
-    /* 1272 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x2440, 0x003D, 0x2441, 0x003F,
-    /* 1280 */ 0x0058, 0x0059, 0x005A, 0xFFFF, 0x00A5, 0x2442, 0x005E, 0x005F,
-    /* 1288 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2443, 0xFFFF, 0xFFFF, 0x007F,
-    /* 1296 */ 0x0058, 0x0059, 0x005A, 0x2329, 0x00A5, 0x232A, 0x005E, 0x005F,
-    /* 1304 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0xFFFF, 0x007F,
-    /* 1312 */ 0x0020, 0xFFFF, 0xFFFF, 0x00A3, 0x00A4, 0x005C, 0xFFFF, 0x00A7,
-    /* 1320 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007C, 0xFFFF, 0xFFFF, 0x007F,
-    /* 1328 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x005C, 0xFFFF, 0xFFFF,
-    /* 1336 */ 0x0020, 0xFFFF, 0x300C, 0x300D, 0xFFFF, 0xFFFF, 0x30F2, 0xFFFF,
-    /* 1344 */ 0x0038, 0x0039, 0x2446, 0x2447, 0x2448, 0x2449, 0xFFFF, 0xFFFF,
-    /* 1352 */ 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
-    /* 1360 */ 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
-    /* 1368 */ 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
-    /* 1376 */ 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
-    /* 1384 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
-    /* 1392 */ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
-    /* 1400 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
-    /* 1408 */ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
-    /* 1416 */ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
-    /* 1424 */ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
-    /* 1432 */ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
-    /* 1440 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
-    /* 1448 */ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
-    /* 1456 */ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
-    /* 1464 */ 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
-    /* 1472 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF,
-    /* 1480 */ 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7,
-    /* 1488 */ 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B,
-    /* 1496 */ 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7,
-    /* 1504 */ 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C,
-    /* 1512 */ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
-    /* 1520 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
-    /* 1528 */ 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
-    /* 1536 */ 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
-    /* 1544 */ 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
-    /* 1552 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
-    /* 1560 */ 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
-    /* 1568 */ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9,
-    /* 1576 */ 0x0058, 0x0059, 0x005A, 0x005B, 0xFFFF, 0x005D, 0xFFFF, 0x005F,
-    /* 1584 */ 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xFFFF, 0x0124, 0x00A7,
-    /* 1592 */ 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xFFFF, 0x017B,
-    /* 1600 */ 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7,
-    /* 1608 */ 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xFFFF, 0x017C,
-    /* 1616 */ 0x00C0, 0x00C1, 0x00C2, 0xFFFF, 0x00C4, 0x010A, 0x0108, 0x00C7,
-    /* 1624 */ 0xFFFF, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7,
-    /* 1632 */ 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF,
-    /* 1640 */ 0x00E0, 0x00E1, 0x00E2, 0xFFFF, 0x00E4, 0x010B, 0x0109, 0x00E7,
-    /* 1648 */ 0xFFFF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
-    /* 1656 */ 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9,
-    /* 1664 */ 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7,
-    /* 1672 */ 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF,
-    /* 1680 */ 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7,
-    /* 1688 */ 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B,
-    /* 1696 */ 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E,
-    /* 1704 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A,
-    /* 1712 */ 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
-    /* 1720 */ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF,
-    /* 1728 */ 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F,
-    /* 1736 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B,
-    /* 1744 */ 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
-    /* 1752 */ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9,
-    /* 1760 */ 0x00A0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457,
-    /* 1768 */ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00AD, 0x045E, 0x045F,
-    /* 1776 */ 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407,
-    /* 1784 */ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00A4, 0x040E, 0x040F,
-    /* 1792 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
-    /* 1800 */ 0x0058, 0x0059, 0x005A, 0x00E2, 0x00E7, 0x00EA, 0x00EE, 0x005F,
-    /* 1808 */ 0x00F4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 1816 */ 0x0078, 0x0079, 0x007A, 0x00E9, 0x00F9, 0x00E8, 0x00FB, 0x007F,
-    /* 1824 */ 0x0058, 0x0059, 0x005A, 0x00E2, 0x00E7, 0x00EA, 0x00C9, 0x005F,
-    /* 1832 */ 0x00A0, 0x00A1, 0x00A8, 0x00A3, 0x00A2, 0x00A5, 0x00B1, 0x00B4,
-    /* 1840 */ 0x207D, 0x207E, 0x00BD, 0x207A, 0x00B8, 0x00AD, 0x00B7, 0x207B,
-    /* 1848 */ 0x2078, 0x2079, 0x00BC, 0x00BE, 0x21D0, 0x2260, 0x2265, 0x00BF,
-    /* 1856 */ 0x00C0, 0x00C1, 0x00C2, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB,
-    /* 1864 */ 0x00CD, 0x00CE, 0x00CF, 0x00D1, 0x00D3, 0x00D4, 0x00D9, 0x00DA,
-    /* 1872 */ 0x00DB, 0x00DC, 0x00AE, 0x00A7, 0x00B6, 0x00B5, 0x00AA, 0x00BA,
-    /* 1880 */ 0x2018, 0x2019, 0x201C, 0x201D, 0x00AB, 0x00BB, 0x00B0, 0x00A6,
-    /* 1888 */ 0x00E0, 0x00E1, 0x00E2, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB,
-    /* 1896 */ 0x00ED, 0x00EE, 0x00EF, 0x00F1, 0x00F3, 0x00F4, 0x00F9, 0x00FA,
-    /* 1904 */ 0x00FB, 0x00FC, 0x00A9, 0x2500, 0x2502, 0x2514, 0x2518, 0x2510,
-    /* 1912 */ 0x250C, 0x251C, 0x2534, 0x2524, 0x252C, 0x253C, 0x00AC, 0x2588,
-    /* 1920 */ 0x00A0, 0x201B, 0x2019, 0x00A3, 0xFFFF, 0xFFFF, 0x00A6, 0x00A7,
-    /* 1928 */ 0x00A8, 0x00A9, 0xFFFF, 0x00AB, 0x00AC, 0x00AD, 0xFFFF, 0x2014,
-    /* 1936 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x0385, 0x0386, 0x00B7,
-    /* 1944 */ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,
-    /* 1952 */ 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
-    /* 1960 */ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
-    /* 1968 */ 0x03A0, 0x03A1, 0xFFFF, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
-    /* 1976 */ 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
-    /* 1984 */ 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
-    /* 1992 */ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
-    /* 2000 */ 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
-    /* 2008 */ 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0xFFFF,
-    /* 2016 */ 0x00A0, 0xFFFF, 0xFFFF, 0xFFFF, 0x00A4, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2024 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x060C, 0x00AD, 0xFFFF, 0xFFFF,
-    /* 2032 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x061B, 0xFFFF, 0xFFFF, 0xFFFF, 0x061F,
-    /* 2040 */ 0xFFFF, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
-    /* 2048 */ 0x0638, 0x0639, 0x063A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2056 */ 0x00A0, 0xFFFF, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
-    /* 2064 */ 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E,
-    /* 2072 */ 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFF,
-    /* 2080 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2017,
-    /* 2088 */ 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
-    /* 2096 */ 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
-    /* 2104 */ 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
-    /* 2112 */ 0x05E8, 0x05E9, 0x05EA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2120 */ 0x00A0, 0x0104, 0x02D8, 0x0141, 0x0024, 0x013D, 0x015A, 0x00A7,
-    /* 2128 */ 0x017D, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 2136 */ 0x0058, 0x0059, 0x005A, 0x0160, 0x0110, 0x0106, 0x010C, 0x005F,
-    /* 2144 */ 0x017E, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 2152 */ 0x0078, 0x0079, 0x007A, 0x0161, 0x0111, 0x0107, 0x010D, 0x007F,
-    /* 2160 */ 0x02C7, 0x2261, 0x2227, 0x2228, 0x2229, 0x222A, 0x2282, 0x2283,
-    /* 2168 */ 0x21D0, 0x21D2, 0x2234, 0x2235, 0x2208, 0x220B, 0x2286, 0x2287,
-    /* 2176 */ 0x222B, 0x222E, 0x221E, 0x2207, 0x2202, 0x223C, 0x2248, 0x2243,
-    /* 2184 */ 0x2245, 0x2264, 0x2260, 0x2265, 0x2194, 0x00AC, 0x2200, 0x2203,
-    /* 2192 */ 0x05D0, 0x25A1, 0x2225, 0x0393, 0x0394, 0x22A5, 0x2220, 0x221F,
-    /* 2200 */ 0x0398, 0x2329, 0x232A, 0x039B, 0x2032, 0x2033, 0x039E, 0x2213,
-    /* 2208 */ 0x03A0, 0x00B2, 0x03A3, 0x00D7, 0x00B3, 0x03A5, 0x03A6, 0x00B7,
-    /* 2216 */ 0x03A8, 0x03A9, 0x2205, 0x21C0, 0x221A, 0x0192, 0x221D, 0x00B1,
-    /* 2224 */ 0x00B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
-    /* 2232 */ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x2030,
-    /* 2240 */ 0x03C0, 0x03C1, 0x03C3, 0x00F7, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
-    /* 2248 */ 0x03C8, 0x03C9, 0x2020, 0x2190, 0x2191, 0x2192, 0x2193, 0x203E,
-    /* 2256 */ 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
-    /* 2264 */ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F,
-    /* 2272 */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-    /* 2280 */ 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
-    /* 2288 */ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-    /* 2296 */ 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
-    /* 2304 */ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-    /* 2312 */ 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
-    /* 2320 */ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-    /* 2328 */ 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
-    /* 2336 */ 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
-    /* 2344 */ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F,
-    /* 2352 */ 0x0416, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
-    /* 2360 */ 0x0425, 0x0418, 0x0408, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
-    /* 2368 */ 0x041F, 0x0409, 0x0420, 0x0421, 0x0422, 0x0423, 0x0412, 0x040A,
-    /* 2376 */ 0x040F, 0x0405, 0x0417, 0x0428, 0x0402, 0x040B, 0x0427, 0x005F,
-    /* 2384 */ 0x0436, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
-    /* 2392 */ 0x0445, 0x0438, 0x0458, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
-    /* 2400 */ 0x043F, 0x0459, 0x0440, 0x0441, 0x0442, 0x0443, 0x0432, 0x045A,
-    /* 2408 */ 0x045F, 0x0455, 0x0437, 0x0448, 0x0452, 0x045B, 0x0447, 0x007F,
-    /* 2416 */ 0x040F, 0x0405, 0x0417, 0x0428, 0x0403, 0x040C, 0x0427, 0x005F,
-    /* 2424 */ 0x045F, 0x0455, 0x0437, 0x0448, 0x0453, 0x045C, 0x0447, 0x007F,
-    /* 2432 */ 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
-    /* 2440 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF,
-    /* 2448 */ 0x00E8, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B,
-    /* 2456 */ 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
-    /* 2464 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF,
-    /* 2472 */ 0x03A8, 0x03A9, 0xFFFF, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
-    /* 2480 */ 0xFFFF, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
-    /* 2488 */ 0x03C8, 0x03C9, 0xFFFF, 0x007B, 0x007C, 0x007D, 0x00AF, 0x007F,
-    /* 2496 */ 0x0058, 0x0059, 0x005A, 0x00A1, 0x00D1, 0x005D, 0x00BF, 0x005F,
-    /* 2504 */ 0x0078, 0x0079, 0x007A, 0x00B4, 0x00F1, 0x005B, 0x00A8, 0x007F,
-    /* 2512 */ 0x00A0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2520 */ 0xFFFF, 0xFFFF, 0x201C, 0xFFFF, 0x2190, 0x2191, 0x2192, 0x2193,
-    /* 2528 */ 0xFFFF, 0xFFFF, 0x201D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2536 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2122, 0x266A, 0xFFFF, 0xFFFF,
-    /* 2544 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x215B, 0x215C, 0x215D, 0x215E,
-    /* 2552 */ 0x2126, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0132, 0x013F,
-    /* 2560 */ 0xFFFF, 0xFFFF, 0x0152, 0xFFFF, 0x0174, 0x0176, 0x0178, 0x0149,
-    /* 2568 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0133, 0x0140,
-    /* 2576 */ 0xFFFF, 0xFFFF, 0x0153, 0xFFFF, 0x0175, 0x0177, 0xFFFF, 0xFFFF,
-    /* 2584 */ 0x00A0, 0x0401, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2592 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00AD, 0xFFFF, 0xFFFF,
-    /* 2600 */ 0xFFFF, 0x0451, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 2608 */ 0xFFFF, 0xFFFF, 0x0100, 0x0108, 0x010A, 0xFFFF, 0x0116, 0x0112,
-    /* 2616 */ 0x011C, 0x2018, 0x201C, 0x2122, 0x2190, 0x2191, 0x2192, 0x2193,
-    /* 2624 */ 0xFFFF, 0xFFFF, 0x0101, 0x0109, 0x010B, 0x00F0, 0x0117, 0x0113,
-    /* 2632 */ 0x011D, 0x2019, 0x201D, 0x266A, 0x215B, 0x215C, 0x215D, 0x215E,
-    /* 2640 */ 0xFFFF, 0x011E, 0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x0130,
-    /* 2648 */ 0x012A, 0x012E, 0x0132, 0x0134, 0x0136, 0x013B, 0x013F, 0x0145,
-    /* 2656 */ 0x2014, 0x014A, 0x014C, 0x0152, 0x0156, 0x015C, 0x0166, 0x00DE,
-    /* 2664 */ 0x0168, 0x016C, 0x016A, 0x0172, 0x0174, 0x00DD, 0x0176, 0x0178,
-    /* 2672 */ 0x2126, 0x011F, 0x0121, 0x0123, 0x0125, 0x0127, 0x0129, 0x0131,
-    /* 2680 */ 0x012B, 0x012F, 0x0133, 0x0135, 0x0137, 0x013C, 0x0140, 0x0146,
-    /* 2688 */ 0x0138, 0x014B, 0x014D, 0x0153, 0x0157, 0x015D, 0x0167, 0x00FE,
-    /* 2696 */ 0x0169, 0x016D, 0x016B, 0x0173, 0x0175, 0x00FD, 0x0177, 0x0149,
-    /* 2704 */ 0x2551, 0x2550, 0x2554, 0x2557, 0x255A, 0x255D, 0x2560, 0x2563,
-    /* 2712 */ 0x2566, 0x2569, 0x256C, 0xE019, 0x2584, 0x2588, 0x25AA, 0xFFFF,
-    /* 2720 */ 0x2502, 0x2500, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
-    /* 2728 */ 0x252C, 0x2534, 0x253C, 0x2591, 0x2592, 0x2593, 0xFFFF, 0xFFFF,
-    /* 2736 */ 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7,
-    /* 2744 */ 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A,
-    /* 2752 */ 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7,
-    /* 2760 */ 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2014, 0x016B, 0x014B,
-    /* 2768 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF,
-    /* 2776 */ 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168,
-    /* 2784 */ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
-    /* 2792 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF,
-    /* 2800 */ 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169,
-    /* 2808 */ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138,
-    /* 2816 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7,
-    /* 2824 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7,
-    /* 2832 */ 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
-    /* 2840 */ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
-    /* 2848 */ 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
-    /* 2856 */ 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
-    /* 2864 */ 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
-    /* 2872 */ 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
-    /* 2880 */ 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
-    /* 2888 */ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019,
-    /* 2896 */ 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7,
-    /* 2904 */ 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x1E61,
-    /* 2912 */ 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56,
-    /* 2920 */ 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x0178,
-    /* 2928 */ 0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A,
-    /* 2936 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF,
-    /* 2944 */ 0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B,
-    /* 2952 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF,
-    /* 2960 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7,
-    /* 2968 */ 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
-    /* 2976 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7,
-    /* 2984 */ 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF,
-    /* 2992 */ 0x00B4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3000 */ 0x02BB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3008 */ 0x0102, 0x00C0, 0x01DE, 0x01E0, 0x01E2, 0x0114, 0x00C8, 0x01E4,
-    /* 3016 */ 0x01E6, 0x01E8, 0x014E, 0x00D2, 0x01EA, 0x01EC, 0x01B7, 0x01EE,
-    /* 3024 */ 0x0103, 0x00E0, 0x01DF, 0x01E1, 0x01E3, 0x0115, 0x00E8, 0x01E5,
-    /* 3032 */ 0x01E7, 0x01E9, 0x014F, 0x00F2, 0x01EB, 0x01ED, 0x0292, 0x01EF,
-    /* 3040 */ 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
-    /* 3048 */ 0x00D8, 0x00A9, 0x201E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
-    /* 3056 */ 0x00F8, 0x00B9, 0x201C, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
-    /* 3064 */ 0x012E, 0x0116, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0104, 0x010C,
-    /* 3072 */ 0x0122, 0x00C9, 0x017D, 0x0118, 0x0112, 0x0136, 0x012A, 0x013B,
-    /* 3080 */ 0x0141, 0x0145, 0x0143, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
-    /* 3088 */ 0x0172, 0x0160, 0x015A, 0x016A, 0x00DC, 0x017B, 0x0179, 0x00DF,
-    /* 3096 */ 0x012F, 0x0117, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0105, 0x010D,
-    /* 3104 */ 0x0123, 0x00E9, 0x017E, 0x0119, 0x0113, 0x0137, 0x012B, 0x013C,
-    /* 3112 */ 0x0142, 0x0146, 0x0144, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
-    /* 3120 */ 0x0173, 0x0161, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017A, 0x0138,
-    /* 3128 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x007E, 0x007F,
-    /* 3136 */ 0xFFFF, 0x3002, 0x300C, 0x300D, 0x3001, 0x30FB, 0x30F2, 0x30A1,
-    /* 3144 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x20A9, 0x005D, 0x005E, 0x005F,
-    /* 3152 */ 0xFFFF, 0x00A1, 0x00A2, 0x00A3, 0xFFFF, 0x00A5, 0xFFFF, 0x00A7,
-    /* 3160 */ 0x00A4, 0x00A9, 0x00AA, 0x00AB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3168 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xFFFF, 0x00B5, 0x00B6, 0x00B7,
-    /* 3176 */ 0xFFFF, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0xFFFF, 0x00BF,
-    /* 3184 */ 0xFFFF, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0152,
-    /* 3192 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0178, 0xFFFF, 0x00DF,
-    /* 3200 */ 0xFFFF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0153,
-    /* 3208 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FF, 0xFFFF, 0xFFFF,
-    /* 3216 */ 0x00A0, 0x00C0, 0x00C2, 0x00C8, 0x00CA, 0x00CB, 0x00CE, 0x00CF,
-    /* 3224 */ 0x00B4, 0x02CB, 0x02C6, 0x00A8, 0x02DC, 0x00D9, 0x00DB, 0x20A4,
-    /* 3232 */ 0x00AF, 0x00DD, 0x00FD, 0x00B0, 0x00C7, 0x00E7, 0x00D1, 0x00F1,
-    /* 3240 */ 0x00A1, 0x00BF, 0x00A4, 0x00A3, 0x00A5, 0x00A7, 0x0192, 0x00A2,
-    /* 3248 */ 0x00E2, 0x00EA, 0x00F4, 0x00FB, 0x00E1, 0x00E9, 0x00F3, 0x00FA,
-    /* 3256 */ 0x00E0, 0x00E8, 0x00F2, 0x00F9, 0x00E4, 0x00EB, 0x00F6, 0x00FC,
-    /* 3264 */ 0x00C5, 0x00EE, 0x00D8, 0x00C6, 0x00E5, 0x00ED, 0x00F8, 0x00E6,
-    /* 3272 */ 0x00C4, 0x00EC, 0x00D6, 0x00DC, 0x00C9, 0x00EF, 0x00DF, 0x00D4,
-    /* 3280 */ 0x00C1, 0x00C3, 0x00E3, 0x00D0, 0x00F0, 0x00CD, 0x00CC, 0x00D3,
-    /* 3288 */ 0x00D2, 0x00D5, 0x00F5, 0x0160, 0x0161, 0x00DA, 0x0178, 0x00FF,
-    /* 3296 */ 0x00DE, 0x00FE, 0x00B7, 0x00B5, 0x00B6, 0x00BE, 0x2014, 0x00BC,
-    /* 3304 */ 0x00BD, 0x00AA, 0x00BA, 0x00AB, 0x25A0, 0x00BB, 0x00B1, 0xFFFF,
-    /* 3312 */ 0x00A0, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C7,
-    /* 3320 */ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D9,
-    /* 3328 */ 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00B5, 0x00D7, 0x00F7,
-    /* 3336 */ 0x00A9, 0x00A1, 0x00A2, 0x00A3, 0x2044, 0x00A5, 0x0192, 0x00A7,
-    /* 3344 */ 0x00A4, 0xFFFF, 0x201C, 0x00AB, 0xFFFF, 0xFFFF, 0xFB01, 0xFB02,
-    /* 3352 */ 0x00AE, 0x2013, 0x2020, 0x2021, 0x00B7, 0x00A6, 0x00B6, 0x2022,
-    /* 3360 */ 0xFFFF, 0xFFFF, 0x201D, 0x00BB, 0x2026, 0x2030, 0x00AC, 0x00BF,
-    /* 3368 */ 0x00B9, 0x02CB, 0x00B4, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9,
-    /* 3376 */ 0x00A8, 0x00B2, 0x02DA, 0x00B8, 0x00B3, 0x02DD, 0x02DB, 0x02C7,
-    /* 3384 */ 0x2014, 0x00B1, 0x00BC, 0x00BD, 0x00BE, 0x00E0, 0x00E1, 0x00E2,
-    /* 3392 */ 0x00E3, 0x00E4, 0x00E5, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB,
-    /* 3400 */ 0x00EC, 0x00C6, 0x00ED, 0x00AA, 0x00EE, 0x00EF, 0x00F0, 0x00F1,
-    /* 3408 */ 0x0141, 0x00D8, 0x0152, 0x00BA, 0x00F2, 0x00F3, 0x00F4, 0x00F5,
-    /* 3416 */ 0x00F6, 0x00E6, 0x00F9, 0x00FA, 0x00FB, 0x0131, 0x00FC, 0x00FD,
-    /* 3424 */ 0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x00FF, 0xFFFF, 0xFFFF,
-    /* 3432 */ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
-    /* 3440 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
-    /* 3448 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
-    /* 3456 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
-    /* 3464 */ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
-    /* 3472 */ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
-    /* 3480 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
-    /* 3488 */ 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8,
-    /* 3496 */ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0394, 0x00AB,
-    /* 3504 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x2126, 0x0152, 0x0153,
-    /* 3512 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
-    /* 3520 */ 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02,
-    /* 3528 */ 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
-    /* 3536 */ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
-    /* 3544 */ 0xE01E, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0xFFFF, 0xFFFF,
-    /* 3552 */ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
-    /* 3560 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
-    /* 3568 */ 0x2014, 0x2013, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25C6,
-    /* 3576 */ 0x00FF, 0x0178, 0x2044, 0x00A4, 0x0110, 0x0111, 0x00DE, 0x00FE,
-    /* 3584 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F,
-    /* 3592 */ 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
-    /* 3600 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087,
-    /* 3608 */ 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F,
-    /* 3616 */ 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B,
-    /* 3624 */ 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007,
-    /* 3632 */ 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004,
-    /* 3640 */ 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A,
-    /* 3648 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0x00E3, 0x00E5,
-    /* 3656 */ 0x00E7, 0x00F1, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 3664 */ 0x0026, 0x00E9, 0x00EA, 0x00EB, 0x00E8, 0x00ED, 0x00EE, 0x00EF,
-    /* 3672 */ 0x00EC, 0x00DF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 3680 */ 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0x00C3, 0x00C5,
-    /* 3688 */ 0x00C7, 0x00D1, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 3696 */ 0x00F8, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF,
-    /* 3704 */ 0x00CC, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 3712 */ 0x00D8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 3720 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0x00F0, 0x00FD, 0x00FE, 0x00B1,
-    /* 3728 */ 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
-    /* 3736 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x00B8, 0x00C6, 0x00A4,
-    /* 3744 */ 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 3752 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x00D0, 0x00DD, 0x00DE, 0x00AE,
-    /* 3760 */ 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC,
-    /* 3768 */ 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7,
-    /* 3776 */ 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 3784 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x00F2, 0x00F3, 0x00F5,
-    /* 3792 */ 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 3800 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x00F9, 0x00FA, 0x00FF,
-    /* 3808 */ 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 3816 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x00D6, 0x00D2, 0x00D3, 0x00D5,
-    /* 3824 */ 0x0038, 0x0039, 0x00B3, 0x00DB, 0x00DC, 0x00D9, 0x00DA, 0x009F,
-    /* 3832 */ 0xFFFF, 0xFFFF, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 3840 */ 0x0026, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3848 */ 0xFFFF, 0xFFFF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 3856 */ 0x002D, 0x002F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3864 */ 0xFFFF, 0xFFFF, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 3872 */ 0xFFFF, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 3880 */ 0x0068, 0x0069, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3888 */ 0xFFFF, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
-    /* 3896 */ 0x0071, 0x0072, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3904 */ 0xFFFF, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 3912 */ 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3920 */ 0x0048, 0x0049, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3928 */ 0x0051, 0x0052, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3936 */ 0x005C, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 3944 */ 0x0059, 0x005A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 3952 */ 0x0038, 0x0039, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x009F,
-    /* 3960 */ 0x00E7, 0x00F1, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 3968 */ 0x00EC, 0x00DF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 3976 */ 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 0x00A7, 0x00B6, 0x00BC,
-    /* 3984 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x203E, 0x00A8, 0x00B4, 0x2017,
-    /* 3992 */ 0x005C, 0x2003, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 4000 */ 0x0020, 0x00A0, 0x00E2, 0x007B, 0x00E0, 0x00E1, 0x00E3, 0x00E5,
-    /* 4008 */ 0x00E7, 0x00F1, 0x00C4, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 4016 */ 0x00EC, 0x007E, 0x00DC, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 4024 */ 0x002D, 0x002F, 0x00C2, 0x005B, 0x00C0, 0x00C1, 0x00C3, 0x00C5,
-    /* 4032 */ 0x00C7, 0x00D1, 0x00F6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4040 */ 0x00CC, 0x0060, 0x003A, 0x0023, 0x00A7, 0x0027, 0x003D, 0x0022,
-    /* 4048 */ 0x00B5, 0x00DF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4056 */ 0x00A2, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x0040, 0x00B6, 0x00BC,
-    /* 4064 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x203E, 0x00A8, 0x00B4, 0x00D7,
-    /* 4072 */ 0x00E4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 4080 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00A6, 0x00F2, 0x00F3, 0x00F5,
-    /* 4088 */ 0x00FC, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 4096 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x007D, 0x00F9, 0x00FA, 0x00FF,
-    /* 4104 */ 0x00D6, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 4112 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x005C, 0x00D2, 0x00D3, 0x00D5,
-    /* 4120 */ 0x0038, 0x0039, 0x00B3, 0x00DB, 0x005D, 0x00D9, 0x00DA, 0x009F,
-    /* 4128 */ 0xFFFF, 0xFFFF, 0x00F9, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4136 */ 0xFFFF, 0x0060, 0x003A, 0x0023, 0x00E0, 0x0027, 0x003D, 0x0022,
-    /* 4144 */ 0xFFFF, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4152 */ 0x00E9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 4160 */ 0x00E8, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 4168 */ 0x00E7, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 4176 */ 0xFFFF, 0xFFFF, 0x00C9, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 4184 */ 0xFFFF, 0xFFFF, 0x0024, 0x00C7, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 4192 */ 0xFFFF, 0xFFFF, 0x00E7, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4200 */ 0xFFFF, 0x00E3, 0x003A, 0x00D5, 0x00C3, 0x0027, 0x003D, 0x0022,
-    /* 4208 */ 0x00F5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 4216 */ 0x00E9, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 4224 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0x00E3, 0x007D,
-    /* 4232 */ 0x00E7, 0x00F1, 0x0023, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 4240 */ 0x00EC, 0x00DF, 0x00A4, 0x00C5, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 4248 */ 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0x00C3, 0x0024,
-    /* 4256 */ 0x00C7, 0x00D1, 0x00F8, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4264 */ 0x00A6, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF,
-    /* 4272 */ 0x00CC, 0x0060, 0x003A, 0x00C6, 0x00D8, 0x0027, 0x003D, 0x0022,
-    /* 4280 */ 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 4288 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x007B, 0x00B8, 0x005B, 0x005D,
-    /* 4296 */ 0x00B5, 0x00FC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4304 */ 0x00A2, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC,
-    /* 4312 */ 0x00E6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 4320 */ 0x00E5, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 4328 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x007E, 0x00F9, 0x00FA, 0x00FF,
-    /* 4336 */ 0x0020, 0x00A0, 0x00E2, 0x007B, 0x00E0, 0x00E1, 0x00E3, 0x007D,
-    /* 4344 */ 0x00E7, 0x00F1, 0x00A7, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 4352 */ 0x0026, 0x0060, 0x00EA, 0x00EB, 0x00E8, 0x00ED, 0x00EE, 0x00EF,
-    /* 4360 */ 0x002D, 0x002F, 0x00C2, 0x0023, 0x00C0, 0x00C1, 0x00C3, 0x0024,
-    /* 4368 */ 0x00CC, 0x00E9, 0x003A, 0x00C4, 0x00D6, 0x0027, 0x003D, 0x0022,
-    /* 4376 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x00B8, 0x00C6, 0x005D,
-    /* 4384 */ 0x00A2, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x005B, 0x00B6, 0x00BC,
-    /* 4392 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x0040, 0x00D2, 0x00D3, 0x00D5,
-    /* 4400 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x007B, 0x00E1, 0x00E3, 0x00E5,
-    /* 4408 */ 0x005C, 0x00F1, 0x00B0, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 4416 */ 0x0026, 0x005D, 0x00EA, 0x00EB, 0x007D, 0x00ED, 0x00EE, 0x00EF,
-    /* 4424 */ 0x007E, 0x00DF, 0x00E9, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 4432 */ 0x00C7, 0x00D1, 0x00F2, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4440 */ 0x00CC, 0x00F9, 0x003A, 0x00A3, 0x00A7, 0x0027, 0x003D, 0x0022,
-    /* 4448 */ 0x005B, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
-    /* 4456 */ 0x00B5, 0x00EC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4464 */ 0x00A2, 0x0023, 0x00A5, 0x00B7, 0x00A9, 0x0040, 0x00B6, 0x00BC,
-    /* 4472 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x00A6, 0x00F3, 0x00F5,
-    /* 4480 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x0060, 0x00FA, 0x00FF,
-    /* 4488 */ 0x00E7, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 4496 */ 0xFFFF, 0xFFFF, 0x00A3, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 4504 */ 0xFFFF, 0xFFFF, 0x0021, 0x00A5, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 4512 */ 0xFFFF, 0x203E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4520 */ 0x0024, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 4528 */ 0x00E7, 0x00A6, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 4536 */ 0x00EC, 0x00DF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 4544 */ 0x00C7, 0x0023, 0x00F1, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4552 */ 0x00CC, 0x0060, 0x003A, 0x00D1, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 4560 */ 0x00B5, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4568 */ 0x00BD, 0x00BE, 0x005E, 0x0021, 0x203E, 0x007E, 0x00B4, 0x00D7,
-    /* 4576 */ 0x00E7, 0x00F1, 0x0024, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 4584 */ 0x00EC, 0x00DF, 0x0021, 0x00A3, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 4592 */ 0x00B5, 0x203E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4600 */ 0x00A2, 0x005B, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC,
-    /* 4608 */ 0x00BD, 0x00BE, 0x005E, 0x005D, 0x007E, 0x00A8, 0x00B4, 0x00D7,
-    /* 4616 */ 0x30A3, 0x30A5, 0x00A3, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 4624 */ 0x0026, 0x30A7, 0x30A9, 0x30E3, 0x30E5, 0x30E7, 0x30C3, 0xFFFF,
-    /* 4632 */ 0x30FC, 0xFFFF, 0x0021, 0x00A5, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 4640 */ 0xFFFF, 0x30A2, 0x30A4, 0x30A6, 0x30A8, 0x30AA, 0x30AB, 0x30AD,
-    /* 4648 */ 0x30AF, 0x30B1, 0x30B3, 0xFFFF, 0x30B5, 0x30B7, 0x30B9, 0x30BB,
-    /* 4656 */ 0x30BD, 0x30BF, 0x30C1, 0x30C4, 0x30C6, 0x30C8, 0x30CA, 0x30CB,
-    /* 4664 */ 0x30CC, 0x30CD, 0x30CE, 0xFFFF, 0xFFFF, 0x30CF, 0x30D2, 0x30D5,
-    /* 4672 */ 0xFFFF, 0x203E, 0x30D8, 0x30DB, 0x30DE, 0x30DF, 0x30E0, 0x30E1,
-    /* 4680 */ 0x30E2, 0x30E4, 0x30E6, 0xFFFF, 0x30E8, 0x30E9, 0x30EA, 0x30EB,
-    /* 4688 */ 0xFFFF, 0xFFFF, 0x30EC, 0x30ED, 0x30EF, 0x30F3, 0x309B, 0x309C,
-    /* 4696 */ 0xFFFF, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 4704 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x0040, 0x00E1, 0x00E3, 0x00E5,
-    /* 4712 */ 0x0026, 0x007B, 0x00EA, 0x00EB, 0x007D, 0x00ED, 0x00EE, 0x00EF,
-    /* 4720 */ 0x00EC, 0x00DF, 0x00A7, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 4728 */ 0x00C7, 0x00D1, 0x00F9, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4736 */ 0x00CC, 0x00B5, 0x003A, 0x00A3, 0x00E0, 0x0027, 0x003D, 0x0022,
-    /* 4744 */ 0x0060, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4752 */ 0x00A2, 0x0023, 0x00A5, 0x00B7, 0x00A9, 0x005D, 0x00B6, 0x00BC,
-    /* 4760 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x203E, 0x007E, 0x00B4, 0x00D7,
-    /* 4768 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x00A6, 0x00FA, 0x00FF,
-    /* 4776 */ 0x0020, 0x00A0, 0x0651, 0xFE7D, 0x0640, 0xFFFF, 0x0621, 0x0622,
-    /* 4784 */ 0xFE82, 0x0623, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 4792 */ 0x0026, 0xFE84, 0x0624, 0xFFFF, 0xFFFF, 0x0626, 0x0627, 0xFE8E,
-    /* 4800 */ 0x0628, 0xFE91, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 4808 */ 0x002D, 0x002F, 0x0629, 0x062A, 0xFE97, 0x062B, 0xFE9B, 0x062C,
-    /* 4816 */ 0xFE9F, 0x062D, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 4824 */ 0xFEA3, 0x062E, 0xFEA7, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633,
-    /* 4832 */ 0xFEB3, 0x060C, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 4840 */ 0x0634, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 4848 */ 0x0068, 0x0069, 0xFEB7, 0x0635, 0xFEBB, 0x0636, 0xFEBF, 0x0637,
-    /* 4856 */ 0x0638, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
-    /* 4864 */ 0x0071, 0x0072, 0x0639, 0xFECA, 0xFECB, 0xFECC, 0x063A, 0xFECE,
-    /* 4872 */ 0xFECF, 0x00F7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 4880 */ 0x0079, 0x007A, 0xFED0, 0x0641, 0xFED3, 0x0642, 0xFED7, 0x0643,
-    /* 4888 */ 0xFEDB, 0x0644, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8, 0xFFFF, 0xFFFF,
-    /* 4896 */ 0xFEFB, 0xFEFC, 0xFEDF, 0x0645, 0xFEE3, 0x0646, 0xFEE7, 0x0647,
-    /* 4904 */ 0x061B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 4912 */ 0x0048, 0x0049, 0x00AD, 0xFEEB, 0xFFFF, 0xFEEC, 0xFFFF, 0x0648,
-    /* 4920 */ 0x061F, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 4928 */ 0x0051, 0x0052, 0x0649, 0xFEF0, 0x064A, 0xFEF2, 0xFEF3, 0x0660,
-    /* 4936 */ 0x00D7, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 4944 */ 0x0059, 0x005A, 0x0661, 0x0662, 0xFFFF, 0x0663, 0x0664, 0x0665,
-    /* 4952 */ 0x0038, 0x0039, 0xFFFF, 0x0666, 0x0667, 0x0668, 0x0669, 0x009F,
-    /* 4960 */ 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
-    /* 4968 */ 0x0398, 0x0399, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 4976 */ 0x0026, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0,
-    /* 4984 */ 0x03A1, 0x03A3, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 4992 */ 0x002D, 0x002F, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9,
-    /* 5000 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 5008 */ 0xFFFF, 0x0386, 0x0388, 0x0389, 0xFFFF, 0x038A, 0x038C, 0x038E,
-    /* 5016 */ 0x038F, 0x0060, 0x003A, 0x00A3, 0x00A7, 0x0027, 0x003D, 0x0022,
-    /* 5024 */ 0x00C4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 5032 */ 0x0068, 0x0069, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6,
-    /* 5040 */ 0x00D6, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
-    /* 5048 */ 0x0071, 0x0072, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC,
-    /* 5056 */ 0x00DC, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 5064 */ 0x0079, 0x007A, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C2,
-    /* 5072 */ 0xFFFF, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD,
-    /* 5080 */ 0x03CB, 0x03CE, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,
-    /* 5088 */ 0x00B8, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 5096 */ 0x0048, 0x0049, 0xFFFF, 0x03C9, 0x00C2, 0x00E0, 0x00E4, 0x00EA,
-    /* 5104 */ 0x00B4, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 5112 */ 0x0051, 0x0052, 0x00B1, 0x00E9, 0x00E8, 0x00EB, 0x00EE, 0x00EF,
-    /* 5120 */ 0x00B0, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 5128 */ 0x0059, 0x005A, 0x00BD, 0x00F6, 0x00F4, 0x00FB, 0x00F9, 0x00FC,
-    /* 5136 */ 0x0038, 0x0039, 0x00FF, 0x00E7, 0x00C7, 0xFFFF, 0xFFFF, 0x009F,
-    /* 5144 */ 0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6,
-    /* 5152 */ 0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 5160 */ 0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
-    /* 5168 */ 0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 5176 */ 0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
-    /* 5184 */ 0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 5192 */ 0xFFFF, 0x05EA, 0xFFFF, 0xFFFF, 0x00A0, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 5200 */ 0x21D4, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 5208 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 5216 */ 0x0071, 0x0072, 0xFFFF, 0xFFFF, 0xFFFF, 0x00B8, 0xFFFF, 0x00A4,
-    /* 5224 */ 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00AE,
-    /* 5232 */ 0x00BD, 0x00BE, 0x005B, 0x005D, 0x203E, 0x00A8, 0x00B4, 0x00D7,
-    /* 5240 */ 0x0048, 0x0049, 0x00AD, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 5248 */ 0x0051, 0x0052, 0x00B9, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 5256 */ 0x0059, 0x005A, 0x00B2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 5264 */ 0x0038, 0x0039, 0x00B3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x009F,
-    /* 5272 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
-    /* 5280 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
-    /* 5288 */ 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
-    /* 5296 */ 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192,
-    /* 5304 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
-    /* 5312 */ 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
-    /* 5320 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-    /* 5328 */ 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
-    /* 5336 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
-    /* 5344 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
-    /* 5352 */ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
-    /* 5360 */ 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
-    /* 5368 */ 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
-    /* 5376 */ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229,
-    /* 5384 */ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
-    /* 5392 */ 0x00B0, 0x00B7, 0x2022, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
-    /* 5400 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x00AF, 0x00A8, 0x00B4, 0x00D7,
-    /* 5408 */ 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192,
-    /* 5416 */ 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
-    /* 5424 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0,
-    /* 5432 */ 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510,
-    /* 5440 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3,
-    /* 5448 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4,
-    /* 5456 */ 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE,
-    /* 5464 */ 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580,
-    /* 5472 */ 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE,
-    /* 5480 */ 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4,
-    /* 5488 */ 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8,
-    /* 5496 */ 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
-    /* 5504 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x0386, 0x00E7,
-    /* 5512 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0388, 0x00C4, 0x0389,
-    /* 5520 */ 0x038A, 0xFFFF, 0x038C, 0x00F4, 0x00F6, 0x038E, 0x00FB, 0x00F9,
-    /* 5528 */ 0x038F, 0x00D6, 0x00DC, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF,
-    /* 5536 */ 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394,
-    /* 5544 */ 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB,
-    /* 5552 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039D,
-    /* 5560 */ 0x039C, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510,
-    /* 5568 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1,
-    /* 5576 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3,
-    /* 5584 */ 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2,
-    /* 5592 */ 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580,
-    /* 5600 */ 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD,
-    /* 5608 */ 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x00B4,
-    /* 5616 */ 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x02DB,
-    /* 5624 */ 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0,
-    /* 5632 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7,
-    /* 5640 */ 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106,
-    /* 5648 */ 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A,
-    /* 5656 */ 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D,
-    /* 5664 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E,
-    /* 5672 */ 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB,
-    /* 5680 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A,
-    /* 5688 */ 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510,
-    /* 5696 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103,
-    /* 5704 */ 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE,
-    /* 5712 */ 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580,
-    /* 5720 */ 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161,
-    /* 5728 */ 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4,
-    /* 5736 */ 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8,
-    /* 5744 */ 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0,
-    /* 5752 */ 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404,
-    /* 5760 */ 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408,
-    /* 5768 */ 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x0093, 0x045C, 0x040C,
-    /* 5776 */ 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A,
-    /* 5784 */ 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414,
-    /* 5792 */ 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB,
-    /* 5800 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438,
-    /* 5808 */ 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510,
-    /* 5816 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A,
-    /* 5824 */ 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E,
-    /* 5832 */ 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580,
-    /* 5840 */ 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443,
-    /* 5848 */ 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x00B4,
-    /* 5856 */ 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D,
-    /* 5864 */ 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0xFFFF, 0x25A0, 0x00A0,
-    /* 5872 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5,
-    /* 5880 */ 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F,
-    /* 5888 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F,
-    /* 5896 */ 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0xFFFF, 0x00CD, 0x00CE,
-    /* 5904 */ 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0xFFFF,
-    /* 5912 */ 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x2014, 0x00B4,
-    /* 5920 */ 0x00AD, 0x00B1, 0xFFFF, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x02DB,
-    /* 5928 */ 0x00B0, 0x00A8, 0x02D9, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0,
-    /* 5936 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7,
-    /* 5944 */ 0x00EA, 0x00CA, 0x00E8, 0x00CE, 0x00D4, 0x00EC, 0x00C3, 0x00C2,
-    /* 5952 */ 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9,
-    /* 5960 */ 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D2,
-    /* 5968 */ 0x00BF, 0x00D3, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
-    /* 5976 */ 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5,
-    /* 5984 */ 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD,
-    /* 5992 */ 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x00D2,
-    /* 6000 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA,
-    /* 6008 */ 0x00BF, 0xFFFF, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
-    /* 6016 */ 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D2,
-    /* 6024 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7,
-    /* 6032 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C0, 0x00A7,
-    /* 6040 */ 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9,
-    /* 6048 */ 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192,
-    /* 6056 */ 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF,
-    /* 6064 */ 0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB,
-    /* 6072 */ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x2205, 0x03B5, 0x2229,
-    /* 6080 */ 0x2218, 0x00B7, 0x2022, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0,
-    /* 6088 */ 0x00B0, 0x00B7, 0x2218, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C,
-    /* 6096 */ 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518,
-    /* 6104 */ 0x00DF, 0x221E, 0x00F8, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB,
-    /* 6112 */ 0x00BB, 0xFEF7, 0xFEF8, 0xFFFF, 0xFFFF, 0xFEFB, 0xFEFC, 0xE016,
-    /* 6120 */ 0xFFFF, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0xFFFF, 0xFFFF,
-    /* 6128 */ 0xFE8E, 0x0628, 0x062A, 0x062B, 0x060C, 0x062C, 0x062D, 0x062E,
-    /* 6136 */ 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
-    /* 6144 */ 0x0668, 0x0669, 0x06A4, 0x061B, 0x0633, 0x0634, 0x0635, 0x061F,
-    /* 6152 */ 0x00A2, 0x0621, 0x0622, 0x0623, 0x0624, 0xFECA, 0x0626, 0x0627,
-    /* 6160 */ 0xFE91, 0x0629, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0x062F,
-    /* 6168 */ 0x0630, 0x0631, 0x0632, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0x0637,
-    /* 6176 */ 0x0638, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0x0639,
-    /* 6184 */ 0x0640, 0xFED2, 0xFED6, 0xFEDB, 0xFEDE, 0xFEE3, 0xFEE6, 0xFEEB,
-    /* 6192 */ 0x0648, 0x0649, 0xFEF3, 0x0636, 0xFEE2, 0xFECE, 0x063A, 0x0645,
-    /* 6200 */ 0xFE7D, 0x0651, 0x0646, 0x0647, 0xFEEC, 0xFEF0, 0xFEF2, 0x0641,
-    /* 6208 */ 0x0642, 0xFEF5, 0xFEF6, 0x0644, 0x0643, 0x064A, 0x25A0, 0x00A0,
-    /* 6216 */ 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192,
-    /* 6224 */ 0x0668, 0x0669, 0x060C, 0x061B, 0x061F, 0x0622, 0x0627, 0xFE8E,
-    /* 6232 */ 0xE016, 0x0628, 0xFE91, 0x067E, 0xFFFF, 0x0629, 0x062A, 0xFE97,
-    /* 6240 */ 0xFFFF, 0xFFFF, 0x062B, 0xFE9B, 0x062C, 0xFE9F, 0xFFFF, 0xFFFF,
-    /* 6248 */ 0x062D, 0xFEA3, 0x062E, 0xFEA7, 0x062F, 0xFFFF, 0x0630, 0x0631,
-    /* 6256 */ 0xFFFF, 0x0632, 0xFFFF, 0x0633, 0xFEB3, 0x0634, 0x00AB, 0x00BB,
-    /* 6264 */ 0xFEB7, 0x0635, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xFEBB,
-    /* 6272 */ 0x0636, 0xFEBF, 0x0637, 0x2563, 0x2551, 0x2557, 0x255D, 0x0638,
-    /* 6280 */ 0x0639, 0x2510, 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C,
-    /* 6288 */ 0xFECA, 0xFECB, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550,
-    /* 6296 */ 0x256C, 0xFECC, 0x063A, 0xFECE, 0xFECF, 0xFED0, 0x0641, 0xFED3,
-    /* 6304 */ 0x0642, 0xFED7, 0xFEDA, 0x2518, 0x250C, 0x2588, 0x2580, 0xFEDB,
-    /* 6312 */ 0xFFFF, 0x2584, 0xFFFF, 0x0644, 0xFEDE, 0xFEE0, 0x0645, 0xFEE3,
-    /* 6320 */ 0xFFFF, 0x0646, 0xFEE7, 0xFFFF, 0x0648, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 6328 */ 0xFFFF, 0x0621, 0x00AD, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 6336 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x0651, 0xFE7D, 0xFFFF, 0x25A0, 0x00A0,
-    /* 6344 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0386, 0xFFFF,
-    /* 6352 */ 0x00B7, 0x00AC, 0x00A6, 0x201B, 0x2019, 0x0388, 0x2014, 0x0389,
-    /* 6360 */ 0x038A, 0x03AA, 0x038C, 0xFFFF, 0xFFFF, 0x038E, 0x03AB, 0x00A9,
-    /* 6368 */ 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF,
-    /* 6376 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C,
-    /* 6384 */ 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510,
-    /* 6392 */ 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385,
-    /* 6400 */ 0x0020, 0x00A0, 0xFFFF, 0x00E4, 0xFFFF, 0x00E1, 0x0103, 0x010D,
-    /* 6408 */ 0x00E7, 0x0107, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 6416 */ 0x0026, 0x00E9, 0xFFFF, 0x00EB, 0x016F, 0x00ED, 0xFFFF, 0x013E,
-    /* 6424 */ 0x013A, 0x00DF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 6432 */ 0x002D, 0x002F, 0xFFFF, 0x00C4, 0x02DD, 0x00C1, 0xFFFF, 0x010C,
-    /* 6440 */ 0x00C7, 0x0106, 0x007C, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 6448 */ 0x02C7, 0x00C9, 0xFFFF, 0x00CB, 0x016E, 0x00CD, 0xFFFF, 0x013D,
-    /* 6456 */ 0x0139, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 6464 */ 0x02D8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 6472 */ 0x0068, 0x0069, 0x015B, 0x0148, 0x0111, 0x00FD, 0x0159, 0xFFFF,
-    /* 6480 */ 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00B8, 0x02DB, 0x00A4,
-    /* 6488 */ 0x0105, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 6496 */ 0x0079, 0x007A, 0x015A, 0x0147, 0x0110, 0x00DD, 0x0158, 0xFFFF,
-    /* 6504 */ 0x00B7, 0x0104, 0x017C, 0xFFFF, 0x017B, 0x00A7, 0x00B6, 0x017E,
-    /* 6512 */ 0x017A, 0x017D, 0x0179, 0x0143, 0x0160, 0x00A8, 0x00B4, 0x00D7,
-    /* 6520 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x0155, 0x00F3, 0x0151,
-    /* 6528 */ 0x0051, 0x0052, 0x011A, 0x0171, 0x00FC, 0x0165, 0x00FA, 0x011B,
-    /* 6536 */ 0x0059, 0x005A, 0x010F, 0x00D4, 0x00D6, 0x0154, 0x00D3, 0x0150,
-    /* 6544 */ 0x0038, 0x0039, 0x010E, 0x0170, 0x00DC, 0x0164, 0x00DA, 0x009F,
-    /* 6552 */ 0x00E7, 0x00F1, 0x00FE, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 6560 */ 0x00EC, 0x00DF, 0x00C6, 0x0024, 0x002A, 0x0029, 0x003B, 0x00D6,
-    /* 6568 */ 0x00CC, 0x00F0, 0x003A, 0x0023, 0x00D0, 0x0027, 0x003D, 0x0022,
-    /* 6576 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0x0060, 0x00FD, 0x007B, 0x00B1,
-    /* 6584 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x007D, 0x00B8, 0x005D, 0x00A4,
-    /* 6592 */ 0x00B5, 0x00F6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 6600 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x0040, 0x00DD, 0x005B, 0x00AE,
-    /* 6608 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x00AF, 0x00A8, 0x005C, 0x00D7,
-    /* 6616 */ 0x00DE, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 6624 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x007E, 0x00F2, 0x00F3, 0x00F5,
-    /* 6632 */ 0x00E6, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 6640 */ 0x00B4, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 6648 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x005E, 0x00D2, 0x00D3, 0x00D5,
-    /* 6656 */ 0x03AA, 0x03AB, 0xFFFF, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 6664 */ 0x00A8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038A, 0x038C, 0x038E,
-    /* 6672 */ 0x038F, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 6680 */ 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 6688 */ 0x00B4, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 6696 */ 0x0079, 0x007A, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3,
-    /* 6704 */ 0x00A3, 0x03AC, 0x03AD, 0x03AE, 0x0390, 0x03AF, 0x03CC, 0x03CD,
-    /* 6712 */ 0x03B0, 0x03CE, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,
-    /* 6720 */ 0x0048, 0x0049, 0x00AD, 0x03C9, 0x03CA, 0x03CB, 0x2018, 0x2015,
-    /* 6728 */ 0x0051, 0x0052, 0x00B1, 0x00BD, 0xFFFF, 0x00B7, 0x2019, 0x00A6,
-    /* 6736 */ 0x0059, 0x005A, 0x00B2, 0x00A7, 0xFFFF, 0xFFFF, 0x00AB, 0x00AC,
-    /* 6744 */ 0x0038, 0x0039, 0x00B3, 0x00A9, 0xFFFF, 0xFFFF, 0x00BB, 0x009F,
-    /* 6752 */ 0x0020, 0xFFFF, 0x0452, 0x0453, 0x0451, 0xFFFF, 0x0455, 0x0456,
-    /* 6760 */ 0x0457, 0x0458, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 6768 */ 0x0026, 0x0459, 0x045A, 0x045B, 0x045C, 0xFFFF, 0x045F, 0x042A,
-    /* 6776 */ 0x2116, 0x0402, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 6784 */ 0x002D, 0x002F, 0x0403, 0x0401, 0xFFFF, 0x0405, 0x0406, 0x0407,
-    /* 6792 */ 0x0408, 0x0409, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 6800 */ 0x040A, 0x040B, 0x040C, 0xFFFF, 0xFFFF, 0x040F, 0x044E, 0x0430,
-    /* 6808 */ 0x0431, 0xFFFF, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 6816 */ 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 6824 */ 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438,
-    /* 6832 */ 0x0439, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
-    /* 6840 */ 0x0071, 0x0072, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
-    /* 6848 */ 0x044F, 0xFFFF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 6856 */ 0x0079, 0x007A, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
-    /* 6864 */ 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C,
-    /* 6872 */ 0x0051, 0x0052, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421,
-    /* 6880 */ 0x005C, 0x00A4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 6888 */ 0x0059, 0x005A, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B,
-    /* 6896 */ 0x0038, 0x0039, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x009F,
-    /* 6904 */ 0x00A2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 6912 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00AC, 0x00A6, 0xFFFF,
-    /* 6920 */ 0x0020, 0xFFFF, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0xFFFF, 0x010B,
-    /* 6928 */ 0x007B, 0x00F1, 0x00C7, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 6936 */ 0x00EC, 0x00DF, 0x011E, 0x0130, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 6944 */ 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0xFFFF, 0x010A,
-    /* 6952 */ 0x005B, 0x00D1, 0x015F, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 6960 */ 0xFFFF, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF,
-    /* 6968 */ 0x00CC, 0x0131, 0x003A, 0x00D6, 0x015E, 0x0027, 0x003D, 0x00DC,
-    /* 6976 */ 0x0068, 0x0069, 0x0127, 0x0109, 0x015D, 0x016D, 0xFFFF, 0x007C,
-    /* 6984 */ 0x0071, 0x0072, 0x0125, 0x011D, 0x0135, 0x02DB, 0xFFFF, 0x00A4,
-    /* 6992 */ 0x0079, 0x007A, 0x0126, 0x0108, 0x015C, 0x016C, 0xFFFF, 0x0040,
-    /* 7000 */ 0x00B7, 0x00A3, 0x017C, 0x007D, 0x017B, 0x00A7, 0x005D, 0xFFFF,
-    /* 7008 */ 0x00BD, 0x0024, 0x0124, 0x011C, 0x0134, 0x00A8, 0x00B4, 0x00D7,
-    /* 7016 */ 0x00E7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 7024 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x007E, 0x00F2, 0x00F3, 0x0121,
-    /* 7032 */ 0x011F, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
-    /* 7040 */ 0x0051, 0x0052, 0x0060, 0x00FB, 0x005C, 0x00F9, 0x00FA, 0xFFFF,
-    /* 7048 */ 0x00FC, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 7056 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x0023, 0x00D2, 0x00D3, 0x0120,
-    /* 7064 */ 0x0038, 0x0039, 0x00B3, 0x00DB, 0x0022, 0x00D9, 0x00DA, 0x009F,
-    /* 7072 */ 0x0020, 0x00A0, 0x060C, 0x061B, 0x061F, 0x0623, 0x0627, 0xFE8E,
-    /* 7080 */ 0xFFFF, 0x0628, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 7088 */ 0x0026, 0xFE91, 0x067E, 0xFFFF, 0x0629, 0x062A, 0xFE97, 0xFFFF,
-    /* 7096 */ 0xFFFF, 0x062B, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7104 */ 0x002D, 0x002F, 0xFE9B, 0x062C, 0xFE9F, 0xFFFF, 0xFFFF, 0x062D,
-    /* 7112 */ 0xFEA3, 0x062E, 0x0060, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 7120 */ 0x0668, 0x0669, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 7128 */ 0xFEA7, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-    /* 7136 */ 0x0068, 0x0069, 0x062F, 0xFFFF, 0x0630, 0x0631, 0xFFFF, 0x0632,
-    /* 7144 */ 0x0071, 0x0072, 0x0633, 0xFEB3, 0x0634, 0xFEB7, 0x0635, 0xFEBB,
-    /* 7152 */ 0x0636, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 7160 */ 0x0079, 0x007A, 0xFEBF, 0x0637, 0x0638, 0x0639, 0xFECA, 0xFECB,
-    /* 7168 */ 0xFECC, 0x063A, 0xFECE, 0xFECF, 0xFED0, 0x0641, 0xFED3, 0x0642,
-    /* 7176 */ 0xFED7, 0x0643, 0xFEDB, 0x007C, 0xFFFF, 0xFFFF, 0x0644, 0xFEDE,
-    /* 7184 */ 0x0048, 0x0049, 0x00AD, 0xFFFF, 0x0645, 0xFEE3, 0xFFFF, 0x0646,
-    /* 7192 */ 0x0051, 0x0052, 0xFEE7, 0xFFFF, 0x0648, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7200 */ 0x0059, 0x005A, 0x0621, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7208 */ 0x0038, 0x0039, 0xFFFF, 0xFFFF, 0xFFFF, 0x0651, 0xFE7D, 0x009F,
-    /* 7216 */ 0xFFFF, 0xFFFF, 0x201A, 0xFFFF, 0x201E, 0x2026, 0x2020, 0x2021,
-    /* 7224 */ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7232 */ 0xFFFF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
-    /* 7240 */ 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0xFFFF, 0xFFFF, 0x0178,
-    /* 7248 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0x007D, 0x0060, 0x00A6, 0x00B1,
-    /* 7256 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x02DB, 0x00C6, 0x00A4,
-    /* 7264 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x005D, 0x0024, 0x0040, 0x00AE,
-    /* 7272 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x2014, 0x00A8, 0x00B4, 0x00D7,
-    /* 7280 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x005C, 0x00F9, 0x00FA, 0x00FF,
-    /* 7288 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x0023, 0x00D2, 0x00D3, 0x00D5,
-    /* 7296 */ 0x00EC, 0x00DF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7304 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x00D0, 0x005B, 0x00DE, 0x00AE,
-    /* 7312 */ 0x00AC, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC,
-    /* 7320 */ 0x00BD, 0x00BE, 0x00DD, 0x00A8, 0x00AF, 0x005D, 0x00B4, 0x00D7,
-    /* 7328 */ 0x20AC, 0xFFFF, 0x201A, 0xFFFF, 0x201E, 0x2026, 0x2020, 0x2021,
-    /* 7336 */ 0xFFFF, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
-    /* 7344 */ 0xFFFF, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
-    /* 7352 */ 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
-    /* 7360 */ 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
-    /* 7368 */ 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
-    /* 7376 */ 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
-    /* 7384 */ 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
-    /* 7392 */ 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
-    /* 7400 */ 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
-    /* 7408 */ 0xFFFF, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
-    /* 7416 */ 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
-    /* 7424 */ 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
-    /* 7432 */ 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
-    /* 7440 */ 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
-    /* 7448 */ 0x20AC, 0xFFFF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
-    /* 7456 */ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0xFFFF, 0x017D, 0x017E,
-    /* 7464 */ 0xFFFF, 0x2030, 0xFFFF, 0x2039, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7472 */ 0xFFFF, 0x2122, 0xFFFF, 0x203A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7480 */ 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
-    /* 7488 */ 0x00A8, 0x00A9, 0xFFFF, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
-    /* 7496 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7,
-    /* 7504 */ 0x05E8, 0x05E9, 0x05EA, 0xFFFF, 0xFFFF, 0x200E, 0x200F, 0xFFFF,
-    /* 7512 */ 0x20AC, 0x0660, 0x201A, 0x0661, 0x201E, 0x2026, 0x2020, 0x2021,
-    /* 7520 */ 0x0662, 0x0663, 0x0664, 0x2039, 0x0665, 0x0666, 0x0667, 0x0668,
-    /* 7528 */ 0x0669, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
-    /* 7536 */ 0x061B, 0x2122, 0x061F, 0x203A, 0x0621, 0x0622, 0x0623, 0x0178,
-    /* 7544 */ 0x00A0, 0x0624, 0x0625, 0x00A3, 0x00A4, 0x0626, 0x00A6, 0x00A7,
-    /* 7552 */ 0x0627, 0x00A9, 0x0628, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x067E,
-    /* 7560 */ 0x00B0, 0x00B1, 0x0629, 0x062A, 0x062B, 0x00B5, 0x00B6, 0x00B7,
-    /* 7568 */ 0x062C, 0x0686, 0x062D, 0x00BB, 0x062E, 0x062F, 0x0630, 0x0631,
-    /* 7576 */ 0x00C0, 0x0632, 0x00C2, 0x0698, 0x0633, 0x0634, 0x0635, 0x00C7,
-    /* 7584 */ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0636, 0x0637, 0x00CE, 0x00CF,
-    /* 7592 */ 0x3113, 0x0639, 0x063A, 0x0640, 0x00D4, 0x0641, 0x0642, 0x00D7,
-    /* 7600 */ 0x0643, 0x00D9, 0x06AF, 0x00DB, 0x00DC, 0x0644, 0x0645, 0x0646,
-    /* 7608 */ 0x00E0, 0x0647, 0x00E2, 0x0681, 0x0648, 0x0649, 0x064A, 0x00E7,
-    /* 7616 */ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x064B, 0x064C, 0x00EE, 0x00EF,
-    /* 7624 */ 0x064D, 0x064E, 0x064F, 0x0650, 0x00F4, 0x0651, 0x0652, 0x00F7,
-    /* 7632 */ 0xFFFF, 0x00F9, 0xFFFF, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x00FF,
-    /* 7640 */ 0x00A0, 0xFFFF, 0x00A2, 0x00A3, 0x00A4, 0xFFFF, 0x00A6, 0x00A7,
-    /* 7648 */ 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
-    /* 7656 */ 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
-    /* 7664 */ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0xFFFF,
-    /* 7672 */ 0xFFFF, 0xFFFF, 0x00C4, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 7680 */ 0xFFFF, 0xFFFF, 0x00DC, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7688 */ 0xFFFF, 0xFFFF, 0x00F6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 7696 */ 0xFFFF, 0x0060, 0x003A, 0x0023, 0x00A7, 0x0027, 0x003D, 0x0022,
-    /* 7704 */ 0xFFFF, 0x00DF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 7712 */ 0x00D6, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 7720 */ 0xFFFF, 0xFFFF, 0x00F6, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 7728 */ 0xFFFF, 0xFFFF, 0x00FC, 0x00DC, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 7736 */ 0xFFFF, 0xFFFF, 0x00DF, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 7744 */ 0xFFFF, 0xFFFF, 0x003A, 0x00C4, 0x00D6, 0x0027, 0x003D, 0x00E4,
-    /* 7752 */ 0xFFFF, 0xFFFF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 7760 */ 0xFFFF, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 7768 */ 0x0020, 0xFFFF, 0x00E2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7776 */ 0x00E7, 0xFFFF, 0x00E0, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 7784 */ 0x0026, 0xFFFF, 0x00EA, 0x00EB, 0xFFFF, 0xFFFF, 0x00EE, 0x00EF,
-    /* 7792 */ 0xFFFF, 0xFFFF, 0x00B4, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7800 */ 0x002D, 0x002F, 0x00C2, 0xFFFF, 0x00C0, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7808 */ 0x00C7, 0xFFFF, 0x00F9, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 7816 */ 0xFFFF, 0x00C9, 0x00CA, 0x00CB, 0xFFFF, 0x00CE, 0x00CF, 0xFFFF,
-    /* 7824 */ 0x0048, 0x0049, 0xFFFF, 0x00F4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7832 */ 0x0051, 0x0052, 0xFFFF, 0x00FB, 0x00FC, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7840 */ 0x00B8, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 7848 */ 0x0059, 0x005A, 0xFFFF, 0x00D4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
-    /* 7856 */ 0x0038, 0x0039, 0xFFFF, 0x00DB, 0x00DC, 0x00D9, 0xFFFF, 0x009F,
-    /* 7864 */ 0xFFFF, 0xFFFF, 0x0023, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 7872 */ 0xFFFF, 0xFFFF, 0x00A4, 0x00C5, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7880 */ 0xFFFF, 0xFFFF, 0x00F8, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 7888 */ 0xFFFF, 0x0060, 0x003A, 0x00C6, 0x00D8, 0x0027, 0x003D, 0x0022,
-    /* 7896 */ 0xFFFF, 0x00FC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 7904 */ 0xFFFF, 0xFFFF, 0x00F8, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 7912 */ 0xFFFF, 0xFFFF, 0x00E5, 0x00C5, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 7920 */ 0xFFFF, 0xFFFF, 0x003A, 0x00C6, 0x00D8, 0x0027, 0x003D, 0x00E6,
-    /* 7928 */ 0xFFFF, 0xFFFF, 0x00A7, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 7936 */ 0xFFFF, 0x00E9, 0x003A, 0x00C4, 0x00D6, 0x0027, 0x003D, 0x0022,
-    /* 7944 */ 0x00C9, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 7952 */ 0xFFFF, 0xFFFF, 0x00B0, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021,
-    /* 7960 */ 0xFFFF, 0xFFFF, 0x00A7, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7968 */ 0xFFFF, 0x0060, 0x003A, 0x00A3, 0x00E0, 0x0027, 0x003D, 0x0022,
-    /* 7976 */ 0xFFFF, 0xFFFF, 0x00E9, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E,
-    /* 7984 */ 0xFFFF, 0xFFFF, 0x00F2, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 7992 */ 0xFFFF, 0x00F9, 0x003A, 0x00A3, 0x00A7, 0x0027, 0x003D, 0x0022,
-    /* 8000 */ 0xFFFF, 0x00EC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 8008 */ 0xFFFF, 0xFFFF, 0x00F5, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 8016 */ 0xFFFF, 0x0060, 0x003A, 0x00C3, 0x00D5, 0x0027, 0x003D, 0x0022,
-    /* 8024 */ 0xFFFF, 0x00E7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 8032 */ 0x00E3, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 8040 */ 0x00C7, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 8048 */ 0xFFFF, 0xFFFF, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 8056 */ 0xFFFF, 0xFFFF, 0x0021, 0x20A7, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 8064 */ 0xFFFF, 0xFFFF, 0x00F1, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
-    /* 8072 */ 0xFFFF, 0x0060, 0x003A, 0x00D1, 0x0040, 0x0027, 0x003D, 0x0022,
-    /* 8080 */ 0xFFFF, 0xFFFF, 0x003A, 0x00D1, 0x0040, 0x0027, 0x003D, 0x00F1,
-    /* 8088 */ 0xFFFF, 0xFFFF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 8096 */ 0xFFFF, 0xFFFF, 0x0024, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
-    /* 8104 */ 0xFFFF, 0xFFFF, 0x0021, 0x00A3, 0x002A, 0x0029, 0x003B, 0x00AC,
-    /* 8112 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00E1, 0xFFFF, 0xFFFF,
-    /* 8120 */ 0xFFFF, 0xFFFF, 0x003C, 0x002E, 0x00C1, 0x0028, 0x002B, 0x0021,
-    /* 8128 */ 0x00D0, 0x00E9, 0xFFFF, 0xFFFF, 0xFFFF, 0x00ED, 0xFFFF, 0xFFFF,
-    /* 8136 */ 0xFFFF, 0x0024, 0x0025, 0x00C9, 0x002A, 0x0029, 0x003B, 0x0026,
-    /* 8144 */ 0xFFFF, 0x0023, 0x2018, 0x002C, 0x00DE, 0x005F, 0x003E, 0x003F,
-    /* 8152 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00CD, 0xFFFF, 0xFFFF,
-    /* 8160 */ 0x007C, 0x00F0, 0x003A, 0x00C6, 0x00D6, 0x0027, 0x003D, 0x0022,
-    /* 8168 */ 0x0068, 0x0069, 0xFFFF, 0xFFFF, 0xFFFF, 0x00DD, 0xFFFF, 0xFFFF,
-    /* 8176 */ 0x00B0, 0x00F6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
-    /* 8184 */ 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0x005B, 0x00FD, 0xFFFF, 0xFFFF,
-    /* 8192 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x005D, 0x00A8, 0xFFFF, 0xFFFF,
-    /* 8200 */ 0x00FE, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-    /* 8208 */ 0x0048, 0x0049, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00F3, 0xFFFF,
-    /* 8216 */ 0x0051, 0x0052, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FA, 0xFFFF,
-    /* 8224 */ 0x00B4, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
-    /* 8232 */ 0x0059, 0x005A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00D3, 0xFFFF,
-    /* 8240 */ 0x0038, 0x0039, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00DA, 0x007F,
-    /* 8248 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0xFFFF,
-    /* 8256 */ 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
-    /* 8264 */ 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
-    /* 8272 */ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2022, 0x221A, 0x2248,
-    /* 8280 */ 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
-    /* 8288 */ 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
-    /* 8296 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E,
-    /* 8304 */ 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
-    /* 8312 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
-    /* 8320 */ 0x2591, 0x2592, 0x2593, 0x201C, 0x25A0, 0x2022, 0x201D, 0x2014,
-    /* 8328 */ 0x2116, 0x2122, 0x00A0, 0x00BB, 0x00AE, 0x00AB, 0x00B7, 0x00A4,
-    /* 8336 */ 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
-    /* 8344 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x045E, 0x255E,
-    /* 8352 */ 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
-    /* 8360 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x040E, 0x00A9,
-    /* 8368 */ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
-    /* 8376 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E,
-    /* 8384 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9,
-    /* 8392 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00CD, 0x00C4, 0x00C1,
-    /* 8400 */ 0x00C9, 0x00E6, 0x00C6, 0x0151, 0x00F6, 0x00D3, 0x0171, 0x00DA,
-    /* 8408 */ 0x0170, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0xE01F,
-    /* 8416 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x0150,
-    /* 8424 */ 0x03B1, 0x03B2, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x03BC, 0x03C4,
-    /* 8432 */ 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1,
-    /* 8440 */ 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179,
-    /* 8448 */ 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3,
-    /* 8456 */ 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC,
-    /* 8464 */ 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2219, 0x00B6, 0x00DF,
-    /* 8472 */ 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x01F5, 0x012E,
-    /* 8480 */ 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211,
-    /* 8488 */ 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145,
-    /* 8496 */ 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x0394, 0x00AB,
-    /* 8504 */ 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C,
-    /* 8512 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25C6,
-    /* 8520 */ 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156,
-    /* 8528 */ 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1,
-    /* 8536 */ 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4,
-    /* 8544 */ 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173,
-    /* 8552 */ 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7
-  };
index 97a586989c96d252fbf63facd6363ed1e31d0fc6..be5010fbaa164642a5bf3a52dc239d9dced040f1 100644 (file)
@@ -357,3 +357,8 @@ module_quoted_printable (RECODE_OUTER outer)
     && declare_alias (outer, "quote-printable", "Quoted-Printable")
     && declare_alias (outer, "QP", "Quoted-Printable");
 }
+
+void
+delmodule_quoted_printable (RECODE_OUTER outer)
+{
+}
index 81321ccff9324d810eb0505a9edb04b9bc614c87..a68a68e38550e8c2767df5050e5bf3bad69b30a1 100644 (file)
@@ -1,7 +1,7 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.020.
-.TH RECODE "1" "February 2001" "Free recode 3.5e" FSF
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.022.
+.TH RECODE "1" "January 2001" "Free recode 3.6" FSF
 .SH NAME
-recode \- manual page for recode 3.5e
+recode \- manual page for recode 3.6
 .SH SYNOPSIS
 .B recode
 [\fIOPTION\fR]... [ [\fICHARSET\fR] \fI| REQUEST \fR[\fIFILE\fR]... ]
@@ -79,7 +79,11 @@ ignore CHARSET while choosing a recoding path
 .PP
 Option \fB\-l\fR with no FORMAT nor CHARSET list available charsets and surfaces.
 FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').
-Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to `ISO-8859-1'.
+Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the locale
+dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.
+With \fB\-k\fR, possible before charsets are listed for the given after CHARSET,
+both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'
+and BEFs and AFTs being codes are given as decimal numbers.
 LN is some language, it may be `c', `perl' or `po'; `c' is the default.
 .PP
 REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...
index 03c52f4524d2797eae06149824e09f659227711b..055ef2f0468ff6b3b8a378d38e59c2034f5bea52 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1990, 92, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+   Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1990.
 
    This library is free software; you can redistribute it and/or
@@ -425,14 +425,21 @@ init_ucs2_to_byte (RECODE_STEP step,
     return false;
 
   if (!ALLOC (data, 256, struct ucs2_to_byte))
-    return false;
+    {
+      hash_free (table);
+      return false;
+    }
 
   for (counter = 0; counter < 256; counter++)
     {
       data[counter].code = code_to_ucs2 (step->after, counter);
       data[counter].byte = counter;
       if (!hash_insert (table, data + counter))
-       return false;
+       {
+         hash_free (table);
+         free (data);
+         return false;
+       }
     }
 
   step->local = table;
index 3d9d600f7068d7618017f9bb0a26e0b09e51acc9..a8492fd547cd8ac96b05b31deae891c9291c83d0 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1990, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+   Copyright © 1990, 93, 94, 96-99, 2000, 2001 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1988.
 
    This library is free software; you can redistribute it and/or
@@ -726,10 +726,10 @@ bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK));
 
 # define put_byte(Byte, Subtask) \
     ((Subtask)->output.file                                    \
-     ? (void) putc ((char) (Byte), (Subtask)->output.file)             \
+     ? (putc ((char) (Byte), (Subtask)->output.file), 0)       \
      : (Subtask)->output.cursor == (Subtask)->output.limit     \
-     ? put_byte_helper ((int) (Byte), (Subtask))               \
-     : (void) (*(Subtask)->output.cursor++ = (Byte)))
+     ? (put_byte_helper ((int) (Byte), (Subtask)), 0)          \
+     : (*(Subtask)->output.cursor++ = (Byte), 0))
 
 #endif /* not USE_HELPERS */
 
index 0b3c89df54729e20b4158d0bb03865092b062d94..d7daf15a7b87c5733e6e92df08ec2579b59a0b7f 100644 (file)
@@ -285,3 +285,8 @@ module_rfc1345 (RECODE_OUTER outer)
     && declare_alias (outer, "1345", "RFC1345")
     && declare_alias (outer, "mnemonic", "RFC1345");
 }
+
+void
+delmodule_rfc1345 (RECODE_OUTER outer)
+{
+}
index 9eca38efd43cb2433455fb33202c4c0cf36f1f08..ec6456c5eff69094e0a0a1db53b9b71369b6ee70 100644 (file)
@@ -1,7 +1,7 @@
 /* DO NOT MODIFY THIS FILE!  It was generated by `recode/doc/tables.py'.  */
 
 /* Conversion of files between different charsets and surfaces.
-   Copyright © 1999, 2000 Free Software Foundation, Inc.
+   Copyright © 1999 Free Software Foundation, Inc.
    Contributed by François Pinard <pinard@iro.umontreal.ca>, 1993, 1997.
 
    This library is free software; you can redistribute it and/or
index f49ef28c6520171cd567af2a12235f297793f997..7cf7b90247726e7c7811b100949b2b1d9c25ae77 100644 (file)
@@ -3986,3 +3986,8 @@ module_strips (struct recode_outer *outer)
 
   return true;
 }
+
+void
+delmodule_strips (struct recode_outer *outer)
+{
+}
diff --git a/src/tersteps.h b/src/tersteps.h
new file mode 100644 (file)
index 0000000..49058db
--- /dev/null
@@ -0,0 +1,33 @@
+  delmodule_african (outer);
+  delmodule_afrtran (outer);
+  delmodule_applemac (outer);
+  delmodule_atarist (outer);
+  delmodule_bangbang (outer);
+  delmodule_cdcnos (outer);
+  delmodule_ebcdic (outer);
+  delmodule_ibmpc (outer);
+  delmodule_iconqnx (outer);
+  delmodule_latin1_ascii (outer);
+  delmodule_mule (outer);
+  delmodule_strips (outer);
+  delmodule_testdump (outer);
+  delmodule_ucs (outer);
+  delmodule_utf16 (outer);
+  delmodule_utf7 (outer);
+  delmodule_utf8 (outer);
+  delmodule_varia (outer);
+  delmodule_vietnamese (outer);
+  delmodule_flat (outer);
+  delmodule_html (outer);
+  delmodule_latin1_latex (outer);
+  delmodule_latin1_texte (outer);
+  delmodule_rfc1345 (outer);
+  delmodule_texinfo (outer);
+  delmodule_base64 (outer);
+  delmodule_dump (outer);
+  delmodule_endline (outer);
+  delmodule_permutations (outer);
+  delmodule_quoted_printable (outer);
+  delmodule_ascii_latin1 (outer);
+  delmodule_latex_latin1 (outer);
+  delmodule_texte_latin1 (outer);
index 116a9f2b0f975b7d81ed9909be5b70be516e4fce..96457b46618a4c65afd926dd2d327d24f5f970b2 100644 (file)
@@ -153,7 +153,7 @@ produce_count (RECODE_SUBTASK subtask)
   struct ucs2_to_count **array;        /* array into hash table items */
 
   table = hash_initialize (0, NULL,
-                          ucs2_to_count_hash, ucs2_to_count_compare, NULL);
+                          ucs2_to_count_hash, ucs2_to_count_compare, free);
   if (!table)
     return false;
 
@@ -174,11 +174,18 @@ produce_count (RECODE_SUBTASK subtask)
        else
          {
            if (!ALLOC (entry, 1, struct ucs2_to_count))
-             return false;
+             {
+               hash_free (table);
+               return false;
+             }
            entry->code = character;
            entry->count = 1;
            if (!hash_insert (table, entry))
-             return false;
+             {
+               hash_free (table);
+               free (entry);
+               return false;
+             }
          }
       }
   }
@@ -188,7 +195,10 @@ produce_count (RECODE_SUBTASK subtask)
   size = hash_get_n_entries (table);
 
   if (!ALLOC (array, size, struct ucs2_to_count *))
-    return false;
+    {
+      hash_free (table);
+      return false;
+    }
   hash_get_entries (table, (void **) array, size);
 
   qsort (array, size, sizeof (struct ucs2_to_count *), compare_item);
@@ -249,12 +259,7 @@ produce_count (RECODE_SUBTASK subtask)
 
   /* Clean-up.  */
 
-  {
-    struct ucs2_to_count **cursor;
-
-    for (cursor = array; cursor < array + size; cursor++)
-      free (*cursor);
-  }
+  free (array);
   hash_free (table);
 
   SUBTASK_RETURN (subtask);
@@ -369,3 +374,8 @@ module_testdump (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_testdump (RECODE_OUTER outer)
+{
+}
index d3f926d702112c240322b5a94eff6fb8406c5e93..ed2a1b74908a371399b6cda768cc21f2ef9c62df 100644 (file)
@@ -82,3 +82,8 @@ module_texinfo (RECODE_OUTER outer)
     && declare_alias (outer, "texi", "Texinfo")
     && declare_alias (outer, "ti", "Texinfo");
 }
+
+void
+delmodule_texinfo (RECODE_OUTER outer)
+{
+}
index 19c0dd060414644107c82f856f758d7db6d4abf4..8d1b12459e7511cfe76fc6b0feb861b2482c63e3 100644 (file)
@@ -185,3 +185,8 @@ module_texte_latin1 (RECODE_OUTER outer)
                    transform_texte_latin1)
     && declare_alias (outer, "txte", "Texte");
 }
+
+void
+delmodule_texte_latin1 (RECODE_OUTER outer)
+{
+}
index 507ce6d1c4069eacddd3928e40848b0b6afd1efb..d43258baaa6040fa59a247850759101e0051923f 100644 (file)
@@ -209,3 +209,8 @@ module_utf16 (RECODE_OUTER outer)
     && declare_alias (outer, "TF-16", "UTF-16")
     && declare_alias (outer, "u6", "UTF-16");
 }
+
+void
+delmodule_utf16 (RECODE_OUTER outer)
+{
+}
index d130fdb5708904419bfa15bb72c35082c6a3cc0e..8e4be3600069987ba0140de5b76d436e576c80b0 100644 (file)
@@ -295,3 +295,8 @@ module_utf7 (RECODE_OUTER outer)
                       outer->quality_variable_to_variable,
                       NULL, transform_utf16_utf7);
 }
+
+void
+delmodule_utf7 (RECODE_OUTER outer)
+{
+}
index d427e37bb8e842dd4f19e9b7e5f3afba2bc1e344..23bdc7cca3d347c06d1d7ac6cbbdfaf52371bba2 100644 (file)
@@ -269,3 +269,8 @@ module_utf8 (RECODE_OUTER outer)
                       outer->quality_variable_to_variable,
                       NULL, transform_ucs2_utf8);
 }
+
+void
+delmodule_utf8 (RECODE_OUTER outer)
+{
+}
index e827e525b0299883a34280f7e4363f9fb58a7d41..4c4643f683501a842d330383c6bab470646d68c8 100644 (file)
@@ -593,3 +593,8 @@ module_varia (RECODE_OUTER outer)
 
   return true;
 }
+
+void
+delmodule_varia (RECODE_OUTER outer)
+{
+}
index 91d9d2225a23bef4b4d00c501edd7b12be83bf0f..9e2f19b38c8e2b6c974dfcadb7daa10c9bde7e2d 100644 (file)
--- a/src/vn.c
+++ b/src/vn.c
@@ -453,3 +453,8 @@ module_vietnamese (RECODE_OUTER outer)
     return false;
   return true;
 }
+
+void
+delmodule_vietnamese (RECODE_OUTER outer)
+{
+}
similarity index 100%
rename from lib/xalloc.h
rename to src/xalloc.h
similarity index 100%
rename from lib/xmalloc.c
rename to src/xmalloc.c
index 84852830297f9d3c08b5198b797a43102019d13d..9e3ffcc7906ccac3b126bac89e83b674d710f75e 100644 (file)
@@ -1,3 +1,12 @@
+2001-01-02  Bruno Haible  <haible@clisp.cons.org>
+
+       * names.m4: Adjusted for libiconv-1.5 (BIG5HKSCS, GB18030, CHAR,
+       WCHAR_T).
+
+2000-08-18  François Pinard  <pinard@iro.umontreal.ca>
+
+       * names.m4: Adjusted for XML-standalone.
+\f
 2000-06-28  François Pinard  <pinard@iro.umontreal.ca>
 
        * testdump.m4: New name for debug.m4.
@@ -16,7 +25,7 @@
 2000-02-05  François Pinard  <pinard@iro.umontreal.ca>
 
        * names.m4: Adjusted for tree, a special charset like data.
-\f
+
 1999-12-24  François Pinard  <pinard@iro.umontreal.ca>
 
        * names.m4: Adjusted for defaulted libiconv.
index 25ddf14aa2852f0afe89ee48026f9b5a8cdc6369..076d36495260b630248148b67b2848f853cd1ac6 100644 (file)
@@ -88,6 +88,7 @@ CPP = @CPP@
 DLLTOOL = @DLLTOOL@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
+GLIBC21 = @GLIBC21@
 LEX = @LEX@
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 LIBOBJS = @LIBOBJS@
index 061491236ae22d682c7f972a7d0cd5732743324c..fcee2b2c0c643167c1130b45f0b8ceacbb8849c5 100644 (file)
@@ -38,9 +38,11 @@ AtariST
 baltic iso-ir-179
 Bang-Bang
 BIG5 BIG-5 BIG-FIVE BIGFIVE CN-BIG5 csBig5
+BIG5HKSCS
 BS_4730 gb ISO646-GB iso-ir-4 uk
 BS_viewdata iso-ir-47
 CDC-NOS NOS
+CHAR
 combined-UCS-2 co
 CORK T1
 count-characters
@@ -96,6 +98,7 @@ EUC-JP csEUCPkdFmtJapanese EUCJP EUC_JP Extended_UNIX_Code_Packed_Format_for_Jap
 EUC-KR csEUCKR EUCKR EUC_KR
 EUC-TW csEUCTW EUCTW EUC_TW
 flat
+GB18030
 GBK CP936
 GB_1988-80 cn csISO57GB1988 ISO646-CN iso-ir-57
 GB_2312-80 CHINESE csISO58GB231280 GB2312.1980-0 ISO-IR-58
@@ -280,6 +283,8 @@ VIQR
 VISCII csVISCII VISCII1.1-1
 VNI
 VPS
+WCHAR_T
+XML-standalone h0
 EOF
 
 AT_CHECK(recode -l, 0, expout)
index 6b1bf06e8d662a2dcc62243d4e0cf6e3e99b279e..0835f61b2987f7cb6a9a950ec4a107cdac30cda8 100644 (file)
@@ -141,9 +141,11 @@ AtariST
 baltic iso-ir-179
 Bang-Bang
 BIG5 BIG-5 BIG-FIVE BIGFIVE CN-BIG5 csBig5
+BIG5HKSCS
 BS_4730 gb ISO646-GB iso-ir-4 uk
 BS_viewdata iso-ir-47
 CDC-NOS NOS
+CHAR
 combined-UCS-2 co
 CORK T1
 count-characters
@@ -199,6 +201,7 @@ EUC-JP csEUCPkdFmtJapanese EUCJP EUC_JP Extended_UNIX_Code_Packed_Format_for_Jap
 EUC-KR csEUCKR EUCKR EUC_KR
 EUC-TW csEUCTW EUCTW EUC_TW
 flat
+GB18030
 GBK CP936
 GB_1988-80 cn csISO57GB1988 ISO646-CN iso-ir-57
 GB_2312-80 CHINESE csISO58GB231280 GB2312.1980-0 ISO-IR-58
@@ -383,12 +386,14 @@ VIQR
 VISCII csVISCII VISCII1.1-1
 VNI
 VPS
+WCHAR_T
+XML-standalone h0
 EOF
 
 $at_traceoff
 test -n "$at_verbose" \
-  && echo "$srcdir/names.m4:285: testing..."
-echo names.m4:285 > at-check-line
+  && echo "$srcdir/names.m4:290: testing..."
+echo names.m4:290 > at-check-line
 test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
 $at_traceon
 recode -l
@@ -433,19 +438,19 @@ if test -z "$at_stop_on_error" || test -z "$at_failed_list"; then
 
 rm -rf stdout stderr expout
 # Snippet )c2)
-  echo names.m4:289 > at-check-line
+  echo names.m4:294 > at-check-line
   if test -n "$at_verbose"; then
     echo 'testing the --find-subsets option'
     echo $at_n "     $at_c"
   fi
-  echo $at_n "2. $srcdir/names.m4:289       $at_c"
+  echo $at_n "2. $srcdir/names.m4:294       $at_c"
   if test -z "$at_skip_mode"; then
     (
 # Snippet (d2(
 # Testing the --find-subsets option
 # Snippet )d2)
 # Snippet (s2(
-# starting from `names.m4:289'.
+# starting from `names.m4:294'.
 $at_traceon
 
 cat >expout <<'EOF'
@@ -896,8 +901,8 @@ EOF
 
 $at_traceoff
 test -n "$at_verbose" \
-  && echo "$srcdir/names.m4:740: testing..."
-echo names.m4:740 > at-check-line
+  && echo "$srcdir/names.m4:745: testing..."
+echo names.m4:745 > at-check-line
 test -z "$at_no_redirs" && exec 5>&1 6>&2 1>stdout 2>stderr
 $at_traceon
 recode -T | sort