package An official xmake package repository
https://xrepo.xmake.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.9 KiB
53 lines
1.9 KiB
diff --git a/src/exception.cpp b/src/exception.cpp |
|
index 7cb010d..e9f1da1 100644 |
|
--- a/src/exception.cpp |
|
+++ b/src/exception.cpp |
|
@@ -57,30 +57,30 @@ sys_error::sys_error(int err) : runtime_error(error_str(err)), errno_(err) |
|
|
|
std::string sys_error::error_str(int err) |
|
{ |
|
- char buf[1024]; |
|
- buf[0] = '\x0'; |
|
+ char buf[1024]; |
|
+ buf[0] = '\x0'; |
|
|
|
- #if defined(_WIN32) |
|
- FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, |
|
- NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), |
|
- buf, sizeof(buf), NULL); |
|
+ #if defined(_WIN32) |
|
+ FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, |
|
+ NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), |
|
+ buf, sizeof(buf), NULL); |
|
#else |
|
- #ifdef _GNU_SOURCE |
|
- #if !defined(__GLIBC__) |
|
- // use the XSI standard behavior. |
|
- int e = strerror_r(err, buf, sizeof(buf)); |
|
- auto s = strerror(e); |
|
- return s ? std::string(s) : std::string(); |
|
- #else |
|
- // assume GNU exception |
|
- auto s = strerror_r(err, buf, sizeof(buf)); |
|
- return s ? std::string(s) : std::string(); |
|
- #endif |
|
+ #ifdef _GNU_SOURCE |
|
+ #if defined(__GLIBC__) || (defined(__ANDROID_API__) && __ANDROID_API__ >= 23) |
|
+ // assume GNU exception |
|
+ auto s = strerror_r(err, buf, sizeof(buf)); |
|
+ return s ? std::string(s) : std::string(); |
|
+ #else |
|
+ // use the XSI standard behavior. |
|
+ int e = strerror_r(err, buf, sizeof(buf)); |
|
+ auto s = strerror(e); |
|
+ return s ? std::string(s) : std::string(); |
|
+ #endif |
|
#else |
|
ignore_result(strerror_r(err, buf, sizeof(buf))); |
|
#endif |
|
#endif |
|
- return std::string(buf); |
|
+ return std::string(buf); |
|
} |
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|