2015-09-11  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.6 released.

2015-07-10  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.5 released.

2015-03-12  Daiki Ueno  <ueno@gnu.org>

	* vasnprintf.c: Update from gnulib.

2015-01-22  Daiki Ueno  <ueno@gnu.org>

	* vasnprintf.c: Update copyright year.

2014-12-24  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.4 released.

2014-10-15  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.3 released.

2014-09-30  Daiki Ueno  <ueno@gnu.org>

	* vasnprintf.c: Update from Gnulib.

2014-07-14  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.2 released.

2014-06-10  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.1 released.

2014-06-02  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19 released.

2013-06-10  Daiki Ueno  <ueno@gnu.org>

	* Makefile.am: Use $(MKDIR_P) instead of $(mkdir_p).
	Suggested by Stefano Lattarini in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00044.html>.

2013-03-07  Miguel Angel Arruga Vivas  <rosen644835@gmail.com>  (tiny change)

	Fix '__attribute__' definition.
	Reported at <https://savannah.gnu.org/bugs/?35313>
	* autosprintf.in.h (_AUTOSPRINTF_ATTRIBUTE_FORMAT): New macro
	instead of redefine __attribute__.

2013-03-04  Miguel Angel Arruga Vivas  <rosen644835@gmail.com>  (tiny change)

	Add 'autosprintf::operator='. Needed because destructor
	is not trivial.
	Reported at <https://savannah.gnu.org/bugs/?33102>
	* autosprintf.in.h (autosprintf::operator=): New function.
	Thanks to Daiki Ueno for pointing a better copy-and-swap
	idiom use.
	* autosprintf.cc (autosprintf::operator=): Likewise.

2013-01-17  Daiki Ueno  <ueno@gnu.org>

	Fix link errors related to C99-style extern inline.
	Reported by Sam Thursfield <sam.thursfield@codethink.co.uk>.
	* Makefile.am (libasprintf_la_SOURCES): Add xsize.h and xsize.c.
	(lib_asprintf_EXTRASOURCES): Remove xsize.h.
	* xsize.h: Remove, replacing with the one from gnulib when
	bootstrapping.

2012-12-25  Daiki Ueno  <ueno@gnu.org>

	* gettext-0.18.2 released.

2012-12-17  Daiki Ueno  <ueno@unixuser.org>

	* configure.ac: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER.
	Suggested by Stefano Lattarini <stefano.lattarini@gmail.com>.

2012-11-29  Paul Eggert  <eggert@cs.ucla.edu>

	* vasnprintf.c (MAX_ROOM_NEEDED): Now static, not static
	inline.

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

	* vasnprintf.c: Write "Mac OS X" instead of "MacOS X".

2012-02-09  Paul Eggert  <eggert@cs.ucla.edu>

	maint: replace FSF snail-mail addresses with URLs
	* vasnprintf.c, xsize.h:
	Replace FSF snail mail addresses with URLs, as per GNU coding
	standards.  See glibc bug
	<http://sourceware.org/bugzilla/show_bug.cgi?id=13673>.

