Author: Philip Jenvey <[email protected]>
Branch: py3k
Changeset: r49074:53974c65ef6d
Date: 2011-11-09 19:36 -0800
http://bitbucket.org/pypy/pypy/changeset/53974c65ef6d/
Log: get ascii translating
diff --git a/pypy/module/__builtin__/operation.py
b/pypy/module/__builtin__/operation.py
--- a/pypy/module/__builtin__/operation.py
+++ b/pypy/module/__builtin__/operation.py
@@ -5,7 +5,7 @@
from pypy.interpreter import gateway
from pypy.interpreter.error import OperationError
from pypy.interpreter.gateway import unwrap_spec
-from pypy.rlib.runicode import UNICHR
+from pypy.rlib.runicode import UNICHR, str_decode_ascii, unicode_encode_ascii
from pypy.rlib.rfloat import isnan, isinf, round_double
from pypy.rlib import rfloat
import __builtin__
@@ -22,9 +22,12 @@
object, but escape the non-ASCII characters in the string returned by
repr() using \\x, \\u or \\U escapes. This generates a string similar
to that returned by repr() in Python 2."""
+ len_ = __builtin__.len
# repr is guaranteed to be unicode
- repr = space.unwrap(space.repr(w_obj))
- return space.wrap(repr.encode('ascii', 'backslashreplace').decode('ascii'))
+ repr = space.unicode_w(space.repr(w_obj))
+ encoded = unicode_encode_ascii(repr, len_(repr), 'backslashreplace')
+ decoded = str_decode_ascii(encoded, len_(encoded), None, final=True)[0]
+ return space.wrap(decoded)
@unwrap_spec(code=int)
def chr(space, code):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit