Alternative fix for T38753, use existing __file__ in namespace

This commit is contained in:
2014-03-06 03:27:14 +11:00
committed by Campbell Barton
parent 4f1a6eb96f
commit a8dc5b274b

View File

@@ -496,19 +496,11 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text,
* incompatible'.
* So now we load the script file data to a buffer */
{
PyObject *py_dict_local, *fn_py;
const char *pystring = "with open(fn, 'r') as f: exec(f.read())";
const char *pystring = "with open(__file__, 'r') as f: exec(f.read())";
fclose(fp);
py_dict_local = PyDict_New();
fn_py = PyC_UnicodeFromByte(fn);
PyDict_SetItemString(py_dict_local, "fn", fn_py);
Py_DECREF(fn_py);
py_result = PyRun_String(pystring, Py_file_input, py_dict, py_dict_local);
Py_DECREF(py_dict_local);
py_result = PyRun_String(pystring, Py_file_input, py_dict, py_dict);
}
#else
py_result = PyRun_File(fp, fn, Py_file_input, py_dict, py_dict);