minetest-mapper-cpp/Minetestmapper/porting.cpp

51 lines
882 B
C++

#include "porting.h"
#include <cstdio> // fopen
#include <cstdlib> // getenv
#include <cstring>
inline void sleepMs(int time)
{
std::this_thread::sleep_for(std::chrono::milliseconds(time));
}
FILE *porting::fopen(const char *filename, const char *mode)
{
FILE *file = nullptr;
#ifdef _WIN32
fopen_s(&file, filename, mode);
#else
file = ::fopen(filename, mode);
#endif // _WIN32
return file;
}
std::string porting::getenv(const char *name)
{
char *buf = nullptr;
#ifdef _WIN32
std::size_t len;
_dupenv_s(&buf, &len, name);
#else
buf = ::getenv(name);
#endif // _WIN32
return buf == nullptr ? std::string() : std::string(buf);
}
std::string porting::strerror(int errnum)
{
#ifdef _WIN32
const std::size_t len = 100;
char errmsg[len];
strerror_s(errmsg, len, errnum);
#else
char *errmsg = std::strerror(errnum);
#endif // _WIN32
return std::string(errmsg);
}