diff Python/compile.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 b06b191b7cfa
children 0d462d789b18
line wrap: on
line diff
--- a/Python/compile.c	Mon Oct 15 02:40:08 2007 +0000
+++ b/Python/compile.c	Mon Oct 15 02:52:41 2007 +0000
@@ -1247,7 +1247,7 @@
 				PyObject_REPR(name), 
 				PyString_AS_STRING(c->u->u_name), 
 				reftype, arg,
-				PyString_AS_STRING(co->co_name),
+				PyUnicode_AsString(co->co_name),
 				PyObject_REPR(co->co_freevars));
 			Py_FatalError("compiler_make_closure()");
 		}
@@ -4001,7 +4001,7 @@
 	freevars = dict_keys_inorder(c->u->u_freevars, PyTuple_Size(cellvars));
 	if (!freevars)
 	    goto error;
-	filename = PyString_FromString(c->c_filename);
+	filename = PyUnicode_DecodeFSDefault(c->c_filename);
 	if (!filename)
 		goto error;