diff options
author | heavydemon21 <nielsstunnebrink1@gmail.com> | 2024-10-22 12:15:49 +0200 |
---|---|---|
committer | heavydemon21 <nielsstunnebrink1@gmail.com> | 2024-10-22 12:15:49 +0200 |
commit | 6b213f304b35be5c11bbea305698d6e365a7ffca (patch) | |
tree | 4526831be8e6a09a9e1608b71294213ce57fddb1 /src/crepe/util/fmt.cpp | |
parent | 9037aca03bfa4312794a6954752628381256f777 (diff) | |
parent | 30d84ef9ad4a0010288db18294766fd4d5ed6f4a (diff) |
Merge branch 'master' into niels/rendering
Diffstat (limited to 'src/crepe/util/fmt.cpp')
-rw-r--r-- | src/crepe/util/fmt.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/crepe/util/fmt.cpp b/src/crepe/util/fmt.cpp new file mode 100644 index 0000000..8ef1164 --- /dev/null +++ b/src/crepe/util/fmt.cpp @@ -0,0 +1,33 @@ +#include <cstdarg> +#include <cstdio> +#include <string> + +#include "fmt.h" + +using namespace std; + +string crepe::util::va_stringf(va_list args, const char * fmt) { + va_list args_copy; + va_copy(args_copy, args); + + size_t sz = vsnprintf(NULL, 0, fmt, args_copy) + 1; + char * msg = (char *) malloc(sz); + va_end(args_copy); + + vsnprintf(msg, sz, fmt, args); + + string out = msg; + free(msg); + + va_end(args); + + return out; +} + +string crepe::util::stringf(const char * fmt, ...) { + va_list args; + va_start(args, fmt); + string out = va_stringf(args, fmt); + va_end(args); + return out; +} |