diff options
author | jaroWMR <jarorutjes07@gmail.com> | 2024-10-23 12:32:06 +0200 |
---|---|---|
committer | jaroWMR <jarorutjes07@gmail.com> | 2024-10-23 12:32:06 +0200 |
commit | 96da34c1f973525ee57b71ea031d11a966903150 (patch) | |
tree | f02d9e743ae852715397bd406b54f5de5fa5d29f /src/crepe/util/fmt.cpp | |
parent | cead795b7ff7135e13caf9ad3b76628070391458 (diff) | |
parent | 30d84ef9ad4a0010288db18294766fd4d5ed6f4a (diff) |
merged with master
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; +} |