merge-recursive: offer an option to retain the output in 'obuf'
[gitweb.git] / merge-recursive.c
index 99c963558b08ae59bff629e5980329a124bf099f..ec50932210807b2fd1f14e11694d00c7e2c21d15 100644 (file)
@@ -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;
 }