#include "context.h" #include "strbuf.h" #include #include #include #include #include void cprintf(struct context* context, const char* fmt, ...) { va_list args; va_start(args, fmt); char* buf = malloc(CPRINTF_BUF_MAX); if (buf == NULL) { va_end(args); return; } memset(buf, 0, CPRINTF_BUF_MAX); int len = vsnprintf(buf, CPRINTF_BUF_MAX, fmt, args); va_end(args); if (len > 0) { for (int i = 0; i < len; i++) strbuf_append(&context->strbuf, buf[i]); } free(buf); }