aboutsummaryrefslogtreecommitdiff
path: root/src/csv_parser.c
diff options
context:
space:
mode:
authorTadas Vilkeliskis <vilkeliskis.t@gmail.com>2013-11-03 16:23:58 -0500
committerTadas Vilkeliskis <vilkeliskis.t@gmail.com>2013-11-03 16:23:58 -0500
commit01cf97e60f970490a94a56d8c82fca320e17fac5 (patch)
tree2eacf7fd2f800bc04c06eb383e07b731ef7fb0a9 /src/csv_parser.c
parent4cd6b4d5045b5d3530b27159edca64479a5c346c (diff)
put parser into error state if callback returns non-zero
Diffstat (limited to 'src/csv_parser.c')
-rw-r--r--src/csv_parser.c6
1 files changed, 6 insertions, 0 deletions
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;