strerror_r: Avoid clobbering the strerror buffer when possible.
[gnulib.git] / ChangeLog
index a418adf..4e22ecb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,126 @@
+2011-05-19  Bruno Haible  <bruno@clisp.org>
+
+       strerror_r: Avoid clobbering the strerror buffer when possible.
+       * lib/strerror.c: Define _NETBSD_SOURCE. Include <nl_types.h>.
+       (sys_nerr, sys_errlist): New declarations.
+       (strerror_r): Be careful not to clobber the strerror buffer on NetBSD,
+       HP-UX, native Win32, IRIX, and 32-bit Solaris.
+       * m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test whether catgets exists.
+
+2011-05-19  Bruno Haible  <bruno@clisp.org>
+
+       strerror_r: Fix test failure on mingw.
+       * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define
+       EXTEND_STRERROR_R.
+       * lib/strerror_r.c (strerror_r): Test the various GNULIB_defined_*
+       macros from errno.in.h instead.
+
+2011-05-19  Eric Blake  <eblake@redhat.com>
+
+       strerror: relax test for Solaris
+       * tests/test-strerror.c (main): Permit Solaris behavior.
+       * tests/test-strerror_r.c (main): Likewise.
+
+       strerror: enforce POSIX ruling on strerror(0)
+       * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug.
+       * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
+       * lib/strerror_r.c (rpl_strerror_r): Work around it.
+       * doc/posix-functions/strerror.texi (strerror): Document it.
+       * doc/posix-functions/strerror_r.texi (strerror_r): Likewise.
+       * tests/test-strerror.c (main): Strengthen test.
+       * tests/test-strerror_r.c (main): Likewise.
+
+2011-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       intprop-tests: port to older and more-pedantic compilers
+       * modules/intprops-tests (Files): Add tests/macros.h.
+       * tests/test-intprops.c: Include macros.h.
+       (TYPE_IS_INTEGER): Use ASSERT, not verify, to test this macro, as
+       it's no longer documented to expand to an integer constant expression.
+       (TYPE_SIGNED): Use ASSERT, not verify, to test this macro when the
+       argument is floating point, as it's no longer documented to expand
+       to an integer constant expression in that case.
+       (UINT_MAX, ULONG_MAX, UINTMAX_MAX): Redefine to work around
+       compiler bugs reported by Bruno Haible.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
+       (U0, U1): New constants, to work around the same bugs.  Also,
+       in tests, use e.g., "(unsigned int) 39" rather than "39u".
+
+       intprops: work around C compiler bugs
+       * lib/intprops.h (INT_MULTIPLY_RANGE_OVERFLOW): Work around compiler
+       bug in Sun C 5.11 2010/08/13 and other compilers; see
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.
+
+       intprops: TYPE_IS_INTEGER, TYPE_SIGNED not integer constant exprs
+       * doc/intprops.texi (Integer Type Determination): Fix
+       documentation for TYPE_IS_INTEGER: it returns an constant
+       expression, not an integer constant expression.  Fix doc for
+       TYPE_SIGNED: it returns an integer constant expression only if its
+       argument is an integer type.  (TYPE_IS_INTEGER is the same, but is
+       hardly worth documented that way....)
+
+2011-05-18  Bruno Haible  <bruno@clisp.org>
+
+       strerror_r: Avoid clobbering the strerror buffer when possible.
+       * lib/strerror_r.c (strerror_r): Merge the three implementations.
+       Handle gnulib defined errno values here. When strerror() returns NULL
+       or an empty string, return EINVAL.
+       * lib/strerror.c (strerror): Always call strerror_r. Don't handle
+       gnulib defined errno values here.
+       * modules/strerror (Depends-on): Add verify, strerror_r-posix.
+
+2011-05-18  Eric Blake  <eblake@redhat.com>
+
+       fnmatch: avoid compiler warning
+       * lib/fnmatch_loop.c (FCT): Use correct type.
+       Reported by Matthias Bolte.
+
+2011-05-13  Jim Meyering  <meyering@redhat.com>
+
+       maint.mk: three new prohibit_<HDR>_without_use rules
+       * top/maint.mk (sc_prohibit_stdio--_without_use): New rule.
+       (sc_prohibit_stdio-safer_without_use): Likewise.
+       (sc_prohibit_xfreopen_without_use): Likewise.
+
+2011-05-17  Jim Meyering  <meyering@redhat.com>
+
+       announce-gen: fail if the NEWS delta is empty
+       If there's nothing noteworthy in NEWS, then either you forgot
+       or you shouldn't be releasing.
+       * build-aux/announce-gen: Die if the NEWS delta is effectively empty.
+
+2011-05-17  Pádraig Brady <P@draigBrady.com>
+
+       * top/maint.mk (_gl_tight_scope:): Automatically exclude compiler
+       reserved symbols starting with double underscore from the check.
+
+2011-05-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       intprops: add doc
+       * doc/intprops.texi: New file, documenting intprops.
+       * doc/gnulib.texi (Particular Modules): Include it.
+
+       verify: add doc to gnulib manual and fix example
+       * doc/gnulib.texi (Compile-time Assertions): New node, for 'verify'.
+       * doc/verify.texi (Compile-time Assertions): Update 'assert' doc.
+       (Compile-time Assertions): Fix example so it can't overflow.
+
+2011-05-17  Jim Meyering  <meyering@redhat.com>
+
+       warnings.m4: don't usurp save_CPPFLAGS variable name
+       * m4/warnings.m4: Prefix local temporary variable name with gl_.
+
+       doc: fix typo
+       * doc/gnulib-intro.texi (Target Platforms): s/is/are/
+
+2011-05-16  Paul Eggert  <eggert@cs.ucla.edu>
+           Bruno Haible  <bruno@clisp.org>
+
+       doc: Tweak recent change.
+       * README (Portability guidelines): Tweak new text.
+       * doc/gnulib-intro.texi (Target Platforms): Likewise. Mention
+       Interix 6.1.
+
 2011-05-16  Eric Blake  <eblake@redhat.com>
 
        inttypes: avoid autoconf warning