summaryrefslogtreecommitdiff
path: root/pkt-line.c
diff options
context:
space:
mode:
authorBen Peart <peartben@gmail.com>2017-05-05 11:27:56 -0400
committerJunio C Hamano <gitster@pobox.com>2017-05-08 10:57:26 +0900
commitc0c70f7ac080c3b4ecc50a3207eb66e97c10271d (patch)
tree06cbefbbda060e2e20bfc92b9d22bac6b436b441 /pkt-line.c
parent825b9226bf7a962bc76571319b1444bc02fdcdf8 (diff)
downloadgit-c0c70f7ac080c3b4ecc50a3207eb66e97c10271d.tar.gz
convert: move packet_write_line() into pkt-line as packet_writel()
Add packet_writel() which writes multiple lines in a single call and then calls packet_flush_gently(). Update convert.c to use the new packet_writel() function from pkt-line. Signed-off-by: Ben Peart <benpeart@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pkt-line.c')
-rw-r--r--pkt-line.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/pkt-line.c b/pkt-line.c
index 7db9119573..9d845ecc3c 100644
--- a/pkt-line.c
+++ b/pkt-line.c
@@ -171,6 +171,25 @@ int packet_write_fmt_gently(int fd, const char *fmt, ...)
return status;
}
+int packet_writel(int fd, const char *line, ...)
+{
+ va_list args;
+ int err;
+ va_start(args, line);
+ for (;;) {
+ if (!line)
+ break;
+ if (strlen(line) > LARGE_PACKET_DATA_MAX)
+ return -1;
+ err = packet_write_fmt_gently(fd, "%s\n", line);
+ if (err)
+ return err;
+ line = va_arg(args, const char*);
+ }
+ va_end(args);
+ return packet_flush_gently(fd);
+}
+
static int packet_write_gently(const int fd_out, const char *buf, size_t size)
{
static char packet_write_buffer[LARGE_PACKET_MAX];