summaryrefslogtreecommitdiff
path: root/Python/pythonrun.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-10-15 02:52:41 +0000
committerGuido van Rossum <guido@python.org>2007-10-15 02:52:41 +0000
commit57e386947415eb0a9767e98eb2ccd6e468d16186 (patch)
treec115de0172b5baae05eecae6039564dae432c31d /Python/pythonrun.c
parent3ab47d94f1b97e95ffccb8b2022bffc5e57fca99 (diff)
downloadcpython-57e386947415eb0a9767e98eb2ccd6e468d16186.tar.gz
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.
Diffstat (limited to 'Python/pythonrun.c')
-rw-r--r--Python/pythonrun.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index a37a3e4264..4e239c94ac 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -867,7 +867,8 @@ PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit,
return -1;
d = PyModule_GetDict(m);
if (PyDict_GetItemString(d, "__file__") == NULL) {
- PyObject *f = PyString_FromString(filename);
+ PyObject *f;
+ f = PyUnicode_DecodeFSDefault(filename);
if (f == NULL)
return -1;
if (PyDict_SetItemString(d, "__file__", f) < 0) {