aboutsummaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/utils.c b/utils.c
new file mode 100644
index 0000000..04806dd
--- /dev/null
+++ b/utils.c
@@ -0,0 +1,19 @@
+#include "utils.h"
+
+// Compute the size needed (including \0) to format given message
+size_t printf_len(const char *msg, ...) {
+ va_list args;
+ va_start(args, msg);
+ size_t result = vsnprintf(NULL, 0, msg, args);
+ va_end(args);
+ return result + 1;
+}
+
+// Like sprintf, but returs the string. Expects there's enough space.
+char *printf_into(char *dst, const char *msg, ...) {
+ va_list args;
+ va_start(args, msg);
+ vsprintf(dst, msg, args);
+ va_end(args);
+ return dst;
+}