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@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html