2007-12-08  Bruno Haible  <bruno@clisp.org>

	* Version 1.11.1 released.

2007-12-03  Bruno Haible  <bruno@clisp.org>

	Portability fixes for MSVC.
	* srclib/Makefile.msvc (CFLAGS): Define EXEEXT.
	(OBJECTS): Add width.obj.
	(width.obj): New rule.
	* srclib/Makefile.vms (OBJECTS): Add width.obj.
	(width.obj): New rule.
	* windows/stdint.h: New file.
	* windows/unistd.h: New file.
	Reported by Milan Gornik <milan.gornik@dmsgroup.co.yu>.

2006-07-19  Bruno Haible  <bruno@clisp.org>

	* Version 1.11 released.

2005-07-19  Bruno Haible  <bruno@clisp.org>

	* srclib/Makefile.am (libicrt_a_SOURCES): Remove error.h, error.c.
	(LIBADD_SOURCE): Add them here.

2005-07-19  Bruno Haible  <bruno@clisp.org>

	* build-aux/config.guess: Update to GNU version 2006-07-02.
	* build-aux/config.sub: Likewise.

2006-07-14  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.in (clean): Remove also *.stackdump.
	* src/Makefile.in (clean): Likewise.
	* tests/Makefile.in (clean): Likewise.

2006-07-14  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (clean): Remove also iconv_no_i18n. Needed for
	cygwin or mingw.
	* tests/Makefile.in (clean): Remove also the programs, without
	EXEEXT. Needed for cygwin or mingw.
	* Makefile.in (mostlyclean, clean, distclean, maintainer-clean):
	Remove also bin directory. Needed for cygwin and mingw.

2006-07-03  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (check_subst_formatstring): Use ngettext.
	(subst_wc_to_mb_fallback, subst_mb_to_mb_fallback): Fix error messages
	after 2006-01-22 change.
	* configure.ac: Require a gettext version with ngettext.

2006-06-28  Bruno Haible  <bruno@clisp.org>

        * m4/gettext.m4: Update from GNU gettext.
        * m4/po.m4: Update from GNU gettext.

2006-06-27  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (AUTOCONF, AUTOHEADER): Use autoconf-2.60.
	* Makefile.in (datarootdir): New variable.
	(install, installdirs, uninstall): Also pass datarootdir.
	* configure.ac (mandir): Remove customization.
	* man/Makefile.in (datarootdir): New variable.
	(docdir, htmldir): Use autoconf-substituted value.
	* src/Makefile.in (datarootdir): New variable.
	(localedir): Use autoconf-substituted value.

2006-06-27  Bruno Haible  <bruno@clisp.org>

	* m4/stdint.m4: Update from gnulib.
	* srclib/stdint_.h: Update from gnulib.
	* srclib/Makefile.am: Update.

2006-06-17  Bruno Haible  <bruno@clisp.org>

	* srclib/unsetenv.c: Update from GNU gettext.
	* srclib/xreadlink.c: Likewise.

2006-06-16  Bruno Haible  <bruno@clisp.org>

	* m4/full-header-path.m4: New file, from gnulib.
	* m4/size_max.m4: New file, from gnulib.
	* m4/stdint.m4: Update from gnulib.
	* srclib/stdint_.h: Update from gnulib.
	* srclib/Makefile.am (stdint.h): Likewise.
	* Makefile.devel (aclocal.m4): Update dependencies.

2006-06-16  Bruno Haible  <bruno@clisp.org>

	* m4/ssize_t.m4: Update from GNU gettext.

2006-06-12  Bruno Haible  <bruno@clisp.org>

	* m4/gettext.m4: Update from GNU gettext.
	* m4/inttypes-h.m4: New file, from GNU gettext.
	* m4/inttypes.m4: Remove file.
	* m4/stdint.m4 (gl_STDINT_H): Update.
	* Makefile.devel (aclocal.m4): Update dependencies.

2006-06-10  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (error) [NO_I18N]: Define here instead of including
	error.h. Fixes link failure introduced on 2006-01-22.

2006-03-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]: Avoid warning when
	"parsing" /etc/ld.so.conf and empty /etc/ld.so.conf.d.

2006-05-20  Bruno Haible  <bruno@clisp.org>

	* tests/BIG5-HKSCS-1999-snippet: New file.
	* tests/BIG5-HKSCS-1999-snippet.UTF-8: New file.
	* tests/BIG5-HKSCS-2001-snippet: New file.
	* tests/BIG5-HKSCS-2001-snippet.UTF-8: New file.
	* tests/BIG5-HKSCS-2004-snippet: New file.
	* tests/BIG5-HKSCS-2004-snippet.UTF-8: New file.
	* tests/Makefile.in (check): Test also the stateful parts of
	BIG5-HKSCS:1999, BIG5-HKSCS:2001, BIG5-HKSCS:2004.

2006-05-17  Bruno Haible  <bruno@clisp.org>

	Implement newer releases of BIG5-HKSCS.
	* tools/Makefile (ALL): Remove hkscs.h, add hkscs1999.h, hkscs2001.h,
	hkscs2004.h.
	(hkscs.h): Remove rule.
	(hkscs1999.h, hkscs2001.h, hkscs2004.h): New rules.
	* tools/cjk_tab_to_h.c (output_title): Update year.
	(main): Recognize hkscs1999, hkscs2001, hkscs2004.
	* lib/encodings.def: Rename BIG5-HKSCS to BIG5-HKSCS:1999. Add
	BIG5-HKSCS:2001, BIG5-HKSCS:2004. Make all three stateful.
	* lib/hkscs.h: Remove file.
	* lib/hkscs1999.h: New file.
	* lib/hkscs2001.h: New file.
	* lib/hkscs2004.h: New file.
	* lib/big5hkscs.h: Remove file.
	* lib/big5hkscs1999.h: New file.
	* lib/big5hkscs2001.h: New file.
	* lib/big5hkscs2004.h: New file.
	* lib/converters.h: Include the new files.
	* README, man/iconv_open.3: Add BIG5-HKSCS:1999, BIG5-HKSCS:2001.
	* tests/BIG5-HKSCS.TXT: Remove file.
	* tests/BIG5-HKSCS.IRREVERSIBLE.TXT: Remove file.
	* tests/BIG5-HKSCS-1999.TXT: New file.
	* tests/BIG5-HKSCS-1999.IRREVERSIBLE.TXT: New file.
	* tests/BIG5-HKSCS-2001.TXT: New file.
	* tests/BIG5-HKSCS-2001.IRREVERSIBLE.TXT: New file.
	* tests/BIG5-HKSCS-2004.TXT: New file.
	* tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT: New file.
	* tests/check-stateless: Convert colon in the charset name to a dash in
	the file name.
	* tests/Makefile.in (check): Check BIG5-HKSCS:1999, BIG5-HKSCS:2001,
	BIG5-HKSCS:2004 instead of just BIG5-HKSCS.
	* tests/Makefile.msvc (check): Don't check BIG5-HKSCS.
	* tests/Makefile.os2 (check): Likewise.

2006-05-17  Bruno Haible  <bruno@clisp.org>

	* srclib/progreloc.c: Update from GNU gettext.

2006-05-16  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (clean): Use EXEEXT.
	* tests/Makefile.in (check, clean): Likewise.

2006-05-15  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Move some checks before AC_RELOCATABLE.

2006-05-15  Bruno Haible  <bruno@clisp.org>

	Support for building shared libraries on mingw and Cygwin.
	* configure.ac (WOE32DLL, DLL_VARIABLE): New variables.
	* include/iconv.h.in (_libiconv_version): Mark as DLL_VARIABLE.
	* woe32dll/export.h: New file, from GNU gettext.
	* woe32dll/iconv-exports.h: New file.
	* Makefile.devel (include/iconv.h_vms, include/iconv.h.msvc-static,
	include/iconv.h.msvc-shared): Remove the DLL_VARIABLE annotation.
	* lib/Makefile.in (INCLUDES): Add -I for parent directory.
	(LDFLAGS): Add WOE32DLL dependent flags.
	(LDFLAGS_yes, LDFLAGS_no): New variables.
	(OBJECTS): Add WOE32DLL dependent objects.
	(OBJECTS_yes, OBJECTS_no): New variables.
	(iconv-exports.lo): New rule.

2006-05-15  Bruno Haible  <bruno@clisp.org>

	* srclib/gettext.h: Update from GNU gettext.
	* srclib/pathmax.h: Update from GNU gettext.
	* srclib/progreloc.c: Update from GNU gettext.
	* srclib/unsetenv.c: Update from GNU gettext.
	* srclib/Makefile.am: Add snippet for creation of unistd.h.
	* m4/extensions.m4: Update from GNU gettext.
	* m4/gettext.m4: Update from GNU gettext.
	* m4/lib-ld.m4: Update from GNU gettext.
	* m4/lib-link.m4: Update from GNU gettext.
	* m4/lib-prefix.m4: Update from GNU gettext.
	* m4/longdouble.m4: Update from GNU gettext.
	* m4/nls.m4: Update from GNU gettext.
	* m4/onceonly.m4: Update from GNU gettext.
	* m4/po.m4: Update from GNU gettext.
	* m4/relocatable.m4: Update from GNU gettext.
	* m4/unistd_h.m4: New file, from GNU gettext.
	* Makefile.devel (aclocal.m4): Depend on it.
	* configure.ac: Invoke gl_HEADER_UNISTD.

2006-05-14  Bruno Haible  <bruno@clisp.org>,
            Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* m4/libtool.m4 [ linux ] (AC_LIBTOOL_LANG_CXX_CONFIG)
	(AC_LIBTOOL_POSTDEP_PREDEP, AC_LIBTOOL_PROG_COMPILER_PIC)
	(AC_LIBTOOL_PROG_LD_SHLIBS): Add support for Sun C 5.9,
	Sun C++ 5.9, and Sun Fortran 8.3 on Linux.

2006-05-06  Charles Wilson  <cygwin@cwilson.fastmail.fm>

	* m4/libtool.m4: On Cygwin, like on mingw, define DLL_EXPORT when
	compiling a shared library object.

2006-05-15  Bruno Haible  <bruno@clisp.org>

	* build-aux/config.rpath: Add support for Sun C 5.9 on Linux.

