diff Python/codecs.c @ 42025:36b8d74deb9e

Short-cut lookup of utf-8 codec, to make import work on OSX.
author Martin v. Löwis <martin@v.loewis.de>
date Mon, 11 Jun 2007 04:19:13 +0000
parents 089f449a20cd
children 3473a685e5e7
line wrap: on
line diff
--- a/Python/codecs.c	Sun Jun 10 21:13:34 2007 +0000
+++ b/Python/codecs.c	Mon Jun 11 04:19:13 2007 +0000
@@ -319,6 +319,23 @@
     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;