/* This actually is a hack. * * We only have one single operation active at a time. So we can use * a static buffer here which keeps the intermediate string. */ static const char * get_src(const char *name) { static TINO_BUF buf; if (!m_source) return name; tino_buf_resetO(&buf); tino_buf_add_sO(&buf, m_source); tino_buf_add_sO(&buf, name); return tino_buf_get_sN(&buf); }
/* This is wrong (on hexdump continuation lines), but I cannot help it now */ static void add_prefix(const char *what, ...) { tino_va_list list; if (!tino_buf_get_lenO(&prefix)) { const char *p= in_line ? line_cont_prefix : line_prefix; if (p && *p) tino_buf_add_sO(&prefix, p); } tino_va_start(list, what); tino_buf_add_vsprintfO(&prefix, &list); tino_va_end(list); }