2024-04-04  Bruno Haible  <bruno@clisp.org>

	Fix macro file 'serial' numbers for 'aclocal --install'.
	* gnulib-local/m4/alloca.m4: Make 'serial' effective. Set value to 100,
	in order to override gnulib's alloca.m4.

2023-12-30  Bruno Haible  <bruno@clisp.org>

	Switch to autoconf 2.72.
	* autogen.sh: Update comment.

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

	Fix shared library support on Android.
	Patch from <https://savannah.gnu.org/patch/index.php?10393>.
	* m4/libtool.m4: On Android, fix library_names_spec and
	hardcode_libdir_flag_spec.

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

	Fix a misnomer.
	* include/export.h (LIBICONV_SHLIB_EXPORTED): Renamed from
	LIBICONV_DLL_EXPORTED. Prefer the term "shared library", since the term
	"DLL" applies only to Windows.
	* Makefile.devel (include/iconv.h.build.in): Insert
	LIBICONV_SHLIB_EXPORTED instead of LIBICONV_DLL_EXPORTED.
	* configure.ac (DLL_VARIABLE): Update comment.
	* lib/Makefile.in (DEFS): Update comment.
	* woe32dll/export.h: Update comment.

2023-09-13  Bruno Haible  <bruno@clisp.org>

	Simplify the library: Don't compile relocatable.c any more.
	The library does not need relocatable.h any more since 2018-09-22.
	* lib/relocatable.h: Remove file.
	* lib/relocatable.c: Remove file.
	* lib/compat.c: New file.
	* lib/Makefile.in (DEFS): Don't define LIBDIR, BUILDING_DLL,
	ENABLE_RELOCATABLE, IN_LIBRARY, INSTALLDIR, NO_XMALLOC,
	set_relocation_prefix, relocate, relocate2.
	(SOURCES): Remove relocatable.c. Add compat.c.
	(OBJECTS): Remove relocatable.lo. Add compat.lo.
	(localcharset.lo): Update dependencies.
	(relocatable.lo): Remove rule.
	(compat.lo): Add rule.
	(SOURCE_FILES): Remove relocatable.h, relocatable.c. Add compat.c.

2023-09-07  Bruno Haible  <bruno@clisp.org>

	Sync woe32dll/export.h with GNU libunistring and GNU gettext.
	* woe32dll/export.h: Update comments.
	(IMP): Define correctly for 64-bit Windows platforms.

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

	Don't export symbols from static MSVC .obj files.
	Suggested by Dmitry Bely <dmitry.bely@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-08/msg00002.html>.
	* include/export.h: Add a copyright notice. Set LIBICONV_DLL_EXPORTED to
	empty on MSVC when DLL_EXPORT is not defined.
	* Makefile.devel (include/iconv.h.build.in): Filter out the second
	copyright notice.
	* configure.ac (DLL_VARIABLE): Test DLL_EXPORT, not _DLL.
	* lib/relocatable.h: From gnulib:
	(RELOCATABLE_DLL_EXPORTED): Don't use __declspec(dllexport) when
	creating static .obj files with MSVC.

2023-08-30  Bruno Haible  <bruno@clisp.org>

	Recognize the *-*-windows* config triplets introduced on 2023-06-26.
	* configure.ac: Treat windows* as equivalent to mingw*.