2006-03-31  Juan Manuel Guerrero <juan.guerrero@gmx.de>

	* djgpp/*: Update.

2006-01-23  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Invoke gl_ALLOCSA.

	* Makefile.devel (aclocal.m4): Depend on $(CONFIGURES_IN).

2006-01-22  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (xmalloc, xalloc_die) [NO_I18N]: Define to avoid using
	gettext().

2006-01-22  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 6:0:4.

2006-01-22  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c: Include error.h, exit.h.
	(print_version): Use EXIT_SUCCESS.
	(check_subst_formatstring, subst_mb_to_uc_fallback,
	subst_uc_to_mb_fallback, subst_mb_to_wc_fallback,
	subst_wc_to_mb_fallback, subst_mb_to_mb_fallback, convert, main): Use
	error() instead of fprintf to stderr.

2006-01-22  Bruno Haible  <bruno@clisp.org>

	New feature: character-dependent substitutions.
	* include/iconv.h.in (iconv_unicode_mb_to_uc_fallback,
	iconv_unicode_uc_to_mb_fallback, iconv_wchar_mb_to_wc_fallback,
	iconv_wchar_wc_to_mb_fallback): New types.
	(struct iconv_fallbacks): New structure type.
	(ICONV_SET_FALLBACKS): New macro.
	* configure.ac: Invoke gt_TYPE_WCHAR_T and substitute HAVE_WCHAR_T.
	* Makefile.os2 (all): Also substitute @HAVE_WCHAR_T@ in build/iconv.h.
	* Makefile.devel (include/iconv.h_vms, include/iconv.h.msvc-static,
	include/iconv.h.msvc-shared): Also substitute @HAVE_WCHAR_T@.
	* lib/converters.h (struct conv_struct): Add field 'fallbacks'.
	* lib/loop_unicode.h (struct uc_to_mb_fallback_locals): New type.
	(uc_to_mb_write_replacement): New function.
	(struct mb_to_uc_fallback_locals): New type.
	(mb_to_uc_write_replacement): New function.
	(unicode_loop_convert): Call mb_to_uc_fallback and uc_to_mb_fallback.
	(unicode_loop_reset): Call uc_to_mb_fallback.
	* lib/loop_wchar.h (struct wc_to_mb_fallback_locals): New type.
	(wc_to_mb_write_replacement): New function.
	(wchar_from_loop_convert): Call wc_to_mb_fallback.
	(struct mb_to_wc_fallback_locals): New type.
	(mb_to_wc_write_replacement): New function.
	(wchar_to_loop_convert): Call mb_to_wc_fallback.
	* lib/iconv.c (iconv_open): Initialize the 'fallbacks' field.
	(iconvctl): Handle ICONV_SET_FALLBACKS.
	* lib/genflags.c (struct iconv_fallbacks): New dummy definition.
	* src/iconv.c: Include limits.h.
	(isdigit, c_isprint): New macros.
	(usage): Document long options and new options.
	(check_subst_formatstring): New function.
	(ilseq_byte_subst, ilseq_wchar_subst, ilseq_unicode_subst): New
	variables.
	(ilseq_byte_subst_size, ilseq_wchar_subst_size,
	ilseq_unicode_subst_size): New variables.
	(ilseq_byte_subst_buffer, ilseq_wchar_subst_buffer,
	ilseq_unicode_subst_buffer): New variables.
	(subst_mb_to_uc_cd, subst_mb_to_uc_temp_buffer): New variables.
	(subst_mb_to_uc_fallback): New function.
	(subst_uc_to_mb_cd, subst_uc_to_mb_temp_buffer): New variables.
	(subst_uc_to_mb_fallback): New function.
	(subst_mb_to_wc_cd, subst_mb_to_wc_temp_buffer): New variables.
	(subst_mb_to_wc_fallback): New function.
	(subst_wc_to_mb_cd, subst_wc_to_mb_temp_buffer): New variables.
	(subst_wc_to_mb_fallback): New function.
	(subst_mb_to_mb_cd, subst_mb_to_mb_temp_buffer): New variables.
	(subst_mb_to_mb_fallback): New function.
	(convert): Enlarge the outbuf when the conversion failed with E2BIG.
	(main): Handle new options --byte-subst, --widechar-subst,
	--unicode-subst.
	* man/iconv.1: Document --unicode-subst, --byte-subst, --widechar-subst
	options.
	* tests/check-subst: New file.
	* tests/Makefile.in (check): Also invoke check-subst.
	Suggested by James Taylor <james@oakseed.demon.co.uk>.

2006-01-21  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (print_version): Bump copyright year.
	(main): Accept long options --from-code, --to-code, --list, --silent.
	Accept abbreviated long options, like getopt() does.
	* man/iconv.1: Document long options.

2005-12-29  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (print_version): Update copyright year.

2005-12-29  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Renamed from configure.in.
	* Makefile.devel (CONFIGURES_IN, configure, config.h.in): Update.

2005-12-29  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number.
	* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
	* windows/iconv.rc: Likewise.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 5:1:3.

2005-12-29  Bruno Haible  <bruno@clisp.org>

	* build-aux/config.guess: Update to GNU version 2005-12-23.
	* build-aux/config.sub: Likewise.
	* build-aux/config.libpath: Update from GNU gettext.
	* build-aux/install-sh: Upgrade to automake-1.9.5.
	* build-aux/missing: Upgrade to automake-1.9.5.
	* build-aux/mkinstalldirs: Upgrade to automake-1.9.5.

2005-12-29  Bruno Haible  <bruno@clisp.org>

	* m4/alloca.m4: Update from GNU gettext.
	* m4/allocsa.m4: Update from GNU gettext.
	* m4/canonicalize.m4: Update from GNU gettext.
	* m4/codeset.m4: Update from GNU gettext.
	* m4/eealloc.m4: Update from GNU gettext.
	* m4/error.m4: Update from GNU gettext.
	* m4/extensions.m4: Update from GNU gettext.
	* m4/gettext.m4: Update from GNU gettext.
	* m4/glibc21.m4: Update from GNU gettext.
	* m4/iconv.m4: Update from GNU gettext.
	* m4/intmax.m4: Update from GNU gettext.
	* m4/inttypes_h.m4: New file, from GNU gettext.
	* m4/isc-posix.m4: Update from GNU gettext.
	* m4/lcmessage.m4: Update from GNU gettext.
	* m4/longdouble.m4: Update from GNU gettext.
	* m4/longlong.m4: Update from GNU gettext.
	* m4/mbstate_t.m4: Update from GNU gettext.
	* m4/nls.m4: Update from GNU gettext.
	* m4/onceonly.m4: Update from GNU gettext.
	* m4/pathmax.m4: Update from GNU gettext.
	* m4/po.m4: Update from GNU gettext.
	* m4/printf-posix.m4: Update from GNU gettext.
	* m4/progtest.m4: Update from GNU gettext.
	* m4/readlink.m4: Update from GNU gettext.
	* m4/relocatable.m4: Update from GNU gettext.
	* m4/setenv.m4: Update from GNU gettext.
	* m4/signed.m4: Update from GNU gettext.
	* m4/ssize_t.m4: Update from GNU gettext.
	* m4/stdbool.m4: Update from GNU gettext.
	* m4/stdint_h.m4: New file, from GNU gettext.
	* m4/strerror.m4: Update from GNU gettext.
	* m4/strerror_r.m4: Update from GNU gettext.
	* m4/unlocked-io.m4: Update from GNU gettext.
	* m4/wchar_t.m4: Update from GNU gettext.
	* m4/wint_t.m4: Update from GNU gettext.
	* m4/xreadlink.m4: Update from GNU gettext.
	* Makefile.devel (aclocal.m4): Depend on m4/inttypes_h.m4 and
	m4/stdint_h.m4 as well.
	* configure.in: Invoke AC_TYPE_MBSTATE_T instead of AC_MBSTATE_T.
	Invoke gl_FUNC_GLIBC_UNLOCKED_IO instead of jm_FUNC_GLIBC_UNLOCKED_IO.
	Invoke gl_ERROR instead of gt_FUNC_ERROR_AT_LINE.
	Don't invoke AC_AIX and AC_MINIX, done by gl_USE_SYSTEM_EXTENSIONS.
	Temporarily redefine AC_LIBOBJ and AC_REPLACE_FUNCS, so as to fill
	SRCLIBOBJS instead of LIBOBJS.
	* srclib/alloca_.h: Update from GNU gettext.
	* srclib/allocsa.h: Update from GNU gettext.
	* srclib/canonicalize.c: Update from GNU gettext.
	* srclib/error.h: Update from GNU gettext.
	* srclib/error.c: Update from GNU gettext.
	* srclib/gettext.h: Update from GNU gettext.
	* srclib/memmove.c: Update from GNU gettext.
	* srclib/progname.h: Update from GNU gettext.
	* srclib/progname.c: Update from GNU gettext.
	* srclib/progreloc.c: Update from GNU gettext.
	* srclib/readlink.c: Update from GNU gettext.
	* srclib/relocatable.c: Update from GNU gettext.
	* srclib/relocwrapper.c: Update from GNU gettext.
	* srclib/setenv.h: Update from GNU gettext.
	* srclib/setenv.c: Update from GNU gettext.
	* srclib/stdbool_.h: Update from GNU gettext.
	* srclib/stdint_.h: Update from gnulib.
	* srclib/strerror.c: Update from GNU gettext.
	* srclib/unlocked-io.h: Update from GNU gettext.
	* srclib/unsetenv.c: Update from GNU gettext.
	* srclib/xalloc.h: Update from GNU gettext.
	* srclib/xmalloc.c: Update from GNU gettext.
	* srclib/xreadlink.c: Update from GNU gettext.
	* srclib/xstrdup.c: Update from GNU gettext.
	* srclib/Makefile.am (DEFS): Also define EXEEXT.
	(libicrt_a_LIBADD): Use SRCLIBOBJS instead of LIBOBJS.
	(libicrt_a_DEPENDENCIES): New variable.
	* src/Makefile.in (EXEEXT): New variable.
	* build-aux/install-reloc: Update from GNU gettext.
	* build-aux/reloc-ldflags: Update from GNU gettext.
	* build-aux/config.rpath: Update from GNU gettext.

2005-12-29  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update, based on libtool-1.5.22.
	* build-aux/ltmain.sh: Update, based on libtool-1.5.22.

2005-12-24  Bruno Haible  <bruno@clisp.org>

	Check the whole range of GB18030.
	* tests/GB18030-BMP.TXT: Renamed from tests/GB18030.TXT.
	* tests/gengb18030z.c: New file.
	* tests/table-from.c (main): For GB18030, don't stop at U+10000.
	* tests/table-to.c (main): Likewise.
	* tests/Makefile.in (check): Generate GB18030.TXT on the fly from
	GB18030-BMP.TXT.
	(clean): Remove also gengb18030z and GB18030.TXT.
	* tests/Makefile.msvc (check): Generate GB18030.TXT on the fly from
	GB18030-BMP.TXT.
	(clean): Remove also GB18030Z.TXT, GB18030TMP.TXT, GB18030.TXT.
	* tests/Makefile.os2 (check): Depend on gengb18030z.exe. Generate
	GB18030.TXT on the fly from GB18030-BMP.TXT.
	(clean): Remove also GB18030Z.TXT, GB18030TMP.TXT, GB18030.TXT.

2005-12-20  Bruno Haible  <bruno@clisp.org>

	* tests/table-to.c (main): Test the mappings up to U+10FFFF, not only
	up to U+2FFFF. Tolerate that Unicode language tags are silently mapped
	to nothing.

2005-12-22  Bruno Haible  <bruno@clisp.org>

	Extend GB18030 converter to cover the entire Unicode PUA.
	* lib/gb18030.h: Update comments, based on second printing.
	(gb18030_mbtowc): Add mapping for range U+E000..U+E765.
	(gb18030_pua2charset): New array.
	(gb18030_wctomb): Add mapping for range U+E000..U+E765 and the two-byte
	part of range U+E766..U+E864.
	* lib/gb18030ext.h (gb18030ext_2uni_pagefe): Add mappings to private
	area.
	(gb18030ext_mbtowc): Add mapping for the two-byte part of range
	U+E766..U+E864.
	* lib/gb18030uni.h (gb18030uni_charset2uni_ranges,
	gb18030uni_uni2charset_ranges, gb18030uni_ranges): Add 12 more
	intervals.
	(gb18030uni_mbtowc, gb18030uni_wctomb): Update.
	* tests/GB18030.TXT: Complete mappings to private area.

2005-12-22  Bruno Haible  <bruno@clisp.org>

	* lib/gbk.h: Update comments.

2005-12-20  Bruno Haible  <bruno@clisp.org>

	Add private area mappings to CP949.
	* lib/cp949.h (cp949_mbtowc, cp949_wctomb): Map U+E000..U+E0BB like
	many others do it.
	* tests/CP949.TXT: Add mappings for U+E000..U+E0BB.

2005-12-15  Bruno Haible  <bruno@clisp.org>

	Add private area mappings to CP950.
	* lib/cp950.h (cp950_mbtowc, cp950_wctomb): Map U+E000..U+F6B0 like
	most others do it.
	* tests/CP950.TXT: Add mappings for U+E000..U+F6B0.

2005-12-15  Bruno Haible  <bruno@clisp.org>

	Make CP936 follow what Microsoft does.
	In http://www.microsoft.com/globaldev/reference/dbcs/936.mspx they
	added a 0x80 - U+20AC mapping to the code chart, but not to the
	tooltips and not to the list of mappings.
	* lib/cp936.h: New file.
	* lib/gbk.h: Update comments.
	* lib/ces_gbk.h: Update comments.
	* lib/converters.h: Include cp936.h.
	* lib/encodings.def (CP936): New encoding.
	(GBK): Remove CP936 aliases.
	* README, man/iconv_open.3: Add CP936.
	* tests/Makefile.in (check): Check CP936.
	* tests/Makefile.msvc (check): Likewise.
	* tests/Makefile.os2 (check): Likewise.
	* tests/CP936.TXT: New file.

2005-12-14  Bruno Haible  <bruno@clisp.org>

	* lib/cp932.h (cp932_wctomb): Map U+FF5E, U+2225, U+FF0D, U+FFE0,
	U+FFE1 like Microsoft does it.
	* lib/CP932.IRREVERSIBLE.TXT: Add these mappings.
	Reported by Lei Wang <lwang@qilinsoft.com>.

2005-12-14  Bruno Haible  <bruno@clisp.org>

	Follow Euro sign addition done in 1999 in
	http://www.microsoft.com/globaldev/reference/dbcs/950/950_A3.mspx
	* lib/cp950.h (cp950_mbtowc, cp950_wctomb): Add mapping for 0xA3E1.
	* tests/CP950.TXT: Add mapping for 0xA3E1.

2005-11-11  Bruno Haible  <bruno@clisp.org>

	* lib/euc_jp.h (euc_jp_wctomb): When writing a 3-bytes byte sequence
	and only two bytes are available in the output buffer, return
	RET_TOOSMALL instead of overrunning the output buffer.
	* lib/isoir165.h (isoir165_wctomb): When only one byte is available
	in the output buffer, don't overrun the output buffer.
	Reported by William Bardwell <bardwell@curl.com>.

2005-09-18  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update, based on libtool-1.5.20.
	* build-aux/ltmain.sh: Update, based on libtool-1.5.20.

2005-08-12  Bruno Haible  <bruno@clisp.org>

	* lib/big5_2003.h: Map 0xF9FA..0xF9FD differently.
	* tests/BIG5-2003.TXT: Likewise.
	* tests/BIG5-2003.IRREVERSIBLE.TXT: New file.
	Reported by Ping Yeh <ping@pingyeh.net>.

2005-07-24  Bruno Haible  <bruno@clisp.org>

	Tidy up exported symbols.
	* m4/visibility.m4: New file.
	* include/export.h: New file.
	* configure.in: Invoke gl_VISIBILITY. Use AC_CONFIG_FILES. Arrange to
	create also include/iconv.h.inst.
	* Makefile.devel (all): Depend on include/iconv.h.build.in.
	(aclocal.m4): Depend on m4/visibility.m4.
	(include/iconv.h.build.in): New rule.
	* Makefile.in (install-lib, install): Install include/iconv.h.inst,
	not the include/iconv.h that was used for building.
	(distclean, maintainer-clean): Remove also include/iconv.h.inst.
	* lib/Makefile.in (CFLAGS): Add @CFLAG_VISIBILITY@.
	(DEFS): Also define BUILDING_LIBICONV and BUILDING_DLL.
	* lib/config.h.in (HAVE_VISIBILITY): New macro.
	* lib/relocatable.h (RELOCATABLE_DLL_EXPORTED) [HAVE_VISIBILITY]:
	Define to the gcc visibility attribute.
	* srclib/relocatable.h (RELOCATABLE_DLL_EXPORTED) [HAVE_VISIBILITY]:
	Likewise.

2005-07-25  Bruno Haible  <bruno@clisp.org>

	2003-08-24  Bruno Haible  <bruno@clisp.org>
	* lib/relocatable.h: Make this file includable in C++ mode: add extern
	"C".

2005-07-08  Bruno Haible  <bruno@clisp.org>

	* Version 1.10 released.

2005-07-08  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4 (postinstall_cmds) [cygwin,mingw,pw32]: Make DLL
	executable after installing it.

2005-07-08  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number.
	* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
	* windows/iconv.rc: Likewise.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 5:0:3.

2005-07-05  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (ACLOCAL): New variable.
	(aclocal.m4): Use it.

2005-07-05  Bruno Haible  <bruno@clisp.org>

	* m4/relocatable.m4 (AC_RELOCATABLE): On mingw, simply set
	SET_RELOCATABLE to a trivial value.

2004-08-08  Bruno Haible  <bruno@clisp.org>

	* srclib/progreloc.c (xstrdup): Define as strdup if no xmalloc should
	be used.

2004-04-28  Bruno Haible  <bruno@clisp.org>

	* srclib/progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN):
	Treat Cygwin like Windows, since it now accepts Windows pathnames.

2005-06-09  Bruno Haible  <bruno@clisp.org>

	* Makefile.in (mkinstalldirs): Use build-aux/ instead of autoconf/.
	* lib/Makefile.in (mkinstalldirs): Likewise.
	* src/Makefile.in (mkinstalldirs): Likewise.
	* man/Makefile.in (mkinstalldirs): Likewise.

2005-06-08  Bruno Haible  <bruno@clisp.org>

	* srclib/canonicalize.c (__realpath): Avoid gcc warnings on platforms
	that don't support symbolic links.

2005-06-08  Bruno Haible  <bruno@clisp.org>

	* srclib/binary-io.h (fileno): Undefine before defining it. Avoids a
	gcc warning on mingw.

2005-05-22  Bruno Haible  <bruno@clisp.org>

	Implement and document BIG5-2003.
	* lib/big5_2003.h: New file.
	* lib/converters.h: Include it.
	* lib/encodings_extra.def (BIG5-2003): New encoding.
	* README, man/iconv_open.3: Add BIG5-2003.
	* tests/Makefile.in (check-extra-yes): Check BIG5-2003.
	* tests/BIG5-2003.TXT: New file.

2005-05-21  Bruno Haible  <bruno@clisp.org>

	Add EURO SIGN to EUC-TW converter.
	* lib/cns11643_1.h (cns11643_1_2uni_page42): Add entry for 0x14242.
	(cns11643_1_mbtowc): Update.
	* lib/cns11643_inv.h (cns11643_inv_2charset): Add entry for 0x20AC.
	(cns11643_inv_uni2indx_page*): Update.
	* lib/dec_hanyu.h (dec_hanyu_mbtowc, dec_hanyu_wctomb): Consider only
	part of row 42.
	* tests/EUC-TW.TXT: Add entry for 0x20AC.
	* tests/EUC-TW.IRREVERSIBLE.TXT: Likewise.

2005-05-03  Bruno Haible  <bruno@clisp.org>

	* tools/Makefile (ALL): Add pt154.h.
	(pt154.h): New rule.
	* lib/encodings.def: Add PT154.
	* lib/pt154.h: New file.
	* lib/converters.h: Include it.
        * README, man/iconv_open.3: Add PT154.
	* NOTES: Mention PT154.
	* tests/PT154.TXT: New file.
	* tests/Makefile.in (check): Also test PT154.
	* tests/Makefile.msvc (check): Likewise.
	* tests/Makefile.os2 (check): Likewise.

2005-03-29  Bruno Haible  <bruno@clisp.org>

	Rename libiconv_plug.so to preloadable_libiconv.so.
	* configure.in (PLUGLIB): Set to preloadable_libiconv.so instead of
	libiconv_plug.so.
	* lib/Makefile.in (preloadable_libiconv.so): Renamed from
	libiconv_plug.so.
	(preloadable_libiconv_linux.so): Renamed from libiconv_plug_linux.so.
	(preloadable_libiconv_solaris.so): Renamed from
	libiconv_plug_solaris.so.
	(preloadable_libiconv_osf.so): Renamed from libiconv_plug_osf.so.
	(clean): Update.
	* README: Update.

2005-03-29  Bruno Haible  <bruno@clisp.org>

	Implement and document ATARIST.
	* tools/Makefile (ALL): Add atarist.h.
	(atarist.h): New rule.
	* lib/atarist.h: New file.
	* lib/converters.h: Include it.
	* lib/encodings_extra.def (ATARIST): New encoding.
	* README, man/iconv_open.3: Add ATARIST.
	* tests/Makefile.in (check-extra-yes): Check ATARIST.
	* tests/ATARIST.TXT: New file.

2005-03-22  Bruno Haible  <bruno@clisp.org>

	* build-aux: New directory, renamed from autoconf.
	* configure.in (AC_CONFIG_AUX_DIR): Use build-aux.

2005-03-16  Bruno Haible  <bruno@clisp.org>

	* m4/stdint.m4 (gl_STDINT_H): Define HAVE_LONG_LONG_64BIT instead of
	HAVE_LONGLONG_64BIT.
	* srclib/stdint_.h: Use HAVE_LONG_LONG_64BIT instead of
	HAVE_LONGLONG_64BIT.
	* srclib/Makefile.am (stdint.h): Likewise.

2005-03-14  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (aclocal.m4): Depend also on allocsa.m4, eealloc.m4,
	extensions.m4, intmax.m4, inttypes.m4, longdouble.m4, longlong.m4,
	printf-posix.m4, readlink.m4, signed.m4, ssize_t.m4, stdint.m4,
	wchar_t.m4, wint_t.m4.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	Make stdout error checking reliable, also when writing to a NFS file.
	* src/iconv.c (main): Check the return value of fclose(stdout).
	* lib/genaliases.c (main): Likewise.
	* lib/genaliases2.c (main): Likewise.
	* lib/genflags.c (main): Likewise.
	* lib/gentranslit.c (main): Likewise.
	* tests/genutf8.c (main): Likewise.
	* tests/table-from.c (main): Likewise.
	* tests/table-to.c (main): Likewise.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (convert): Before outputting an error message, flush
	stdout and output a newline if suitable.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	Improved error messages.
	* srclib/width.c: New file, from GNU clisp.
	* srclib/uniwidth.h: New file, from GNU clisp with modifications.
	* srclib/unitypes.h: New file, from GNU clisp with modifications.
	* srclib/cjk.h: New file, from GNU clisp.
	* srclib/streq.h: New file, from GNU clisp.
	* srclib/stdint_.h: New file, from gnulib.
	* m4/stdint.m4: New file, from gnulib.
	* m4/inttypes.m4: New file, from gnulib.
	* srclib/Makefile.am: Add gnulib module 'stdint' snippet.
	(BUILT_SOURCES): New variable.
	(libicrt_a_SOURCES): Add width.c, uniwidth.h, unitypes.h, cjk.h,
	streq.h.
	* configure.in: Invoke gl_STDINT_H.
	* src/iconv.c: Include cjk.h, uniwidth.h.
	(line, column, cjkcode): New variables.
	(update_line_column): New function.
	(convert): Initialize line and column. In all error message, show also
	the line and column number.
	(main): Initialize cjkcode. Set up hooks to call update_line_column.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	* include/iconv.h.in (iconv_canonicalize): New declaration.
	* lib/genaliases.c (emit_encoding): Take two output streams as
	arguments. To the second stream, emit a shell command for extracting
	offsets into the gperf generated string pool.
	(main): Write the shell commands into file descriptors 3 and 4.
	* lib/genaliases2.c (emit_encoding): Take two output streams as
	arguments. To the second stream, emit an expression for the offset
	into the string pool.
	(main): Write the offsets into file descriptor 3.
	* Makefile.devel (lib/aliases.gperf): Remove target.
	(lib/aliases.h): Generate lib/aliases.gperf temporarily. Generate also
	lib/canonical.h and lib/canonical_local.h.
	(lib/aliases_aix.h): Generate also lib/canonical_aix.h.
	(lib/aliases_osf1.h): Generate also lib/canonical_osf1.h.
	(lib/aliases_dos.h): Generate also lib/canonical_dos.h.
	(lib/aliases_extra.h): Generate also lib/canonical_extra.h.
	* lib/iconv.c (stringpool2): Provide default definition when it doesn't
	exist.
	(all_canonical): New array.
	(iconv_canonicalize): New function.

2005-03-13  Bruno Haible  <bruno@clisp.org>

	* include/iconv.h.in (iconv_unicode_char_hook, iconv_wide_char_hook,
	iconv_hooks): New types.
	(ICONV_SET_HOOKS): New macro.
	* lib/converters.h (struct conv_struct): Add field 'hooks'.
	* lib/iconv.c (iconv_open): Initialize hooks to NULL.
	(iconvctl): Handle ICONV_SET_HOOKS.
	* lib/loop_unicode.h (unicode_loop_convert, unicode_loop_reset): After
	conversion of a character, call the uc_hook.
	* lib/loop_wchar.h (wchar_id_loop_convert): After every character, call
	the wc_hook.
	* lib/genflags.c (iconv_hooks): Provide a dummy definition.

2005-02-05  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (main): In case of unsupported encodings, show a hint
	towards "iconv -l".

2005-01-06  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.msvc (CFLAGS): Define also INSTALLPREFIX.
	* lib/Makefile.vms (DEFS): Likewise.
	Reported by Troels Walsted Hansen <Troels.W.Hansen@fast.no>.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* autoconf/config.rpath: Update from GNU gettext.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	Assume automake-1.9.
	* Makefile.devel (AUTOMAKE): Assume automake-1.9.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update from GNU gettext, based on libtool-1.5.10.
	* autoconf/ltmain.sh: Update from GNU gettext, based on libtool-1.5.10.

2004-11-11  Bruno Haible  <bruno@clisp.org>

	* lib/iconv.c (iconv_open): Accept the suffixes //TRANSLIT and //IGNORE
	in arbitrary order.
	Reported by Lukas Gebauer <gebauerl@mlp.cz>.

2004-09-21  Juan Manuel Guerrero  <st001906@hrz1.hrz.tu-darmstadt.de>

	* djgpp/config.bat: Update.
	* djgpp/config.sed: Update.
	* djgpp/config.site: Update.
	* djgpp/edtest.bat: Update.
	* djgpp/fnchange.in: Update.
	* djgpp/Makefile.maint: Update.
	* djgpp/makefile.sed: Update.
	* djgpp/README.in: Update.
	* djgpp/sources.sed: Update.
	* djgpp/translit-check.sed: Update.

2004-08-25  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update from GNU gettext, based on libtool-1.5.6.
	* autoconf/ltmain.sh: Update from GNU gettext, based on libtool-1.5.6.

2004-07-31  Bruno Haible  <bruno@clisp.org>

	Update to JISX 0213 plane 1 to 2004 version (ISO-IR-233).
	* tools/Makefile (jisx0213.h): Bump version number.
	* tools/JISX0213.TXT: Change mappings U+2015 -> U+2014,
	U+2299 -> U+29BF, and add 10 new characters.
	* tools/cjk_tab_to_h.c (output_title): Bump year.
	(do_jisx0213): Update comments. Emit a conditional 'inline'.
	* lib/jisx0213.h: Regenerated.
	* lib/iso2022_jp3.h (iso2022_jp3_mbtowc): Accept escape sequence
	ESC $ ( Q as a synonym of ESC $ ( O.
	(iso2022_jp3_wctomb): Emit ESC $ ( Q instead of ESC $ ( O.
	* tests/EUC-JISX0213.TXT: Change mappings U+2015 -> U+2014,
	U+2299 -> U+29BF, and add 10 new characters.
	* tests/SHIFT_JISX0213.TXT: Likewise.
	* tests/ISO-2022-JP-3-snippet: Update.
	* tests/ISO-2022-JP-3-snippet.UTF-8: Update.

2004-07-22  Bruno Haible  <bruno@clisp.org>

	* lib/encodings.def (ISO-8859-7): Add alias ISO_8859-7:2003.
	* tools/Makefile (iso8859_7.h): Use conversion table from 2003.
	* lib/iso8859_7.h: Add mappings for 0xa4, 0xa5, 0xaa.
	* tests/ISO-8859-7.TXT: Update to ISO_8859-7:2003.

2004-07-22  Bruno Haible  <bruno@clisp.org>

	* tools/Makefile (ALL): Add iso8859_11.h.
	(iso8859_11.h): New rule.
	* lib/encodings.def: Add ISO-8859-11.
	* lib/iso8859_11.h: New file.
	* lib/converters.h: Include it.
	* tests/ISO-8859-11.TXT: New file.
	* tests/Makefile.in (check): Also test ISO-8859-11.
	* tests/Makefile.msvc (check): Likewise.
	* tests/Makefile.os2 (check): Likewise.

2004-07-17  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (main): Terminate option parsing when option -- is seen.
	Reported by Len Lattanzi <zardoz@users.sourceforge.net>.

2004-03-05  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (install): Make DESTDIR work on HP-UX.
	Reported by Bob Proulx <box@proulx.com>.

2004-02-19  Bruno Haible  <bruno@clisp.org>

	* lib/vietcomb.h (viet_comp_table_data): Un-uncomment 0x00D5, 0x00F5,
	0x0168, 0x0169. Needed for TCVN-5712 but not for CP1258.
	(viet_comp_table0301_len): Increment by 4.

	* lib/cp1255.h (cp1255_mbtowc): Don't delay the handling of characters
	which are not entries in cp1255_comp_table_data.
	* lib/cp1258.h (cp1258_comp_bases): New array.
	(cp1258_mbtowc): Don't delay the handling of characters which are not
	relevant entries in viet_comp_table_data.
	* lib/tcvn.h (tcvn_comp_bases): New array.
	(tcvn_mbtowc): Don't delay the handling of characters which are not
	relevant entries in viet_comp_table_data.
	Reported by Alain Bench <veronatif@free.fr>.

2004-02-02  Perry Rapp  <lifelines_3_0_18@hotmail.com>
            Bruno Haible  <bruno@clisp.org>

	* man/iconvctl.3: New file.
	* man/iconv.3: Refer to it in "See also".
	* man/iconv_open.3: Likewise.

2004-01-24  Bruno Haible  <bruno@clisp.org>

	* srclib/progreloc.c (xstrdup): Define as strdup if no xmalloc should
	be used.

2004-01-20  Bruno Haible  <bruno@clisp.org>

	Upgrade from gettext-0.14.

	* configure.in: Call gl_USE_SYSTEM_EXTENSIONS. Call AM_STDBOOL_H
	instead of gt_STDBOOL_H. Provide a definition for DLL_VARIABLE.
	* srclib/Makefile.am (libicrt_a_SOURCES): Add allocsa.h, allocsa.c,
	xalloc.h. Remove xmalloc.h.
	(libicrt_a_LIBADD): Remove @ALLOCA@.
	* srclib/Makefile.msvc (OBJECTS): Add allocsa.obj.
	(allocsa.obj): New rule.
	* srclib/Makefile.vms (OBJECTS): Add allocsa.obj.
	(allocsa.obj): New rule.
	* Makefile.devel (config.h_vms): Set MALLOC_0_IS_NONNULL to 0.
	(config.h.msvc): Set MALLOC_0_IS_NONNULL to 1.

    lib/:

	2003-10-09  Bruno Haible  <bruno@clisp.org>
	* lib/relocatable.c: Include xalloc.h instead of xmalloc.h.

	2003-08-01  Bruno Haible  <bruno@clisp.org>
	* lib/relocatable.c (find_shared_library_fullname): Disable the code on
	Linux/libc5. Reported by Alain Guibert <derogaton+bgli@oreka.com>.

	2003-06-22  Bruno Haible  <bruno@clisp.org>
	* lib/relocatable.c (compute_curr_prefix): Comment out this function in
	the case when it is not used.
	Reported by Pavel Roskin <proski@gnu.org>.

    m4/:

	* m4/gettext.m4: Upgrade from GNU gettext. Many changes.
	* m4/po.m4: Likewise.

	* m4/readlink.m4: New file, from GNU gettext.

	2003-11-30  Bruno Haible  <bruno@clisp.org>
	* m4/allocsa.m4: New file.
	* m4/eealloc.m4: New file.
	* m4/setenv.m4 (gl_PREREQ_SETENV): Require gl_ALLOCSA instead of
	AC_FUNC_ALLOCA.

	2003-10-21  Bruno Haible  <bruno@clisp.org>
	* m4/canonicalize.m4 (gl_PREREQ_CANONICALIZE): Also test for
	readlink().

	2003-08-24  Bruno Haible  <bruno@clisp.org>
	* m4/relocatable.m4 (AC_RELOCATABLE): Use $(host) instead of @host@,
	since the substitution of @host@ may occur before the substitution of
	@SET_RELOCATABLE@.

	2003-08-23  Bruno Haible  <bruno@clisp.org>
	* stdbool.m4: Replace with the version from gnulib, without
	AC_HEADER_STDBOOL.

	2003-08-08  Paul Eggert  <eggert@twinsun.com>
	* m4/extensions.m4: New file.
	* m4/unlocked-io.m4 (jm_FUNC_GLIBC_UNLOCKED_IO):
	Require gl_USE_SYSTEM_EXTENSIONS rather than AC_GNU_SOURCE.

	2003-07-01  Bruno Haible  <bruno@clisp.org>
	* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Don't include <unistd.h>.
	<sys/types.h> should be sufficient.
	Reported by Paul Eggert.

	2003-07-01  Bruno Haible  <bruno@clisp.org>
	* m4/lib-prefix.m4 (AC_LIB_ARG_WITH): Avoid "duplicated macro" error
	from aclocal-1.4-p4.
	Reported by Luke Schierer <lschiere@rackspace.com> and
	Michael C. Toren <mct@toren.net>.

	2003-07-01  Paul Eggert  <eggert@twinsun.com>
	* m4/xreadlink.m4 (gl_XREADLINK): Don't check for sys/types.h, since
	xreadlink.c now includes it unconditionally.

	2003-06-17  Paul Eggert  <eggert@twinsun.com>
	* m4/lib-ld.m4 (AC_LIB_PROG_LD_GNU, AC_LIB_PROG_LD): Don't use egrep,
	for portability to POSIX 1003.1-2001.  Backported from libtool-1.5.

	2003-05-28  Paul Eggert  <eggert@twinsun.com>
	* m4/pathmax.m4 (gl_PATHMAX): Don't check for limits.h.
	* m4/xreadlink.m4 (gl_XREADLINK): Likewise.

	2002-12-24  Bruno Haible  <bruno@clisp.org>
	* m4/setenv.m4 (gt_FUNC_SETENV): New macro.
	(gt_CHECK_VAR_DECL): Fix quoting error that led to infinite loop in m4
	when invoked twice.
	(gt_PREREQ_SETENV, gt_PREREQ_UNSETENV): New macros, replacing old
	gt_FUNC_SETENV.

    srclib/:

	2003-11-30  Bruno Haible  <bruno@clisp.org>
	* srclib/alloca.c: Remove file.

	2003-11-30  Bruno Haible  <bruno@clisp.org>
	Safer stack allocation.
	* srclib/allocsa.h: New file.
	* srclib/allocsa.c: New file.
	* canonicalize.c: Include allocsa.h.
	(__realpath): Use allocsa instead of alloca. Don't clobber errno right
	before returning NULL.
	* srclib/relocwrapper.c: Indirectly depends on allocsa.
	* srclib/setenv.c: Include allocsa.h.
	(alloca): Remove fallback definition.
	(freea): Remove macro.
	(__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa
	instead of freea.

	2003-11-17  Bruno Haible  <bruno@clisp.org>
	* srclib/canonicalize.c: #undef realpath after <config.h> but before
	the system includes, so as to avoid a prototype clash on Solaris 2.5.1.
	Reported by Warren L. Dodge <warrend@mdhost.cse.tek.com>.

	2003-10-21  Bruno Haible  <bruno@clisp.org>
	* srclib/canonicalize.c (lstat): Define as an alias to 'stat' on
	systems without symbolic links.

	2003-10-17  Bruno Haible  <bruno@clisp.org>
	* srclib/binary-io.h: Avoid warnings on Cygwin.

	2003-10-09  Bruno Haible  <bruno@clisp.org>
	* srclib/xalloc.h: Renamed from xmalloc.h.
	* srclib/progreloc.c: Include xalloc.h instead of xmalloc.h.
	* srclib/relocatable.c: Likewise.
	* srclib/xmalloc.c: Likewise.
	* srclib/xreadlink.c: Likewise.
	* srclib/xstrdup.c: Likewise.

	2003-09-12  Paul Eggert  <eggert@twinsun.com>
	* srclib/progreloc.c (get_full_program_name): Define via prototype.

	2003-09-12  Paul Eggert  <eggert@twinsun.com>
	* srclib/setenv.c (clearenv): Define via prototype.

	2003-09-10  Bruno Haible  <bruno@clisp.org>
	* srclib/setenv.c: Include <stdlib.h> and <string.h> unconditionally.
	* srclib/unsetenv.c: Likewise.

	2003-08-28  Bruno Haible  <bruno@clisp.org>
	* srclib/binary-io.h: Undefine O_BINARY before defining it. This avoids
	a warning on QNX, which defines O_BINARY to 000000.

	2003-08-24  Bruno Haible  <bruno@clisp.org>
	* srclib/binary-io.h: Include <stdio.h>, to avoid a compilation error
	when MSVC7 <stdio.h> is included later.

	2003-08-24  Bruno Haible  <bruno@clisp.org>
	* srclib/error.h: Use ANSI C "..." declarations when compiling with
	MSVC, even though it doesn't define __STDC__ by default.
	* srclib/error.c: Use <stdarg.h> when compiling with MSVC, even though
	it doesn't define __STDC__ by default.

	2003-08-24  Bruno Haible  <bruno@clisp.org>
	Support for building DLLs on Windows.
	* srclib/error.h (error_print_progname, error_message_count,
	error_one_per_line): Add DLL_VARIABLE attribute.
	* srclib/progname.h (program_name): Likewise.

	2003-08-24  Bruno Haible  <bruno@clisp.org>
	* srclib/progname.h: Make this file includable in C++ mode: add extern
	"C".
	* srclib/relocatable.h: Likewise.
	* srclib/xmalloc.h: Likewise.

	2003-08-22  Bruno Haible  <bruno@clisp.org>
	* srclib/progname.h (error_with_progname, maybe_print_progname): Remove
	declarations.
	* srclib/progname.c (error_with_progname): Remove variable.
	(maybe_print_progname): Remove function.

	2003-08-01  Bruno Haible  <bruno@clisp.org>
	* srclib/relocatable.c (find_shared_library_fullname): Disable the code
	on Linux/libc5. Reported by Alain Guibert <derogaton+bgli@oreka.com>.

	2003-07-01  Paul Eggert  <eggert@twinsun.com>
	* srclib/xreadlink.c: Include <sys/types.h> unconditionally, instead of
	having it depend on HAVE_SYS_TYPES_H.

	2003-06-23  Bruno Haible  <bruno@clisp.org>
	Avoid compilation units that are empty after preprocessing.
	* srclib/canonicalize.c: Add dummy declaration.
	* srclib/strerror.c: Likewise.
	* srclib/error.c: Include <stdio.h> even if there's nothing to be
	compiled.

	2003-06-22  Bruno Haible  <bruno@clisp.org>
	* srclib/relocatable.c (compute_curr_prefix): Comment out this function
	in the case when it is not used.
	Reported by Pavel Roskin <proski@gnu.org>.

	2003-05-28  Paul Eggert  <eggert@twinsun.com>
	* srclib/pathmax.h: Include <limits.h> without checking for
	HAVE_LIMITS_H.
	* srclib/xreadlink.c: Likewise.

2004-01-20  Bruno Haible  <bruno@clisp.org>

	Assume automake-1.8.
	* Makefile.devel (AUTOCONF, AUTOHEADER): Assume autoconf-2.59.
	(AUTOMAKE): Assume automake-1.8.
	* Makefile.in (am--refresh): New target.

2004-01-23  Bruno Haible  <bruno@clisp.org>

	* Version 1.9.2 released.

2004-01-23  Bruno Haible  <bruno@clisp.org>

	* tests/table-from.c: Include binary-io.h.
	(main): Switch stdout to binary mode.
	* tests/table-to.c: Include binary-io.h.
	(main): Switch stdout to binary mode.
	* tests/genutf8.c: Include binary-io.h.
	(main): Switch stdout to binary mode.
	* tests/Makefile.in (INCLUDES): Also look in srclib.
	(check): Pass INCLUDES when compiling genutf8.c.
	* tests/Makefile.os2 (INCLUDES): Also look in srclib.
	(genutf8.exe): Pass INCLUDES when compiling genutf8.c.
	* tests/Makefile.msvc (INCLUDES): Also look in srclib.
	(check): Pass INCLUDES when compiling genutf8.c.

2004-01-21  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (force_binary): Remove variable.
	(usage): Don't document --binary any more.
	(convert, main): Always switch to binary mode.
	* tests/check-stateful.bat: Remove --binary option.
	* tests/check-translit.bat: Likewise.
	* tests/check-stateful.cmd: Likewise.
	* tests/check-translit.cmd: Likewise.
	* djgpp/stateful-check.sed: Remove MODE variable.
	* djgpp/translit-check.sed: Likewise.

2004-01-21  Bruno Haible  <bruno@clisp.org>

	* man/iconv.3: Fix description of return value in case of error.
	Reported by Jonathan Wakely <redi@users.sf.net>.

2003-09-12  Paul Eggert  <eggert@twinsun.com>

	* srclib/progreloc.c (get_full_program_name): Define via prototype.

2003-08-15  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (lib/translit.h): Add ulimit command so that the
	gentranslit program gets the stack it needs. Many Linux distributions
	allow only 8 MB of stack by default.

2003-08-01  Bruno Haible  <bruno@clisp.org>

	* lib/relocatable.c (find_shared_library_fullname): Disable the code on
	Linux/libc5.
	* srclib/relocatable.c (find_shared_library_fullname): Likewise.
	Reported by Alain Guibert <derogaton+bgli@oreka.com>.

2003-07-02  Bruno Haible  <bruno@clisp.org>

	* m4/lib-ld.m4: Update from GNU gettext.
	* m4/lib-prefix.m4: Update from GNU gettext.
	* m4/gettext.m4: Update from GNU gettext.
	* m4/intmax.m4: New file, from GNU gettext.
	* m4/longdouble.m4: New file, from GNU gettext.
	* m4/longlong.m4: New file, from GNU gettext.
	* m4/printf-posix.m4: New file, from GNU gettext.
	* m4/signed.m4: New file, from GNU gettext.
	* m4/wchar_t.m4: New file, from GNU gettext.
	* m4/wint_t.m4: New file, from GNU gettext.
	* m4/pathmax.m4: Update from GNU gettext and gnulib.
	* m4/ssize_t.m4: Update from GNU gettext and gnulib.
	* m4/xreadlink.m4: Update from GNU gettext and gnulib.
	* m4/readlink.m4: New file, from gnulib.
	* autoconf/install-reloc: Update from GNU gettext.
	* srclib/stdbool_.h: Renamed from srclib/stdbool.h.in.
	* srclib/readlink.c: New file, from GNU gettext and gnulib.
	* srclib/Makefile.am (LIBADD_SOURCE): Add readlink.c.
	(EXTRA_DIST, stdbool.h): Use stdbool_.h instead of stdbool.h.in.
	* configure.in: Invoke gl_FUNC_READLINK.

2003-06-22  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (install): Link with the already installed library.
	This fixes a link error on Solaris.
	Reported by Paul Eggert.

2003-06-08  Bruno Haible  <bruno@clisp.org>

	* srclib/canonicalize.c (__getcwd) [VMS]: Pass 3 arguments to getcwd.

2003-05-02  Bruno Haible  <bruno@clisp.org>

	Support for libtool-1.5.
	* srclib/progname.c (set_program_name): Remove a leading
	"<dirname>/.libs/lt-" or "<dirname>/.libs/", not only "lt-".

2003-06-23  Bruno Haible  <bruno@clisp.org>

	Avoid compilation units that are empty after preprocessing.
	* srclib/canonicalize.c: Add dummy declaration.
	* srclib/strerror.c: Likewise.
	* srclib/error.c: Include <stdio.h> even if there's nothing to be
	compiled.

2003-06-22  Bruno Haible  <bruno@clisp.org>

	Portability to mingw32.
	* m4/ssize_t.m4: New file, from GNU gettext.
	* m4/xreadlink.m4 (gl_XREADLINK): Require gt_TYPE_SSIZE_T.
	Reported by Jeff Bonggren <jbon@cfl.rr.com>.

2003-06-22  Bruno Haible  <bruno@clisp.org>

	Portability to mingw32.
	* lib/relocatable.c [WIN32]: Include <windows.h>.
	* srclib/relocatable.c: Likewise.
	Reported by Jeff Bonggren <jbon@cfl.rr.com>.

2003-06-22  Bruno Haible  <bruno@clisp.org>

	* lib/relocatable.c (compute_curr_prefix): Comment out this function in
	the case when it is not used.
	* srclib/relocatable.c (compute_curr_prefix): Likewise.
	Reported by Pavel Roskin <proski@gnu.org>.

2003-06-18  Bruno Haible  <bruno@clisp.org>

	* config/install-sh: Update from automake-1.7.5.

2003-06-16  Bruno Haible  <bruno@clisp.org>

	* lib/encodings.def (ISO-8859-15): Add alias LATIN-9.
	(ISO-8859-16): Add aliases ISO_8859-16:2001, LATIN10, L10. Remove alias
	ISO_8859-16:2000.
	(GBK): Add aliases MS936, WINDOWS-936.
	Reported by Guido Flohr <guido@imperia.net>.

2003-05-09  Bruno Haible  <bruno@clisp.org>

	* srclib/canonicalize.c: Add #ifdef around versioned_symbol. Avoids an
	"extraneous semicolon" warning from Tru64 cc.

2003-06-07  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (config.h_vms): Don't define HAVE_ENVIRON_DECL.
	* Makefile.vms (config.h): New rule.
	(all, install): Depend on it.
	(all, install, installdirs, uninstall, check): Fix typo.
	(mostlyclean, clean, distclean, maintainer-clean): Likewise. Remove
	config.h.
	* lib/Makefile.vms (DEFS): Fix value of INSTALLDIR.
	(OBJECTS): Use libiconv.obj instead of iconv.obj.
	(libiconv.obj): Renamed from iconv.obj.
	* srclib/Makefile.vms (INCLUDES): Add parent directory.
	(OBJECTS): Remove strtoul.obj, setenv.obj, unsetenv.obj.
	(strtoul.obj, setenv.obj, unsetenv.obj): Remove rules.
	(alloca.h): New rule.
	(canonicalize.obj): Depend on it.
	(clean): Remove alloca.h.
	* src/Makefile.vms (datadir, localedir): New variables.
	(DEFS): Also define LOCALEDIR.
	(iconv.obj): Add flags for relocatability,
	(iconv.exe): Link with libicrt. Use link_options.
	* vms/link_options.opt: New file.
	Reported by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.

2003-06-07  Bruno Haible  <bruno@clisp.org>

	Support for relocatable data files even on Woe32.
	* lib/Makefile.msvc (PICFLAGS): Also define PIC.

2003-05-22  Bruno Haible  <bruno@clisp.org>

	* Version 1.9.1 released.

2003-05-22  Bruno Haible  <bruno@clisp.org>

	* lib/genaliases.c (main): Emit %pic instead of %null-strings.
	Change type of 'name' field to 'int'.
	* lib/genaliases2.c (emit_encoding): Add a 'tag' argument. Emit an
	invocation of macro S(), including the tag and a counter.
	(main): Use the command-line argument as tag.
	* Makefile.devel (lib/aliases_aix.h, lib/aliases_osf1.h,
	lib/aliases_dos.h, lib/aliases_extra.h): Pass a tag to the program.
	* lib/iconv.c (stringpool2_t): New type.
	(stringpool2_contents): New data table.
	(stringpool2): New macro.
	(sysdep_aliases): Make position-independent. Move #includes out to
	aliases2.h.
	(aliases2_lookup): Update.
	(nalias): New type.
	(compare_by_index): Use 'struct nalias' instead of 'struct alias'.
	(iconvlist): Convert 'struct alias' to 'struct nalias' while copying.
	* lib/aliases2.h: New file, extracted from lib/iconv.c.

2003-05-20  Bruno Haible  <bruno@clisp.org>

	* lib/iconv.c (iconvlist): Test p->name against NULL, not against "".
	Reported by Muraoka Taro <koron@tka.att.ne.jp>.

2003-05-19  Bruno Haible  <bruno@clisp.org>

	* windows/iconv.rc: Include <winver.h>.
	Reported by Perry Rapp.

2003-05-18  Bruno Haible  <bruno@clisp.org>

	* Version 1.9 released.

2003-05-18  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.in (libiconv_plug_osf.so): Avoid using LIBTOOL_LINK.

2003-05-18  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.msvc (DEBUGFLAGS): New variable.
	(iconv.lib): Use it.
	* src/Makefile.msvc (DEBUGFLAGS): New variable.
	* tests/Makefile.msvc (DEBUGFLAGS): New variable.

2003-05-17  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.msvc (libdir, datadir, localedir): New variables.
	(IIlibdir, IIdatadir, IIlocaledir): New variables.
	(CFLAGS): Define LOCALEDIR.
	(iconv_no_i18n.exe): New rule.
	(all): Depend on it.
	* tests/check-stateful.bat: Invoke iconv_no_i18n instead of iconv.
	* tests/check-translit.bat: Likewise.

2003-05-16  Bruno Haible  <bruno@clisp.org>

	* lib/genaliases.c (main): Emit declarations for gperf-3.0.
	* Makefile.devel (lib/aliases.h): Remove gperf command line options;
	add new option "-m 10" for gperf-3.0.

2003-05-12  Bruno Haible  <bruno@clisp.org>

	* m4/error.m4: Update from gettext.

2003-05-12  Bruno Haible  <bruno@clisp.org>

	* configure.in: Invoke AC_GNU_SOURCE and jm_FUNC_GLIBC_UNLOCKED_IO.

2003-05-12  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.msvc (PICFLAGS, CFLAGS): Move BUILDING_* macros from
	CFLAGS to PICFLAGS.

2003-05-09  Bruno Haible  <bruno@clisp.org>

	* srclib/error.c: Update from gnulib with modifications.
	* srclib/unlocked-io.h: New file, from gnulib.
	* m4/strerror_r.m4: New file, from gnulib.
	* m4/unlocked-io.m4: New file, from gnulib.
	* Makefile.devel (aclocal.m4): Depend on them.

2003-05-08  Bruno Haible  <bruno@clisp.org>

	* Makefile.msvc (IIPREFIX): New variable.
	* srclib/Makefile.msvc (INCLUDES): Add -I..\windows.
	* src/Makefile.msvc (IIPREFIX, IIprefix, IIexec_prefix, IIbindir,
	IIincludedir): New variables.
	(INCLUDES): Add -I..\windows.
	(iconv.exe): Define INSTALLPREFIX and INSTALLDIR. Link with
	../srclib/icrt.lib.
	Patches by Perry Rapp.

2003-05-07  Bruno Haible  <bruno@clisp.org>

	* README.woe32: Fix instructions for step 1.
	* srclib/Makefile.msvc (OBJECTS): Remove strtoul.obj.
	(strtoul.obj): Remove rule.
	Reported by Perry Rapp.

2003-05-07  Bruno Haible  <bruno@clisp.org>

	* Makefile.vms: New file.
	* lib/Makefile.vms: New file.
	* srclib/Makefile.vms: New file.
	* src/Makefile.vms: New file.
	* man/Makefile.vms: New file.
	* tests/Makefile.vms: New file.
	* Makefile.devel (config.h_vms, lib/config.h_vms, include/iconv.h_vms):
	New rules.
	(all): Depend on them.

2003-05-07  Bruno Haible  <bruno@clisp.org>

	* srclib/Makefile.msvc (OBJECTS): Remove findprog.obj.
	(findprog.obj): Remove rule.
	* src/Makefile.msvc (includedir): New variable.

2003-05-06  Bruno Haible  <bruno@clisp.org>

	* lib/translit.def: Upgrade to Unicode 4.0.

2003-05-06  Bruno Haible  <bruno@clisp.org>

	* srclib/Makefile.am (DEFS): Fix spelling of DEPENDS_ON_LIBICONV.
	* srclib/Makefile.msvc (CFLAGS): Likewise.

	* srclib/Makefile.msvc (INCLUDES): Add -I.. .
	Reported by Perry Rapp.

	* Makefile.msvc (config.h): New rule.
	(all): Depend on it.
	(mostlyclean, clean, distclean, maintainer-clean): Erase config.h.
	Reported by Perry Rapp.

2003-05-06  Bruno Haible  <bruno@clisp.org>

	* autoconf/config.guess: Update to GNU version 2003-02-22.
	* autoconf/config.sub: Likewise.

2003-05-06  Bruno Haible  <bruno@clisp.org>

	* m4/lib-link.m4: Update from GNU gettext.
	* autoconf/config.rpath: Update from GNU gettext.

	* m4/libtool.m4: Update from GNU gettext, based on libtool-1.5.
	* autoconf/ltmain.sh: Update from GNU gettext, based on libtool-1.5.

	* m4/gettext.m4: Update from GNU gettext.
	* m4/nls.m4: Update from GNU gettext.
	* m4/po.m4: Update from GNU gettext.
	* Makefile.devel (aclocal.m4): Depend on m4/nls.m4 and m4/po.m4.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	Support for OpenVMS 7.3.
	* lib/iconv.c (USE_OSF1): Define also on VMS.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	Better support for FreeBSD.
	* lib/encodings.def (ISO8859-{1,2,3,4,5,6,7,8,9,10,13,14,15,16): New
	aliases, for compatibility with earlier FreeBSD iconv implementation
	by Konstantin Chuguev.
	* lib/iconv.c (iconv_open, iconv, iconv_close) [FreeBSD]: Define as
	aliases.
	* src/Makefile.in (install) [FreeBSD]: Avoid installation problem.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	* configure.in (mandir): Change default value.
	* Makefile.in (datadir): New variable.
	(install, installdirs, uninstall): Pass datadir to po and man
	directories.
	* Makefile.os2 (datadir): New variable.
	(mandir): Use it instead of prefix.
	(install, uninstall): Pass datadir to man directory.
	* Makefile.msvc (mandir, docdir): Use datadir instead of prefix.
	* man/Makefile.in (datadir): New variable.
	(docdir): Use it instead of prefix.
	(install, installdirs): Update.
	* man/Makefile.os2 (datadir): New variable.
	(mandir): Use it instead of prefix.
	* man/Makefile.msvc (datadir): New variable.
	(mandir, docdir): Use it instead of prefix.
	(install, installdirs): Update.

2003-04-06  Bruno Haible  <bruno@clisp.org>

	Make it possible to build with or without libintl support on Woe32.
	* Makefile.devel (config.h.msvc): Remove ENABLE_NLS.
	* Makefile.msvc (NO_NLS): New variable.
	* srclib/Makefile.msvc (NO_NLS): New variable.
	(CFLAGS, INCLUDES): Use them.
	* src/Makefile.msvc (NO_NLS): New variable.
	(NLSFLAGS, INCINTL, LIBINTL): New variables.
	(CFLAGS, INCLUDES, iconv.exe): Use them.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	* lib/loop_unicode.h (unicode_transliterate): When the Hangul or
	variants transliteration failed with RET_ILUNI, don't return
	RET_TOOSMALL.
	Reported by the FreeBSD porters.

2003-04-06  Bruno Haible  <bruno@clisp.org>

	* srclib/binary-io.h: New file, from GNU gettext.
	* src/iconv.c: Include it.
	(O_BINARY, O_TEXT, SET_BINARY): Remove definitions.

2003-04-05  Bruno Haible  <bruno@clisp.org>

	Support for relocatable installation.
	* m4/alloca.m4: New file, from GNU gettext.
	* m4/canonicalize.m4: New file, from GNU gettext.
	* m4/error.m4: New file, from GNU gettext.
	* m4/onceonly.m4: New file, from GNU gettext.
	* m4/pathmax.m4: New file, from GNU gettext.
	* m4/relocatable.m4: New file, from GNU gettext.
	* m4/setenv.m4: New file, from GNU gettext.
	* m4/stdbool.m4: New file, from GNU gettext.
	* m4/strerror.m4: New file, from GNU gettext.
	* m4/xreadlink.m4: New file, from GNU gettext.
	* autoconf/config.libpath: New file, from GNU gettext.
	* autoconf/install-reloc: New file, from GNU gettext.
	* autoconf/reloc-ldflags: New file, from GNU gettext.
	* autoconf/missing: New file, from GNU automake 1.7.3.
	* lib/relocatable.h: New file, from GNU gettext.
	* lib/relocatable.c: New file, from GNU gettext.
	* srclib/alloca.c: New file, from GNU gettext.
	* srclib/alloca_.h: New file, from GNU gettext.
	* srclib/canonicalize.c: New file, from GNU gettext.
	* srclib/canonicalize.h: New file, from GNU gettext.
	* srclib/error.c: New file, from GNU gettext.
	* srclib/error.h: New file, from GNU gettext.
	* srclib/exit.h: New file, from GNU gettext.
	* srclib/gettext.h: New file, from GNU gettext.
	* srclib/memmove.c: New file, from GNU gettext.
	* srclib/pathmax.h: New file, from GNU gettext.
	* srclib/progname.c: New file, from GNU gettext.
	* srclib/progname.h: New file, from GNU gettext.
	* srclib/progreloc.c: New file, from GNU gettext.
	* srclib/relocatable.c: New file, from GNU gettext.
	* srclib/relocatable.h: New file, from GNU gettext.
	* srclib/relocwrapper.c: New file, from GNU gettext.
	* srclib/setenv.c: New file, from GNU gettext.
	* srclib/setenv.h: New file, from GNU gettext.
	* srclib/stdbool.h.in: New file, from GNU gettext.
	* srclib/strerror.c: New file, from GNU gettext.
	* srclib/unsetenv.c: New file, from GNU gettext.
	* srclib/xmalloc.c: New file, from GNU gettext.
	* srclib/xmalloc.h: New file, from GNU gettext.
	* srclib/xreadlink.c: New file, from GNU gettext.
	* srclib/xreadlink.h: New file, from GNU gettext.
	* srclib/xstrdup.c: New file, from GNU gettext.
	* srclib/Makefile.am: New file.
	* srclib/Makefile.msvc: New file.
	* windows/alloca.h: New file, from GNU gettext.
	* windows/stdbool.h: New file, from GNU gettext.
	* configure.in (AC_CONFIG_HEADERS): Replace src/config.h with config.h.
	Add AC_RELOCATABLE, AC_HEADER_STDC, AC_CHECK_HEADERS(stddef.h stdlib.h
	string.h), AC_CHECK_FUNCS(getc_unlocked), AC_REPLACE_FUNCS(memmove),
	AM_LANGINFO_CODESET, gl_FUNC_ALLOCA, gl_CANONICALIZE,
	gt_FUNC_ERROR_AT_LINE, gl_PATHMAX, gt_FUNC_SETENV, gt_STDBOOL_H,
	gl_FUNC_STRERROR, gl_XREADLINK, AC_OUTPUT(srclib/Makefile).
	* lib/config.h.in: Add HAVE_GETC_UNLOCKED, HAVE_LANGINFO_CODESET,
	HAVE_SETLOCALE, HAVE_STDDEF_H, HAVE_STDLIB_H, HAVE_STRING_H, for
	localcharset.c. Add ENABLE_RELOCATABLE, INSTALLPREFIX, for
	relocatable.c.
	* lib/Makefile.in (DEFS): New variable.
	(SOURCES): Add localcharset.c and relocatable.c.
	(OBJECTS): Add localcharset.lo and relocatable.lo.
	(LIBCHARSET_OBJECTS): Remove variable.
	(libiconv_plug_linux.so, libiconv_plug_solaris.so,
	libiconv_plug_osf.so): Use $(DEFS). Don't use $(LIBCHARSET_OBJECTS).
	(iconv.lo): Use $(DEFS).
	(localcharset.lo, relocatable.lo): New rules.
	* lib/Makefile.msvc (CFLAGS): Define HAVE_CONFIG_H, BUILDING_DLL,
	ENABLE_RELOCATABLE, IN_LIBRARY, INSTALLDIR, NO_XMALLOC,
	set_relocation_prefix, relocate. Remove $(PICFLAGS).
	(INCLUDES): Simplify.
	(SOURCES): Remove variable.
	(OBJECTS): Add localcharset.obj and relocatable.obj.
	(LIBCHARSET_OBJECTS): Remove variable.
	(iconv.obj): Add $(PICFLAGS).
	(localcharset.obj, relocatable.obj): New rules.
	(iconv.lib): Drop $(LIBCHARSET_OBJECTS).
	* include/iconv.h.in (libiconv_set_relocation_prefix): New declaration.
	* src/gettext.h: Remove file.
	* src/iconv.c: Include progname.h and relocatable.h.
	(ICONV_CONST): Define to const if the system has no iconv.
	(main): Invoke set_program_name. Relocate LOCALEDIR.
	* src/Makefile.in (top_srcdir): New variable.
	(INCLUDES): Add .. and ../srclib.
	(iconv_no_i18n, iconv): Link with ../srclib/libicrt.a.
	(iconv_no_i18n.@OBJEXT@, iconv.@OBJEXT@): Define INSTALLDIR.
	(RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR,
	RELOCATABLE_CONFIG_H_DIR, @SET_RELOCATABLE@, iconv_LDFLAGS): New
	variables.
	(iconv): Use $(iconv_LDFLAGS).
	(install): Use $(INSTALL_PROGRAM_ENV).
	(distclean): Drop removing config.h.
	* src/Makefile.msvc (INCLUDES): Add .., simplify.
	* tests/Makefile.msvc (INCLUDES): Simplify.
	* Makefile.devel (AUTOHEADER, AUTOMAKE): New variables.
	(config.h.in, srclib/Makefile.in, config.h.msvc): New rules.
	(all): Depend on them.
	(aclocal.m4) Depend also on m4/alloca.m4, m4/canonicalize.m4,
	m4/error.m4, m4/onceonly.m4, m4/pathmax.m4, m4/relocatable.m4,
	m4/setenv.m4, m4/stdbool.m4, m4/strerror.m4, m4/xreadlink.m4.
	(lib/config.h.msvc): Additional processing.
	* Makefile.in (all, install, installdirs, uninstall, check): Recurse
	into srclib.
	(mostlyclean, clean, distclean, maintainerclean): Likewise. Remove
	lib/localcharset.h.
	(distclean, maintainerclean): Remove also config.h and some stamps.
	* Makefile.msvc (all, install, installdirs, uninstall, check,
	mostlyclean, clean, distclean, maintainerclean): Recurse into srclib.
	* INSTALL.generic: Document --enable-relocatable and
	--with-libintl-prefix. Remove the recommendation to set CPPFLAGS and
	LDFLAGS. The lib-link.m4 macros make this unnecessary.

2003-04-05  Bruno Haible  <bruno@clisp.org>

	* configure.in: Bump version number to 1.9.
	* include/iconv.h.in (_LIBICONV_VERSION): Bump.
	* windows/iconv.rc: Bump version number.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 4:0:2.

2003-04-05  Bruno Haible  <bruno@clisp.org>

	* Makefile.msvc (PREFIX): New variable.
	(prefix): Use it.
	(distclean, maintainer-clean): Drop Unix specific removals.
	* lib/Makefile.msvc (PREFIX, IIPREFIX): New variables.
	(prefix): Use it.
	(IIprefix, IIexec_prefix, IIbindir, IIlibdir): New variables.
	(clean): Drop Unix specific removal.
	* src/Makefile.msvc (PREFIX): New variable.
	(prefix): Use it.
	(clean): Drop Unix specific removal.
	(distclean): Likewise.
	* tests/Makefile.msvc (clean): Drop Unix specific removal.
	(distclean): Likewise.

2003-04-05  Bruno Haible  <bruno@clisp.org>

	* m4/endian.m4 (CL_WORDS_LITTLEENDIAN): Use 3-argument AC_DEFINE.

2003-04-05  Bruno Haible  <bruno@clisp.org>

	* m4/general.m4 (CL_CONFIG_SUBDIRS, CL_CANONICAL_HOST,
	CL_CANONICAL_HOST_CPU, CL_CANONICAL_HOST_CPU_FOR_FFCALL): Remove
	macros.
	* m4/gettext.m4: Update from GNU gettext.
	* m4/iconv.m4: Update from GNU gettext.
	* m4/lcmessage.m4: Update from GNU gettext.
	* m4/progtest.m4: Update from GNU gettext.
	* m4/libtool.m4: Update from GNU gettext.
	2003-02-16  Bruno Haible  <bruno@clisp.org>
		Workaround autoconf >= 2.52 breakage.
		* libtool.m4 (AC_LIBTOOL_ARG_WITH): New macro.
		(_LT_AC_LTCONFIG_HACK, AC_PROG_LD): Use it.
	* autoconf/ltmain.sh: Update from GNU gettext.
	2003-02-18  Bruno Haible  <bruno@clisp.org>
		Fix the 2002-09-16 fix.
		* ltmain.sh (install): If "ln -s -f" fails (this is the case
		with /usr/bin/ln on Solaris 2.7), fall back to "rm && ln -s".

2003-04-05  Bruno Haible  <bruno@clisp.org>

	Start using automake.
	* configure.in: Add AM_INIT_AUTOMAKE invocation.
	(PACKAGE, VERSION): Remove.
	Use AC_CANONICAL_HOST instead of CL_CANONICAL_HOST.
	Use AC_PROG_LN_S instead of CL_PROG_LN_S.
	Use AC_PROG_RANLIB instead of CL_PROG_RANLIB.
	Reorder so that AC_CANONICAL_HOST comes early but still after
	AC_PROG_CC.
	* m4/ranlib.m4: Remove file.
	* m4/libtool.m4: Undo AC_ -> CL_ substitutions.
	* Makefile.devel (CLISP_DIR): Comment out.
	(AUTOCONF_FILES): Change to aclocal.m4.
	(aclocal.m4): Renamed from autoconf/aclocal.m4. Update dependencies.
	(configure.in): Drop --include option.

2003-03-17  Bruno Haible  <bruno@clisp.org>

	Improved MSVC support.
	* Makefile.msvc (prefix): Use less Unixy value.
	(local_prefix): Remove variable.
	(libdir, includedir, mandir): Use backslashes.
	(bindir, datadir, localedir, docdir): New variables.
	(INSTALL, INSTALL_PROGRAM, INSTALL_DATA): New variables.
	(all): Recurse into po/ and man/.
	(install, installdirs, uninstall): Rewritten.
	(check, mostlyclean, clean, distclean, maintainer-clean): Recurse
	into po/ and man/.
	* lib/Makefile.msvc (prefix): Use less Unixy value.
	(local_prefix): Remove variable.
	(libdir): Use backslashes.
	(bindir): New variable.
	(INSTALL, INSTALL_PROGRAM, INSTALL_DATA): Set to real values.
	(RESOURCES): Enable iconv.res.
	(install, installdirs, uninstall): New rules.
	(clean): Remove config.h.
	(distclean): Don't remove config.h here.
	* src/Makefile.msvc (prefix, exec_prefix, bindir): New variables.
	(INSTALL, INSTALL_PROGRAM, INSTALL_DATA): New variables.
	(install, installdirs, uninstall): New rules.
	* man/Makefile.msvc: New file.
	* tests/Makefile.msvc (install, installdirs, uninstall): New rules.
	* Makefile.devel (all): Depend on po/Makefile.msvc.
	(po/Makefile.msvc): New rule.
	* windows/iconv.rc: Update.
	* README.woe32: Mention automatic installation command.

	Rename libcharset.h to localcharset.h.
	* lib/iconv.c: Include localcharset.h, not libcharset.h.
	* Makefile.in (lib/localcharset.h): Renamed from lib/libcharset.h.
	(all, install): Update dependencies.
	(all): Create lib/localcharset.h, not lib/libcharset.h.
	(mostlyclean, clean, distclean, maintainer-clean): Remove
	lib/localcharset.h, not lib/libcharset.h.
	* djgpp/README.in, djgpp/README: Update.
	* djgpp/config.bat: Update.
	* djgpp/config.sed: Update.
	* djgpp/fnchange.in, djgpp/fnchange.lst: Update.

2003-01-31  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (all): Don't do the chmod if it has already been
	done.

2003-01-31  Bruno Haible  <bruno@clisp.org>

	* lib/loop_unicode.h (unicode_transliterate): Enable recursive
	transliteration. Idea from Perry Rapp.
	* lib/gentranslit.c (main): Change bound from 0x10000 to 0x110000.
	Change element type of translit_data to 'unsigned int'.
	* lib/translit.def: Many new transliterations, mostly taken from glibc.
	* lib/translit.h: Regenerated.
	* tests/Translit1.ISO-8859-1, tests/Translit1.ASCII: New files.
	* tests/Makefile.in (check): Add Translit1 check.
	* tests/Makefile.msvc (check): Likewise.
	* tests/Makefile.os2 (check): Likewise.
	* tests/TranslitFail1.ISO-8859-1: Choose a sentence which the new
	improved transliteration cannot do.

2003-02-14  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (AUTOCONF): Switch to autoconf-2.57.
	(configure): Update rule.

2003-01-03  Albert Chin  <libtool@thewrittenword.com>

	* autoconf/ltmain.sh: Don't pass -R flags found in a .la's
	dependency_libs variable directly down to the linker.
	Reported by Tim Mooney <mooney@dogbert.cc.ndsu.nodak.edu>.

2003-01-01  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (install): Use libiconv.la in ../lib, not in
	$(libdir), so that installing with DESTDIR works.
	Reported by Michael Adams <michael@michaeladams.org>.

2003-01-01  Bruno Haible  <bruno@clisp.org>

	* Makefile.in (mkinstalldirs): New variable.
	(install-lib, install, installdirs): Use it instead of mkdir.
	* lib/Makefile.in (mkinstalldirs): New variable.
	(install-lib, install, installdirs): Use it instead of mkdir.
	* man/Makefile.in (mkinstalldirs): New variable.
	(install, installdirs): Use it instead of mkdir.
	* src/Makefile.in (mkinstalldirs): New variable.
	(install, installdirs): Use it instead of mkdir.

2002-09-27  Bruno Haible  <bruno@clisp.org>

	* autoconf/mkinstalldirs: Upgrade to automake-1.7.2 version.

2002-11-07  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Upgrade to libtool-1.4.3.
	* autoconf/ltmain.sh: Upgrade to libtool-1.4.3.

2002-07-14  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4 (_LT_AC_LTCONFIG_HACK): Add support for GNU/FreeBSD.

2002-06-12  Bruno Haible  <bruno@clisp.org>

	* configure.in: Use new AC_* names of libtool macros. Invoke
	AC_LIBTOOL_WIN32_DLL.

2002-12-19  Bruno Haible  <bruno@clisp.org>

	* lib/Makefile.in (libiconv_plug_solaris.so): Change rule if using gcc.
	Reported by Henry Nelson <henry@irm.nara.kindai.ac.jp>.

2002-11-07  Bruno Haible  <bruno@clisp.org>

	Make "make install" without prior "make" work.
	* Makefile.in (lib/libcharset.h): New rule.
	(all, install): Depend on it.
	Reported by Martin Mokrejš <mmokrejs@natur.cuni.cz>.

2002-10-28  Bruno Haible  <bruno@clisp.org>

	* man/Makefile.in (install): Change directory back to the working
	directory, so that install-sh (which may be a relative pathname) is
	found in the right place.

2002-09-16  Bruno Haible  <bruno@clisp.org>

	* autoconf/ltmain.sh (install): Use "ln -s -f" instead of
	"rm -f && ln -s" to make a symlink for a shared library.
	Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.

2002-09-02  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (main): Don't call bindtextdomain if !ENABLE_NLS.

2002-08-16  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (main): Perform fflush before testing ferror(stdout).

2002-05-29  Bruno Haible  <bruno@clisp.org>

	* Version 1.8 released.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	* lib/c99.h: New file.
	* lib/converters.h: Include it.
	* lib/encodings.def (C99): New encoding.
	* README, man/iconv_open.3: Document C99 encoding.

2002-05-26  Bruno Haible  <bruno@clisp.org>

	* lib/java.h (java_mbtowc): Accept 12-byte sequences for non-BMP
	characters.
	(java_wctomb): Produce 12-byte sequences for non-BMP characters.

2002-05-29  Bruno Haible  <bruno@clisp.org>

	Fix installation of iconv program when linked with a libintl that was
	built against an earlier libiconv.
	* src/iconv.c: Conditionally disable NLS.
	* src/iconv_no_i18n.c: New file.
	* src/Makefile.in (libdir): New variable.
	(all): Depend on iconv_no_i18n, iconv.@OBJEXT@ but not iconv. Make
	directory writable, so iconv executable can be created during "make
	install".
	(iconv): Remove rule.
	(iconv_no_i18n, iconv_no_i18n.@OBJEXT@): New rules.
	(install): Link iconv now, after the new libiconv.so is installed.
	(clean): Also remove iconv_no_i18n.
	* tests/Makefile.in: (check, check-extra-yes): Depend on iconv_no_i18n,
	not iconv.
	* tests/check-stateful: Use iconv_no_i18n, not iconv.
	* tests/check-translit: LIkewise.
	* tests/check-translitfailure: Likewise.

2002-05-29  Bruno Haible  <bruno@clisp.org>

	* configure.in: Call AC_PROG_INSTALL instead of CL_PROG_INSTALL.
	* m4/install.m4: Remove file.
	* Makefile.devel (autoconf/aclocal.m4): Don't depend on m4/install.m4.

2002-05-24  Bruno Haible  <bruno@clisp.org>

	* lib/jisx0213.h: Use 'inline' only conditionally.

2002-05-18  Bruno Haible  <bruno@clisp.org>

        * configure.in (AC_INIT), include/iconv.h.in (_LIBICONV_VERSION),
	README, windows/iconv.rc, djgpp/README, djgpp/fnchange.lst:
        Bump version number.
        * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 3:0:1.

2002-02-06  Bruno Haible  <bruno@clisp.org>

	* autoconf/ltmain.sh: Upgrade from libtool-1.4 to libtool-1.4.2.

2002-02-02  Bruno Haible  <bruno@clisp.org>

	* autoconf/ltmain.sh: Add DESTDIR support on ELF systems.

2001-11-03  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/ltmain.sh: chmod 777 the .libs directory, so that
	"make install" succeeds.

2002-05-18  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (iconv): Remove the -liconv dependency of -lintl
	from the command line. Needed to ensure that the new libiconv version
	is used on FreeBSD.

2002-05-14  Bruno Haible  <bruno@clisp.org>

	Implement and document CP853, TDS565, RISCOS-LATIN1.
	* tools/Makefile (ALL): Add cp853.h, tds565.h, riscos1.h.
	(cp853.h, tds565.h, riscos1.h): New rules.
	* lib/cp853.h: New file.
	* lib/tds565.h: New file.
	* lib/riscos1.h: New file.
	* lib/converters.h: Include them.
	* lib/encodings_dos.def (CP853): New encoding.
	* lib/encodings_extra.def (TDS565, RISCOS-LATIN1): New encodings.
	* README, man/iconv_open.3: Add CP853, TDS565, RISCOS-LATIN1.
	* tests/Makefile.in (check-extra-yes): Check CP853, TDS565,
	RISCOS-LATIN1.
	* tests/Makefile.msvc (check): Check CP853.
	* tests/CP853.TXT: New file.
	* tests/TDS565.TXT: New file.
	* tests/RISCOS-LATIN1.TXT: New file.

	* lib/cp860.h (cp860_wctomb): Optimize.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* tools/Makefile (ksc5601.h): Add two extra characters.
	* lib/ksc5601.h: Regenerated.
	* tests/EUC-KR.TXT: Add EURO SIGN and REGISTERED SIGN.
	* tests/CP949.TXT: Likewise.
	* tests/JOHAB.TXT: Likewise.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* README: Mention extra encodings.
	* man/iconv_open.3: Likewise. Improve formatting in text and html
	output formats.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* tests/SHIFT_JIS.TXT: Renamed from tests/SHIFT-JIS.TXT.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (AUTOCONF): New variable.
	(AUTOCONF_FILES): Remove autoconf/autoconf.m4f.
	(configure): Use the AUTOCONF variable.
	* autoconf/autoconf: Remove file.
	* autoconf/autoconf.m4: Remove file.
	* autoconf/autoconf.m4f: Remove file.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* tools/JISX0213.TXT: New file.
	* tools/cjk_tab_to_h.c (do_jisx0213): New function.
	(main): Accept "jisx0213".
	* tools/Makefile (all): Add jisx0213.h.
	(jisx0213.h): New rule.
	* lib/jisx0213.h: New file, generated by cjk_tab_to_h.
	* lib/euc_jisx0213.h: New file.
	* lib/shift_jisx0213.h: New file.
	* lib/iso2022_jp3.h: New file.
	* lib/converters.h: Include them.
	* lib/encodings_extra.def (EUC-JISX0213, SHIFT_JISX0213,
	ISO-2022-JP-3): New encodings.
	* tests/EUC-JISX0213.TXT: New file.
	* tests/SHIFT_JISX0213.TXT: New file.
	* tests/ISO-2022-JP-3-snippet: New file.
	* tests/ISO-2022-JP-3-snippet.UTF-8: New file.
	* tests/Makefile.in (check-extra): Also check EUC-JISX0213,
	SHIFT_JISX0213, ISO-2022-JP-3.
	* tests/check-stateless: Add support for encodings which contain
	precomposed Unicode characters, by eliminating precomposed characters
	before the comparison.
	* tests/table-from.c (main): Fix usage message.
	* tests/table-to.c (main): Make it work for encodings for which the
	"to" direction is stateful.

2002-05-09  Bruno Haible  <bruno@clisp.org>

	New configure option --enable-extra-encodings.
	* lib/encodings_extra.def: New file.
	* lib/converters.h: Handle USE_EXTRA.
	* lib/genaliases2.c (main): Handle USE_EXTRA.
	* lib/genflags.c: Define USE_EXTRA.
	(main): Include encodings_extra.def.
	* lib/iconv.c: Handle ENABLE_EXTRA, conditionally set USE_EXTRA.
	Handle USE_EXTRA.
	* lib/config.h.in (ENABLE_EXTRA): New macro.
	* configure.in: Accept option --enable-extra-encodings.
	* Makefile.devel (all): Depend on lib/aliases_extra.h.
	(lib/aliases_extra.h): New rule.
	(lib/flags.h): Depend on lib/encodings_extra.def.
	* tests/Makefile.in (check-extra, check-extra-no, check-extra-yes):
	New rules.
	(check): Invoke check-extra.
	* tests/Makefile.msvc (check): Also check the DOS encodings.

	Support for testing the AIX encodings.
	* tests/CP856.TXT: New file.
	* tests/CP922.TXT: New file.
	* tests/CP1046.TXT: New file.
	* tests/CP1124.TXT: New file.
	* tests/CP1129.TXT: New file.
	* tests/CP1161.TXT, tests/CP1161.IRREVERSIBLE.TXT: New files.
	* tests/CP1162.TXT: New file.
	* tests/CP1163.TXT, tests/CP1163.IRREVERSIBLE.TXT: New files.

	Support for testing the OSF/1 encodings.
	* tests/DEC-KANJI.TXT: New file.
	* tests/DEC-HANYU.TXT, tests/DEC-HANYU.IRREVERSIBLE.TXT: New files.

	Support for testing the DOS encodings.
	* tests/CP437.TXT: New file.
	* tests/CP737.TXT: New file.
	* tests/CP775.TXT: New file.
	* tests/CP852.TXT: New file.
	* tests/CP855.TXT: New file.
	* tests/CP857.TXT: New file.
	* tests/CP858.TXT: New file.
	* tests/CP860.TXT: New file.
	* tests/CP861.TXT: New file.
	* tests/CP863.TXT: New file.
	* tests/CP864.TXT: New file.
	* tests/CP865.TXT: New file.
	* tests/CP869.TXT: New file.
	* tests/CP1125.TXT: New file.

2002-05-09  Bruno Haible  <bruno@clisp.org>

	Implement more ASCII compatible DOS encodings.
	* tools/Makefile (ALL): Add cp737.h, cp858.h, cp860.h, cp863.h.
	(cp737.h, cp858.h, cp860.h, cp863.h): New rules.
	* lib/cp737.h: New file.
	* lib/cp858.h: New file.
	* lib/cp860.h: New file.
	* lib/cp863.h: New file.
	* lib/converters.h: Include them.
	* lib/encodings_dos.def (CP737, CP858, CP860, CP863): New encodings.

2002-05-09  Bruno Haible  <bruno@clisp.org>

	Implement new ASCII compatible encodings from IBM.
	* tools/Makefile (ALL): Add cp1161.h, cp1162.h, cp1163.h.
	(cp1161.h, cp1162.h, cp1163.h): New rules.
	* lib/cp1161.h: New file.
	* lib/cp1162.h: New file.
	* lib/cp1163.h: New file.
	* lib/converters.h: Include them.
	* lib/encodings_aix.def (CP1161, CP1162, CP1163): New encodings.

2002-05-09  Bruno Haible  <bruno@clisp.org>

	Implement and document KOI8-T.
	* tools/Makefile (ALL): Add koi8_t.h.
	(koi8_t.h): New rule.
	* lib/koi8_t.h: New file.
	* lib/converters.h: Include it.
	* lib/encodings.def (KOI8-T): New encoding.
	* README, man/iconv_open.3: Add KOI8-T.
	* tests/Makefile.in (tests): Check KOI8-T.
	* tests/Makefile.os2 (tests): Likewise.
	* tests/Makefile.msvc (tests): Likewise.
	* tests/KOI8-T.TXT: New file.

2002-05-09  Bruno Haible  <bruno@clisp.org>

	* tools/8bit_tab_to_h.c (main): Update copyright year.
	* tools/cjk_variants.c (main): Likewise.

2002-05-08  Bruno Haible  <bruno@clisp.org>

	* README.woe32: Renamed from README.win32.

2002-05-08  Bruno Haible  <bruno@clisp.org>

	* lib/iconv.c: Enable DOS encodings also when compiling for Woe32,
	because the Woe32 consoles use them.

2002-05-04  Bruno Haible  <bruno@clisp.org>

	* lib/loop_unicode.h (unicode_loop_convert): When quitting the loop
	without writing an output character, restore cd->istate to its value
	before the xxx_mbtowc call. Otherwise we lose some characters during
	CP1255/CP1258/TCVN to Unicode conversion.
	(unicode_loop_reset): Likewise for the xxx_flushwc call.
	* tests/CP1255-snippet, tests/CP1255-snippet.UTF-8: Make the test
	files large enough to test against the bug.
	* tests/CP1258-snippet, tests/CP1258-snippet.UTF-8: Likewise.
	* tests/TCVN-snippet, tests/TCVN-snippet.UTF-8: Likewise.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* tools/Makefile (armscii_8.h): Use table from glibc-2.2.90.
	* tests/ARMSCII-8.TXT: Update to glibc-2.2.90 version.
	* tests/ARMSCII-8.IRREVERSIBLE.TXT: Remove 0x0027.
	* lib/armscii_8.h: Regenerated.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c: Include gettext.h.
	(_): New macro.
	(usage, print_version, convert, main): Internationalize.
	(main): Call setlocale, bindtextdomain, textdomain.
	* src/gettext.h: New file, from GNU gettext 0.11.2.
	* src/config.h.in: New file, needed for ENABLE_NLS.
	* src/Makefile.in (datadir, localedir): New variables.
	(iconv): Link with @LTLIBINTL@.
	(iconv.@OBJEXT@): Define LOCALEDIR.
	(distclean): Remove config.h.
	* po: New directory.
	* Makefile.in (all, install, installdirs, uninstall, check,
	mostlyclean, clean, distclean, maintainer-clean): Recurse into the po
	directory.
	* autoconf/mkinstalldirs: New file, from automake-1.5.
	* ABOUT-NLS: New file, from GNU gettext 0.11.2.
	* m4/codeset.m4: New file, from GNU gettext 0.11.2.
	* m4/gettext.m4: New file, from GNU gettext 0.11.2.
	* m4/glibc21.m4: New file, from GNU gettext 0.11.2.
	* m4/isc-posix.m4: New file, from GNU gettext 0.11.2.
	* m4/lcmessage.m4: New file, from GNU gettext 0.11.2.
	* m4/progtest.m4: New file, from GNU gettext 0.11.2.
	* configure.in: Require autoconf-2.52, needed for multiple config.h.in
	files. Use new form of AC_INIT. Invoke AM_GNU_GETTEXT.
	(PACKAGE, VERSION): Define, needed for po/Makefile.in.in.
	* lib/config.h.in (HAVE_LOCALE_H, HAVE_SETLOCALE): Remove.

2002-04-28  gettextize  <bug-gnu-gettext@gnu.org>

	* configure.in (AC_OUTPUT): Add po/Makefile.in.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* m4/eilseq.m4: Renamed from autoconf/eilseq.m4.
	* m4/mbstate_t.m4: Renamed from autoconf/mbstate_t.m4.
	* m4/general.m4: New file, from GNU clisp.
	* m4/proto.m4: New file, from GNU clisp.
	* m4/ranlib.m4: New file, from GNU clisp.
	* m4/install.m4: New file, from GNU clisp.
	* m4/cp.m4: New file, from GNU clisp.
	* m4/ln.m4: New file, from GNU clisp.
	* m4/endian.m4: New file, from GNU clisp.
	* m4/iconv.m4: New file, from GNU gettext 0.11.2.
	* m4/lib-ld.m4: New file, from GNU gettext 0.11.2.
	* m4/lib-link.m4: New file, from GNU gettext 0.11.2.
	* m4/lib-prefix.m4: New file, from GNU gettext 0.11.2.
	* autoconf/config.rpath: New file, from GNU gettext 0.11.2.
	* m4/libtool.m4: New file, based on libtool-1.4.2.
	* Makefile.devel (ACLOCAL): Remove variable.
	(ACSELECT): Remove variable.
	(OTHERMACROS): Remove variable.
	(m4/*.m4): New rules.
	(autoconf/aclocal.m4): Construct using aclocal instead of acselect.
	* configure.in: Invoke AM_ICONV instead of CL_ICONV.

2002-04-06  Bruno Haible  <bruno@clisp.org>

	Upgrade to Unicode 3.2.
	* tools/cjk_tab_to_h.c (output_title): Bump copyright year.
	(compact_large_charset2uni): Add an argument. Determine optimal shift.
	Copy modified enc->charset2uni table.
	(output_charset2uni): Deal with shift other than 8. Copy encoding, so
	as to not disturb subsequent output_uni2charset[_sparse] call.
	* lib/hkscs.h: Regenerated.
	* tests/BIG5-HKSCS.TXT: Update.
	* tests/BIG5-HKSCS.IRREVERSIBLE.TXT: Update.

2002-04-06  Bruno Haible  <bruno@clisp.org>

	Upgrade to Unicode 3.2.
	* tools/Makefile (cns11643_1.h, cns11643_2.h, cns11643_3.h,
	cns11643_4a.h, cns11643_4b.h, cns11643_5.h, cns11643_6.h,
	cns11643_7.h, cns11643_15.h, cns11643_inv.h): Use
	CNS11643-Unicode32.TXT instead of CNS11643-Unicode31.TXT.
	* lib/cns11643_3.h: Regenerated.
	* lib/cns11643_4a.h: Regenerated.
	* lib/cns11643_4b.h: Regenerated.
	* lib/cns11643_5.h: Regenerated.
	* lib/cns11643_6.h: Regenerated.
	* lib/cns11643_7.h: Regenerated.
	* lib/cns11643_15.h: Regenerated.
	* lib/cns11643_inv.h: Regenerated.
	* tests/EUC-TW.TXT: Update.

2002-01-17  Bruno Haible  <bruno@clisp.org>

	* lib/tcvn.h (tcvn_2uni_1): Make it smaller.
	(tcvn_mbtowc): Small optimization.

2002-01-13  Bruno Haible  <bruno@clisp.org>

	New options -l, -c, -s.
	* src/iconv.c (discard_unconvertible, silent): New variables.
	(usage): Document options -l, -c, -s.
	(print_one): New function.
	(convert): If silent is true, don't print error messages about the
	conversion to stderr. If discard_unconvertible is true, set the
	iconv descriptor to DISCARD_ILSEQ the first time, but make sure to
	return the same return code as when discard_unconvertible is false.
	(main): Accept options -l, -c, -s. Implement option -l.
	* man/iconv.1: Document options -l, -c, -s.

2002-01-13  Bruno Haible  <bruno@clisp.org>

	Support for "iconv -c".
	* include/iconv.h.in (ICONV_GET_DISCARD_ILSEQ): New macro.
	(ICONV_SET_DISCARD_ILSEQ): Likewise.
	* lib/converters.h (struct conv_struct): New field discard_ilseq.
	* lib/iconv.c (iconv_open): Set discard_ilseq to true if tocode
	has an "//IGNORE" suffix, and to false otherwise.
	(iconvctl): Implement ICONV_GET_DISCARD_ILSEQ, ICONV_SET_DISCARD_ILSEQ.
	* lib/loop_unicode.h (unicode_loop_convert): If discard_ilseq is
	true, skip one input character instead of returning EILSEQ.
	(unicode_loop_reset): Likewise.
	* lib/loop_wchar.h (wchar_from_loop_convert): Likewise.
	(wchar_to_loop_convert): Likewise.

2002-01-13  Bruno Haible  <bruno@clisp.org>

	Support for "iconv -l".
	* include/iconv.h.in (iconvlist): New declaration.
	* Makefile.devel (lib/aliases.h): Change gperf options.
	* lib/iconv.c (compare_by_index, compare_by_name, iconvlist): New
	functions.

2002-01-06  Bruno Haible  <bruno@clisp.org>

	* lib/loop_unicode.h (unicode_transliterate): If the transliteration
	fails due to limited output encoding, return RET_ILUNI, not
	RET_TOOSMALL. Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.
	* tests/check-translitfailure: New file.
	* tests/TranslitFail1.ISO-8859-1: New file.
	* tests/Makefile.in (check): Call check-translitfailure.

2001-12-15  Bruno Haible  <bruno@clisp.org>

        * lib/euc_jp.h (euc_jp_wctomb): Add irreversible mappings for
	Shift_JIS characters 0x5C and 0x7E.
	* tests/EUC-JP.IRREVERSIBLE.TXT: New file.

2001-12-05  Bruno Haible  <bruno@clisp.org>

	* lib/iconv.c (iconv_open): Recognize the empty encoding name. Avoid
	  endless loop if locale_charset() returns the empty string.
	* README, man/iconv_open.3: Add the empty encoding name.

2001-11-10  Bruno Haible  <haible@clisp.cons.org>

        * lib/Makefile.in (libiconv_plug_linux.so): Allow building it with a
          non-gcc compiler.

2001-10-23  Bruno Haible  <haible@clisp.cons.org>

        * tools/Makefile (cp1125.h): New target.
          (ALL): Add it.
        * lib/cp1125.h: New file.
        * lib/converters.h: Include it.
        * lib/encodings_dos.def (CP1125): New encoding.

2001-09-08  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/eilseq.m4: New file.
	* Makefile.devel (OTHERMACROS): Add it.
	* configure.in: Call AC_EILSEQ.
	* include/iconv.h.in (EILSEQ): Define to the autoconf determined value.

2001-08-25  Bruno Haible  <haible@clisp.cons.org>

	Upgrade to autoconf-2.52.
	* autoconf/autoconf: Upgrade to autoconf-2.52.
	* autoconf/acgeneral.m4: Remove file.
	* autoconf/acspecific.m4: Remove file.
	* autoconf/autoconf.m4f: New file, from autoconf-2.52.
	* autoconf/aclocal.m4: Require autoconf-2.52.
	(CL_CANONICAL_HOST): Call AC_CANONICAL_HOST. Don't cache the result,
	AC_CANONICAL_HOST does it itself. Add $SHELL in front of
	$ac_config_guess and $ac_config_sub.
	* Makefile.devel (AUTOCONF_FILES): Remove acgeneral.m4, acspecific.m4.
	Add autoconf.m4f.
	(configure): Use autoconf options -A, -l instead of -m.
	* configure.in: Use AC_CONFIG_SUBDIRS, not AC_OUTPUT_SUBDIRS.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	* autoconf/acgeneral.m4 (AC_MSG_RESULTPROTO): Remove macro.
	(AC_LANG_EXTERN): Move to aclocal.m4.
	* autoconf/aclocal.m4 (AC_LANG_EXTERN): Moved here from acgeneral.m4.
	(CL_PROTO): Use AC_MSG_RESULT directly, instead of AC_MSG_RESULTPROTO.
	(CL_SILENT): No need to pushdef AC_MSG_RESULTPROTO.

2001-08-05  Bruno Haible  <haible@clisp.cons.org>

	Make it possible to build libiconv with CC=gcc CFLAGS="-x c++".
	* lib/loop_wchar.h (wchar_to_loop_convert): Rename local variable
	'try' to 'incount'.
	* lib/Makefile.in (libiconv_plug_linux.so): Add "-x none" option
	between sources and libs.
	(libiconv_plug_solaris.so) [GCC]: Likewise.
	(libiconv_plug_osf.so) [GCC]: Likewise.
	* src/Makefile.in (iconv.@OBJEXT@): New rule.
	(iconv): Depend on it.
	(clean): Erase *.@OBJEXT@, not *.o.
	* tests/Makefile.in (table-from.@OBJEXT@): New rule.
	(table-from): Depend on it.
	(table-to.@OBJEXT@): New rule.
	(table-to): Depend on it.
	(clean): Erase *.@OBJEXT@, not *.o.

2001-07-28  Bruno Haible  <haible@clisp.cons.org>

	* tools/Makefile (iso8859_16.h): Generate from the unicode.org table.
	* lib/iso8859_16.h: Regenerated.
	* tests/ISO-8859-16.TXT: Swap the values of 0xA5 and 0xAB.

2001-07-17  Bruno Haible  <haible@clisp.cons.org>

	* configure.in (VERSION): Define. Needed by djgpp/Makefile.maint.

2001-07-03  Bruno Haible  <haible@clisp.cons.org>

	* configure.in: Also check for mbsinit.
	* lib/loop_wchar.h (mbsinit): Define to 1 if not defined.
	Needed for SCO 3.2v5.0.2.

2001-06-27  Bruno Haible  <haible@clisp.cons.org>

	* Version 1.7 released.

2001-06-27  Bruno Haible  <haible@clisp.cons.org>

	* INSTALL.generic (Particular Systems): Generalize section about
	/usr/local to "most systems".

	* lib/Makefile.in (all): Build @PLUGLIB@ before libiconv.la, because
	Solaris cc destroys iconv.o and iconv.lo while building
	libiconv_plug_solaris.so.
	(clean): Remove so_locations, left there by the OSF/1 linker.

	* lib/cp1255.h (cp1255_decomp): Use 'signed int' instead of 'int'.

	* lib/vietcomb.h (viet_decomp): Use 'unsigned int' instead of
	'unsigned short'.

	* tests/table-from.c: Include string.h.
	* tests/table-to.c: Likewise.

2001-06-26  Bruno Haible  <haible@clisp.cons.org>

	* tools/Makefile (jisx0208.h): Replace U+005C with U+FF3C.
	(jisx0212.h): Replace U+007E with U+FF5E.
	* lib/jisx0208.h: Regenerated.
	* lib/jisx0212.h: Regenerated.
	* tests/EUC-JP.TXT: Map 0xA1C0 to U+FF3C. Map 0x8FA2B7 to U+FF5E.
	* tests/EUC-JP.IRREVERSIBLE.TXT: Remove file.
	* tests/SHIFT-JIS.TXT: Map 0x815F to U+FF3C.
	* tests/CP932.TXT: Likewise.
	* tests/CP932.IRREVERSIBLE.TXT: 0x815F mapping is now reversible.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	* src/Makefile.in (iconv): Mention $(INCLUDES) before $(CFLAGS) and
	$(CPPFLAGS).
	* src/Makefile.msvc (iconv.exe): Likewise.
	* src/Makefile.os2 (iconv.exe): Likewise.
	* lib/Makefile.in (libiconv_plug_linux.so): Likewise.
	(libiconv_plug_solaris.so): Likewise.
	(libiconv_plug_osf.so): Likewise.
	(iconv.lo): Likewise.
	* lib/Makefile.msvc (iconv.obj): Likewise.
	* lib/Makefile.os2 (iconv.obj): Likewise.
	* tests/Makefile.in (table-from, table-to): Likewise.
	* tests/Makefile.msvc (table-from.exe, table-to.exe): Likewise.
	* tests/Makefile.os2 (table-from.exe, table-to.exe): Likewise.
	(genutf8.exe): Don't use $(INCLUDES).

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

        * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc:
          Bump version number.
        * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:4:0.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.devel (OTHERMACROS): Use libtool.m4 in libcharset subdir.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

        * lib/encodings.def: Make SHIFT_JIS the primary name of SJIS.

2001-06-08  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/ltmain.sh: Upgrade to libtool-1.4.
        * autoconf/ltconfig: Remove file.

2001-06-08  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/config.guess: Update to GNU version 2001-05-11.
        * autoconf/config.sub: Likewise.

2001-06-03  Bruno Haible  <haible@clisp.cons.org>

        * lib/loop_unicode.h (unicode_loop_convert): Ignore Unicode 3.1 tag
          characters if they cannot be converted.
          (unicode_loop_reset): Likewise.
        * lib/iso2022_jp2.h (STATE_TAG_NONE, STATE_TAG_LANGUAGE,
           STATE_TAG_LANGUAGE_j, STATE_TAG_LANGUAGE_ja, STATE_TAG_LANGUAGE_k,
           STATE_TAG_LANGUAGE_ko, STATE_TAG_LANGUAGE_z, STATE_TAG_LANGUAGE_zh):
          New macros.
          (SPLIT_STATE, COMBINE_STATE): Different differently for wctomb
          direction.
          (iso2022_jp2_wctomb): Keep track of Unicode 3.1 language tag.
          If "ja", prefer conversion to Japanese character sets. If "zh",
          prefer conversion to GB2312. If "ko", prefer conversion to KSC5601.

        * lib/converters.h (RET_ILUNI): Change value from 0 to -1.
          (RET_TOOSMALL): Change value from -1 to -2.
        * lib/loop_unicode.h (unicode_transliterate): Allow xxx_wctomb to
          return 0 written bytes.

2001-06-06  Bruno Haible  <haible@clisp.cons.org>

        * lib/encodings.def: Align with IANA character-set registry.
          (US-ASCII): Add alias "ANSI_X3.4-1986".
          (ISO-8859-14): Add alias "ISO-CELTIC".
          (JIS_X0208): Add alias "JIS_C6226-1983".
          (BIG5HKSCS): Add alias "BIG5-HKSCS".
        * README, man/iconv_open.3: Rename BIG5HKSCS to BIG5-HKSCS.
        * tests/Makefile.in (check): Likewise.
        * tests/Makefile.os2 (check): Likewise.
        * tests/Makefile.msvc (check): Likewise.
        * tests/BIG5-HKSCS.TXT: Renamed from BIG5HKSCS.TXT.
        * tests/BIG5-HKSCS.IRREVERSIBLE.TXT: Renamed from
          BIG5HKSCS.IRREVERSIBLE.TXT.

2001-06-02  Bruno Haible  <haible@clisp.cons.org>

        * tools/cjk_tab_to_h.c (Encoding): Add fffd field.
          (is_charset2uni_large, compact_large_charset2uni): New functions.
          (find_charset2uni_pages): Use enc->fffd instead of 0xfffd.
          (output_charset2uni): If mapping to more than the Unicode BMP,
          use an extra indirection to keep each value in 16 bits.
          (invert): Bump limit from U+10000 to U+30000.
          (output_uni2charset_dense): Likewise.
          (output_uni2charset_sparse): Likewise. If mapping to more than one
          CJK plane, use three bytes per value instead of two bytes.
          (byte_row_cns11643): Allow more than 3 CJK planes.
          (do_cns11643_only_uni2charset): Increase number of rows, to include
          plane 15. Remove plane bits hack.
          (main): Accept names cns11643_4a,4b,5,6,7,15 as well.
        * tools/Makefile (ALL): Add cns11643_4a.h, cns11643_4b.h, cns11643_5.h,
          cns11643_6.h, cns11643_7.h, cns11643_15.h.
          (cns11643_1.h, cns11643_2.h, cns11643_3.h): Use new Unicode 3.1
          derived table.
          (cns11643_4a.h, cns11643_4b.h, cns11643_5.h, cns11643_6.h,
           cns11643_7.h, cns11643_15.h): New rules.
          (cns11643_inv.h): Change title.
        * lib/cns11643_1.h: Regenerated from Unicode 3.1 derived table.
        * lib/cns11643_3.h: Likewise.
        * lib/cns11643_4a.h: New file.
        * lib/cns11643_4b.h: New file.
        * lib/cns11643_4.h: New file.
        * lib/cns11643_5.h: New file.
        * lib/cns11643_6.h: New file.
        * lib/cns11643_7.h: New file.
        * lib/cns11643_15.h: New file.
        * lib/cns11643_inv.h: Regenerated from Unicode 3.1 derived table.
          (cns11643_inv_wctomb): Return 3 bytes now.
        * lib/cns11643.h: Include cns11643_4.h, cns11643_5.h, cns11643_6.h,
          cns11643_7.h, cns11643_15.h.
          (cns11643_wctomb): Now a simple alias to cns11643_inv_wctomb. Return
          plane number starting at 1, not 0.
        * lib/dec_hanyu.h (dec_hanyu_wctomb): Update for cns11643_wctomb
          change.
        * lib/euc_tw.h (euc_tw_mbtowc): Accept CNS11643 planes 4,5,6,7,15 as
          well.
          (euc_tw_wctomb): Update for cns11643_wctomb change.
        * lib/iso2022_cn.h (iso2022_cn_wctomb): Likewise.
        * lib/iso2022_cnext.h (iso2022_cn_ext_mbtowc): Accept CNS11643 planes
          4,5,6,7 as well.
          (iso2022_cn_ext_wctomb): Update for cns11643_wctomb change.
          Try CNS11643 planes 4,5,6,7 as well.
        * tests/EUC-TW.TXT: Many additions, mostly in planes 3,4,5,6,7,15.
        * tests/EUC-TW.IRREVERSIBLE.TXT: Reflect additions to CNS11643 plane 1.
          Add U+5344.

2001-06-01  Bruno Haible  <haible@clisp.cons.org>

        * tests/table-from.c (bmp_only): New variable.
          (ucs4_decode): If bmp_only, don't return characters outside Unicode
          plane 0.
          (main): When testing UTF-8 or GB18030, set bmp_only to 1. Don't print
          a conversion line if ucs4_decode returns NULL.
        * tests/table-to.c (main): When testing encodings other than UTF-8 and
          GB18030, loop upto U+30000 instead of U+10000.

2001-05-24  Bruno Haible  <haible@clisp.cons.org>

        * lib/converters.h (mbtowc_funcs): Add flushwc member function.
        * lib/flushwc.h: New file.
        * lib/cp1255.h: Include flushwc.h.
          (cp1255_comp_table_data, cp1255_comp_table): New arrays.
          (cp1255_mbtowc): Compose base and combining characters.
          (cp1255_flushwc): New macro.
        * lib/vietcomb.h (viet_comp_table_data, viet_comp_table): New arrays.
        * lib/cp1258.h: Include flushwc.h.
          (cp1258_mbtowc): Compose base and combining characters.
          (cp1258_flushwc): New macro.
        * lib/tcvn.h: Include flushwc.h.
          (tcvn_mbtowc): Compose base and combining characters.
          (tcvn_flushwc): New macro.
        * lib/loop_unicode.h: (unicode_transliterate): New function, extracted
          from unicode_loop_convert.
          (unicode_loop_convert): Use unicode_transliterate.
          (unicode_loop_reset): Call xxx_flushwc and output the resulting
          character.
        * lib/encodings.def: Add xxx_flushwc member.
        * lib/encodings_aix.def: Likewise.
        * lib/encodings_dos.def: Likewise.
        * lib/encodings_local.def: Likewise.
        * lib/encodings_osf1.def: Likewise.
        * lib/genaliases.c: Add an argument to the DEFENCODING macro.
        * lib/genaliases2.c: Likewise.
        * lib/genflags.c: Likewise.
        * lib/iconv.c: Likewise.
        * tests/table-from.c (try): Reset the iconv descriptor before the main
          call, and flush it afterwards.
          (ucs4_decode): New function.
          (main): Allow up to 3 Unicode characters output. Call ucs4_decode.
        * tests/CP1255-snippet: New file.
        * tests/CP1255-snippet.UTF-8: New file.
        * tests/CP1258-snippet: New file.
        * tests/CP1258-snippet.UTF-8: New file.
        * tests/TCVN-snippet: New file.
        * tests/TCVN-snippet.UTF-8: New file.
        * tests/Makefile.in (check): Check combining behaviour of CP1255,
          CP1258, TCVN.
        * tests/Makefile.msvc (check): Likewise.
        * tests/Makefile.os2 (check): Likewise.

2001-05-22  Bruno Haible  <haible@clisp.cons.org>

        * lib/converters.h (RET_ILUNI): New macro.
          (RET_ILSEQ): Change value to -1.
          (RET_TOOFEW): Change value.
        * lib/loop_unicode.h (unicode_loop_convert): Write RET_ILUNI instead
          of 0. Update handling of xxx_mbtowc return value.
        * lib/genflags.c (emit_encoding): Likewise.
        * lib/ascii.h (ascii_wctomb): Use RET_ILUNI instead of RET_ILSEQ.
        * lib/armscii_8.h (armscii_8_wctomb): Likewise.
        * lib/big5.h (big5_wctomb): Likewise.
        * lib/big5hkscs.h (big5hkscs_wctomb): Likewise.
        * lib/ces_big5.h (ces_big5_wctomb): Likewise.
        * lib/ces_gbk.h (ces_gbk_wctomb): Likewise.
        * lib/cns11643.h (cns11643_wctomb): Likewise.
        * lib/cns11643_inv.h (cns11643_inv_wctomb): Likewise.
        * lib/cp437.h (cp437_wctomb): Likewise.
        * lib/cp775.h (cp775_wctomb): Likewise.
        * lib/cp850.h (cp850_wctomb): Likewise.
        * lib/cp852.h (cp852_wctomb): Likewise.
        * lib/cp855.h (cp855_wctomb): Likewise.
        * lib/cp856.h (cp856_wctomb): Likewise.
        * lib/cp857.h (cp857_wctomb): Likewise.
        * lib/cp861.h (cp861_wctomb): Likewise.
        * lib/cp862.h (cp862_wctomb): Likewise.
        * lib/cp864.h (cp864_wctomb): Likewise.
        * lib/cp865.h (cp865_wctomb): Likewise.
        * lib/cp866.h (cp866_wctomb): Likewise.
        * lib/cp869.h (cp869_wctomb): Likewise.
        * lib/cp874.h (cp874_wctomb): Likewise.
        * lib/cp922.h (cp922_wctomb): Likewise.
        * lib/cp932ext.h (cp932ext_wctomb): Likewise.
        * lib/cp932.h (cp932_wctomb): Likewise.
        * lib/cp936ext.h (cp936ext_wctomb): Likewise.
        * lib/cp949.h (cp949_wctomb): Likewise.
        * lib/cp950ext.h (cp950ext_wctomb): Likewise.
        * lib/cp950.h (cp950_wctomb): Likewise.
        * lib/cp1046.h (cp1046_wctomb): Likewise.
        * lib/cp1124.h (cp1124_wctomb): Likewise.
        * lib/cp1129.h (cp1129_wctomb): Likewise.
        * lib/cp1133.h (cp1133_wctomb): Likewise.
        * lib/cp1250.h (cp1250_wctomb): Likewise.
        * lib/cp1251.h (cp1251_wctomb): Likewise.
        * lib/cp1252.h (cp1252_wctomb): Likewise.
        * lib/cp1253.h (cp1253_wctomb): Likewise.
        * lib/cp1254.h (cp1254_wctomb): Likewise.
        * lib/cp1255.h (cp1255_wctomb): Likewise.
        * lib/cp1256.h (cp1256_wctomb): Likewise.
        * lib/cp1257.h (cp1257_wctomb): Likewise.
        * lib/cp1258.h (cp1258_wctomb): Likewise.
        * lib/dec_hanyu.h (dec_hanyu_wctomb): Likewise.
        * lib/dec_kanji.h (dec_kanji_wctomb): Likewise.
        * lib/euc_cn.h (euc_cn_wctomb): Likewise.
        * lib/euc_jp.h (euc_jp_wctomb): Likewise.
        * lib/euc_kr.h (euc_kr_wctomb): Likewise.
        * lib/euc_tw.h (euc_tw_wctomb): Likewise.
        * lib/gb12345ext.h (gb12345ext_wctomb): Likewise.
        * lib/gb12345.h (gb12345_wctomb): Likewise.
        * lib/gb18030ext.h (gb18030ext_wctomb): Likewise.
        * lib/gb18030.h (gb18030_wctomb): Likewise.
        * lib/gb18030uni.h (gb18030uni_wctomb): Likewise.
        * lib/gb2312.h (gb2312_wctomb): Likewise.
        * lib/gbkext_inv.h (gbkext_inv_wctomb): Likewise.
        * lib/gbk.h (gbk_wctomb): Likewise.
        * lib/georgian_academy.h (georgian_academy_wctomb): Likewise.
        * lib/georgian_ps.h (georgian_ps_wctomb): Likewise.
        * lib/hkscs.h (hkscs_wctomb): Likewise.
        * lib/hp_roman8.h (hp_roman8_wctomb): Likewise.
        * lib/hz.h (hz_wctomb): Likewise.
        * lib/iso2022_cnext.h (iso2022_cn_ext_wctomb): Likewise.
        * lib/iso2022_cn.h (iso2022_cn_wctomb): Likewise.
        * lib/iso2022_jp1.h (iso2022_jp1_wctomb): Likewise.
        * lib/iso2022_jp2.h (iso2022_jp2_wctomb): Likewise.
        * lib/iso2022_jp.h (iso2022_jp_wctomb): Likewise.
        * lib/iso2022_kr.h (iso2022_kr_wctomb): Likewise.
        * lib/iso646_cn.h (iso646_cn_wctomb): Likewise.
        * lib/iso646_jp.h (iso646_jp_wctomb): Likewise.
        * lib/iso8859_1.h (iso8859_1_wctomb): Likewise.
        * lib/iso8859_2.h (iso8859_2_wctomb): Likewise.
        * lib/iso8859_3.h (iso8859_3_wctomb): Likewise.
        * lib/iso8859_4.h (iso8859_4_wctomb): Likewise.
        * lib/iso8859_5.h (iso8859_5_wctomb): Likewise.
        * lib/iso8859_6.h (iso8859_6_wctomb): Likewise.
        * lib/iso8859_7.h (iso8859_7_wctomb): Likewise.
        * lib/iso8859_8.h (iso8859_8_wctomb): Likewise.
        * lib/iso8859_9.h (iso8859_9_wctomb): Likewise.
        * lib/iso8859_10.h (iso8859_10_wctomb): Likewise.
        * lib/iso8859_13.h (iso8859_13_wctomb): Likewise.
        * lib/iso8859_14.h (iso8859_14_wctomb): Likewise.
        * lib/iso8859_15.h (iso8859_15_wctomb): Likewise.
        * lib/iso8859_16.h (iso8859_16_wctomb): Likewise.
        * lib/isoir165ext.h (isoir165ext_wctomb): Likewise.
        * lib/isoir165.h (isoir165_wctomb): Likewise.
        * lib/jisx0201.h (jisx0201_wctomb): Likewise.
        * lib/jisx0208.h (jisx0208_wctomb): Likewise.
        * lib/jisx0212.h (jisx0212_wctomb): Likewise.
        * lib/johab.h (johab_wctomb): Likewise.
        * lib/johab_hangul.h (johab_hangul_wctomb, johab_hangul_decompose):
          Likewise.
        * lib/koi8_r.h (koi8_r_wctomb): Likewise.
        * lib/koi8_ru.h (koi8_ru_wctomb): Likewise.
        * lib/koi8_u.h (koi8_u_wctomb): Likewise.
        * lib/ksc5601.h (ksc5601_wctomb): Likewise.
        * lib/mac_arabic.h (mac_arabic_wctomb): Likewise.
        * lib/mac_centraleurope.h (mac_centraleurope_wctomb): Likewise.
        * lib/mac_croatian.h (mac_croatian_wctomb): Likewise.
        * lib/mac_cyrillic.h (mac_cyrillic_wctomb): Likewise.
        * lib/mac_greek.h (mac_greek_wctomb): Likewise.
        * lib/mac_hebrew.h (mac_hebrew_wctomb): Likewise.
        * lib/mac_iceland.h (mac_iceland_wctomb): Likewise.
        * lib/mac_roman.h (mac_roman_wctomb): Likewise.
        * lib/mac_romania.h (mac_romania_wctomb): Likewise.
        * lib/mac_thai.h (mac_thai_wctomb): Likewise.
        * lib/mac_turkish.h (mac_turkish_wctomb): Likewise.
        * lib/mac_ukraine.h (mac_ukraine_wctomb): Likewise.
        * lib/mulelao.h (mulelao_wctomb): Likewise.
        * lib/nextstep.h (nextstep_wctomb): Likewise.
        * lib/sjis.h (sjis_wctomb): Likewise.
        * lib/tcvn.h (tcvn_wctomb): Likewise.
        * lib/tis620.h (tis620_wctomb): Likewise.
        * lib/ucs2be.h (ucs2be_wctomb): Likewise.
        * lib/ucs2.h (ucs2_wctomb): Likewise.
        * lib/ucs2internal.h (ucs2internal_wctomb): Likewise.
        * lib/ucs2le.h (ucs2le_wctomb): Likewise.
        * lib/ucs2swapped.h (ucs2swapped_wctomb): Likewise.
        * lib/ucs4.h (ucs4_wctomb): Likewise.
        * lib/uhc_1.h (uhc_1_wctomb): Likewise.
        * lib/uhc_2.h (uhc_2_wctomb): Likewise.
        * lib/utf16be.h (utf16be_wctomb): Likewise.
        * lib/utf16.h (utf16_wctomb): Likewise.
        * lib/utf16le.h (utf16le_wctomb): Likewise.
        * lib/utf32be.h (utf32be_wctomb): Likewise.
        * lib/utf32.h (utf32_wctomb): Likewise.
        * lib/utf32le.h (utf32le_wctomb): Likewise.
        * lib/utf7.h (utf7_wctomb): Likewise.
        * lib/utf8.h (utf8_wctomb): Likewise.
        * lib/viscii.h (viscii_wctomb): Likewise.
        * tools/8bit_tab_to_h.c (main): Likewise.
        * tools/cjk_tab_to_h.c (output_uni2charset_dense,
           output_uni2charset_sparse, do_gb18030uni): Likewise.

2001-05-19  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.devel (all): Add man/{iconv.1,iconv*.3}.html.
          (man/%.html): New rule.
        * man/Makefile.in (docdir, htmldir): New variables.
          (install, installdirs): Install the HTML formatted man pages in
          $(htmldir).
          (uninstall): Uninstall them.

2001-05-20  Bruno Haible  <haible@clisp.cons.org>

        * lib/cp1255.h (cp1255_decomp_table): New array.
          (cp1255_comb_table): New array.
          (cp1255_wctomb): Decompose Unicode characters.
        * tests/CP1255.IRREVERSIBLE.TXT: New file.

2001-05-13  Bruno Haible  <haible@clisp.cons.org>

        * lib/vietcomb.h: New file.
        * lib/cp1258.h: Include it.
          (cp1258_comb_table): New array.
          (cp1258_wctomb): Decompose Unicode characters.
        * lib/tcvn.h: Include it.
          (tcvn_comb_table): New array.
          (tcvn_wctomb): Decompose Unicode characters.
        * tests/CP1258.IRREVERSIBLE.TXT: New file.
        * tests/TCVN.IRREVERSIBLE.TXT: New file.

2001-05-06  Bruno Haible  <haible@clisp.cons.org>

        * lib/Makefile.msvc (config.h): Allow the 'del' command to fail.
        (iconv.lib): Likewise.

2001-05-06  Bruno Haible  <haible@clisp.cons.org>

        * lib/Makefile.in (CPPFLAGS, LDFLAGS): New variables.
        (CPP): Remove variable.
        (libiconv.la, libiconv_plug_linux.so, libiconv_plug_solaris.so,
         libiconv_plug_osf.so): Use LDFLAGS.
        (libiconv_plug_linux.so, libiconv_plug_solaris.so,
         libiconv_plug_osf.so, iconv.lo): Use CPPFLAGS.
        * lib/Makefile.msvc (CPP): Remove variable.
        * src/Makefile.in (CPPFLAGS, LDFLAGS): New variables.
        (CPP): Remove variable.
        (iconv): Use CPPFLAGS and LDFLAGS.
        * src/Makefile.msvc (CPP): Remove variable.
        * tests/Makefile.in (CPPFLAGS, LDFLAGS): New variables.
        (check, table-from, table-to): Use CPPFLAGS and LDFLAGS.
        * tests/Makefile.msvc (CPP): Remove variable.

2001-05-06  Bruno Haible  <haible@clisp.cons.org>

        * lib/Makefile.in (libiconv_plug_solaris.so): Change rule if not using
          gcc. Reported by Paananen Mikko <mikkopa@cs.tut.fi>.

2001-04-11  Bruno Haible  <haible@clisp.cons.org>

        Implement and document UTF-32, UTF-32BE, UTF-32LE.
        * src/utf32.h, src/utf32be.h, src/utf32le.h: New files.
        * src/converters.h: Include them.
        * src/encodings.def (UTF-32, UTF-32BE, UTF32LE): New encodings.
        * README, man/iconv_open.3: Add UTF-32, UTF-32BE, UTF32LE.
        * tests/Makefile.in (check): Check UTF-32, UTF-32BE, UTF32LE.
        * tests/Makefile.os2 (check): Likewise.
        * tests/Makefile.msvc (check): Likewise.
        * tests/UTF-32*snippet*: New files.

        * lib/ucs4.h (ucs4_mbtowc): Fix value of other-endian byte order.
          (ucs4_wctomb): Allow any 31-bit codepoint.

2001-04-11  Bruno Haible  <haible@clisp.cons.org>

        * tests/GB18030.TXT: Add mappings for all of U+0000..U+FFFF, including
          unassigned code points.
        * tests/table-from.c (main); When dumping GB18030, don't print code
          points larger than U+FFFF.

2001-03-30  Bruno Haible  <haible@clisp.cons.org>

        * tools/Makefile (GB18030uni.TXT): Use a table source which includes
          the unassigned Unicode code points.
        * lib/gb18030uni.h: Update.
          (gb18030uni_ranges): Remove bitmap_offset field.
          (gb18030uni_bitmap): Remove array.
          (gb18030uni_mbtowc): Omit gb18030uni_bitmap access.
          (gb18030uni_wctomb): Likewise.
        * lib/gb18030.h (gb18030_mbtowc): Handle Unicode characters >= 0x10000.
          (gb18030_wctomb): Likewise.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

        * INSTALL.generic (Particular Systems): Add recommendations for AIX 3.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c (print_version): Now called GNU libiconv.

2001-03-20  Bruno Haible  <haible@clisp.cons.org>

        * README: This package is now called GNU libiconv.

        * tools/8bit_tab_to_h.c (main): Emit copyright notice to the output
          file.
        * tools/cjk_tab_to_h.c (output_title): Likewise.
        * tools/cjk_variants.c (main): Likewise.
        * lib/gentranslit.c (main): Likewise.

2001-03-19  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Always define
          ac_config_guess and ac_config_sub. Then ignore requests for
          AC_CONFIG_AUX_DIR_DEFAULT or AC_CANONICAL_HOST.

2001-03-10  Bruno Haible  <haible@clisp.cons.org>

        * INSTALL.generic: New section "Particular Systems".

2001-03-10  Bruno Haible  <haible@clisp.cons.org>

        * lib/Makefile.in (libiconv.la): Pass flag -no-undefined. Needed on
          platforms like BeOS.

        * lib/loop_wchar.h (mbstate_t): Don't typedef if already #defined in
          config.h.

2001-03-06  Bruno Haible  <haible@clisp.cons.org>

        * Version 1.6 released.
        * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc:
          Bump version number.
        * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:3:0.

2001-03-05  Bruno Haible  <haible@clisp.cons.org>

        Provide all encodings used by OSF/1 5.1 locales.
        * lib/dec_kanji.h: New file.
        * lib/dec_hanyu.h: New file.
        * lib/converters.h: Include them if USE_OSF1 is defined.
        * lib/encodings_osf1.def: New file.
        * lib/genflags.c (main): Include it. Define USE_OSF1.
        * lib/genaliases2.c (main): Include it conditionally.
        * lib/iconv.c: Define USE_OSF1 on OSF/1.
          Include encodings_osf1.def and aliases_osf1.h.
        * lib/Makefile.in (iconv.lo): Depend on encodings_osf1.def and
          aliases_osf1.h.
        * Makefile.devel (lib/aliases_osf1.h): New target.
          (all): Depend on lib/aliases_osf1.h.
          (lib/flags.h): Depend on lib/encodings_osf1.def.

2001-03-01  Bruno Haible  <haible@clisp.cons.org>

        * tools/Makefile (cp775.h): New target.
          (ALL): Add it.
        * lib/cp775.h: New file.
        * lib/converters.h: Include it.
        * lib/encodings_dos.def (CP775): New encoding.

2001-02-25  Bruno Haible  <haible@clisp.cons.org>

        * lib/iconv.c (iconv_open): locale_charset() doesn't return NULL any
          more.

2001-02-24  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c (convert): Use ICONV_CONST.
        * tests/table-from.c: Include config.h.
          (try): Use ICONV_CONST.
        * tests/table-to.c: Include config.h.
          (main): Use ICONV_CONST.
        * tests/Makefile.in (INCLUDES): Add -I../lib.
        * tests/Makefile.os2 (INCLUDES): Likewise.
        * tests/Makefile.msvc (INCLUDES): Add -I..\lib.

2001-02-24  Bruno Haible  <haible@clisp.cons.org>

        Provide all encodings used by DOS locales.
        * tools/Makefile (cp437.h, cp852.h, cp855.h, cp857.h, cp861.h,
           cp864.h, cp865.h, cp869.h): New targets.
          (ALL): Add them.
        * lib/cp437.h: New file.
        * lib/cp852.h: New file.
        * lib/cp855.h: New file.
        * lib/cp857.h: New file.
        * lib/cp861.h: New file.
        * lib/cp864.h: New file.
        * lib/cp865.h: New file.
        * lib/cp869.h: New file.
        * lib/converters.h: Include them if USE_DOS is defined.
        * lib/encodings_dos.def: New file.
        * lib/genflags.c (main): Include it. Define USE_DOS.
        * lib/genaliases2.c (main): Include it conditionally.
        * lib/iconv.c: Define USE_DOS on DJGPP.
          Include encodings_dos.def and aliases_dos.h.
        * lib/Makefile.in (iconv.lo): Depend on encodings_dos.def and
          aliases_dos.h.
        * Makefile.devel (lib/aliases_dos.h): New target.
          (all): Depend on lib/aliases_dos.h.
          (lib/flags.h): Depend on lib/encodings_dos.def.

2001-02-23  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c [DJGPP]: Include <io.h> and <unistd.h>.
          (SET_BINARY) [O_BINARY]: New macro.
          (usage): Mention --binary if available.
          (convert): Use SET_BINARY instead of setmode.
          (main): Likewise.
          Reported by Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>.

2001-02-25  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/ltconfig:
          sed -e 's/reload object files/produce relocatable object files/'.

2001-02-20  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c (usage, main): Make -f and -t options optional.
        * man/iconv.1: Mark them as optional.

2001-02-20  Bruno Haible  <haible@clisp.cons.org>

        * tools/Makefile (GB18030ext.TXT, GB18030uni.TXT): Generate from
          glibc-2.2.2 table.
        * lib/gb18030uni.h, lib/gb18030ext.h: Add mapping 0xA989 -> U+303E,
          0xFE5E -> U+2E97. Shift the entire four-byte range.
        * tests/GB18030.TXT: Regenerated.

2001-02-20  Bruno Haible  <haible@clisp.cons.org>

        Better support for DOS/Windows platforms.
        * autoconf/ltconfig: Upgrade to libtool-1.3.5.
        * autoconf/ltmain.sh: Likewise.
        * autoconf/aclocal.m4: Likewise.
        * autoconf/install-sh: New file.
        * configure.in: Call AC_OBJEXT and AC_EXEEXT. Call AC_CONFIG_AUX_DIR.

2001-02-20  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.in (libdir, includedir, mandir): Use the autoconf
          determined value, in order to respect the configure arguments.
        * lib/Makefile.in (libdir): Likewise.
        * src/Makefile.in (bindir): Likewise.
        * man/Makefile.in (mandir): Likewise.

2001-02-04  Bruno Haible  <haible@clisp.cons.org>

        * lib/translit.def: Add all the neutral transliterations from glibc.
        * lib/gentranslit.c (main): Allow UTF-8 replacements which are in
          UCS-2 but not in ISO-8859-1. Generate a table of 'unsigned short'.
          Avoid accessing data[-1].
        * lib/loop_unicode.h (unicode_loop_convert): Change type of pointer
          into translit_data.

2001-01-05  Bruno Haible  <haible@clisp.cons.org>

        Implement and document CP862.
        * tools/Makefile (ALL): Add cp862.h.
          (cp862.h): New target.
        * lib/cp862.h: New file.
        * lib/converters.h: Include it.
        * lib/encodings.def (CP862): New encoding.
        * README, man/iconv_open.3: Add CP862.
        * tests/Makefile.in (check): Check CP862.
        * tests/Makefile.msvc (check): Likewise.
        * tests/Makefile.os2 (check): Likewise.
        * tests/CP862.TXT: New file.

2000-12-18  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/mbstate_t.m4: New file, from textutils-2.0.10.
        * Makefile.devel (OTHERMACROS): Add it.
        * configure.in: Call AC_MBSTATE_T.
        * lib/config.h.in (mbstate_t): New definition.
        * lib/loop_wchar.h (mbrtowc): For BeOS, declare and define fallback.

2000-12-12  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.in: Use $(MAKE) instead of $(MAKE) -r. Needed with Solaris
          "make", which doesn't set MAKE as expected by @SET_MAKE@ if -r is
          given. Reported by Toshimitsu Fujiwara.

2000-12-08  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.in (exec_prefix): Use configure's --exec-prefix argument.
        * lib/Makefile.in (exec_prefix): Likewise.
        * src/Makefile.in (exec_prefix): Likewise.
        * man/Makefile.in (exec_prefix): Likewise.

2000-12-02  Bruno Haible  <haible@clisp.cons.org>

        * Version 1.5 released.
        * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc:
          Bump version number.
        * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:2:0.

2000-12-02  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.in (mostlyclean, clean, distclean, maintainer-clean):
          Remove files installed in lib by libcharset.
        * Makefile.msvc (mostlyclean): Likewise.

        * Makefile.in (check): Depend on target 'all'.
        * Makefile.os2 (check): Likewise.
        * Makefile.msvc (check): Depend on target 'force' as well.

        * src/iconv.c (usage): Take an exitcode argument.
          (print_version): New function.
          (main): Recognize --help and --version command line options.

2000-12-02  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.msvc: Replace STATIC with its opposite flag, DLL.
        * lib/Makefile.msvc: Likewise.
        * src/Makefile.msvc: Likewise.
        * tests/Makefile.msvc: Likewise.

2000-12-01  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c: Include <fcntl.h>. Define fallbacks for setmode, fileno.
          (force_binary): New variable.
          (convert): If requested, set the input O_BINARY.
          (main): Accept --binary option. If requested, set the output O_BINARY.
        * tests/check-stateful.bat: Pass --binary to iconv.
        * tests/check-stateful.cmd: Likewise.
        * tests/check-translit.bat: Likewise.
        * tests/check-translit.cmd: Likewise.

2000-12-01  Bruno Haible  <haible@clisp.cons.org>

        * include/iconv.h.in (_libiconv_version): New declaration.
        * lib/iconv.c (_libiconv_version): New variable.

2000-11-30  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.msvc (all): File now named lib/libcharset.h.
          (clean, distclean, maintainer-clean): Likewise.

2000-11-23  Bruno Haible  <haible@clisp.cons.org>

        * lib/*: Move here all files from src/*.
        * src/*: Move all files to lib.
        * lib/Makefile.in (distclean): No need to remove config.status,
          config.log, config.cache.
        * configure.in: Require lib/iconv.c, not src/iconv.c. Create
          lib/config.h, not src/config.h. Also create lib/Makefile.
        * Makefile.in (all): Install libcharset into lib, not src. Recurse
          into lib and src.
          (install-lib): Recurse into lib, not src.
          (install): Recurse into libcharset, lib and src.
          (installdirs, uninstall): Likewise.
          (check, mostlyclean, clean, distclean, maintainer-clean): Likewise.
        * Makefile.msvc (all): Recurse into lib and src.
          (install): Recurse into libcharset, lib and src.
          (installdirs, uninstall): Likewise.
          (check, mostlyclean, clean, distclean, maintainer-clean): Likewise.
        * Makefile.os2 (all): Recurse into lib and src.
          (install-lib): Recurse into lib, not src.
          (install, uninstall): Recurse into lib and src.
          (check, mostlyclean, clean, distclean, maintainer-clean): Likewise.
        * Makefile.devel (lib/config.h.msvc): Renamed from src/config.h.msvc.
          (lib/aliases.h): Renamed from src/aliases.h.
          (lib/aliases.gperf): Renamed from src/aliases.gperf.
          (lib/aliases_aix.h): Renamed from src/aliases_aix.h.
          (lib/flags.h): Renamed from src/flags.h.
          (lib/translit.h): Renamed from src/translit.h.
        * src/iconv.c: Moved here from tests/iconv.c.
        * src/Makefile.in: New file.
        * src/Makefile.msvc: New file.
        * src/Makefile.os2: New file.
        * tests/Makefile.in (iconv): Remove target.
          (../lib/libiconv.la): Renamed from ../src/libiconv.la.
          (clean): No need to remove iconv.
        * tests/Makefile.msvc (iconv.exe): Remove target.
        * tests/Makefile.os2 (iconv.exe): Likewise.
        * tests/check-stateful: iconv is in ../src.
        * tests/check-stateful.bat: Likewise.
        * tests/check-stateful.cmd: Likewise.
        * tests/check-translit: iconv is in ../src.
        * tests/check-translit.bat: Likewise.
        * tests/check-translit.cmd: Likewise.
        * man/iconv.1: New file.
        * man/Makefile.in (install, installdirs, uninstall): Also install *.1
          man pages.
        * man/Makefile.os2 (MAN3): Renamed from MAN.
          (MAN1): New variable.
          (install, uninstall): Also install *.1 man pages.

2000-11-21  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.msvc (all, check, mostlyclean, clean, distclean,
           maintainer-clean): Recurse into libcharset.
          (clean, distclean, maintainer-clean): Remove src\libcharset.h.
        * src/Makefile.msvc (LIBCHARSET_OBJECTS): New variable.
          (iconv.lib): Link with $(LIBCHARSET_OBJECTS).

2000-11-18  Bruno Haible  <haible@clisp.cons.org>

        * src/cp950.h (cp950_mbtowc, cp950_wctomb): Change implementation
          so that it agrees with Microsoft's definition of CP950.
        * tests/CP950.TXT: Likewise.
        * tests/CP950.IRREVERSIBLE.TXT: Add 0xA244, 0xA2CC, 0xA2CE.

2000-11-18  Bruno Haible  <haible@clisp.cons.org>

        Add support for locale dependent "char" and "wchar_t" encodings.
        * libcharset: New subdirectory.
        * src/loop_unicode.h: New file, extracted from src/iconv.c.
        * src/loop_wchar.h: New file.
        * src/loops.h: New file. Include loop_unicode.h and loop_wchar.h.
        * src/encodings_local.def: New file.
        * src/genaliases.c: Also create aliases for encodings_local.def.
        * src/converters.h (conv_struct): Add lfuncs field.
        * src/genflags.c: Add dummy definitions of struct loop_funcs.
        * src/iconv.c: Include libcharset.h.
          (loop_funcs): New structure.
          Treat encodings_local.def like encodings.def.
          Include loops.h.
          (iconv_open): Move the bulk of the code to loop_unicode.h.
          (iconv): Likewise.
          (iconvctl): Extend determination of TRIVIALP to wchar_t conversion
          descriptors.
        * src/Makefile.in (PLUG_SOURCES): Remove variable.
          (LIBCHARSET_OBJECTS): New variable.
          (libiconv.la): Link in the LIBCHARSET_OBJECTS.
          (libiconv_plug_linux.so, libiconv_plug_solaris.so,
           libiconv_plug_osf.so): Link in the LIBCHARSET_OBJECTS, using
          LIBTOOL_LINK.
          (iconv.lo): Depend on encodings_local.def.
        * src/Makefile.msvc (iconv.obj): Depend on encodings_local.def.
        * src/Makefile.os2 (iconv.obj): Likewise.
        * configure.in: Add tests for locale.h, mbrtowc, wcrtomb, setlocale.
          Recurse into libcharset.
        * src/config.h.in (HAVE_LOCALE_H, HAVE_MBRTOWC, HAVE_WCRTOMB,
           HAVE_SETLOCALE): New macros.
        * tests/iconv.c: Include config.h and locale.h.
          (main): Call setlocale.
        * tests/Makefile.in (iconv): Search for config.h in ../src.
        * tests/Makefile.os2 (iconv.exe): Likewise.
        * tests/Makefile.msvc (iconv.exe): Likewise.
        * README, man/iconv_open.3: Document "char" and "wchar_t" encodings.
        * Makefile.in: After "cd", use "&&" not ";".
          (all, check, mostlyclean, clean, distclean, maintainer-clean):
          Recurse into libcharset.
        * Makefile.devel (all): Recurse into libcharset.
          (src/aliases.gperf): Depend on src/encodings_local.def.

2000-11-18  Bruno Haible  <haible@clisp.cons.org>

        * src/converters.h (ucs4_t): New type.
          (wchar_t): Remove locally defined override.
          (mbtowc_funcs, wctomb_funcs): Use ucs4_t instead of wchar_t.
        * src/iconv.c (iconv): Likewise.
        * src/genflags.c (emit_encoding): Use ucs4_t instead of wchar_t.
        * tools/8bit_tab_to_h.c: Use "ucs4_t" instead of "wchar_t".
        * tools/cjk_tab_to_h.c: Likewise.
        * src/armscii_8.h: Use ucs4_t instead of wchar_t.
        * src/ascii.h: Likewise.
        * src/big5.h: Likewise.
        * src/big5hkscs.h: Likewise.
        * src/ces_big5.h: Likewise.
        * src/ces_gbk.h: Likewise.
        * src/cns11643.h: Likewise.
        * src/cns11643_1.h: Likewise.
        * src/cns11643_2.h: Likewise.
        * src/cns11643_3.h: Likewise.
        * src/cns11643_inv.h: Likewise.
        * src/cp1046.h: Likewise.
        * src/cp1124.h: Likewise.
        * src/cp1129.h: Likewise.
        * src/cp1133.h: Likewise.
        * src/cp1250.h: Likewise.
        * src/cp1251.h: Likewise.
        * src/cp1252.h: Likewise.
        * src/cp1253.h: Likewise.
        * src/cp1254.h: Likewise.
        * src/cp1255.h: Likewise.
        * src/cp1256.h: Likewise.
        * src/cp1257.h: Likewise.
        * src/cp1258.h: Likewise.
        * src/cp850.h: Likewise.
        * src/cp856.h: Likewise.
        * src/cp866.h: Likewise.
        * src/cp874.h: Likewise.
        * src/cp922.h: Likewise.
        * src/cp932.h: Likewise.
        * src/cp932ext.h: Likewise.
        * src/cp936ext.h: Likewise.
        * src/cp949.h: Likewise.
        * src/cp950.h: Likewise.
        * src/cp950ext.h: Likewise.
        * src/euc_cn.h: Likewise.
        * src/euc_jp.h: Likewise.
        * src/euc_kr.h: Likewise.
        * src/euc_tw.h: Likewise.
        * src/gb12345.h: Likewise.
        * src/gb12345ext.h: Likewise.
        * src/gb18030.h: Likewise.
        * src/gb18030ext.h: Likewise.
        * src/gb18030uni.h: Likewise.
        * src/gb2312.h: Likewise.
        * src/gbk.h: Likewise.
        * src/gbkext1.h: Likewise.
        * src/gbkext2.h: Likewise.
        * src/gbkext_inv.h: Likewise.
        * src/georgian_academy.h: Likewise.
        * src/georgian_ps.h: Likewise.
        * src/hkscs.h: Likewise.
        * src/hp_roman8.h: Likewise.
        * src/hz.h: Likewise.
        * src/iso2022_cn.h: Likewise.
        * src/iso2022_cnext.h: Likewise.
        * src/iso2022_jp.h: Likewise.
        * src/iso2022_jp1.h: Likewise.
        * src/iso2022_jp2.h: Likewise.
        * src/iso2022_kr.h: Likewise.
        * src/iso646_cn.h: Likewise.
        * src/iso646_jp.h: Likewise.
        * src/iso8859_1.h: Likewise.
        * src/iso8859_10.h: Likewise.
        * src/iso8859_13.h: Likewise.
        * src/iso8859_14.h: Likewise.
        * src/iso8859_15.h: Likewise.
        * src/iso8859_16.h: Likewise.
        * src/iso8859_2.h: Likewise.
        * src/iso8859_3.h: Likewise.
        * src/iso8859_4.h: Likewise.
        * src/iso8859_5.h: Likewise.
        * src/iso8859_6.h: Likewise.
        * src/iso8859_7.h: Likewise.
        * src/iso8859_8.h: Likewise.
        * src/iso8859_9.h: Likewise.
        * src/isoir165.h: Likewise.
        * src/isoir165ext.h: Likewise.
        * src/java.h: Likewise.
        * src/jisx0201.h: Likewise.
        * src/jisx0208.h: Likewise.
        * src/jisx0212.h: Likewise.
        * src/johab.h: Likewise.
        * src/johab_hangul.h: Likewise.
        * src/koi8_r.h: Likewise.
        * src/koi8_ru.h: Likewise.
        * src/koi8_u.h: Likewise.
        * src/ksc5601.h: Likewise.
        * src/mac_arabic.h: Likewise.
        * src/mac_centraleurope.h: Likewise.
        * src/mac_croatian.h: Likewise.
        * src/mac_cyrillic.h: Likewise.
        * src/mac_greek.h: Likewise.
        * src/mac_hebrew.h: Likewise.
        * src/mac_iceland.h: Likewise.
        * src/mac_roman.h: Likewise.
        * src/mac_romania.h: Likewise.
        * src/mac_thai.h: Likewise.
        * src/mac_turkish.h: Likewise.
        * src/mac_ukraine.h: Likewise.
        * src/mulelao.h: Likewise.
        * src/nextstep.h: Likewise.
        * src/sjis.h: Likewise.
        * src/tcvn.h: Likewise.
        * src/tis620.h: Likewise.
        * src/ucs2.h: Likewise.
        * src/ucs2be.h: Likewise.
        * src/ucs2internal.h: Likewise.
        * src/ucs2le.h: Likewise.
        * src/ucs2swapped.h: Likewise.
        * src/ucs4.h: Likewise.
        * src/ucs4be.h: Likewise.
        * src/ucs4internal.h: Likewise.
        * src/ucs4le.h: Likewise.
        * src/ucs4swapped.h: Likewise.
        * src/uhc_1.h: Likewise.
        * src/uhc_2.h: Likewise.
        * src/utf16.h: Likewise.
        * src/utf16be.h: Likewise.
        * src/utf16le.h: Likewise.
        * src/utf7.h: Likewise.
        * src/utf8.h: Likewise.
        * src/viscii.h: Likewise.

2000-11-18  Bruno Haible  <haible@clisp.cons.org>

        Make transliteration optional.
        * src/iconv.c (iconv_open): Strip off //TRANSLIT suffix from names.
          Set transliteration on if and only if tocode ends in //TRANSLIT.
        * README, man/iconv_open.3: Document how to enable transliteration.
        * tests/check-translit: Add //TRANSLIT to iconv's 't' argument.
        * tests/check-translit.bat: Likewise.
        * tests/check-translit.cmd: Likewise.

2000-11-18  Bruno Haible  <haible@clisp.cons.org>

        * man/iconv.3: Fix typo.

2000-10-31  Bruno Haible  <haible@clisp.cons.org>

        * README, man/iconv_open.3: Document JOHAB again.

2000-11-15  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.msvc: Add support for MFLAGS and DEBUG parameters.
          (STATIC): Change default from 0 to 1.
        * src/Makefile.msvc: Likewise.
        * tests/Makefile.msvc: Likewise.
        * tests/check-stateless.bat: Call 'sort' with no arguments.

2000-11-12  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/config.guess, autoconf/config.sub: Upgrade to newest
          version from GNU CVS.

2000-10-24  Bruno Haible  <haible@clisp.cons.org>

        * Version 1.4 released.
        * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc:
          Bump version number.
        * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:1:0.

2000-10-23  Bruno Haible  <haible@clisp.cons.org>

        Implement and document GB18030 and BIG5HKSCS.
        * tools/cjk_tab_to_h.c (row_byte_hkscs, byte_row_hkscs, do_hkscs): New
          functions.
          (do_gb18030uni): New function.
          (main): Accept gb18030ext, gb18030uni, hkscs.
        * tools/Makefile (ALL): Add gb18030ext.h, gb18030uni.h, hkscs.h.
          (gb18030ext.h, GB18030ext.TXT, gb18030uni.h, GB18030uni.TXT,
           hkscs.h): New targets.
        * src/gb18030ext.h, src/gb18030uni.h, src/gb18030.h: New files.
        * src/hkscs.h, src/big5hkscs.h: New files.
        * src/converters.h: Include gb18030.h and big5hkscs.h.
        * src/encodings.def (GB18030, BIG5HKSCS): New encodings.
        * README, man/iconv_open.3: Add GB18030, BIG5HKSCS.
        * tests/Makefile.in (check): Check GB18030, BIG5HKSCS.
        * tests/Makefile.msvc (check): Likewise.
        * tests/Makefile.os2 (check): Likewise.
        * tests/GB18030.TXT: New file.
        * tests/BIG5HKSCS.TXT, tests/BIG5HKSCS.IRREVERSIBLE.TXT: New files.

2000-10-23  Bruno Haible  <haible@clisp.cons.org>

        * tests/table-from.c (try, main): Use UCS-4-INTERNAL instead of
          UCS-2-INTERNAL, to avoid problems with UCS-2 surrogate handling.
        * tests/table-to.c (main): Likewise.

2000-10-22  Bruno Haible  <haible@clisp.cons.org>

        * src/gentranslit.c (main): Read the input in UTF-8 encoding.

2000-10-09  Bruno Haible  <haible@clisp.cons.org>

        CPU recognition on OpenBSD.
        * autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __m68k__,
          __mc68020__, __MIPSEB__, __MIPSEL__, __m88k__ as CPU indicators.

2000-10-03  Bruno Haible  <haible@clisp.cons.org>

        * src/gentranslit.c (main): Don't output non-ASCII ISO-8859-1
          character literals, use the numeric value instead.
          Reported by Shin-Hsien Yeh <shyeh@alcatel.com.tw>.

2000-09-29  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Fix bug in 2000-05-23
          change.

2000-09-25  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __i386__
          as equivalent to __i386. For OpenBSD.

2000-09-21  Bruno Haible  <haible@clisp.cons.org>

        * src/utf16.h (utf16_wctomb): Reject single surrogates.
        * src/utf16be.h (utf16be_wctomb): Likewise.
        * src/utf16le.h (utf16le_wctomb): Likewise.
        * src/ucs2.h (ucs2_mbtowc, ucs2_wctomb): Likewise.
        * src/ucs2be.h (ucs2be_mbtowc, ucs2be_wctomb): Likewise.
        * src/ucs2le.h (ucs2le_mbtowc, ucs2le_wctomb): Likewise.
        * src/ucs2internal.h (ucs2internal_mbtowc, ucs2internal_wctomb):
          Likewise.
        * src/ucs2swapped.h (ucs2swapped_mbtowc, ucs2swapped_wctomb):
          Likewise.

2000-09-15  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.in (install, installdirs, uninstall): Support DESTDIR.
        * src/Makefile.in (install, installdirs, uninstall): Likewise.
        * man/Makefile.in (install, installdirs, uninstall): Likewise.

2000-09-11  Bruno Haible  <haible@clisp.cons.org>

        * src/utf7.h (utf7_mbtowc): Fix combining of UTF-16 surrogates.

2000-08-26  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/acgeneral.m4 (AC_OUTPUT): Use braces in exec_prefix default
          value, not parens.

2000-07-04  Akira Hatakeyama  <akira@sra.co.jp>
            Bruno Haible  <haible@clisp.cons.org>

        * os2/iconv.def, README.os2, Makefile.os2, src/Makefile.os2,
          tests/Makefile.os2, man/Makefile.os2, tests/check-stateful.cmd,
          tests/check-stateless.cmd, tests/check-translit.cmd: New files.

2000-06-28  Bruno Haible  <haible@clisp.cons.org>

        * src/ucs2internal.h (ucs2internal_mbtowc): Avoid gcc warning about
          cast.
        * src/ucs4internal.h (ucs4internal_mbtowc): Likewise.
        * src/ucs2swapped.h (ucs2swapped_mbtowc, ucs2swapped_wctomb): Verify
          sizeof(unsigned short).
        * src/ucs4swapped.h (ucs4swapped_mbtowc, ucs4swapped_mbtowc): Verify
          sizeof(unsigned int).
        Reported by François Pinard <pinard@iro.umontreal.ca>.

2000-05-29  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/aclocal.m4 (CL_PROG_INSTALL): Fix typo.
        Reported by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.

2000-05-23  Bruno Haible  <haible@clisp.cons.org>

        * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Determine host_cpu,
          host_vendor, host_os correctly if $host has more than two hyphens.

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 EINVAL.

2000-04-02  Bruno Haible  <haible@clisp.cons.org>

        Allow building on filesystems lacking symlinks and hard links.
        * Makefile.devel (autoconf/aclocal.m4): Replace AC_PROG_LN_S with
          CL_PROG_LN_S.
        * configure.in: Add CL_PROG_LN, CL_PROG_LN_S.
        * src/Makefile.in (LN): Use autoconfigured value @LN@.
          (LN_S): Use autoconfigured value @LN_S@.

2000-03-15  Bruno Haible  <haible@clisp.cons.org>

        * Version 1.2 released.
        * include/iconv.h.in (_LIBICONV_VERSION): Bump version number.
        * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 1:1:1.

2000-03-14  Bruno Haible  <haible@clisp.cons.org>

        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, 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.

2000-03-13  Bruno Haible  <haible@clisp.cons.org>

        Provide all encodings used by AIX locales.
        * tools/Makefile (all): Add cp856.h, cp922.h, cp1046.h, cp1124.h,
          cp1129.h.
          (cp856.h, cp922.h, cp1046.h, cp1124.h, cp1129.h): New targets.
        * src/cp856.h, src/cp922.h, src/cp943.h, src/cp1046.h, src/cp1124.h,
          src/cp1129.h: New files.
        * src/converters.h: Include them if USE_AIX is defined.
        * src/encodings_aix.def: New file, with CP856, CP922, CP943, CP1046,
          CP1124, CP1129.
        * src/genflags.c: Define USE_AIX. Include encodings_aix.def.
        * src/genaliases2.c: New file.
        * src/iconv.c: Define USE_AIX on AIX.
          Include encodings_aix.def and aliases_aix.h.
          (aliases2_lookup): New function.
          (iconv_open): Call aliases2_lookup.
        * src/Makefile.in (iconv.lo): Depend on encodings_aix.def and
          aliases_aix.h.
        * Makefile.devel (all): Add src/aliases_aix.h.
          (src/aliases_aix.h): New rule.
          (src/flags.h): Depend on src/encodings_aix.def.

2000-02-24  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c (iconv): Don't write beyond the end of the output buffer.
          Reported by Edmund Grimley Evans <edmundo@rano.org>.

2000-02-22  Bruno Haible  <haible@clisp.cons.org>

        * src/utf7.h (direct_tab, xdirect_tab): Treat tab like space.

2000-02-15  Bruno Haible  <haible@clisp.cons.org>

        * src/iconv.c (iconv): Add cast in xxx_reset call.

2000-02-05  Bruno Haible  <haible@clisp.cons.org>

        * src/tis620.h: Simplify.

2000-01-27  Bruno Haible  <haible@clisp.cons.org>

        * Makefile.devel (CLISP_DIR): Change to "..".

2000-01-24  Bruno Haible  <haible@clisp.cons.org>

        * Version 1.1 released.
        * include/iconv.h.in (_LIBICONV_VERSION): Bump version number.
        * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 1:0:1.

2000-01-23  Bruno Haible  <haible@clisp.cons.org>

        * src/utf7.h (utf7_wctomb): If base64 encoding is not active, encode
          '+' as "+-".

2000-01-22  Bruno Haible  <haible@clisp.cons.org>

        * include/iconv.h.in (iconvctl): New declaration.
          (ICONV_TRIVIALP, ICONV_GET_TRANSLITERATE, ICONV_SET_TRANSLITERATE):
          New macros.
        * src/iconv.c (iconvctl): New function.

        * tests/Makefile.in: Add a rule for ../src/libiconv.la. Define $(MAKE).

        Solve a build problem.
        * include/iconv.h.in: Renamed from include/libiconv.h.in.
        * Makefile.devel: libiconv.h -> iconv.h.
        * Makefile.in: Likewise.
        * configure.in: Likewise. Remove check for <iconv.h>.
        * src/iconv.c: Include iconv.h instead of libiconv.h.
        * tests/iconv.c, tests/table-from.c, tests/table-to.c: Likewise.

        * README, man/iconv_open.3: Don't document JOHAB any more.

        * man/iconv.3: Clarify return value again.

2000-01-16  Bruno Haible  <haible@clisp.cons.org>

        Add aliases.
        * src/encodings.def (ISO-8859-14): Add alias ISO-IR-199.
          (ISO-8859-15): Add alias ISO-IR-203.
          (EUC-CN): Add alias CN-GB, from RFC 1922.
          (BIG5): Add alias CN-BIG5, from RFC 1922.
        * Makefile.devel (src/aliases.h): Add 8th character to key set.

        Drop X11 aliases.
        * src/encodings.def (JIS_X0201): Drop JISX0201.1976-0 alias.
          (JIS_X0208): Drop JIS_X0208.1983-0, JIS_X0208.1983-1 aliases.
          (KSC_5601): Drop KSC5601.1987-0 alias.

        Improve GB/T 12345 (not used yet).
        * tools/Makefile (gb12345ext.h): Use GB12345-more.TXT.
        * src/gb12345ext.h: Regenerated.

        Improve and document CP949.
        * tools/Makefile (all): Add uhc_1.h and uhc_2.h.
          (uhc_1.h, uhc_2.h): New rules.
        * tools/cjk_tab_to_h.c (output_charset2uni_noholes_monotonic): New
          function.
          (output_uni2charset_sparse): Take an additional boolean argument.
          All callers changed.
          (*_uhc_1, *_uhc_2): New functions.
          (main): Treat uhc_1 and uhc_2.
        * src/uhc_1.h, src/uhc_2.h: New files.
        * src/cp949.h: New file, include them.
        * src/converters.h: Include it.
        * src/encodings.def (KSC_5601): Remove alias CP949.
          (CP949): New encoding.
        * README, man/iconv_open.3: Add CP949.
        * tests/Makefile.in (check): Check CP949.
        * tests/CP949.TXT: New file.

        Document CP932.
        * README, man/iconv_open.3: Add CP932.
        * tests/Makefile.in (check): Check CP932.
        * tests/CP932.TXT, tests/CP932.IRREVERSIBLE.TXT: New files.

        * Makefile.devel (src/flags.h): Depend on src/converters.h.

        * tests/Makefile.in (check): Check JIS_X0201.
        * tests/JIS_X0201.TXT: New file.

        * src/euc_kr.h (euc_kr_wctomb): Shrink size of buf.
        * src/iso2022_kr.h (iso2022_kr_wctomb): Likewise.

        * src/iso2022_cnext.h (iso2022_cn_ext_mbtowc): Use isoir165_mbtowc.
          (iso2022_cn_ext_wctomb): Use isoir165_wctomb.

        Add ISO-IR-165 (undocumented).
        * tools/Makefile (all): Add isoir165ext.h.
          (isoir165ext.h): New rule.
        * tools/cjk_tab_to_h.c (main): Treat isoir165ext like gb2312.
        * src/isoir165.h, src/isoir165ext.h: New files.
        * src/converters.h: Include it.
        * src/encodings.def: Add ISO-IR-165.
        * tests/Makefile.in (check): Check ISO-IR-165.
        * tests/ISO-IR-165.TXT, tests/ISO-IR-165.IRREVERSIBLE.TXT: New files.

        Add ISO646-CN (undocumented).
        * src/iso646_cn.h: New file.
        * src/converters.h: Include it.
        * src/encodings.def: Add ISO646-CN.
        * tests/Makefile.in (check): Check ISO646-CN.
        * tests/ISO646-CN.TXT: New file.

        Add ISO646-JP (undocumented).
        * src/iso646_jp.h: New file.
        * src/converters.h: Include it.
        * src/encodings.def: Add ISO646-JP.
        * tests/Makefile.in (check): Check ISO646-JP.
        * tests/ISO646-JP.TXT: New file.

2000-01-05  Bruno Haible  <haible@clisp.cons.org>

        Add ISO-8859-16.
        * tools/Makefile (all): Add iso8859_16.h.
          (iso8859_16.h): New rule.
        * src/iso8859_16.h: New file.
        * src/converters.h: Include it.
        * src/encodings.def: Add ISO-8859-16.
        * README, man/iconv_open.3: Add ISO-8859-16.
        * tests/Makefile.in (check): Check ISO-8859-16.
        * tests/ISO-8859-16.TXT: New file.

        * man/iconv.3: Clarify what happens *inbuf in case 3.

        * src/iso8859_8.h: Update using newest table from ftp.unicode.org.
        * tests/ISO-8859-8.TXT: Likewise.

2000-01-04  Bruno Haible  <haible@clisp.cons.org>

        * Version 1.0 released.
        * include/libiconv.h.in (_LIBICONV_VERSION): Bump version number.
        * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 0:1:0.
          (libiconv.la): Use LIBICONV_VERSION_INFO.

2000-01-03  Bruno Haible  <haible@clisp.cons.org>

        * tests/Makefile.in: New file.
          tests/check-stateless, tests/table-from.c, tests/table-to.c,
          tests/*.TXT, tests/genutf8.c: New files, checks for stateless
          encodings.
          tests/check-stateful, tests/iconv.c, tests/*-snippet*: New files,
          checks for stateful encodings.
        * Makefile.in (all, check, mostlyclean, clean, distclean,
           maintainer-clean): Descend into tests directory.
        * configure.in: Add tests/Makefile to AC_OUTPUT duties.

        * src/gentranslit.c: New file.
        * Makefile.devel (src/translit.h): New rule.
        * src/translit.def, src/translit.h: New files.
        * src/iconv.c: Include it.
          (iconv): Transliterate using translit.h table.

        * src/genflags.c: New file.
        * Makefile.devel (src/flags.h): New rule.
        * src/flags.h: New file.
        * src/iconv.c: Include it.
          (encoding): Add field 'oflags'.
          (all_encodings): Initialize the field 'oflags'.
          (iconv_open): Copy field 'oflags'.
          (iconv): Transliterate quotation marks U+2018, U+2019, U+201A.
        * src/Makefile.in (iconv.lo): Update dependencies.

        * src/converters.h: New file, extracted from src/iconv.c.
        * src/iconv.c: Include it.
        * src/Makefile.in (iconv.lo): Update dependencies.

        * tools/cjk_variants.c: New file.
        * tools/Makefile (ALL): Add cjk_variants.h.
          (cjk_variants.h, cjk_variants): New rules.
        * src/cjk_variants.h: New file.
        * src/iconv.c: Include it.
          (iconv): Use cjk_variants for transliteration.

        * man/iconv.3: Fix description of return value.
        * euc_kr.h (euc_kr_wctomb): Remove Hangul transliteration.
        * iso2022_kr.h (iso2022kr_wctomb): Likewise.
        * src/iconv.c (iconv): Do Hangul transliteration here and increment
          result once for every transliterated character.
        * src/johab_hangul.h (johab_hangul_decompose): Change result array
          from 'unsigned char*' to 'wchar_t*'.

        * src/cp1258.h (cp1258_mbtowc): Return RET_ILSEQ instead of storing
          0xfffd.

        * src/georgian_ps.h (georgian_ps_wctomb): Accept 0x00e6.

        * src/euc_jp.h (euc_jp_wctomb): Don't treat U+005C and U+007E like
          Katakana.

        * src/euc_tw.h (euc_tw_mbtowc): Fix typo.

        * src/cp950.h (cp950_mbtowc, cp950_wctomb): Exclude the range
          0xC6A1..0xC7FE.

        * tools/cjk_tab_to_h.c (read_table_ksc5601): Some Hangul range was
          not being excluded. Fix that.
        * src/ksc5601.h: Regenerated.
        * src/johab.h (johab_mbtowc): Don't accept 0xDA{A1..D3} - this is
          valid in KSC5601/KSX1001 but not in JOHAB.

        * src/iconv.c (conv_struct): Add fields iindex, oindex.
          (iconv_open): Fill in iindex, oindex.

        * src/encodings.def (UCS-2-BE): Add aliases "UNICODE-1-1" and
          "csUnicode11", from IANA charset list.
          (MacRoman): Add aliases "MAC" and "csMacintosh" for "MACINTOSH",
          from IANA charset list.
          (JIS_X0208): Add aliases "X0208", "ISO-IR-87", "csISO87JISX0208",
          from IANA charset list.
          (GB_2312-80): New encoding, from IANA charset list.

        * README, man/iconv_open.3: Add MacIceland and MacUkraine.

        * Makefile.devel: Add rules for src/aliases.h and src/aliases.gperf.
          (all): Depend on src/aliases.h.
        * src/Makefile.in: Remove rules for $(srcdir)/aliases.h and
          $(srcdir)/aliases.gperf.
          (clean): Clean up.

        * src/Makefile.in (libiconv_plug_linux.so): Remove unneeded "-ldl".

1999-12-31  Bruno Haible  <haible@clisp.cons.org>

        * Version 0.3 released.

