aboutsummaryrefslogtreecommitdiff
path: root/strbuf.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-04-09 13:36:20 -0700
committerJunio C Hamano <gitster@pobox.com>2012-04-09 13:36:20 -0700
commit8502a779dad784785d9f3d5c880ce08b9ad0f483 (patch)
tree975d1e72deb75cc91fd75653f50f9fde7db0a7cd /strbuf.c
parentdbdc07fcbe3a951df8a3869b42edb6fffd466486 (diff)
parent8a557bb77fc009b00f7952f0d3d6ebd33079f70e (diff)
downloadgit-8502a779dad784785d9f3d5c880ce08b9ad0f483.tar.gz
git-8502a779dad784785d9f3d5c880ce08b9ad0f483.tar.xz
Merge branch 'tr/maint-bundle-long-subject' into maint-1.7.8
* 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 3ad2cc001..692cf1bd9 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;