summaryrefslogtreecommitdiff
path: root/strbuf.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-03-04 22:16:30 -0800
committerJunio C Hamano <gitster@pobox.com>2012-03-04 22:16:30 -0800
commit26f1e9bd68b6eb32d1376ae392354551c5ae17bc (patch)
tree95022cd5fef1afa3c575f1961156d18d6d090cd1 /strbuf.c
parentb2c8c6d944722f9a4f27370f4e89d13f61243302 (diff)
parent8a557bb77fc009b00f7952f0d3d6ebd33079f70e (diff)
downloadgit-26f1e9bd68b6eb32d1376ae392354551c5ae17bc.tar.gz
Merge branch 'tr/maint-bundle-long-subject' into maint
* tr/maint-bundle-long-subject: t5704: match tests to modern style strbuf: improve strbuf_get*line documentation bundle: use a strbuf to scan the log for boundary commits bundle: put strbuf_readline_fd in strbuf.c with adjustments
Diffstat (limited to 'strbuf.c')
-rw-r--r--strbuf.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/strbuf.c b/strbuf.c
index ff0b96b416..5135d5950d 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;