Johannes Schindelin <johannes.schinde...@gmx.de> writes:

> The data structure passed to the recursive merge machinery has a feature
> where the caller can ask for the output to be buffered into a strbuf, by
> setting the field 'buffer_output'.
>
> Previously, we simply swallowed the buffered output when showing error
> messages. With this patch, we show the output first, and only then print
> the error message.

I didn't quite understand this paragraph until I realized that you
meant "when showing die message".  We died without flushing, losing
accumulated output.

> +static int err(struct merge_options *o, const char *err, ...)
> +{
> +     va_list params;
> +
> +     va_start(params, err);
> +     flush_output(o);

I would have written the above two swapped; va_start() logically
is about what happens in the next four lines.

> +     strbuf_vaddf(&o->obuf, err, params);
> +     error("%s", o->obuf.buf);
> +     strbuf_reset(&o->obuf);

Sneaky ;-)

The remainder replaces error(...) with err(o, ...) and updates the
callchain to pass the merge_options around, which looked good.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to