diff --git a/source/md.c b/source/md.c index eb651f1..8dd2c76 100644 --- a/source/md.c +++ b/source/md.c @@ -597,9 +597,9 @@ MD_GetScratchDefault(MD_Arena **conflicts, MD_u64 count){ #define MD_UNTERMINATED_TOKEN_LEN_CAP 20 -#if !defined(MD_NO_STB_SPRINTF) -#define MD_STB_SPRINTF_IMPLEMENTATION -#define MD_STB_SPRINTF_DECORATE(name) md_stbsp_##name +#if MD_DEFAULT_SPRINTF +#define STB_SPRINTF_IMPLEMENTATION +#define STB_SPRINTF_DECORATE(name) md_stbsp_##name #include "md_stb_sprintf.h" #endif @@ -908,11 +908,11 @@ MD_S8FmtV(MD_Arena *arena, char *fmt, va_list args) MD_String8 result = MD_ZERO_STRUCT; va_list args2; va_copy(args2, args); - MD_u64 needed_bytes = md_stbsp_vsnprintf(0, 0, fmt, args)+1; + MD_u64 needed_bytes = MD_IMPL_Vsnprintf(0, 0, fmt, args)+1; result.str = MD_PushArray(arena, MD_u8, needed_bytes); result.size = needed_bytes - 1; result.str[needed_bytes-1] = 0; - md_stbsp_vsnprintf((char*)result.str, needed_bytes, fmt, args2); + MD_IMPL_Vsnprintf((char*)result.str, needed_bytes, fmt, args2); return result; } diff --git a/source/md.h b/source/md.h index 6fdc724..7199fb1 100644 --- a/source/md.h +++ b/source/md.h @@ -43,6 +43,9 @@ ** "scratch constants" ** OPTIONAL (required for default scratch) ** #define MD_IMPL_ScratchCount MD_u64 / default 2 ** +** "sprintf" ** OPTIONAL (default implementation available) +** #define MD_IMPL_Vsnprintf (char * buf, int count, char const * fmt, va_list va) -> int +** ** Default Implementation Controls ** These controls default to '1' i.e. 'enabled' ** #define MD_DEFAULT_MEMSET -> construct "memset" from CRT @@ -50,6 +53,7 @@ ** #define MD_DEFAULT_MEMORY -> construct "low level memory" from OS headers ** #define MD_DEFAULT_ARENA -> construct "arena" from "low level memory" ** #define MD_DEFAULT_SCRATCH -> construct "scratch" from "arena" +** #define MD_DEFAULT_SPRINTF -> construct "vsnprintf" from internal implementaion ** */ @@ -72,6 +76,9 @@ #if !defined(MD_DEFAULT_SCRATCH) # define MD_DEFAULT_SCRATCH 1 #endif +#if !defined(MD_DEFAULT_SPRINTF) +# define MD_DEFAULT_SPRINTF 1 +#endif #if !defined(MD_ENABLE_PRINT_HELPERS) # define MD_ENABLE_PRINT_HELPERS 0 @@ -384,8 +391,9 @@ #define MD_MemoryCopy(d,s,z) (MD_IMPL_Memmove(d,s,z)) //~ sprintf -#if !defined(MD_NO_STB_SPRINTF) +#if MD_DEFAULT_SPRINTF #define STB_SPRINTF_DECORATE(name) md_stbsp_##name +#define MD_IMPL_Vsnprintf md_stbsp_vsnprintf #include "md_stb_sprintf.h" #endif