]> granicus.if.org Git - python/commitdiff
Issue #18609: Add a fast-path for "iso8859-1" encoding
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 29 Oct 2013 10:34:05 +0000 (11:34 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 29 Oct 2013 10:34:05 +0000 (11:34 +0100)
On AIX, the locale encoding may be "iso8859-1", which was not a known syntax of
the legacy ISO 8859-1 encoding.

Using a C codec instead of a Python codec is faster but also avoids tricky
issues during Python startup or complex code.

Objects/unicodeobject.c

index 87c6472e6a1614e06cd5d481bf8e2c7dfa5e1239..a7ea9c8597a631f07302d68a008c7ab2168738e7 100644 (file)
@@ -3021,7 +3021,8 @@ PyUnicode_Decode(const char *s,
             return PyUnicode_DecodeUTF8Stateful(s, size, errors, NULL);
         else if ((strcmp(lower, "latin-1") == 0) ||
                  (strcmp(lower, "latin1") == 0) ||
-                 (strcmp(lower, "iso-8859-1") == 0))
+                 (strcmp(lower, "iso-8859-1") == 0) ||
+                 (strcmp(lower, "iso8859-1") == 0))
             return PyUnicode_DecodeLatin1(s, size, errors);
 #ifdef HAVE_MBCS
         else if (strcmp(lower, "mbcs") == 0)
@@ -3392,7 +3393,8 @@ PyUnicode_AsEncodedString(PyObject *unicode,
         }
         else if ((strcmp(lower, "latin-1") == 0) ||
                  (strcmp(lower, "latin1") == 0) ||
-                 (strcmp(lower, "iso-8859-1") == 0))
+                 (strcmp(lower, "iso-8859-1") == 0) ||
+                 (strcmp(lower, "iso8859-1") == 0))
             return _PyUnicode_AsLatin1String(unicode, errors);
 #ifdef HAVE_MBCS
         else if (strcmp(lower, "mbcs") == 0)