git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/4] vcs-svn: allow input errors to be detected promptly

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Dec 28, 2010, 10:47 UTC
Message-ID
<20101228104740.GA13360@burratino>
In-Reply-To
<20101228104503.GA5422@burratino>
Date: Sun, 10 Oct 2010 21:51:21 -0500

The line_buffer library silently flags input errors until buffer_deinit time; unfortunately, by that point usually errno is invalid. Expose the error flag so callers can check for and report errors early for easy debugging.

	some_error_prone_operation(...);
	if (buffer_ferror())
		return error("input error: %s", strerror(errno));
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Has been in use for a while, but still I'd be interested to know
if this is sane.
 vcs-svn/line_buffer.c |    5 +++++
 vcs-svn/line_buffer.h |    1 +
 2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/vcs-svn/line_buffer.c b/vcs-svn/line_buffer.c
index 1543567..1b5ac8a 100644
--- a/vcs-svn/line_buffer.c
+++ b/vcs-svn/line_buffer.c
@@ -35,6 +35,11 @@ int buffer_deinit(void)
 	return err;
 }
 
+int buffer_ferror(void)
+{
+	return ferror(infile);
+}
+
 /* Read a line without trailing newline. */
 char *buffer_read_line(void)
 {
diff --git a/vcs-svn/line_buffer.h b/vcs-svn/line_buffer.h
index 9c78ae1..5a19873 100644
--- a/vcs-svn/line_buffer.h
+++ b/vcs-svn/line_buffer.h
@@ -3,6 +3,7 @@
 
 int buffer_init(const char *filename);
 int buffer_deinit(void);
+int buffer_ferror(void);
 char *buffer_read_line(void);
 char *buffer_read_string(uint32_t len);
 void buffer_copy_bytes(uint32_t len);
-- 
1.7.2.3.554.gc9b5c.dirty
Previous: Jonathan NiederNext: Jonathan Nieder
Message 2 of 6 in “improving svn-fe error handling”
  1. 0/4 improving svn-fe error handlingJonathan Nieder, Dec 28, 2010
  2. 1/4 vcs-svn: allow input errors to be detected promptlyJonathan Nieder, Dec 28, 2010
  3. 2/4 vcs-svn: make buffer_skip_bytes return length readJonathan Nieder, Dec 28, 2010
  4. 3/4 vcs-svn: make buffer_copy_bytes return length readJonathan Nieder, Dec 28, 2010
  5. 4/4 vcs-svn: improve reporting of input errorsJonathan Nieder, Dec 28, 2010
  6. Jonathan NiederJan 4, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.