From 5e8617f560968567c285bc2e9b0674f8f9d535cb Mon Sep 17 00:00:00 2001 From: Thomas Rast Date: Wed, 22 Feb 2012 20:34:22 +0100 Subject: bundle: put strbuf_readline_fd in strbuf.c with adjustments The comment even said that it should eventually go there. While at it, match the calling convention and name of the function to the strbuf_get*line family. So it now is strbuf_getwholeline_fd. Signed-off-by: Thomas Rast Signed-off-by: Junio C Hamano --- strbuf.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'strbuf.c') diff --git a/strbuf.c b/strbuf.c index 3ad2cc0016..692cf1bd9a 100644 --- a/strbuf.c +++ b/strbuf.c @@ -383,6 +383,22 @@ int strbuf_getline(struct strbuf *sb, FILE *fp, int term) return 0; } +int strbuf_getwholeline_fd(struct strbuf *sb, int fd, int term) +{ + strbuf_reset(sb); + + while (1) { + char ch; + ssize_t len = xread(fd, &ch, 1); + if (len <= 0) + return EOF; + strbuf_addch(sb, ch); + if (ch == term) + break; + } + return 0; +} + int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint) { int fd, len; -- cgit v1.2.1