2012-02-05  Paul Eggert  <eggert@cs.ucla.edu>

	* vasnprintf.c: Spelling fixes.

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

	Modernize quoting.
	* autosprintf.in.h: Quote 'like this', not `like this', as per the
	recent change to the GNU coding standards.
	* vasnprintf.h: Likewise.
	* vasprintf.h: Likewise.
	* INSTALL: Process through sed -e "s/\`\([^']*\)'/‘\1’/g"

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

	Talk about "native Windows API", not "Win32".
	* vasnprintf.c: Update comments to mention native Windows.

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

	vasnprintf: Optimize bit search operation.
	* vasnprintf.c (divide): Use optimizations from gnulib's
	integer_length.c.

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

	vasnprintf: Fix comments.
	* vasnprintf.c (decode_long_double, decode_double): Fix comments.

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

	Ensure mbstate_t gets defined in libasprintf.
	* configure.ac: Invoke AC_TYPE_MBSTATE_T. Needed on HP-UX 11.31.

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

	Ensure intmax_t gets defined in libasprintf.
	* configure.ac: Invoke gl_AC_TYPE_INTMAX_T instead of gt_TYPE_INTMAX_T.

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

	* Makefile.am (lib_asprintf_EXTRASOURCES): Add verify.h.

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

	rewrite int foo[2*X-1] to verify(X) or to int foo[X?1:-1]
	* vasnprintf.c: Include "verify.h".
	(mp_limb_verify, mp_twolimb_verify, TCHAR_T_verify): Remove, replacing
	with a verify call.

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

	Copyright: Use LGPL 2.1 instead of LGPL 2.0.
	* COPYING.LIB: Replace with text of LGPL 2.1.
	* *.h, *.c, *.cc, Makefile.am: Update copyright header.

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

	Fix misindentation of preprocessor directives.
	* vasnprintf.c (decode_long_double): Reindent preprocessor directives.

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

	vasnprintf: Reduce use of malloc for small format strings.
	* printf-args.h (N_DIRECT_ALLOC_ARGUMENTS): New macro.
	(arguments): Add room for the first 7 arguments.
	* printf-parse.h (N_DIRECT_ALLOC_DIRECTIVES): New macro.
	(char_directives, u8_directives, u16_directives, u32_directives): Add
	room for the first 7 directives.
	* printf-parse.c: Include <string.h>.
	(PRINTF_PARSE): Change memory handling code so that it uses the first
	7 preallocated elements in an 'arguments' or 'DIRECTIVES' struct.
	* vasnprintf.c (VASNPRINTF): Update memory handling code.
	Reported by Pádraig Brady <P@draigbrady.com>.

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

	Ensure that <features.h> is included before __GLIBC__ is tested.
	* printf-parse.h: Include <features.h>.
	* configure.ac: Test for <features.h>.
	Reported by Mike Frysinger <vapier@gentoo.org>.

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

	Port to uClibc.
	* printf-parse.h (FLAG_LOCALIZED): Treat uClibc like a non-glibc platform.
	* printf-parse.c (PRINTF_PARSE): Likewise.
	* vasnprintf.c (decimal_point_char): Treat uClibc like glibc.
	(VASNPRINTF): Treat uClibc like a non-glibc platform.
	Reported by Mike Frysinger <vapier@gentoo.org>.

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

	Fix a comment.
	* vasnprintf.c (VASNPRINTF): Fix comment.

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

	vasnprintf: Support I flag on glibc systems.
	* printf-parse.h (FLAG_LOCALIZED): New macro.
	* printf-parse.c (PRINTF_PARSE): Handle the 'I' flag.
	* vasnprintf.c (VASNPRINTF): Pass the 'I' flag on to the system's
	snprintf function.

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

	Rename autosprintf.h.in to autosprintf.in.h.
	* autosprintf.in.h: New file, renamed from autosprintf.h.in.
	* Makefile.am (autosprintf.h, EXTRA_DIST): Update.

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

	vasnprintf: Don't set errno to 0.
	* vasnprintf.c (VASNPRINTF): Save and restore errno around the block
	that sets it to 0.
	Reported by Gianluigi Tiesi <sherpya@netfarm.it>.

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

	* gettext-0.18.1 released.

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

	* gettext-0.18 released.

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

	vasnprintf: Fix syntax errors in libintl build on mingw.
	* vasnprintf.c (VASNPRINTF): Move a closing brace. Undefine
	pad_ourselves and prec_ourselves after use.

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

	vasnprintf: Correct errno value in case of out-of-memory.
	* vasnprintf.c (VASNPRINTF): Set errno to 0 before calling SNPRINTF or
	sprintf. Use the errno value from SNPRINTF or sprintf.
	Reported by Ian Beckwith <ianb@erislabs.net>.

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

	vasnprintf: Correct handling of unconvertible wide string arguments.
	* vasnprintf.c (MAX_ROOM_NEEDED): New function, extracted from
	VASNPRINTF.
	(VASNPRINTF): Use it. After snprintf failed, allocate more memory only
	if HAVE_SNPRINTF_RETVAL_C99 is false and the allocated memory is
	smaller than the expected maximum need for the directive. Set errno to
	EILSEQ, not EINVAL, when the directive is 'c' or 's'.
	(local_strnlen, local_wcslen, local_wcsnlen): Update conditions.
	Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.

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

	vasnprintf: Fix crash in %ls directive.
	* vasnprintf.c (VASNPRINTF): Don't abort when a unconvertible wide
	string is passed as argument to %ls, with no precision and no width.
	Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.

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

	vasnprintf: Fix multiple test failures on mingw.
	* vasnprintf.c (SNPRINTF) [mingw]: Define to snprintf, not _snprintf,
	or snwprintf, not _snwprintf.

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

	* vasnprintf.c (VASNPRINTF): If GNULIB_defined_mbstate_t is defined,
	use wctomb instead of wcrtomb.

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

	* *.h, *.c: Untabify.

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

	* vasnprintf.c (decimal_point_char): Choose the fast path also on
	MacOS X.

2009-11-17  Eric Blake  <ebb9@byu.net>

	* vasnprintf.c (VASNPRINTF): Avoid shadowing our own local variables.

2009-08-20  Eric Blake  <ebb9@byu.net>

	* vasnprintf.c (decimal_point_char): Avoid warning on old-style
	declaration.

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

	Use the gnulib module 'errno'.
	* Makefile.am: Include Makefile.gnulib.
	(ACLOCAL_AMFLAGS): Add -I gnulib-m4.
	(EXTRA_DIST): Add gnulib-m4/gnulib-cache.m4.
	(BUILT_SOURCES, noinst_LTLIBRARIES): New variables.
	* configure.ac (AC_PREREQ): Require autoconf 2.59 or newer.
	Invoke gl_EARLY, gl_INIT. Don't invoke gl_EOVERFLOW. Remove the alloca
	tests.

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

	* vasnprintf.c (DCHAR_SET): Undefine at the end.

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

	* configure.ac (AM_INIT_AUTOMAKE): Add 'silent-rules' option.
	* Makefile.am (libasprintf.la): Silence 'make' output if silent-rules.

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

	* configure.ac: Pass package and version to AC_INIT instead of
	AM_INIT_AUTOMAKE.

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

	Assume automake >= 1.10.2.
	* configure.ac (AC_CONFIG_FILES): Remove FIX_MAKEFILE_COMPILE,
	FIX_MAKEFILE_INFO invocations.

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

	* vasnprintf.c (VASNPRINTF): Update after the calling convention of
	u*_conv_from_encoding and u*_conv_to_encoding changed.

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

	* Makefile.am (SUFFIXES, CLEANFILES): Remove variables. Not needed any
	more.

2009-03-23  Jim Meyering  <meyering@redhat.com>

	* vasnprintf.c (divide): Fix typo in comment.

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

	Fix *printf behaviour regarding the %ls directive.
	* vasnprintf.c (local_wcslen, VASNPRINTF): Handle
	NEED_PRINTF_DIRECTIVE_LS.

2009-02-23  Bruno Haible  <bruno@clisp.org>

	Fix invalid read past end of memory block.
	* vasnprintf.c (DCHAR_SET): Define.
	(local_wcslen): Define only when needed.
	(local_strnlen, local_wcsnlen): New functions.
	(VASNPRINTF) [!USE_SNPRINTF && HAVE_WCHAR_T]: Implement the %s and %ls
	directives that involve a conversion ourselves.
	* configure.ac: Also check for strnlen, wcsnlen, mbrtowc, wcrtomb.

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

	* configure.ac: More consistent m4 quoting.

2008-09-22  Eric Blake  <ebb9@byu.net>
	    Bruno Haible  <bruno@clisp.org>

	vasnprintf: fix x86/glibc regression on printf("%La", 0.0L)
	* vasnprintf.c (VASNPRINTF): Support 0.0 on platforms that supply %A
	but mishandle pseudo-NaN.
	Reported by Simon Josefsson.

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

	* vasnprintf.c (VASNPRINTF): When printing ±0.0L in
	NEED_PRINTF_INFINITE_LONG_DOUBLE case with 'e' format, always use two
	digits for the exponent.

2008-09-18  Jim Meyering  <meyering@redhat.com>
	    Bruno Haible  <bruno@clisp.org>

	* vasnprintf.c (decimal_point_char): Define also if
	NEED_PRINTF_INFINITE_LONG_DOUBLE.

2008-09-16  Bruno Haible  <bruno@clisp.org>
	and Eric Blake  <ebb9@byu.net>

	vasnprintf: support Irix 5.3
	* vasnprintf.c (VASNPRINTF): Also handle -0.0L on platforms that
	mishandle long double infinity.
	Reported by Tom G. Christensen.

2008-09-02  Eric Blake  <ebb9@byu.net>

	vasnprintf-posix: handle large precision via %.*d
	* vasnprintf.c (VASNPRINTF): Don't pass precision to snprintf
	when handling it ourselves.
	Reported by Alain Guibert.

2008-07-10  Ben Pfaff  <blp@gnu.org>

	* vasnprintf.c: Update references to renamed include files.

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

	Avoid one more warning from gcc.
	* vasnprintf.c (IF_LINT): Update comments.
	(VASNPRINTF): Use it also for the 'prefix' array initializer.

2008-05-21  Jim Meyering  <meyering@redhat.com>

	avoid a warning from gcc
	* vasnprintf.c (IF_LINT): Define.
	(scale10_round_decimal_long_double):
	Use it to avoid a "may be used uninitialized" warning.
	(scale10_round_decimal_double): Likewise.

2008-05-16  Jim Meyering  <meyering@redhat.com>
	    Bruno Haible  <bruno@clisp.org>

	Avoid some warnings from "gcc -Wshadow".
	* vasnprintf.c (exp, remainder): Define to different identifiers.

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

	Work around snprintf bug on Linux libc5.
	* vasnprintf.c (USE_SNPRINTF): Set to 0 on Linux libc5 systems.

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

	* vasnprintf.c (floorlog10l, floorlog10): Reduce maximum error from
	0.0058 to less than 10^-7.

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

	Fix rounding when a precision is given.
	* vasnprintf.c (is_borderline): New function.
	(VASNPRINTF): For %e and %g, consider replacing the digits 10....0 with
	9...9x.
	Reported by John Darrington <john@darrington.wattle.id.au> via
	Ben Pfaff <blp@cs.stanford.edu>.

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

	Fix buffer overrun.
	* vasnprintf.c (VASNPRINTF): If !USE_SNPRINTF && pad_ourselves:
	Don't consider the width for tmp_length. Check count against tmp_length
	before doing the padding. Ensure enough allocation during padding.

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

	* vasnprintf.c (EOVERFLOW): Remove fallback.

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

	Fix bug introduced on 2007-06-10.
	* vasnprintf.c (VASNPRINTF): When performing zero-padding, use
	spaces instead of 0 digits for 's' also when ENABLE_UNISTDIO.

2008-02-28  Atsushi SAKAI  <sakaia@jp.fujitsu.com>

	* xsize.h: Fix typo in comment: s/tupe/type/.

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

	* vasnprintf.c (VASNPRINTF): Don't use %n on native Woe32 systems.
	Avoids a crash on Windows Vista.
	Reported by Adam Strzelecki <ono@java.pl> via
	Simon Josefsson <simon@josefsson.org>.

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

	Fix *printf behaviour regarding the left-adjust flag on HP-UX 10.20.
	* vasnprintf.c (VASNPRINTF): Handle NEED_PRINTF_FLAG_LEFTADJUST.
	Reported by Peter Fales <psfales@alcatel-lucent.com>.

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

	Fix bug introduced on 2007-06-10.
	* vasnprintf.c (VASNPRINTF): Perform zero-padding also if
	!NEED_PRINTF_FLAG_ZERO.

2008-01-29  Jim Meyering  <meyering@redhat.com>

	vasnprintf.c: Avoid warning about unused label
	* vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Guard the
	"overflow" label definition and associated code with the
	same cpp condition that guards the sole use of that label.

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

	Rename isnan, applicable to 'double' only, to isnand.
	* vasnprintf.c: Include isnand.h instead of isnan.h.
	(is_infinite_or_zero, VASNPRINTF): Use isnand instead of isnan.

2008-01-08  Jim Meyering  <meyering@redhat.com>
	    Bruno Haible  <bruno@clisp.org>

	* printf-parse.c (PRINTF_PARSE): Handle a size specifier "q" on MacOS X
	and a size specifier "I64" on mingw. Needed for PRIdMAX.
	Reported by Peter Fales in
	<http://lists.gnu.org/archive/html/bug-coreutils/2007-12/msg00148.html>.

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

	* configure.ac: Use LT_INIT instead of AC_PROG_LIBTOOL.

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

	* vasnprintf.c (decode_long_double): Don't abort if the 'long double'
	type has excess precision.
	Reported by Jim Meyering in
	<http://lists.gnu.org/archive/html/bug-gnulib/2007-11/msg00120.html>.

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

	* configure.ac: Do _snprintf check like gnulib's vasnprintf.m4 does.

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

	* configure.ac: Invoke AC_TYPE_LONG_LONG_INT instead of
	gl_AC_TYPE_LONG_LONG. Don't invoke gt_TYPE_LONGDOUBLE.
	Report and patch by Kacper.

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

	* configure.ac: Invoke gl_EOVERFLOW.

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

	* vasnprintf.c (VASNPRINTF): Ensure that we never call snprintf with a
	size argument < 2.

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

	* vasnprintf.c (VASNPRINTF): Increase reallocation of snprintf buffer.
	Fixes an inefficiency introduced on 2007-11-03.

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

	* gettext-0.17 released.

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

	* vasnprintf.c (VASNPRINTF): Expand the NEED_PRINTF_DIRECTIVE_A
	code when NEED_PRINTF_LONG_DOUBLE or NEED_PRINTF_DOUBLE is set.
	Needed on Cygwin, where !NEED_PRINTF_DIRECTIVE_A && NEED_PRINTF_DOUBLE.
	Reported by Eric Blake.

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

	* vasnprintf.c (DCHAR_IS_TCHAR, DCHAR_CPY): Undefine at the end.

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

	* printf-args.c (PRINTF_FETCHARGS) [ENABLE_UNISTDIO]: Fix NULL
	replacement string.
	Reported by Eric Blake.

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

	* printf-args.h (PRINTF_FETCHARGS): New macro.
	(arg_type) [ENABLE_UNISTDIO]: Define TYPE_U8_STRING, TYPE_U16_STRING,
	TYPE_U32_STRING.
	(argument) [ENABLE_UNISTDIO]: Add a_u8_string, a_u16_string,
	a_u32_string variants.
	(PRINTF_FETCHARGS): Renamed from printf_fetchargs.
	* printf-args.c: Don't include config.h and the specification header
	if PRINTF_FETCHARGS is already defined.
	(PRINTF_FETCHARGS): Renamed from printf_fetchargs.
	(PRINTF_FETCHARGS) [ENABLE_UNISTDIO]: Add code for TYPE_U8_STRING,
	TYPE_U16_STRING, TYPE_U32_STRING.

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

	* vasnprintf.c (VASNPRINTF): Handle NEED_PRINTF_UNBOUNDED_PRECISION.

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

	* vasnprintf.c (scale10_round_decimal_decoded): Fix shift loop.

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

	* vasnprintf.c: Implement NEED_PRINTF_DOUBLE.
	(decode_double): New function, copied from decode_long_double.
	(scale10_round_decimal_decoded): New function, extracted from
	scale10_round_decimal_long_double.
	(scale10_round_decimal_long_double): Use it.
	(scale10_round_decimal_double): New function.
	(floorlog10): New function.
	(VASNPRINTF): Handle NEED_PRINTF_DOUBLE case.

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

	* vasnprintf.c (VASNPRINTF): Don't assume that snprintf's return value
	is C99 compliant.
	Needed for OSF/1 5.1.

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

	Fix out-of-memory handling of vasnprintf.
	* printf-parse.c: Include <errno.h>.
	(PRINTF_PARSE): When failing, set errno to EINVAL or ENOMEM.
	* vasnprintf.c (VASNPRINTF): When PRINTF_PARSE fails, assume errno is
	already set.

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

	* vasnprintf.c (VASNPRINTF): Don't report overflow if the available
	length is INT_MAX and sizeof (DCHAR_T) > sizeof (TCHAR_T).
	Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.

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

	* vasnprintf.c (VASNPRINTF): Don't use %n on glibc >= 2.3 systems.
	Reported by Jim Meyering.

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

	* vasnprintf.c (decimal_point_char): Define also if
	(NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE)
	&& !NEED_PRINTF_DIRECTIVE_A.
	Reported by Clemens Koller <clemens.koller@anagramm.de> via
	Gary V. Vaughan <gary@gnu.org>.

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

	* vasnprintf.c: Don't include config.h and the specification header if
	VASNPRINTF is already defined.
	(DCHAR_IS_TCHAR, DCHAR_CPY): New macros.
	(VASNPRINTF): Use PRINTF_FETCHARGS instead of printf_fetchargs. Use
	DCHAR_CPY. Handle the case that DCHAR_T and FCHAR_T are not the same
	type. Handle the case that TCHAR_T and FCHAR_T are not of the same
	size. Handle the case that DCHAR_T and TCHAR_T are not the same type,
	add a conversion from TCHAR_T[] to DCHAR_T[], and rework the padding
	code accordingly.
	(VASNPRINTF) [ENABLE_UNISTDIO]: Implement the 'U' directive. Enable
	pad_ourselves also in this case, with the 'c' and 's' directives, and
	with a different notion of "width".

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

	* vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Remove variable
	'maxlen'. Ensure only length + width bytes are allocated, not
	length + 1 + width.

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

	* vasnprintf.c (FCHAR_T, DCHAR_T, TCHAR_T): New macros.
	(CHAR_T): Remove macro.
	(VASNPRINTF): Update.

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

	* vasnprintf.c (VASNPRINTF): Do the extra handling of NaN and Inf
	also the %a / %A. Handle the %a / %A code before this extra handling.

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

	* vasnprintf.c [NEED_PRINTF_LONG_DOUBLE ||
	NEED_PRINTF_INFINITE_LONG_DOUBLE]: Include fpucw.h.

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

	* printf-parse.c: Don't assume <stdint.h> exists in IN_LIBASPRINTF
	context.

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

	* printf-parse.c: Don't include config.h and the specification
	header if PRINTF_PARSE is already defined. Eliminate the set of
	parameters for WIDE_CHAR_VERSION; the user of this file must provide
	them now. Include c-ctype.h.
	(PRINTF_PARSE) [ENABLE_UNISTDIO]: Add code implementing the 'U'
	directive and CHAR_T_ONLY_ASCII.

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

	* alloca.in.h: Renamed from alloca_.h.
	* Makefile.am (EXTRA_DIST, alloca.h): Update.

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

	* autosprintf.texi (Class autosprintf): Explain memory mangement
	details.
	Reported at <https://savannah.gnu.org/bugs/?17659>.

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

	* autosprintf.texi (ifmakeinfo): Remove alias.
	(makeinfo): New variable.
	* Makefile.am (autosprintf_all.html): Don't pass option -expandinfo
	to texi2html.

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

	* vasnprintf.c: Update comments.

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

	* vasnprintf.c: Use NEED_PRINTF_INFINITE_DOUBLE instead of
	NEED_PRINTF_INFINITE.
	(is_infinitel): New function.
	(VASNPRINTF): Handle NEED_PRINTF_INFINITE_LONG_DOUBLE case.

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

	* vasnprintf.c: Include math.h and isnan.h.
	(is_infinite_or_zero): New function.
	(VASNPRINTF): Fix also the handling of infinite or zero 'double'
	values in the %f, %F, %e, %E, %g, %G directives.

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

	* vasnprintf.c (convert_to_decimal): Add an extra_zeroes argument.
	(scale10_round_decimal_long_double): Inline scale10_round_long_double.
	Instead of multiplying with 10^k, set extra_zeroes to k.
	(scale10_round_long_double): Remove function.

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

	* vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Fix logic bug
	introduced on 2007-05-06.

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

	* vasnprintf.c: Include math.h and float+.h.
	(mp_limb_t): New type.
	(GMP_LIMB_BITS): New macro.
	(mp_twolimb_t): New type.
	(GMP_TWOLIMB_BITS): New macro.
	(mpn_t): New type.
	(multiply, divide, convert_to_decimal, decode_long_double,
	scale10_round_long_double, scale10_round_decimal_long_double,
	floorlog10l): New functions.
	(VASNPRINTF) [NEED_PRINTF_LONG_DOUBLE]: Implement 'long double' support
	for the %f, %F, %e, %E, %g, %G directives.

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

	* vasnprintf.c (USE_SNPRINTF): Define to 0 on BeOS.

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

	* vasnprintf.c (VASNPRINTF) [WIN32]: Use %I64d instead of %lld for
	printing 64-bit integers. Needed for mingw.

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

	* vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Perform the
	padding ourselves for the floating-point directives.

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

	* vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_GROUPING]: Don't pass
	the ' flag character to sprintf or snprintf.

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

	* vasnprintf.c (VASNPRINTF): Implement the %F directive using the %f
	directive, if NEED_PRINTF_DIRECTIVE_F is defined.

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

	* vasnprintf.c: Include <math.h>. Don't include float+.h.
	(VASNPRINTF): Use signbit for faster determination whether to print a
	minus sign.

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

	* vasnprintf.c (decimal_point_char): New function.
	(VASNPRINTF): Use it.

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

	* vasnprintf.c: Include langinfo.h.
	(VASNPRINTF): Prefer nl_langinfo over localeconv, since it's more
	multithread-safe.

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

	* vasnprintf.c: Include fpucw.h.
	(VASNPRINTF): Invoke BEGIN/END_LONG_DOUBLE_ROUNDING around the
	'long double' calculations.

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

	* vasnprintf.c: Include float+.h.
	(VASNPRINTF): When comparing against +0.0L or +0.0, compare only
	SIZEOF_LDBL or SIZEOF_DBL bytes.

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

	* vasnprintf.c [!HAVE_LONG_DOUBLE]: Include printf-frexp.h. Don't
	include isnanl-nolibm.h.

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

	* vasnprintf.c: Update after isnanl.h was renamed to isnanl-nolibm.h.

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

	* vasnprintf.c (VASNPRINTF): Undo first part of last patch.

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

	* vasnprintf.c (EOVERFLOW): New fallback definition.
	(VASNPRINTF): Fail with EOVERFLOW when the given allocated size is
	larger than INT_MAX, or when it grow to a value larger than INT_MAX.

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

	* vasnprintf.c (VASNPRINTF): Clear out the memory used for arg_mem
	before comparing it. Needed because on some platforms (e.g. x86) a
	'long double' occupies less bytes than sizeof (long double).

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

	* vasnprintf.c (sprintf): Undefine.

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

	* vasnprintf.c (snprintf): Undefine. Avoids an endless recursion.

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

	* vasnprintf.c (VASNPRINTF): For the 'a' and 'A' directives, use a
	locale dependent decimal point, rather than always '.'.

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

	* vasnprintf.c: Include isnan.h, isnanl.h, printf-frexp.h,
	printf-frexpl.h.
	(VASNPRINTF): Handle the 'a' and 'A' directives here, if needed.

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

	* alloca_.h: Change prefix of double-inclusion guard macro to _GL_.

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

	* alloca_.h (alloca) [defined alloca]: Don't define or declare.

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

	* vasnprintf.h: Convert tabs in the middle of lines to spaces.

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

	Add support for both "makeinfo --html" and texi2html.
	* autosprintf.texi (ifmakeinfo): New alias.
	(Top): Use it instead of @ifinfo.

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

	* printf-args.h: Assume HAVE_LONG_DOUBLE to be true.
	* printf-args.c: Likewise.
	* printf-parse.c: Likewise.
	* vasnprintf.c: Likewise.

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

	* Makefile.am (DEFS): New variable.
	* vasprintf.c: Sync with gnulib.
	* asprintf.c: Likewise.

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

	* printf-parse.c [!IN_LIBINTL]: Include <stdint.h>, for intmax_t.
	(PRINTF_PARSE): Make the support for size specifier 'j' unconditional.

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

	* vasnprintf.c (VASNPRINTF): Fix estimate of size needed for a 'a' or
	'A' conversion.

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

	* printf-args.h: Use '#if HAVE_*' instead of '#ifdef HAVE_*'.
	* printf-args.c: Likewise.
	* printf-parse.c: Likewise.
	* vasnprintf.c: Likewise.

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

	* printf-parse.c (PRINTF_PARSE): Cast malloc/realloc results.

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

	Work around automake-1.10 annoyance.
	* Makefile.am (ACLOCAL): New macro.

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

	* gettext-0.16.1 released.

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

	* gettext-0.16 released.

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

	Switch to automake-1.10.
	* Makefile.am (install-dvi, install-ps, install-pdf): Remove rules.
	(HTMLS): New variable.
	(html-local): Use it.
	(install-html): Remove rule.

2006-10-11  Paul Eggert  <eggert@cs.ucla.edu>
            Bruno Haible  <bruno@clisp.org>

	* printf-args.h (arg_type, argument): Test HAVE_LONG_LONG_INT
	instead of HAVE_LONG_LONG.
	* printf-args.c (printf_fetchargs): Likewise.
	* printf-parse.c (PRINTF_PARSE): Likewise.
	* vasnprintf.c (VASNPRINTF): Likewise.

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

	* lib-asprintf.c: Include <config.h> unconditionally.
	* asnprintf.c: Likewise.
	* asprintf.c: Likewise.
	* printf-args.c: Likewise.
	* printf-parse.c: Likewise.
	* vasnprintf.c: Likewise.
	* vasprintf.c: Likewise.

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

	* vasnprintf.c (EOVERFLOW): Remove definition.
	(VASNPRINTF): Return a string of length > INT_MAX without failing.
	* vasprintf.c: Include errno.h, limits.h.
	(EOVERFLOW): New fallback definition.
	(vasprintf): Test here whether the string length is > INT_MAX.

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

	* configure.ac: Remove bh_C_SIGNED invocation.

2006-08-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* autosprintf.texi: Reduce spacing after "i.e." and "e.g.".

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

	* windows: Remove directory.
	* Makefile.msvc: Remove file.
	* Makefile.am (config.h.msvc, autosprintf.h.msvc-shared): Remove rules.
	(EXTRA_DIST): Remove Makefile.msvc, config.h.msvc,
	autosprintf.h.msvc-shared, windows/*.

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

	* Makefile.vms: Remove file.
	* Makefile.am (config.h_vms): Remove rule.
	(EXTRA_DIST): Remove Makefile.vms, config.h_vms.

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

	* gettext-0.15 released.

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

	Assume working 'const'.
	* configure.ac: Remove AC_C_CONST invocation.

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

	Assume autoconf >= 2.60.
	* Makefile.am (docdir, dvidir, psdir, pdfdir, htmldir): Remove
	variables.

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

	* printf-args.c (printf_fetchargs): Turn NULL pointers for
	TYPE_STRING and TYPE_WIDE_STRING into a non-NULL replacement.
	Reported by Thorsten Maerz <torte@netztorte.de> via
	Aaron Stone <aaron@serendipity.cx>.

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

	* configure.ac (LTNOUNDEF): Set to -no-undefined also on mingw and
	Cygwin.

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

	* Makefile.am: Use $(mkdir_p) instead of $(mkinstalldirs).

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

	* autosprintf.texi: Change license terms to FDL | GPL.

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

	* texi2html: Add option -expandtex. Expand @ifhtml by default, not
	@ifinfo. Use Unicode quotation marks instead of grave and acute
	accents. Emit charset=UTF-8 declaration. Bump version number to 1.52b.

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

	* vasnprintf.c (VASNPRINTF): In the computation of the size of the
	temporary buffer for sprintf, take into account the precision also
	for 'd', 'i', 'u', 'o', 'x', 'X'.

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

	Cygwin portability.
	* configure.ac: Invoke gl_WOE32_DLL.

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

	Add ability to create shared library on BeOS.
	* configure.ac (LTNOUNDEF): New macro.
	* Makefile.am (libasprintf_la_LDFLAGS): New variable.

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

	* printf-args.c (printf_fetchargs): Work around broken definition of
	wint_t on mingw.

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

	* gettext-0.14.6 released.

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

	* gettext-0.14.5 released.

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

	* gettext-0.14.4 released.

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

	* configure.ac (AC_CONFIG_AUX_DIR): Use ../../build-aux.
	* Makefile.am (ACLOCAL_AMFLAGS): Replace config/m4 with m4.

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

	* gettext-0.14.3 released.

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

	* gettext-0.14.2 released.

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

	* Makefile.am (libasprintf.la): New rule. Needed for BeOS.

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

	* Makefile.msvc (install): Update for 2004-01-18 change.
	* Makefile.vms (install): Likewise.

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

	* vasnprintf.c (EOVERFLOW): Define to a fallback if needed.

2004-12-19  Paul Eggert  <eggert@cs.ucla.edu>

	* alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H.

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

	* vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length
	is > INT_MAX.
	* vasprintf.c (vasprintf): Don't test for length > INT_MAX any more.

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

	* vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision
	that consists of a '.' followed by an empty digit string.
	Patch by Tor Lillqvist <tml@iki.fi>.

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

	* gettext.m4: Change jm_ to gl_ in all uses of AC_DEFINE'd names.

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

	* Makefile.am (config.h.msvc): Fix the value of SIZE_MAX.

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

	* Makefile.am (RM): New variable.

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

	* gettext-0.14.1 released.

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

	* gettext-0.14 released.

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

	* Makefile.am (autosprintf_all.html): Renamed from autosprintf.html.
	Works around a problem with automake-1.8: It removes autosprintf.html
	during "make mostlyclean".

2003-10-30  Paul Eggert  <eggert@twinsun.com>
            Bruno Haible  <bruno@clisp.org>

	* vasprintf.c: Include <limits.h>, <stdlib.h>.
	(vasprintf): Fail if the resulting length doesn't fit in an 'int'.

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

	Assume automake-1.8.
	* Makefile.am (clean-local): Renamed from clean-am.
	(html-local): Renamed from html.
	(ps, pdf, .texi.pdf): Remove rules.
	(TEXI2PDF): Remove variable.

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

	* gettext-0.13.1 released.

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

	* Makefile.am (MAKEINFOFLAGS): New variable.

2003-11-30  Bruno Haible  <bruno@clisp.org>

	* gettext-0.13 released.

2003-11-28  Bruno Haible  <bruno@clisp.org>

	* configure.ac: Invoke AC_C_INLINE.
	* Makefile.am (config.h.msvc): Define SIZE_MAX and inline.

2003-11-23  Paul Eggert  <eggert@twinsun.com>
            Bruno Haible  <bruno@clisp.org>

	* printf-parse.h: Don't include sys/types.h.
	(ARG_NONE): New macro.
	(char_directive): Change type of *arg_index fields to size_t.
	* printf-parse.c: Don't include sys/types.h.
	(SSIZE_MAX): Remove macro.
	(PRINTF_PARSE): Change the type of the arg_index variables to size_t.
	Remove unnecessary overflow check.
	* vasnprintf.c (VASNPRINTF): Update for type change of *arg_index
	fields.
	* configure.ac: Don't invoke gt_TYPE_SSIZE_T.

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

	* configure.ac: Better test for ptrdiff_t. Invoke gt_TYPE_SSIZE_T and
	gl_XSIZE.

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

	* vasnprintf.c (alloca): Remove fallback definition.
	(freea): Remove definition.
	(VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes.
	Reported by Paul Eggert.

2003-11-16  Paul Eggert  <eggert@twinsun.com>
            Bruno Haible  <bruno@clisp.org>

	Protect against address arithmetic overflow.
	* printf-args.h: Include stddef.h.
	(arguments): Change type of field 'count' to size_t.
	* printf-args.c (printf_fetchargs): Use size_t instead of
	'unsigned int' where appropriate.
	* printf-parse.h: Include sys/types.h.
	(char_directive): Change type of *arg_index fields to ssize_t.
	(char_directives): Change type of fields 'count', max_*_length to
	size_t.
	* printf-parse.c: Include sys/types.h and xsize.h.
	(SSIZE_MAX): Define fallback value.
	(PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t
	instead of 'int' where appropriate. Check a_allocated, d_allocated
	against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1.
	* vasnprintf.c: Include xsize.h.
	(VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate.
	Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against
	overflow. Avoid wraparound when converting a width or precision from
	decimal to binary.
	* xsize.h: New file, from gnulib.
	* Makefile.am (lib_asprintf_EXTRASOURCES): Add xsize.h.

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

	* Makefile.am (MAKEINFO): Set LC_MESSAGES and LC_ALL to empty as well.

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

	* configure.ac: Remove argument of FIX_MAKEFILE_COMPILE,
	FIX_MAKEFILE_INFO.

2003-10-19  Jim Meyering  <jim@meyering.net>

	* vasnprintf.c (VASNPRINTF): Work around losing snprintf on HPUX 10.20.

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

	* configure.ac: Test whether _snprintf is declared, not only existent
	as a function.
	* vasnprintf.c: Test HAVE_DECL__SNPRINTF instead of HAVE__SNPRINTF.
	Test HAVE_DECL__SNWPRINTF instead of HAVE__SNWPRINTF.
	* Makefile.am (config.h.msvc): Define HAVE_DECL__SNPRINTF instead of
	defining snprintf as a macro.

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

	* vasnprintf.c (local_wcslen): Protect against multiple definition.
	(USE_SNPRINTF): Define also if only _snprintf() is available.
	(SNPRINTF): Possibly define as _snprintf or _snwprintf.
	* configure.ac: Also check for _snprintf.

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

	* vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
	(VASNPRINTF): Use it instead of wcslen.
	* configure.ac: Also check for wcslen.
	* Makefile.am (config.h_vms): Set HAVE_WCSLEN.
	(config.h.msvc): Likewise.

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

	* configure.ac: Invoke gt_PRINTF_POSIX.
	* lib-asprintf.h: Ignore an existing vasprintf() if it doesn't support
	POSIX/XSI format strings.
	* lib-asprintf.c: Likewise.
	* Makefile.am (config.h_vms): Define HAVE_POSIX_PRINTF.

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

	* configure.ac (jm_AC_TYPE_LONG_LONG): Replaces gt_TYPE_LONGLONG.
	* printf-parse.c: Generalize to it can be compiled for wide strings.
	(PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros.
	* vasnprintf.c: Generalize to it can be compiled for wide strings.
	(VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF,
	SNPRINTF): New macros.
	Don't include <alloca.h> if the file is used inside libintl.

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

	* autosprintf.texi: Tweak @dircategory and @direntry.
	Reported by Karl Berry <karl@freefriends.org>.

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

	* gettext-0.12.1 released.

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

	* Makefile.am (config.h_vms, config.h.msvc, autosprintf.h.msvc-shared):
	Don't use $< here.

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

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

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

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

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

	* gettext-0.12 released.

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

	* Makefile.am (config.h_vms): Renamed from config.h.vms.
	* Makefile.vms: New variables ABIFLAGS, DEFS. Avoid rules with no
	lines. Update library creation rule. Don't use the force target.
	Correct wildcard syntax.
	Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.

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

	* Makefile.am (docdir): Use datadir instead of prefix.
	* Makefile.msvc (datadir): New variable.
	(sub_docdir): Use it instead of prefix.
	(install, installdirs): Update.
	* Makefile.vms (datadir): New variable.
	(sub_docdir): Use it instead of prefix.

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

	* Makefile.vms: New file.
	* Makefile.am (config.h.vms): New rule.
	(EXTRA_DIST): Add Makefile.vms and config.h.vms.

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

	Native Woe32/MSVC support.
	* autosprintf.h.in: Renamed from autosprintf.h.
	* Makefile.msvc: New file.
	* README.woe32: New file.
	* windows/dllexport.h: New file.
	* windows/asprintf.rc: New file.
	* Makefile.am (EXTRA_DIST): Add them and config.h.msvc and
	autosprintf.h.in.
	(autosprintf.h): New rule.
	(MOSTLYCLEANFILES): Add autosprintf.h.
	(dist-hook): Don't distribute autosprintf.h.
	(config.h.msvc, autosprintf.h.msvc-shared): New rules.

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

	* autosprintf.texi: Add comment about indices.
	* Makefile.am (MOSTLYCLEANFILES): No need to clean the unused indices.
	(The automake generated rule already cleans them.)

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

	* Makefile.am (installdirs): Remove dependency, redundant with
	automake >= 1.6.

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

	* Makefile.am (clean-am): New rule. For Solaris cc.

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

	* configure.ac: Renamed from configure.in. Invoke AC_CONFIG_AUX_DIR.
	Invoke AC_FUNC_ALLOCA instead of gl_FUNC_ALLOCA. Remove redundant
	postprocessing of Makefile.
	* Makefile.am (ACLOCAL_AMFLAGS): Add -I ../../config/m4.
	($(libasprintf_la_OBJECTS)): Make alloca.h dependency effective.

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

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

	* configure.in: Invoke gl_FUNC_ALLOCA instead of AC_FUNC_ALLOCA.
	* alloca_.h: New file, from gnulib.
	* liballoca.h: Remove file.
	* Makefile.am: Add snippet from gnulib module alloca.
	(lib_asprintf_EXTRASOURCES): Remove liballoca.h.
	* vasnprintf.c: Include alloca.h instead of liballoca.h.

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

	* Makefile.am: Make use of += for variables.

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

	Portability to FreeBSD.
	* configure.in: Invoke gt_TYPE_WINT_T.
	* printf-args.h: Use HAVE_WINT_T, not HAVE_WCHAR_T, to check for
	availability of wint_t.
	* printf-argc.c: Likewise.
	* printf-parse.c: Likewise.
	* vasnprintf.c: Likewise.

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

	Switch to autoconf-2.57 and automake-1.7.2.
	* configure.in: Use AC_CONFIG_FILES, because the AC_OUTPUT commands
	and not run any more when config.status is called to create a single
	file.

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

	Assume ANSI C.
	* libstdarg.h: Remove file.
	* Makefile.am (lib_asprintf_EXTRASOURCES): Remove libstdarg.h.
	* asnprintf.c: Include <stdarg.h> instead of libstdarg.h.
	(asnprintf): Use ANSI C function declarations. Use va_start instead of
	VA_START.
	* asprintf.c: Include <stdarg.h> instead of libstdarg.h.
	(asnprintf): Use ANSI C function declarations. Use va_start instead of
	VA_START.
	* printf-args.h (PARAMS): Remove macro.
	(printf_fetchargs): Use ANSI C function declarations.
	* printf-args.c (printf_fetchargs): Likewise.
	* printf-parse.h (printf_parse): Likewise.
	* printf-parse.c (printf_parse): Likewise.
	* vasnprintf.h (PARAMS): Remove macro.
	(asnprintf, vasnprintf): Use ANSI C function declarations.
	* vasnprintf.c (vasnprintf): Likewise.
	* vasprintf.h (PARAMS): Remove macro.
	(asprintf, vasprintf): Use ANSI C function declarations.
	* vasprintf.c (vasprintf): Likewise.

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

	* printf-args.h, printf-args.c: New files.
	* printf-parse.h, printf-parse.c: New files.
	* vasnprintf.h, vasnprintf.c, asnprintf.c: New files.
	* vasprintf.h, vasprintf.c, asprintf.c: New files.
	* lib-asprintf.h, lib-asprintf.c: New files.
	* autosprintf.h, autosprintf.cc: New files.
	* README, NEWS, AUTHORS, COPYING, autosprintf.texi: New files.
	* Makefile.am, configure.in: New files.
	* liballoca.h, libstdarg.h: New files, from gettext-0.11.6/lib.
	* COPYING.LIB, INSTALL, config.guess, config.sub, install-sh,
	ltmain.sh, missing, mkinstalldirs, texi2html, texinfo.tex: Standard
	infrastructure files, from gettext-0.11.6.
