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 http://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 <http://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 <http://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
	<http://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: <http://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 <http://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 <http://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 <http://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
	<http://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.

