]> granicus.if.org Git - python/commitdiff
Short-cut lookup of utf-8 codec, to make import work
authorMartin v. Löwis <martin@v.loewis.de>
Mon, 11 Jun 2007 04:19:13 +0000 (04:19 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Mon, 11 Jun 2007 04:19:13 +0000 (04:19 +0000)
on OSX.

Python/codecs.c

index 3aa1f386e7be9aebc948ac4e20ef3b8f8c6ca6b2..1ba600912262896766812815400540dc012fadc1 100644 (file)
@@ -319,6 +319,23 @@ PyObject *PyCodec_Encode(PyObject *object,
     PyObject *args = NULL, *result = NULL;
     PyObject *v;
 
+    /* XXX short-cut a few common file system 
+       encodings for now, as otherwise the import
+       code can't load the codec registry. */
+    if (strcmp(encoding, "utf-8") == 0 && PyUnicode_Check(object)) {
+       return PyUnicode_EncodeUTF8(PyUnicode_AS_UNICODE(object),
+                                   PyUnicode_GET_SIZE(object),
+                                   errors);
+    }
+#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
+    if (strcmp(encoding, "mbcs") == 0 && PyUnicode_Check(object)) {
+       return PyUnicode_EncodeMBCS(PyUnicode_AS_UNICODE(object),
+                                   PyUnicode_GET_SIZE(object),
+                                   errors);
+    }
+#endif
+
+
     encoder = PyCodec_Encoder(encoding);
     if (encoder == NULL)
        goto onError;