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

Reply via email to