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

	Accommodate a shell that is not in /bin/sh.
	* Makefile.in (SHELL): Use the value found by configure.

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

	Update from gnulib. Move mapping tables into the code.
	* localcharset.c: Update from gnulib.
	2018-05-20  Bruno Haible  <bruno@clisp.org>
		* localcharset.c (alias_table): Comment out no-op mappings for
		platforms where these don't matter. This reduces the table
		size, which in turn reduces the lookup time.
	2018-05-19  Bruno Haible  <bruno@clisp.org>
		* localcharset.c (alias_table): Add mapping for locale
		encodings found in FreeBSD 11, NetBSD 7, Solaris 10,
		Openindiana, HP-UX 11.31, IRIX 6.5, Minix 3.3.
	2018-05-19  Bruno Haible  <bruno@clisp.org>
		* localcharset.c: Don't include <fcntl.h>, <unistd.h>,
		relocatable.h, configmake.h.
		(O_NOFOLLOW, ISSLASH, DIRECTORY_SEPARATOR, getc, volatile):
		Remove macros.
		(charset_aliases): Remove variable.
		(get_charset_aliases): Remove function.
		(struct table_entry): New type.
		(alias_table, locale_table): New constants.
		(locale_charset): Use the alias_table or locale_table to get
		the canonicalized encoding name.
	* config.charset: Remove file.
	* ref-add.sin: Remove file.
	* ref-del.sin: Remove file.
	* relocatable-stub.c: New file.
	* relocatable.c: Remove file.
	* relocatable.h: Remove file.
	* Makefile.in (DEFS): Remove macros only needed for relocatable.[hc].
	(SOURCES): Remove relocatable.c. Add relocatable-stub.c.
	(OBJECTS): Remove relocatable.lo. Add relocatable-stub.lo.
	(relocatable.lo): Remove target.
	(relocatable-stub.lo): New target.
	(charset.alias, ref-add.sed, ref-del.sed): Remove targets.
	(install-lib, install): Don't install charset.alias.
	(uninstall): Don't uninstall charset.alias.
	(clean): Don't remove charset.alias, ref-add.sed, ref-del.sed.
	(SOURCE_FILES): Add relocatable-stub.c.
	(GNULIB_SYNCED_FILES): Remove config.charset, ref-add.sin, ref-del.sin,
	relocatable.h, relocatable.c.

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

	* localcharset.c: Update from gnulib.
	2018-05-03  Bruno Haible  <bruno@clisp.org>
		* localcharset.c: Simplify 'defined _WIN32 || defined __WIN32__'
		to just 'defined _WIN32'.
	2018-04-21  Benno Schulenberg  <bensberg@telfort.nl>  (tiny change)
		* localcharset.c (get_charset_aliases): Add a tautological
		UTF-8 entry to speed up the search for this case.
	2017-09-14  Bruno Haible  <bruno@clisp.org>
		all: Replace many more http URLs by https URLs.

	* relocatable.c: Update from gnulib.

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

	* localcharset.c: Update from gnulib.
	2017-05-16  Bruno Haible  <bruno@clisp.org>
		* localcharset.c (relocate2): Define fallback.
		(get_charset_aliases): Invoke relocate2 instead of relocate.
		Free the allocated memory.
	2017-04-21  Bruno Haible  <bruno@clisp.org>
		* localcharset.c (WINDOWS_NATIVE): Don't define on Cygwin.

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

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

	Cleanup useless removals.
	* Makefile.in (distclean): No need to remove config.* and libtool.

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

	Create tarballs through an Automake-like "make dist" command.
	* Makefile.in (SOURCE_FILES, GNULIB_SYNCED_FILES, IMPORTED_FILES,
	GENERATED_FILES, DISTRIBUTED_BUILT_FILES, DISTFILES): New macros.
	(distdir): New target.

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

	* config.charset: Update from gnulib.
	2015-01-07  KO Myung-Hun  <komh@chollian.net>
		* config.charset: Don't output aliases if "$os" is os2*.
	2012-06-22  Bruno Haible  <bruno@clisp.org>
		* connfig.charset: Write "Mac OS X" instead of "MacOS X".

	* localcharset.c: Update from gnulib.
	2016-12-02  Bruno Haible  <bruno@clisp.org>
		* localcharset.c (locale_charset) [WINDOWS_NATIVE]: Don't use
		the return value from setlocale if it would lead to a buffer
		overrun.
	2015-01-07  KO Myung-Hun  <komh@chollian.net>
		* localcharset.c (get_charset_aliases) [OS2]: Hardcode the
		result for OS/2.
		(locale_charset) [OS2]: Use system codepage if codeset is
		omitted from the locale name which is neither "C" nor "POSIX".
	2014-07-15  Eli Zaretskii  <eliz@gnu.org>
		* localcharset.c (locale_charset) [WINDOWS_NATIVE]: Before
		falling back on the default system codepage, try extracting
		the codepage from what 'setlocale' returns.  This allows to
		take into account changes of the codeset due to non-default
		locale set by a previous call to 'setlocale'.
	2013-07-20  Daiki Ueno  <ueno@gnu.org>
		* localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
		instead of MB_CUR_MAX.
	2012-09-16  Paul Eggert  <eggert@cs.ucla.edu>
		* localcharset.c (locale_charset) [DARWIN7]:
		Return "ASCII" if the system reports "UTF-8" and
		MB_CUR_MAX <= 1, as these two values are incompatible.  Problem
		reported by Max Horn. For more discussion, please see
		<https://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00061.html>.
	2012-06-22  Bruno Haible  <bruno@clisp.org>
		* localcharset.c: Write "Mac OS X" instead of "MacOS X".

	* relocatable.c: Update from gnulib.

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

	Update support for building with MSVC.
	* 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)."

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

	Talk about "native Windows API", not "Woe32".
	* localcharset.c: Update comments to mention native Windows.
	* relocatable.c: Likewise.
	* config.charset: More comments.

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

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

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

	* relocatable.c: Update from gnulib.

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

	* relocatable.c: Update from gnulib.

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

	Assume ANSI C behaviour of free().
	* localcharset.c (get_charset_aliases): Remove NULL test before calling
	free().
	Suggested by Simon Josefsson <simon@josefsson.org>.

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

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

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

	* localcharset.c (locale_charset): Fix comment about use of GetACP.

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

	* localcharset.c (locale_charset): Add comment about use of GetACP.

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

	* config.charset: Untabify.
	* localcharset.c: Untabify.

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

	Avoid symlink attack in localcharset module.
	* localcharset.c: Include <fcntl.h>, <unistd.h>.
	(O_NOFOLLOW): Define fallback.
	(get_charset_aliases): Don't open the file if it is a symbolic link.
	Reported by Fergal Glynn <fglynn@veracode.com>.

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

	* Makefile.in (install, installdir): Ensure that $(DESTDIR)$(libdir)
	exists, unconditionally.

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

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

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

	Don't install charset.alias on MacOS X >= 10.3.
	* localcharset.c (DARWIN7): New macro.
	(get_charset_aliases): Hardcode the result for Darwin7.
	* Makefile.in (install, installdirs): Don't install charset.alias on
	MacOS X >= 10.3.

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

	Don't install charset.alias on mingw and Cygwin.
	* Makefile.in (install, installdirs): Don't install charset.alias on
	mingw and Cygwin, if the file does not yet exist. The result for these
	platforms is hardcoded in localcharset.c.

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

	Add support for non-UTF-8 locales on MacOS X.
	* config.charset: Add CP1131, ARMSCII-8, PT154 to the list of canonical
	encodings. For Darwin 7 and newer, don't map traditional encodings to
	UTF-8.
	Reported by Vincent Lefevre <vincent@vinc17.org>
	at <https://savannah.gnu.org/bugs/?25235>.

2008-11-10  Ingo Weinhold  <ingo_weinhold@gmx.de>

	* config.charset: Treat Haiku like BeOS.

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

	* Makefile.in (install-strip): New target.
	Reported by Alon Bar-Lev <alon.barlev@gmail.com>.

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

	* localcharset.c (OS2): Don't redefine if already defined.
	Reported by Elbert Pol <e.pol@chello.nl>.

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

	* config.charset: Update for OpenBSD 4.1.
	Reported and helped by Ben Pfaff <blp@cs.stanford.edu>.

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

	Update from GNU gettext.
	2006-09-14  Bruno Haible  <bruno@clisp.org>
		* lib/relocatable.c: Likewise.

2006-10-17  Paul Eggert  <eggert@cs.ucla.edu>

	* localcharset.c: Do not check HAVE_SETLOCALE.

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

	* localcharset.c: Include <config.h> unconditionally.

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

	* localcharset.c: Include configmake.h in order to get LIBDIR defined.

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

	* localcharset.c: Assume <stddef.h>, <stdlib.h>, <string.h> exist.

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

	* Makefile.msvc: Remove file.

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

	* Makefile.vms: Remove file.

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

	* Makefile.in (libcharset.la): Use the CFLAGS during linking.
	Needed because the CFLAGS can e.g. trigger profiling.
	Reported by Russell Aspinwall <russell.aspinwall@flomerics.co.uk>.

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

	* Makefile.in (clean): Remove also *.stackdump.

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

	* config.charset: Update for NetBSD 3.0.

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

	Cygwin portability.
	* localcharset.c (WIN32_NATIVE): Renamed from WIN32.

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

	* localcharset.c [CYGWIN]: Include <windows.h>.
	(get_charset_aliases): For Cygwin, return the same CPxxx aliases list
	as under WIN32.
	(locale_charset) [CYGWIN]: Try to retrieve the encoding from the
	environment variables. Fall back to GetACP().

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

	* config.charset: Update Juan Manuel Guerrero's address.

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

	* localcharset.c: Assume ANSI C. Fixes a gcc warning.
	Reported by Werner Lemberg <wl@gnu.org>.

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

	Cygwin portability.
	* relocatable.c: Include <windows.h> also on Cygwin.
	(DllMain): Add support for Cygwin.
	(get_shared_library_fullname): Update.

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

	Tidy up exported symbols.
	* Makefile.in (CFLAGS): Add @CFLAG_VISIBILITY@.
	(DEFS): Also define BUILDING_LIBCHARSET and BUILDING_DLL.
	* relocatable.h (RELOCATABLE_DLL_EXPORTED) [HAVE_VISIBILITY]:
	Define to the gcc visibility attribute.

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

	* localcharset.c (get_charset_aliases) [WIN32]: Add CP65001 and others.
	Reported by <mus1876@gmx.info> via Alain Bench <messtic@oreka.com>.

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

	* Makefile.in (mkinstalldirs): Update.

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

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

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

	* config.charset: Add support for Darwin 7.

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

	* localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now
	accepts Windows pathnames.

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

	* localcharset.c (get_charset_aliases): Allow the CHARSETALIASDIR
	environment variable to override LIBDIR.
	Suggested by Matthias Clasen <mclasen@redhat.com>.

