All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: David Barr <david.barr@cordelta.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Ramkumar Ramachandra <artagnon@gmail.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 2/4] vcs-svn: remove buffer_read_string
Date: Thu, 24 Mar 2011 23:09:19 -0500	[thread overview]
Message-ID: <20110325040919.GC3007@elie> (raw)
In-Reply-To: <20110325033431.GA3007@elie>

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>
---
 t/t0081-line-buffer.sh  |   35 +++++++++++++----------------------
 test-line-buffer.c      |    6 ------
 vcs-svn/line_buffer.c   |    8 --------
 vcs-svn/line_buffer.h   |    4 +---
 vcs-svn/line_buffer.txt |   12 +++---------
 5 files changed, 17 insertions(+), 48 deletions(-)

diff --git a/t/t0081-line-buffer.sh b/t/t0081-line-buffer.sh
index 550fad0..1dbe1c9 100755
--- a/t/t0081-line-buffer.sh
+++ b/t/t0081-line-buffer.sh
@@ -53,7 +53,7 @@ long_read_test () {
 		} >input &
 	} &&
 	test-line-buffer input <<-EOF >output &&
-	read $readsize
+	binary $readsize
 	copy $copysize
 	EOF
 	kill $! &&
@@ -71,23 +71,23 @@ test_expect_success 'setup: have pipes?' '
 '
 
 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 $! &&
@@ -95,9 +95,9 @@ test_expect_success PIPE '0-length read, no input available' '
 '
 
 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
@@ -105,7 +105,7 @@ test_expect_success '0-length read, send along greeting' '
 '
 
 test_expect_success PIPE '1-byte read, no input available' '
-	printf "%s" ab >expect &&
+	printf ">%s" ab >expect &&
 	rm -f input &&
 	mkfifo input &&
 	{
@@ -116,7 +116,7 @@ test_expect_success PIPE '1-byte read, no input available' '
 		} >input &
 	} &&
 	test-line-buffer input <<-\EOF >actual &&
-	read 1
+	binary 1
 	copy 1
 	EOF
 	kill $! &&
@@ -140,15 +140,6 @@ test_expect_success 'read from file descriptor' '
 	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 &&
@@ -170,18 +161,18 @@ test_expect_success 'read null byte' '
 '
 
 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 25b20b9..7ec9b13 100644
--- a/test-line-buffer.c
+++ b/test-line-buffer.c
@@ -32,12 +32,6 @@ static void handle_command(const char *command, const char *arg, struct line_buf
 			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 33e733a..c390387 100644
--- a/vcs-svn/line_buffer.c
+++ b/vcs-svn/line_buffer.c
@@ -91,13 +91,6 @@ char *buffer_read_line(struct line_buffer *buf)
 	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)
 {
@@ -134,5 +127,4 @@ off_t buffer_skip_bytes(struct line_buffer *buf, off_t nbytes)
 
 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 f5c468a..d0b22dd 100644
--- a/vcs-svn/line_buffer.h
+++ b/vcs-svn/line_buffer.h
@@ -7,10 +7,9 @@
 
 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);
@@ -23,7 +22,6 @@ long buffer_tmpfile_prepare_to_read(struct line_buffer *buf);
 
 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). */
diff --git a/vcs-svn/line_buffer.txt b/vcs-svn/line_buffer.txt
index 4ef0755..8e139eb 100644
--- a/vcs-svn/line_buffer.txt
+++ b/vcs-svn/line_buffer.txt
@@ -16,8 +16,8 @@ The calling program:
 
  - 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.
 
@@ -37,7 +37,7 @@ the calling program.  A program
    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
@@ -64,12 +64,6 @@ Functions
 	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.
