Author: Matti Picus <[email protected]>
Branch: unicode-utf8-py3
Changeset: r95132:fa345e6d0bd7
Date: 2018-09-16 21:27 +0300
http://bitbucket.org/pypy/pypy/changeset/fa345e6d0bd7/
Log: allow surrogates=True if error is 'surrogatespass', percolate kwarg
diff --git a/pypy/interpreter/unicodehelper.py
b/pypy/interpreter/unicodehelper.py
--- a/pypy/interpreter/unicodehelper.py
+++ b/pypy/interpreter/unicodehelper.py
@@ -284,7 +284,7 @@
pos = rutf8._pos_at_index(s, newindex)
return result.build()
-def utf8_encode_ascii(s, errors, errorhandler):
+def utf8_encode_ascii(s, errors, errorhandler, allow_surrogates=False):
""" Don't be confused - this is a slowpath for errors e.g. "ignore"
or an obscure errorhandler
"""
diff --git a/pypy/module/_codecs/interp_codecs.py
b/pypy/module/_codecs/interp_codecs.py
--- a/pypy/module/_codecs/interp_codecs.py
+++ b/pypy/module/_codecs/interp_codecs.py
@@ -649,9 +649,13 @@
w_arg = space.convert_arg_to_w_unicode(w_arg, errors)
if errors is None:
errors = 'strict'
+ allow_surrogates = False
+ if errors in ('surrogatepass',):
+ allow_surrogates = True
state = space.fromcache(CodecState)
ulen = w_arg._length
- result = func(w_arg._utf8, errors, state.encode_error_handler)
+ result = func(w_arg._utf8, errors, state.encode_error_handler,
+ allow_surrogates=allow_surrogates)
return space.newtuple([space.newbytes(result), space.newint(ulen)])
wrap_encoder.__name__ = func.__name__
globals()[name] = wrap_encoder
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit