From: Bruno Haible <bruno@clisp.org>
Date: Sun, 29 May 2011 12:57:40 +0000 (+0200)
Subject: argp: Allow coexistence with strerror_r-posix module.
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f15062a8afd23e32adebb54ebc92fee05011645;p=pspp

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.
---

diff --git a/ChangeLog b/ChangeLog
index eb0f674d68..77274bb51c 100644
--- 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.
diff --git a/lib/argp-help.c b/lib/argp-help.c
index 7993794718..0cc5838583 100644
--- a/lib/argp-help.c
+++ b/lib/argp-help.c
@@ -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)