[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