vcs-svn: remove buffer_read_string

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>
This commit is contained in:
Jonathan Nieder
2011-03-24 23:09:19 -05:00
parent e7d04ee147
commit 7e2fe3a9fc
5 changed files with 17 additions and 48 deletions

View File

@ -53,7 +53,7 @@ long_read_test () {
} >input & } >input &
} && } &&
test-line-buffer input <<-EOF >output && test-line-buffer input <<-EOF >output &&
read $readsize binary $readsize
copy $copysize copy $copysize
EOF EOF
kill $! && kill $! &&
@ -71,23 +71,23 @@ test_expect_success 'setup: have pipes?' '
' '
test_expect_success 'hello world' ' test_expect_success 'hello world' '
echo HELLO >expect && echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual && test-line-buffer <<-\EOF >actual &&
read 6 binary 6
HELLO HELLO
EOF EOF
test_cmp expect actual test_cmp expect actual
' '
test_expect_success PIPE '0-length read, no input available' ' test_expect_success PIPE '0-length read, no input available' '
>expect && printf ">" >expect &&
rm -f input && rm -f input &&
mkfifo input && mkfifo input &&
{ {
sleep 100 >input & sleep 100 >input &
} && } &&
test-line-buffer input <<-\EOF >actual && test-line-buffer input <<-\EOF >actual &&
read 0 binary 0
copy 0 copy 0
EOF EOF
kill $! && kill $! &&
@ -95,9 +95,9 @@ test_expect_success PIPE '0-length read, no input available' '
' '
test_expect_success '0-length read, send along greeting' ' test_expect_success '0-length read, send along greeting' '
echo HELLO >expect && echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual && test-line-buffer <<-\EOF >actual &&
read 0 binary 0
copy 6 copy 6
HELLO HELLO
EOF EOF
@ -105,7 +105,7 @@ test_expect_success '0-length read, send along greeting' '
' '
test_expect_success PIPE '1-byte read, no input available' ' test_expect_success PIPE '1-byte read, no input available' '
printf "%s" ab >expect && printf ">%s" ab >expect &&
rm -f input && rm -f input &&
mkfifo input && mkfifo input &&
{ {
@ -116,7 +116,7 @@ test_expect_success PIPE '1-byte read, no input available' '
} >input & } >input &
} && } &&
test-line-buffer input <<-\EOF >actual && test-line-buffer input <<-\EOF >actual &&
read 1 binary 1
copy 1 copy 1
EOF EOF
kill $! && kill $! &&
@ -140,15 +140,6 @@ test_expect_success 'read from file descriptor' '
test_cmp expect actual 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' ' test_expect_success 'skip, copy null byte' '
echo Q | q_to_nul >expect && echo Q | q_to_nul >expect &&
q_to_nul <<-\EOF | test-line-buffer >actual && q_to_nul <<-\EOF | test-line-buffer >actual &&
@ -170,18 +161,18 @@ test_expect_success 'read null byte' '
' '
test_expect_success 'long reads are truncated' ' test_expect_success 'long reads are truncated' '
echo foo >expect && echo ">foo" >expect &&
test-line-buffer <<-\EOF >actual && test-line-buffer <<-\EOF >actual &&
read 5 binary 5
foo foo
EOF EOF
test_cmp expect actual test_cmp expect actual
' '
test_expect_success 'long copies are truncated' ' test_expect_success 'long copies are truncated' '
printf "%s\n" "" foo >expect && printf "%s\n" ">" foo >expect &&
test-line-buffer <<-\EOF >actual && test-line-buffer <<-\EOF >actual &&
read 1 binary 1
copy 5 copy 5
foo foo

View File

@ -32,12 +32,6 @@ static void handle_command(const char *command, const char *arg, struct line_buf
buffer_copy_bytes(buf, strtouint32(arg)); buffer_copy_bytes(buf, strtouint32(arg));
return; return;
} }
case 'r':
if (!prefixcmp(command, "read ")) {
const char *s = buffer_read_string(buf, strtouint32(arg));
fputs(s, stdout);
return;
}
case 's': case 's':
if (!prefixcmp(command, "skip ")) { if (!prefixcmp(command, "skip ")) {
buffer_skip_bytes(buf, strtouint32(arg)); buffer_skip_bytes(buf, strtouint32(arg));

View File

@ -91,13 +91,6 @@ char *buffer_read_line(struct line_buffer *buf)
return buf->line_buffer; 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, void buffer_read_binary(struct line_buffer *buf,
struct strbuf *sb, uint32_t size) struct strbuf *sb, uint32_t size)
{ {
@ -134,5 +127,4 @@ off_t buffer_skip_bytes(struct line_buffer *buf, off_t nbytes)
void buffer_reset(struct line_buffer *buf) void buffer_reset(struct line_buffer *buf)
{ {
strbuf_release(&buf->blob_buffer);
} }

View File

@ -7,10 +7,9 @@
struct line_buffer { struct line_buffer {
char line_buffer[LINE_BUFFER_LEN]; char line_buffer[LINE_BUFFER_LEN];
struct strbuf blob_buffer;
FILE *infile; 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_init(struct line_buffer *buf, const char *filename);
int buffer_fdinit(struct line_buffer *buf, int fd); int buffer_fdinit(struct line_buffer *buf, int fd);
@ -23,7 +22,6 @@ long buffer_tmpfile_prepare_to_read(struct line_buffer *buf);
int buffer_ferror(struct line_buffer *buf); int buffer_ferror(struct line_buffer *buf);
char *buffer_read_line(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); int buffer_read_char(struct line_buffer *buf);
void buffer_read_binary(struct line_buffer *buf, struct strbuf *sb, uint32_t len); void buffer_read_binary(struct line_buffer *buf, struct strbuf *sb, uint32_t len);
/* Returns number of bytes read (not necessarily written). */ /* Returns number of bytes read (not necessarily written). */

View File

@ -16,8 +16,8 @@ The calling program:
- initializes a `struct line_buffer` to LINE_BUFFER_INIT - initializes a `struct line_buffer` to LINE_BUFFER_INIT
- specifies a file to read with `buffer_init` - specifies a file to read with `buffer_init`
- processes input with `buffer_read_line`, `buffer_read_string`, - processes input with `buffer_read_line`, `buffer_skip_bytes`,
`buffer_skip_bytes`, and `buffer_copy_bytes` and `buffer_copy_bytes`
- closes the file with `buffer_deinit`, perhaps to start over and - closes the file with `buffer_deinit`, perhaps to start over and
read another file. read another file.
@ -37,7 +37,7 @@ the calling program. A program
the temporary file the temporary file
- declares writing is over with `buffer_tmpfile_prepare_to_read` - declares writing is over with `buffer_tmpfile_prepare_to_read`
- can re-read what was written with `buffer_read_line`, - 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` - can reuse the temporary file by calling `buffer_tmpfile_rewind`
again again
- removes the temporary file with `buffer_deinit`, perhaps to - removes the temporary file with `buffer_deinit`, perhaps to
@ -64,12 +64,6 @@ Functions
Read a line and strip off the trailing newline. Read a line and strip off the trailing newline.
On failure or end of file, returns NULL. 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`:: `buffer_copy_bytes`::
Read `len` bytes of input and dump them to the standard output Read `len` bytes of input and dump them to the standard output
stream. Returns early for error or end of file. stream. Returns early for error or end of file.