From: François Pinard Date: Tue, 19 Feb 2008 04:13:35 +0000 (-0500) Subject: Version 3.6 X-Git-Tag: v3.6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2127b3495609b1f253a303f8b9c1de4a42bb6f42;p=recode Version 3.6 --- diff --git a/AUTHORS b/AUTHORS index 72762cc..280a6bc 100644 --- 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 diff --git a/ChangeLog b/ChangeLog index 3d06c7a..690e89d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2001-01-03 Bruno Haible + + * configure.in: Version 3.6. + +2001-01-03 Bruno Haible + + * configure.in: Test for memory.h and strndup. + +2000-12-06 Bruno Haible + + * configure.in: Remove determination of compile-time DEFAULT_CHARSET. + * README: Remove section about DEFAULT_CHARSET at installation time. + +2000-12-05 Bruno Haible + + * 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 + + * Makefile.am (ACLOCAL): New definition. + * aclocal.sh: New file. + * Makefile.am (EXTRA_DIST): Add it. + 2000-06-28 François Pinard * configure.in: Version 3.5e. diff --git a/Makefile.am b/Makefile.am index 210d78d..001745f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,10 +18,11 @@ # 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 \ diff --git a/Makefile.in b/Makefile.in index 7a4c354..9f6c992 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 444d304..c8c9a6b 100644 --- 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 4de18b4..66ff2fe 100644 --- 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 @@ -100,7 +99,7 @@ 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. @@ -133,23 +132,6 @@ 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 index a4171c6..0000000 --- a/README-alpha +++ /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 c8af87d..1fdc359 100644 --- 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 f488757..0f681d1 100644 --- 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. diff --git a/aclocal.m4 b/aclocal.m4 index 645e9a3..f574b80 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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 ], + [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 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 +#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 index 0000000..f1cbc62 --- /dev/null +++ b/aclocal.sh @@ -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 + diff --git a/config.guess b/config.guess old mode 100755 new mode 100644 diff --git a/config.h.in b/config.h.in index 2248953..c577a14 100644 --- a/config.h.in +++ b/config.h.in @@ -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 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 and . */ +#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 @@ -15,157 +78,148 @@ /* 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 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 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 header file. */ -#undef HAVE_LIMITS_H - -/* Define if you have the 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 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 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 . 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 header file. */ -#undef HAVE_UNISTD_H +/* Define if you have the header file. */ +#undef HAVE_ARGZ_H -/* Define if you have the header file. */ -#undef HAVE_UTIME_H +/* Define if you have the header file. */ +#undef HAVE_LANGINFO_H -/* Define if you have the `vprintf' function. */ -#undef HAVE_VPRINTF +/* Define if you have the header file. */ +#undef HAVE_LIBINTL_H -/* Name of package */ -#undef PACKAGE +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H -/* Define if compiler has function prototypes */ -#undef PROTOTYPES +/* Define if you have the header file. */ +#undef HAVE_LOCALE_H -/* Define as the return type of signal handlers (`int' or `void'). */ -#undef RETSIGTYPE +/* Define if you have the 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 header file. */ +#undef HAVE_MEMORY_H -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS +/* Define if you have the header file. */ +#undef HAVE_STDBOOL_H -/* Define if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME +/* Define if you have the header file. */ +#undef HAVE_STDDEF_H -/* Version number of package */ -#undef VERSION +/* Define if you have the header file. */ +#undef HAVE_STDLIB_H -/* Define if using the dmalloc debugging malloc package */ -#undef WITH_DMALLOC +/* Define if you have the 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 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 header file. */ +#undef HAVE_UNISTD_H -/* Define if on MINIX. */ -#undef _MINIX +/* Define if you have the 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 . + 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 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 + diff --git a/config.sub b/config.sub old mode 100755 new mode 100644 diff --git a/configure b/configure index 98219aa..2408187 100755 --- 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 -#include -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#else -# if HAVE_STRINGS_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#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 <> confdefs.h <>confdefs.h <> confdefs.h <&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 < 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 < conftest.c <&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 < conftest.$ac_ext < 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 < conftest.$ac_ext < 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 < conftest.$ac_ext < 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 <&6 +echo "configure:1134: checking for AIX" >&5 +cat > conftest.$ac_ext <&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 < conftest.$ac_ext < - 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 < conftest.$ac_ext <&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 < conftest.$ac_ext < #include @@ -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 < conftest.$ac_ext < #include #include #include - 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 < conftest.$ac_ext < - 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 < conftest.$ac_ext < - 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 < conftest.$ac_ext < -#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 < conftest.$ac_ext < - +#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 <&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&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 < conftest.$ac_ext < -#include -#include -#include -/* 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 <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 < conftest.$ac_ext <&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 <> confdefs.h <&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 < conftest.$ac_ext <&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 < conftest.$ac_ext <&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 < conftest.$ac_ext < #include #include #include - 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 < conftest.$ac_ext < - 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 < conftest.$ac_ext < - 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 < conftest.$ac_ext < -#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 < conftest.$ac_ext < - +#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 <&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&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 < conftest.$ac_ext < #include #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 <> confdefs.h <&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 < conftest.$ac_ext < #include #include - -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 < conftest.$ac_ext < - +#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 <&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&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 < conftest.$ac_ext < #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 <> confdefs.h <&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 < conftest.$ac_ext <&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 <&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&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 < conftest.$ac_ext <&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 <&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&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 < conftest.$ac_ext < -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 < conftest.$ac_ext <&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 < conftest.$ac_ext <&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 < conftest.$ac_ext <&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 <&6 + cat >> confdefs.h <&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 < conftest.$ac_ext < 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 <> confdefs.h <&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 < conftest.$ac_ext <&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 < conftest.$ac_ext <&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 <> confdefs.h <&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 < conftest.$ac_ext <&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 <> confdefs.h <>confdefs.h <> confdefs.h <&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 < conftest.$ac_ext <&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 <> confdefs.h <&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 +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 <&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 < +/* 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 <&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&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 < +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 < +#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 < conftest.$ac_ext <&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 <&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&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 < conftest.$ac_ext <&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 < conftest.$ac_ext < - +#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 <&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&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 < conftest.$ac_ext <&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 <&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&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 < conftest.$ac_ext < +#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 <&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 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 <&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&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 < conftest.$ac_ext <&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 <&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 < +#include +#include + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# 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 +# 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 < +/* 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 <&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&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 < conftest.$ac_ext < -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 <> confdefs.h <>confdefs.h <> confdefs.h <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 < $CONFIG_STATUS <$CONFIG_STATUS <>$CONFIG_STATUS <>$CONFIG_STATUS <> $CONFIG_STATUS <>$CONFIG_STATUS < 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 <>$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 <>$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%^\([ ]*\)#\([ ]*<>[ ][ ]*\)' +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 <> $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 <>$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 <>$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 <> $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 <>$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 diff --git a/configure.in b/configure.in index 5c63cba..a2f741c 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 5f97bc9..cf59f03 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,9 @@ +2000-06-29 François Pinard + + * recode.spec: New file, meant for RedHat. + * Makefile.am: Distribute it. + Reported by David Lebel. + 1998-11-28 François Pinard * Makefile.amiga, Makefile.amiga-lib: Recoded /cl to Unix. diff --git a/contrib/Makefile.am b/contrib/Makefile.am index fa9103b..cd8ae67 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -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 # 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 diff --git a/contrib/Makefile.in b/contrib/Makefile.in index 781c9fd..d36a434 100644 --- a/contrib/Makefile.in +++ b/contrib/Makefile.in @@ -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 # 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 = diff --git a/contrib/README b/contrib/README index b517065..d56be16 100644 --- a/contrib/README +++ b/contrib/README @@ -49,6 +49,11 @@ 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 index 0000000..e5b7c93 --- /dev/null +++ b/contrib/recode.spec @@ -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 +- 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 diff --git a/doc/ChangeLog b/doc/ChangeLog index e7cfdeb..9d4dde5 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,29 @@ +2000-12-06 Bruno Haible + + * 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 + + * help2man: Upgrade to version 1.022. + +2000-08-18 François Pinard + + * recode.texi (HTML): Undust and bring up-to-date. Add XML info. + +2000-07-10 François Pinard + + * recode.texi (Introduction): How to pronounce recode. + +2000-06-29 François Pinard + + * tables.py (Explodes.complete, Strips.complete_sources): Produce + delmodule_* functions, both empty for now. + 2000-06-26 François Pinard * recode.texi (Debugging): New node. @@ -47,7 +73,7 @@ * recode.texi (Charset overview): Document unreachable charsets. Reported by François-Xavier Bergot - + 1999-12-29 François Pinard * recode.texi (libiconv): Adjust to reflect the merge. diff --git a/doc/Makefile.am b/doc/Makefile.am index 0826c1d..a08f1f0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -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 diff --git a/doc/Makefile.in b/doc/Makefile.in index 3d66543..b181649 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -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 diff --git a/doc/Makemore b/doc/Makemore index 49eb01b..22367ef 100644 --- a/doc/Makemore +++ b/doc/Makemore @@ -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 diff --git a/doc/help2man b/doc/help2man index 1728036..2c81647 100755 --- a/doc/help2man +++ b/doc/help2man @@ -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 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. diff --git a/doc/libiconv.texi b/doc/libiconv.texi index d20215b..4c4c2ae 100644 --- a/doc/libiconv.texi +++ b/doc/libiconv.texi @@ -554,6 +554,9 @@ @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 @@ -587,6 +590,9 @@ @item CP950 @tindex CP950 +@item BIG5HKSCS +@tindex BIG5HKSCS + @item EUC-KR @tindex EUC-KR@r{, aliases} @tindex EUCKR @@ -609,5 +615,11 @@ @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 diff --git a/doc/recode.info b/doc/recode.info index d62fd72..06b358b 100644 --- a/doc/recode.info +++ b/doc/recode.info @@ -28,103 +28,104 @@ translation approved by the Foundation.  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  Tag Table: (Indirect) Node: Top1118 -Node: Tutorial5525 -Node: Introduction9761 -Node: Charset overview13804 -Node: Surface overview15595 -Node: Contributing17062 -Ref: Contributing-Footnote-119303 -Node: Invoking recode19437 -Node: Synopsis20393 -Ref: Synopsis-Footnote-122828 -Node: Requests23127 -Ref: Requests-Footnote-129099 -Ref: Requests-Footnote-229166 -Ref: Requests-Footnote-329344 -Node: Listings29803 -Node: Recoding39722 -Node: Reversibility42542 -Ref: Reversibility-Footnote-151040 -Node: Sequencing51177 -Node: Mixed53618 -Node: Emacs57006 -Node: Debugging57985 -Node: Library62247 -Node: Outer level63600 -Node: Request level69125 -Node: Task level79617 -Node: Charset level90060 -Node: Errors90897 -Ref: Errors-Footnote-195746 -Ref: Errors-Footnote-295860 -Node: Universal96221 -Ref: Universal-Footnote-199348 -Ref: Universal-Footnote-299416 -Node: UCS-299629 -Node: UCS-4102158 -Node: UTF-7102695 -Node: UTF-8103287 -Node: UTF-16107589 -Node: count-characters108734 -Node: dump-with-names109402 -Node: libiconv111955 -Node: Tabular123475 -Node: ASCII misc145740 -Node: ASCII146102 -Node: ISO 8859146918 -Node: ASCII-BS149212 -Node: flat151046 -Node: IBM and MS151714 -Node: EBCDIC152286 -Node: IBM-PC154395 -Ref: IBM-PC-Footnote-1156512 -Node: Icon-QNX156670 -Node: CDC157092 -Node: Display Code158793 -Ref: Display Code-Footnote-1161075 -Node: CDC-NOS161280 -Node: Bang-Bang163237 -Node: Micros165161 -Node: Apple-Mac165543 -Node: AtariST167591 -Node: Miscellaneous168574 -Node: HTML169308 -Node: LaTeX173546 -Node: Texinfo174315 -Node: Vietnamese175088 -Node: African176061 -Node: Others177410 -Node: Texte178861 -Ref: Texte-Footnote-1183409 -Ref: Texte-Footnote-2183489 -Ref: Texte-Footnote-3183964 -Node: Mule184061 -Ref: Mule-Footnote-1185841 -Node: Surfaces186360 -Ref: Surfaces-Footnote-1189345 -Node: Permutations189451 -Node: End lines190289 -Node: MIME192489 -Node: Dump193673 -Node: Test197860 -Node: Internals200334 -Node: Main flow201570 -Node: New charsets204683 -Node: New surfaces209218 -Node: Design209939 -Ref: Design-Footnote-1219153 -Node: Concept Index219257 -Node: Option Index229197 -Node: Library Index231278 -Node: Charset and Surface Index234705 +Node: Tutorial5524 +Node: Introduction9760 +Node: Charset overview13998 +Node: Surface overview15789 +Node: Contributing17256 +Ref: Contributing-Footnote-119497 +Node: Invoking recode19631 +Node: Synopsis20587 +Ref: Synopsis-Footnote-123022 +Node: Requests23321 +Ref: Requests-Footnote-129229 +Ref: Requests-Footnote-229296 +Ref: Requests-Footnote-329474 +Node: Listings29933 +Node: Recoding39832 +Node: Reversibility42652 +Ref: Reversibility-Footnote-151150 +Node: Sequencing51287 +Node: Mixed53728 +Node: Emacs57116 +Node: Debugging58095 +Node: Library62357 +Node: Outer level63710 +Node: Request level69235 +Node: Task level79727 +Node: Charset level90170 +Node: Errors91007 +Ref: Errors-Footnote-195856 +Ref: Errors-Footnote-295970 +Node: Universal96331 +Ref: Universal-Footnote-199458 +Ref: Universal-Footnote-299526 +Node: UCS-299739 +Node: UCS-4102268 +Node: UTF-7102805 +Node: UTF-8103397 +Node: UTF-16107699 +Node: count-characters108844 +Node: dump-with-names109512 +Node: libiconv112065 +Node: Tabular123644 +Node: ASCII misc145909 +Node: ASCII146271 +Node: ISO 8859147087 +Node: ASCII-BS149381 +Node: flat151215 +Node: IBM and MS151883 +Node: EBCDIC152455 +Node: IBM-PC154564 +Ref: IBM-PC-Footnote-1156681 +Node: Icon-QNX156839 +Node: CDC157261 +Node: Display Code158962 +Ref: Display Code-Footnote-1161244 +Node: CDC-NOS161449 +Node: Bang-Bang163406 +Node: Micros165330 +Node: Apple-Mac165712 +Node: AtariST167760 +Node: Miscellaneous168743 +Node: HTML169477 +Node: LaTeX175496 +Node: Texinfo176265 +Node: Vietnamese177038 +Node: African178011 +Node: Others179360 +Node: Texte180811 +Ref: Texte-Footnote-1185359 +Ref: Texte-Footnote-2185439 +Ref: Texte-Footnote-3185914 +Node: Mule186011 +Ref: Mule-Footnote-1187791 +Node: Surfaces188310 +Ref: Surfaces-Footnote-1191295 +Node: Permutations191401 +Node: End lines192239 +Node: MIME194439 +Node: Dump195623 +Node: Test199810 +Node: Internals202284 +Node: Main flow203520 +Node: New charsets206633 +Node: New surfaces211168 +Node: Design211889 +Ref: Design-Footnote-1221103 +Node: Concept Index221207 +Node: Option Index231664 +Node: Library Index233745 +Node: Charset and Surface Index237172  End Tag Table diff --git a/doc/recode.info-1 b/doc/recode.info-1 index bd466df..6fd215d 100644 --- a/doc/recode.info-1 +++ b/doc/recode.info-1 @@ -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. - -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. - diff --git a/doc/recode.info-2 b/doc/recode.info-2 index cdeb859..a28865a 100644 --- a/doc/recode.info-2 +++ b/doc/recode.info-2 @@ -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. + +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. +  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); - -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. - - -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. - diff --git a/doc/recode.info-3 b/doc/recode.info-3 index 1742768..2407c44 100644 --- a/doc/recode.info-3 +++ b/doc/recode.info-3 @@ -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. + +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. + + +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. +  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. - -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 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 . - -`KOI-8' - `GOST_19768-74' is an alias for this charset. Source: Andrey A. - Chernov . - -`KOI8-R' - Source: RFC1489 via Gabor Kiss . And Andrey A. - Chernov . - -`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. - - -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 - - -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 - - -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 , 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' diff --git a/doc/recode.info-4 b/doc/recode.info-4 index f43e19b..46234e5 100644 --- a/doc/recode.info-4 +++ b/doc/recode.info-4 @@ -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. + +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 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 . + +`KOI-8' + `GOST_19768-74' is an alias for this charset. Source: Andrey A. + Chernov . + +`KOI8-R' + Source: RFC1489 via Gabor Kiss . And Andrey A. + Chernov . + +`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. + + +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 + + +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 + + +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 , 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 +  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 - -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 `�'. -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 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: `&', `>', `<' and - `"'. - - * 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: `‌' - (`‌'), `‍' (`‍'), `‎' (`‎') and `‏' - (`‏'). - - * 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 `Æ' -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 `Æ' by the operation. - - -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::). - - -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 (!). - - -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'. - - -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'. - - -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'. - - -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. - - -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) - - -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. - - -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'. - - -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. - - -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". - - -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. - diff --git a/doc/recode.info-5 b/doc/recode.info-5 index d2eb103..ea8beda 100644 --- a/doc/recode.info-5 +++ b/doc/recode.info-5 @@ -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. + +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 . + +`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 `&', `>', `<', `"' and `''. + +`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: `&', `>', `<' and `"'. + +`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: `‌' + (`‌'), `‍' (`‍'), `‎' (`‎') and `‏' + (`‏'). + +`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 `�'. +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 `Æ' +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 `Æ' by the operation. + + +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::). + + +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 (!). + + +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'. + + +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'. + + +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'. + + +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. + + +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) + + +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. + + +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'. + + +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. + + +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". + + +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. +  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. - -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. - - -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. - - -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. - - -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-6 b/doc/recode.info-6 index 759cf2b..9504f38 100644 --- a/doc/recode.info-6 +++ b/doc/recode.info-6 @@ -26,1057 +26,500 @@ versions, except that this permission notice may be stated in a translation approved by the Foundation.  -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. + + +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. + + +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. + + +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 index 0000000..72a38cb --- /dev/null +++ b/doc/recode.info-7 @@ -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. + + +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. + + diff --git a/doc/recode.texi b/doc/recode.texi index ec942b1..a54d40e 100644 --- a/doc/recode.texi +++ b/doc/recode.texi @@ -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{&}, @samp{>}, @samp{<}, @samp{"} +and @samp{'}. + +@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{&}, @samp{>}, @samp{<} and @samp{"}. + +@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{‌} (@samp{‌}), +@samp{‍} (@samp{‍}), @samp{‎} (@samp{‎}) and @samp{‏} +(@samp{‏}). + +@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{&}, @samp{>}, @samp{<} and @samp{"}. - -@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{‌} (@samp{‌}), -@samp{‍} (@samp{‍}), @samp{‎} (@samp{‎}) and @samp{‏} -(@samp{‏}). - -@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 diff --git a/doc/stamp-vti b/doc/stamp-vti index 29badf5..35d56ac 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -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 diff --git a/doc/tables.py b/doc/tables.py index 1141df0..64f443a 100755 --- a/doc/tables.py +++ b/doc/tables.py @@ -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') # 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. diff --git a/doc/version.texi b/doc/version.texi index 29badf5..35d56ac 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -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 diff --git a/i18n/Makefile.in b/i18n/Makefile.in index 14b6e26..a63d191 100644 --- a/i18n/Makefile.in +++ b/i18n/Makefile.in @@ -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 \ diff --git a/i18n/da.mo b/i18n/da.mo index 760a891..9d98e3d 100644 Binary files a/i18n/da.mo and b/i18n/da.mo differ diff --git a/i18n/da.po b/i18n/da.po index 216cb95..024e764 100644 --- a/i18n/da.po +++ b/i18n/da.po @@ -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 \n" "Language-Team: Danish \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 .\n" -msgstr "\nRapportér fejl til .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"Rapportér fejl til .\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 .\n" +msgstr "" +"\n" +"Skrevet af François Pinard .\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 .\n" -msgstr "\nSkrevet af François Pinard .\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\"" diff --git a/i18n/de.mo b/i18n/de.mo index fb6f027..79c55b5 100644 Binary files a/i18n/de.mo and b/i18n/de.mo differ diff --git a/i18n/de.po b/i18n/de.po index 413f205..c58890f 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -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 \n" "Language-Team: German \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 .\n" -msgstr "\nBerichte über Programmfehler bitte an .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"Berichte über Programmfehler bitte an .\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 .\n" +msgstr "" +"\n" +"Geschrieben von Franc,ois Pinard .\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 .\n" -msgstr "\nGeschrieben von Franc,ois Pinard .\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'" diff --git a/i18n/el.mo b/i18n/el.mo index cc98c99..6308e95 100644 Binary files a/i18n/el.mo and b/i18n/el.mo differ diff --git a/i18n/el.po b/i18n/el.po index 7b96292..0acb18c 100644 --- a/i18n/el.po +++ b/i18n/el.po @@ -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 \n" "Language-Team: Greek \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 .\n" -msgstr "\nÁíáöÝñáôå óöÜëìáôá óôï .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"ÁíáöÝñáôå óöÜëìáôá óôï .\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 .\n" +msgstr "" +"\n" +"ÃñáììÝíï áðü ôïí Franc,ois Pinard .\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 .\n" -msgstr "\nÃñáììÝíï áðü ôïí Franc,ois Pinard .\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'" diff --git a/i18n/es.mo b/i18n/es.mo index b153961..ffd22d8 100644 Binary files a/i18n/es.mo and b/i18n/es.mo differ diff --git a/i18n/es.po b/i18n/es.po index 82d275c..fa56442 100644 --- a/i18n/es.po +++ b/i18n/es.po @@ -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 \n" "Language-Team: Spanish \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 .\n" @@ -308,39 +296,47 @@ msgstr "" "\n" "Comunicar `bugs' a .\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 .\n" +msgstr "" +"\n" +"Escrito por François Pinard .\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 .\n" +#: src/main.c:669 +#, c-format +msgid "Symbol `%s' is unknown" msgstr "" -"\n" -"Escrito por François Pinard .\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" diff --git a/i18n/fr.mo b/i18n/fr.mo index fd4759b..31ea6fc 100644 Binary files a/i18n/fr.mo and b/i18n/fr.mo differ diff --git a/i18n/fr.po b/i18n/fr.po index 54bc13b..575ba99 100644 --- a/i18n/fr.po +++ b/i18n/fr.po @@ -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 \n" "Language-Team: French \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 .\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 .\n" +msgstr "" +"\n" +"Écrit par François Pinard .\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 .\n" +#: src/main.c:669 +#, c-format +msgid "Symbol `%s' is unknown" msgstr "" -"\n" -"Écrit par François Pinard .\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" diff --git a/i18n/gl.mo b/i18n/gl.mo index 3f67518..315ace4 100644 Binary files a/i18n/gl.mo and b/i18n/gl.mo differ diff --git a/i18n/gl.po b/i18n/gl.po index 89aedc4..4de0a69 100644 --- a/i18n/gl.po +++ b/i18n/gl.po @@ -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 \n" "Language-Team: Galician \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 .\n" -msgstr "\nInforme dos erros en .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"Informe dos erros en .\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 .\n" +msgstr "" +"\n" +"Escrito por François Pinard .\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 .\n" -msgstr "\nEscrito por François Pinard .\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" diff --git a/i18n/it.mo b/i18n/it.mo index 6e690bd..b4e1a17 100644 Binary files a/i18n/it.mo and b/i18n/it.mo differ diff --git a/i18n/it.po b/i18n/it.po index ae9978d..44e8587 100644 --- a/i18n/it.po +++ b/i18n/it.po @@ -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 \n" "Language-Team: Italian \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 .\n" -msgstr "\nSegnalare i bug a .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"Segnalare i bug a .\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 .\n" +msgstr "" +"\n" +"Scritto da Franc,ois Pinard .\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 .\n" -msgstr "\nScritto da Franc,ois Pinard .\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'" diff --git a/i18n/nl.mo b/i18n/nl.mo index 3d9dd57..04003ce 100644 Binary files a/i18n/nl.mo and b/i18n/nl.mo differ diff --git a/i18n/nl.po b/i18n/nl.po index 078447d..aaa8a1c 100644 --- a/i18n/nl.po +++ b/i18n/nl.po @@ -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 \n" "Language-Team: Dutch \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 .\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 .\n" +msgstr "" +"\n" +"Geschreven door François Pinard .\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 .\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 .\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" diff --git a/i18n/pl.mo b/i18n/pl.mo index fdc7f7a..70eba53 100644 Binary files a/i18n/pl.mo and b/i18n/pl.mo differ diff --git a/i18n/pl.po b/i18n/pl.po index 5703f00..bf65c02 100644 --- a/i18n/pl.po +++ b/i18n/pl.po @@ -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 \n" "Language-Team: Polish \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 .\n" -msgstr "\nProsimy o zg³aszanie b³êdów na adres .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"Prosimy o zg³aszanie b³êdów na adres .\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 .\n" +msgstr "" +"\n" +"Autorem jest Franc,ois Pinard .\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 .\n" -msgstr "\nAutorem jest Franc,ois Pinard .\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" diff --git a/i18n/pt.mo b/i18n/pt.mo index 16911d5..26c3f87 100644 Binary files a/i18n/pt.mo and b/i18n/pt.mo differ diff --git a/i18n/pt.po b/i18n/pt.po index a2c6741..89fcf10 100644 --- a/i18n/pt.po +++ b/i18n/pt.po @@ -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 \n" "Language-Team: Portuguese \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 .\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 .\n" +msgstr "" +"\n" +"Escrito por Franc,ois Pinard .\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 .\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 .\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" diff --git a/i18n/recode.pot b/i18n/recode.pot index b6b31cc..677cc34 100644 --- a/i18n/recode.pot +++ b/i18n/recode.pot @@ -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 \n" "Language-Team: LANGUAGE \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 .\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 .\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" diff --git a/i18n/sl.mo b/i18n/sl.mo index 8fae35c..f61bedb 100644 Binary files a/i18n/sl.mo and b/i18n/sl.mo differ diff --git a/i18n/sl.po b/i18n/sl.po index 010027a..1ef2880 100644 --- a/i18n/sl.po +++ b/i18n/sl.po @@ -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 \n" "Language-Team: Slovenian \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 .\n" -msgstr "\nSporoèila o napakah javite na .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" +msgstr "" +"\n" +"Sporoèila o napakah javite na .\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 .\n" +msgstr "" +"\n" +"Avtor Franc,ois Pinard .\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 .\n" -msgstr "\nAvtor Franc,ois Pinard .\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è" diff --git a/i18n/sv.mo b/i18n/sv.mo index 92992f8..294f488 100644 Binary files a/i18n/sv.mo and b/i18n/sv.mo differ diff --git a/i18n/sv.po b/i18n/sv.po index 7392c43..c27ee0a 100644 --- a/i18n/sv.po +++ b/i18n/sv.po @@ -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 \n" "Language-Team: Swedish \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 .\n" +#: src/main.c:329 +msgid "" +"\n" +"Report bugs to .\n" msgstr "" "\n" "Rapportera fel till .\n" "Rapportera fel på översättningen till .\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 .\n" +msgstr "" +"\n" +"Skriven av François Pinard .\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 .\n" -msgstr "\nSkriven av François Pinard .\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\"" diff --git a/lib/ChangeLog b/lib/ChangeLog index a615986..97f495a 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,14 @@ +2000-10-24 Bruno Haible + + * 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 . + +2000-08-30 Bruno Haible + + * gettext.c (_nl_unload_domain): Enclose declaration in #ifdef _LIBC. + 1999-12-28 François Pinard * Makefile.am (INCLUDES): Do not use ../intl. diff --git a/lib/Makefile.am b/lib/Makefile.am index 63dbbf3..237fe72 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -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 diff --git a/lib/Makefile.in b/lib/Makefile.in index 4ecf2dc..b79fd4e 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -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 diff --git a/lib/gettext.c b/lib/gettext.c index e4b6866..3b9c274 100644 --- a/lib/gettext.c +++ b/lib/gettext.c @@ -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 */ diff --git a/libiconv/ChangeLog b/libiconv/ChangeLog index c0db791..d9b2d91 100644 --- a/libiconv/ChangeLog +++ b/libiconv/ChangeLog @@ -1,3 +1,193 @@ +2000-12-18 Bruno Haible + + * config.charset: Add support for BeOS. + +2000-12-05 Bruno Haible + + * 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 + + * 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 + + * utf7.h (utf7_mbtowc): Fix combining of UTF-16 surrogates. + +2000-07-10 François Pinard + + * README: New file. + Reported by Bruno Haible. + +2000-06-29 Bruno Haible + + * ucs2internal.h, ucs2swapped.h, ucs4internal.h, ucs4swapped.h: + Cosmetic changes to avoid compiler warnings. + 2000-06-28 François Pinard * Makefile.am (noinst_HEADERS): Distribute iconv.h. @@ -10,7 +200,7 @@ 2000-03-14 Bruno Haible * Updated to libiconv 0.3, 1.0, 1.1, then 1.2. - + 1999-12-28 François Pinard * Makefile.am: New file. diff --git a/libiconv/Makefile.am b/libiconv/Makefile.am index bab0c27..c1816a9 100644 --- a/libiconv/Makefile.am +++ b/libiconv/Makefile.am @@ -19,25 +19,68 @@ 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 diff --git a/libiconv/Makefile.in b/libiconv/Makefile.in index 390fda4..fa1bca9 100644 --- a/libiconv/Makefile.in +++ b/libiconv/Makefile.in @@ -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 index 0000000..dc15858 --- /dev/null +++ b/libiconv/README @@ -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. diff --git a/libiconv/aliases.h b/libiconv/aliases.h index 9260627..f96c3ee 100644 --- a/libiconv/aliases.h +++ b/libiconv/aliases.h @@ -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) diff --git a/libiconv/armscii_8.h b/libiconv/armscii_8.h index 4a10515..f3b20ec 100644 --- a/libiconv/armscii_8.h +++ b/libiconv/armscii_8.h @@ -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) { diff --git a/libiconv/ascii.h b/libiconv/ascii.h index bdad434..e32cf41 100644 --- a/libiconv/ascii.h +++ b/libiconv/ascii.h @@ -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; diff --git a/libiconv/big5.h b/libiconv/big5.h index 70d7ae4..c771bd1 100644 --- a/libiconv/big5.h +++ b/libiconv/big5.h @@ -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 index 0000000..fd825ff --- /dev/null +++ b/libiconv/big5hkscs.h @@ -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); +} diff --git a/libiconv/ces_big5.h b/libiconv/ces_big5.h index 0ffd3a7..e232e74 100644 --- a/libiconv/ces_big5.h +++ b/libiconv/ces_big5.h @@ -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; diff --git a/libiconv/ces_gbk.h b/libiconv/ces_gbk.h index 326cda2..be62526 100644 --- a/libiconv/ces_gbk.h +++ b/libiconv/ces_gbk.h @@ -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; diff --git a/libiconv/cns11643.h b/libiconv/cns11643.h index 9299de4..d1b440d 100644 --- a/libiconv/cns11643.h +++ b/libiconv/cns11643.h @@ -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); diff --git a/libiconv/cns11643_1.h b/libiconv/cns11643_1.h index be94c16..bdf71de 100644 --- a/libiconv/cns11643_1.h +++ b/libiconv/cns11643_1.h @@ -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; } } diff --git a/libiconv/cns11643_2.h b/libiconv/cns11643_2.h index 851d396..d952d2d 100644 --- a/libiconv/cns11643_2.h +++ b/libiconv/cns11643_2.h @@ -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; } } diff --git a/libiconv/cns11643_3.h b/libiconv/cns11643_3.h index bec4b25..0fa27a0 100644 --- a/libiconv/cns11643_3.h +++ b/libiconv/cns11643_3.h @@ -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; } } diff --git a/libiconv/cns11643_inv.h b/libiconv/cns11643_inv.h index 1b79541..02f8a32 100644 --- a/libiconv/cns11643_inv.h +++ b/libiconv/cns11643_inv.h @@ -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 index 0000000..b1f5d41 --- /dev/null +++ b/libiconv/config.charset @@ -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 diff --git a/libiconv/converters.h b/libiconv/converters.h index 26b1837..99ddfca 100644 --- a/libiconv/converters.h +++ b/libiconv/converters.h @@ -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" diff --git a/libiconv/cp1133.h b/libiconv/cp1133.h index 4dc408f..cf79b7a 100644 --- a/libiconv/cp1133.h +++ b/libiconv/cp1133.h @@ -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) { diff --git a/libiconv/cp1250.h b/libiconv/cp1250.h index cb97db0..0ce37ab 100644 --- a/libiconv/cp1250.h +++ b/libiconv/cp1250.h @@ -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) { diff --git a/libiconv/cp1251.h b/libiconv/cp1251.h index 2bc6bfc..8c0847a 100644 --- a/libiconv/cp1251.h +++ b/libiconv/cp1251.h @@ -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) { diff --git a/libiconv/cp1252.h b/libiconv/cp1252.h index 29a6c17..a2f9f47 100644 --- a/libiconv/cp1252.h +++ b/libiconv/cp1252.h @@ -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) { diff --git a/libiconv/cp1253.h b/libiconv/cp1253.h index e24dea5..562ee02 100644 --- a/libiconv/cp1253.h +++ b/libiconv/cp1253.h @@ -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) { diff --git a/libiconv/cp1254.h b/libiconv/cp1254.h index a6d7fdf..e753d4d 100644 --- a/libiconv/cp1254.h +++ b/libiconv/cp1254.h @@ -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) { diff --git a/libiconv/cp1255.h b/libiconv/cp1255.h index f3240da..61b2b59 100644 --- a/libiconv/cp1255.h +++ b/libiconv/cp1255.h @@ -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) { diff --git a/libiconv/cp1256.h b/libiconv/cp1256.h index e7f7159..72284f4 100644 --- a/libiconv/cp1256.h +++ b/libiconv/cp1256.h @@ -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) { diff --git a/libiconv/cp1257.h b/libiconv/cp1257.h index 80e0072..21b6d52 100644 --- a/libiconv/cp1257.h +++ b/libiconv/cp1257.h @@ -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) { diff --git a/libiconv/cp1258.h b/libiconv/cp1258.h index e82d9d3..5e23b4e 100644 --- a/libiconv/cp1258.h +++ b/libiconv/cp1258.h @@ -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) { diff --git a/libiconv/cp850.h b/libiconv/cp850.h index 8fa9121..f7cfccd 100644 --- a/libiconv/cp850.h +++ b/libiconv/cp850.h @@ -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) { diff --git a/libiconv/cp866.h b/libiconv/cp866.h index a99d54e..ca582e0 100644 --- a/libiconv/cp866.h +++ b/libiconv/cp866.h @@ -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) { diff --git a/libiconv/cp874.h b/libiconv/cp874.h index 2694fd7..dc144d5 100644 --- a/libiconv/cp874.h +++ b/libiconv/cp874.h @@ -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) { diff --git a/libiconv/cp932.h b/libiconv/cp932.h index c6aec6f..22fa358 100644 --- a/libiconv/cp932.h +++ b/libiconv/cp932.h @@ -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; diff --git a/libiconv/cp932ext.h b/libiconv/cp932ext.h index 1057559..baf71e4 100644 --- a/libiconv/cp932ext.h +++ b/libiconv/cp932ext.h @@ -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; diff --git a/libiconv/cp936ext.h b/libiconv/cp936ext.h index 4d4a5e4..f796c66 100644 --- a/libiconv/cp936ext.h +++ b/libiconv/cp936ext.h @@ -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; diff --git a/libiconv/cp949.h b/libiconv/cp949.h index 51837cf..a91b67e 100644 --- a/libiconv/cp949.h +++ b/libiconv/cp949.h @@ -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; diff --git a/libiconv/cp950.h b/libiconv/cp950.h index 34455ec..2960312 100644 --- a/libiconv/cp950.h +++ b/libiconv/cp950.h @@ -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, @@ -44,10 +42,55 @@ * 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)) { diff --git a/libiconv/cp950ext.h b/libiconv/cp950ext.h index eeae270..78ee36b 100644 --- a/libiconv/cp950ext.h +++ b/libiconv/cp950ext.h @@ -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; diff --git a/libiconv/encodings.def b/libiconv/encodings.def index 9787a21..f8eb572 100644 --- a/libiconv/encodings.def +++ b/libiconv/encodings.def @@ -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 index 0000000..1aeba6b --- /dev/null +++ b/libiconv/encodings_local.def @@ -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 }) diff --git a/libiconv/euc_cn.h b/libiconv/euc_cn.h index ae8f7de..0099509 100644 --- a/libiconv/euc_cn.h +++ b/libiconv/euc_cn.h @@ -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; diff --git a/libiconv/euc_jp.h b/libiconv/euc_jp.h index 30918af..b107a18 100644 --- a/libiconv/euc_jp.h +++ b/libiconv/euc_jp.h @@ -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; diff --git a/libiconv/euc_kr.h b/libiconv/euc_kr.h index 6f3c4f2..24ba2c4 100644 --- a/libiconv/euc_kr.h +++ b/libiconv/euc_kr.h @@ -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; diff --git a/libiconv/euc_tw.h b/libiconv/euc_tw.h index f942efd..91d3749 100644 --- a/libiconv/euc_tw.h +++ b/libiconv/euc_tw.h @@ -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; diff --git a/libiconv/flags.h b/libiconv/flags.h index a122ec2..57228cd 100644 --- a/libiconv/flags.h +++ b/libiconv/flags.h @@ -96,12 +96,14 @@ #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) diff --git a/libiconv/gb12345.h b/libiconv/gb12345.h index a28e3b4..f4b4f60 100644 --- a/libiconv/gb12345.h +++ b/libiconv/gb12345.h @@ -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; diff --git a/libiconv/gb12345ext.h b/libiconv/gb12345ext.h index c00a690..7a9de75 100644 --- a/libiconv/gb12345ext.h +++ b/libiconv/gb12345ext.h @@ -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 index 0000000..b0916e8 --- /dev/null +++ b/libiconv/gb18030.h @@ -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 index 0000000..7c42811 --- /dev/null +++ b/libiconv/gb18030ext.h @@ -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 index 0000000..16d851c --- /dev/null +++ b/libiconv/gb18030uni.h @@ -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; +} diff --git a/libiconv/gb2312.h b/libiconv/gb2312.h index 251c664..d2ef995 100644 --- a/libiconv/gb2312.h +++ b/libiconv/gb2312.h @@ -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; diff --git a/libiconv/gbk.h b/libiconv/gbk.h index 23a48c6..b81bb05 100644 --- a/libiconv/gbk.h +++ b/libiconv/gbk.h @@ -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; diff --git a/libiconv/gbkext1.h b/libiconv/gbkext1.h index 04ee88c..b88714f 100644 --- a/libiconv/gbkext1.h +++ b/libiconv/gbkext1.h @@ -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; } } diff --git a/libiconv/gbkext2.h b/libiconv/gbkext2.h index f787f98..92844d8 100644 --- a/libiconv/gbkext2.h +++ b/libiconv/gbkext2.h @@ -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; } } diff --git a/libiconv/gbkext_inv.h b/libiconv/gbkext_inv.h index 3899520..8b2ca66 100644 --- a/libiconv/gbkext_inv.h +++ b/libiconv/gbkext_inv.h @@ -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; diff --git a/libiconv/georgian_academy.h b/libiconv/georgian_academy.h index 14aebda..0e43504 100644 --- a/libiconv/georgian_academy.h +++ b/libiconv/georgian_academy.h @@ -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) { diff --git a/libiconv/georgian_ps.h b/libiconv/georgian_ps.h index f82c5e9..b96c491 100644 --- a/libiconv/georgian_ps.h +++ b/libiconv/georgian_ps.h @@ -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 index 0000000..b4df3e9 --- /dev/null +++ b/libiconv/hkscs.h @@ -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; +} diff --git a/libiconv/hp_roman8.h b/libiconv/hp_roman8.h index 5e8c212..b05eb23 100644 --- a/libiconv/hp_roman8.h +++ b/libiconv/hp_roman8.h @@ -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) { diff --git a/libiconv/hz.h b/libiconv/hz.h index bc95ef4..12aabf6 100644 --- a/libiconv/hz.h +++ b/libiconv/hz.h @@ -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]; diff --git a/libiconv/iconv.h b/libiconv/iconv.h index 9f1834e..2402d27 100644 --- a/libiconv/iconv.h +++ b/libiconv/iconv.h @@ -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 diff --git a/libiconv/iso2022_cn.h b/libiconv/iso2022_cn.h index 407e538..28586e3 100644 --- a/libiconv/iso2022_cn.h +++ b/libiconv/iso2022_cn.h @@ -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; diff --git a/libiconv/iso2022_cnext.h b/libiconv/iso2022_cnext.h index 5318d77..7b7fa5f 100644 --- a/libiconv/iso2022_cnext.h +++ b/libiconv/iso2022_cnext.h @@ -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; diff --git a/libiconv/iso2022_jp.h b/libiconv/iso2022_jp.h index ee2426d..c75252e 100644 --- a/libiconv/iso2022_jp.h +++ b/libiconv/iso2022_jp.h @@ -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]; diff --git a/libiconv/iso2022_jp1.h b/libiconv/iso2022_jp1.h index e69e4c5..a0494c1 100644 --- a/libiconv/iso2022_jp1.h +++ b/libiconv/iso2022_jp1.h @@ -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]; diff --git a/libiconv/iso2022_jp2.h b/libiconv/iso2022_jp2.h index 8983dc5..ec5251e 100644 --- a/libiconv/iso2022_jp2.h +++ b/libiconv/iso2022_jp2.h @@ -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; diff --git a/libiconv/iso2022_kr.h b/libiconv/iso2022_kr.h index d5a7427..ef5bd1f 100644 --- a/libiconv/iso2022_kr.h +++ b/libiconv/iso2022_kr.h @@ -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; diff --git a/libiconv/iso646_cn.h b/libiconv/iso646_cn.h index 80d0a65..ef7ddc0 100644 --- a/libiconv/iso646_cn.h +++ b/libiconv/iso646_cn.h @@ -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; diff --git a/libiconv/iso646_jp.h b/libiconv/iso646_jp.h index aceed91..38de442 100644 --- a/libiconv/iso646_jp.h +++ b/libiconv/iso646_jp.h @@ -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; diff --git a/libiconv/iso8859_1.h b/libiconv/iso8859_1.h index fb64e2e..fc302bb 100644 --- a/libiconv/iso8859_1.h +++ b/libiconv/iso8859_1.h @@ -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; diff --git a/libiconv/iso8859_10.h b/libiconv/iso8859_10.h index a727a2f..508db57 100644 --- a/libiconv/iso8859_10.h +++ b/libiconv/iso8859_10.h @@ -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) { diff --git a/libiconv/iso8859_13.h b/libiconv/iso8859_13.h index fae2770..c041b15 100644 --- a/libiconv/iso8859_13.h +++ b/libiconv/iso8859_13.h @@ -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) { diff --git a/libiconv/iso8859_14.h b/libiconv/iso8859_14.h index 2fea443..f015814 100644 --- a/libiconv/iso8859_14.h +++ b/libiconv/iso8859_14.h @@ -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) { diff --git a/libiconv/iso8859_15.h b/libiconv/iso8859_15.h index 3801fc1..631d9b5 100644 --- a/libiconv/iso8859_15.h +++ b/libiconv/iso8859_15.h @@ -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) { diff --git a/libiconv/iso8859_16.h b/libiconv/iso8859_16.h index 3dbf364..94f8377 100644 --- a/libiconv/iso8859_16.h +++ b/libiconv/iso8859_16.h @@ -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) { diff --git a/libiconv/iso8859_2.h b/libiconv/iso8859_2.h index 2309854..a63d004 100644 --- a/libiconv/iso8859_2.h +++ b/libiconv/iso8859_2.h @@ -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) { diff --git a/libiconv/iso8859_3.h b/libiconv/iso8859_3.h index dd49928..2282f19 100644 --- a/libiconv/iso8859_3.h +++ b/libiconv/iso8859_3.h @@ -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) { diff --git a/libiconv/iso8859_4.h b/libiconv/iso8859_4.h index 8afd809..878a7e4 100644 --- a/libiconv/iso8859_4.h +++ b/libiconv/iso8859_4.h @@ -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) { diff --git a/libiconv/iso8859_5.h b/libiconv/iso8859_5.h index de10545..cdd6c45 100644 --- a/libiconv/iso8859_5.h +++ b/libiconv/iso8859_5.h @@ -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) { diff --git a/libiconv/iso8859_6.h b/libiconv/iso8859_6.h index 28761f9..4c80a64 100644 --- a/libiconv/iso8859_6.h +++ b/libiconv/iso8859_6.h @@ -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) { diff --git a/libiconv/iso8859_7.h b/libiconv/iso8859_7.h index ae3233e..9b500e4 100644 --- a/libiconv/iso8859_7.h +++ b/libiconv/iso8859_7.h @@ -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) { diff --git a/libiconv/iso8859_8.h b/libiconv/iso8859_8.h index 79569be..152dc3c 100644 --- a/libiconv/iso8859_8.h +++ b/libiconv/iso8859_8.h @@ -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) { diff --git a/libiconv/iso8859_9.h b/libiconv/iso8859_9.h index 8ca9979..b94ac9d 100644 --- a/libiconv/iso8859_9.h +++ b/libiconv/iso8859_9.h @@ -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) { diff --git a/libiconv/isoir165.h b/libiconv/isoir165.h index 40a3d42..42f35f4 100644 --- a/libiconv/isoir165.h +++ b/libiconv/isoir165.h @@ -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; diff --git a/libiconv/isoir165ext.h b/libiconv/isoir165ext.h index e3bb1b5..06ed8b4 100644 --- a/libiconv/isoir165ext.h +++ b/libiconv/isoir165ext.h @@ -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; diff --git a/libiconv/java.h b/libiconv/java.h index 081d9b5..dc8cda1 100644 --- a/libiconv/java.h +++ b/libiconv/java.h @@ -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; diff --git a/libiconv/jisx0201.h b/libiconv/jisx0201.h index 5bde56f..e4af966 100644 --- a/libiconv/jisx0201.h +++ b/libiconv/jisx0201.h @@ -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; diff --git a/libiconv/jisx0208.h b/libiconv/jisx0208.h index ff833d6..10adf20 100644 --- a/libiconv/jisx0208.h +++ b/libiconv/jisx0208.h @@ -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; diff --git a/libiconv/jisx0212.h b/libiconv/jisx0212.h index 6ba6945..f31c55c 100644 --- a/libiconv/jisx0212.h +++ b/libiconv/jisx0212.h @@ -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; diff --git a/libiconv/johab.h b/libiconv/johab.h index 04891f2..3e2eee9 100644 --- a/libiconv/johab.h +++ b/libiconv/johab.h @@ -29,14 +29,14 @@ */ 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; diff --git a/libiconv/johab_hangul.h b/libiconv/johab_hangul.h index 96b25ee..b661f22 100644 --- a/libiconv/johab_hangul.h +++ b/libiconv/johab_hangul.h @@ -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) diff --git a/libiconv/koi8_r.h b/libiconv/koi8_r.h index b0c802e..37ca594 100644 --- a/libiconv/koi8_r.h +++ b/libiconv/koi8_r.h @@ -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) { diff --git a/libiconv/koi8_ru.h b/libiconv/koi8_ru.h index caf71b1..e399cfe 100644 --- a/libiconv/koi8_ru.h +++ b/libiconv/koi8_ru.h @@ -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) { diff --git a/libiconv/koi8_u.h b/libiconv/koi8_u.h index bc0bfd0..e094419 100644 --- a/libiconv/koi8_u.h +++ b/libiconv/koi8_u.h @@ -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) { diff --git a/libiconv/ksc5601.h b/libiconv/ksc5601.h index 0e387fe..33c4d86 100644 --- a/libiconv/ksc5601.h +++ b/libiconv/ksc5601.h @@ -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 index 0000000..e769813 --- /dev/null +++ b/libiconv/libcharset.h @@ -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 index 0000000..782c692 --- /dev/null +++ b/libiconv/loop_unicode.h @@ -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 index 0000000..7f15596 --- /dev/null +++ b/libiconv/loop_wchar.h @@ -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 +#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 index 0000000..6f9b535 --- /dev/null +++ b/libiconv/loops.h @@ -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" + diff --git a/libiconv/mac_arabic.h b/libiconv/mac_arabic.h index b54c53c..1b86c5e 100644 --- a/libiconv/mac_arabic.h +++ b/libiconv/mac_arabic.h @@ -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) { diff --git a/libiconv/mac_centraleurope.h b/libiconv/mac_centraleurope.h index b26353f..56d0ce0 100644 --- a/libiconv/mac_centraleurope.h +++ b/libiconv/mac_centraleurope.h @@ -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) { diff --git a/libiconv/mac_croatian.h b/libiconv/mac_croatian.h index 104a199..42acacb 100644 --- a/libiconv/mac_croatian.h +++ b/libiconv/mac_croatian.h @@ -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) { diff --git a/libiconv/mac_cyrillic.h b/libiconv/mac_cyrillic.h index 4b82275..3c8cfc4 100644 --- a/libiconv/mac_cyrillic.h +++ b/libiconv/mac_cyrillic.h @@ -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) { diff --git a/libiconv/mac_greek.h b/libiconv/mac_greek.h index 650c51b..55f7f6c 100644 --- a/libiconv/mac_greek.h +++ b/libiconv/mac_greek.h @@ -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) { diff --git a/libiconv/mac_hebrew.h b/libiconv/mac_hebrew.h index 0b0c23e..c113355 100644 --- a/libiconv/mac_hebrew.h +++ b/libiconv/mac_hebrew.h @@ -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) { diff --git a/libiconv/mac_iceland.h b/libiconv/mac_iceland.h index bd14041..431b483 100644 --- a/libiconv/mac_iceland.h +++ b/libiconv/mac_iceland.h @@ -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) { diff --git a/libiconv/mac_roman.h b/libiconv/mac_roman.h index 130c459..9fe2439 100644 --- a/libiconv/mac_roman.h +++ b/libiconv/mac_roman.h @@ -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) { diff --git a/libiconv/mac_romania.h b/libiconv/mac_romania.h index d0c64f1..4391f1a 100644 --- a/libiconv/mac_romania.h +++ b/libiconv/mac_romania.h @@ -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) { diff --git a/libiconv/mac_thai.h b/libiconv/mac_thai.h index ab756e0..af5ae5a 100644 --- a/libiconv/mac_thai.h +++ b/libiconv/mac_thai.h @@ -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) { diff --git a/libiconv/mac_turkish.h b/libiconv/mac_turkish.h index c73503b..4065a0f 100644 --- a/libiconv/mac_turkish.h +++ b/libiconv/mac_turkish.h @@ -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) { diff --git a/libiconv/mac_ukraine.h b/libiconv/mac_ukraine.h index 2fdf2df..411e752 100644 --- a/libiconv/mac_ukraine.h +++ b/libiconv/mac_ukraine.h @@ -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) { diff --git a/libiconv/mulelao.h b/libiconv/mulelao.h index 03e138b..5b82457 100644 --- a/libiconv/mulelao.h +++ b/libiconv/mulelao.h @@ -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) { diff --git a/libiconv/nextstep.h b/libiconv/nextstep.h index 8f06ae6..2936d49 100644 --- a/libiconv/nextstep.h +++ b/libiconv/nextstep.h @@ -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 index 0000000..167374e --- /dev/null +++ b/libiconv/ref-add.sin @@ -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 . +# +/^# 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 index 0000000..613cf37 --- /dev/null +++ b/libiconv/ref-del.sin @@ -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 . +# +/^# Packages using this file: / { + s/# Packages using this file:// + s/ @PACKAGE@ / / + s/^/# Packages using this file:/ +} diff --git a/libiconv/sjis.h b/libiconv/sjis.h index ab8c615..6ee17f5 100644 --- a/libiconv/sjis.h +++ b/libiconv/sjis.h @@ -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; diff --git a/libiconv/tcvn.h b/libiconv/tcvn.h index 32330bf..4662683 100644 --- a/libiconv/tcvn.h +++ b/libiconv/tcvn.h @@ -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)) { diff --git a/libiconv/tis620.h b/libiconv/tis620.h index 90547e3..bc7709c 100644 --- a/libiconv/tis620.h +++ b/libiconv/tis620.h @@ -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; diff --git a/libiconv/ucs2.h b/libiconv/ucs2.h index 5332a8f..b2e385d 100644 --- a/libiconv/ucs2.h +++ b/libiconv/ucs2.h @@ -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; diff --git a/libiconv/ucs2be.h b/libiconv/ucs2be.h index 092ab49..20a8b27 100644 --- a/libiconv/ucs2be.h +++ b/libiconv/ucs2be.h @@ -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; diff --git a/libiconv/ucs2internal.h b/libiconv/ucs2internal.h index d89e79c..424b581 100644 --- a/libiconv/ucs2internal.h +++ b/libiconv/ucs2internal.h @@ -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; diff --git a/libiconv/ucs2le.h b/libiconv/ucs2le.h index ba2e119..7e63fea 100644 --- a/libiconv/ucs2le.h +++ b/libiconv/ucs2le.h @@ -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); diff --git a/libiconv/ucs2swapped.h b/libiconv/ucs2swapped.h index b733f8f..b880a64 100644 --- a/libiconv/ucs2swapped.h +++ b/libiconv/ucs2swapped.h @@ -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); diff --git a/libiconv/ucs4.h b/libiconv/ucs4.h index f7121f7..7073344 100644 --- a/libiconv/ucs4.h +++ b/libiconv/ucs4.h @@ -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) { diff --git a/libiconv/ucs4be.h b/libiconv/ucs4be.h index 6e85be7..f86897f 100644 --- a/libiconv/ucs4be.h +++ b/libiconv/ucs4be.h @@ -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); diff --git a/libiconv/ucs4internal.h b/libiconv/ucs4internal.h index 3b536cd..362adfd 100644 --- a/libiconv/ucs4internal.h +++ b/libiconv/ucs4internal.h @@ -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; diff --git a/libiconv/ucs4le.h b/libiconv/ucs4le.h index 285a77b..b571443 100644 --- a/libiconv/ucs4le.h +++ b/libiconv/ucs4le.h @@ -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; diff --git a/libiconv/ucs4swapped.h b/libiconv/ucs4swapped.h index 89f2314..c076ecf 100644 --- a/libiconv/ucs4swapped.h +++ b/libiconv/ucs4swapped.h @@ -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 diff --git a/libiconv/uhc_1.h b/libiconv/uhc_1.h index 296b108..f85cb9f 100644 --- a/libiconv/uhc_1.h +++ b/libiconv/uhc_1.h @@ -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) { diff --git a/libiconv/uhc_2.h b/libiconv/uhc_2.h index 859002e..eccf9ff 100644 --- a/libiconv/uhc_2.h +++ b/libiconv/uhc_2.h @@ -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) { diff --git a/libiconv/utf16.h b/libiconv/utf16.h index 5cb2169..818455c 100644 --- a/libiconv/utf16.h +++ b/libiconv/utf16.h @@ -12,18 +12,18 @@ 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); diff --git a/libiconv/utf16be.h b/libiconv/utf16be.h index 69c5604..4ff87ee 100644 --- a/libiconv/utf16be.h +++ b/libiconv/utf16be.h @@ -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; } diff --git a/libiconv/utf16le.h b/libiconv/utf16le.h index ad54f59..170bbc4 100644 --- a/libiconv/utf16le.h +++ b/libiconv/utf16le.h @@ -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; } diff --git a/libiconv/utf7.h b/libiconv/utf7.h index 65ef3b1..ceabf79 100644 --- a/libiconv/utf7.h +++ b/libiconv/utf7.h @@ -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; diff --git a/libiconv/utf8.h b/libiconv/utf8.h index 57143bc..e757bbf 100644 --- a/libiconv/utf8.h +++ b/libiconv/utf8.h @@ -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) diff --git a/libiconv/viscii.h b/libiconv/viscii.h index b43bc62..d5147e8 100644 --- a/libiconv/viscii.h +++ b/libiconv/viscii.h @@ -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)) { diff --git a/m4/ChangeLog b/m4/ChangeLog index cbc47ad..3d7e070 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,23 @@ +2001-01-03 Bruno Haible + + * 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 + + * microsoft.m4: Remove file. + * Makefile.am (EXTRA_DIST): Remove it. + +2000-12-05 Bruno Haible + + * 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 * Makefile.am (EXTRA_DIST): diff --git a/m4/Makefile.am b/m4/Makefile.am index 2d71d00..c44de89 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -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 diff --git a/m4/Makefile.in b/m4/Makefile.in index 9ed3b17..9a87ce5 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -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 index 0000000..fbe6a80 --- /dev/null +++ b/m4/codeset.m4 @@ -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 ], + [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 and nl_langinfo(CODESET).]) + fi +]) diff --git a/m4/gettext.m4 b/m4/gettext.m4 index f2f345c..433ff25 100644 --- a/m4/gettext.m4 +++ b/m4/gettext.m4 @@ -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 index 0000000..9fd4566 --- /dev/null +++ b/m4/glibc21.m4 @@ -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 +#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 index 0000000..72fac3b --- /dev/null +++ b/m4/libtool.m4 @@ -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 , 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 &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 index 6fcc68e..0000000 --- a/m4/microsoft.m4 +++ /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 -])]) diff --git a/src/ChangeLog b/src/ChangeLog index 28ddf45..9abf591 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,68 @@ +2001-01-22 Bruno Haible + + * hash.c: Avoid use of undefined macros HAVE_DECL_MALLOC/FREE. + +2001-01-03 Bruno Haible + + * 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 + + * localcharset.c: Improve WIN32 macrology. + (locale_charset): Increase size of buffer. + +2000-12-06 Bruno Haible + + * names.c (disambiguate_name): When DEFAULT_CHARSET is not set, use + "char". + * main.c (usage): Modified default charset. + +2000-12-05 Bruno Haible + + * 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 + + * 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 . + +2000-10-24 Bruno Haible + + * main.c (main): Remove libtool's "lt-" prefix from program_name. + +2000-10-15 Bruno Haible + + * Makefile.am (inisteps.h): New target, depend on stamp-steps. + (tersteps.h): Likewise. + (noinst_HEADERS): Add tersteps.h. + +2000-08-30 Bruno Haible + + * outer.c: Include "hash.h". + 2000-08-18 François Pinard * html.c: Add XML-standalone, and h0 for an alias. @@ -137,7 +202,7 @@ 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. diff --git a/src/Makefile.am b/src/Makefile.am index 9023a72..c918aa7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 ) \ diff --git a/src/Makefile.in b/src/Makefile.in index 56a749b..9bdb85d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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 ) \ diff --git a/src/african.c b/src/african.c index 2d808e3..83ec06f 100644 --- a/src/african.c +++ b/src/african.c @@ -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 , 1997. */ #include "common.h" @@ -130,3 +130,8 @@ module_african (RECODE_OUTER outer) return true; } + +void +delmodule_african (RECODE_OUTER outer) +{ +} diff --git a/src/afrtran.c b/src/afrtran.c index d67f8fb..a70490f 100644 --- a/src/afrtran.c +++ b/src/afrtran.c @@ -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 , 1997. */ #include "common.h" @@ -345,3 +345,8 @@ module_afrtran (RECODE_OUTER outer) return true; } + +void +delmodule_afrtran (RECODE_OUTER outer) +{ +} diff --git a/src/applemac.c b/src/applemac.c index 4c1ec83..72428c5 100644 --- a/src/applemac.c +++ b/src/applemac.c @@ -179,3 +179,8 @@ module_applemac (RECODE_OUTER outer) #endif return true; } + +void +delmodule_applemac (RECODE_OUTER outer) +{ +} diff --git a/src/ascilat1.l b/src/ascilat1.l index 46263ce..8f8704a 100644 --- a/src/ascilat1.l +++ b/src/ascilat1.l @@ -91,3 +91,8 @@ module_ascii_latin1 (RECODE_OUTER outer) return true; } + +void +delmodule_ascii_latin1 (RECODE_OUTER outer) +{ +} diff --git a/src/atarist.c b/src/atarist.c index abefcbf..2b31dcf 100644 --- a/src/atarist.c +++ b/src/atarist.c @@ -226,3 +226,8 @@ module_atarist (RECODE_OUTER outer) #endif } + +void +delmodule_atarist (RECODE_OUTER outer) +{ +} diff --git a/src/bangbang.c b/src/bangbang.c index cf96423..553f42f 100644 --- a/src/bangbang.c +++ b/src/bangbang.c @@ -389,3 +389,8 @@ module_bangbang (RECODE_OUTER outer) outer->quality_variable_to_byte, NULL, transform_bangbang_latin1); } + +void +delmodule_bangbang (RECODE_OUTER outer) +{ +} diff --git a/src/base64.c b/src/base64.c index b9ab029..8f6524b 100644 --- a/src/base64.c +++ b/src/base64.c @@ -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) +{ +} diff --git a/src/cdcnos.c b/src/cdcnos.c index b04ca36..878063b 100644 --- a/src/cdcnos.c +++ b/src/cdcnos.c @@ -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) +{ +} diff --git a/src/charname.h b/src/charname.h index eb53b72..25fa0fa 100644 --- a/src/charname.h +++ b/src/charname.h @@ -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 , 1993, 1997. This library is free software; you can redistribute it and/or diff --git a/src/combine.c b/src/combine.c index a09591c..d76211d 100644 --- a/src/combine.c +++ b/src/combine.c @@ -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 , 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; diff --git a/src/decsteps.h b/src/decsteps.h index 5d9bb64..d400e7e 100644 --- a/src/decsteps.h +++ b/src/decsteps.h @@ -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 *)); diff --git a/src/dump.c b/src/dump.c index f89cf58..5ed54ca 100644 --- a/src/dump.c +++ b/src/dump.c @@ -459,3 +459,8 @@ module_dump (RECODE_OUTER outer) return true; } + +void +delmodule_dump (RECODE_OUTER outer) +{ +} diff --git a/src/ebcdic.c b/src/ebcdic.c index 41c3475..a76eadb 100644 --- a/src/ebcdic.c +++ b/src/ebcdic.c @@ -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) +{ +} diff --git a/src/flat.c b/src/flat.c index e29cdfa..5367497 100644 --- a/src/flat.c +++ b/src/flat.c @@ -107,3 +107,8 @@ module_flat (RECODE_OUTER outer) return true; } + +void +delmodule_flat (RECODE_OUTER outer) +{ +} diff --git a/src/fr-charname.h b/src/fr-charname.h index 8223ad1..25cca4b 100644 --- a/src/fr-charname.h +++ b/src/fr-charname.h @@ -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 , 1993, 1997. This library is free software; you can redistribute it and/or diff --git a/src/hash.c b/src/hash.c index 79c2515..11edad7 100644 --- a/src/hash.c +++ b/src/hash.c @@ -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 #include -#if !HAVE_DECL_FREE +#if !HAVE_STDLIB_H void free (); -#endif -#if !HAVE_DECL_MALLOC char *malloc (); #endif diff --git a/src/html.c b/src/html.c index c202ef9..a4f80a3 100644 --- a/src/html.c +++ b/src/html.c @@ -47,6 +47,8 @@ ™ (TM) */ +/* XML with stand-alone=yes */ +#define V00 (1 << 0) /* Old Emacs-W3, HTML 1.1 ? */ #define V11 (1 << 1) /* RFC1866, HTML 2.0 */ @@ -63,318 +65,318 @@ 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) +{ +} diff --git a/src/ibmpc.c b/src/ibmpc.c index 0c01a78..382a531 100644 --- a/src/ibmpc.c +++ b/src/ibmpc.c @@ -382,3 +382,8 @@ module_ibmpc (RECODE_OUTER outer) #endif return true; } + +void +delmodule_ibmpc (RECODE_OUTER outer) +{ +} diff --git a/src/iconqnx.c b/src/iconqnx.c index 9f36f90..49d33ef 100644 --- a/src/iconqnx.c +++ b/src/iconqnx.c @@ -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) +{ +} diff --git a/src/iconv.c b/src/iconv.c index 838468e..89a838d 100644 --- a/src/iconv.c +++ b/src/iconv.c @@ -18,6 +18,7 @@ #include "common.h" #include "iconv.h" +#include "libcharset.h" #if 0 @@ -31,6 +32,17 @@ #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 diff --git a/src/lat1asci.c b/src/lat1asci.c index cd3b9e8..1f3034f 100644 --- a/src/lat1asci.c +++ b/src/lat1asci.c @@ -195,3 +195,8 @@ module_latin1_ascii (RECODE_OUTER outer) return true; } + +void +delmodule_latin1_ascii (RECODE_OUTER outer) +{ +} diff --git a/src/lat1ltex.c b/src/lat1ltex.c index 056b669..a0a9326 100644 --- a/src/lat1ltex.c +++ b/src/lat1ltex.c @@ -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 index 51c73cc..0000000 --- a/src/lat1texi.c +++ /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 , 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"); -} diff --git a/src/lat1txte.c b/src/lat1txte.c index f39a1bc..fdc9392 100644 --- a/src/lat1txte.c +++ b/src/lat1txte.c @@ -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) +{ +} diff --git a/src/libiconv.h b/src/libiconv.h index dc7c4dc..fbaa406 100644 --- a/src/libiconv.h +++ b/src/libiconv.h @@ -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 index 0000000..936d93d --- /dev/null +++ b/src/localcharset.c @@ -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 . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if HAVE_STDDEF_H +# include +#endif + +#include +#if HAVE_STRING_H +# include +#else +# include +#endif +#if HAVE_STDLIB_H +# include +#endif + +#if defined _WIN32 || defined __WIN32__ +# undef WIN32 /* avoid warning on mingw32 */ +# define WIN32 +#endif + +#ifndef WIN32 +# if HAVE_LANGINFO_CODESET +# include +# else +# if HAVE_SETLOCALE +# include +# endif +# endif +#else /* WIN32 */ +# define WIN32_LEAN_AND_MEAN +# include +#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; +} diff --git a/src/ltexlat1.l b/src/ltexlat1.l index 88c3390..6f34779 100644 --- a/src/ltexlat1.l +++ b/src/ltexlat1.l @@ -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) +{ +} diff --git a/src/main.c b/src/main.c index 84bb2c5..3a5de1d 100644 --- a/src/main.c +++ b/src/main.c @@ -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); diff --git a/src/merged.c b/src/merged.c index 1670bd1..bb21100 100644 --- a/src/merged.c +++ b/src/merged.c @@ -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 , 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 , 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) +{ +} diff --git a/src/mixed.c b/src/mixed.c index 164f54f..d3123d2 100644 --- a/src/mixed.c +++ b/src/mixed.c @@ -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 , 1990. This program is free software; you can redistribute it and/or modify it diff --git a/src/mule.c b/src/mule.c index 9ebed57..3973e30 100644 --- a/src/mule.c +++ b/src/mule.c @@ -110,3 +110,8 @@ module_mule (RECODE_OUTER outer) outer->quality_variable_to_byte, NULL, transform_mule_latin2); } + +void +delmodule_mule (RECODE_OUTER outer) +{ +} diff --git a/src/names.c b/src/names.c index 55c3080..6ec7721 100644 --- a/src/names.c +++ b/src/names.c @@ -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: diff --git a/src/outer.c b/src/outer.c index 3e1d495..ebe8ae3 100644 --- a/src/outer.c +++ b/src/outer.c @@ -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 | diff --git a/src/permut.c b/src/permut.c index b23c742..cf7fa68 100644 --- a/src/permut.c +++ b/src/permut.c @@ -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 index f99b271..0000000 --- a/src/pool.c +++ /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 , 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 - }; diff --git a/src/quoted.c b/src/quoted.c index 97a5869..be5010f 100644 --- a/src/quoted.c +++ b/src/quoted.c @@ -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) +{ +} diff --git a/src/recode.1 b/src/recode.1 index 81321cc..a68a68e 100644 --- a/src/recode.1 +++ b/src/recode.1 @@ -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]... diff --git a/src/recode.c b/src/recode.c index 03c52f4..055ef2f 100644 --- a/src/recode.c +++ b/src/recode.c @@ -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 , 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; diff --git a/src/recodext.h b/src/recodext.h index 3d9d600..a8492fd 100644 --- a/src/recodext.h +++ b/src/recodext.h @@ -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 , 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 */ diff --git a/src/rfc1345.c b/src/rfc1345.c index 0b3c89d..d7daf15 100644 --- a/src/rfc1345.c +++ b/src/rfc1345.c @@ -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) +{ +} diff --git a/src/rfc1345.h b/src/rfc1345.h index 9eca38e..ec6456c 100644 --- a/src/rfc1345.h +++ b/src/rfc1345.h @@ -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 , 1993, 1997. This library is free software; you can redistribute it and/or diff --git a/src/strip-data.c b/src/strip-data.c index f49ef28..7cf7b90 100644 --- a/src/strip-data.c +++ b/src/strip-data.c @@ -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 index 0000000..49058db --- /dev/null +++ b/src/tersteps.h @@ -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); diff --git a/src/testdump.c b/src/testdump.c index 116a9f2..96457b4 100644 --- a/src/testdump.c +++ b/src/testdump.c @@ -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) +{ +} diff --git a/src/texinfo.c b/src/texinfo.c index d3f926d..ed2a1b7 100644 --- a/src/texinfo.c +++ b/src/texinfo.c @@ -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) +{ +} diff --git a/src/txtelat1.l b/src/txtelat1.l index 19c0dd0..8d1b124 100644 --- a/src/txtelat1.l +++ b/src/txtelat1.l @@ -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) +{ +} diff --git a/src/utf16.c b/src/utf16.c index 507ce6d..d43258b 100644 --- a/src/utf16.c +++ b/src/utf16.c @@ -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) +{ +} diff --git a/src/utf7.c b/src/utf7.c index d130fdb..8e4be36 100644 --- a/src/utf7.c +++ b/src/utf7.c @@ -295,3 +295,8 @@ module_utf7 (RECODE_OUTER outer) outer->quality_variable_to_variable, NULL, transform_utf16_utf7); } + +void +delmodule_utf7 (RECODE_OUTER outer) +{ +} diff --git a/src/utf8.c b/src/utf8.c index d427e37..23bdc7c 100644 --- a/src/utf8.c +++ b/src/utf8.c @@ -269,3 +269,8 @@ module_utf8 (RECODE_OUTER outer) outer->quality_variable_to_variable, NULL, transform_ucs2_utf8); } + +void +delmodule_utf8 (RECODE_OUTER outer) +{ +} diff --git a/src/varia.c b/src/varia.c index e827e52..4c4643f 100644 --- a/src/varia.c +++ b/src/varia.c @@ -593,3 +593,8 @@ module_varia (RECODE_OUTER outer) return true; } + +void +delmodule_varia (RECODE_OUTER outer) +{ +} diff --git a/src/vn.c b/src/vn.c index 91d9d22..9e2f19b 100644 --- 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) +{ +} diff --git a/lib/xalloc.h b/src/xalloc.h similarity index 100% rename from lib/xalloc.h rename to src/xalloc.h diff --git a/lib/xmalloc.c b/src/xmalloc.c similarity index 100% rename from lib/xmalloc.c rename to src/xmalloc.c diff --git a/tests/ChangeLog b/tests/ChangeLog index 8485283..9e3ffcc 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,12 @@ +2001-01-02 Bruno Haible + + * names.m4: Adjusted for libiconv-1.5 (BIG5HKSCS, GB18030, CHAR, + WCHAR_T). + +2000-08-18 François Pinard + + * names.m4: Adjusted for XML-standalone. + 2000-06-28 François Pinard * testdump.m4: New name for debug.m4. @@ -16,7 +25,7 @@ 2000-02-05 François Pinard * names.m4: Adjusted for tree, a special charset like data. - + 1999-12-24 François Pinard * names.m4: Adjusted for defaulted libiconv. diff --git a/tests/Makefile.in b/tests/Makefile.in index 25ddf14..076d364 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -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@ diff --git a/tests/names.m4 b/tests/names.m4 index 0614912..fcee2b2 100644 --- a/tests/names.m4 +++ b/tests/names.m4 @@ -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) diff --git a/tests/testsuite b/tests/testsuite index 6b1bf06..0835f61 100644 --- a/tests/testsuite +++ b/tests/testsuite @@ -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