summaryrefslogtreecommitdiffstats
path: root/Python/bltinmodule.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2000-08-27 19:21:52 (GMT)
committerGuido van Rossum <guido@python.org>2000-08-27 19:21:52 (GMT)
commit0df002c45b0bf2bf23bb8c0a395e86f907a94d81 (patch)
tree2812bdefa81aca791ce27544f424271e5f857c67 /Python/bltinmodule.c
parent2f15b25da2060ab723e0bb82a8f4f713d547b2b8 (diff)
downloadcpython-0df002c45b0bf2bf23bb8c0a395e86f907a94d81.zip
cpython-0df002c45b0bf2bf23bb8c0a395e86f907a94d81.tar.gz
cpython-0df002c45b0bf2bf23bb8c0a395e86f907a94d81.tar.bz2
Add three new APIs: PyRun_AnyFileEx(), PyRun_SimpleFileEx(),
PyRun_FileEx(). These are the same as their non-Ex counterparts but have an extra argument, a flag telling them to close the file when done. Then this is used by Py_Main() and execfile() to close the file after it is parsed but before it is executed. Adding APIs seems strange given the feature freeze but it's the only way I see to close the bug report without incompatible changes. [ Bug #110616 ] source file stays open after parsing is done (PR#209)
Diffstat (limited to 'Python/bltinmodule.c')
-rw-r--r--Python/bltinmodule.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index ea1269e..c2a7499 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -815,10 +815,7 @@ builtin_execfile(PyObject *self, PyObject *args)
PyErr_SetFromErrno(PyExc_IOError);
return NULL;
}
- res = PyRun_File(fp, filename, Py_file_input, globals, locals);
- Py_BEGIN_ALLOW_THREADS
- fclose(fp);
- Py_END_ALLOW_THREADS
+ res = PyRun_FileEx(fp, filename, Py_file_input, globals, locals, 1);
return res;
}