|
|
@ -7,7 +7,7 @@ |
|
|
|
* |
|
|
|
* |
|
|
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group |
|
|
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group |
|
|
|
* |
|
|
|
* |
|
|
|
* $PostgreSQL: pgsql/src/port/thread.c,v 1.20 2004/04/23 18:15:55 momjian Exp $ |
|
|
|
* $PostgreSQL: pgsql/src/port/thread.c,v 1.21 2004/06/07 22:39:45 momjian Exp $ |
|
|
|
* |
|
|
|
* |
|
|
|
*------------------------------------------------------------------------- |
|
|
|
*------------------------------------------------------------------------- |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -70,12 +70,17 @@ pqStrerror(int errnum, char *strerrbuf, size_t buflen) |
|
|
|
{ |
|
|
|
{ |
|
|
|
#if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(HAVE_STRERROR_R) |
|
|
|
#if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(HAVE_STRERROR_R) |
|
|
|
/* reentrant strerror_r is available */ |
|
|
|
/* reentrant strerror_r is available */ |
|
|
|
/* some early standards had strerror_r returning char * */ |
|
|
|
#ifdef STRERROR_R_INT |
|
|
|
strerror_r(errnum, strerrbuf, buflen); |
|
|
|
/* SUSv3 version */ |
|
|
|
return strerrbuf; |
|
|
|
if (strerror_r(errnum, strerrbuf, buflen) == 0) |
|
|
|
|
|
|
|
return strerrbuf; |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
return NULL; |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
/* GNU libc */ |
|
|
|
|
|
|
|
return strerror_r(errnum, strerrbuf, buflen); |
|
|
|
|
|
|
|
#endif |
|
|
|
#else |
|
|
|
#else |
|
|
|
|
|
|
|
|
|
|
|
/* no strerror_r() available, just use strerror */ |
|
|
|
/* no strerror_r() available, just use strerror */ |
|
|
|
StrNCpy(strerrbuf, strerror(errnum), buflen); |
|
|
|
StrNCpy(strerrbuf, strerror(errnum), buflen); |
|
|
|
|
|
|
|
|
|
|
|