uox3/source/osunique.cpp

95 lines
2.3 KiB
C++
Raw Permalink Normal View History

2022-03-05 09:12:21 -05:00
#include "osunique.hpp"
#ifdef _WIN32
auto asciitime( char* buffer, size_t count, const struct tm& tmsource ) -> char*
{
asctime_s( buffer, count, &tmsource );
2022-03-05 09:12:21 -05:00
return buffer;
}
// Beware, MSVC localtime_s is not the same as the standard localtime_s
auto lcltime( const time_t& source, struct tm& dest ) -> struct tm*
{
localtime_s( &dest, &source );
2022-03-05 09:12:21 -05:00
return &dest;
}
auto strcopy( char* dest, rsize_t size, const char* src ) -> void
{
strcpy_s( dest, size, src );
2022-03-05 09:12:21 -05:00
}
auto strncopy( char* dest, size_t size, const char* src, size_t count ) -> void
{
strncpy( dest, src, count );
2022-03-05 09:12:21 -05:00
}
auto mstrcat( char* dest, size_t size, const char* src ) -> char*
{
strcat_s( dest, size, src );
2022-03-05 09:12:21 -05:00
return dest;
}
auto mgmtime( struct tm* dest, const time_t* timer ) -> struct tm*
{
gmtime_s( dest, timer );
2022-03-05 09:12:21 -05:00
return dest;
}
auto mctime( char* buffer, size_t size, const time_t* timer ) -> char*
{
ctime_s( buffer, size, timer );
2022-03-05 09:12:21 -05:00
return buffer;
}
auto mstrerror( char* buffer, size_t size, int errornum ) -> char*
{
strerror_s( buffer, size, errornum );
2022-03-05 09:12:21 -05:00
return buffer;
}
auto mfopen( FILE** stream, const char* filename, const char* mode ) -> FILE*
{
fopen_s( stream, filename, mode );
2022-03-05 09:12:21 -05:00
return *stream;
}
2022-11-04 17:12:13 -04:00
#else
auto asciitime( char* buffer, [[maybe_unused]] size_t count, const struct tm& tmsource ) -> char*
{
return asctime_r( &tmsource, buffer );
2022-03-05 09:12:21 -05:00
}
auto lcltime( const time_t& source, struct tm& dest ) -> struct tm*
{
localtime_r( &source, &dest );
2022-03-05 09:12:21 -05:00
return &dest;
}
auto strcopy( char* dest, [[maybe_unused]] size_t size, const char* src ) -> void
{
strcpy( dest, src );
2022-03-05 09:12:21 -05:00
}
auto strncopy( char* dest, [[maybe_unused]] size_t size, const char* src, size_t count ) -> void
{
strncpy( dest, src, count );
2022-03-05 09:12:21 -05:00
}
auto mstrcat( char* dest, [[maybe_unused]] size_t size, const char* src ) -> char*
{
return strcat( dest, src );
2022-03-05 09:12:21 -05:00
}
auto mgmtime( struct tm* dest, const time_t* timer ) -> struct tm*
{
return gmtime_r( timer, dest );
2022-03-05 09:12:21 -05:00
}
auto mctime( char* buffer, [[maybe_unused]] size_t size, const time_t* timer ) -> char*
{
return ctime_r( timer, buffer );
2022-03-05 09:12:21 -05:00
}
auto mstrerror( [[maybe_unused]] char *buffer, [[maybe_unused]] size_t size, int errornum ) -> char*
{
return strerror( errornum );
2022-03-05 09:12:21 -05:00
}
auto mfopen( FILE** stream, const char* filename, const char* mode ) -> FILE*
{
*stream = fopen( filename, mode );
2022-03-05 09:12:21 -05:00
return *stream;
}
2022-03-05 09:16:51 -05:00
#endif