-- 
1.7.4.1

  parent reply	other threads:[~2011-03-25  4:09 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-19  7:03 vcs-svn: purge obsolete data structures and code David Barr
2011-03-19  7:03 ` [PATCH 1/9] vcs-svn: pass paths through to fast-import David Barr
2011-03-19  7:50   ` Jonathan Nieder
2011-03-19  7:03 ` [PATCH 2/9] vcs-svn: avoid using ls command twice David Barr
2011-03-19  8:01   ` Jonathan Nieder
2011-03-19  7:03 ` [PATCH 3/9] vcs-svn: implement perfect hash for node-prop keys David Barr
2011-03-19  8:51   ` Jonathan Nieder
2011-03-21  1:26     ` [PATCH 1/3] " David Barr
2011-03-21  1:26       ` [PATCH 2/3] vcs-svn: implement perfect hash for top-level keys David Barr
2011-03-21  1:26       ` [PATCH 3/3] vcs-svn: use switch rather than cascading ifs David Barr
2011-03-21  1:38         ` [PATCHv2] " David Barr
2011-03-19  7:03 ` [PATCH 4/9] vcs-svn: implement perfect hash for top-level keys David Barr
2011-03-19  8:57   ` Jonathan Nieder
2011-03-19  7:03 ` [PATCH 5/9] vcs-svn: factor out usage of string_pool David Barr
2011-03-19  9:08   ` Jonathan Nieder
2011-03-19  7:03 ` [PATCH 6/9] vcs-svn: drop string_pool David Barr
2011-03-19  7:03 ` [PATCH 7/9] vcs-svn: drop trp.h David Barr
2011-03-19  7:03 ` [PATCH 8/9] vcs-svn: drop obj_pool.h David Barr
2011-03-19  7:03 ` [PATCH 9/9] vcs-svn: use strchr to find RFC822 delimiter David Barr
2011-03-19  9:10   ` Jonathan Nieder
2011-03-19  7:20 ` vcs-svn: integrate support for text deltas David Barr
2011-03-19  7:20   ` [PATCH 01/16] vcs-svn: improve support for reading large files David Barr
2011-03-19  7:20   ` [PATCH 02/16] vcs-svn: make buffer_skip_bytes return length read David Barr
2011-03-19  7:20   ` [PATCH 03/16] vcs-svn: make buffer_copy_bytes " David Barr
2011-03-19  7:20   ` [PATCH 04/16] vcs-svn: improve reporting of input errors David Barr
2011-03-19  7:20   ` [PATCH 05/16] vcs-svn: learn to maintain a sliding view of a file David Barr
2011-03-19  7:20   ` [PATCH 06/16] vcs-svn: skeleton of an svn delta parser David Barr
2011-03-28  3:30     ` Jonathan Nieder
2011-03-19  7:20   ` [PATCH 07/16] vcs-svn: parse svndiff0 window header David Barr
2011-03-19  7:20   ` [PATCH 08/16] vcs-svn: read the preimage when applying deltas David Barr
2011-03-19  7:20   ` [PATCH 09/16] vcs-svn: read inline data from deltas David Barr
2011-03-19  7:20   ` [PATCH 10/16] vcs-svn: read instructions " David Barr
2011-03-19  7:20   ` [PATCH 11/16] vcs-svn: implement copyfrom_data delta instruction David Barr
2011-03-19  7:20   ` [PATCH 12/16] vcs-svn: verify that deltas consume all inline data David Barr
2011-03-19  7:20   ` [PATCH 13/16] vcs-svn: let deltas use data from postimage David Barr
2011-03-19  7:20   ` [PATCH 14/16] vcs-svn: let deltas use data from preimage David Barr
2011-03-19  7:20   ` [PATCH 15/16] vcs-svn: microcleanup in svndiff0 window-reading code David Barr
2011-03-19  7:20   ` [PATCH 16/16] vcs-svn: implement text-delta handling David Barr
2011-03-28  7:00   ` vcs-svn: integrate support for text deltas Jonathan Nieder
2011-03-28 11:56     ` David Barr
2011-03-21 23:49 ` [PATCHv2 00/11] vcs-svn: purge obsolete data structures and code David Barr
2011-03-21 23:49   ` [PATCH 01/11] vcs-svn: use strbuf for revision log David Barr
2011-03-21 23:49   ` [PATCH 02/11] vcs-svn: pass paths through to fast-import David Barr
2011-03-21 23:49   ` [PATCH 03/11] vcs-svn: avoid using ls command twice David Barr
2011-03-21 23:49   ` [PATCH 04/11] vcs-svn: implement perfect hash for node-prop keys David Barr
2011-03-21 23:49   ` [PATCH 05/11] vcs-svn: implement perfect hash for top-level keys David Barr
2011-03-21 23:49   ` [PATCH 06/11] vcs-svn: use switch rather than cascading ifs David Barr
2011-03-21 23:49   ` [PATCH 07/11] vcs-svn: factor out usage of string_pool David Barr
2011-03-21 23:49   ` [PATCH 08/11] vcs-svn: drop string_pool David Barr
2011-03-21 23:49   ` =?^[?q?=5BPATCH=2009/11=5D=20vcs-svn=3A=20drop=20trp=2Eh?= David Barr
2011-03-21 23:49   ` [PATCH 10/11] vcs-svn: drop obj_pool.h David Barr
2011-03-21 23:50   ` [PATCH 11/11] vcs-svn: use strchr to find RFC822 delimiter David Barr
2011-03-23  0:32   ` [PULL svn-fe] vcs-svn: simplifications, error handling improvements Jonathan Nieder
2011-03-23  5:46     ` Junio C Hamano
2011-03-23  6:03       ` Junio C Hamano
2011-03-26  6:42         ` Jonathan Nieder
2011-03-26  9:49           ` t0081-line-buffer.sh hangs (Re: [PULL svn-fe] vcs-svn: simplifications, error handling improvements) Jonathan Nieder
2011-03-23  7:11       ` [PULL svn-fe] vcs-svn: simplifications, error handling improvements David Barr
2011-03-24 12:43       ` [PATCH] fixup! vcs-svn: improve reporting of input errors David Barr
2011-03-25  1:12         ` Jonathan Nieder
2011-03-25  3:34         ` [PATCH svn-fe 0/4] vcs-svn: null bytes in properties Jonathan Nieder
2011-03-25  4:07           ` [PATCH 1/4] vcs-svn: make reading of properties binary-safe Jonathan Nieder
2011-03-28 15:34             ` tb
2011-03-28 19:41               ` Jonathan Nieder
2011-03-28 20:30                 ` Torsten Bögershausen
2011-03-28 20:44                   ` Jonathan Nieder
2011-03-25  4:09           ` Jonathan Nieder [this message]
2011-03-25  4:10           ` [PATCH 3/4] vcs-svn: avoid unnecessary copying of log message and author Jonathan Nieder
2011-03-25  4:11           ` [PATCH 4/4] vcs-svn: handle log message with embedded null bytes Jonathan Nieder
2011-03-26  6:46       ` [PULL svn-fe] vcs-svn: simplifications, error handling improvements Jonathan Nieder
2011-03-26 18:36         ` Junio C Hamano
2011-03-28  0:38           ` [PATCH svn-fe] vcs-svn: add missing cast to printf argument Jonathan Nieder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110325040919.GC3007@elie \
    --to=jrnieder@gmail.com \
    --cc=artagnon@gmail.com \
    --cc=david.barr@cordelta.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.