Allow for a longer printed representation of NaN.
[gnulib.git] / ChangeLog
index b0bc1bb..c3ed27e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,355 @@
+2007-05-24  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (test_function): Allow up to 50 bytes
+       in the printed representation of a NaN.
+       * tests/test-vasprintf-posix.c (test_function): Likewise.
+       * tests/test-snprintf-posix.h (test_function): Likewise.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+       Reported by Eric Blake.
+
+2007-05-23  Eric Blake  <ebb9@byu.net>
+
+       Fix fseeko/ftello on cygwin 1.5.24.
+       * doc/functions/fseeko.texi (fseeko): Document the fix.
+       * doc/functions/ftello.texi (ftello): Document the fix.
+       * doc/functions/stdin.texi (stdin): Document the cygwin bug.
+       * doc/functions/stdout.text (stdout): New file.
+       * doc/functions/stderr.text (stderr): New file.
+       * doc/gnulib.texi (Function Substitutes): Use new files.
+       * tests/test-fseeko.c (main): Check for broken fseeko on cygwin
+       prior to 1.7.0.
+       * tests/test-ftello.c (main): Likewise for ftello.
+       * tests/test-fseeko.sh: New file.
+       * tests/test-ftello.sh: New file.
+       * modules/fseeko-tests (Makefile.am): Ensure test-fseeko is run
+       with seekable stdin.
+       * modules/ftello-tests (Makefile.am): Likewise for test-ftello.
+       * m4/fseeko.m4 (gl_FUNC_FSEEKO): Detect the cygwin bug.
+       (gl_REPLACE_FSEEKO): New macro.
+       * m4/ftello.m4 (gl_FUNC_FTELLO, gl_REPLACE_FTELLO): Likewise.
+       * modules/fseeko (Files): Distribute fseeko.c.
+       * modules/ftello (Files): Distribute ftello.c.
+       * lib/fseeko.c (rpl_fseeko) [__CYGWIN__]: Convert stdin to 64-bit
+       mode.
+       * lib/ftello.c (rpl_ftello): New file.
+       * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Allow replacement of
+       fseeko, ftello.
+       (gl_STDIN_LARGE_OFFSET): New macro.
+       * modules/stdio (Makefile.am): Perform the replacement.
+       * lib/stdio_.h (rpl_fseeko, rpl_ftello): Define when needed.
+
+2007-05-23  Bruno Haible  <bruno@clisp.org>
+
+       * lib/stdio_.h (fseeko, ftello): Provide a link warning only if
+       GNULIB_POSIXCHECK is defined.
+
+2007-05-21  Bruno Haible  <bruno@clisp.org>
+
+       * m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE):
+       Check also the output for NaN arguments. When cross-compiling, guess
+       no on IRIX.
+       * lib/vasnprintf.c: Update comments.
+       * tests/test-vasnprintf-posix.c (strisnan): New function.
+       (test_function): Use it.
+       * tests/test-vasprintf-posix.c (strisnan): New function.
+       (test_function): Use it.
+       * tests/test-snprintf-posix.h (strisnan): New function.
+       (test_function): Use it.
+       * tests/test-sprintf-posix.h (strisnan): New function.
+       (test_function): Use it.
+       Reported by Eric Blake.
+
+2007-05-20  Bruno Haible  <bruno@clisp.org>
+
+       * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Add test for large finite
+       numbers that fails on BeOS.
+       * doc/functions/frexpl.texi: Update.
+
+2007-05-20  Jim Meyering  <jim@meyering.net>
+
+       * NEWS: Mention the incompatible change (s/futimens/gl_futimens/)
+       forced upon us by glibc-2.6.
+
+2007-05-20  Bruno Haible  <bruno@clisp.org>
+
+       Fix *printf result for NaN, Inf on AIX, Solaris, OSF/1.
+       * m4/printf.m4 (gl_PRINTF_INFINITE): Update cross-compiling guesses.
+       (gl_PRINTF_INFINITE_LONG_DOUBLE): New macro.
+       * lib/vasnprintf.c: Use NEED_PRINTF_INFINITE_DOUBLE instead of
+       NEED_PRINTF_INFINITE.
+       (is_infinitel): New function.
+       (VASNPRINTF): Handle NEED_PRINTF_INFINITE_LONG_DOUBLE case.
+       * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE): Renamed from
+       gl_PREREQ_VASNPRINTF_INFINITE.
+       (gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE): New macro.
+       * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
+       gl_PRINTF_INFINITE_LONG_DOUBLE and test its result. Invoke
+       gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE and
+       gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE instead of
+       gl_PREREQ_VASNPRINTF_INFINITE.
+       * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
+       * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
+       * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
+       * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
+       * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
+       * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
+       * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
+       * doc/functions/fprintf.texi: Update.
+       * doc/functions/printf.texi: Update.
+       * doc/functions/snprintf.texi: Update.
+       * doc/functions/sprintf.texi: Update.
+       * doc/functions/vfprintf.texi: Update.
+       * doc/functions/vprintf.texi: Update.
+       * doc/functions/vsnprintf.texi: Update.
+       * doc/functions/vsprintf.texi: Update.
+
+2007-05-20  Bruno Haible  <bruno@clisp.org>
+
+       * m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): Set REPLACE_FREXPL if frexpl
+       was not found in libc.
+       * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
+
+2007-05-20  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (test_function): Allow NaN to be
+       printed as "-nan" instead of "nan".
+       * tests/test-vasprintf-posix.c (test_function): Likewise.
+       * tests/test-snprintf-posix.h (test_function): Likewise.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+       Needed for HP-UX 11.
+
+2007-05-20  Jim Meyering  <jim@meyering.net>
+
+       Fix buggy test for the fchownat-deref bug.
+       * m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Create the dangling
+       symlink required for the run-test.  Without it, this test would
+       always declare that fchownat doesn't work, and client code would
+       unnecessarily use the replacement function with fixed libc.
+       (gl_FUNC_FCHOWNAT): Eliminate a variable that wasn't initialized.
+       Reported by Greg Schafer.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       * m4/isnanf.m4 (gl_ISNANF_WORKS): New macro.
+       (gl_FUNC_ISNANF_NO_LIBM): Invoke it.
+       * lib/isnan.c (FUNC): Use run-time expressions for SGI compiler.
+       Needed for IRIX 6.5 and Solaris 2.5.1.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (have_minus_zero): New function.
+       (test_function): Skip tests involving -0.0 on platforms where
+       -0.0 = 0.0.
+       * tests/test-vasprintf-posix.c (have_minus_zero): New function.
+       (test_function): Skip tests involving -0.0 on platforms where
+       -0.0 = 0.0.
+       * tests/test-snprintf-posix.h (have_minus_zero): New function.
+       (test_function): Skip tests involving -0.0 on platforms where
+       -0.0 = 0.0.
+       * tests/test-sprintf-posix.h (have_minus_zero): New function.
+       (test_function): Skip tests involving -0.0 on platforms where
+       -0.0 = 0.0.
+       * tests/test-fprintf-posix.h (test_function): Remove all -0.0 related
+       tests.
+       * tests/test-printf-posix.h (test_function): Likewise.
+       * tests/test-printf-posix.output: Remove all -0.0 related results.
+       Needed for IRIX 6.5.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (test_function): Allow NaN to be
+       printed as "nan0x7fffffff" instead of "nan".
+       * tests/test-vasprintf-posix.c (test_function): Likewise.
+       * tests/test-snprintf-posix.h (test_function): Likewise.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+       * tests/test-fprintf-posix.h (NaN): Remove macro.
+       (test_function): Remove all NaN related tests.
+       * tests/test-printf-posix.h (NaN): Remove macro.
+       (test_function): Remove all NaN related tests.
+       * tests/test-printf-posix.output: Remove all NaN related results.
+       Needed for IRIX 6.5.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Fix C89 syntax error in test code.
+       * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       * lib/float_.h: New file.
+       * m4/float_h.m4: New file.
+       * modules/float: New file.
+       * modules/isnanl (Dependencies): Add float.
+       * modules/isnanl-nolibm (Dependencies): Likewise.
+       * modules/mathl (Dependencies): Likewise.
+       * modules/printf-frexpl (Dependencies): Likewise.
+       * modules/signbit (Dependencies): Likewise.
+       * modules/vasnprintf (Dependencies): Likewise.
+       * doc/headers/float.texi: Update.
+
+2007-05-19  Jim Meyering  <jim@meyering.net>
+
+       * lib/utimens.c (gl_futimens): Rename from futimens,
+       now that glibc-2.6 declares futimens.
+       * lib/utimens.h: Likewise.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       Avoid test failures on mingw.
+       * tests/test-fprintf-posix.sh: Convert CR/LF to LF in output.
+       * tests/test-printf-posix.sh: Likewise.
+       * tests/test-vfprintf-posix.sh: Likewise.
+       * tests/test-vprintf-posix.sh: Likewise.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       Fix *printf result for NaN, Inf, -0.0 on mingw.
+       * m4/printf.m4 (gl_PRINTF_INFINITE): New macro.
+       * lib/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.
+       * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE): New macro.
+       * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
+       gl_PRINTF_INFINITE and test its result. Invoke
+       gl_PREREQ_VASNPRINTF_INFINITE.
+       * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
+       * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
+       * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
+       * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
+       * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
+       * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
+       * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
+       * doc/functions/fprintf.texi: Update.
+       * doc/functions/printf.texi: Update.
+       * doc/functions/snprintf.texi: Update.
+       * doc/functions/sprintf.texi: Update.
+       * doc/functions/vfprintf.texi: Update.
+       * doc/functions/vprintf.texi: Update.
+       * doc/functions/vsnprintf.texi: Update.
+       * doc/functions/vsprintf.texi: Update.
+
+2007-05-19  Bruno Haible  <bruno@clisp.org>
+
+       * lib/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>
+
+       * lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Fix logic bug
+       introduced on 2007-05-06.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (test_function): Also test the %e and
+       %g directives.
+       * tests/test-vasprintf-posix.c (test_function): Likewise.
+       * tests/test-snprintf-posix.h (test_function): Likewise.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (SIZEOF): New macro.
+       (strmatch): New function.
+       (test_function): Test the %f directive on numbers of various exponents.
+       * tests/test-vasprintf-posix.c (SIZEOF): New macro.
+       (strmatch): New function.
+       (test_function): Test the %f directive on numbers of various exponents.
+       * tests/test-snprintf-posix.h (strmatch): New function.
+       (test_function): Test the %f directive on numbers of various exponents.
+       * tests/test-sprintf-posix.h (strmatch): New function.
+       (test_function): Test the %f directive on numbers of various exponents.
+       * tests/test-snprintf-posix.c (SIZEOF): New macro.
+       * tests/test-sprintf-posix.c (SIZEOF): New macro.
+       * tests/test-vsnprintf-posix.c (SIZEOF): New macro.
+       * tests/test-vsprintf-posix.c (SIZEOF): New macro.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       Add support for 'long double' number output.
+       * m4/printf.m4 (gl_PRINTF_LONG_DOUBLE): New macro.
+       * lib/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.
+       * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_LONG_DOUBLE): New macro.
+       * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
+       gl_PRINTF_LONG_DOUBLE and test its result. Invoke
+       gl_PREREQ_VASNPRINTF_LONG_DOUBLE.
+       * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
+       * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
+       * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
+       * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
+       * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
+       * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
+       * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
+       * modules/fprintf-posix (Depends-on): Add frexpl-nolibm.
+       * modules/snprintf-posix (Depends-on): Likewise.
+       * modules/sprintf-posix (Depends-on): Likewise.
+       * modules/vasnprintf-posix (Depends-on): Likewise.
+       * modules/vasprintf-posix (Depends-on): Likewise.
+       * modules/vfprintf-posix (Depends-on): Likewise.
+       * modules/vsnprintf-posix (Depends-on): Likewise.
+       * modules/vsprintf-posix (Depends-on): Likewise.
+       * modules/vasnprintf (Files): Add lib/float+.h.
+       * doc/functions/fprintf.texi: Update.
+       * doc/functions/printf.texi: Update.
+       * doc/functions/snprintf.texi: Update.
+       * doc/functions/sprintf.texi: Update.
+       * doc/functions/vfprintf.texi: Update.
+       * doc/functions/vprintf.texi: Update.
+       * doc/functions/vsnprintf.texi: Update.
+       * doc/functions/vsprintf.texi: Update.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       * lib/vasnprintf.c (USE_SNPRINTF): Define to 0 on BeOS.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       * lib/vasnprintf.c (VASNPRINTF) [WIN32]: Use %I64d instead of %lld
+       for printing 64-bit integers. Needed for mingw.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Invoke
+       gl_FUNC_FREXPL_WORKS.
+       * modules/printf-frexpl (Files): Add m4/frexpl.m4.
+
+2007-05-18  Bruno Haible  <bruno@clisp.org>
+
+       * modules/frexpl-nolibm-tests: New file.
+
+       * modules/frexpl-nolibm: New file.
+       * m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): New macro.
+
+2007-05-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/dirent_.h: Prefer #include_next <foo.h> to #include
+       @ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@.  This works better with
+       GCC 4.2, which otherwise issues a lot of warnings.
+       * lib/iconv_.h, lib/locale_.h, lib/netinet_in_.h, lib/sys_select_.h:
+       * lib/sys_socket_.h, lib/sys_stat_.h, lib/sysexits_.h, lib/unistd_.h:
+       Likewise.
+       * modules/fchdir (dirent.h): Substitute @HAVE_INCLUDE_NEXT@.
+       * modules/iconv_open (iconv.h): Likewise.
+       * modules/locale (locale.h): Likewise.
+       * modules/netinet_in (netinet/in.h): Likewise.
+       * modules/sys_select (sys_select.h): Likewise.
+       * modules/sys_socket (sys/socket.h): Likewise.
+       * modules/sys_stat (sys/stat.h): Likewise.
+       * modules/sysexits (sysexits.h): Likewise.
+       * modules/unistd (unistd.h): Likewise.
+
 2007-05-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * modules/closein-tests (Makefile.am): Distribute