From ed36aabf97f769126ff075e43285a45aa5eec518 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Fri, 19 Jun 2020 10:37:35 +0200 Subject: mehr Fehlerbehandlung... --- csv.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/csv.c b/csv.c index dfc79c9..4d48f01 100644 --- a/csv.c +++ b/csv.c @@ -255,6 +255,15 @@ csv_read(csv_t *csv, FILE *in) assert(csv != NULL); assert(in != NULL); + /* do not try to read if EOF has already been seen */ + if ( feof(in) ) { + return -1; + } + + if ( ferror(in) ) { + csv_fatal_error("I/O error", csv->csv_options); + } + enum { STATE_START_FIELD, STATE_QUOTED_FIELD, @@ -376,6 +385,10 @@ csv_read(csv_t *csv, FILE *in) return csv->csv_field.pos; case STATE_END_FILE: + if ( ferror(in) ) { + csv_fatal_error("I/O error", csv->csv_options); + } + if ( csv_string_empty(&csv->csv_string) ) { return -1; /* EOF reached */ } -- cgit v1.3