changeset 14838:1d39813ecc60

argp: Allow coexistence with strerror_r-posix module. * lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro (either to __xpg_strerror_r by glibc's <string.h> or to rpl_strerror_r by gnulib's <string.h> replacement), assume it has the POSIX signature, not the glibc signature.
author Bruno Haible <bruno@clisp.org>
date Sun, 29 May 2011 14:57:40 +0200
parents b12506946b86
children 984611ea5a25
files ChangeLog lib/argp-help.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-05-29  Bruno Haible  <bruno@clisp.org>
+
+	argp: Allow coexistence with strerror_r-posix module.
+	* lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro
+	(either to __xpg_strerror_r by glibc's <string.h> or to rpl_strerror_r
+	by gnulib's <string.h> replacement), assume it has the POSIX signature,
+	not the glibc signature.
+
 2011-05-28  Bruno Haible  <bruno@clisp.org>
 
 	gnulib-tool: Alternative structure of testdirs, similar to --import.
--- a/lib/argp-help.c
+++ b/lib/argp-help.c
@@ -1917,7 +1917,7 @@
                   char const *s = NULL;
                   putc_unlocked (':', stream);
                   putc_unlocked (' ', stream);
-#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P)
+#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P && !defined strerror_r)
                   s = __strerror_r (errnum, buf, sizeof buf);
 #elif HAVE_DECL_STRERROR_R
                   if (__strerror_r (errnum, buf, sizeof buf) == 0)