argp: Allow coexistence with strerror_r-posix module.
authorBruno Haible <bruno@clisp.org>
Sun, 29 May 2011 12:57:40 +0000 (14:57 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 29 May 2011 12:57:40 +0000 (14:57 +0200)
* 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.

ChangeLog
lib/argp-help.c

index eb0f674d6861ea9f5b1dc81a8de4ba9a008540f1..77274bb51c18c0147872934d423e563f91189d37 100644 (file)
--- 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.
index 7993794718714164672d97de3c631908c27ed764..0cc5838583f56fda8a6f76a3d518491e2505f55a 100644 (file)
@@ -1917,7 +1917,7 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
                   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)