summaryrefslogtreecommitdiffhomepage
path: root/compat/strerror.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-11-22 15:50:41 +0100
committerStanislaw Halik <sthalik@misaki.pl>2023-11-22 15:50:41 +0100
commit4a909db930983bc79541db10637c38847807ba31 (patch)
tree6c2f6778aadaa70294fd12b498f79a5c00a1cec3 /compat/strerror.cpp
parent7790e4ec8cf62184fa7ee48fbe83a0347a3e7300 (diff)
b
Diffstat (limited to 'compat/strerror.cpp')
-rw-r--r--compat/strerror.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/compat/strerror.cpp b/compat/strerror.cpp
index 0afb5f7d..303c78be 100644
--- a/compat/strerror.cpp
+++ b/compat/strerror.cpp
@@ -6,9 +6,12 @@ namespace floormat {
StringView get_error_string(ArrayView<char> buf)
{
-#ifndef _WIN32
-#if defined __GLIBC__ && !((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
- char* str = ::strerror_r(errno, buf.data(), buf.size());
+#ifdef _WIN32
+ ::strerror_s(buf.data(), buf.size(), errno);
+ if (buf[0])
+ return buf;
+#elif defined __GLIBC__ && !((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
+ char* str { ::strerror_r(errno, buf.data(), buf.size()) };
if (str)
return str;
#else
@@ -17,12 +20,6 @@ StringView get_error_string(ArrayView<char> buf)
return buf;
#endif
-#else
- ::strerror_s(buf.data(), buf.size(), errno);
- if (buf[0])
- return buf;
-#endif
-
return "Unknown error"_s;
};