From 01cf97e60f970490a94a56d8c82fca320e17fac5 Mon Sep 17 00:00:00 2001 From: Tadas Vilkeliskis Date: Sun, 3 Nov 2013 16:23:58 -0500 Subject: put parser into error state if callback returns non-zero --- src/csv_parser.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/csv_parser.c') diff --git a/src/csv_parser.c b/src/csv_parser.c index 29f0529..b93713a 100644 --- a/src/csv_parser.c +++ b/src/csv_parser.c @@ -96,6 +96,7 @@ size_t csv_parser_execute(csv_parser_t *parser, parser->row, parser->col); if (r) { + parser->state = csvps_error; return parser->nread; } } @@ -112,6 +113,7 @@ size_t csv_parser_execute(csv_parser_t *parser, parser->row, parser->col); if (r) { + parser->state = csvps_error; return parser->nread; } } @@ -129,6 +131,7 @@ size_t csv_parser_execute(csv_parser_t *parser, parser->row, parser->col); if (r) { + parser->state = csvps_error; return parser->nread; } } @@ -142,6 +145,9 @@ size_t csv_parser_execute(csv_parser_t *parser, parser->state = csvps_line_start; } break; + case csvps_error: + return parser->nread; + break; default: assert(0 && "invalid parser state"); break; -- cgit v1.2.3