2023-06-29  Bruno Haible  <bruno@clisp.org>

	Update the installation instructions for Windows.
	* INSTALL.windows: Add a note about MSYS2.

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

	GB18030: Help transitioning away from PUA code points.
	* lib/gb18030ext.h (gb18030_2005_ext_wctomb): Remove function.
	(gb18030ext_wctomb): Renamed from gb18030_2022_ext_wctomb.
	* lib/gb18030uni.h (gb18030_2005_uni_wctomb): Map 6 Ext-B code points to
	4-bytes sequences.
	(gb18030_2022_uni_wctomb): Small refactoring.
	* lib/gb18030_2005.h (gb18030_2005_pua2charset): Map 6 PUA code points
	to 4-bytes sequences instead of 2-bytes sequences.
	(gb18030_2005_wctomb): Update accordingly. Invoke gb18030ext_wctomb
	instead of gb18030_2005_ext_wctomb.
	* lib/gb18030_2022.h (gb18030_2022_wctomb): Invoke gb18030ext_wctomb
	instead of gb18030_2022_ext_wctomb.
	* tests/GB18030-2005.IRREVERSIBLE.TXT: Update the inverse mappings of 6
	Ext-B code points and 6 PUA code points.
	* NEWS: Mention it.

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

	man pages: List a fifth condition when iconv(3) may stop.
	Based on the patch to the man-pages project
	<https://marc.info/?l=linux-man&m=168496625522371&w=2> =
	<https://lore.kernel.org/linux-man/2f9c4dbd-7aa6-fc7a-f126-453603ef695e@gmail.com/T/#m25e33d4defa1118e5c84951790f0319360abf9d4>
	* man/iconv.3: List a fifth condition.

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

	man pages: Use man page section title from groff or the distro.
	Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-04/msg00027.html>.
	* man/*.[13]: Remove section title "Linux Programmer's Manual".

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

	Support creating shared libraries on Hurd/x86_64.
	Patch from
	<https://lists.gnu.org/archive/html/bug-hurd/2023-05/msg00086.html>.
	* m4/libtool.m4 (_LT_ENABLE_LOCK): Treat Hurd/x86_64 like
	Linux/x86_64.

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

	Fix link error regarding _libiconv_version on MSVC in C++ mode.
	Reported at <https://savannah.gnu.org/bugs/?64227>.
	* include/iconv.h.in (_libiconv_version): Enclose in an extern "C"
	block.

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

	Implement GB18030 version 2022.
	* lib/encodings.def (GB18030): Add alias GB18030:2005.
	(GB18030:2022): New encoding.
	* lib/gb18030ext.h (gb18030_2005_ext_2uni_pagefe): Renamed from
	gb18030ext_2uni_pagefe.
	(gb18030_2022_ext_2uni_pagefe): New array.
	(gb18030_2005_ext_mbtowc): Renamed from gb18030ext_mbtowc.
	(gb18030_2022_ext_mbtowc): New function.
	(gb18030_2005_ext_wctomb): Renamed from gb18030ext_wctomb.
	(gb18030_2022_ext_wctomb): New function.
	* lib/gb18030uni.h (gb18030_2022_charset2uni_pua1,
	gb18030_2022_charset2uni_pua2): New arrays.
	(gb18030_2005_uni_mbtowc): Renamed from gb18030uni_mbtowc.
	(gb18030_2022_uni_mbtowc): New function.
	(gb18030_2022_uni2charset_pua1, gb18030_2022_uni2charset_pua2): New
	arrays.
	(gb18030_2005_uni_wctomb): Renamed from gb18030uni_wctomb.
	(gb18030_2022_uni_wctomb): New function.
	* lib/gb18030_2005.h: Renamed from lib/gb18030.h. Update comments.
	(gb18030_2005_mbtowc): Renamed from gb18030_mbtowc.
	(gb18030_2005_pua2charset): Renamed from gb18030_pua2charset.
	(gb18030_2005_wctomb): Renamed from gb18030_wctomb.
	* lib/gb18030_2022.h: New file, based on lib/gb18030_2005.h.
	* lib/converters.h: Don't include gb18030.h. Include gb18030_2005.h,
	gb18030_2022.h.
	* lib/Makefile.in (SOURCE_FILES): Remove gb18030.h. Add gb18030_2005.h,
	gb18030_2022.h.
	* tests/GB18030-2005-BMP.TXT: Renamed from tests/GB18030-BMP.TXT.
	* tests/GB18030-2005.IRREVERSIBLE.TXT: Renamed from
	tests/GB18030.IRREVERSIBLE.TXT.
	* tests/GB18030-2022-BMP.TXT: New file.
	* tests/Makefile.in (check): Test GB18030:2005 instead of GB18030. Also
	test GB18030:2022.
	(clean): Don't remove GB18030.TXT. Instead, remove GB18030-2005.TXT and
	GB18030-2022.TXT.
	(SOURCE_FILES): Update. Add GB18030-2022-BMP.TXT.
	* README: Mention the new encoding.
	* man/iconv_open.3: Likewise.
	* NEWS: Likewise.

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

	Make the compiler used by Makefile.devel customizable.
	Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-05/msg00006.html>.
	* Makefile.devel: Require GNU make.
	(CC): Use value from the environment, if set and non-empty.
	(CFLAGS): Use value from the environment, if set.
	* autogen.sh (GMAKE): New variable.
	Use it for executing Makefile.devel.

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

	On z/OS, allow charset tagging of temporary shell scripts.
	Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-05/msg00002.html>.
	* lib/genaliases.c (BINARY_MODE): New macro.
	(main): Use it instead of "b".

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

	Integrate the last change.
	* src/Makefile.in (SOURCE_FILES): Add zos-tag.h.
	* tests/Makefile.in (SOURCE_FILES): Add check-tag.
	* NEWS: Mention the new functionality.

2023-05-12  Mike Fulton  <mikefultonpersonal@gmail.com>

	On z/OS, set a charset tag on iconv's output file.
	For the concept of charset tags as external metadata on z/OS files, see
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-04/msg00021.html>.
	* src/zos-tag.h: New file.
	* src/iconv.c: Include zos-tag.h.
	(convert): Add a 'tocode' parameter. On z/OS, turn off auto-conversion
	and tag the output file.
	(main): Update callers.
	* tests/check-ebcdic: On z/OS, make all test files initially untagged.
	* tests/check-tag: New file.
	* tests/Makefile.in (check): Pass the host_os to check-ebcdic. Invoke
	check-tag.

2023-04-03  Bruno Haible  <bruno@clisp.org>

	Fix genflags compilation error.
	* lib/genflags.c (ICONV_SURFACE_EBCDIC_ZOS_UNIX): New macro, copied from
	include/iconv.h.in.

	Allow overriding the newline conversion for EBCDIC encodings.
	Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-04/msg00009.html>.
	* include/iconv.h.in (ICONV_SURFACE_NONE,
	ICONV_SURFACE_EBCDIC_ZOS_UNIX): New macros.
	(ICONV_GET_FROM_SURFACE, ICONV_SET_FROM_SURFACE, ICONV_GET_TO_SURFACE,
	ICONV_SET_TO_SURFACE): New macros.
	* lib/converters.h (struct conv_struct): Add the fields isurface,
	osurface.
	(swap_x15_x25): New macro.
	* lib/iconv.c (iconv_open, iconv_open_into): Add local variables
	from_surface, to_surface.
	(ALL_SURFACES): New macro.
	(iconvctl): Adjust ICONV_TRIVIALP implementation. Implement the
	ICONV_{GET,SET}_{FROM,TO}_SURFACE requests.
	* lib/iconv_open1.h: Parse a /ZOS_UNIX surface specifier. Set
	from_surface, to_surface.
	* lib/iconv_open2.h: Copy the values of from_surface, to_surface into
	the conversion descriptor.
	* lib/ebcdic*.h (*_mbtowc): Test the isurface. If requested, call
	swap_x15_x25 right after fetching an input byte.
	(*_wctomb): Test the osurface. If requested, call swap_x15_x25 right
	before storing an output byte.
	* man/iconvctl.3 (REQUEST VALUES): Document the
	ICONV_{GET,SET}_{FROM,TO}_SURFACE requests.
	* src/iconv.c (main): If ICONV_EBCDIC_ZOS_UNIX is set, set the from/to
	surfaces accordingly.
	* man/iconv.1 (ENVIRONMENT): New section.
	* tests/check-ebcdic: New file.
	* tests/Makefile.in (check): Invoke it.
	(SOURCE_FILES): Add it.
	* NEWS: Mention the new functionality.

2023-03-31  Bruno Haible  <bruno@clisp.org>

	Add some transliterations for mathematical symbols.
	Based on <https://sourceware.org/bugzilla/show_bug.cgi?id=23132>
	and the translit_neutral change in
	<https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=513aaa0d782f8fae36732d06ca59d658149f0139>.
	Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-03/msg00002.html>.
	* lib/translit.def: Add a couple of transliterations in the range
	U+27C0..U+29FF.
	* NEWS: Mention it.

2023-03-31  Bruno Haible  <bruno@clisp.org>

	Upgrade transliterations to Unicode 15.0.0.
	* tools/gen-translit-def-part.lisp: Update comments.
	* lib/translit.def: Include differences between the generated files
	translit-part-4.0.0.def and translit-part-15.0.0.def.

2023-03-31  Bruno Haible  <bruno@clisp.org>

	Make table of transliterations more maintainable.
	* tools/gen-translit-def-part.lisp: New file.
	* Makefile.in (SOURCE_FILES): Add it.

2023-03-31  Bruno Haible  <bruno@clisp.org>

	Fix table of transliterations.
	* lib/translit.def: Sort according to Unicode code point.

2023-02-13  Bruno Haible  <bruno@clisp.org>

	Fix iconv link command for Cygwin.
	Inspired by https://www.cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/libiconv.git;a=blob;f=1.16-cross-install.patch;h=7b3c5c0d761497a20abf0e4cc38d74f2755445fb;hb=HEAD .
	Rationale: libintl may depends on libiconv.
	* src/Makefile.in (install): On the link command line, mention libintl
	before libiconv.

2023-01-29  Bruno Haible  <bruno@clisp.org>

	Fix a clang warning "a function declaration without a prototype...".
	* lib/loop_wchar.h (mbrtowc): Don't declare. Drop portability to BeOS.

2022-07-18  Bruno Haible  <bruno@clisp.org>

	Make autopull.sh more suited for continuous integration.
	* autopull.sh: Support option --one-time.

2022-07-18  Bruno Haible  <bruno@clisp.org>

	Move gnulib-tool invocation back from autopull.sh to autogen.sh.
	* autogen.sh: Revert last change. Improve comments.
	* autopull.sh: Only call 'gitsub.sh pull'.
	* HACKING: Mention autopull.sh.

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

	Split autogen.sh into autopull.sh and autogen.sh.
	* autopull.sh: New file, based on autogen.sh.
	* autogen.sh: Remove code that was moved to autopull.sh. Remove
	--skip-gnulib option.
	* Makefile.devel (all): Remove srclib/Makefile.gnulib.
	* Makefile.in (SOURCE_FILES): Add autogen.sh.
	* HACKING: Mention autopull.sh.

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

	Add GNU Project notice.
	* JOIN-GNU: New file. Inspired by a suggestion from José E. Marchesi
	on the gnu-prog-discuss mailing list.
	* README: Refer to it.
	* Makefile.in (SOURCE_FILES): Add it.

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

	Switch to libtool 2.4.7.
	* m4/libtool.m4: Update from libtool-2.4.7, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}.
	* m4/ltoptions.m4: Likewise.
	* m4/ltsugar.m4: Likewise.
	* m4/ltversion.m4: Likewise.
	* m4/lt~obsolete.m4: Likewise.
	* build-aux/ltmain.sh: Update from libtool-2.4.7, with modifications:
	2017-07-15  Bruno Haible  <bruno@clisp.org>
		Allow building statically linked binaries, through
		LDFLAGS="-static". Apply patch from
		<https://lists.gnu.org/archive/html/bug-libtool/2017-07/msg00000.html>.
		* build-aux/ltmain.sh (func_mode_help, func_mode_link): In the
		link mode, accept option '-static-uninstalled-libs' in place of
		'-static', and make '-static' an equivalent of '-all-static'.

2022-04-13  Bruno Haible  <bruno@clisp.org>

	Fix undefined behaviour.
	* tests/test-shiftseq.c (main2): Make input array larger.

2022-02-12  Bruno Haible  <bruno@clisp.org>

	Update translations.
	* po/ro.po: Update Romanian translations.
	* po/wa.po: Update Walloon translations.

2022-02-12  Bruno Haible  <bruno@clisp.org>

	Prepare for version 1.17.
	* configure.ac: Bump version number to 1.17.
	* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 9:0:7.
	* src/iconv.c (print_version): Update copyright year.
	* windows/iconv.rc: Likewise.
	* windows/libiconv.rc: Likewise.
	* README: Update download link.

2022-02-12  Bruno Haible  <bruno@clisp.org>

	Update source file list (regression 2022-01-23).
	* lib/Makefile.in (SOURCE_FILES): Add encodings_zos.def, ebcdic*.h.
	(GENERATED_FILES): Add aliases_zos.h, canonical_zos.h.
	* tests/Makefile.in (SOURCE_FILES): Add IBM-*.TXT.

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

	Update NEWS.
	* NEWS: Mention the EBCDIC encodings.

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

	Optimize the EBCDIC table sizes.
	* lib/converters.h (DEDUPLICATE_TABLES): New macro.
	* lib/ebcdic1025.h: Deduplicate tables with ebcdic880.h.
	* lib/ebcdic1123.h: Deduplicate tables with ebcdic1025.h.
	* lib/ebcdic1132.h: Deduplicate tables with ebcdic838.h.
	* lib/ebcdic1153.h: Deduplicate tables with ebcdic870.h.
	* lib/ebcdic1154.h: Deduplicate tables with ebcdic880.h.
	* lib/ebcdic1155.h: Deduplicate tables with ebcdic1026.h.
	* lib/ebcdic1156.h: Deduplicate tables with ebcdic1112.h.
	* lib/ebcdic1157.h: Deduplicate tables with ebcdic1122.h.
	* lib/ebcdic1158.h: Deduplicate tables with ebcdic1154.h, ebcdic1123.h.
	* lib/ebcdic1160.h: Deduplicate tables with ebcdic838.h.
	* lib/ebcdic1164.h: Deduplicate tables with ebcdic1130.h.
	* lib/ebcdic1165.h: Deduplicate tables with ebcdic870.h.
	* lib/ebcdic1166.h: Deduplicate tables with ebcdic1154.h.
	* lib/ebcdic4971.h: Deduplicate tables with ebcdic875.h.
	* lib/ebcdic12712.h: Deduplicate tables with ebcdic424.h.

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

	New EBCDIC encodings.
	Reported by Ulrich Schwab and Calvin Buckley via Jack Woehr.
	* NOTES: Mention how to enable EBCDIC encodings.
	* tests/IBM-*.TXT: New files.
	* tools/8bit_tab_to_h.c (main): Emit copyright header with year 2022.
	* tools/Makefile: Add rules for generating ebcdic*.h.
	* lib/ebcdic*.h: New files, automatically generated by tools/Makefile.
	* lib/ebcdic838.h: Tweak reverse mapping manually.
	* lib/ebcdic1160.h: Likewise.
	* lib/converters.h: Include all ebcdic*.h.
	* lib/encodings_zos.def: New file.
	* lib/genaliases2.c: Include encodings_zos.def.
	* lib/genflags.c: Likewise.
	* Makefile.devel (lib/aliases_zos.h lib/canonical_zos.h): New rule.
	(lib/flags.h, totally-clean): Update.
	* lib/aliases2.h: Include aliases_zos.h.
	* lib/iconv.c (USE_ZOS): New macro.
	Include encodings_zos.def, canonical_zos.h.
	* README, man/iconv_open.3: Document the IBM-* encodings.
	* tests/Makefile.in (check-extra-yes): Also test the EBCDIC encodings.

2022-01-04  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* gnulib-local/m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H
	instead of ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations.

2021-09-19  Bruno Haible  <bruno@clisp.org>

	tests: Avoid check-subst failures in QEMU user-mode environments.
	* Makefile.devel (GNULIB_MODULES): Add stdbool.
	(gnulib-imported-files): Copy also tests/qemu.h.
	* tests/is-native.c: New file.
	* tests/Makefile.in (is-native, is-native.@OBJEXT@): New targets.
	(clean): Remove the 'is-native' program.
	(SOURCE_FILES): Add is-native.c.
	(IMPORTED_FILES): Add qemu.h.
	* tests/check-subst: Invoke 'locale charmap' only in native
	environments.

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

	README: Update.
	Reported at <https://savannah.gnu.org/bugs/?60837>.
	* README: Overhaul the paragraph that mentions iconv.m4.

2021-06-06  Bruno Haible  <bruno@clisp.org>

	gnulib-local: Put real license notice into the source files.
	* gnulib-local/lib/alloca.in.h: Use an LGPLv2+ notice.

2021-02-28  Bruno Haible  <bruno@clisp.org>

	Update DEPENDENCIES.
	* DEPENDENCIES: List the normal dependencies of a package with an
	Autoconf-generated configure file.

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

	Support creating shared libraries on MidnightBSD.
	Patch from <https://savannah.gnu.org/patch/?10007>.
	* m4/libtool.m4: Treat MidnightBSD like FreeBSD.
	* build-aux/ltmain.sh: Likewise.

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

	Update after gnulib changed on 2020-08-26.
	* configure.ac: Test $iconv_arg1, not $am_cv_proto_iconv_arg1.

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

	Switch to autoconf 2.71.
	* autogen.sh: Update comment.
	* configure.ac: Use AS_HELP_STRING instead of AC_HELP_STRING. Invoke
	AC_C_BIGENDIAN instead of CL_WORDS_LITTLEENDIAN.
	* m4/eilseq.m4: Require Autoconf >= 2.61.
	(AC_EILSEQ): Improve quoting. Use AC_COMPUTE_INT instead of
	_AC_COMPUTE_INT.
	* m4/endian.m4: Remove file.
	* Makefile.in (SOURCE_FILES): Remove it.

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

	Switch to autoconf 2.70.
	* Makefile.devel (AUTOCONF, AUTOHEADER): Remove '-2.69' suffix.
	* HACKING: Remove sentence about symbolic links.
	* autogen.sh: Update comment.

2020-08-31  Bruno Haible  <bruno@clisp.org>

	Fix some -Wcast-qual warning, reported by clang.
	* lib/iconv.c (compare_by_name): Add more 'const'.
	(iconv_canonicalize): Cast value to 'unsigned char', not pointer to 'unsigned char *'.
	* lib/iconv_open1.h: Likewise.

2020-08-30  Bruno Haible  <bruno@clisp.org>

	Make sure that build-aux/compile is in the tarball.
	* autogen.sh: Fetch also 'build-aux/compile' through gnulib-tool.
	* Makefile.devel (srclib/Makefile.in): Don't fetch nor delete
	'build-aux/compile'.
	* Makefile.in (AUTOMAKE_IMPORTED_FILES): Remove build-aux/compile.
	(IMPORTED_FILES): Add build-aux/compile.

2020-08-29  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* configure.ac (AC_PREREQ): Bump minimum Autoconf version to 2.64.

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

	Avoid a GCC warning with GCC >= 7.
	Reported by Reini Urban <rurban@cpan.org>
	in <https://savannah.gnu.org/bugs/?58903>.
	* lib/gentranslit.c (main): Reset i to 0 each time p gets a new value.
	Add assertion about i's possible values.

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

	Fix an autogen.sh failure (regression from 2016-12-04).
	Reported by Petr Ovtchenkov <ptr@void-ptr.info> in
	<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2020-04/msg00003.html>.
	* autogen.sh: Invoke also the Makefile target srclib/Makefile.in, so as
	to get build-aux/install-sh. Finish the "copy files" phase before recursing
	through the subpackages tree through Makefile.devel.
	* Makefile.devel: Reorder targets.

2020-04-04  Bruno Haible  <bruno@clisp.org>

	Don't use LGPLv3.
	* gnulib-local/modules/mbstate (License): Set to LGPLv2+.

2020-04-04  Bruno Haible  <bruno@clisp.org>

	Change the license of the library from LGPL 2.0 to LGPL 2.1.
	* COPYING.LIB: Upgrade to LGPL 2.1.

2019-12-23  Bruno Haible  <bruno@clisp.org>

	Do export the symbol 'locale_charset' (needed by GNU bash).
	* lib/Makefile.in (DEFS): Define also BUILDING_LIBCHARSET.

2019-09-01  Bruno Haible  <bruno@clisp.org>

	build: Add support for shallow-cloning of subdirectories.
	* gitsub.sh (func_usage): Document allowed git options with 'git pull'.
	(func_pull): Accept GIT_OPTIONS argument.
	(pull): Parse git options before complaining about too many arguments.
	Pass the git options to func_pull.

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

	Don't export the symbol 'aliases_lookup' on non-ELF platforms.
	* Makefile.devel (lib/aliases.h, lib/aliases_sysaix.h,
	lib/aliases_syshpux.h, lib/aliases_sysosf1.h, lib/aliases_syssolaris.h):
	Add a 'static' keyword in front of the declaration of aliases_lookup.

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

	Update to current gnulib.
	* Makefile.devel (GNULIB_MODULES): Add lib-symbol-visibility.
	(srclib/Makefile.gnulib): Copy codeset.m4.
	* srclib/Makefile.am (AM_CFLAGS): Initialize.

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

	Drop unused macro gl_GLIBC21.
	* autogen.sh: Don't copy glibc21.m4.

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

	Fix comment.
	Reported by Paul Hardy <unifoundry@gmail.com>.
	* lib/jisx0213.h: Fix comment about the underlying standard version.

2019-05-11  Bruno Haible  <bruno@clisp.org>

	Update bug reporting instructions.
	* README: Tell users to report bugs in the bug tracker or by email.
	* src/iconv.c (usage): Likewise.
	(print_version): Move URL out of translatable string.

2019-04-26  Bruno Haible  <bruno@clisp.org>

	Update translations.
	$ rsync -Lrtvz translationproject.org::tp/latest/libiconv/ po/new
	$ cd po/new
	$ for f in *.po; do \
	    msgmerge --update --lang=${f%.po} --previous $f ../libiconv.pot; \
	  done
	$ mv *.po ../
	$ cd ..; rm -rf new

2019-04-26  Bruno Haible  <bruno@clisp.org>

	Update POT file.
	$ cd po; make update-po

2019-04-26  Bruno Haible  <bruno@clisp.org>

	Prepare for version 1.16.
	* configure.ac: Bump version number to 1.16.
	* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 8:1:6.
	* src/iconv.c (print_version): Update copyright year.
	* windows/iconv.rc: Likewise.
	* windows/libiconv.rc: Likewise.
	* README: Update download link.

2019-04-26  Bruno Haible  <bruno@clisp.org>

	Tweak exported symbols when --enable-relocatable is used.
	* lib/Makefile.in (DEFS): Map 'relocate2' to a different symbol.

2019-04-01  Bruno Haible  <bruno@clisp.org>

	build: Separate git operations from build operations.
	* gitsub.sh: New file, from gnulib.
	* .gitmodules: New file.
	* autogen.sh: Remove all git operations. Look at GNULIB_SRCDIR
	environment variable. Ignore the GNULIB_TOOL environment variable.
	* HACKING: Explain when to use gitsub.sh.

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

	Avoid signed integer overflow during shifts.
	Reported by Jeffrey Walton <noloader@gmail.com>.
	* lib/tcvn.h (tcvn_wctomb): Use unsigned integer type for bit mask
	operation.
	* lib/viscii.h (viscii_wctomb): Likewise.

2019-03-04  Bruno Haible  <bruno@clisp.org>

	Add support for --enable-relocatable to libcharset.
	* autogen.sh: Copy some more files to libcharset/build-aux/ and
	libcharset/m4/.

2019-03-04  Bruno Haible  <bruno@clisp.org>

	Update --enable-relocatable support after gnulib changed.
	* configure.ac: Move the LT_INIT invocation before the gl_RELOCATABLE
	invocation. Remove unused argument to gl_RELOCATABLE.

2019-01-27  Bruno Haible  <bruno@clisp.org>

	Accommodate a shell that is not in /bin/sh.
	* Makefile.in (SHELL): Use the value found by configure.
	* lib/Makefile.in (SHELL): Likewise.
	* man/Makefile.in (SHELL): Likewise.
	* src/Makefile.in (SHELL): Likewise.
	* tests/Makefile.in (SHELL): Likewise.
	(check, check-extra-yes): Use SHELL to run the check-* scripts.

2019-01-27  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* Makefile.in (GNULIB_IMPORTED_FILES): Remove build-aux/snippet/*.

2019-01-27  Bruno Haible  <bruno@clisp.org>

	Update support for building with MSVC. Automake does not install ar-lib.
	* autogen.sh: Fetch build-aux/ar-lib here.
	* Makefile.devel (srclib/Makefile.in): Don't fetch build-aux/ar-lib
	here.
	* Makefile.in (AUTOMAKE_IMPORTED_FILES): Remove build-aux/ar-lib.
	(IMPORTED_FILES): Add build-aux/ar-lib.

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

	Revisit handling of file descriptors closed by the parent process.
	* src/iconv.c (main): Add comment.

2018-10-23  Bruno Haible  <bruno@clisp.org>

	Remove outdated DJGPP build infrastructure.
	Approved by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
	* djgpp: Remove directory.
	* INSTALL.djgpp: Remove file.
	* Makefile.in (SOURCE_FILES): Remove them.

2018-10-23  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* configure.ac (AC_PREREQ): Bump minimum Autoconf version to 2.63.

2018-09-22  Bruno Haible  <bruno@clisp.org>

	Avoid some warnings in MSVC build.
	* include/export.h: Handle MSVC compiler as well.

2018-09-22  Bruno Haible  <bruno@clisp.org>

	Update from gnulib. Move mapping tables into the code.
	* autogen.sh: Don't create libcharset/m4/relocatable-lib.m4.
	* Makefile.in (mostlyclean, clean, distclean, maintainer-clean): Don't
	remove lib/charset.alias.
	* tests/check-subst: Don't set CHARSETALIASDIR.

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

	Drop special instructions for OSF/1.
	* INSTALL.generic: Remove the recommendation for OSF/1.

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

	Simplify: Remove the ability to install a preloadable library.
	* preload/*: Remove directory.
	* Makefile.devel: Don't recurse into 'preload'.
	* Makefile.in: Likewise.
	* configure.ac: Don't declare 'preload' as a subdirectory.
	* README, NEWS: Update.

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

	Simplify code. Drop support for Borland C++ on Windows.
	* lib/iconv.c: Simplify 'defined _WIN32 || defined __WIN32__' to just
	'defined _WIN32'.
	* lib/iconv_open1.h: Likewise.

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

	* lib/relocatable.c: Update from gnulib.

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

	Switch to automake 1.16.
	* autogen.sh: Update comment.
	* Makefile.devel (AUTOMAKE, ACLOCAL): Switch to version 1.16.
	* libcharset/Makefile.devel (ACLOCAL): Likewise.
	* preload/Makefile.devel (ACLOCAL): Likewise.

2018-03-27  Bruno Haible  <bruno@clisp.org>

	Doc tweaks.
	* README: Don't recommend to use --prefix=/usr/local, as it produces
	problems with GCC (since GCC's treatment of /usr/local/include and
	/usr/local/lib is inconsistent by default). Don't recommend to use
	the iconv.m4 installed by GNU gettext, because it won't work when
	GNU automake and GNU gettext are installed with different --prefix
	options; instead recommend the 'iconv' module from gnulib.

2018-01-27  Bruno Haible  <bruno@clisp.org>

	Rename some files.
	* INSTALL.windows: Renamed from README.windows.
	* INSTALL.djgpp: Renamed from README.djgpp.
	* Makefile.in (SOURCE_FILES): Update.

2018-01-03  Bruno Haible  <bruno@clisp.org>

	Fix installation in 64-bit mode on AIX.
	* lib/Makefile.in (AR): New variable.
	(install): Use it instead of hardcoding 'ar'.

2017-11-26  Bruno Haible  <bruno@clisp.org>

	Avoid end-of-lines problem in generated shell scripts on Cygwin.
	Patch by Feiyun Wang <feiyunw@yahoo.com>.
	* lib/genaliases.c (main): Create canonical.sh and canonical_local.sh
	with Unix end-of-line characters, regardless of Cygwin choice of
	text mode vs. binary mode.

2017-07-15  Bruno Haible  <bruno@clisp.org>

	Allow building statically linked binaries, through LDFLAGS="-static".
	Apply patch from
	<https://lists.gnu.org/archive/html/bug-libtool/2017-07/msg00000.html>.
	* build-aux/ltmain.sh (func_mode_help, func_mode_link): In the link
	mode, accept option '-static-uninstalled-libs' in place of '-static',
	and make '-static' an equivalent of '-all-static'.

2017-07-15  Bruno Haible  <bruno@clisp.org>

	Don't attempt to build preloadable_libiconv.so when linking statically.
	* preload/configure.ac (enable_shared, enable_static): Don't force
	shared libraries when LDFLAGS indicates static linking.
	(PLUGLIB): Set to empty when is not configured for building shared
	libraries.

2017-07-15  Bruno Haible  <bruno@clisp.org>

	Get rid of autom4te.cache directories, as far as possible.
	* Makefile.devel (srclib/Makefile.in, aclocal.m4, configure,
	config.h.in): Remove autom4te.cache after invoking aclocal, autoconf,
	autoheader, automake.
	* preload/Makefile.devel (aclocal, configure): Likewise.

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

	* lib/relocatable.h: Update from gnulib.
	* lib/relocatable.c: Update from gnulib.

2017-01-30  Bruno Haible  <bruno@clisp.org>

	Prepare for version 1.15.
	* src/iconv.c (print_version): Update copyright year.
	* windows/iconv.rc: Likewise.
	* windows/libiconv.rc: Likewise.

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

	Make Makefile.devel consistent with .gitignore.
	* Makefile.devel (srclib/Makefile.in): Depend on aclocal.m4.
	(totally-clean): Remove also aclocal.m4.

2016-12-25  Bruno Haible  <bruno@clisp.org>

	Tweak autogen.sh.
	* autogen.sh: Emit a "done" diagnostic when autogen.sh completed
	successfully.

2016-12-25  Bruno Haible  <bruno@clisp.org>

	Reorder Makefile.devel.
	* Makefile.devel: Reorder: put gnulib targets before autotools targets.

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

	Cleanup useless removals.
	* lib/Makefile.in (distclean): No need to remove 'libtool'.

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

	Update comments.
	* Makefile.devel: Update comments about release process.

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

	Create tarballs through an Automake-like "make dist" command.
	* Makefile.in (SOURCE_FILES, LIBTOOL_IMPORTED_FILES,
	AUTOMAKE_OLD_IMPORTED_FILES, AUTOMAKE_IMPORTED_FILES, IMPORTED_FILES,
	GENERATED_FILES, DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.
	(PACKAGE, VERSION, TAR, GZIP): New macros.
	(dist): New target.
	* lib/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.
	* man/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.
	* preload/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.
	* src/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.
	* tests/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES,
	DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.

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

	Remove duplicates of imported files from version control.
	* autogen.sh: Copy imported files to libcharset.

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

	Always use the newest released copies of files brought in from Automake.
	* Makefile.devel (srclib/Makefile.in): Make sure to get new versions of
	files brought in by automake.
	* build-aux/install-sh: Remove from version control.
	* build-aux/missing: Likewise.

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

	Always use the newest copies of config.guess, config.sub.
	* Makefile.devel (gnulib-imported-files): New target.
	* autogen.sh: Invoke it.
	* build-aux/config.guess: Remove from version control.
	* build-aux/config.sub: Likewise.

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

	Always use the newest copy of fcntl-o.m4.
	* m4/fcntl-o.m4: Remove file. Rely on srcm4/fcntl-o.m4 instead.

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

	Remove obsolete documentation.
	* PORTS: Remove file.

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

	Make Makefile.devel more useful for the users of the released tarball.
	* Makefile.devel (srclib/Makefile.gnulib): Don't force this target.
	(gnulib-clean): New target.
	(totally-clean): New target. Do the removals from autogen.sh. Also,
	remove lib/aliases*.gperf, lib/canonical*.h, man/iconvctl.3.html,
	man/iconv_open_into.3.html.
	* autogen.sh: Invoke target gnulib-clean before srclib/Makefile.gnulib.
	Invoke target totally-clean before all.
	* preload/Makefile.devel (totally-clean): New target.

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

	Modernize configure.ac.
	* configure.ac: Use 2-argument AC_INIT. Avoid an AM_INIT_AUTOMAKE
	warning.
	* preload/configure.ac: Use 2-argument AC_INIT. Use AC_CONFIG_SRCDIR.

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

	Towards reproducible builds.
	* Makefile.devel (man/%.html): Remove the CreationDate comment line
	from the output.

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

	Update to gettext-0.19.8.1.
	* ABOUT-NLS: Update through 'gettextize'.

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

	Update documentation.
	* HACKING: Refer to the Git repository.

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

	Avoid compilation warnings in 'genflags' program.
	* lib/genflags.c: Avoid warnings from GCC's -Wunused-function option.

2016-12-02  Bruno Haible  <bruno@clisp.org>

	* relocatable.c: Update from gnulib.

2016-11-25  Bruno Haible  <bruno@clisp.org>

	Prepare for version 1.15.
	* configure.ac: Bump version number to 1.15.
	* README: Likewise.
	* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
	* windows/iconv.rc: Update.
	* windows/libiconv.rc: Update.
	* Makefile.devel: Update comments.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 8:0:6.
	* src/iconv.c (print_version): Update copyright year.

2016-11-23  Bruno Haible  <bruno@clisp.org>

	Update installation instructions for Windows.
	* README.windows: Assume a 64-bit Windows. Explain both 32-bit and
	64-bit builds. Add instructions for the MS Visual C/C++ tool chain.
	Revamp instructions for Cygwin.

2016-11-23  Bruno Haible  <bruno@clisp.org>

	Drop the nickname "woe32".
	* README.windows: Renamed from README.woe32.

2016-11-22  Bruno Haible  <bruno@clisp.org>

	Update support for building with MSVC.
	* Makefile.devel (srclib/Makefile.in): Import 'ar-lib' and 'compile'
	from gnulib.
	* lib/Makefile.in (install-lib, install): Install the .la file with
	$(INSTALL), not $(INSTALL_DATA). Otherwise the native Windows DLL gets
	installed without execution permissions, and programs linked to it fail:
	in a Cygwin shell with exit code 127, or from a cmd.exe window with a
	dialog "The application was unable to start correctly (0xc0000022)."

2016-11-19  Bruno Haible  <bruno@clisp.org>

	Fix link error when compiling with gcc -O0.
	* lib/iconv.c (aliases2_lookup): Make static.
	Reported by Chung-Lin Tang <chunglin.tang@gmail.com>
	at https://savannah.gnu.org/bugs/?47953 .

2016-11-17  Bruno Haible  <bruno@clisp.org>

	UTF-8: Reject surrogates and out-of-range code points.
	* lib/utf8.h (utf8_mbtowc, utf8_wctomb): Reject code points in the
	range 0xD800..0xDFFF and >= 0x110000.
	* tests/genutf8.c (main): Don't emit mappings for 0xD800..0xDFFF.

2016-10-22  Bruno Haible  <bruno@clisp.org>

	Switch to libtool 2.4.6.
	* m4/libtool.m4: Update from libtool-2.4.6, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}..
	* m4/ltoptions.m4: Likewise.
	* m4/ltversion.m4: Likewise.
	* build-aux/ltmain.sh: Likewise.

2016-10-14  Bruno Haible  <bruno@clisp.org>

	Use 'size_t', not 'int', for the length of a string.
	* lib/iconv.c: Include <limits.h>.
	* lib/genflags.c: Likewise.
	* lib/converters.h (struct mbtowc_funcs, struct wctomb_funcs): Change
	'int n' parameter to 'size_t n'.
	(RET_COUNT_MAX): New macro.
	* lib/*.h: Use 'size_t n' instead of 'int n'.
	* lib/ucs2.h (ucs2_mbtowc): Make sure 'count' does not cause an 'int'
	overflow.
	* lib/ucs4.h (ucs4_mbtowc): Likewise.
	* lib/utf16.h (utf16_mbtowc): Likewise.
	* lib/utf32.h (utf32_mbtowc): Likewise.
	* tools/8bit_tab_to_h.c: Generate function signatures with 'size_t n'.
	* tools/cjk_tab_to_h.c: Likewise.
	* NEWS: Mention the change.

2016-10-04  Bruno Haible  <bruno@clisp.org>

	Extend CP1255 mapping.
	* lib/cp1255.h (cp1255_2uni, cp1255_page05): Map 0xCA to U+05BA.
	* tests/CP1255.TXT: Likewise.
	This matches https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt
	and what the native Windows converter does since at least Windows XP.

2016-10-01  Ben Noordhuis  <info@bnoordhuis.nl>  (tiny change)
            Bruno Haible  <bruno@clisp.org>

	Remove large stack requirement from gentranslit.
	* lib/gentranslit.c (main): Heap-allocate large arrays.
	* Makefile.devel (lib/translit.h): Remove 'ulimit -s unlimited' command.

2015-12-10  Ben Noordhuis  <info@bnoordhuis.nl>  (tiny change)

	Remove unused array from gentranslit.
	* lib/gentranslit.c (main): Remove unused array.
	* Makefile.devel (CC): Add -Wall option.
	Reported in https://savannah.gnu.org/bugs/?46663 .

2016-10-01  Bruno Haible  <bruno@clisp.org>

	Fix bug #41187.
	* src/iconv.c (main): Increment i after parsing the --silent option.
	Reported in https://savannah.gnu.org/bugs/?41187 .

2016-10-01  Bruno Haible  <bruno@clisp.org>

	Update to current gnulib.
	* Makefile.devel (GNULIB_MODULES): Remove memmove.
	* tests/Makefile.in (INCLUDES): Make sure to include the top-level
	"config.h". Needed for the 'binary-io' module.

2016-10-01  Bruno Haible  <bruno@clisp.org>

	Switch to automake 1.15.
	* autogen.sh: Update comment.
	* Makefile.devel (AUTOMAKE, ACLOCAL): Switch to version 1.15.
	(srclib/Makefile.in): Don't remove auxiliary files brought in by
	automake.
	* preload/Makefile.devel (ACLOCAL): Switch to version 1.15.
	* srclib/Makefile.am (AUTOMAKE_OPTIONS): Add subdir-objects.
	* build-aux/missing: Update from automake-1.15.

2016-10-01  Bruno Haible  <bruno@clisp.org>

	Remove autogenerated doc files from version control.
	* man/iconvctl.3.html: Remove file.
	* man/iconv_open_into.3.html: Remove file.

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

	Change copyright holder of man pages.
	* man/*.[13]: Replace myself with FSF.

2012-06-30  Bruno Haible  <bruno@clisp.org>

	Make it possible to run 'genaliases2' on native Windows.
	* lib/genaliases2.c (main): Expect 3 arguments. Open the output files
	explicitly. Complain if they don't exist.
	* Makefile.devel (lib/aliases_*.h): Pass the output filenames as
	arguments to genaliases.
	Reported at <https://savannah.gnu.org/bugs/?36748>.

	Make it possible to run 'genaliases' on native Windows.
	* lib/genaliases.c (main): Expect 3 arguments. Open the output files
	explicitly. Complain if they don't exist. Improve error checking.
	* Makefile.devel (lib/aliases*.h): Pass the output filenames as
	arguments to genaliases.
	Reported at <https://savannah.gnu.org/bugs/?36748>.

2012-05-13  Bruno Haible  <bruno@clisp.org>

	Tweak the GB18030 converter to map 0x8135F437 to U+E7C7.
	* lib/gb18030.h (gb18030_pua2charset, gb18030_wctomb): Remove mapping
	from U+E7C7 to 0xA8BC.
	* lib/gb18030uni.h (gb18030uni_mbtowc): Treat 0x8135F437 as a special
	case.
	(gb18030uni_wctomb): Treat U+E7C7 as a special case.
	* tests/GB18030-BMP.TXT: Map 0x8135F437 to U+E7C7, not U+1E3F.
	* tests/GB18030.IRREVERSIBLE.TXT: Remove irreversible mappings for
	0x8135F437 and U+E7C7.

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

	Switch to autoconf 2.69 and automake 1.12.
	* autogen.sh: Update comment.
	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.69.
	(AUTOMAKE, ACLOCAL): Switch to version 1.12.
	* preload/Makefile.devel (AUTOCONF): Switch to version 2.69.
	(ACLOCAL): Switch to version 1.12.

2012-03-24  Bruno Haible  <bruno@clisp.org>

	Avoid a GCC warning.
	* lib/isoir165.h (isoir165_mbtowc): Don't shadow the 'ret' variable.

2012-01-26  Bruno Haible  <bruno@clisp.org>

	Modernize quoting.
	* README: Quote 'like this', not `like this', as per the recent change
	to the GNU coding standards.
	* NOTES: Likewise.
	* gnulib-local/lib/xmalloc.c: Likewise.
	* lib/config.h.in: Likewise.
	* src/iconv.c (usage): Likewise.
	* tests/uniq-u.c: Likewise.
	* tools/cjk_tab_to_h.c (output_uni2charset_sparse, do_jisx0213):
	Likewise.
	* lib/big5.h: Update accordingly.
	* lib/cns11643_inv.h: Likewise.
	* lib/cp932ext.h: Likewise.
	* lib/cp950ext.h: Likewise.
	* lib/gb12345ext.h: Likewise.
	* lib/gb2312.h: Likewise.
	* lib/gbkext_inv.h: Likewise.
	* lib/hkscs1999.h: Likewise.
	* lib/hkscs2001.h: Likewise.
	* lib/hkscs2004.h: Likewise.
	* lib/hkscs2008.h: Likewise.
	* lib/isoir165ext.h: Likewise.
	* lib/jisx0208.h: Likewise.
	* lib/jisx0212.h: Likewise.
	* lib/jisx0213.h: Likewise.
	* lib/ksc5601.h: Likewise.
	* lib/uhc_1.h: Likewise.
	* lib/uhc_2.h: Likewise.

2012-01-15  Bruno Haible  <bruno@clisp.org>

	Support for MSVC 9.
	* lib/config.h.in (inline, mode_t, ssize_t): Copy snippets from top
	config.h.in.
	* tests/genutf8.c: Include config.h.
	* tests/gengb18030z.c: Likewise.
	* woe32dll/export.h (VARIABLE): Define to empty if not using GCC.

2011-01-28  Bruno Haible  <bruno@clisp.org>

	Add a comment.
	* woe32dll/export.h: Add a reference to the woe32dll writeup.

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

	Update after gnulib changed.
	* gnulib-local/lib/error.h.diff: Update.

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

	Talk about "native Windows API", not "Woe32".
	* lib/relocatable.c: Update comments to mention native Windows.

2012-01-04  Bruno Haible  <bruno@clisp.org>

	Talk about "native Windows API", not "Win32".
	* lib/relocatable.c: Update comments to mention native Windows.
	(WINDOWS_NATIVE): Renamed from WIN32_NATIVE.

2011-10-27  Bruno Haible  <bruno@clisp.org>

	Fix bug with error handling in UCS-2, UCS-4, UTF-32 decoders.
	* lib/ucs2.h (ucs2_mbtowc): Increment count only after validating wc.
	* lib/ucs4.h (ucs4_mbtowc): Likewise.
	* lib/utf32.h (utf32_mbtowc): Likewise.
	Reported at <https://savannah.gnu.org/bugs/?34916>.

2012-06-30  Bruno Haible  <bruno@clisp.org>

	Improve ISO-2022-CP-MS versus CP932.
	* lib/iso2022_jpms.h (iso2022_jpms_mbtowc): Recognize characters from
	the rows 0x79..0x7C as rows from CP932.
	* tests/ISO-2022-JP-MS-snippet.alt: New file, renamed from
	tests/ISO-2022-JP-MS-snippet.
	* tests/ISO-2022-JP-MS-snippet.UTF-8: Update the rows that correspond
	to ESC $ B 0x79..0x7C.
	* tests/ISO-2022-JP-MS-snippet: Likewise.
	* tests/check-stateful: Also test the *-snippet.alt file if it exists.
	* tests/check-stateful.bat: Likewise.

2012-06-30  Bruno Haible  <bruno@clisp.org>

	Improve ISO-2022-CP-MS versus CP932.
	* lib/cp50221_0208_ext.h (cp50221_0208_ext_page30): Map U+301D like
	U+301E.
	* lib/iso2022_jpms.h (iso2022_jpms_wctomb): Map U+663B to JISX0208
	0x7A 0x36, U+FFE2 to 0x7C 0x7B, U+FFE4 to 0x7C 0x7C.
	Reported by Jeff Diehl <diehl.jeff@gmail.com>.

2011-10-23  Bruno Haible  <bruno@clisp.org>

	New encoding ISO-2022-CP-MS.
	* NOTES: Mention ISO-2022-JP-MS.
	* tools/CP50221-0208-EXT.TXT: New file.
	* tools/CP50221-0212-EXT.TXT: New file.
	* tools/8bit_tab_to_h.c: Add comments about how to generate
	cp50221_0208_ext.h, cp50221_0212_ext.h.
	* tools/Makefile: Add rules for generating cp50221_0208_ext.h,
	cp50221_0212_ext.h.
	* lib/cp50221_0208_ext.h: New file, mostly generated.
	* lib/cp50221_0212_ext.h: New file, mostly generated.
	* lib/iso2022_jpms.h: New file.
	* lib/converters.h: Include it.
	* lib/encodings.def: Add ISO-2022-JP-MS.
	* README, man/iconv_open.3: Add ISO-2022-JP-MS.
	* tests/ISO-2022-JP-MS-snippet: New file.
	* tests/ISO-2022-JP-MS-snippet.UTF-8: New file.
	* tests/Makefile.in (check): Also test ISO-2022-JP-MS.
	Reported by Jeff Diehl <diehl.jeff@gmail.com>.

2011-10-23  Bruno Haible  <bruno@clisp.org>

	* lib/encodings.def: Add comments about Windows names of encodings.

2011-10-18  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update from libtool-2.4.2, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}..
	* m4/ltoptions.m4: Likewise.
	* m4/ltversion.m4: Likewise.
	* build-aux/ltmain.sh: Likewise.

2011-10-03  Bruno Haible  <bruno@clisp.org>

	* lib/relocatable.c: Update from gnulib.

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

	Fix "make check" failure when $(srcdir) != $(builddir).
	* tests/Makefile.in (check): When $(srcdir) != ., temporarily copy
	GB18030.IRREVERSIBLE.TXT into the build directory.
	Reported by Christian Weisgerber <naddy@mips.inka.de>.

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

	Ensure all HTML-formatted man pages are up-to-date.
	* Makefile.devel (all): Depend on man/iconvctl.3.html and
	man/iconv_open_into.3.html.

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

	* Version 1.14 released.

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

	* configure.ac: Bump version number to 1.14.
	* README: Likewise.
	* include/iconv.h.in (_LIBICONV_VERSION): Likewise.
	* windows/iconv.rc: Update.
	* lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 7:1:5.
	* src/iconv.c (print_version): Update copyright year.

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

	Avoid a test failure on Solaris 2.6 and HP-UX 11.00.
	* tests/test-to-wchar.c (main): Skip the test if conversion to wchar_t
	is not supported.

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

	* tests/check-subst: Add comments about OSF/1.

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

	* lib/relocatable.c: Update from gnulib.

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

	Upgrade the GB18030 converter to the version from 2005.
	* lib/gb18030ext.h (gb18030ext_2uni_pagefe): Change element type to
	'unsigned int'. Change values for 0xFE51..0xFE53, 0xFE59, 0xFE61,
	0xFE66, 0xFE67, 0xFE6C, 0xFE6D, 0xFE76, 0xFE7E, 0xFE90, 0xFE91, 0xFEA0.
	(gb18030ext_mbtowc): Change type of wc to 'unsigned int'. Change values
	for 0xA6D9..0xA6DF, 0xA6EC..0xA6ED, 0xA6F3, 0xA8BC.
	(gb18030ext_page9f, gb18030ext_pagefe): New constant arrays.
	(gb18030ext_wctomb): Change values for U+1E3F, U+9FB4..U+9FBB,
	U+FE10..U+FE19, U+20087, U+20089, U+200CC, U+215D7, U+2298F, U+241FE.
	* tests/GB18030-BMP.TXT: Change values for 0xA6D9..0xA6DF,
	0xA6EC..0xA6ED, 0xA6F3, 0xA8BC, 0xFE51..0xFE53, 0xFE59, 0xFE61, 0xFE66,
	0xFE67, 0xFE6C, 0xFE6D, 0xFE76, 0xFE7E, 0xFE90, 0xFE91, 0xFEA0, to map
	to now-assigned Unicode codepoints.
	* tests/GB18030.IRREVERSIBLE.TXT: New file.

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

	Fix conversion bug in CP1258 converter.
	* lib/vietcomb.h (viet_comp_table_data): Remove entry for
	U+00A5 U+0301. Fix entry for U+00A8 U+0301.
	(viet_decomp_table): Fix entry for U+0385.
	* tests/CP1258.IRREVERSIBLE.TXT: Update.
	Reported by Gertjan Halkes <gertjan@ghalkes.nl>.

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

	Improve interactive behaviour of iconv program.
	* src/iconv.c (convert): Flush the output before starting a possibly
	blocking safe_read call.

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

	Fix interactive behaviour of iconv program.
	* Makefile.devel (GNULIB_MODULES): Add safe-read.
	* src/iconv.c: Include safe-read.h.
	(convert): Take the infile as a file descriptor, not as a FILE stream.
	Use safe_read() instead of fread().
	(main): Update.
	Reported by Xavier Pucel <xpucel@hotmail.com>.

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

	Update after gnulib changed.
	* autogen.sh (GNULIB_MODULES): Remove exit, add stdlib.

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

	Update after gnulib changed.
	* gnulib-local/m4/alloca.m4 (gl_FUNC_ALLOCA): Update.

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

	Work around <wchar.h> bug on OSF/1 5.1.
	* lib/loop_wchar.h: Before including <wchar.h>, include <stdio.h> and
	some other includes.

2011-03-27  KO Myung-Hun  <komh@chollian.net>

	Fix installation on OS/2.
	* src/Makefile.in (all, iconv_no_i18n): Add $(EXEEXT) suffix to
	iconv_no_i18n. This is the recommended way to use libtool, see
	<https://lists.gnu.org/archive/html/bug-libtool/2009-04/msg00013.html>.

2011-03-31  Bruno Haible  <bruno@clisp.org>

	gentranslit: Fix buffer overrun.
	* lib/gentranslit.c (main): Allocate more room for the suffix strings
	of the translit pages.
	Reported by Ben Noordhuis <info@bnoordhuis.nl>.

2011-02-28  Bruno Haible  <bruno@clisp.org>

	* lib/relocatable.h: Update from gnulib.
	* lib/relocatable.c: Likewise.

2011-01-29  Corinna Vinschen  <corinna-cygwin@cygwin.com>
            Bruno Haible  <bruno@clisp.org>

	Simplify "wchar_t" handling on Cygwin 1.7.x.
	* lib/iconv.c (iconv_canonicalize): On Cygwin >= 1.7, map
	ei_local_wchar_t to ei_utf16le or ei_utf16be, not ei_ucs2internal.
	* lib/iconv_open1.h: Likewise.
	Rationale: <https://cygwin.com/ml/cygwin/2011-01/msg00410.html>.

2011-01-29  Bruno Haible  <bruno@clisp.org>

	Adjust the meaning of "wchar_t" on native Windows systems.
	* lib/iconv.c (iconv_canonicalize): On native Windows, map
	ei_local_wchar_t to ei_utf16le or ei_utf16be, not ei_ucs2internal.
	* lib/iconv_open1.h: Likewise.
	Reported by Corinna Vinschen <corinna-cygwin@cygwin.com>
	in <https://cygwin.com/ml/cygwin/2011-01/msg00410.html>.

2010-11-23  Bruno Haible  <bruno@clisp.org>

	Implement newer release of BIG5-HKSCS.
	* tools/Makefile (ALL): Add hkscs2008.h.
	(hkscs2008.h): New rule.
	* tools/cjk_tab_to_h.c (main): Recognize hkscs2008.
	* lib/encodings.def: Add BIG5-HKSCS:2008. Change BIG5-HKSCS alias to be
	equivalent to BIG5-HKSCS:2008.
	* lib/hkscs2008.h: New file, autogenerated.
	* lib/big5hkscs2008.h: New file, based on lib/big5hkscs2004.h.
	* lib/converters.h: Include the new file.
	* README, man/iconv_open.3: Add BIG5-HKSCS:2004.
	* tests/BIG5-HKSCS-2008.TXT: New file, based on
	tests/BIG5-HKSCS-2004.TXT.
	* tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT: New file, copied from
	tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT
	* tests/BIG5-HKSCS-2008-snippet: New file, based on
	tests/BIG5-HKSCS-2004-snippet.
	* tests/BIG5-HKSCS-2008-snippet.UTF-8: New file, based on
	tests/BIG5-HKSCS-2004-snippet.UTF-8.
	* tests/Makefile.in (check): Check also BIG5-HKSCS:2008.
	Reported by oCameLo <camel322@gmail.com>.

2010-11-23  Bruno Haible  <bruno@clisp.org>

	Make cjk_tab_to_h 64-bit clean.
	* tools/cjk_tab_to_h.c (do_jisx0213): Add a cast from size_t to int.
	(output_title): Update copyright year.

2010-09-23  Bruno Haible  <bruno@clisp.org>

	Switch to autoconf 2.68.
	* autogen.sh: Update comment.
	* configure.ac: Fix AC_COMPILE_IFELSE invocation.
	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.68.
	* preload/Makefile.devel (AUTOCONF): Likewise.

2010-09-23  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update from libtool-2.4, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}.
	* m4/ltversion.m4: Update from libtool-2.4.
	* build-aux/ltmain.sh: Likewise.

2010-09-23  Bruno Haible  <bruno@clisp.org>

	Simplify use of gnulib-tool now that gnulib-tool --import works better.
	* autogen.sh: Don't remove gnulib-cache.m4 before running gnulib-tool.
	* Makefile.devel (srclib/Makefile.gnulib): Depend on 'force'.

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

	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.67.
	* preload/Makefile.devel (AUTOCONF): Likewise.

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

	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.66.
	* preload/Makefile.devel (AUTOCONF): Likewise.

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

	Addendum to 2009-10-18 commit.
	* m4/fcntl-o.m4: New file, from gnulib.
	* configure.ac: Invoke gl_FCNTL_O_FLAGS.
	* lib/config.h.in (HAVE_WORKING_O_NOFOLLOW): New macro.

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

	* m4/libtool.m4: Update from libtool-2.2.8, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}.
	* m4/ltoptions.m4: Update from libtool-2.2.8.
	* m4/ltversion.m4: Likewise.
	* m4/lt~obsolete.m4: Likewise.
	* build-aux/ltmain.sh: Likewise.

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

	Avoid a compilation error of gnulib's test-iconv-h-c++.cc on mingw.
	* include/iconv.h.in: Restrict the extern "C" { ... } scope so that it
	doesn't contains #include directives.

2010-03-30  Bruno Haible  <bruno@clisp.org>

	* README.woe32: Update for Cygwin 1.7.x.

2009-12-26  Bruno Haible  <bruno@clisp.org>

	* windows/libiconv.rc: Update.
	* windows/iconv.rc: Update.

2009-12-11  Bruno Haible  <bruno@clisp.org>

	* include/iconv.h.in: Untabify.
	* gnulib-local/lib/xalloc.h: Untabify.
	* woe32dll/export.h: Untabify.
	* tests/uniq-u.c: Untabify.

2009-12-11  Bruno Haible  <bruno@clisp.org>

	* srclib/Makefile.am (MOSTLYCLEANDIRS): New macro.

2009-12-11  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.65.
	* preload/Makefile.devel (AUTOCONF): Likewise.

2009-11-22  Bruno Haible  <bruno@clisp.org>

	* tests/check-subst: Add reference to the Solaris printf bug.
	Reported by Dagobert Michelsen <dagobert@familie-michelsen.de>.

2009-09-01  Bruno Haible  <bruno@clisp.org>

	* README.woe32: Put the -mno-cygwin option into CC and CXX.
	Recommended by Paolo Bonzini and Eric Blake.

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

	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.64.
	* preload/Makefile.devel (AUTOCONF): Likewise.

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

	Use .git/info/exclude, not .gitignore, for imported or generated files.
	* Makefile.devel (srclib/Makefile.gnulib): Pass option --no-vc-files to
	gnulib-tool.

2009-07-07  Bruno Haible  <bruno@clisp.org>

	Fix an endless loop.
	* lib/loop_wchar.h (wchar_to_loop_convert): Handle the case of
	incomplete input correctly.
	* tests/test-to-wchar.c: New file.
	* tests/Makefile.in (tests-to-wchar, tests-to-wchar.o): New rules.
	(check): Depend on and run tests-to-wchar.
	(clean): Add tests-to-wchar.
	Reported by Tristan Gingold <gingold@adacore.com>.

2009-06-30  Bruno Haible  <bruno@clisp.org>

	* Version 1.13.1 released.

2009-06-30  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Bump version number to 1.13.1.
	* README: Likewise.

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

	* preload/Makefile.devel (AUTOCONF): Switch to version 2.63.
	(ACLOCAL): Switch to version 1.11.

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

	* Makefile.devel (AUTOMAKE, ACLOCAL): Switch to version 1.11.
	* autogen.sh: Update comments.

2009-04-24  Bruno Haible  <bruno@clisp.org>

	Fix a compilation error on HP-UX 11.00, introduced on 2008-09-16.
	* src/iconv_open2.h: Don't initialize nonexistent field if
	!(HAVE_WCRTOMB || HAVE_MBRTOWC).
	Patch by Joel Brobecker <brobecker@adacore.com>.

2009-04-15  Bruno Haible  <bruno@clisp.org>

	* src/Makefile.in (install, uninstall): Append the $(EXEEXT) suffix
	explicitly. Needed on Cygwin.

2009-04-11  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Move the statements for WOE32 and WINDRES.

2009-03-26  Bruno Haible  <bruno@clisp.org>

	* Version 1.13 released.

2009-03-26  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c: Update copyright header to GPLv3+.
	(print_version): Update license info.

2009-03-26  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (print_version): Bump year.

2009-03-25  Bruno Haible  <bruno@clisp.org>

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

2009-03-25  Bruno Haible  <bruno@clisp.org>

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

2009-03-25  Bruno Haible  <bruno@clisp.org>

	Fix the handling of Windows resources in shared libraries.
	* configure.ac: Invoke LT_LANG for 'Windows Resource'.
	* lib/Makefile.in (RC): New variable.
	(WINDRES): Remove variable.
	(OBJECTS_RES_yes): Add .lo suffix.
	(libiconv.res.lo): Renamed from libiconv.res. Use libtool --tag=RC.
	(clean): Simplify.
	Based on a patch by Roumen Petrov <bugtrack@roumenpetrov.info>.

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

	* autogen.sh: Checkout gnulib using 'git' instead of 'cvs'.

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

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

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

	Add support for "make install-strip".
	* configure.ac: Search for 'strip'. Invoke AM_PROG_INSTALL_STRIP.
	* Makefile.in (install-strip): New rule.
	* src/Makefile.in (STRIP, INSTALL_STRIP_PROGRAM, install_sh): New
	variables.
	(install-strip): New rule.
	* lib/Makefile.in (install-strip): New target.
	* preload/Makefile.in (install-strip): Likewise.
	* man/Makefile.in (install-strip): Likewise.
	Reported by Alon Bar-Lev <alon.barlev@gmail.com>.

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

	Update after gnulib changed.
	* src/Makefile.in (RELOCATABLE_STRIP): New variable.

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

	Make --enable-relocatable work on glibc systems.
	* src/Makefile.in (host): New variable.

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

	* lib/genflags.c: Include <string.h>.

2009-01-14  Bruno Haible  <bruno@clisp.org>

	* configure.ac: More consistent m4 quoting.
	* preload/configure.ac: Likewise.

2008-09-28  Bruno Haible  <bruno@clisp.org>

	* build-aux/ltmain.sh (func_emit_cwrapperexe_src): On mingw,
	preprocess the argument vector through prepare_spawn.

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

	* build-aux/config.guess: Update to GNU version 2008-09-08.
	* build-aux/config.sub: Likewise.

2008-09-26  Bruno Haible  <bruno@clisp.org>

	* tests/test-shiftseq.c (main1, main2): Use ICONV_CONST.

2008-09-26  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (GNULIB_MODULES): Add sigpipe, stdio.
	* tests/Makefile.in (check, table-from, table-to, test-shiftseq): Link
	all programs against libicrt.a. Needed for the stdio function
	replacements on mingw.

2008-09-21  Tadamasa Teranishi  <yw3t-trns@asahi-net.or.jp>

	* lib/encodings_extra.def: Add aliases for EUC-JISX0213, SHIFT_JISX0213,
	ISO-2022-JP-3, found on <http://x0213.org/codetable/index.en.html>.

2008-09-20  Bruno Haible  <bruno@clisp.org>

	* man/iconv_open_into.3: New file.

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

	New function iconv_open_into.
	* include/iconv.h.in: Include <wchar.h> and its prerequisites.
	(iconv_allocation_t): New type.
	(iconv_open_into): New declaration.
	* lib/iconv_open1.h: New file, extracted from lib/iconv.c.
	* lib/iconv_open2.h: New file, extracted from lib/iconv.c.
	* lib/iconv.c (iconv_open): Include iconv_open1.h and iconv_open2.h.
	Verify size of iconv_allocation_t.
	(iconv_open_into): New function.
	* lib/loop_wchar.h (struct wchar_conv_struct): Don't define a state
	field if !(HAVE_WCRTOMB || HAVE_MBRTOWC).
	* configure.ac: Set and substitute USE_MBSTATE_T, BROKEN_WCHAR_H.
	Reported by Roman Rybalko <romanr@romanr.info>.

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

	* Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.63.

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

	* include/iconv.h.in: Use Unicode single-quotes in comments.

2008-09-14  Bruno Haible  <bruno@clisp.org>

	* Makefile.devel (GNULIB_MODULES): Add strerror.

2008-09-07  Bruno Haible  <bruno@clisp.org>

	Make behaviour when encountering invalid input after a shift sequence
	more consistent.
	* lib/converters.h (RET_SHIFT_ILSEQ): New macro.
	(RET_ILSEQ): Define in terms of RET_SHIFT_ILSEQ.
	(RET_TOOFEW): Change to avoid collisions with RET_SHIFT_ILSEQ.
	(DECODE_SHIFT_ILSEQ, DECODE_TOOFEW): New macros.
	* lib/loop_unicode.h (unicode_loop_convert): Take into account the
	shift count contained in the negative return values.
	* lib/hz.h (hz_mbtowc): When encountering invalid input, store the
	modified state and return RET_SHIFT_ILSEQ.
	* lib/iso2022_cn.h (iso2022_cn_mbtowc): Likewise.
	* lib/iso2022_cnext.h (iso2022_cn_ext_mbtowc): Likewise.
	* lib/iso2022_jp.h (iso2022_jp_mbtowc): Likewise.
	* lib/iso2022_jp1.h (iso2022_jp1_mbtowc): Likewise.
	* lib/iso2022_jp2.h (iso2022_jp2_mbtowc): Likewise.
	* lib/iso2022_jp3.h (iso2022_jp3_mbtowc): Likewise.
	* lib/iso2022_kr.h (iso2022_kr_mbtowc): Likewise.
	* lib/ucs2.h (ucs2_mbtowc): Likewise.
	* lib/ucs4.h (ucs4_mbtowc): Likewise.
	* lib/utf16.h (utf16_mbtowc): Likewise.
	* lib/utf32.h (utf32_mbtowc): Likewise.
	* lib/utf7.h (utf7_mbtowc): Likewise.
	* lib/utf16be.h (utf16be_mbtowcutf16be_mbtowc): When encountering
	invalid input, return RET_SHIFT_ILSEQ.
	* lib/utf16le.h (utf16le_mbtowc): Likewise.
	* tests/test-shiftseq.c: New file.
	* tests/Makefile.in (check): Run test-shiftseq.
	(test-shiftseq, test-shiftseq.@OBJEXT@): New rules.
	(clean): Remove test-shiftseq executable.
	Reported by Roman Rybalko <roman_rybalko@users.sourceforge.net>
	at <https://savannah.gnu.org/bugs/?24216>.

2008-09-07  Bruno Haible  <bruno@clisp.org>

	* man/iconv.3: Clarify the processing of shift-sequences.

2008-09-07  Bruno Haible  <bruno@clisp.org>

	* m4/libtool.m4: Update from libtool-2.2.6, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}.
	* m4/ltoptions.m4: Update from libtool-2.2.6.
	* m4/ltsugar.m4: Likewise.
	* m4/ltversion.m4: Likewise.
	* build-aux/ltmain.sh: Likewise.

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

	* lib/gbk.h (gbk_wctomb): Fix an out-of-bounds write.
	Reported by Roman Rybalko <roman_rybalko@users.sourceforge.net>
	at <https://savannah.gnu.org/bugs/?24214>.

2008-06-30  Bruno Haible  <bruno@clisp.org>

	Fix sed expressions to work with the old sed-3.02 on MSYS.
	* windows/windres-options (sed_extract_major, sed_extract_minor,
	sed_extract_subminor): Put a semicolon before the closing brace. Use
	an i\ command instead of an a\ command.
	Reported by Sunil Negi <sunil.negi@morningstar.com>
	in <http://article.gmane.org/gmane.comp.gnu.mingw.msys/4410>
	via Keith Marshall <keithmarshall@users.sourceforge.net>.

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

	* README.woe32: Update with info from GNU gettext's README.woe32.

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

	* m4/libtool.m4: Update from libtool-2.2.4, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}.
	* m4/ltoptions.m4: Update from libtool-2.2.4.
	* m4/ltversion.m4: Likewise.
	* m4/lt~obsolete.m4: Likewise.
	* build-aux/ltmain.sh: Likewise.

2008-04-14  Bruno Haible  <bruno@clisp.org>

	* tests/Makefile.in (check): Remove *.dSYM directories left over by gcc
	on MacOS X 10.5.

2008-04-14  Bruno Haible  <bruno@clisp.org>

	* preload/configure.ac: Invoke AC_USE_SYSTEM_EXTENSIONS instead of
	AC_AIX and AC_MINIX.
	* Makefile.devel (AUTOCONF, AUTOHEADER): Require autoconf-2.62.
	* preload/Makefile.devel (AUTOCONF): Likewise.
	* autogen.sh: Likewise.

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

	* m4/libtool.m4: Update from libtool-2.2.2, with modifications:
	2008-04-06  Bruno Haible  <bruno@clisp.org>
		* m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
		CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
		to ${CONFIG_SHELL}.
	* m4/ltoptions.m4: New file, from libtool-2.2.2.
	* m4/ltsugar.m4: New file, from libtool-2.2.2.
	* m4/ltversion.m4: New file, from libtool-2.2.2.
	* m4/lt~obsolete.m4: New file, from libtool-2.2.2.
	* build-aux/ltmain.sh: New file, from libtool-2.2.2.
	* configure.ac: Use LT_INIT instead of AC_PROG_LIBTOOL.
	* preload/configure.ac: Likewise.

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

	More portable way of building the preloadable library.
	* preload/Makefile.devel: New file.
	* preload/Makefile.in: New file, based on lib/Makefile.in.
	* preload/configure.ac: New file, based on configure.ac.
	* Makefile.devel (all): Recurse into preload directory.
	* Makefile.in (all, install, installdirs, uninstall, check,
	mostlyclean, clean, distclean, maintainer-clean): Recurse into preload
	directory.
	* configure.ac: Likewise.
	(OS, GCC, PLUGLIB): Remove definitions.
	* lib/Makefile.in (all): Don't depend on PLUGLIB.
	(preloadable_libiconv.so, preloadable_libiconv_linux.so,
	preloadable_libiconv_solaris.so, preloadable_libiconv_osf.so): Remove
	rules.
	(install, uninstall, clean): Don't handle the preloadable library here.

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

	Avoid a gcc warning.
	* lib/loop_unicode.h (unicode_loop_convert): Add a cast.

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

	* src/iconv.c (print_version): Bump year.

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

	Support all possible nl_langinfo(CODESET) results on the respective
	platforms, according to libcharset/lib/config.charset.
	* lib/encodings.def: Add DEFALIAS statements, conditional on
	USE_AIX_ALIASES, USE_HPUX_ALIASES, USE_OSF1_ALIASES,
	USE_SOLARIS_ALIASES.
	* lib/encodings_aix.def: Add DEFALIAS statements, conditional on
	USE_AIX_ALIASES.
	* lib/encodings_osf1.def: Add DEFALIAS statements, conditional on
	USE_OSF1_ALIASES.
	* lib/genaliases.c (emit_alias): New function, extracted from
	emit_encoding.
	(emit_encoding): Use it.
	(main): Define DEFALIAS.
	* lib/genaliases2.c (counter): New variable, extracted from
	emit_encoding.
	(emit_alias): New function, extracted from emit_encoding.
	(emit_encoding): Use it.
	(main): Define DEFALIAS.
	* lib/genflags.c (main): Define DEFALIAS.
	* lib/iconv.c (all_encodings): Define DEFALIAS.
	Include the system dependent variant of aliases.h on the appropriate
	systems.
	(all_canonical): Include the system dependent variant of canonical.h,
	canonical_aix.h, canonical_osf1.h, canonical_local.h on the appropriate
	systems.
	* lib/aliases2.h: Include the system dependent variant of
	aliases_aix.h or aliases_osf1.h on the appropriate systems.
	* lib/Makefile.in (iconv.lo): Depend on aliases_sysaix.h,
	aliases_syshpux.h, aliases_sysosf1.h, aliases_syssolaris.h,
	aliases_aix_sysaix.h, lib/aliases_osf1_sysosf1.h, and also
	aliases_extra.h, translit.h.
	* Makefile.devel (all): Depend on lib/aliases_sysaix.h,
	lib/aliases_syshpux.h, lib/aliases_sysosf1.h, lib/aliases_syssolaris.h,
	lib/aliases_aix_sysaix.h, lib/aliases_osf1_sysosf1.h.
	(lib/aliases_sysaix.h, lib/aliases_syshpux.h, lib/aliases_sysosf1.h,
	lib/aliases_syssolaris.h): New rules.
	(lib/aliases_aix_sysaix.h): New rule.
	(lib/aliases_osf1_sysosf1.h): New rule.
	* autogen.sh: Also remove lib/aliases_sysaix.h, lib/aliases_syshpux.h,
	lib/aliases_sysosf1.h, lib/aliases_syssolaris.h,
	lib/aliases_aix_sysaix.h, lib/aliases_osf1_sysosf1.h.

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

	* build-aux/config.libpath: Remove file, brought in by gnulib-tool.
	* build-aux/config.rpath: Remove file, brought in by gnulib-tool.

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

	* Version 1.12 released.

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

	* Makefile.devel (AUTOCONF, AUTOHEADER): Require version 2.61.
	(AUTOMAKE, ACLOCAL): Require version 1.10.
	(srclib/Makefile.in): Avoid error from automake.

2007-10-26  Bruno Haible  <bruno@clisp.org>

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

2007-10-23  Bruno Haible  <bruno@clisp.org>

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

2007-10-23  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Bump version number to 1.12.
	* README: Likewise.

2007-10-23  Bruno Haible  <bruno@clisp.org>

	Move relocatability infrastructure to gnulib.
	* gnulib-local/lib/relocatable.h: Remove file.
	* gnulib-local/lib/relocatable.c: Remove file.

2007-10-23  Bruno Haible  <bruno@clisp.org>

	Update from GNU gettext.
	2006-11-26  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/lib/xalloc.h (xmemdup): Add a typesafe C++
		template variant.
		Based on a patch from Paul Eggert in gnulib.
	2006-11-06  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/lib/xalloc.h (xcharalloc): New macro.
		(xmemdup): New declaration.
		* gnulib-local/lib/xstrdup.c (xmemdup): New function.
	2006-11-03  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/lib/xalloc.h (XMALLOC, XNMALLOC, XZALLOC,
		XCALLOC): New macros.
		(xnboundedmalloc): New inline function.
		* gnulib-local/lib/xstrdup.c (xstrdup): Use XNMALLOC instead of
		xmalloc.
	2006-11-02  Bruno Haible  <bruno@clisp.org>
		* lib/xalloc.h (xnmalloc): New declaration. From gnulib
		xalloc.h.
		* lib/xmalloc.c (fixup_null_alloc): Write NULL, not 0.
		(xnmalloc): New function.

2007-10-23  Bruno Haible  <bruno@clisp.org>

	Moved module xreadlink to gnulib.
	* gnulib-local/modules/xreadlink: Remove file.
	* gnulib-local/lib/xreadlink.h: Remove file.
	* gnulib-local/lib/xreadlink.c: Remove file.
	* gnulib-local/m4/xreadlink.m4: Remove file.

2007-10-07  Bruno Haible  <bruno@clisp.org>

	Update program license to GPLv3.
	* COPYING: Replace with GPL 3.
	* windows/iconv.rc (Comments): Update.

2007-10-07  Bruno Haible  <bruno@clisp.org>

	* gnulib-local/lib/alloca.in.h: Renamed from gnulib-local/lib/alloca_.h.

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

	* gnulib-local/lib/alloca_.h: Change prefix of double-inclusion guard
	macro to _GL_.

2006-06-19  Paul Eggert  <eggert@cs.ucla.edu>

	* gnulib-local/lib/alloca_.h (alloca) [defined alloca]: Don't define or
	declare.

2007-09-29  Bruno Haible  <bruno@clisp.org>

	* autogen.sh (GNULIB_CVS_ROOT): Change to read-only git mirror
	valid since 2007-09-19.

2007-07-07  Bruno Haible  <bruno@clisp.org>

	* autogen.sh: Add an option --skip-gnulib.

2007-07-07  Bruno Haible  <bruno@clisp.org>

	* gnulib-local/lib/uniwidth.h: Remove file, moved to gnulib.
	* gnulib-local/lib/width.c: Remove file, moved to gnulib.
	* gnulib-local/lib/cjk.h: Remove file, moved to gnulib.
	* gnulib-local/modules/uniwidth: Remove file.
	* Makefile.devel (GNULIB_MODULES): Remove uniwidth, add uniwidth/width.
	* src/iconv.c: Include uniwidth/cjk.h instead of cjk.h.

2007-06-30  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c (print_version): Use the standard --version output, see
	<https://lists.gnu.org/archive/html/bug-gnulib/2007-03/msg00302.html>.

2007-06-30  Bruno Haible  <bruno@clisp.org>

	* autogen.sh: New file.
	* DEPENDENCIES: New file.
	* HACKING: New file.

2007-06-30  Bruno Haible  <bruno@clisp.org>

	* src/iconv.c: Provide translator comments for many messages.
	(conversion_error_EILSEQ, conversion_error_EINVAL,
	conversion_error_other): New functions, extracted from convert.
	(convert): Use them.
	Reported by Tim Van Holder <tim.van.holder@telenet.be>.

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

	* gnulib-local/lib/relocwrapper.c: Remove file.

2007-05-27  Bruno Haible  <bruno@clisp.org>

	* windows/libiconv.rc: New file.
	* windows/iconv.rc: New file.
	* windows/windres-options: New file.
	* configure.ac (WOE32): New variable.
	(WINDRES) [WOE32]: New variable.
	* lib/Makefile.in (WINDRES): New variable.
	(PACKAGE_VERSION): New variable.
	(OBJECTS_EXP_yes): Renamed from OBJECTS_yes.
	(OBJECTS_EXP_no): Renamed from OBJECTS_no.
	(OBJECTS_RES_yes, OBJECTS_RES_no): New variables.
	(OBJECTS): Add one of them.
	(libiconv.res): New rule.
	(clean): Remove also libiconv.res.
	* src/Makefile.in (WINDRES): New variable.
	(PACKAGE_VERSION): New variable.
	(OBJECTS_RES_yes, OBJECTS_RES_no): New variables.
	(all, iconv_no_i18n, install): Use them.
	(iconv.res): New rule.
	(clean): Remove also iconv.res.
	Suggested and inspired by work by Perry Rapp.

2007-05-27  Bruno Haible  <bruno@clisp.org>

	Follow broken iconv() prototype in POSIX.
	* configure.ac (ICONV_CONST): Set to empty if the system has no iconv.
	* lib/config.h.in (ICONV_CONST): Change default value to an empty
	comment.
	* src/iconv.c (ICONV_CONST): Change default value to empty.
	Reported by Andreas Krennmair <ak@synflood.at>.

2007-05-25  Bruno Haible  <bruno@clisp.org>

	* tools/Makefile (ALL): Add rk1048.h.
	(rk1048.h): New rule.
	* lib/encodings.def: Add RK1048.
	* lib/rk1048.h: New file.
	* lib/converters.h: Include it.
	* README, man/iconv_open.3: Add RK1048.
	* NOTES: Mention RK1048.
	* tests/RK1048.TXT: New file.
	* tests/Makefile.in (check): Also test RK1048.
	Suggested by Timur Birsh <team9@host.kz>.

2007-04-24  Bruno Haible  <bruno@clisp.org>

	* man/iconv_open.3: Tweak explanation of TRANSLIT.
	Reported by Perry Rapp.

2007-04-23  Bruno Haible  <bruno@clisp.org>

	* tests/check-subst: Use the output of 'printf' only if it didn't
	crash. Needed to work around a buffer overflow in Solaris /bin/printf.
	Reported by Arto C. Nirkko <anirkko@insel.ch>.

2007-04-23  Bruno Haible  <bruno@clisp.org>

	* lib/iconv.c (iconv_open, iconv_canonicalize): Treat native Woe32
	systems like those which define __STDC_ISO_10646__.
	Reported by Keith Marshall <keithmarshall@users.sourceforge.net>.

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

	* man/iconv.1: Use HYPHEN-MINUS signs instead of HYPHENs where
	appropriate.
	* man/iconv_open.3: Likewise.
	* man/iconv.3: Likewise.
	* man/iconv_close.3: Likewise.
	* man/iconvctl.3: Likewise.

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

	* man/iconv.1: Mark as POSIX compliant.
	* man/iconv_open.3: Likewise.
	* man/iconv.3: Likewise.
	* man/iconv_close.3: Likewise.

	* man/*.[13]: Syntactic simplifications.

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

	Assume that mkinstalldirs also creates the necessary parent directories.
	* Makefile.in (install, installdirs): Don't explicitly create the
	parent directories.
	* lib/Makefile.in (install, installdirs): Likewise.
	* src/Makefile.in (install, installdirs): Likewise.
	* man/Makefile.in (install, installdirs): Likewise.
	Reported by Thomas Klausner <tk@giga.or.at>.

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

	* Makefile.devel (GNULIB_MODULES): Add relocatable-prog. Remove
	relocatable, relocwrapper.
	* configure.ac: Invoke gl_RELOCATABLE instead of AC_RELOCATABLE.
	* gnulib-local/modules/progreloc: Remove file.
	* gnulib-local/modules/relocatable: Remove file.
	* gnulib-local/modules/relocwrapper: Remove file.
	* gnulib-local/m4/relocatable.m4: Remove file.
	* gnulib-local/lib/strerror.c.diff: Remove file.
	* src/Makefile.in: Remove SET_RELOCATABLE invocation. Instead get
	RELOCATABLE_LDFLAGS and INSTALL_PROGRAM_ENV.

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

	* gnulib-local/lib/xmalloc.c: Don't include exit.h.
	* src/iconv.c: Likewise.

2007-02-16  Juan Manuel Guerrero  <juan.guerrero@gmx.de>

	* djgpp/*: Update.

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

	* tools/Makefile (ksc5601.h): Add one extra character.
	* lib/ksc5601.h: Regenerated.
	* lib/cp949.h (cp949_mbtowc, cp949_wctomb): Exclude the new character.
	* tests/EUC-KR.TXT: Add CIRCLED HANGUL IEUNG U.
	* tests/JOHAB.TXT: Likewise.
	Reported by Jungshik Shin (신정식, 申政湜) <jungshik@google.com>.

	* lib/euc_kr.h: Update comments.
	* lib/johab.h: Likewise.

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

	* tools/cjk_tab_to_h.c (output_title): Bump copyright year.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	Moved streq.h to gnulib.
	* gnulib-local/lib/streq.h: Remove file.
	* gnulib-local/modules/uniwidth (Files): Remove lib/streq.h.
	(Depends-on): Add streq.
	(lib_SOURCES): Remove streq.h.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	Moved unitypes.h to gnulib.
	* gnulib-local/lib/unitypes.h: Remove file.
	* gnulib-local/modules/uniwidth (Files): Remove lib/unitypes.h.
	(Depends-on): Add unitypes.
	(lib_SOURCES): Remove unitypes.h.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	Moved canonicalize to gnulib.
	* gnulib-local/modules/canonicalize: Remove file.
	* gnulib-local/lib/canonicalize.h: Remove file.
	* gnulib-local/lib/canonicalize.c: Remove file.
	* gnulib-local/m4/canonicalize.m4: Remove file.
	* gnulib-local/modules/progreloc (Depends-on): Replace 'canonicalize'
	with 'canonicalize-lgpl'.

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

	* lib/Makefile.in (install): On AIX, add the contents of
	/lib/libiconv.a to libiconv.a.

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

	* Makefile.devel (all): Depend on srclib/Makefile.gnulib, not
	srclib/Makefile.am.
	(aclocal.m4): Likewise. Touch the resulting file, since aclocal not
	always does it.
	(srclib/Makefile.gnulib): Renamed from srclib/Makefile.am. Pass
	option --makefile-name.
	(srclib/Makefile.in): Depend on srclib/Makefile.gnulib too.
	* srclib/Makefile.am: New file that includes srclib/Makefile.gnulib.

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

	Update from GNU gettext.
	2006-10-29  Bruno Haible  <bruno@clisp.org>
		Make it compile in C++ mode.
		* gnulib-local/lib/xalloc.h (xrealloc): Define as template
		with appropriate return type.
		* gnulib-local/lib/xstrdup.c (xstrdup): Cast xmalloc result.
	2006-10-26  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/modules/canonicalize (Makefile.am): Remove
		EXTRA_DIST. Now done by gnulib-tool.
		* gnulib-local/modules/relocatable (Makefile.am): Likewise.
		* gnulib-local/modules/relocwrapper (Makefile.am): Likewise.
	2006-10-25  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/m4/relocatable.m4 (AC_RELOCATABLE_BODY):
		Renamed from AC_RELOCATABLE, without the AC_LIBOBJ invocation.
		(AC_RELOCATABLE): New macro. Invoke AC_LIBOBJ here.
		* gnulib-local/modules/relocwrapper (configure.ac): Invoke
		AC_RELOCATABLE instead of requiring it.
	2006-10-12  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/modules/canonicalize (Makefile.am): Distribute
		all files in lib/ through EXTRA_DIST.
		* gnulib-local/modules/relocatable (Makefile.am): Likewise.
	2006-09-14  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/lib/canonicalize.c: Include <config.h>
		unconditionally.
		* gnulib-local/lib/relocatable.c: Likewise.
		* lib/relocatable.c: Likewise.
		* gnulib-local/lib/relocwrapper.c: Likewise.
		* gnulib-local/lib/xmalloc.c: Likewise.
		* gnulib-local/lib/xreadlink.c: Likewise.
		* gnulib-local/lib/xstrdup.c: Likewise.
	2006-08-02  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/modules/canonicalize: Put under LGPL.
		* gnulib-local/modules/relocatable: Likewise.
	2006-07-18  Bruno Haible  <bruno@clisp.org>
		* gnulib-local/xalloc.h (xzalloc): New declaration.
		* gnulib-local/xmalloc.c (xzalloc): New function.

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

	* man/Makefile.in (PACKAGE): New variable. Needed for docdir.
	Reported by Charles Wilson <cygwin@cwilson.fastmail.fm>.

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

	* COPYING: New file.
	* README: Clarify copyright of the iconv program.
	Reported by Charles Wilson <cwilson@fastmail.fm>.

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

	* INSTALL.generic: Add a recommendation for Tru64.
	Reported by Gary V. Vaughan <gary@gnu.org>.

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

	* tests/check-subst: Set CHARSETALIASDIR.
	Needed so that "make check" works before "make install" on systems
	such as NetBSD.

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

	* Makefile.devel (aclocal.m4): Depend on srclib/Makefile.am.
	(AUTOCONF_FILES): Add the existing *.m4 files.

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

	* gnulib-local/lib/xreadlink.c: Assume <stdlib.h> exists.
	* src/iconv.c: Assume <locale.h> exists.
	* configure.ac: Remove tests for <locale.h>, <stddef.h>, <stdlib.h>,
	<string.h>.

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

	* configure.ac: Remove obsolete calls AC_PROG_GCC_TRADITIONAL,
	AC_ISC_POSIX, AC_HEADER_STDC.

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

	* configure.ac: Remove macro invocations that are redundant through
	gl_EARLY and gl_INIT.

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

	* gnulib-local/m4/alloca.m4 (gl_PREREQ_ALLOCA): Add a dummy statement.
	Avoids a sh syntax error.

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

	* gnulib-local/m4/relocatable.m4: Add comments.

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

	* gnulib-local/modules/libiconv-misc: New file.
	* Makefile.devel (GNULIB_MODULES): Add libiconv-misc.

	* Makefile.devel (srclib/Makefile.am): Pass --no-libtool.

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

	Note: gnulib macros no longer invoke AC_TYPE_SIZE_T nor
	AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], ...)])
	because we now assume that the system defines size_t and ptrdiff_t.

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

	Switch to using gnulib.
	* configure.ac (AC_PREREQ): Require autoconf-2.60.
	Invoke gl_EARLY and gl_INIT.
	* Makefile.devel (all): Depend on srclib/Makefile.am.
	(aclocal.m4): Pass -I srcm4 to aclocal. Simplify dependencies, assuming
	GNU make.
	(GNULIB_MODULES): New variable.
	(srclib/Makefile.am): New rule.
	* gnulib-local: New directory.
	* gnulib-local/m4/alloca.m4: Moved here from m4/alloca.m4.
	* gnulib-local/m4/canonicalize.m4: Moved here from m4/canonicalize.m4.
	* gnulib-local/m4/relocatable.m4: Moved here from m4/relocatable.m4.
	* gnulib-local/m4/xreadlink.m4: Moved here from m4/xreadlink.m4.
	* gnulib-local/lib/alloca_.h: Moved here from srclib/alloca_.h.
	* gnulib-local/lib/canonicalize.h: Moved here from srclib/canonicalize.h.
	* gnulib-local/lib/canonicalize.c: Moved here from srclib/canonicalize.c.
	* gnulib-local/lib/cjk.h: Moved here from srclib/cjk.h.
	* gnulib-local/lib/error.h.diff: New file.
	* gnulib-local/lib/progname.h.diff: New file.
	* gnulib-local/lib/relocatable.h: Moved here from srclib/relocatable.h.
	* gnulib-local/lib/relocatable.c: Moved here from srclib/relocatable.c.
	* gnulib-local/lib/relocwrapper.c: Moved here from srclib/relocwrapper.c.
	* gnulib-local/lib/streq.h: Moved here from srclib/streq.h.
	* gnulib-local/lib/strerror.c.diff: New file.
	* gnulib-local/lib/unitypes.h: Moved here from srclib/unitypes.h.
	* gnulib-local/lib/uniwidth.h: Moved here from srclib/uniwidth.h.
	* gnulib-local/lib/width.c: Moved here from srclib/width.c.
	* gnulib-local/lib/xalloc.h: Moved here from srclib/xalloc.h.
	* gnulib-local/lib/xmalloc.c: Moved here from srclib/xmalloc.c.
	* gnulib-local/lib/xstrdup.c: Moved here from srclib/xstrdup.c.
	* gnulib-local/lib/xreadlink.h: Moved here from srclib/xreadlink.h.
	* gnulib-local/lib/xreadlink.c: Moved here from srclib/xreadlink.c.
	* gnulib-local/modules/canonicalize: New file.
	* gnulib-local/modules/progreloc: New file.
	* gnulib-local/modules/relocatable: New file.
	* gnulib-local/modules/relocwrapper: New file.
	* gnulib-local/modules/uniwidth: New file.
	* gnulib-local/modules/xalloc: New file.
	* gnulib-local/modules/xreadlink: New file.

	* m4/allocsa.m4: Remove file. Now taken from gnulib.
	* m4/codeset.m4: Likewise.
	* m4/eealloc.m4: Likewise.
	* m4/error.m4: Likewise.
	* m4/extensions.m4: Likewise.
	* m4/full-header-path.m4: Likewise.
	* m4/gettext.m4: Likewise.
	* m4/glibc21.m4: Likewise.
	* m4/iconv.m4: Likewise.
	* m4/intmax.m4: Likewise.
	* m4/inttypes-h.m4: Likewise.
	* m4/inttypes_h.m4: Likewise.
	* m4/isc-posix.m4: Likewise.
	* m4/lcmessage.m4: Likewise.
	* m4/lib-ld.m4: Likewise.
	* m4/lib-link.m4: Likewise.
	* m4/lib-prefix.m4: Likewise.
	* m4/longdouble.m4: Likewise.
	* m4/longlong.m4: Likewise.
	* m4/mbstate_t.m4: Likewise.
	* m4/nls.m4: Likewise.
	* m4/onceonly.m4: Likewise.
	* m4/pathmax.m4: Likewise.
	* m4/po.m4: Likewise.
	* m4/printf-posix.m4: Likewise.
	* m4/progtest.m4: Likewise.
	* m4/readlink.m4: Likewise.
	* m4/setenv.m4: Likewise.
	* m4/signed.m4: Likewise.
	* m4/size_max.m4: Likewise.
	* m4/ssize_t.m4: Likewise.
	* m4/stdbool.m4: Likewise.
	* m4/stdint.m4: Likewise.
	* m4/stdint_h.m4: Likewise.
	* m4/strerror.m4: Likewise.
	* m4/strerror_r.m4: Likewise.
	* m4/unistd_h.m4: Likewise.
	* m4/unlocked-io.m4: Likewise.
	* m4/visibility.m4: Likewise.
	* m4/wchar_t.m4: Likewise.
	* m4/wint_t.m4: Likewise.

	* srclib/allocsa.h: Remove file. Now taken from gnulib.
	* srclib/allocsa.c: Likewise.
	* srclib/binary-io.h: Likewise.
	* srclib/error.h: Likewise.
	* srclib/error.c: Likewise.
	* srclib/exit.h: Likewise.
	* srclib/gettext.h: Likewise.
	* srclib/memmove.c: Likewise.
	* srclib/pathmax.h: Likewise.
	* srclib/progname.h: Likewise.
	* srclib/progname.c: Likewise.
	* srclib/progreloc.c: Likewise.
	* srclib/readlink.c: Likewise.
	* srclib/setenv.h: Likewise.
	* srclib/setenv.c: Likewise.
	* srclib/stdbool_.h: Likewise.
	* srclib/stdint_.h: Likewise.
	* srclib/strerror.c: Likewise.
	* srclib/unlocked-io.h: Likewise.
	* srclib/unsetenv.c: Likewise.
	* srclib/Makefile.am: Remove file.

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

	Remove OS/2 build support that doesn't assume GNU make and GNU bash.
	* README.os2: Remove file.
	* Makefile.os2: Remove file.
	* lib/Makefile.os2: Remove file.
	* src/Makefile.os2: Remove file.
	* man/Makefile.os2: Remove file.
	* tests/Makefile.os2: Remove file.
	* tests/check-stateful.cmd: Remove file.
	* tests/check-stateless.cmd: Remove file.
	* tests/check-translit.cmd: Remove file.

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

	Remove MSVC/nmake build support.
	* windows: Remove directory.
	* Makefile.msvc: Remove file.
	* lib/Makefile.msvc: Remove file.
	* srclib/Makefile.msvc: Remove file.
	* src/Makefile.msvc: Remove file.
	* tests/Makefile.msvc: Remove file.
	* man/Makefile.msvc: Remove file.
	* po/Rules-msvc: Remove file.
	* po/Makefile.msvc.sh: Remove file.
	* Makefile.devel (config.h.msvc, lib/config.h.msvc): Remove rules.
	(include/iconv.h.msvc-static, include/iconv.h.msvc-shared): Remove
	rules.
	(po/Makefile.msvc): Remove rule.
	(all): Update.

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

	Remove VMS support.
	* vms: Remove directory.
	* Makefile.vms: Remove file.
	* lib/Makefile.vms: Remove file.
	* srclib/Makefile.vms: Remove file.
	* src/Makefile.vms: Remove file.
	* tests/Makefile.vms: Remove file.
	* man/Makefile.vms: Remove file.
	* Makefile.devel (config.h_vms, lib/config.h_vms): Remove rules.
	(include/iconv.h_vms): Remove rule.
	(all): Update.

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

	* lib/Makefile.in (libiconv.la): Use the CFLAGS during linking.
	* src/Makefile.in (iconv_no_i18n): Likewise.
	(install): Likewise.
	* tests/Makefile.in (table-from, table-to): Likewise.
	Needed because the CFLAGS can e.g. trigger profiling.
	Reported by Russell Aspinwall <russell.aspinwall@flomerics.co.uk>.

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

	* Version 1.11 released.

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

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

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

