diff options
Diffstat (limited to 'merge-recursive.c')
-rw-r--r-- | merge-recursive.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/merge-recursive.c b/merge-recursive.c index 99c963558..ec5093221 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -25,7 +25,7 @@ static void flush_output(struct merge_options *o) { - if (o->obuf.len) { + if (o->buffer_output < 2 && o->obuf.len) { fputs(o->obuf.buf, stdout); strbuf_reset(&o->obuf); } @@ -35,12 +35,21 @@ static int err(struct merge_options *o, const char *err, ...) { va_list params; - flush_output(o); + if (o->buffer_output < 2) + flush_output(o); + else { + strbuf_complete(&o->obuf, '\n'); + strbuf_addstr(&o->obuf, "error: "); + } va_start(params, err); strbuf_vaddf(&o->obuf, err, params); va_end(params); - error("%s", o->obuf.buf); - strbuf_reset(&o->obuf); + if (o->buffer_output > 1) + strbuf_addch(&o->obuf, '\n'); + else { + error("%s", o->obuf.buf); + strbuf_reset(&o->obuf); + } return -1; } |