2004-04-20  Jim Meyering  <jim@meyering.net>
            Bruno Haible  <bruno@clisp.org>

	* localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak
	memory when realloc fails.

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

	Upgrade from gettext-0.14.

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

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

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

	2003-06-27  Bruno Haible  <bruno@clisp.org>
	Avoid use of *_unlocked functions on Solaris 2.5.1.
	* localcharset.c: Test HAVE_DECL_GETC_UNLOCKED, not HAVE_GETC_UNLOCKED.
	Reported by Eric Botcazou <ebotcazou@libertysurf.fr>.

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

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

	Upgrade from gettext-0.14.

	2004-01-21  Bruno Haible  <bruno@clisp.org>
	* config.charset: Add support for MacOS X (Darwin).

	2003-12-02  Bruno Haible  <bruno@clisp.org>
	* config.charset: Treat the new country name CS like the old country
	name YU.

	2003-08-20  Bruno Haible  <bruno@clisp.org>
	* config.charset (linux-gnulibc1*): Change hr_HR, ro_RO to ISO-8859-2.
	Reported by Alain Guibert <derogaton+bgli@oreka.com>.

	2003-08-14  Bruno Haible  <bruno@clisp.org>
	* config.charset: Add support for Linux libc5. Based on data from
	Alain Guibert <derogaton+bgli@oreka.com>.

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

	Avoid use of *_unlocked functions on Solaris 2.5.1.
	* localcharset.c: Test HAVE_DECL_GETC_UNLOCKED, not HAVE_GETC_UNLOCKED.
	Reported by Eric Botcazou <ebotcazou@libertysurf.fr>.

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

	* config.charset (linux-gnulibc1*): Change hr_HR, ro_RO to ISO-8859-2.
	Reported by Alain Guibert <derogaton+bgli@oreka.com>.

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

	* config.charset: Add support for Linux libc5. Based on data from
	Alain Guibert <derogaton+bgli@oreka.com>.

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

	* 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>

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

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

	* 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-06-07  Bruno Haible  <bruno@clisp.org>

	Support for relocatable data files even on VMS.
	* Makefile.vms (bindir): New variable.
	(DEFS): Add flags for relocatability.
	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.
	* Makefile.msvc (IIPREFIX, IIprefix, IIexec_prefix, IIbindir,
	IIlibdir): New variables.
	(PICFLAGS): Also define PIC. Define BUILDING_* flags here.
	(CFLAGS): ... not here. Add flags for relocatability.

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

	* Makefile.msvc (DEBUGFLAGS): New variable.
	(charset.lib): Use it.

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

	* Makefile.vms: New file.

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

	* lib/localcharset.c (get_charset_aliases): Add special case for VMS.

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

	Support for relocatable installation.
	* relocatable.h: New file, from GNU gettext.
	* relocatable.c: New file, from GNU gettext.
	* localcharset.c: Update from GNU gettext.
	2003-02-28  Bruno Haible  <bruno@clisp.org>
		* localcharset.c: Include relocatable.h.
		(get_charset_aliases): Relocate LIBDIR value.
		* localcharset.c: Drop C linkage declaration.
	* Makefile.in (DEFS): New variable.
	(SOURCES): Add relocatable.c.
	(OBJECTS): Add relocatable.lo.
	(localcharset.lo): Use $(DEFS).
	(relocatable.lo): New rule.
	* Makefile.msvc (CFLAGS): Remove $(PICFLAGS).
	(INCLUDES): Simplify.
	(SOURCES): Remove variable.
	(OBJECTS): Add relocatable.obj.
	(localcharset.obj): Add $(PICFLAGS).
	(relocatable.obj): New rule.

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

	* Makefile.msvc (PREFIX): New variable.
	(prefix): Use it.
	(clean): Drop Unix specific removal.

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

	Improved MSVC support.
	* 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 charset.res.
	(charset.lib): Set the target library name explicitly.
	(charset.res): New rule.
	(install, installdirs, uninstall): New rules.

	Rename libcharset.h to localcharset.h.
	* localcharset.c: Include localcharset.h.
	* localcharset.h: Remove file.
	* Makefile.in (INCLUDES): Add -I../include.
	* Makefile.msvc (INCLUDES): Add -I../include.

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

	* config.charset: Add an alias for CP1251 on Solaris.
	Reported by Hidetoshi Tajima <hidetoshi.tajima@sun.com>.

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

	* localcharset.h: New file.
	* localcharset.c: Include it.

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

	* Makefile.in (mkinstalldirs): Renamed from MKINSTALLDIRS.
	(install-lib, install, installdirs): Use it.

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

	* config.charset: Update for newest glibc. Add canonical names
	ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.

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

	* localcharset.c (get_charset_aliases): Add more Windows specific
	aliases.

