Ehm, three unrelated changes.
- Add Py_FrozenFlag, intended to suppress error messages fron getpath.c in frozen binaries. - Add Py_GetPythonHome() and Py_SetPythonHome(), intended to allow embedders to force a different PYTHONHOME. - Add new interface PyErr_PrintEx(flag); same as PyErr_Print() but flag determines whether sys.last_* are set or not. PyErr_Print() now simply calls PyErr_PrintEx(1).
This commit is contained in:
parent
31c4ed75fc
commit
a61691e4e9
|
@ -77,6 +77,7 @@ int Py_VerboseFlag; /* Needed by import.c */
|
||||||
int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
|
int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
|
||||||
int Py_NoSiteFlag; /* Suppress 'import site' */
|
int Py_NoSiteFlag; /* Suppress 'import site' */
|
||||||
int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c */
|
int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c */
|
||||||
|
int Py_FrozenFlag; /* Needed by getpath.c */
|
||||||
|
|
||||||
static int initialized = 0;
|
static int initialized = 0;
|
||||||
|
|
||||||
|
@ -367,6 +368,24 @@ Py_GetProgramName()
|
||||||
return progname;
|
return progname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *default_home = NULL;
|
||||||
|
|
||||||
|
void
|
||||||
|
Py_SetPythonHome(home)
|
||||||
|
char *home;
|
||||||
|
{
|
||||||
|
default_home = home;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
Py_GetPythonHome()
|
||||||
|
{
|
||||||
|
char *home = default_home;
|
||||||
|
if (home == NULL)
|
||||||
|
home = getenv("PYTHONHOME");
|
||||||
|
return home;
|
||||||
|
}
|
||||||
|
|
||||||
/* Create __main__ module */
|
/* Create __main__ module */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -640,6 +659,13 @@ finally:
|
||||||
|
|
||||||
void
|
void
|
||||||
PyErr_Print()
|
PyErr_Print()
|
||||||
|
{
|
||||||
|
PyErr_PrintEx(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PyErr_PrintEx(set_sys_last_vars)
|
||||||
|
int set_sys_last_vars;
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
PyObject *exception, *v, *tb, *f;
|
PyObject *exception, *v, *tb, *f;
|
||||||
|
@ -679,9 +705,11 @@ PyErr_Print()
|
||||||
Py_Exit(1);
|
Py_Exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PySys_SetObject("last_type", exception);
|
if (set_sys_last_vars) {
|
||||||
PySys_SetObject("last_value", v);
|
PySys_SetObject("last_type", exception);
|
||||||
PySys_SetObject("last_traceback", tb);
|
PySys_SetObject("last_value", v);
|
||||||
|
PySys_SetObject("last_traceback", tb);
|
||||||
|
}
|
||||||
f = PySys_GetObject("stderr");
|
f = PySys_GetObject("stderr");
|
||||||
if (f == NULL)
|
if (f == NULL)
|
||||||
fprintf(stderr, "lost sys.stderr\n");
|
fprintf(stderr, "lost sys.stderr\n");
|
||||||
|
|
Loading…
Reference in New Issue