Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 36a7691

Browse files
committed
Fix parsing of csv files with escapes (escape character previously would be
left in stream).
1 parent 41e4faa commit 36a7691

2 files changed

Lines changed: 2 additions & 10 deletions

File tree

Lib/test/test_csv.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,10 @@ def test_read_eol(self):
227227
self.assertRaises(csv.Error, self._read_test, ['a,b\r\nc,d'], [])
228228

229229
def test_read_escape(self):
230-
self._read_test(['a,\\b,c'], [['a', '\\b', 'c']], escapechar='\\')
230+
self._read_test(['a,\\b,c'], [['a', 'b', 'c']], escapechar='\\')
231231
self._read_test(['a,b\\,c'], [['a', 'b,c']], escapechar='\\')
232232
self._read_test(['a,"b\\,c"'], [['a', 'b,c']], escapechar='\\')
233-
self._read_test(['a,"b,\\c"'], [['a', 'b,\\c']], escapechar='\\')
233+
self._read_test(['a,"b,\\c"'], [['a', 'b,c']], escapechar='\\')
234234
self._read_test(['a,"b,c\\""'], [['a', 'b,c"']], escapechar='\\')
235235
self._read_test(['a,"b,c"\\'], [['a', 'b,c\\']], escapechar='\\')
236236

Modules/_csv.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -584,10 +584,6 @@ parse_process_char(ReaderObj *self, char c)
584584
break;
585585

586586
case ESCAPED_CHAR:
587-
if (c != dialect->escapechar &&
588-
c != dialect->delimiter &&
589-
c != dialect->quotechar)
590-
parse_add_char(self, dialect->escapechar);
591587
parse_add_char(self, c);
592588
self->state = IN_FIELD;
593589
break;
@@ -642,10 +638,6 @@ parse_process_char(ReaderObj *self, char c)
642638
break;
643639

644640
case ESCAPE_IN_QUOTED_FIELD:
645-
if (c != dialect->escapechar &&
646-
c != dialect->delimiter &&
647-
c != dialect->quotechar)
648-
parse_add_char(self, dialect->escapechar);
649641
parse_add_char(self, c);
650642
self->state = IN_QUOTED_FIELD;
651643
break;

0 commit comments

Comments
 (0)