2002-05-08  Owen Taylor  <otaylor@redhat.com>

	* config.charset: A few additions for Solaris.

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

	* config.charset [msdosdjgpp]: For Russian, use CP866.

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

	* config.charset: Add support for NetBSD.

2002-01-10  Andrew Zabolotny  <zap@cobra.ru>
	    Bruno Haible  <bruno@clisp.org>

	* localcharset.c: Rework OS/2 support.
	* config.charset: Add OS/2 support.

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

	* localcharset.c (ISSLASH): Provide definition for DOS-like systems.

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

	* localcharset.c: Add OS/2 support.

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

	* localcharset.c (locale_charset): Don't return an empty string.

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

	* config.charset: msdos in uk_UA uses CP1125.

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

	Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
	* localcharset.c (locale_charset): Declare as extern "C".
	(get_charset_aliases): Cast malloc and realloc results to 'char *'.

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

	* Makefile.in (clean): Remove also *.o.lock, left there by libtool
	on IRIX.

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

	* Makefile.in (localcharset.lo): Mention $(INCLUDES) before $(CFLAGS)
	and $(CPPFLAGS).
	* Makefile.msvc (localcharset.obj): Likewise.

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

	* config.charset: Change canonical name of BIG5HKSCS to BIG5-HKSCS.
	Change canonical name of SJIS to SHIFT_JIS.

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

	* Makefile.msvc (charset.lib): Allow the 'del' command to fail.

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

	* Makefile.in (CPPFLAGS, LDFLAGS): New variables.
	(libcharset.la): Use LDFLAGS.
	(localcharset.lo): Use CPPFLAGS.

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

	Silence "gcc -Wall -Wwrite-strings" warnings.
	* localcharset.c (charset_aliases): Change type to 'const char *'.
	(get_charset_aliases): Change type of 'cp' to 'const char *'.

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

	* localcharset.c (locale_charset): Allow wildcard syntax. Also resolve
	alias if codeset is empty.
	* config.charset (BeOS): Use wildcard syntax.

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

	* Makefile.in (RM): New variable.

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

	* localcharset.c (volatile): Define to empty if not using ANSI C.

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

	* config.charset: Update for OSF/1 5.1.

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

	* config.charset: For DOS/DJGPP, add CP775.

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

	* config.charset: Add support for DOS/DJGPP.

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

	* localcharset.c (locale_charset): Don't return NULL.

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

	* localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL).

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

	* config.charset: Update for FreeBSD 4.2.

2000-12-19  Jim Meyering  <jim@meyering.net>

	* localcharset.c: Improve WIN32 macrology.
	(locale_charset): Increase size of buffer.

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

	* config.charset: Add support for BeOS.

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

	* Makefile.in (ref-add.sed, ref-del.sed): Don't use $<, not understood
	by Solaris "make". Reported by Toshimitsu Fujiwara.

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

	* Makefile.in (exec_prefix): Use configure's --exec-prefix argument.

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

	* Makefile.msvc: Replace STATIC with its opposite flag, DLL.

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

	* Makefile.msvc (MFLAGS): New variable.
	(CFLAGS, charset.lib): Use it.
	(INCLUDES): Use "..", not "..\include".

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

	* Makefile.msvc: New file.

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

	* config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII,
	CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257
	to the list of canonical encodings. Rename EUC-CN to GB2312.
	* localcharset.c (locale_charset): Add support for Win32.
