summaryrefslogtreecommitdiff
path: root/pkt-line.h
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2021-09-01 12:54:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-09-01 17:20:39 (GMT)
commit96328398b3803c96f6a91edc39ccebd4bb9dd12c (patch)
tree66665c9a45b013b17f680224eab183301736045c /pkt-line.h
parentc4203212e360b25a1c69467b5a8437d45a373cac (diff)
downloadgit-96328398b3803c96f6a91edc39ccebd4bb9dd12c.zip
git-96328398b3803c96f6a91edc39ccebd4bb9dd12c.tar.gz
git-96328398b3803c96f6a91edc39ccebd4bb9dd12c.tar.bz2
pkt-line: add stdio packet write functions
This adds three new functions to pkt-line.c: packet_fwrite, packet_fwrite_fmt and packet_fflush. Besides writing a pktline flush packet, packet_fflush also flushes the stdio buffer of the stream. Helped-by: Patrick Steinhardt <ps@pks.im> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Jacob Vosmaer <jacob@gitlab.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pkt-line.h')
-rw-r--r--pkt-line.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/pkt-line.h b/pkt-line.h
index 5af5f45..82b95e4 100644
--- a/pkt-line.h
+++ b/pkt-line.h
@@ -36,6 +36,17 @@ int write_packetized_from_fd_no_flush(int fd_in, int fd_out);
int write_packetized_from_buf_no_flush(const char *src_in, size_t len, int fd_out);
/*
+ * Stdio versions of packet_write functions. When mixing these with fd
+ * based functions, take care to call fflush(3) before doing fd writes or
+ * closing the fd.
+ */
+void packet_fwrite(FILE *f, const char *buf, size_t size);
+void packet_fwrite_fmt(FILE *f, const char *fmt, ...) __attribute__((format (printf, 2, 3)));
+
+/* packet_fflush writes a flush packet and flushes the stdio buffer of f */
+void packet_fflush(FILE *f);
+
+/*
* Read a packetized line into the buffer, which must be at least size bytes
* long. The return value specifies the number of bytes read into the buffer.
*