diff options
| author | Georg Brandl <georg@python.org> | 2012-09-29 07:27:15 (GMT) |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2012-09-29 07:27:15 (GMT) |
| commit | 99a247fd01c1cd780c0c3ee1116657627f1ee744 (patch) | |
| tree | 319e33cb6612c3fafb2eb82e15c5e85e3d771e4f /Modules/_csv.c | |
| parent | 1628eaa5dc8892ff381ca7558cc7c8d80fac494d (diff) | |
| parent | 8ed677db129171317b8ee7cd45b39b9013f5a2d6 (diff) | |
| download | cpython-99a247fd01c1cd780c0c3ee1116657627f1ee744.zip cpython-99a247fd01c1cd780c0c3ee1116657627f1ee744.tar.gz cpython-99a247fd01c1cd780c0c3ee1116657627f1ee744.tar.bz2 | |
Merge with main repo default branch.
Diffstat (limited to 'Modules/_csv.c')
| -rw-r--r-- | Modules/_csv.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Modules/_csv.c b/Modules/_csv.c index 8380990..cc87bad 100644 --- a/Modules/_csv.c +++ b/Modules/_csv.c @@ -788,9 +788,14 @@ Reader_iternext(ReaderObj *self) lineobj = PyIter_Next(self->input_iter); if (lineobj == NULL) { /* End of input OR exception */ - if (!PyErr_Occurred() && self->field_len != 0) - PyErr_Format(_csvstate_global->error_obj, - "newline inside string"); + if (!PyErr_Occurred() && (self->field_len != 0 || + self->state == IN_QUOTED_FIELD)) { + if (self->dialect->strict) + PyErr_SetString(_csvstate_global->error_obj, + "unexpected end of data"); + else if (parse_save_field(self) >= 0) + break; + } return NULL; } if (!PyUnicode_Check(lineobj)) { |
