From eb3dc6fabd575ba101be3bb45d2e026842cca19d Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Nov 2009 01:56:50 -0500 Subject: [PATCH] (lib/roken) Use strerror_s() to emulate strerror_r() on Windows --- lib/roken/strerror_r.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/roken/strerror_r.c b/lib/roken/strerror_r.c index 60bf108d0..d3ef7d6be 100644 --- a/lib/roken/strerror_r.c +++ b/lib/roken/strerror_r.c @@ -37,6 +37,22 @@ #include #include +#ifdef _MSC_VER + +char * ROKEN_LIB_FUNCTION +strerror_r(int eno, char * strerrbuf, size_t buflen) +{ + errno_t err; + + err = strerror_s(strerrbuf, buflen, eno); + if (err != 0) + sprintf_s(strerrbuf, buflen, "Error % occurred.", eno); + + return strerrbuf; +} + +#else + extern int sys_nerr; extern char *sys_errlist[]; @@ -53,3 +69,5 @@ strerror_r(int eno, char *strerrbuf, size_t buflen) return ERANGE; return 0; } + +#endif