X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fnmem.c;fp=util%2Fnmem.c;h=f91ecc15bb6800d5764904f86882df0d04a31744;hp=75cbd20496d013301a211030acdeb175f961e4b8;hb=79b486cea07c6352407a289d3b4b9a8545b470e6;hpb=aff0149238f8b1d7eefc820d9c3dd1733e959361 diff --git a/util/nmem.c b/util/nmem.c index 75cbd20..f91ecc1 100644 --- a/util/nmem.c +++ b/util/nmem.c @@ -3,7 +3,7 @@ * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * - * $Id: nmem.c,v 1.37 2002-09-25 12:37:07 adam Exp $ + * $Id: nmem.c,v 1.38 2002-12-05 12:19:24 adam Exp $ */ /* @@ -440,3 +440,34 @@ void yaz_set_errno(int v) { errno = v; } + +void yaz_strerror(char *buf, int max) +{ + char *cp; +#ifdef WIN32 + DWORD err = GetLastError(); + if (err) + { + FormatMessage( + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + err, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) buf, + max-1, + NULL); + } + else + *buf = '\0'; +#else +#if YAZ_POSIX_THREADS + strerror_r(errno, buf, max); +#else + strcpy(buf, strerror(yaz_errno())); +#endif +#endif + if ((cp=strrchr(buf, '\n'))) + *cp = '\0'; + if ((cp=strrchr(buf, '\r'))) + *cp = '\0'; +}