strerror_r: Avoid clobbering the strerror buffer when possible.
[gnulib.git] / ChangeLog
index 34ccc10..4e22ecb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,214 @@
+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
+       * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Only expand once.
+       * m4/stdint.m4 (gl_STDINT_H): Likewise.
+
+2011-05-16  Sam Steingold <sds@gnu.org>
+       and Eric Blake  <eblake@redhat.com>
+
+       vc-list-files: accept multiple directory operands
+       * build-aux/vc-list-files: Iterate over all remaining operands.
+
+2011-05-16  Bruno Haible  <bruno@clisp.org>
+
+       Fix confusion regarding deprecated modules.
+       * modules/calloc (Status, Notice): Mark module as deprecated, not
+       obsolete.
+       * modules/fnmatch-posix (Status, Notice): Likewise.
+       * modules/getdate (Status, Notice): Likewise.
+       * modules/getopt (Status, Notice): Likewise.
+       * modules/malloc (Status, Notice): Likewise.
+       * modules/pipe (Status, Notice): Likewise.
+       * modules/realloc (Status, Notice): Likewise.
+       * modules/rename-dest-slash (Status, Notice): Likewise.
+       * modules/unictype/bidicategory-all (Status, Notice): Likewise.
+       * modules/unictype/bidicategory-byname (Status, Notice): Likewise.
+       * modules/unictype/bidicategory-name (Status, Notice): Likewise.
+       * modules/unictype/bidicategory-of (Status, Notice): Likewise.
+       * modules/unictype/bidicategory-test (Status, Notice): Likewise.
+
+2011-05-16  Bruno Haible  <bruno@clisp.org>
+
+       doc: List the target platforms.
+       * doc/gnulib-intro.texi (Target Platforms): New section.
+       * doc/gnulib.texi (Introduction): Update menu.
+       * README (Portability guidelines): Refer to the new section. Update
+       statement about oldest supported environment. Remove rationale why
+       <errno.h>, <string.h>, <stdlib.h> are assumed. Update example of an
+       unportable C89 function.
+       Reported by Bastien Roucariès <roucaries.bastien@gmail.com> and
+       Charles Wilson <cygwin@cwilson.fastmail.fm>. Feedback from Paul Eggert.
+
+2011-05-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better.
+
+2011-05-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       intprops-tests: new module
+       * modules/intprops-tests, tests/test-intprops.c: New files.
+
+       intprops: add safe, portable integer overflow checking
+       * lib/intprops.h (_GL_INT_CONVERT, _GL_INT_TWOS_COMPLEMENT):
+       (_GL_INT_SIGNED, _GL_INT_MINIMUM, _GL_INT_MAXIMUM):
+       (_GL_SIGNED_INT_MINIMUM, INT_ADD_RANGE_OVERFLOW):
+       (INT__SUBTRACT__RANGE_OVERFLOW, INT_NEGATE_RANGE_OVERFLOW):
+       (INT_MULTIPLY_RANGE_OVERFLOW, INT_REMAINDER_RANGE_OVERFLOW):
+       (INT_LEFT_SHIFT_RANGE_OVERFLOW, _GL_ADD_OVERFLOW):
+       (_GL__SUBTRACT__OVERFLOW, _GL_MULTIPLY_OVERFLOW, _GL_DIVIDE_OVERFLOW):
+       (_GL_REMAINDER_OVERFLOW, _GL_UNSIGNED_NEG_MULTIPLE, INT_ADD_OVERFLOW):
+       (INT__SUBTRACT__OVERFLOW, INT_NEGATE_OVERFLOW, INT_MULTIPLY_OVERFLOW):
+       (INT_DIVIDE_OVERFLOW, INT_REMAINDER_OVERFLOW):
+       (INT_LEFT_SHIFT_OVERFLOW, _GL_BINARY_OP_OVERFLOW): New macros.
+
+2011-05-12  James Youngman  <jay@gnu.org>
+
+       Add a test for glibc's Bugzilla bug #12378.
+       * m4/fnmatch.m4: Use gnulib's fnmatch if the system fnmatch
+       doesn't allow the literal matching of a lone "[" (which is
+       required by POSIX).
+       * tests/test-fnmatch.c (main): Check that "[/b" matches itself.
+
+2011-05-11  Ulrich Drepper  <drepper@gmail.com>
+
+       Sync glibc change fixing Bugzilla bug #12378.
+       * lib/fnmatch_loop.c (FCT): When matching '[' keep track of
+       beginning and fall back to matching as normal character if the
+       string ends before the matching ']' is found.  This is what POSIX
+       requires.
+
+2011-05-13  Eric Blake  <eblake@redhat.com>
+
+       getcwd-lgpl: relax test for FreeBSD
+       * doc/posix-functions/getcwd.texi (getcwd): Document portability
+       issue.
+       * tests/test-getcwd-lgpl.c (main): Relax test.
+       Reported by Matthias Bolte.
+
 2011-05-11  Eric Blake  <eblake@redhat.com>
 
        test-fflush: silence compiler warning