Author: Alex Gaynor <alex.gay...@gmail.com> Branch: stdlib-2.7.8 Changeset: r73106:4f71852efa78 Date: 2014-08-27 16:18 -0700 http://bitbucket.org/pypy/pypy/changeset/4f71852efa78/
Log: (alex, dreid): fixed a bug in the utf7 decoder where unconsumed characters would still be returned diff --git a/rpython/rlib/runicode.py b/rpython/rlib/runicode.py --- a/rpython/rlib/runicode.py +++ b/rpython/rlib/runicode.py @@ -906,7 +906,7 @@ elif inShift: pos = shiftOutStartPos # back off output - return result.build(), pos + return result.build()[:pos], pos def unicode_encode_utf_7(s, size, errors, errorhandler=None): if size == 0: diff --git a/rpython/rlib/test/test_runicode.py b/rpython/rlib/test/test_runicode.py --- a/rpython/rlib/test/test_runicode.py +++ b/rpython/rlib/test/test_runicode.py @@ -231,6 +231,8 @@ assert decode(s, 4, None) == (u'a+-', 4) assert decode(s, 5, None) == (u'a+-b', 5) + assert decode((27 * u"\u3042" + "\n").encode('utf7')[:28], 28, None) == (u'', 0) + def test_utf7_surrogates(self): encode = self.getencoder('utf-7') u = u'\U000abcde' _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit