From b48e27f5cc31af65d8bb92d4b81cd03a60c5bcdb Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Thu, 6 Aug 2026 00:24:49 -0400 Subject: clean up yesterday's hacks + functions in type system --- ccc.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'ccc.c') diff --git a/ccc.c b/ccc.c index ca4eba1..c1b1540 100644 --- a/ccc.c +++ b/ccc.c @@ -1,6 +1,7 @@ #include "ccc.h" #include #include +#include void* ccc_alloc(integral_t sz) { void* ptr = calloc(1, sz); @@ -10,3 +11,24 @@ void* ccc_alloc(integral_t sz) { } return ptr; } + +char* ccc_sprintf(const char* format, ...) { + va_list args; + + va_start(args, format); + int req_sz = vsnprintf(NULL, 0, format, args); + va_end(args); + + if (req_sz < 0) { + fprintf(stderr, "ccc: formatting error\n"); + exit(1); + } + req_sz += 1; /* null terminated */ + char* buffer = ccc_alloc(req_sz); + + va_start(args, format); + vsnprintf(buffer, req_sz, format, args); + va_end(args); + + return buffer; +} -- cgit v1.2.3