From b815b84a5942f591e8a79c731100712558fa41c6 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Sun, 7 Jul 2002 20:13:41 +0000 Subject: Attempt to clean up the strerror_r situation. --- include/string.h | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'include/string.h') diff --git a/include/string.h b/include/string.h index d7501eb83..edcdf19fe 100644 --- a/include/string.h +++ b/include/string.h @@ -232,10 +232,29 @@ extern size_t strnlen (__const char *__string, size_t __maxlen) /* Return a string describing the meaning of the `errno' code in ERRNUM. */ extern char *strerror (int __errnum) __THROW; -#ifdef __USE_MISC -/* Reentrant version of `strerror'. If a temporary buffer is required, at - most BUFLEN bytes of BUF will be used. */ -extern int strerror_r (int __errnum, char *__buf, size_t buflen) __THROW; + +/* Reentrant versions of `strerror'. If a temporary buffer is required, + at most BUFLEN bytes of BUF will be used. These symbols are _NOT_ intended + to be applications, and can change at any time. */ +extern char *_glibc_strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW; +extern int _susv3_strerror_r (int __errnum, char *__buf, size_t buflen) __THROW; + +#if defined(__USE_XOPEN2K) && !defined(__USE_GNU) +# ifdef __REDIRECT +extern int __REDIRECT (strerror_r, + (int __errnum, char *__buf, size_t buflen) __THROW, + _susv3_strerror_r); +# else +# define strerror_r _susv3_strerror_r +# endif +#elif defined(__USE_MISC) +# ifdef __REDIRECT +extern char *__REDIRECT (strerror_r, + (int __errnum, char *__buf, size_t buflen) __THROW, + _glibc_strerror_r); +# else +# define strerror_r _glibc_strerror_r +# endif #endif /* We define this function always since `bzero' is sometimes needed when -- cgit v1.2.3