diff options
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r-- | Objects/unicodeobject.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index fe591b5..b9e457d 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1970,11 +1970,11 @@ PyObject *PyUnicode_DecodeCharmap(const char *s, Py_DECREF(w); if (x == NULL) { if (PyErr_ExceptionMatches(PyExc_LookupError)) { - /* No mapping found: default to Latin-1 mapping */ + /* No mapping found means: mapping is undefined. */ PyErr_Clear(); - *p++ = (Py_UNICODE)ch; - continue; - } + x = Py_None; + Py_INCREF(x); + } else goto onError; } @@ -2086,16 +2086,11 @@ PyObject *PyUnicode_EncodeCharmap(const Py_UNICODE *p, Py_DECREF(w); if (x == NULL) { if (PyErr_ExceptionMatches(PyExc_LookupError)) { - /* No mapping found: default to Latin-1 mapping if possible */ + /* No mapping found means: mapping is undefined. */ PyErr_Clear(); - if (ch < 256) { - *s++ = (char)ch; - continue; - } - else if (!charmap_encoding_error(&p, &s, errors, - "missing character mapping")) - continue; - } + x = Py_None; + Py_INCREF(x); + } else goto onError; } |