mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Added BX_CRT_NONE define.
This commit is contained in:
@@ -232,20 +232,28 @@
|
||||
# define BX_PLATFORM_HURD 1
|
||||
#endif //
|
||||
|
||||
#define BX_PLATFORM_POSIX (0 \
|
||||
|| BX_PLATFORM_ANDROID \
|
||||
|| BX_PLATFORM_EMSCRIPTEN \
|
||||
|| BX_PLATFORM_BSD \
|
||||
|| BX_PLATFORM_HURD \
|
||||
|| BX_PLATFORM_IOS \
|
||||
|| BX_PLATFORM_LINUX \
|
||||
|| BX_PLATFORM_NACL \
|
||||
|| BX_PLATFORM_OSX \
|
||||
|| BX_PLATFORM_QNX \
|
||||
|| BX_PLATFORM_STEAMLINK \
|
||||
|| BX_PLATFORM_PS4 \
|
||||
|| BX_PLATFORM_RPI \
|
||||
)
|
||||
#define BX_PLATFORM_POSIX (0 \
|
||||
|| BX_PLATFORM_ANDROID \
|
||||
|| BX_PLATFORM_EMSCRIPTEN \
|
||||
|| BX_PLATFORM_BSD \
|
||||
|| BX_PLATFORM_HURD \
|
||||
|| BX_PLATFORM_IOS \
|
||||
|| BX_PLATFORM_LINUX \
|
||||
|| BX_PLATFORM_NACL \
|
||||
|| BX_PLATFORM_OSX \
|
||||
|| BX_PLATFORM_QNX \
|
||||
|| BX_PLATFORM_STEAMLINK \
|
||||
|| BX_PLATFORM_PS4 \
|
||||
|| BX_PLATFORM_RPI \
|
||||
)
|
||||
|
||||
#define BX_CRT_NONE !(0 \
|
||||
|| BX_CRT_MSVC \
|
||||
|| BX_CRT_GLIBC \
|
||||
|| BX_CRT_NEWLIB \
|
||||
|| BX_CRT_MINGW \
|
||||
|| BX_CRT_MUSL \
|
||||
)
|
||||
|
||||
#ifndef BX_CONFIG_ENABLE_MSVC_LEVEL4_WARNINGS
|
||||
# define BX_CONFIG_ENABLE_MSVC_LEVEL4_WARNINGS 0
|
||||
@@ -334,6 +342,20 @@
|
||||
# define BX_CPU_NAME "x86"
|
||||
#endif // BX_CPU_
|
||||
|
||||
#if BX_CRT_MSVC
|
||||
# define BX_CRT_NAME "MSVC C Runtime"
|
||||
#elif BX_CRT_GLIBC
|
||||
# define BX_CRT_NAME "GNU C Library"
|
||||
#elif BX_CRT_NEWLIB
|
||||
# define BX_CRT_NAME "Newlib"
|
||||
#elif BX_CRT_MINGW
|
||||
# define BX_CRT_NAME "MinGW C Runtime"
|
||||
#elif BX_CRT_MUSL
|
||||
# define BX_CRT_NAME "musl libc"
|
||||
#else
|
||||
# define BX_CRT_NAME "None"
|
||||
#endif // BX_CRT_
|
||||
|
||||
#if BX_ARCH_32BIT
|
||||
# define BX_ARCH_NAME "32-bit"
|
||||
#elif BX_ARCH_64BIT
|
||||
|
||||
@@ -176,18 +176,18 @@ namespace bx
|
||||
/// Cross platform implementation of vsnprintf that returns number of
|
||||
/// characters which would have been written to the final string if
|
||||
/// enough space had been available.
|
||||
int32_t vsnprintf(char* _str, size_t _count, const char* _format, va_list _argList);
|
||||
int32_t vsnprintf(char* _out, size_t _max, const char* _format, va_list _argList);
|
||||
|
||||
/// Cross platform implementation of vsnwprintf that returns number of
|
||||
/// characters which would have been written to the final string if
|
||||
/// enough space had been available.
|
||||
int32_t vsnwprintf(wchar_t* _str, size_t _count, const wchar_t* _format, va_list _argList);
|
||||
int32_t vsnwprintf(wchar_t* _out, size_t _max, const wchar_t* _format, va_list _argList);
|
||||
|
||||
///
|
||||
int32_t snprintf(char* _str, size_t _count, const char* _format, ...);
|
||||
int32_t snprintf(char* _out, size_t _max, const char* _format, ...);
|
||||
|
||||
///
|
||||
int32_t swnprintf(wchar_t* _out, size_t _count, const wchar_t* _format, ...);
|
||||
int32_t swnprintf(wchar_t* _out, size_t _max, const wchar_t* _format, ...);
|
||||
|
||||
///
|
||||
template <typename Ty>
|
||||
@@ -220,13 +220,13 @@ namespace bx
|
||||
size_t strlcat(char* _dst, const char* _src, size_t _max);
|
||||
|
||||
///
|
||||
int32_t toString(char* _dst, size_t _max, double _value);
|
||||
int32_t toString(char* _out, size_t _max, double _value);
|
||||
|
||||
///
|
||||
int32_t toString(char* _dst, size_t _max, int32_t _value, uint32_t _base = 10);
|
||||
int32_t toString(char* _out, size_t _max, int32_t _value, uint32_t _base = 10);
|
||||
|
||||
///
|
||||
int32_t toString(char* _dst, size_t _max, uint32_t _value, uint32_t _base = 10);
|
||||
int32_t toString(char* _out, size_t _max, uint32_t _value, uint32_t _base = 10);
|
||||
|
||||
///
|
||||
uint32_t hashMurmur2A(const StringView& _data);
|
||||
|
||||
@@ -3,15 +3,14 @@
|
||||
* License: https://github.com/bkaradzic/bx#license-bsd-2-clause
|
||||
*/
|
||||
|
||||
#include <alloca.h>
|
||||
#include <stdarg.h> // va_list
|
||||
#include <stdio.h> // vsnprintf, vsnwprintf
|
||||
|
||||
#include <bx/string.h>
|
||||
|
||||
#include <bx/allocator.h>
|
||||
#include <bx/hash.h>
|
||||
|
||||
#if !BX_CRT_NONE
|
||||
# include <stdio.h> // vsnprintf, vsnwprintf
|
||||
#endif // !BX_CRT_NONE
|
||||
|
||||
namespace bx
|
||||
{
|
||||
bool isSpace(char _ch)
|
||||
@@ -382,59 +381,63 @@ namespace bx
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int32_t vsnprintf(char* _str, size_t _count, const char* _format, va_list _argList)
|
||||
#if !BX_CRT_NONE
|
||||
int32_t vsnprintf(char* _out, size_t _max, const char* _format, va_list _argList)
|
||||
{
|
||||
#if BX_COMPILER_MSVC
|
||||
#if BX_CRT_MSVC
|
||||
int32_t len = -1;
|
||||
if (NULL != _str)
|
||||
if (NULL != _out)
|
||||
{
|
||||
va_list argListCopy;
|
||||
va_copy(argListCopy, _argList);
|
||||
len = ::vsnprintf_s(_str, _count, size_t(-1), _format, argListCopy);
|
||||
len = ::vsnprintf_s(_out, _max, size_t(-1), _format, argListCopy);
|
||||
va_end(argListCopy);
|
||||
}
|
||||
return -1 == len ? ::_vscprintf(_format, _argList) : len;
|
||||
#else
|
||||
return ::vsnprintf(_str, _count, _format, _argList);
|
||||
return ::vsnprintf(_out, _max, _format, _argList);
|
||||
#endif // BX_COMPILER_MSVC
|
||||
}
|
||||
#endif // !BX_CRT_NONE
|
||||
|
||||
int32_t snprintf(char* _str, size_t _count, const char* _format, ...)
|
||||
int32_t snprintf(char* _out, size_t _max, const char* _format, ...)
|
||||
{
|
||||
va_list argList;
|
||||
va_start(argList, _format);
|
||||
int32_t len = vsnprintf(_str, _count, _format, argList);
|
||||
int32_t len = vsnprintf(_out, _max, _format, argList);
|
||||
va_end(argList);
|
||||
return len;
|
||||
}
|
||||
|
||||
int32_t vsnwprintf(wchar_t* _str, size_t _count, const wchar_t* _format, va_list _argList)
|
||||
#if !BX_CRT_NONE
|
||||
int32_t vsnwprintf(wchar_t* _out, size_t _max, const wchar_t* _format, va_list _argList)
|
||||
{
|
||||
#if BX_COMPILER_MSVC
|
||||
#if BX_CRT_MSVC
|
||||
int32_t len = -1;
|
||||
if (NULL != _str)
|
||||
if (NULL != _out)
|
||||
{
|
||||
va_list argListCopy;
|
||||
va_copy(argListCopy, _argList);
|
||||
len = ::_vsnwprintf_s(_str, _count, size_t(-1), _format, argListCopy);
|
||||
len = ::_vsnwprintf_s(_out, _max, size_t(-1), _format, argListCopy);
|
||||
va_end(argListCopy);
|
||||
}
|
||||
return -1 == len ? ::_vscwprintf(_format, _argList) : len;
|
||||
#elif defined(__MINGW32__)
|
||||
return ::vsnwprintf(_str, _count, _format, _argList);
|
||||
#elif BX_CRT_MINGW
|
||||
return ::vsnwprintf(_out, _max, _format, _argList);
|
||||
#else
|
||||
return ::vswprintf(_str, _count, _format, _argList);
|
||||
return ::vswprintf(_out, _max, _format, _argList);
|
||||
#endif // BX_COMPILER_MSVC
|
||||
}
|
||||
|
||||
int32_t swnprintf(wchar_t* _out, size_t _count, const wchar_t* _format, ...)
|
||||
int32_t swnprintf(wchar_t* _out, size_t _max, const wchar_t* _format, ...)
|
||||
{
|
||||
va_list argList;
|
||||
va_start(argList, _format);
|
||||
int32_t len = vsnwprintf(_out, _count, _format, argList);
|
||||
int32_t len = vsnwprintf(_out, _max, _format, argList);
|
||||
va_end(argList);
|
||||
return len;
|
||||
}
|
||||
#endif // !BX_CRT_NONE
|
||||
|
||||
const char* baseName(const char* _filePath)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user