openwrt-packages/utils/sumo/patches/020-strerror.patch

27 lines
816 B
Diff

--- a/src/foreign/zstr/strict_fstream.hpp
+++ b/src/foreign/zstr/strict_fstream.hpp
@@ -33,17 +33,17 @@ static std::string strerror()
{
buff = "Unknown error";
}
-#elif __APPLE__ || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
+#elif defined(__GLIBC__)
+// GNU-specific strerror_r()
+ auto p = strerror_r(errno, &buff[0], buff.size());
+ std::string tmp(p, std::strlen(p));
+ std::swap(buff, tmp);
+#else
// XSI-compliant strerror_r()
if (strerror_r(errno, &buff[0], buff.size()) != 0)
{
buff = "Unknown error";
}
-#else
-// GNU-specific strerror_r()
- auto p = strerror_r(errno, &buff[0], buff.size());
- std::string tmp(p, std::strlen(p));
- std::swap(buff, tmp);
#endif
buff.resize(buff.find('\0'));
return buff;