diff Python/importdl.c @ 43569:19319e70fc3e

Patch #1272, by Christian Heimes and Alexandre Vassalotti. Changes to make __file__ a proper Unicode object, using the default filesystem encoding. This is a bit tricky because the default filesystem encoding isn't set by the time we import the first modules; at that point we fudge things a bit. This is okay since __file__ isn't really used much except for error reporting. Tested on OSX and Linux only so far.
author Guido van Rossum <guido@python.org>
date Mon, 15 Oct 2007 02:52:41 +0000
parents 19611d101d23
children 50599bbb0c67
line wrap: on
line diff
--- a/Python/importdl.c	Mon Oct 15 02:40:08 2007 +0000
+++ b/Python/importdl.c	Mon Oct 15 02:52:41 2007 +0000
@@ -62,7 +62,9 @@
 		return NULL;
 	}
 	/* Remember the filename as the __file__ attribute */
-	if (PyModule_AddStringConstant(m, "__file__", pathname) < 0)
+	PyObject *path;
+	path = PyUnicode_DecodeFSDefault(pathname);
+	if (PyModule_AddObject(m, "__file__", path) < 0)
 		PyErr_Clear(); /* Not important enough to report */
 
 	if (_PyImport_FixupExtension(name, pathname) == NULL)