Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gabime/spdlog.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamesReynolds <JamesReynolds>2018-06-01 14:14:17 +0300
committerJamesReynolds <JamesReynolds>2018-06-01 14:24:06 +0300
commitaa9012fa07a732711097f32e4ea56ca5dedba264 (patch)
treeac52b6fcf4c36639fdb0c48ecea132017ac2de7a
parent3fbac8e2b7867611a2136d127fb83da768c731bc (diff)
Fixes #717
This fix uses the fmt::safe_strerror instead of the underlying strerror_r functionality. I think this is better - but I'm not sure if there is a reason for avoiding the use of this function.
-rw-r--r--include/spdlog/details/os.h49
1 files changed, 4 insertions, 45 deletions
diff --git a/include/spdlog/details/os.h b/include/spdlog/details/os.h
index 08adca5d..04e0d712 100644
--- a/include/spdlog/details/os.h
+++ b/include/spdlog/details/os.h
@@ -383,57 +383,16 @@ inline std::string filename_to_str(const filename_t &filename)
}
#endif
-inline std::string errno_to_string(char[256], char *res)
-{
- return std::string(res);
-}
-
-inline std::string errno_to_string(char buf[256], int res)
-{
- if (res == 0)
- {
- return std::string(buf);
- }
- return "Unknown error";
-}
-
-inline std::string errno_to_string(char buf[256], const fmt::internal::Null<> &/*tag*/)
-{
- return errno_to_string(buf, -1);
-}
-
// Return errno string (thread safe)
inline std::string errno_str(int err_num)
{
- char buf[256];
+ char buf[256], *buf_ptr = buf;
SPDLOG_CONSTEXPR auto buf_size = sizeof(buf);
-
-#ifdef _WIN32
- if (strerror_s(buf, buf_size, err_num) == 0)
+ if (fmt::safe_strerror(err_num, buf_ptr, buf_size) == 0)
{
- return std::string(buf);
+ return std::string(buf_ptr);
}
- else
- {
- return "Unknown error";
- }
-
-#elif defined(__FreeBSD__) || defined(__APPLE__) || defined(ANDROID) || defined(__SUNPRO_CC) || \
- ((_POSIX_C_SOURCE >= 200112L) && !defined(_GNU_SOURCE)) // posix version
-
- if (strerror_r(err_num, buf, buf_size) == 0)
- {
- return std::string(buf);
- }
- else
- {
- return "Unknown error";
- }
-
-#else // gnu version (might not use the given buf, so its retval pointer must be used)
- auto err = strerror_r(err_num, buf, buf_size); // let compiler choose type
- return errno_to_string(buf, err); // use overloading to select correct stringify function
-#endif
+ return "Unknown error";
}
inline int pid()