#include "context.h" #include "strbuf.h" #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; } 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); }