static void write_name(const char *name)
{
/*
+ * NEEDSWORK: To make this thread-safe, full_name would have to be owned
+ * by the caller.
+ *
+ * full_name get reused across output lines to minimize the allocation
+ * churn.
+ */
+ static struct strbuf full_name = STRBUF_INIT;
+ if (output_path_prefix != '\0') {
It was pointed out to me that this should be:
if (*output_path_prefix != '\0') {
+ strbuf_reset(&full_name);
+ strbuf_addstr(&full_name, output_path_prefix);
+ strbuf_addstr(&full_name, name);
+ name = full_name.buf;
+ }