diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-13 20:52:08 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-13 20:52:08 +0200 |
commit | f9aa198eef7b85eeba3bac4c4fe2d4578b836bbf (patch) | |
tree | 3d374caa0510aa6389bd5901b83fe5b5b81d6dc1 /src/crepe/util/fmt.cpp | |
parent | 5d041cce13da66aa3457d236579a9ac90ebf7618 (diff) |
WIP behavior script (problems)
Diffstat (limited to 'src/crepe/util/fmt.cpp')
-rw-r--r-- | src/crepe/util/fmt.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/crepe/util/fmt.cpp b/src/crepe/util/fmt.cpp new file mode 100644 index 0000000..3a43a6f --- /dev/null +++ b/src/crepe/util/fmt.cpp @@ -0,0 +1,34 @@ +#include <string> +#include <cstdio> +#include <cstdarg> + +#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; +} + |