diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-11-22 15:50:41 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-11-22 15:50:41 +0100 |
commit | 4a909db930983bc79541db10637c38847807ba31 (patch) | |
tree | 6c2f6778aadaa70294fd12b498f79a5c00a1cec3 /compat | |
parent | 7790e4ec8cf62184fa7ee48fbe83a0347a3e7300 (diff) |
b
Diffstat (limited to 'compat')
-rw-r--r-- | compat/strerror.cpp | 15 |
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; }; |