strbuf_readline_fd() existed in bundle.c since e9ee84cf, but this function can be used elsewhere, and since it's relevant to strbuf, it should be in strbuf.{c,h}. Signed-off-by: Xu Di <xudifsd@xxxxxxxxx> --- bundle.c | 18 +----------------- strbuf.c | 16 ++++++++++++++++ strbuf.h | 1 + 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/bundle.c b/bundle.c index b8acf3c..9344a91 100644 --- a/bundle.c +++ b/bundle.c @@ -7,6 +7,7 @@ #include "list-objects.h" #include "run-command.h" #include "refs.h" +#include "strbuf.h" static const char bundle_signature[] = "# v2 git bundle\n"; @@ -23,23 +24,6 @@ static void add_to_ref_list(const unsigned char *sha1, const char *name, list->nr++; } -/* Eventually this should go to strbuf.[ch] */ -static int strbuf_readline_fd(struct strbuf *sb, int fd) -{ - strbuf_reset(sb); - - while (1) { - char ch; - ssize_t len = xread(fd, &ch, 1); - if (len <= 0) - return len; - strbuf_addch(sb, ch); - if (ch == '\n') - break; - } - return 0; -} - static int parse_bundle_header(int fd, struct bundle_header *header, const char *report_path) { diff --git a/strbuf.c b/strbuf.c index ff0b96b..7532a13 100644 --- a/strbuf.c +++ b/strbuf.c @@ -282,6 +282,22 @@ void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf *src) } } +int strbuf_readline_fd(struct strbuf *sb, int fd) +{ + strbuf_reset(sb); + + while (1) { + char ch; + ssize_t len = xread(fd, &ch, 1); + if (len <= 0) + return len; + strbuf_addch(sb, ch); + if (ch == '\n') + break; + } + return 0; +} + size_t strbuf_fread(struct strbuf *sb, size_t size, FILE *f) { size_t res; diff --git a/strbuf.h b/strbuf.h index fbf059f..ecebd11 100644 --- a/strbuf.h +++ b/strbuf.h @@ -109,6 +109,7 @@ static inline void strbuf_complete_line(struct strbuf *sb) } extern size_t strbuf_fread(struct strbuf *, size_t, FILE *); +extern int strbuf_readline_fd(struct strbuf *sb, int fd); /* XXX: if read fails, any partial read is undone */ extern ssize_t strbuf_read(struct strbuf *, int fd, size_t hint); extern int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint); -- 1.7.8.1.749.gb6b3b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html