summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e7d04ee)
raw | patch | inline | side by side (parent: e7d04ee)
author | Jonathan Nieder <jrnieder@gmail.com> | |
Fri, 25 Mar 2011 04:09:19 +0000 (23:09 -0500) | ||
committer | Jonathan Nieder <jrnieder@gmail.com> | |
Sat, 26 Mar 2011 05:17:35 +0000 (00:17 -0500) |
All previous users of buffer_read_string have already been converted
to use the more intuitive buffer_read_binary, so remove the old API to
avoid some confusion.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
to use the more intuitive buffer_read_binary, so remove the old API to
avoid some confusion.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
diff --git a/t/t0081-line-buffer.sh b/t/t0081-line-buffer.sh
index 550fad0823a8d27cf1d49b1c55154ea7ce69de02..1dbe1c9b08c1d5140bf237bfee2a02cf4831d261 100755 (executable)
--- a/t/t0081-line-buffer.sh
+++ b/t/t0081-line-buffer.sh
} >input &
} &&
test-line-buffer input <<-EOF >output &&
- read $readsize
+ binary $readsize
copy $copysize
EOF
kill $! &&
'
test_expect_success 'hello world' '
- echo HELLO >expect &&
+ echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual &&
- read 6
+ binary 6
HELLO
EOF
test_cmp expect actual
'
test_expect_success PIPE '0-length read, no input available' '
- >expect &&
+ printf ">" >expect &&
rm -f input &&
mkfifo input &&
{
sleep 100 >input &
} &&
test-line-buffer input <<-\EOF >actual &&
- read 0
+ binary 0
copy 0
EOF
kill $! &&
'
test_expect_success '0-length read, send along greeting' '
- echo HELLO >expect &&
+ echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual &&
- read 0
+ binary 0
copy 6
HELLO
EOF
'
test_expect_success PIPE '1-byte read, no input available' '
- printf "%s" ab >expect &&
+ printf ">%s" ab >expect &&
rm -f input &&
mkfifo input &&
{
} >input &
} &&
test-line-buffer input <<-\EOF >actual &&
- read 1
+ binary 1
copy 1
EOF
kill $! &&
test_cmp expect actual
'
-test_expect_success 'buffer_read_string copes with null byte' '
- >expect &&
- q_to_nul <<-\EOF | test-line-buffer >actual &&
- read 2
- Q
- EOF
- test_cmp expect actual
-'
-
test_expect_success 'skip, copy null byte' '
echo Q | q_to_nul >expect &&
q_to_nul <<-\EOF | test-line-buffer >actual &&
'
test_expect_success 'long reads are truncated' '
- echo foo >expect &&
+ echo ">foo" >expect &&
test-line-buffer <<-\EOF >actual &&
- read 5
+ binary 5
foo
EOF
test_cmp expect actual
'
test_expect_success 'long copies are truncated' '
- printf "%s\n" "" foo >expect &&
+ printf "%s\n" ">" foo >expect &&
test-line-buffer <<-\EOF >actual &&
- read 1
+ binary 1
copy 5
foo
diff --git a/test-line-buffer.c b/test-line-buffer.c
index 25b20b93fd4a1113629c99bd5a53dfee965119c1..7ec9b13c9b2ceb84fb6dd0dd229e9f6cb8c1a635 100644 (file)
--- a/test-line-buffer.c
+++ b/test-line-buffer.c
buffer_copy_bytes(buf, strtouint32(arg));
return;
}
- case 'r':
- if (!prefixcmp(command, "read ")) {
- const char *s = buffer_read_string(buf, strtouint32(arg));
- fputs(s, stdout);
- return;
- }
case 's':
if (!prefixcmp(command, "skip ")) {
buffer_skip_bytes(buf, strtouint32(arg));
diff --git a/vcs-svn/line_buffer.c b/vcs-svn/line_buffer.c
index 33e733a04c2b694a7dce80c8404edd464fe1a6b7..c39038723ed4a90f99f70a694eae58ba488556b6 100644 (file)
--- a/vcs-svn/line_buffer.c
+++ b/vcs-svn/line_buffer.c
return buf->line_buffer;
}
-char *buffer_read_string(struct line_buffer *buf, uint32_t len)
-{
- strbuf_reset(&buf->blob_buffer);
- strbuf_fread(&buf->blob_buffer, len, buf->infile);
- return ferror(buf->infile) ? NULL : buf->blob_buffer.buf;
-}
-
void buffer_read_binary(struct line_buffer *buf,
struct strbuf *sb, uint32_t size)
{
void buffer_reset(struct line_buffer *buf)
{
- strbuf_release(&buf->blob_buffer);
}
diff --git a/vcs-svn/line_buffer.h b/vcs-svn/line_buffer.h
index f5c468afa45f1f567dc5cc2b3e2e748b79fe5cb0..d0b22dda76e8a193f15fa5483abd217cdde101da 100644 (file)
--- a/vcs-svn/line_buffer.h
+++ b/vcs-svn/line_buffer.h
struct line_buffer {
char line_buffer[LINE_BUFFER_LEN];
- struct strbuf blob_buffer;
FILE *infile;
};
-#define LINE_BUFFER_INIT {"", STRBUF_INIT, NULL}
+#define LINE_BUFFER_INIT { "", NULL }
int buffer_init(struct line_buffer *buf, const char *filename);
int buffer_fdinit(struct line_buffer *buf, int fd);
int buffer_ferror(struct line_buffer *buf);
char *buffer_read_line(struct line_buffer *buf);
-char *buffer_read_string(struct line_buffer *buf, uint32_t len);
int buffer_read_char(struct line_buffer *buf);
void buffer_read_binary(struct line_buffer *buf, struct strbuf *sb, uint32_t len);
/* Returns number of bytes read (not necessarily written). */
index 4ef0755cf53e4ee220f1906be7c0cd54ff3265ab..8e139eb22df0f44ba0b805b374943dd5d12e8437 100644 (file)
--- a/vcs-svn/line_buffer.txt
+++ b/vcs-svn/line_buffer.txt
- initializes a `struct line_buffer` to LINE_BUFFER_INIT
- specifies a file to read with `buffer_init`
- - processes input with `buffer_read_line`, `buffer_read_string`,
- `buffer_skip_bytes`, and `buffer_copy_bytes`
+ - processes input with `buffer_read_line`, `buffer_skip_bytes`,
+ and `buffer_copy_bytes`
- closes the file with `buffer_deinit`, perhaps to start over and
read another file.
the temporary file
- declares writing is over with `buffer_tmpfile_prepare_to_read`
- can re-read what was written with `buffer_read_line`,
- `buffer_read_string`, and so on
+ `buffer_copy_bytes`, and so on
- can reuse the temporary file by calling `buffer_tmpfile_rewind`
again
- removes the temporary file with `buffer_deinit`, perhaps to
Read a line and strip off the trailing newline.
On failure or end of file, returns NULL.
-`buffer_read_string`::
- Read `len` characters of input or up to the end of the
- file, whichever comes first. Returns NULL on error.
- Returns whatever characters were read (possibly "")
- for end of file.
-
`buffer_copy_bytes`::
Read `len` bytes of input and dump them to the standard output
stream. Returns early for error or end of file.