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

Skip to content

Commit f59c28c

Browse files
committed
unicode_writer_finish() checks string consistency
1 parent 5d73c17 commit f59c28c

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

Lib/test/test_unicode.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,10 @@ def __str__(self):
10641064
self.assertEqual('%f' % INF, 'inf')
10651065
self.assertEqual('%F' % INF, 'INF')
10661066

1067+
# PEP 393
1068+
self.assertEqual('%.1s' % "a\xe9\u20ac", 'a')
1069+
self.assertEqual('%.2s' % "a\xe9\u20ac", 'a\xe9')
1070+
10671071
def test_startswith_endswith_errors(self):
10681072
for meth in ('foo'.startswith, 'foo'.endswith):
10691073
with self.assertRaises(TypeError) as cm:

Objects/unicodeobject.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13320,6 +13320,7 @@ unicode_writer_finish(unicode_writer_t *writer)
1332013320
Py_DECREF(writer->buffer);
1332113321
return NULL;
1332213322
}
13323+
assert(_PyUnicode_CheckConsistency(writer->buffer, 1));
1332313324
return writer->buffer;
1332413325
}
1332513326

0 commit comments

Comments
 (0)