summaryrefslogtreecommitdiff
path: root/vcs-svn
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2011-01-02 21:09:38 -0600
committerJonathan Nieder <jrnieder@gmail.com>2011-02-26 04:59:37 -0600
commitcb3f87cf1ba90373fdc240d65a4d65434099d9a3 (patch)
treeea9094dc1cf3c5f96df6d6fe56dee306aaddac5f /vcs-svn
parentcc193f1f0b45e4e65f246f1d5e6e8134844aa35b (diff)
downloadgit-cb3f87cf1ba90373fdc240d65a4d65434099d9a3.tar.gz
vcs-svn: allow input from file descriptor
Based-on-patch-by: David Barr <david.barr@cordelta.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Diffstat (limited to 'vcs-svn')
-rw-r--r--vcs-svn/line_buffer.c8
-rw-r--r--vcs-svn/line_buffer.h1
-rw-r--r--vcs-svn/line_buffer.txt9
3 files changed, 14 insertions, 4 deletions
diff --git a/vcs-svn/line_buffer.c b/vcs-svn/line_buffer.c
index 37ec56e5be..e29a81a536 100644
--- a/vcs-svn/line_buffer.c
+++ b/vcs-svn/line_buffer.c
@@ -17,6 +17,14 @@ int buffer_init(struct line_buffer *buf, const char *filename)
return 0;
}
+int buffer_fdinit(struct line_buffer *buf, int fd)
+{
+ buf->infile = fdopen(fd, "r");
+ if (!buf->infile)
+ return -1;
+ return 0;
+}
+
int buffer_deinit(struct line_buffer *buf)
{
int err;
diff --git a/vcs-svn/line_buffer.h b/vcs-svn/line_buffer.h
index 0a59c73e8b..630d83c31a 100644
--- a/vcs-svn/line_buffer.h
+++ b/vcs-svn/line_buffer.h
@@ -13,6 +13,7 @@ struct line_buffer {
#define LINE_BUFFER_INIT {"", STRBUF_INIT, NULL}
int buffer_init(struct line_buffer *buf, const char *filename);
+int buffer_fdinit(struct line_buffer *buf, int fd);
int buffer_deinit(struct line_buffer *buf);
char *buffer_read_line(struct line_buffer *buf);
char *buffer_read_string(struct line_buffer *buf, uint32_t len);
diff --git a/vcs-svn/line_buffer.txt b/vcs-svn/line_buffer.txt
index f8eaa4dd8c..4e8fb719c1 100644
--- a/vcs-svn/line_buffer.txt
+++ b/vcs-svn/line_buffer.txt
@@ -27,10 +27,11 @@ resources.
Functions
---------
-`buffer_init`::
- Open the named file for input. If filename is NULL,
- start reading from stdin. On failure, returns -1 (with
- errno indicating the nature of the failure).
+`buffer_init`, `buffer_fdinit`::
+ Open the named file or file descriptor for input.
+ buffer_init(buf, NULL) prepares to read from stdin.
+ On failure, returns -1 (with errno indicating the nature
+ of the failure).
`buffer_deinit`::
Stop reading from the current file (closing it unless