aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2000-04-17 17:18:14 +0000
committerBruno Haible <bruno@clisp.org>2009-06-21 11:43:20 +0200
commit6d93d60b829a97dab9beae4f1a38e60614198059 (patch)
treecbdcacb8cf347a9ff2de53ba5e6eaff54246f739
parent5d5646a82d474c958a019a84932e6687e6acef18 (diff)
downloadandroid-libiconv-6d93d60b829a97dab9beae4f1a38e60614198059.tar.gz
android-libiconv-6d93d60b829a97dab9beae4f1a38e60614198059.tar.bz2
android-libiconv-6d93d60b829a97dab9beae4f1a38e60614198059.zip
Upgrade to libiconv-1.3.
-rw-r--r--ChangeLog77
-rw-r--r--INSTALL.generic183
-rw-r--r--Makefile.devel12
-rw-r--r--Makefile.msvc39
-rw-r--r--NEWS8
-rw-r--r--NOTES5
-rw-r--r--PORTS7
-rw-r--r--README9
-rw-r--r--README.win3228
-rw-r--r--THANKS6
-rwxr-xr-xconfigure2
-rw-r--r--configure.in1
-rw-r--r--include/iconv.h.in7
-rw-r--r--include/iconv.h.msvc-shared117
-rw-r--r--include/iconv.h.msvc-static (renamed from include/iconv.h.msvc)7
-rw-r--r--man/iconv_open.311
-rw-r--r--src/Makefile.in9
-rw-r--r--src/Makefile.msvc65
-rw-r--r--src/aliases.gperf16
-rw-r--r--src/aliases.h897
-rw-r--r--src/converters.h4
-rw-r--r--src/encodings.def48
-rw-r--r--src/flags.h8
-rw-r--r--src/ucs2be.h27
-rw-r--r--src/ucs2le.h27
-rw-r--r--src/ucs2swapped.h17
-rw-r--r--src/ucs4be.h26
-rw-r--r--src/ucs4le.h26
-rw-r--r--src/ucs4swapped.h17
-rw-r--r--tests/Makefile.in6
-rw-r--r--tests/Makefile.msvc168
-rw-r--r--tests/UCS-2BE-snippetbin0 -> 2390 bytes
-rw-r--r--tests/UCS-2BE-snippet.UTF-846
-rw-r--r--tests/UCS-2LE-snippetbin0 -> 2390 bytes
-rw-r--r--tests/UCS-2LE-snippet.UTF-846
-rw-r--r--tests/UCS-4BE-snippetbin0 -> 16 bytes
-rw-r--r--tests/UCS-4BE-snippet.UTF-81
-rw-r--r--tests/UCS-4LE-snippetbin0 -> 16 bytes
-rw-r--r--tests/UCS-4LE-snippet.UTF-81
-rw-r--r--tests/check-stateful.bat9
-rw-r--r--tests/check-stateless.bat21
-rw-r--r--tests/check-translit.bat7
-rw-r--r--tests/uniq-u.c278
-rw-r--r--windows/dllexport.h6
-rw-r--r--windows/iconv.rc37
45 files changed, 1777 insertions, 555 deletions
diff --git a/ChangeLog b/ChangeLog
index 88d4289..180be0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,72 @@
+2000-04-15 Bruno Haible <haible@clisp.cons.org>
+
+ * Version 1.3 released.
+ * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc:
+ Bump version number.
+ * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:0:0.
+
+2000-04-15 Bruno Haible <haible@clisp.cons.org>
+
+ * THANKS: New file.
+ * INSTALL.generic: New file.
+
+ Implement and document UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE.
+ * src/ucs2be.h, src/ucs2le.h, src/ucs4be.h, src/ucs4le.h: New files.
+ * src/converters.h: Include them.
+ * src/ucs2swapped.h: Remove #defines for UCS-2-BE, UCS-2-LE.
+ * src/ucs4swapped.h: Remove #defines for UCS-4-BE, UCS-4-LE.
+ * src/encodings.def (UCS-2BE): Renamed from UCS-2-BE.
+ (UCS-2LE): Renamed from UCS-2-LE.
+ (UCS-4BE): Renamed from UCS-4-BE.
+ (UCS-4LE): Renamed from UCS-4-LE.
+ * Makefile.devel (src/aliases.h): Pass option "-i 1" to gperf.
+ * README, man/iconv_open.3: Add UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE.
+ * tests/Makefile.in (check): Check UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE.
+ * tests/Makefile.msvc (check): Likewise.
+ * tests/UCS-*snippet*: New files.
+
+ Allow building as a shared library on Windows.
+ Allow running the tests on Windows.
+ * Makefile.devel (include/iconv.h.msvc): Remove rule.
+ (include/iconv.h.msvc-static, include/iconv.h.msvc-shared): New
+ rules.
+ (all): Update.
+ * windows/dllexport.h: New file.
+ * include/iconv.h.msvc: Remove file.
+ * include/iconv.h.msvc-static, include/iconv.h.msvc-shared: New
+ autogenerated files.
+ * Makefile.msvc (STATIC, DEBUG): Default to 0.
+ (all): Choose either include\iconv.h.msvc-static or
+ include\iconv.h.msvc-shared.
+ (check): Depend on all.
+ (all, check, mostlyclean, clean, distclean, maintainer-clean):
+ Recurse into tests directory.
+ * src/Makefile.msvc (STATIC, DEBUG): Default to 0.
+ (WARN_CFLAGS, PICFLAGS, OPTIMFLAGS): New variables.
+ (CFLAGS): Use them. Add -MD and -DBUILDING_LIBICONV.
+ (RESOURCES): New variable.
+ (iconv.lib): Change rule when building DLL.
+ (clean, distclean): One filename per line.
+ * tests/Makefile.msvc: New file.
+ * tests/check-stateful.bat, tests/check-stateless.bat,
+ tests/check-translit.bat: New files.
+ * tests/uniq-u.c: New file, taken from GNU textutils.
+ * README.win32: Update.
+ Based on patches by Taro Muraoka <koron@tka.att.ne.jp>.
+
+2000-04-14 Bruno Haible <haible@clisp.cons.org>
+
+ Fix an OSF/1 problem.
+ * configure.in: Define GCC variable for substitution.
+ * src/Makefile.in (libiconv_plug_osf.so): Change rule if not using
+ gcc.
+
+2000-04-13 Bruno Haible <haible@clisp.cons.org>
+
+ Fix a SunOS 4 problem.
+ * include/iconv.h.in: If EILSEQ is not defined by the system, define
+ it to ENOENT, not EILSEQ.
+
2000-04-02 Bruno Haible <haible@clisp.cons.org>
Allow building on filesystems lacking symlinks and hard links.
@@ -15,12 +84,12 @@
2000-03-14 Bruno Haible <haible@clisp.cons.org>
- Implement and document UTF-16BE and UTF16-LE.
+ Implement and document UTF-16BE and UTF16LE.
* src/utf16be.h, src/utf16le.h: New files.
* src/converters.h: Include them.
- * src/encodings.def (UTF-16BE, UTF16-LE): New encodings.
- * README, man/iconv_open.3: Add UTF-16BE, UTF16-LE.
- * tests/Makefile.in (check): Check UTF-16, UTF-16BE, UTF16-LE.
+ * src/encodings.def (UTF-16BE, UTF16LE): New encodings.
+ * README, man/iconv_open.3: Add UTF-16BE, UTF16LE.
+ * tests/Makefile.in (check): Check UTF-16, UTF-16BE, UTF16LE.
* tests/UTF-16*snippet*: New files.
* src/utf16.h (utf16_wctomb): Output a byte order mark.
diff --git a/INSTALL.generic b/INSTALL.generic
new file mode 100644
index 0000000..50dbe43
--- /dev/null
+++ b/INSTALL.generic
@@ -0,0 +1,183 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+
diff --git a/Makefile.devel b/Makefile.devel
index c97c5d3..53ee5a2 100644
--- a/Makefile.devel
+++ b/Makefile.devel
@@ -10,12 +10,13 @@ CP = cp
RM = rm -f
-all : configures src/config.h.msvc include/iconv.h.msvc src/aliases.h src/aliases_aix.h src/flags.h src/translit.h
+all : configures src/config.h.msvc include/iconv.h.msvc-static include/iconv.h.msvc-shared src/aliases.h src/aliases_aix.h src/flags.h src/translit.h
# Before making a new release:
# - check that the encoding lists in README and man/iconv_open.3 are up to date,
-# - increment the version number in include/iconv.h.in and README,
+# - increment the version number in include/iconv.h.in and README
+# and windows/iconv.rc,
# - update the version info in src/Makefile.in,
# - do "make -f Makefile.devel".
@@ -45,14 +46,17 @@ check-configures : $(CONFIGURES)
src/config.h.msvc : src/config.h.in
sed -e 's/#undef WORDS_LITTLEENDIAN$$/#define WORDS_LITTLEENDIAN 1/' < $< > $@
-include/iconv.h.msvc : include/iconv.h.in
+include/iconv.h.msvc-static : include/iconv.h.in
sed -e 's/@ICONV_CONST@/const/g' < $< > $@
+include/iconv.h.msvc-shared : include/iconv.h.in windows/dllexport.h
+ sed -e 's/@ICONV_CONST@/const/g' -e 's/extern \([^"]\)/extern LIBICONV_DLL_EXPORTED \1/' -e '/_LIBICONV_VERSION/r windows/dllexport.h' < $< > $@
+
# We use "-7" to make a smaller table, but use "unsigned char" array indices
# to avoid gcc warning.
src/aliases.h : src/aliases.gperf
- $(GPERF) -t -L ANSI-C -H aliases_hash -N aliases_lookup -7 -C -k '1,3-11,$$' src/aliases.gperf | sed -e 's/\[str/\[(unsigned char) str/' > tmp.h
+ $(GPERF) -t -L ANSI-C -H aliases_hash -N aliases_lookup -7 -C -k '1,3-11,$$' -i 1 src/aliases.gperf | sed -e 's/\[str/\[(unsigned char) str/' > tmp.h
$(CP) tmp.h src/aliases.h
$(RM) tmp.h
diff --git a/Makefile.msvc b/Makefile.msvc
index 0268036..55cf56b 100644
--- a/Makefile.msvc
+++ b/Makefile.msvc
@@ -2,6 +2,19 @@
#### Start of system configuration section. ####
+# Flags that can be set on the nmake command line:
+# STATIC=1 for compiling a static .lib (default is a .dll with a stub .lib)
+# DEBUG=1 for compiling with debugging information
+# Note that nmake command line flags are automatically passed to subdirectory
+# Makefiles. Therefore we don't need to pass them explicitly to subdirectory
+# Makefiles, but the subdirectory Makefiles need to have the same defaults.
+!if !defined(STATIC)
+STATIC=0
+!endif
+!if !defined(DEBUG)
+DEBUG=0
+!endif
+
# Directories used by "make install":
prefix = /usr/local
local_prefix = /usr/local
@@ -19,13 +32,20 @@ RM = del
SHELL = /bin/sh
all : force
- $(LN) include\iconv.h.msvc include\iconv.h
+!if $(STATIC)
+ $(LN) include\iconv.h.msvc-static include\iconv.h
+!else
+ $(LN) include\iconv.h.msvc-shared include\iconv.h
+!endif
cd src
$(MAKE) -f Makefile.msvc all
cd ..
# cd man
# $(MAKE) -f Makefile.msvc all
# cd ..
+ cd tests
+ $(MAKE) -f Makefile.msvc all
+ cd ..
install : force
cd src; $(MAKE) -r install prefix='$(prefix)' exec_prefix='$(exec_prefix)' libdir='$(libdir)'
@@ -47,13 +67,16 @@ uninstall : force
$(RM) $(includedir)/iconv.h
cd man; $(MAKE) -r uninstall prefix='$(prefix)' exec_prefix='$(exec_prefix)' mandir='$(mandir)'
-check : force
+check : all
cd src
$(MAKE) -f Makefile.msvc check
cd ..
# cd man
# $(MAKE) -f Makefile.msvc check
# cd ..
+ cd tests
+ $(MAKE) -f Makefile.msvc check
+ cd ..
mostlyclean : force
cd src
@@ -62,6 +85,9 @@ mostlyclean : force
# cd man
# $(MAKE) -f Makefile.msvc mostlyclean
# cd ..
+ cd tests
+ $(MAKE) -f Makefile.msvc mostlyclean
+ cd ..
clean : force
cd src
@@ -70,6 +96,9 @@ clean : force
# cd man
# $(MAKE) -f Makefile.msvc clean
# cd ..
+ cd tests
+ $(MAKE) -f Makefile.msvc clean
+ cd ..
distclean : force
cd src
@@ -78,6 +107,9 @@ distclean : force
# cd man
# $(MAKE) -f Makefile.msvc distclean
# cd ..
+ cd tests
+ $(MAKE) -f Makefile.msvc distclean
+ cd ..
$(RM) config.status config.log config.cache Makefile
$(RM) include\iconv.h
@@ -88,6 +120,9 @@ maintainer-clean : force
# cd man
# $(MAKE) -f Makefile.msvc maintainer-clean
# cd ..
+ cd tests
+ $(MAKE) -f Makefile.msvc maintainer-clean
+ cd ..
$(RM) config.status config.log config.cache Makefile
$(RM) include\iconv.h
diff --git a/NEWS b/NEWS
index a2f2829..29e2777 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,11 @@
+New in 1.3:
+* Added UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE converters.
+* Fixed the definition of EILSEQ on SunOS4.
+* Fixed a build problem on OSF/1.
+* Support for building as a shared library on Win32.
+
New in 1.2:
-* Added UTF-16BE and UTF16-LE converters.
+* Added UTF-16BE and UTF16LE converters.
* Changed the UTF-16 encoder.
* Fixed the treatment of tab characters in the UTF-7 converter.
* Fixed an internal error when output buffer was not large enough.
diff --git a/NOTES b/NOTES
index a702942..b8c45a4 100644
--- a/NOTES
+++ b/NOTES
@@ -269,6 +269,11 @@ A: libiconv, as an internationalization library, supports those character
Full Unicode
* UTF-8, UCS-2, UCS-4
We implement these. Obviously.
+ * UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE
+ We implement these because they are the preferred internal
+ representation of strings in Unicode aware applications. These are
+ non-ambiguous names, known to glibc. (glibc doesn't have
+ UCS-2-INTERNAL and UCS-4-INTERNAL.)
* UTF-16, UTF-16BE, UTF-16LE
We implement these, because UTF-16 is still the favourite encoding of
the president of the Unicode Consortium (for political reasons), and
diff --git a/PORTS b/PORTS
index 9e2e60e..83802f7 100644
--- a/PORTS
+++ b/PORTS
@@ -25,9 +25,16 @@
* AIX 4.2:
OK
+* SunOS 4:
+ OK when configured --enable-static --disable-shared
+ (gcc cannot create shared libraries without relocations)
+
* FreeBSD 3.3:
OK
+* BeOS 5:
+ OK
+
* Win32 with MSVC 4.0:
OK
diff --git a/README b/README
index 58eeffa..facc865 100644
--- a/README
+++ b/README
@@ -33,7 +33,12 @@ It provides support for the encodings:
Platform specifics
HP-ROMAN8, NEXTSTEP
Full Unicode
- UTF-8, UCS-2, UCS-4, UTF-16, UTF-16BE, UTF-16LE, UTF-7, JAVA
+ UTF-8
+ UCS-2, UCS-2BE, UCS-2LE
+ UCS-4, UCS-4BE, UCS-4LE
+ UTF-16, UTF-16BE, UTF-16LE
+ UTF-7
+ JAVA
Full Unicode, in terms of `uint16_t' or `uint32_t'
(with machine dependent endianness and alignment)
UCS-2-INTERNAL, UCS-4-INTERNAL
@@ -79,7 +84,7 @@ This library can be built and installed in two variants:
Distribution:
- ftp://ftp.ilog.fr/pub/Users/haible/gnu/libiconv-1.1.tar.gz
+ ftp://ftp.ilog.fr/pub/Users/haible/gnu/libiconv-1.3.tar.gz
Homepage:
http://clisp.cons.org/~haible/packages-libiconv.html
diff --git a/README.win32 b/README.win32
index 5f0a6b1..cdf9e7f 100644
--- a/README.win32
+++ b/README.win32
@@ -4,18 +4,36 @@ Here are instructions for compiling libiconv as a static library. If you
want to create it as a shared library (DLL), you are on your own; patches
are welcome.
-- Requires MS Visual C/C++ 4.0 or 5.0.
+- Requires MS Visual C/C++ 4.0 or 5.0 or 6.0.
- Cannot build in a separate directory.
- Build instructions:
- Make sure that the MSVC4.0 or MSVC5.0 utilities ("cl" etc.) are found in
- PATH.
+ Make sure that the MSVC4.0 or MSVC5.0 or MSVC6.0 utilities ("cl" etc.) are
+ found in PATH.
+
+ For shared library (DLL):
nmake -f Makefile.msvc
+ or
+ nmake -f Makefile.msvc check [This runs the testsuite.]
+
+ For static library:
+
+ nmake -f Makefile.msvc STATIC=1
+ or
+ nmake -f Makefile.msvc STATIC=1 check [This runs the testsuite.]
+
+ If you want to build both the shared and static library, you have to
+ unpack the libiconv sources twice in different directories. Don't mix
+ the two formats; you cannot use the iconv.h generated for the static
+ library together with the shared library or vice versa.
- Installation:
- Copy include/libiconv.h to your header file repository, under the
- name 'iconv.h'. Copy src/iconv.lib to your library repository.
+ Copy include/iconv.h to your header file repository.
+ Copy src/iconv.lib to your library repository.
+ If you built for shared library, also copy src/iconv.dll into one of the
+ directories listed in your PATH, or into the directory containing the
+ executable which shall make use of libiconv.
diff --git a/THANKS b/THANKS
new file mode 100644
index 0000000..6e8242e
--- /dev/null
+++ b/THANKS
@@ -0,0 +1,6 @@
+ Thanks to for
+
+Edmund Grimley Evans <edmundo@rano.org> bug reports
+
+Taro Muraoka <koron@tka.att.ne.jp> Win32 DLL support
+
diff --git a/configure b/configure
index 0fc2377..9b324bd 100755
--- a/configure
+++ b/configure
@@ -1700,6 +1700,7 @@ case "$host_os" in
esac
if test -n "$OS"; then
+
PLUGLIB="libiconv_plug.so"
else
PLUGLIB=""
@@ -1863,6 +1864,7 @@ s%@LIBTOOL@%$LIBTOOL%g
s%@LIBICONV@%$LIBICONV%g
s%@ICONV_CONST@%$ICONV_CONST%g
s%@OS@%$OS%g
+s%@GCC@%$GCC%g
s%@PLUGLIB@%$PLUGLIB%g
CEOF
diff --git a/configure.in b/configure.in
index d08b329..e215108 100644
--- a/configure.in
+++ b/configure.in
@@ -73,6 +73,7 @@ case "$host_os" in
esac
if test -n "$OS"; then
AC_SUBST(OS)
+ AC_SUBST(GCC)
PLUGLIB="libiconv_plug.so"
else
PLUGLIB=""
diff --git a/include/iconv.h.in b/include/iconv.h.in
index ec59fa0..610afa2 100644
--- a/include/iconv.h.in
+++ b/include/iconv.h.in
@@ -21,7 +21,7 @@
#ifndef _LIBICONV_H
#define _LIBICONV_H
-#define _LIBICONV_VERSION 0x0102 /* version number: (major<<8) + minor */
+#define _LIBICONV_VERSION 0x0103 /* version number: (major<<8) + minor */
/* 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
@@ -50,8 +50,11 @@ typedef void* iconv_t;
/* Get errno declaration and values. */
#include <errno.h>
+/* Some systems, like SunOS 4, don't have EILSEQ. On these systems, define
+ EILSEQ ourselves, but don't define it as EINVAL, because iconv() callers
+ want to distinguish EINVAL and EILSEQ. */
#ifndef EILSEQ
-#define EILSEQ EINVAL
+#define EILSEQ ENOENT
#endif
diff --git a/include/iconv.h.msvc-shared b/include/iconv.h.msvc-shared
new file mode 100644
index 0000000..34ffcb1
--- /dev/null
+++ b/include/iconv.h.msvc-shared
@@ -0,0 +1,117 @@
+/* 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. */
+
+/* When installed, this file is called "iconv.h". */
+
+#ifndef _LIBICONV_H
+#define _LIBICONV_H
+
+#define _LIBICONV_VERSION 0x0103 /* version number: (major<<8) + minor */
+
+#ifdef BUILDING_LIBICONV
+#define LIBICONV_DLL_EXPORTED __declspec(dllexport)
+#else
+#define LIBICONV_DLL_EXPORTED __declspec(dllimport)
+#endif
+
+/* 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
+ errors because some other system header file includes /usr/include/iconv.h
+ which defines iconv_t or declares iconv after this file, 2. when compiling
+ for LIBICONV_PLUG, we need the proper iconv_t type in order to produce
+ binary compatible code.
+ But gcc's #include_next is not portable. Thus, once libiconv's iconv.h
+ has been installed in /usr/local/include, there is no way any more to
+ include the original /usr/include/iconv.h. We simply have to get away
+ without it.
+ Ad 1. The risk that a system header file does
+ #include "iconv.h" or #include_next "iconv.h"
+ is small. They all do #include <iconv.h>.
+ Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It
+ has to be a scalar type because (iconv_t)(-1) is a possible return value
+ from iconv_open().) */
+
+/* Define iconv_t ourselves. */
+#undef iconv_t
+#define iconv_t libiconv_t
+typedef void* iconv_t;
+
+/* Get size_t declaration. */
+#include <stddef.h>
+
+/* Get errno declaration and values. */
+#include <errno.h>
+/* Some systems, like SunOS 4, don't have EILSEQ. On these systems, define
+ EILSEQ ourselves, but don't define it as EINVAL, because iconv() callers
+ want to distinguish EINVAL and EILSEQ. */
+#ifndef EILSEQ
+#define EILSEQ ENOENT
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Allocates descriptor for code conversion from encoding `fromcode' to
+ encoding `tocode'. */
+#ifndef LIBICONV_PLUG
+#define iconv_open libiconv_open
+#endif
+extern LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode);
+
+/* Converts, using conversion descriptor `cd', at most `*inbytesleft' bytes
+ starting at `*inbuf', writing at most `*outbytesleft' bytes starting at
+ `*outbuf'.
+ Decrements `*inbytesleft' and increments `*inbuf' by the same amount.
+ Decrements `*outbytesleft' and increments `*outbuf' by the same amount. */
+#ifndef LIBICONV_PLUG
+#define iconv libiconv
+#endif
+extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
+
+/* Frees resources allocated for conversion descriptor `cd'. */
+#ifndef LIBICONV_PLUG
+#define iconv_close libiconv_close
+#endif
+extern LIBICONV_DLL_EXPORTED int iconv_close (iconv_t cd);
+
+
+#ifndef LIBICONV_PLUG
+
+/* Nonstandard extensions. */
+
+/* Control of attributes. */
+#define iconvctl libiconvctl
+extern LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument);
+
+/* Requests for iconvctl. */
+#define ICONV_TRIVIALP 0 /* int *argument */
+#define ICONV_GET_TRANSLITERATE 1 /* int *argument */
+#define ICONV_SET_TRANSLITERATE 2 /* const int *argument */
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LIBICONV_H */
diff --git a/include/iconv.h.msvc b/include/iconv.h.msvc-static
index 6f49d45..9f1834e 100644
--- a/include/iconv.h.msvc
+++ b/include/iconv.h.msvc-static
@@ -21,7 +21,7 @@
#ifndef _LIBICONV_H
#define _LIBICONV_H
-#define _LIBICONV_VERSION 0x0102 /* version number: (major<<8) + minor */
+#define _LIBICONV_VERSION 0x0103 /* version number: (major<<8) + minor */
/* 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
@@ -50,8 +50,11 @@ typedef void* iconv_t;
/* Get errno declaration and values. */
#include <errno.h>
+/* Some systems, like SunOS 4, don't have EILSEQ. On these systems, define
+ EILSEQ ourselves, but don't define it as EINVAL, because iconv() callers
+ want to distinguish EINVAL and EILSEQ. */
#ifndef EILSEQ
-#define EILSEQ EINVAL
+#define EILSEQ ENOENT
#endif
diff --git a/man/iconv_open.3 b/man/iconv_open.3
index 3c796ac..70e6e78 100644
--- a/man/iconv_open.3
+++ b/man/iconv_open.3
@@ -9,7 +9,7 @@
.\" GNU glibc-2 source code and manual
.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
.\"
-.TH ICONV_OPEN 3 "March 14, 2000" "GNU" "Linux Programmer's Manual"
+.TH ICONV_OPEN 3 "April 13, 2000" "GNU" "Linux Programmer's Manual"
.SH NAME
iconv_open \- allocate descriptor for character set conversion
.SH SYNOPSIS
@@ -66,7 +66,14 @@ Platform specifics
HP-ROMAN8, NEXTSTEP
.TP
Full Unicode
-UTF-8, UCS-2, UCS-4, UTF-16, UTF-16BE, UTF-16LE, UTF-7, JAVA
+.nf
+UTF-8
+UCS-2, UCS-2BE, UCS-2LE
+UCS-4, UCS-4BE, UCS-4LE
+UTF-16, UTF-16BE, UTF-16LE
+UTF-7
+JAVA
+.fi
.TP
Full Unicode, in terms of \fBuint16_t\fP or \fBuint32_t\fP
(with machine dependent endianness and alignment)
diff --git a/src/Makefile.in b/src/Makefile.in
index 7b3c041..91038f1 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -38,7 +38,7 @@ SHELL = /bin/sh
# Before making a release, change this according to the libtool documentation,
# section "Library interface versions".
-LIBICONV_VERSION_INFO = 1:0:1
+LIBICONV_VERSION_INFO = 2:0:0
# Needed by $(LIBTOOL).
top_builddir = ..
@@ -65,7 +65,12 @@ libiconv_plug_solaris.so : $(SOURCES)
$(CC) $(CFLAGS) $(INCLUDES) -fPIC -DPIC -DLIBICONV_PLUG $(SOURCES) $(PLUG_SOURCES) -G -o libiconv_plug_solaris.so
libiconv_plug_osf.so : $(SOURCES)
- $(CC) $(CFLAGS) $(INCLUDES) -fPIC -DPIC -DLIBICONV_PLUG $(SOURCES) $(PLUG_SOURCES) -shared -o libiconv_plug_osf.so
+ if test -n "@GCC@"; then \
+ $(CC) $(CFLAGS) $(INCLUDES) -fPIC -DPIC -DLIBICONV_PLUG $(SOURCES) $(PLUG_SOURCES) -shared -o libiconv_plug_osf.so; \
+ else \
+ $(CC) $(CFLAGS) $(INCLUDES) -DPIC -DLIBICONV_PLUG $(SOURCES) $(PLUG_SOURCES) -c -o iconv_plug.o; \
+ /bin/ld -shared -expect_unresolved \* -o libiconv_plug_osf.so iconv_plug.o; \
+ fi
iconv.lo : $(srcdir)/iconv.c $(srcdir)/converters.h $(srcdir)/encodings.def $(srcdir)/encodings_aix.def $(srcdir)/aliases.h $(srcdir)/aliases_aix.h $(srcdir)/flags.h
$(LIBTOOL_COMPILE) $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/iconv.c
diff --git a/src/Makefile.msvc b/src/Makefile.msvc
index 4c5b2a3..9fab544 100644
--- a/src/Makefile.msvc
+++ b/src/Makefile.msvc
@@ -2,6 +2,16 @@
#### Start of system configuration section. ####
+# Flags that can be set on the nmake command line:
+# STATIC=1 for compiling a static .lib (default is a .dll with a stub .lib)
+# DEBUG=1 for compiling with debugging information
+!if !defined(STATIC)
+STATIC=0
+!endif
+!if !defined(DEBUG)
+DEBUG=0
+!endif
+
# Directories used by "make":
srcdir = .
@@ -12,12 +22,39 @@ exec_prefix = $(prefix)
libdir = $(exec_prefix)/lib
# Programs used by "make":
+
CC = cl
-CFLAGS = -O1
+
+# Set to -W3 if you want to see maximum amount of warnings, including stupid
+# ones. Set to -W1 to avoid warnings about signed/unsigned combinations.
+WARN_CFLAGS = -W1
+
+!if $(STATIC)
+PICFLAGS =
+!else
+# "-GD" (msvc5) optimizes for DLL.
+# mscv4 doesn't know about this flag and ignores it.
+PICFLAGS = -GD
+!endif
+
+!if $(DEBUG)
+OPTIMFLAGS = -Od -Z7
+!else
+# Some people prefer -O2 -G6 instead of -O1, but -O2 is not reliable in MSVC5.
+OPTIMFLAGS = -D_NDEBUG -O1
+!endif
+
+# -MD: use MSVCRT.DLL for C runtime library.
+# -DBUILDING_LIBICONV: Change expansion of LIBICONV_DLL_EXPORTED macro.
+CFLAGS = -MD $(WARN_CFLAGS) $(PICFLAGS) $(OPTIMFLAGS) -DBUILDING_LIBICONV
+
CPP = cl -E
+
INCLUDES = -I. -I$(srcdir) -I../include -I$(srcdir)/../include
+
AR = lib
AR_FLAGS = /out:
+
LN = copy
RM = del
@@ -34,6 +71,10 @@ SOURCES = $(srcdir)/iconv.c
OBJECTS = iconv.obj
+# Set to iconv.res in order to include the resources information.
+RESOURCES =
+# RESOURCES = iconv.res
+
all : iconv.lib
config.h : config.h.msvc
@@ -43,19 +84,37 @@ config.h : config.h.msvc
iconv.obj : $(srcdir)/iconv.c $(srcdir)/encodings.def $(srcdir)/aliases.h config.h
$(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/iconv.c
+!if $(STATIC)
+
iconv.lib : $(OBJECTS)
$(RM) iconv.lib
$(AR) $(AR_FLAGS)iconv.lib $(OBJECTS)
+!else
+
+# iconv.dll and iconv.lib are created together.
+iconv.lib : $(OBJECTS) $(RESOURCES)
+ $(CC) -MD -LD $(OBJECTS) $(RESOURCES)
+
+iconv.res : $(srcdir)/../windows/iconv.rc
+ rc -Fo iconv.res $(srcdir)/../windows/iconv.rc
+
+!endif
+
check : all
mostlyclean : clean
clean : force
- $(RM) *.obj *.lib core
+ $(RM) *.obj
+ $(RM) *.lib
+ $(RM) *.exp
+ $(RM) *.dll
+ $(RM) iconv.res
+ $(RM) core
distclean : clean
- $(RM) config.status config.log config.cache Makefile config.h
+ $(RM) config.h
maintainer-clean : distclean
diff --git a/src/aliases.gperf b/src/aliases.gperf
index d030437..da23cfe 100644
--- a/src/aliases.gperf
+++ b/src/aliases.gperf
@@ -14,9 +14,17 @@ UTF-8, ei_utf8
UCS-2, ei_ucs2
ISO-10646-UCS-2, ei_ucs2
CSUNICODE, ei_ucs2
+UCS-2BE, ei_ucs2be
+UNICODEBIG, ei_ucs2be
+UNICODE-1-1, ei_ucs2be
+CSUNICODE11, ei_ucs2be
+UCS-2LE, ei_ucs2le
+UNICODELITTLE, ei_ucs2le
UCS-4, ei_ucs4
ISO-10646-UCS-4, ei_ucs4
CSUCS4, ei_ucs4
+UCS-4BE, ei_ucs4be
+UCS-4LE, ei_ucs4le
UTF-16, ei_utf16
UTF-16BE, ei_utf16be
UTF-16LE, ei_utf16le
@@ -25,16 +33,8 @@ UNICODE-1-1-UTF-7, ei_utf7
CSUNICODE11UTF7, ei_utf7
UCS-2-INTERNAL, ei_ucs2internal
UCS-2-SWAPPED, ei_ucs2swapped
-UCS-2-BE, ei_ucs2be
-UNICODEBIG, ei_ucs2be
-UNICODE-1-1, ei_ucs2be
-CSUNICODE11, ei_ucs2be
-UCS-2-LE, ei_ucs2le
-UNICODELITTLE, ei_ucs2le
UCS-4-INTERNAL, ei_ucs4internal
UCS-4-SWAPPED, ei_ucs4swapped
-UCS-4-BE, ei_ucs4be
-UCS-4-LE, ei_ucs4le
JAVA, ei_java
ISO-8859-1, ei_iso8859_1
ISO_8859-1, ei_iso8859_1
diff --git a/src/aliases.h b/src/aliases.h
index fd4ab4c..9260627 100644
--- a/src/aliases.h
+++ b/src/aliases.h
@@ -1,13 +1,13 @@
/* 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,$ src/aliases.gperf */
+/* 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 MIN_WORD_LENGTH 2
#define MAX_WORD_LENGTH 45
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 2362
-/* maximum key range = 2359, duplicates = 0 */
+#define MIN_HASH_VALUE 8
+#define MAX_HASH_VALUE 2145
+/* maximum key range = 2138, duplicates = 0 */
#ifdef __GNUC__
__inline
@@ -17,19 +17,19 @@ aliases_hash (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 0, 15, 2363, 45, 230,
- 75, 460, 510, 25, 35, 455, 0, 115, 160, 2363,
- 2363, 2363, 2363, 2363, 2363, 406, 115, 290, 200, 0,
- 65, 295, 100, 0, 5, 358, 40, 60, 15, 0,
- 10, 2363, 60, 0, 0, 180, 40, 0, 90, 10,
- 0, 2363, 2363, 2363, 2363, 340, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
- 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363
+ 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
};
register int hval = len;
@@ -70,603 +70,589 @@ aliases_lookup (register const char *str, register unsigned int len)
{
static const struct alias wordlist[] =
{
- {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"SJIS", ei_sjis},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"R8", ei_hp_roman8},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"MS-EE", ei_cp1250},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"JP", ei_iso646_jp},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"MS-ANSI", ei_cp1252},
+ {""}, {""}, {""},
+ {"KOI8-R", ei_koi8_r},
{""}, {""}, {""}, {""}, {""}, {""},
- {"L8", ei_iso8859_14},
+ {"ROMAN8", ei_hp_roman8},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"KOREAN", ei_ksc5601},
+ {""}, {""}, {""},
+ {"HZ", ei_hz},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"850", ei_cp850},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"LATIN8", ei_iso8859_14},
- {"R8", ei_hp_roman8},
- {""}, {""},
- {"MS-EE", ei_cp1250},
- {""},
- {"L5", ei_iso8859_9},
{""}, {""}, {""}, {""}, {""},
- {"866", ei_cp866},
- {"TCVN", ei_tcvn},
- {""}, {""},
- {"L6", ei_iso8859_10},
- {""},
- {"SHIFT-JIS", ei_sjis},
+ {"JP", ei_iso646_jp},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"850", ei_cp850},
- {"ISO-IR-58", ei_gb2312},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"HZ", ei_hz},
+ {"ISO-IR-58", ei_gb2312},
+ {"GREEK8", ei_iso8859_7},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"LATIN5", ei_iso8859_9},
- {""}, {""}, {""}, {""}, {""},
- {"L2", ei_iso8859_2},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"HP-ROMAN8", ei_hp_roman8},
{""}, {""}, {""}, {""},
- {"LATIN6", ei_iso8859_10},
+ {"GBK", ei_ces_gbk},
+ {""}, {""}, {""},
+ {"GREEK", ei_iso8859_7},
+ {""}, {""}, {""}, {""}, {""},
+ {"ECMA-118", ei_iso8859_7},
{""},
- {"NEXTSTEP", ei_nextstep},
- {""}, {""}, {""}, {""},
- {"ISO-IR-6", ei_ascii},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"ISO-8859-8", ei_iso8859_8},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"TCVN", ei_tcvn},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"IBM866", ei_cp866},
- {""}, {""}, {""}, {""}, {""},
- {"JIS0208", ei_jisx0208},
{""}, {""}, {""},
- {"IBM850", ei_cp850},
- {"US", ei_ascii},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-8859-5", ei_iso8859_5},
+ {"866", ei_cp866},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-2022-KR", ei_iso2022_kr},
{""}, {""}, {""}, {""}, {""},
+ {"MS-GREEK", ei_cp1253},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-IR-6", ei_ascii},
+ {""}, {""},
{"TIS620", ei_tis620},
+ {""},
{"TIS-620", ei_tis620},
{""}, {""}, {""},
- {"LATIN2", ei_iso8859_2},
+ {"ISO-IR-100", ei_iso8859_1},
{""}, {""}, {""},
- {"X0208", ei_jisx0208},
+ {"IBM850", ei_cp850},
+ {""}, {""}, {""}, {""}, {""},
+ {"SHIFT-JIS", ei_sjis},
{""}, {""}, {""}, {""},
- {"ISO-8859-6", ei_iso8859_6},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"UTF-8", ei_utf8},
- {""}, {""},
- {"TIS620-0", ei_tis620},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"L1", ei_iso8859_1},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"HEBREW", ei_iso8859_8},
+ {"ISO-IR-110", ei_iso8859_4},
+ {""}, {""}, {""}, {""}, {""},
+ {"JIS0208", ei_jisx0208},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-IR-226", ei_iso8859_16},
- {""}, {""}, {""}, {""},
+ {"ISO-IR-101", ei_iso8859_2},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"TIS620-0", ei_tis620},
+ {""}, {""},
+ {"CN", ei_iso646_cn},
{"EUCTW", ei_euc_tw},
+ {"WINDOWS-1258", ei_cp1258},
{"EUC-TW", ei_euc_tw},
+ {"ISO-IR-226", ei_iso8859_16},
{""}, {""}, {""},
- {"ISO-8859-2", ei_iso8859_2},
- {""}, {""},
- {"UCS-2-LE", ei_ucs2le},
- {""}, {""},
{"ISO-2022-JP", ei_iso2022_jp},
- {"CN", ei_iso646_cn},
- {""}, {""}, {""}, {""},
+ {""},
{"CHINESE", ei_gb2312},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"EUCJP", ei_euc_jp},
- {"EUC-JP", ei_euc_jp},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"ASCII", ei_ascii},
{""}, {""}, {""}, {""},
- {"UCS-2", ei_ucs2},
- {"VISCII", ei_viscii},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"GEORGIAN-PS", ei_georgian_ps},
+ {"WINDOWS-1252", ei_cp1252},
+ {""}, {""},
{"ISO-2022-JP-2", ei_iso2022_jp2},
- {""}, {""}, {""}, {""},
- {"UCS-2-BE", ei_ucs2be},
+ {""}, {""},
+ {"IBM866", ei_cp866},
+ {"ISO-IR-126", ei_iso8859_7},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"WINDOWS-1250", ei_cp1250},
{""},
- {"ISO-8859-9", ei_iso8859_9},
- {""}, {""}, {""},
- {"UCS-2-INTERNAL", ei_ucs2internal},
- {"ISO-IR-165", ei_isoir165},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"CP866", ei_cp866},
+ {"ARMSCII-8", ei_armscii_8},
+ {""}, {""},
+ {"EUCKR", ei_euc_kr},
{""},
- {"MS-HEBR", ei_cp1255},
+ {"EUC-KR", ei_euc_kr},
+ {""},
+ {"CSKOI8R", ei_koi8_r},
{""}, {""},
- {"ISO-IR-166", ei_tis620},
- {""}, {""}, {""}, {""},
- {"CP850", ei_cp850},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"SHIFT_JIS", ei_sjis},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"JAVA", ei_java},
{""}, {""},
- {"ISO-8859-15", ei_iso8859_15},
- {""}, {""}, {""},
- {"ISO-IR-100", ei_iso8859_1},
+ {"WINDOWS-1251", ei_cp1251},
+ {""}, {""},
+ {"ISO-2022-JP-1", ei_iso2022_jp1},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-IR-126", ei_iso8859_7},
+ {""}, {""},
+ {"ASMO-708", ei_iso8859_6},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"MACROMAN", ei_mac_roman},
+ {"HEBREW", ei_iso8859_8},
+ {""}, {""},
+ {"ISO-IR-138", ei_iso8859_8},
+ {""}, {""},
+ {"WINDOWS-1256", ei_cp1256},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-IR-166", ei_tis620},
{""}, {""}, {""}, {""}, {""},
- {"ISO-8859-16", ei_iso8859_16},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"US", ei_ascii},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"WINDOWS-1255", ei_cp1255},
{""}, {""}, {""},
- {"BIG5", ei_ces_big5},
- {"BIG-5", ei_ces_big5},
- {""}, {""}, {""}, {""},
- {"CSSHIFTJIS", ei_sjis},
- {"ISO-8859-10", ei_iso8859_10},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"MS-HEBR", ei_cp1255},
{""}, {""}, {""},
- {"KOI8-R", ei_koi8_r},
+ {"MACTHAI", ei_mac_thai},
{""}, {""}, {""},
- {"MS-ANSI", ei_cp1252},
+ {"MACROMANIA", ei_mac_romania},
{""},
- {"ISO_8859-8", ei_iso8859_8},
+ {"EUCJP", ei_euc_jp},
+ {""},
+ {"EUC-JP", ei_euc_jp},
+ {""}, {""}, {""},
+ {"NEXTSTEP", ei_nextstep},
{""}, {""}, {""}, {""}, {""}, {""},
- {"L7", ei_iso8859_13},
- {""}, {""}, {""}, {""},
- {"L3", ei_iso8859_3},
- {""}, {""}, {""}, {""},
- {"MS-CYRL", ei_cp1251},
+ {"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},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"LATIN1", ei_iso8859_1},
- {"BIGFIVE", ei_ces_big5},
- {"BIG-FIVE", ei_ces_big5},
+ {""}, {""}, {""}, {""}, {""},
+ {"X0208", ei_jisx0208},
+ {"L8", ei_iso8859_14},
{""},
- {"CP950", ei_cp950},
- {"IBM819", ei_iso8859_1},
+ {"CSISO2022KR", ei_iso2022_kr},
+ {""}, {""}, {""},
+ {"MS-TURK", ei_cp1254},
+ {"MACINTOSH", ei_mac_roman},
+ {"MACGREEK", ei_mac_greek},
+ {""}, {""}, {""}, {""},
+ {"LATIN8", ei_iso8859_14},
+ {"CP850", ei_cp850},
{""},
- {"ISO-2022-JP-1", ei_iso2022_jp1},
+ {"CP1258", ei_cp1258},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"UTF-8", ei_utf8},
+ {"L2", ei_iso8859_2},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ELOT_928", ei_iso8859_7},
- {""},
- {"ISO_8859-5", ei_iso8859_5},
{""}, {""}, {""}, {""}, {""}, {""},
- {"ROMAN8", ei_hp_roman8},
- {""}, {""},
- {"X0212", ei_jisx0212},
- {"UTF-16", ei_utf16},
- {"L4", ei_iso8859_4},
- {""}, {""},
- {"ISO-IR-159", ei_jisx0212},
- {""},
- {"WINDOWS-1258", ei_cp1258},
- {"UTF-16LE", ei_utf16le},
- {""},
- {"ISO_8859-6", ei_iso8859_6},
+ {"UCS-2-SWAPPED", ei_ucs2swapped},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"MACINTOSH", ei_mac_roman},
- {"ISO-IR-109", ei_iso8859_3},
+ {"L1", ei_iso8859_1},
+ {""}, {""}, {""}, {""},
+ {"WINDOWS-1257", ei_cp1257},
{""}, {""},
- {"CSIBM866", ei_cp866},
- {""}, {""}, {""},
- {"WINDOWS-1255", ei_cp1255},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-2022-CN-EXT", ei_iso2022_cn_ext},
+ {"LATIN2", ei_iso8859_2},
+ {"X0212", ei_jisx0212},
{""},
- {"WINDOWS-1256", ei_cp1256},
+ {"CP1252", ei_cp1252},
{""}, {""}, {""},
- {"CSISO2022JP", ei_iso2022_jp},
- {""}, {""}, {""}, {""},
- {"ISO-2022-CN", ei_iso2022_cn},
- {"WINDOWS-1250", ei_cp1250},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"JIS_X0208", ei_jisx0208},
- {"ISO-8859-1", ei_iso8859_1},
+ {"ISO-IR-87", ei_jisx0208},
+ {"GB2312", ei_euc_cn},
{""}, {""}, {""},
- {"ISO646-JP", ei_iso646_jp},
+ {"WINDOWS-1253", ei_cp1253},
+ {"CSISO2022JP", ei_iso2022_jp},
+ {""}, {""},
{"EUCCN", ei_euc_cn},
+ {"MAC", ei_mac_roman},
{"EUC-CN", ei_euc_cn},
- {""}, {""}, {""},
- {"ISO-IR-110", ei_iso8859_4},
- {""}, {""}, {""}, {""}, {""},
- {"CP1258", ei_cp1258},
- {""},
- {"CSVISCII", ei_viscii},
- {""}, {""}, {""},
- {"WINDOWS-1252", ei_cp1252},
- {"UTF-16BE", ei_utf16be},
- {"MACHEBREW", ei_mac_hebrew},
- {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-2", ei_iso8859_2},
{""}, {""},
- {"MAC", ei_mac_roman},
- {""},
- {"ISO-IR-199", ei_iso8859_14},
- {""}, {""}, {""}, {""},
- {"HP-ROMAN8", ei_hp_roman8},
- {""}, {""}, {""}, {""},
- {"ISO_8859-8:1988", ei_iso8859_8},
- {""}, {""}, {""},
- {"GREEK8", ei_iso8859_7},
+ {"CP866", ei_cp866},
+ {"L6", ei_iso8859_10},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-IR-148", ei_iso8859_9},
+ {"CSASCII", ei_ascii},
{""}, {""},
+ {"CP1250", ei_cp1250},
{"CSISO2022JP2", ei_iso2022_jp2},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"L5", ei_iso8859_9},
{""}, {""}, {""},
{"X0201", ei_jisx0201},
- {"CP1255", ei_cp1255},
- {""}, {""}, {""},
- {"ISO_8859-5:1988", ei_iso8859_5},
+ {""}, {""}, {""}, {""},
+ {"CSSHIFTJIS", ei_sjis},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"MS-ARAB", ei_cp1256},
+ {""},
+ {"LATIN1", ei_iso8859_1},
+ {""}, {""},
+ {"CP1251", ei_cp1251},
+ {""}, {""},
+ {"GEORGIAN-ACADEMY", ei_georgian_academy},
+ {""}, {""},
+ {"BIG5", ei_ces_big5},
+ {""},
+ {"BIG-5", ei_ces_big5},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-IR-127", ei_iso8859_6},
{""}, {""}, {""}, {""}, {""}, {""},
+ {"MACCROATIAN", ei_mac_croatian},
+ {""}, {""}, {""},
+ {"BIGFIVE", ei_ces_big5},
+ {""},
+ {"BIG-FIVE", ei_ces_big5},
+ {""},
+ {"ISO-IR-203", ei_iso8859_15},
+ {""}, {""},
+ {"MACHEBREW", ei_mac_hebrew},
+ {""}, {""}, {""}, {""},
+ {"ISO-IR-57", ei_iso646_cn},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"LATIN6", ei_iso8859_10},
+ {""}, {""},
{"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},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"ASCII", ei_ascii},
+ {"CSVISCII", ei_viscii},
+ {""}, {""},
+ {"LATIN5", ei_iso8859_9},
+ {""}, {""},
+ {"CP1255", ei_cp1255},
+ {""}, {""}, {""},
+ {"L7", ei_iso8859_13},
{""},
- {"TIS620.2529-1", ei_tis620},
+ {"ISO-IR-157", ei_iso8859_10},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"CP1250", ei_cp1250},
- {""}, {""}, {""},
- {"ISO_8859-9", ei_iso8859_9},
{""}, {""},
- {"UNICODELITTLE", ei_ucs2le},
- {"KOI8-U", ei_koi8_u},
+ {"ISO-8859-2", ei_iso8859_2},
+ {"L3", ei_iso8859_3},
{""}, {""}, {""}, {""}, {""},
- {"CSISO159JISX02121990", ei_jisx0212},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"UCS-4-LE", ei_ucs4le},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"UTF-16", ei_utf16},
+ {""}, {""},
{"JOHAB", ei_johab},
+ {"WINDOWS-1254", ei_cp1254},
+ {"MS_KANJI", ei_sjis},
+ {"MACUKRAINE", ei_mac_ukraine},
+ {""}, {""}, {""},
+ {"VISCII1.1-1", ei_viscii},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CSMACINTOSH", ei_mac_roman},
+ {""}, {""},
+ {"TCVN5712-1", ei_tcvn},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"ISO_8859-15:1998", ei_iso8859_15},
+ {"SHIFT_JIS", ei_sjis},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CN-GB-ISOIR165", ei_isoir165},
{""}, {""}, {""},
- {"CP819", ei_iso8859_1},
- {"CSBIG5", ei_ces_big5},
- {"CN-BIG5", ei_ces_big5},
- {""},
- {"ISO-2022-KR", ei_iso2022_kr},
- {"ISO-IR-138", ei_iso8859_8},
+ {"KOI8-U", ei_koi8_u},
{""}, {""},
- {"UHC", ei_cp949},
+ {"ISO-8859-1", ei_iso8859_1},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO646-JP", ei_iso646_jp},
{""},
- {"ARMSCII-8", ei_armscii_8},
{"WINBALTRIM", ei_cp1257},
- {"CSEUCTW", ei_euc_tw},
- {""},
- {"ISO646-US", ei_ascii},
- {""},
- {"ISO_8859-15", ei_iso8859_15},
{""},
- {"EUCKR", ei_euc_kr},
- {"EUC-KR", ei_euc_kr},
- {"CSKOI8R", ei_koi8_r},
- {"CP1252", ei_cp1252},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"KOI8-RU", ei_koi8_ru},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CP1361", ei_johab},
+ {""}, {""}, {""}, {""},
+ {"ISO-8859-10", ei_iso8859_10},
{""},
- {"WINDOWS-1251", ei_cp1251},
- {""}, {""}, {""},
- {"ISO_8859-16", ei_iso8859_16},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CN-GB-ISOIR165", ei_isoir165},
+ {"CSISOLATIN2", ei_iso8859_2},
+ {""},
+ {"CSIBM866", ei_cp866},
{""}, {""}, {""}, {""}, {""},
- {"ISO-IR-101", ei_iso8859_2},
- {"ISO_8859-16:2000", ei_iso8859_16},
+ {"ARABIC", ei_iso8859_6},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"ISO-IR-148", ei_iso8859_9},
- {"ISO_8859-10", ei_iso8859_10},
- {"CSISOLATIN5", ei_iso8859_9},
- {"UCS-4-BE", ei_ucs4be},
- {""}, {""}, {""}, {""}, {""},
- {"UCS-4-INTERNAL", ei_ucs4internal},
- {"CN-GB", ei_euc_cn},
+ {"CSISOLATINHEBREW", ei_iso8859_8},
+ {"ISO-8859-6", ei_iso8859_6},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"CSISOLATIN6", ei_iso8859_10},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"ISO_8859-10:1992", ei_iso8859_10},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CSISO87JISX0208", ei_jisx0208},
+ {"CSBIG5", ei_ces_big5},
+ {""},
+ {"CN-BIG5", ei_ces_big5},
+ {""},
+ {"UCS-2LE", ei_ucs2le},
+ {""},
+ {"MACTURKISH", ei_mac_turkish},
+ {""},
+ {"HZ-GB-2312", ei_hz},
{""}, {""}, {""}, {""},
- {"KOREAN", ei_ksc5601},
- {"JAVA", ei_java},
+ {"UNICODE-1-1", ei_ucs2be},
+ {""}, {""}, {""},
+ {"CSISOLATIN1", ei_iso8859_1},
+ {"CN-GB", ei_euc_cn},
{""},
- {"MACTHAI", ei_mac_thai},
+ {"IBM367", ei_ascii},
{""}, {""}, {""},
- {"CSISOLATINHEBREW", ei_iso8859_8},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"JISX0201-1976", ei_jisx0201},
- {"US-ASCII", ei_ascii},
- {"ISO_8859-9:1989", ei_iso8859_9},
+ {"UTF-16BE", ei_utf16be},
{""}, {""}, {""},
- {"JIS_X0208-1990", ei_jisx0208},
+ {"ISO-8859-5", ei_iso8859_5},
+ {""}, {""}, {""}, {""},
+ {"UCS-2-INTERNAL", ei_ucs2internal},
+ {"UHC", ei_cp949},
{""},
- {"CSISO2022CN", ei_iso2022_cn},
- {""}, {""},
- {"UCS-2-SWAPPED", ei_ucs2swapped},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CSISOLATINGREEK", ei_iso8859_7},
{""}, {""}, {""}, {""}, {""},
- {"ISO646-CN", ei_iso646_cn},
+ {"CSEUCTW", ei_euc_tw},
{""}, {""},
- {"CSISOLATIN2", ei_iso8859_2},
- {""},
- {"MACROMAN", ei_mac_roman},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"TCVN-5712", ei_tcvn},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ECMA-118", ei_iso8859_7},
- {""}, {""}, {""}, {""}, {""},
- {"CP936", ei_ces_gbk},
+ {"ISO-8859-16", ei_iso8859_16},
{""}, {""}, {""},
- {"JIS_X0212", ei_jisx0212},
- {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-1", ei_iso8859_1},
- {"CSHPROMAN8", ei_hp_roman8},
+ {"L4", ei_iso8859_4},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"UCS-4-SWAPPED", ei_ucs4swapped},
+ {"ISO646-CN", ei_iso646_cn},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"LATIN7", ei_iso8859_13},
- {""}, {""},
- {"ASMO-708", ei_iso8859_6},
- {""}, {""}, {""}, {""},
- {"ISO-IR-87", ei_jisx0208},
- {""},
- {"LATIN3", ei_iso8859_3},
+ {"CSISOLATIN6", ei_iso8859_10},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-8859-15", ei_iso8859_15},
{""}, {""},
+ {"CSEUCKR", ei_euc_kr},
{"CSUNICODE", ei_ucs2},
- {"ISO-IR-179", ei_iso8859_13},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CSASCII", ei_ascii},
- {""},
- {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", ei_euc_jp},
- {""}, {""}, {""},
- {"CSPC850MULTILINGUAL", ei_cp850},
+ {""}, {""},
+ {"TIS620.2533-0", ei_tis620},
{""}, {""}, {""}, {""},
- {"ISO-IR-57", ei_iso646_cn},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"WINDOWS-1257", ei_cp1257},
- {""},
- {"GBK", ei_ces_gbk},
- {"MULELAO-1", ei_mulelao},
- {"GREEK", ei_iso8859_7},
- {"WINDOWS-1253", ei_cp1253},
- {"CYRILLIC", ei_iso8859_5},
- {""},
- {"CP932", ei_cp932},
+ {"LATIN7", ei_iso8859_13},
{""}, {""},
- {"MS-TURK", ei_cp1254},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CP1257", ei_cp1257},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"TIS620.2533-1", ei_tis620},
+ {"UTF-7", ei_utf7},
+ {"TCVN5712-1:1993", ei_tcvn},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-IR-149", ei_ksc5601},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CSISO2022KR", ei_iso2022_kr},
+ {"CSISOLATIN5", ei_iso8859_9},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"LATIN3", ei_iso8859_3},
+ {"CP950", ei_cp950},
{""},
- {"ISO-8859-7", ei_iso8859_7},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"WINDOWS-1254", ei_cp1254},
- {""},
- {"JIS_X0201", ei_jisx0201},
- {"ISO-8859-3", ei_iso8859_3},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"GB_1988-80", ei_iso646_cn},
- {"LATIN4", ei_iso8859_4},
- {""}, {""}, {""}, {""},
- {"CP1251", ei_cp1251},
- {""}, {""}, {""}, {""}, {""},
- {"GEORGIAN-PS", ei_georgian_ps},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-IR-203", ei_iso8859_15},
+ {"CP1253", ei_cp1253},
{""},
- {"JIS_C6220-1969-RO", ei_iso646_jp},
- {""}, {""},
- {"ISO_8859-3:1988", ei_iso8859_3},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-10646-UCS-2", ei_ucs2},
+ {"TIS620.2529-1", ei_tis620},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-IR-14", ei_iso646_jp},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"MS-GREEK", ei_cp1253},
{""}, {""}, {""}, {""}, {""},
- {"ISO_8859-6:1987", ei_iso8859_6},
- {""}, {""}, {""},
- {"JIS_X0212-1990", ei_jisx0212},
- {"CP949", ei_cp949},
+ {"CSISO87JISX0208", ei_jisx0208},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO646-US", ei_ascii},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"MACTURKISH", ei_mac_turkish},
- {""},
- {"UTF-7", ei_utf7},
- {""}, {""}, {""}, {""},
- {"ISO_8859-4:1988", ei_iso8859_4},
- {"JIS_X0212.1990-0", ei_jisx0212},
+ {"CSGB2312", ei_euc_cn},
{""}, {""},
- {"MS-ARAB", ei_cp1256},
- {"ISO-8859-4", ei_iso8859_4},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"MACCENTRALEUROPE", ei_mac_centraleurope},
+ {"CSISOLATINARABIC", ei_iso8859_6},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-2:1987", ei_iso8859_2},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"MS_KANJI", ei_sjis},
+ {"MACCENTRALEUROPE", ei_mac_centraleurope},
+ {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", ei_euc_jp},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
- {"UCS-4", ei_ucs4},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"UNICODE-1-1-UTF-7", ei_utf7},
+ {""}, {""}, {""}, {""}, {""},
+ {"MULELAO-1", ei_mulelao},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CSHALFWIDTHKATAKANA", ei_jisx0201},
+ {""}, {""},
+ {"UTF-16LE", ei_utf16le},
+ {""}, {""},
+ {"ECMA-114", ei_iso8859_6},
+ {""}, {""},
+ {"UCS-4BE", ei_ucs4be},
{""},
- {"GB2312", ei_euc_cn},
+ {"CSISO58GB231280", ei_gb2312},
{""}, {""}, {""}, {""}, {""},
- {"CSISOLATIN1", ei_iso8859_1},
+ {"ELOT_928", ei_iso8859_7},
+ {"CSEUCPKDFMTJAPANESE", ei_euc_jp},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"MACICELAND", ei_mac_iceland},
+ {""},
+ {"CP932", ei_cp932},
+ {"MACARABIC", ei_mac_arabic},
{""}, {""}, {""},
- {"ISO-IR-157", ei_iso8859_10},
- {"ISO_8859-14:1998", ei_iso8859_14},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CSEUCKR", ei_euc_kr},
- {""}, {""},
- {"TIS620.2533-0", ei_tis620},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CP367", ei_ascii},
{""}, {""}, {""}, {""}, {""},
- {"CSMACINTOSH", ei_mac_roman},
- {""}, {""}, {""},
- {"VISCII1.1-1", ei_viscii},
+ {"GB_2312-80", ei_gb2312},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CSUNICODE11", ei_ucs2be},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"IBM819", ei_iso8859_1},
+ {""},
+ {"UNICODELITTLE", ei_ucs2le},
{""}, {""}, {""}, {""},
- {"ISO_646.IRV:1991", ei_ascii},
+ {"JIS_X0208", ei_jisx0208},
+ {""},
+ {"CSISO159JISX02121990", ei_jisx0212},
{""}, {""}, {""},
- {"ISO-IR-127", ei_iso8859_6},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-8859-13", ei_iso8859_13},
+ {"ISO-8859-7", ei_iso8859_7},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"UNICODEBIG", ei_ucs2be},
{""}, {""},
- {"JIS_X0208-1983", ei_jisx0208},
- {""}, {""}, {""}, {""}, {""},
- {"TCVN5712-1", ei_tcvn},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-IR-14", ei_iso646_jp},
- {"CSISO58GB231280", ei_gb2312},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"UCS-4-SWAPPED", ei_ucs4swapped},
+ {"ISO-10646-UCS-2", ei_ucs2},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"ISO_8859-1:1987", ei_iso8859_1},
- {""},
+ {"CP1133", ei_cp1133},
{"CSISO14JISC6220RO", ei_iso646_jp},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"CSISOLATINCYRILLIC", ei_iso8859_5},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"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},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
- {"UNICODE-1-1", ei_ucs2be},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"MACUKRAINE", ei_mac_ukraine},
+ {"IBM-CP1133", ei_cp1133},
{""},
- {"MACCYRILLIC", ei_mac_cyrillic},
+ {"ISO_8859-8:1988", ei_iso8859_8},
{""}, {""}, {""},
- {"UNICODEBIG", ei_ucs2be},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-7", ei_iso8859_7},
- {"ISO-8859-14", ei_iso8859_14},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-3", ei_iso8859_3},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CSISOLATINGREEK", ei_iso8859_7},
+ {"MS-CYRL", ei_cp1251},
+ {""}, {""},
+ {"JIS_X0212", ei_jisx0212},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"MACGREEK", ei_mac_greek},
- {""}, {""}, {""},
- {"TIS620.2533-1", ei_tis620},
{""},
- {"HZ-GB-2312", ei_hz},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"WINDOWS-874", ei_cp874},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CSISOLATINARABIC", ei_iso8859_6},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"IBM367", ei_ascii},
- {"CSEUCPKDFMTJAPANESE", ei_euc_jp},
+ {"CP936", ei_ces_gbk},
+ {"ISO_8859-2", ei_iso8859_2},
+ {""}, {""}, {""}, {""}, {""},
+ {"ISO-8859-13", ei_iso8859_13},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CP1361", ei_johab},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"ISO_8859-4", ei_iso8859_4},
- {"MACICELAND", ei_mac_iceland},
+ {"JIS_X0208-1990", ei_jisx0208},
{""},
- {"ARABIC", ei_iso8859_6},
+ {"ISO-IR-159", ei_jisx0212},
+ {""}, {""}, {""}, {""}, {""},
+ {"JIS_X0201", ei_jisx0201},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"CSISOLATINCYRILLIC", ei_iso8859_5},
+ {""}, {""},
+ {"CSISOLATIN3", ei_iso8859_3},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"UCS-4LE", ei_ucs4le},
+ {""}, {""}, {""},
+ {"UCS-4", ei_ucs4},
+ {""}, {""}, {""}, {""}, {""},
+ {"JIS_X0212-1990", ei_jisx0212},
+ {""}, {""}, {""}, {""},
+ {"ISO_8859-1", ei_iso8859_1},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
- {"CP1257", ei_cp1257},
+ {"UCS-4-INTERNAL", ei_ucs4internal},
{""},
- {"CSISO57GB1988", ei_iso646_cn},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CP1253", ei_cp1253},
+ {"ISO_8859-5:1988", ei_iso8859_5},
+ {"ISO_8859-10:1992", ei_iso8859_10},
+ {"CSUNICODE11UTF7", ei_utf7},
{""}, {""}, {""}, {""}, {""}, {""},
- {"MACCROATIAN", ei_mac_croatian},
+ {"GB_1988-80", ei_iso646_cn},
+ {""},
+ {"ISO_8859-10", ei_iso8859_10},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
- {"ISO-10646-UCS-4", ei_ucs4},
- {"KSC_5601", ei_ksc5601},
+ {"JIS_X0212.1990-0", ei_jisx0212},
+ {"JISX0201-1976", ei_jisx0201},
{""}, {""}, {""},
- {"ISO_8859-7:1987", ei_iso8859_7},
+ {"ISO_8859-15:1998", ei_iso8859_15},
+ {""}, {""},
+ {"ISO_8859-6", ei_iso8859_6},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"LATIN4", ei_iso8859_4},
+ {"CP819", ei_iso8859_1},
+ {""},
+ {"CP1254", ei_cp1254},
+ {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-16:2000", ei_iso8859_16},
+ {""}, {""}, {""}, {""},
+ {"ISO-IR-179", ei_iso8859_13},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"GB_2312-80", ei_gb2312},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-5", ei_iso8859_5},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"CP874", ei_cp874},
+ {""}, {""},
+ {"ISO_8859-16", ei_iso8859_16},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"UNICODE-1-1-UTF-7", ei_utf7},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"CSGB2312", ei_euc_cn},
+ {"ISO-IR-144", ei_iso8859_5},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-3:1988", ei_iso8859_3},
+ {"ISO_8859-15", ei_iso8859_15},
{""}, {""},
- {"CSHALFWIDTHKATAKANA", ei_jisx0201},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-13", ei_iso8859_13},
+ {"JIS_X0208-1983", ei_jisx0208},
{""}, {""}, {""}, {""},
- {"CP1254", ei_cp1254},
+ {"ISO_646.IRV:1991", ei_ascii},
+ {"ISO_8859-2:1987", ei_iso8859_2},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
- {"CSUNICODE11", ei_ucs2be},
- {""}, {""}, {""}, {""}, {""},
- {"CSISOLATIN3", ei_iso8859_3},
+ {"ISO_8859-1:1987", ei_iso8859_1},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"CP367", ei_ascii},
- {"WINDOWS-874", ei_cp874},
- {""}, {""}, {""},
- {"TCVN5712-1:1993", ei_tcvn},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"MACROMANIA", ei_mac_romania},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"ISO_8859-6:1987", ei_iso8859_6},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ISO_8859-14", ei_iso8859_14},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"ISO-8859-4", ei_iso8859_4},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""},
+ {"CSISO57GB1988", ei_iso646_cn},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-10646-UCS-4", ei_ucs4},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO-IR-149", ei_ksc5601},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
- {"CP874", ei_cp874},
+ {"ISO-8859-14", ei_iso8859_14},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
+ {"ISO_8859-4:1988", ei_iso8859_4},
+ {""},
{"CSISOLATIN4", ei_iso8859_4},
{""}, {""}, {""},
- {"CSUCS4", ei_ucs4},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"GEORGIAN-ACADEMY", ei_georgian_academy},
+ {"ISO-IR-199", ei_iso8859_14},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-7", ei_iso8859_7},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CYRILLIC", ei_iso8859_5},
+ {"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-IR-144", ei_iso8859_5},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"ISO_8859-13", ei_iso8859_13},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ANSI_X3.4-1968", ei_ascii},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CSUCS4", ei_ucs4},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"CSUNICODE11UTF7", ei_utf7},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"MACARABIC", ei_mac_arabic},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"ECMA-114", ei_iso8859_6},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -674,37 +660,34 @@ aliases_lookup (register const char *str, register unsigned int len)
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"KS_C_5601-1989", ei_ksc5601},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"KS_C_5601-1987", ei_ksc5601},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"CSPC850MULTILINGUAL", ei_cp850},
+ {""}, {""}, {""}, {""},
+ {"MACCYRILLIC", ei_mac_cyrillic},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
- {"ANSI_X3.4-1968", ei_ascii},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
- {"CSKSC56011987", ei_ksc5601},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
- {"CP1133", ei_cp1133},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-4", ei_iso8859_4},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
- {"IBM-CP1133", ei_cp1133},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""},
+ {"ISO_8859-14", ei_iso8859_14},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -713,14 +696,18 @@ aliases_lookup (register const char *str, register unsigned int len)
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-9", ei_iso8859_9},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""},
+ {"KS_C_5601-1989", ei_ksc5601},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"ISO_8859-9:1989", ei_iso8859_9},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {"KS_C_5601-1987", ei_ksc5601}
+ {""},
+ {"CP949", ei_cp949}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/src/converters.h b/src/converters.h
index 1c8f47b..26b1837 100644
--- a/src/converters.h
+++ b/src/converters.h
@@ -97,7 +97,11 @@ struct conv_struct {
/* General multi-byte encodings */
#include "utf8.h"
#include "ucs2.h"
+#include "ucs2be.h"
+#include "ucs2le.h"
#include "ucs4.h"
+#include "ucs4be.h"
+#include "ucs4le.h"
#include "utf16.h"
#include "utf16be.h"
#include "utf16le.h"
diff --git a/src/encodings.def b/src/encodings.def
index 870a79f..9787a21 100644
--- a/src/encodings.def
+++ b/src/encodings.def
@@ -66,6 +66,20 @@ DEFENCODING(( "UCS-2", /* glibc */
ucs2,
{ ucs2_mbtowc }, { ucs2_wctomb, NULL })
+DEFENCODING(( "UCS-2BE", /* glibc */
+ "UNICODEBIG", /* glibc */
+ "UNICODE-1-1", /* IANA */
+ "csUnicode11", /* IANA */
+ ),
+ ucs2be,
+ { ucs2be_mbtowc }, { ucs2be_wctomb, NULL })
+
+DEFENCODING(( "UCS-2LE", /* glibc */
+ "UNICODELITTLE", /* glibc */
+ ),
+ ucs2le,
+ { ucs2le_mbtowc }, { ucs2le_wctomb, NULL })
+
DEFENCODING(( "UCS-4", /* glibc */
"ISO-10646-UCS-4", /* IANA */
"csUCS4", /* IANA */
@@ -73,6 +87,16 @@ DEFENCODING(( "UCS-4", /* glibc */
ucs4,
{ ucs4_mbtowc }, { ucs4_wctomb, NULL })
+DEFENCODING(( "UCS-4BE", /* glibc */
+ ),
+ ucs4be,
+ { ucs4be_mbtowc }, { ucs4be_wctomb, NULL })
+
+DEFENCODING(( "UCS-4LE", /* glibc */
+ ),
+ ucs4le,
+ { ucs4le_mbtowc }, { ucs4le_wctomb, NULL })
+
DEFENCODING(( "UTF-16", /* RFC 2781 */
),
utf16,
@@ -105,20 +129,6 @@ DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */
ucs2swapped,
{ ucs2swapped_mbtowc }, { ucs2swapped_wctomb, NULL })
-DEFENCODING(( "UCS-2-BE",
- "UNICODEBIG", /* glibc */
- "UNICODE-1-1", /* IANA */
- "csUnicode11", /* IANA */
- ),
- ucs2be,
- { ucs2be_mbtowc }, { ucs2be_wctomb, NULL })
-
-DEFENCODING(( "UCS-2-LE",
- "UNICODELITTLE", /* glibc */
- ),
- ucs2le,
- { ucs2le_mbtowc }, { ucs2le_wctomb, NULL })
-
DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */
),
ucs4internal,
@@ -129,16 +139,6 @@ DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */
ucs4swapped,
{ ucs4swapped_mbtowc }, { ucs4swapped_wctomb, NULL })
-DEFENCODING(( "UCS-4-BE",
- ),
- ucs4be,
- { ucs4be_mbtowc }, { ucs4be_wctomb, NULL })
-
-DEFENCODING(( "UCS-4-LE",
- ),
- ucs4le,
- { ucs4le_mbtowc }, { ucs4le_wctomb, NULL })
-
DEFENCODING(( "JAVA",
),
java,
diff --git a/src/flags.h b/src/flags.h
index 51af911..a122ec2 100644
--- a/src/flags.h
+++ b/src/flags.h
@@ -15,19 +15,19 @@
#define ei_ascii_oflags (0)
#define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
+#define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
+#define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
+#define ei_ucs4be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
+#define ei_ucs4le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf7_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
-#define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
-#define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
-#define ei_ucs4be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
-#define ei_ucs4le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_java_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso8859_1_oflags (HAVE_ACCENTS)
#define ei_iso8859_2_oflags (HAVE_ACCENTS)
diff --git a/src/ucs2be.h b/src/ucs2be.h
new file mode 100644
index 0000000..092ab49
--- /dev/null
+++ b/src/ucs2be.h
@@ -0,0 +1,27 @@
+/*
+ * UCS-2BE = UCS-2 big endian
+ */
+
+static int
+ucs2be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+ if (n >= 2) {
+ *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)
+{
+ if (wc < 0x10000) {
+ if (n >= 2) {
+ r[0] = (unsigned char) (wc >> 8);
+ r[1] = (unsigned char) wc;
+ return 2;
+ } else
+ return RET_TOOSMALL;
+ }
+ return RET_ILSEQ;
+}
diff --git a/src/ucs2le.h b/src/ucs2le.h
new file mode 100644
index 0000000..ba2e119
--- /dev/null
+++ b/src/ucs2le.h
@@ -0,0 +1,27 @@
+/*
+ * UCS-2LE = UCS-2 little endian
+ */
+
+static int
+ucs2le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+ if (n >= 2) {
+ *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)
+{
+ if (wc < 0x10000) {
+ if (n >= 2) {
+ r[0] = (unsigned char) wc;
+ r[1] = (unsigned char) (wc >> 8);
+ return 2;
+ } else
+ return RET_TOOSMALL;
+ }
+ return RET_ILSEQ;
+}
diff --git a/src/ucs2swapped.h b/src/ucs2swapped.h
index 5aea47c..b733f8f 100644
--- a/src/ucs2swapped.h
+++ b/src/ucs2swapped.h
@@ -28,20 +28,3 @@ ucs2swapped_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
} else
return RET_ILSEQ;
}
-
-/*
- * UCS-2-BE = UCS-2 big endian, with machine dependent alignment
- * UCS-2-LE = UCS-2 little endian, with machine dependent alignment
- */
-
-#ifdef WORDS_LITTLEENDIAN
-#define ucs2be_mbtowc ucs2swapped_mbtowc
-#define ucs2be_wctomb ucs2swapped_wctomb
-#define ucs2le_mbtowc ucs2internal_mbtowc
-#define ucs2le_wctomb ucs2internal_wctomb
-#else
-#define ucs2be_mbtowc ucs2internal_mbtowc
-#define ucs2be_wctomb ucs2internal_wctomb
-#define ucs2le_mbtowc ucs2swapped_mbtowc
-#define ucs2le_wctomb ucs2swapped_wctomb
-#endif
diff --git a/src/ucs4be.h b/src/ucs4be.h
new file mode 100644
index 0000000..6e85be7
--- /dev/null
+++ b/src/ucs4be.h
@@ -0,0 +1,26 @@
+/*
+ * UCS-4BE = UCS-4 big endian
+ */
+
+static int
+ucs4be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+ if (n >= 4) {
+ *pwc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3];
+ return 4;
+ }
+ return RET_TOOFEW(0);
+}
+
+static int
+ucs4be_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+ if (n >= 4) {
+ r[0] = (unsigned char) (wc >> 24);
+ r[1] = (unsigned char) (wc >> 16);
+ r[2] = (unsigned char) (wc >> 8);
+ r[3] = (unsigned char) wc;
+ return 4;
+ } else
+ return RET_TOOSMALL;
+}
diff --git a/src/ucs4le.h b/src/ucs4le.h
new file mode 100644
index 0000000..285a77b
--- /dev/null
+++ b/src/ucs4le.h
@@ -0,0 +1,26 @@
+/*
+ * UCS-4LE = UCS-4 little endian
+ */
+
+static int
+ucs4le_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n)
+{
+ if (n >= 4) {
+ *pwc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24);
+ return 4;
+ }
+ return RET_TOOFEW(0);
+}
+
+static int
+ucs4le_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
+{
+ if (n >= 4) {
+ r[0] = (unsigned char) wc;
+ r[1] = (unsigned char) (wc >> 8);
+ r[2] = (unsigned char) (wc >> 16);
+ r[3] = (unsigned char) (wc >> 24);
+ return 4;
+ } else
+ return RET_TOOSMALL;
+}
diff --git a/src/ucs4swapped.h b/src/ucs4swapped.h
index 9f408bd..89f2314 100644
--- a/src/ucs4swapped.h
+++ b/src/ucs4swapped.h
@@ -25,20 +25,3 @@ ucs4swapped_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n)
} else
return RET_TOOSMALL;
}
-
-/*
- * UCS-4-BE = UCS-4 big endian, with machine dependent alignment
- * UCS-4-LE = UCS-4 little endian, with machine dependent alignment
- */
-
-#ifdef WORDS_LITTLEENDIAN
-#define ucs4be_mbtowc ucs4swapped_mbtowc
-#define ucs4be_wctomb ucs4swapped_wctomb
-#define ucs4le_mbtowc ucs4internal_mbtowc
-#define ucs4le_wctomb ucs4internal_wctomb
-#else
-#define ucs4be_mbtowc ucs4internal_mbtowc
-#define ucs4be_wctomb ucs4internal_wctomb
-#define ucs4le_mbtowc ucs4swapped_mbtowc
-#define ucs4le_wctomb ucs4swapped_wctomb
-#endif
diff --git a/tests/Makefile.in b/tests/Makefile.in
index b21e99f..a0f0ea8 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -34,10 +34,14 @@ check : all table-from table-to iconv
./genutf8 > UTF-8.TXT && \
$(srcdir)/check-stateless . UTF-8 && \
$(RM) genutf8 UTF-8.TXT
- $(srcdir)/check-stateful $(srcdir) UTF-7
+ $(srcdir)/check-stateful $(srcdir) UCS-2BE
+ $(srcdir)/check-stateful $(srcdir) UCS-2LE
+ $(srcdir)/check-stateful $(srcdir) UCS-4BE
+ $(srcdir)/check-stateful $(srcdir) UCS-4LE
$(srcdir)/check-stateful $(srcdir) UTF-16
$(srcdir)/check-stateful $(srcdir) UTF-16BE
$(srcdir)/check-stateful $(srcdir) UTF-16LE
+ $(srcdir)/check-stateful $(srcdir) UTF-7
# /* 8-bit encodings */
$(srcdir)/check-stateless $(srcdir) ISO-8859-1
$(srcdir)/check-stateless $(srcdir) ISO-8859-2
diff --git a/tests/Makefile.msvc b/tests/Makefile.msvc
new file mode 100644
index 0000000..d5f18b3
--- /dev/null
+++ b/tests/Makefile.msvc
@@ -0,0 +1,168 @@
+# Makefile for libiconv/tests
+
+#### Start of system configuration section. ####
+
+# Flags that can be set on the nmake command line:
+# STATIC=1 for compiling a static .lib (default is a .dll with a stub .lib)
+!if !defined(STATIC)
+STATIC=0
+!endif
+
+# Directories used by "make":
+srcdir = .
+
+# Programs used by "make":
+CC = cl
+CFLAGS = -MD -W1 -O1
+CPP = cl -E
+INCLUDES = -I. -I$(srcdir) -I..\include -I$(srcdir)\..\include
+RM = del
+
+#### End of system configuration section. ####
+
+SHELL = /bin/sh
+
+all :
+
+check : all table-from.exe table-to.exe iconv.exe uniq-u.exe
+ $(srcdir)\check-stateless.bat $(srcdir) ASCII
+# /* General multi-byte encodings */
+ $(CC) $(CFLAGS) $(srcdir)\genutf8.c -Fegenutf8.exe
+ $(RM) genutf8.obj
+ .\genutf8 > UTF-8.TXT
+ $(srcdir)\check-stateless.bat . UTF-8
+ $(RM) genutf8.exe
+ $(RM) UTF-8.TXT
+ $(srcdir)\check-stateful.bat $(srcdir) UCS-2BE
+ $(srcdir)\check-stateful.bat $(srcdir) UCS-2LE
+ $(srcdir)\check-stateful.bat $(srcdir) UCS-4BE
+ $(srcdir)\check-stateful.bat $(srcdir) UCS-4LE
+ $(srcdir)\check-stateful.bat $(srcdir) UTF-16
+ $(srcdir)\check-stateful.bat $(srcdir) UTF-16BE
+ $(srcdir)\check-stateful.bat $(srcdir) UTF-16LE
+ $(srcdir)\check-stateful.bat $(srcdir) UTF-7
+# /* 8-bit encodings */
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-1
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-2
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-3
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-4
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-5
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-6
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-7
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-8
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-9
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-10
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-13
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-14
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-15
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-8859-16
+ $(srcdir)\check-stateless.bat $(srcdir) KOI8-R
+ $(srcdir)\check-stateless.bat $(srcdir) KOI8-U
+ $(srcdir)\check-stateless.bat $(srcdir) KOI8-RU
+ $(srcdir)\check-stateless.bat $(srcdir) CP1250
+ $(srcdir)\check-stateless.bat $(srcdir) CP1251
+ $(srcdir)\check-stateless.bat $(srcdir) CP1252
+ $(srcdir)\check-stateless.bat $(srcdir) CP1253
+ $(srcdir)\check-stateless.bat $(srcdir) CP1254
+ $(srcdir)\check-stateless.bat $(srcdir) CP1255
+ $(srcdir)\check-stateless.bat $(srcdir) CP1256
+ $(srcdir)\check-stateless.bat $(srcdir) CP1257
+ $(srcdir)\check-stateless.bat $(srcdir) CP1258
+ $(srcdir)\check-stateless.bat $(srcdir) CP850
+ $(srcdir)\check-stateless.bat $(srcdir) CP866
+ $(srcdir)\check-stateless.bat $(srcdir) MacRoman
+ $(srcdir)\check-stateless.bat $(srcdir) MacCentralEurope
+ $(srcdir)\check-stateless.bat $(srcdir) MacIceland
+ $(srcdir)\check-stateless.bat $(srcdir) MacCroatian
+ $(srcdir)\check-stateless.bat $(srcdir) MacRomania
+ $(srcdir)\check-stateless.bat $(srcdir) MacCyrillic
+ $(srcdir)\check-stateless.bat $(srcdir) MacUkraine
+ $(srcdir)\check-stateless.bat $(srcdir) MacGreek
+ $(srcdir)\check-stateless.bat $(srcdir) MacTurkish
+ $(srcdir)\check-stateless.bat $(srcdir) MacHebrew
+ $(srcdir)\check-stateless.bat $(srcdir) MacArabic
+ $(srcdir)\check-stateless.bat $(srcdir) MacThai
+ $(srcdir)\check-stateless.bat $(srcdir) HP-ROMAN8
+ $(srcdir)\check-stateless.bat $(srcdir) NEXTSTEP
+ $(srcdir)\check-stateless.bat $(srcdir) ARMSCII-8
+ $(srcdir)\check-stateless.bat $(srcdir) Georgian-Academy
+ $(srcdir)\check-stateless.bat $(srcdir) Georgian-PS
+ $(srcdir)\check-stateless.bat $(srcdir) MuleLao-1
+ $(srcdir)\check-stateless.bat $(srcdir) CP1133
+ $(srcdir)\check-stateless.bat $(srcdir) TIS-620
+ $(srcdir)\check-stateless.bat $(srcdir) CP874
+ $(srcdir)\check-stateless.bat $(srcdir) VISCII
+ $(srcdir)\check-stateless.bat $(srcdir) TCVN
+# /* CJK character sets */
+ $(srcdir)\check-stateless.bat $(srcdir) ISO646-JP
+ $(srcdir)\check-stateless.bat $(srcdir) JIS_X0201
+# $(srcdir)\check-stateless.bat $(srcdir) JIS_X0208 # redundant, see EUC-JP
+# $(srcdir)\check-stateless.bat $(srcdir) JIS_X0212 # redundant, see EUC-JP
+ $(srcdir)\check-stateless.bat $(srcdir) ISO646-CN
+# $(srcdir)\check-stateless.bat $(srcdir) GB_2312-80 # redundant, see EUC-CN
+ $(srcdir)\check-stateless.bat $(srcdir) ISO-IR-165
+# $(srcdir)\check-stateless.bat $(srcdir) KSC_5601 # redundant, see EUC-KR
+# /* CJK encodings */
+ $(srcdir)\check-stateless.bat $(srcdir) EUC-JP
+ $(srcdir)\check-stateless.bat $(srcdir) SHIFT-JIS
+ $(srcdir)\check-stateless.bat $(srcdir) CP932
+ $(srcdir)\check-stateful.bat $(srcdir) ISO-2022-JP
+ $(srcdir)\check-stateful.bat $(srcdir) ISO-2022-JP-2
+ $(srcdir)\check-stateful.bat $(srcdir) ISO-2022-JP-1
+ $(srcdir)\check-stateless.bat $(srcdir) EUC-CN
+ $(srcdir)\check-stateless.bat $(srcdir) GBK
+ $(srcdir)\check-stateful.bat $(srcdir) ISO-2022-CN
+ $(srcdir)\check-stateful.bat $(srcdir) ISO-2022-CN-EXT
+ $(srcdir)\check-stateful.bat $(srcdir) HZ
+ $(srcdir)\check-stateless.bat $(srcdir) EUC-TW
+ $(srcdir)\check-stateless.bat $(srcdir) BIG5
+ $(srcdir)\check-stateless.bat $(srcdir) CP950
+ $(srcdir)\check-stateless.bat $(srcdir) EUC-KR
+ $(srcdir)\check-stateless.bat $(srcdir) CP949
+ $(srcdir)\check-stateless.bat $(srcdir) JOHAB
+ $(srcdir)\check-stateful.bat $(srcdir) ISO-2022-KR
+# /* transliteration */
+ $(srcdir)\check-translit.bat $(srcdir) Quotes UTF-8 ISO-8859-1
+ $(srcdir)\check-translit.bat $(srcdir) Quotes UTF-8 ASCII
+
+table-from.exe : $(srcdir)/table-from.c ../src/iconv.lib
+ $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/table-from.c ../src/iconv.lib -Fetable-from.exe
+ $(RM) table-from.obj
+!if !$(STATIC)
+ copy ..\src\iconv.dll iconv.dll
+!endif
+
+table-to.exe : $(srcdir)/table-to.c ../src/iconv.lib
+ $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/table-to.c ../src/iconv.lib -Fetable-to.exe
+ $(RM) table-to.obj
+!if !$(STATIC)
+ copy ..\src\iconv.dll iconv.dll
+!endif
+
+iconv.exe : $(srcdir)/iconv.c ../src/iconv.lib
+ $(CC) $(CFLAGS) $(INCLUDES) $(srcdir)/iconv.c ../src/iconv.lib -Feiconv.exe
+ $(RM) iconv.obj
+!if !$(STATIC)
+ copy ..\src\iconv.dll iconv.dll
+!endif
+
+uniq-u.exe : $(srcdir)/uniq-u.c
+ $(CC) $(CFLAGS) $(srcdir)/uniq-u.c -Feuniq-u.exe
+ $(RM) uniq-u.obj
+
+mostlyclean : clean
+
+clean : force
+ $(RM) *.obj
+ $(RM) *.dll
+ $(RM) *.exe
+ $(RM) tmp*
+ $(RM) UTF-8.TXT
+ $(RM) core
+
+distclean : clean
+ $(RM) Makefile
+
+maintainer-clean : distclean
+
+force :
diff --git a/tests/UCS-2BE-snippet b/tests/UCS-2BE-snippet
new file mode 100644
index 0000000..dc43740
--- /dev/null
+++ b/tests/UCS-2BE-snippet
Binary files differ
diff --git a/tests/UCS-2BE-snippet.UTF-8 b/tests/UCS-2BE-snippet.UTF-8
new file mode 100644
index 0000000..3705941
--- /dev/null
+++ b/tests/UCS-2BE-snippet.UTF-8
@@ -0,0 +1,46 @@
+This is a list of ways to say hello in various languages.
+Its purpose is to illustrate a number of scripts.
+
+---------------------------------------------------------
+Amharic (አማርኛ) ሠላም
+Arabic ﺍﻟﺴﻼﻡ ﻋﻠﻴﻜﻢ
+Czech (česky) Dobrý den
+Danish (Dansk) Hej, Goddag
+English Hello
+Esperanto Saluton
+Estonian Tere, Tervist
+FORTRAN PROGRAM
+Finnish (Suomi) Hei
+French (Français) Bonjour, Salut
+German (Deutsch Nord) Guten Tag
+German (Deutsch Süd) Grüß Gott
+Greek (Ελληνικά) Γειά σας
+Hebrew שלום
+Italiano Ciao, Buon giorno
+Lao(ພາສາລາວ) ສະບາຍດີ, ຂໍໃຫ້ໂຊກດີ
+Maltese Ciao
+Nederlands, Vlaams Hallo, Dag
+Norwegian (Norsk) Hei, God dag
+Polish Dzień dobry, Hej
+Russian (Русский) Здравствуйте!
+Slovak Dobrý deň
+Spanish (Español) ¡Hola!
+Swedish (Svenska) Hej, Goddag
+Thai (ภาษาไทย) สวัสดีครับ, สวัสดีค่ะ
+
+Tigrigna (ትግርኛ) ሰላማት
+Turkish (Türkçe) Merhaba
+Vietnamese (Tiếng Việt) Chào bạn
+
+Japanese (日本語) こんにちは, コンニチハ
+Chinese (中文,普通话,汉语) 你好
+Cantonese (粵語,廣東話) 早晨, 你好
+Korean (한글) 안녕하세요, 안녕하십니까
+
+Difference among chinese characters in GB, JIS, KSC, BIG5:
+ GB -- 元气 开发
+ JIS -- 元気 開発
+ KSC -- 元氣 開發
+ BIG5 -- 元氣 開發
+
+Just for a test of JISX0212: 騏驎 (the second character is of JISX0212)
diff --git a/tests/UCS-2LE-snippet b/tests/UCS-2LE-snippet
new file mode 100644
index 0000000..8fa5ff5
--- /dev/null
+++ b/tests/UCS-2LE-snippet
Binary files differ
diff --git a/tests/UCS-2LE-snippet.UTF-8 b/tests/UCS-2LE-snippet.UTF-8
new file mode 100644
index 0000000..3705941
--- /dev/null
+++ b/tests/UCS-2LE-snippet.UTF-8
@@ -0,0 +1,46 @@
+This is a list of ways to say hello in various languages.
+Its purpose is to illustrate a number of scripts.
+
+---------------------------------------------------------
+Amharic (አማርኛ) ሠላም
+Arabic ﺍﻟﺴﻼﻡ ﻋﻠﻴﻜﻢ
+Czech (česky) Dobrý den
+Danish (Dansk) Hej, Goddag
+English Hello
+Esperanto Saluton
+Estonian Tere, Tervist
+FORTRAN PROGRAM
+Finnish (Suomi) Hei
+French (Français) Bonjour, Salut
+German (Deutsch Nord) Guten Tag
+German (Deutsch Süd) Grüß Gott
+Greek (Ελληνικά) Γειά σας
+Hebrew שלום
+Italiano Ciao, Buon giorno
+Lao(ພາສາລາວ) ສະບາຍດີ, ຂໍໃຫ້ໂຊກດີ
+Maltese Ciao
+Nederlands, Vlaams Hallo, Dag
+Norwegian (Norsk) Hei, God dag
+Polish Dzień dobry, Hej
+Russian (Русский) Здравствуйте!
+Slovak Dobrý deň
+Spanish (Español) ¡Hola!
+Swedish (Svenska) Hej, Goddag
+Thai (ภาษาไทย) สวัสดีครับ, สวัสดีค่ะ
+
+Tigrigna (ትግርኛ) ሰላማት
+Turkish (Türkçe) Merhaba
+Vietnamese (Tiếng Việt) Chào bạn
+
+Japanese (日本語) こんにちは, コンニチハ
+Chinese (中文,普通话,汉语) 你好
+Cantonese (粵語,廣東話) 早晨, 你好
+Korean (한글) 안녕하세요, 안녕하십니까
+
+Difference among chinese characters in GB, JIS, KSC, BIG5:
+ GB -- 元气 开发
+ JIS -- 元気 開発
+ KSC -- 元氣 開發
+ BIG5 -- 元氣 開發
+
+Just for a test of JISX0212: 騏驎 (the second character is of JISX0212)
diff --git a/tests/UCS-4BE-snippet b/tests/UCS-4BE-snippet
new file mode 100644
index 0000000..9d76045
--- /dev/null
+++ b/tests/UCS-4BE-snippet
Binary files differ
diff --git a/tests/UCS-4BE-snippet.UTF-8 b/tests/UCS-4BE-snippet.UTF-8
new file mode 100644
index 0000000..d28ea2e
--- /dev/null
+++ b/tests/UCS-4BE-snippet.UTF-8
@@ -0,0 +1 @@
+𒍅=Ra \ No newline at end of file
diff --git a/tests/UCS-4LE-snippet b/tests/UCS-4LE-snippet
new file mode 100644
index 0000000..00face9
--- /dev/null
+++ b/tests/UCS-4LE-snippet
Binary files differ
diff --git a/tests/UCS-4LE-snippet.UTF-8 b/tests/UCS-4LE-snippet.UTF-8
new file mode 100644
index 0000000..d28ea2e
--- /dev/null
+++ b/tests/UCS-4LE-snippet.UTF-8
@@ -0,0 +1 @@
+𒍅=Ra \ No newline at end of file
diff --git a/tests/check-stateful.bat b/tests/check-stateful.bat
new file mode 100644
index 0000000..3bdd6be
--- /dev/null
+++ b/tests/check-stateful.bat
@@ -0,0 +1,9 @@
+@ECHO OFF
+REM Simple check of a stateful encoding.
+REM Usage: check-stateful.bat SRCDIR CHARSET
+
+.\iconv -f %2 -t UTF-8 < %1\%2-snippet > tmp-snippet
+fc %1\%2-snippet.UTF-8 tmp-snippet
+.\iconv -f UTF-8 -t %2 < %1\%2-snippet.UTF-8 > tmp-snippet
+fc %1\%2-snippet tmp-snippet
+del tmp-snippet
diff --git a/tests/check-stateless.bat b/tests/check-stateless.bat
new file mode 100644
index 0000000..c92f621
--- /dev/null
+++ b/tests/check-stateless.bat
@@ -0,0 +1,21 @@
+@ECHO OFF
+REM Complete check of a stateless encoding.
+REM Usage: check-stateless.bat SRCDIR CHARSET
+
+.\table-from %2 > tmp-%2.TXT
+.\table-to %2 | sort > tmp-%2.INVERSE.TXT
+fc %1\%2.TXT tmp-%2.TXT
+
+if not exist %1\%2.IRREVERSIBLE.TXT goto ELSE_1
+ copy /a %1\%2.TXT /a + %1\%2.IRREVERSIBLE.TXT /a tmp
+ sort tmp | uniq-u > tmp-orig-%2.INVERSE.TXT
+ fc tmp-orig-%2.INVERSE.TXT tmp-%2.INVERSE.TXT
+ del tmp
+ del tmp-orig-%2.INVERSE.TXT
+ goto ENDIF_1
+:ELSE_1
+ fc %1\%2.TXT tmp-%2.INVERSE.TXT
+:ENDIF_1
+
+del tmp-%2.TXT
+del tmp-%2.INVERSE.TXT
diff --git a/tests/check-translit.bat b/tests/check-translit.bat
new file mode 100644
index 0000000..173cd11
--- /dev/null
+++ b/tests/check-translit.bat
@@ -0,0 +1,7 @@
+@ECHO OFF
+REM Simple check of transliteration facilities.
+REM Usage: check-translit.bat SRCDIR FILE fromcode tocode
+
+.\iconv -f %3 -t %4 < %1\%2.%3 > tmp
+fc %1\%2.%4 tmp
+del tmp
diff --git a/tests/uniq-u.c b/tests/uniq-u.c
new file mode 100644
index 0000000..31b850f
--- /dev/null
+++ b/tests/uniq-u.c
@@ -0,0 +1,278 @@
+/* uniq -- remove duplicate lines from a sorted file
+ Copyright (C) 86, 91, 1995-1998, 1999 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
+ 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. */
+
+/* Written by Richard Stallman and David MacKenzie. */
+/* 2000-03-22 Trimmed down to the case of "uniq -u" by Bruno Haible. */
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* The name this program was run with. */
+static char *program_name;
+
+static void
+xalloc_fail (void)
+{
+ fprintf (stderr, "%s: virtual memory exhausted\n", program_name);
+ exit (1);
+}
+
+/* Allocate N bytes of memory dynamically, with error checking. */
+
+void *
+xmalloc (size_t n)
+{
+ void *p;
+
+ p = malloc (n);
+ if (p == 0)
+ xalloc_fail ();
+ return p;
+}
+
+/* Change the size of an allocated block of memory P to N bytes,
+ with error checking.
+ If P is NULL, run xmalloc. */
+
+void *
+xrealloc (void *p, size_t n)
+{
+ p = realloc (p, n);
+ if (p == 0)
+ xalloc_fail ();
+ return p;
+}
+
+/* A `struct linebuffer' holds a line of text. */
+
+struct linebuffer
+{
+ size_t size; /* Allocated. */
+ size_t length; /* Used. */
+ char *buffer;
+};
+
+/* Initialize linebuffer LINEBUFFER for use. */
+
+static void
+initbuffer (struct linebuffer *linebuffer)
+{
+ linebuffer->length = 0;
+ linebuffer->size = 200;
+ linebuffer->buffer = (char *) xmalloc (linebuffer->size);
+}
+
+/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
+ Keep the newline; append a newline if it's the last line of a file
+ that ends in a non-newline character. Do not null terminate.
+ Return LINEBUFFER, except at end of file return 0. */
+
+static struct linebuffer *
+readline (struct linebuffer *linebuffer, FILE *stream)
+{
+ int c;
+ char *buffer = linebuffer->buffer;
+ char *p = linebuffer->buffer;
+ char *end = buffer + linebuffer->size - 1; /* Sentinel. */
+
+ if (feof (stream) || ferror (stream))
+ return 0;
+
+ do
+ {
+ c = getc (stream);
+ if (c == EOF)
+ {
+ if (p == buffer)
+ return 0;
+ if (p[-1] == '\n')
+ break;
+ c = '\n';
+ }
+ if (p == end)
+ {
+ linebuffer->size *= 2;
+ buffer = (char *) xrealloc (buffer, linebuffer->size);
+ p = p - linebuffer->buffer + buffer;
+ linebuffer->buffer = buffer;
+ end = buffer + linebuffer->size - 1;
+ }
+ *p++ = c;
+ }
+ while (c != '\n');
+
+ linebuffer->length = p - buffer;
+ return linebuffer;
+}
+
+/* Free linebuffer LINEBUFFER's data. */
+
+static void
+freebuffer (struct linebuffer *linebuffer)
+{
+ free (linebuffer->buffer);
+}
+
+/* Undefine, to avoid warning about redefinition on some systems. */
+#undef min
+#define min(x, y) ((x) < (y) ? (x) : (y))
+
+/* Return zero if two strings OLD and NEW match, nonzero if not.
+ OLD and NEW point not to the beginnings of the lines
+ but rather to the beginnings of the fields to compare.
+ OLDLEN and NEWLEN are their lengths. */
+
+static int
+different (const char *old, const char *new, size_t oldlen, size_t newlen)
+{
+ int order;
+
+ order = memcmp (old, new, min (oldlen, newlen));
+
+ if (order == 0)
+ return oldlen - newlen;
+ return order;
+}
+
+/* Output the line in linebuffer LINE to stream STREAM
+ provided that the switches say it should be output.
+ If requested, print the number of times it occurred, as well;
+ LINECOUNT + 1 is the number of times that the line occurred. */
+
+static void
+writeline (const struct linebuffer *line, FILE *stream, int linecount)
+{
+ if (linecount == 0)
+ fwrite (line->buffer, 1, line->length, stream);
+}
+
+/* Process input file INFILE with output to OUTFILE.
+ If either is "-", use the standard I/O stream for it instead. */
+
+static void
+check_file (const char *infile, const char *outfile)
+{
+ FILE *istream;
+ FILE *ostream;
+ struct linebuffer lb1, lb2;
+ struct linebuffer *thisline, *prevline, *exch;
+ char *prevfield, *thisfield;
+ size_t prevlen, thislen;
+ int match_count = 0;
+
+ if (!strcmp (infile, "-"))
+ istream = stdin;
+ else
+ istream = fopen (infile, "r");
+ if (istream == NULL)
+ {
+ fprintf (stderr, "%s: error opening %s\n", program_name, infile);
+ exit (1);
+ }
+
+ if (!strcmp (outfile, "-"))
+ ostream = stdout;
+ else
+ ostream = fopen (outfile, "w");
+ if (ostream == NULL)
+ {
+ fprintf (stderr, "%s: error opening %s\n", program_name, outfile);
+ exit (1);
+ }
+
+ thisline = &lb1;
+ prevline = &lb2;
+
+ initbuffer (thisline);
+ initbuffer (prevline);
+
+ if (readline (prevline, istream) == 0)
+ goto closefiles;
+ prevfield = prevline->buffer;
+ prevlen = prevline->length;
+
+ while (!feof (istream))
+ {
+ int match;
+ if (readline (thisline, istream) == 0)
+ break;
+ thisfield = thisline->buffer;
+ thislen = thisline->length;
+ match = !different (thisfield, prevfield, thislen, prevlen);
+
+ if (match)
+ ++match_count;
+
+ if (!match)
+ {
+ writeline (prevline, ostream, match_count);
+ exch = prevline;
+ prevline = thisline;
+ thisline = exch;
+ prevfield = thisfield;
+ prevlen = thislen;
+ if (!match)
+ match_count = 0;
+ }
+ }
+
+ writeline (prevline, ostream, match_count);
+
+ closefiles:
+ if (ferror (istream) || fclose (istream) == EOF)
+ {
+ fprintf (stderr, "%s: error reading %s\n", program_name, infile);
+ exit (1);
+ }
+
+ if (ferror (ostream) || fclose (ostream) == EOF)
+ {
+ fprintf (stderr, "%s: error writing %s\n", program_name, outfile);
+ exit (1);
+ }
+
+ freebuffer (&lb1);
+ freebuffer (&lb2);
+}
+
+int
+main (int argc, char **argv)
+{
+ const char *infile = "-";
+ const char *outfile = "-";
+ int optind = 1;
+
+ program_name = argv[0];
+
+ if (optind < argc)
+ infile = argv[optind++];
+
+ if (optind < argc)
+ outfile = argv[optind++];
+
+ if (optind < argc)
+ {
+ fprintf (stderr, "%s: too many arguments\n", program_name);
+ exit (1);
+ }
+
+ check_file (infile, outfile);
+
+ exit (0);
+}
diff --git a/windows/dllexport.h b/windows/dllexport.h
new file mode 100644
index 0000000..b0fb636
--- /dev/null
+++ b/windows/dllexport.h
@@ -0,0 +1,6 @@
+
+#ifdef BUILDING_LIBICONV
+#define LIBICONV_DLL_EXPORTED __declspec(dllexport)
+#else
+#define LIBICONV_DLL_EXPORTED __declspec(dllimport)
+#endif
diff --git a/windows/iconv.rc b/windows/iconv.rc
new file mode 100644
index 0000000..7930138
--- /dev/null
+++ b/windows/iconv.rc
@@ -0,0 +1,37 @@
+/* Resources for iconv.dll */
+/* There are 4 occurrences of the version number in this file. */
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,3,0,0
+ PRODUCTVERSION 1,3,0,0
+ FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */
+#ifdef _DEBUG
+ FILEFLAGS 0x1L /* VS_FF_DEBUG */
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */
+ FILETYPE 0x2L /* VFT_DLL */
+ FILESUBTYPE 0x0L /* VFT2_UNKNOWN */
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "04090000" /* Lang = US English, Charset = ASCII */
+ BEGIN
+ VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\0"
+ VALUE "CompanyName", "Free Software Foundation\0"
+ VALUE "FileDescription", "LGPLed libiconv for Windows NT and Windows 95/98\0"
+ VALUE "FileVersion", "1.3\0"
+ VALUE "InternalName", "iconv.dll\0"
+ VALUE "LegalCopyright", "Copyright (C) 1999-2000\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "iconv.dll\0"
+ VALUE "ProductName", "libiconv: character set conversion library\0"
+ VALUE "ProductVersion", "1.3\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 0 /* US English, ASCII */
+ END
+END