X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=sideband.c;h=ab8a1e990db39155efc624ca99e85c1cf8eaefa9;hb=35865ca24500a0d46a012f7a55f39bf36389f7ba;hp=277fa3c10d19ee7997ee5b38c5f77a6cd04576f1;hpb=9ac13ec941933c32849c2284b5d79ef608023a56;p=git.git diff --git a/sideband.c b/sideband.c index 277fa3c10..ab8a1e990 100644 --- a/sideband.c +++ b/sideband.c @@ -17,7 +17,7 @@ int recv_sideband(const char *me, int in_stream, int out, int err) strcpy(buf, "remote:"); while (1) { int band, len; - len = packet_read_line(in_stream, buf+7, LARGE_PACKET_MAX); + len = packet_read_line(in_stream, buf+7, LARGE_PACKET_MAX); if (len == 0) break; if (len < 1) { @@ -35,7 +35,22 @@ int recv_sideband(const char *me, int in_stream, int out, int err) return SIDEBAND_REMOTE_ERROR; case 2: buf[7] = ' '; - safe_write(err, buf, 8+len); + len += 8; + while (1) { + int brk = 8; + while (brk < len) { + brk++; + if (buf[brk-1] == '\n' || + buf[brk-1] == '\r') + break; + } + safe_write(err, buf, brk); + if (brk < len) { + memmove(buf + 8, buf + brk, len - brk); + len = len - brk + 8; + } else + break; + } continue; case 1: safe_write(out, buf+8, len);