Index: Python/pythonrun.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/pythonrun.c,v retrieving revision 2.183 diff -u -d -r2.183 pythonrun.c --- Python/pythonrun.c 10 Apr 2003 21:53:14 -0000 2.183 +++ Python/pythonrun.c 11 Apr 2003 16:04:50 -0000 @@ -701,6 +701,7 @@ { PyObject *m, *d, *v; const char *ext; + int clear_file = 0; m = PyImport_AddModule("__main__"); if (m == NULL) @@ -714,6 +715,7 @@ Py_DECREF(f); return -1; } + clear_file = 1; Py_DECREF(f); } ext = filename + strlen(filename) - 4; @@ -723,6 +725,9 @@ fclose(fp); if ((fp = fopen(filename, "rb")) == NULL) { fprintf(stderr, "python: Can't reopen .pyc file\n"); + if (clear_file + && PyDict_DelItemString(d, "__file__") < 0) + PyErr_Clear(); return -1; } /* Turn on optimization if a .pyo file is given */ @@ -735,10 +740,14 @@ } if (v == NULL) { PyErr_Print(); + if (clear_file && PyDict_DelItemString(d, "__file__") < 0) + PyErr_Clear(); return -1; } Py_DECREF(v); if (Py_FlushLine()) + PyErr_Clear(); + if (clear_file && PyDict_DelItemString(d, "__file__") < 0) PyErr_Clear(); return 0; }