Moved macfsn hackery from macmain.c to macfsmodule.c so it loads
on demand instead of at startup.
This commit is contained in:
parent
e2ec3ebcb8
commit
ab57c7dcfc
|
@ -39,6 +39,9 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
|
||||
#include "getapplbycreator.h"
|
||||
|
||||
#include "pythonresources.h"
|
||||
extern PyMac_PrefRecord PyMac_options;
|
||||
|
||||
#ifdef USE_TOOLBOX_OBJECT_GLUE
|
||||
extern int _PyMac_GetFSSpec(PyObject *, FSSpec *);
|
||||
extern PyObject *_PyMac_BuildFSSpec(FSSpec *);
|
||||
|
@ -1206,6 +1209,33 @@ PyObject *PyMac_BuildFSSpec(FSSpec *v)
|
|||
return (PyObject *)newmfssobject(v);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** Import the macfsn module, which will override the Standard File
|
||||
** calls in the macfs builtin module by Navigation Services versions,
|
||||
** if available on this machine.
|
||||
*/
|
||||
static void
|
||||
PyMac_InstallNavServicesForSF(void)
|
||||
{
|
||||
if ( !PyMac_options.nonavservice ) {
|
||||
PyObject *m = PyImport_ImportModule("macfsn");
|
||||
|
||||
if ( m == NULL ) {
|
||||
PySys_WriteStderr("'import macfsn' failed; ");
|
||||
if (Py_VerboseFlag) {
|
||||
PySys_WriteStderr("traceback:\n");
|
||||
PyErr_Print();
|
||||
}
|
||||
else {
|
||||
PySys_WriteStderr("use -v for traceback\n");
|
||||
}
|
||||
PyErr_Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Initialization function for the module (*must* be called initmacfs) */
|
||||
|
||||
void
|
||||
|
@ -1235,5 +1265,6 @@ initmacfs(void)
|
|||
Mfsitype.ob_type = &PyType_Type;
|
||||
Py_INCREF(&Mfsitype);
|
||||
PyDict_SetItemString(d, "FInfoType", (PyObject *)&Mfsitype);
|
||||
/* XXXX Add constants here */
|
||||
|
||||
PyMac_InstallNavServicesForSF();
|
||||
}
|
||||
|
|
|
@ -392,31 +392,6 @@ run_inspect(void)
|
|||
return sts;
|
||||
}
|
||||
|
||||
/*
|
||||
** Import the macfsn module, which will override the Standard File
|
||||
** calls in the macfs builtin module by Navigation Services versions,
|
||||
** if available on this machine.
|
||||
*/
|
||||
static void
|
||||
PyMac_InstallNavServicesForSF(void)
|
||||
{
|
||||
if ( !PyMac_options.nonavservice ) {
|
||||
PyObject *m = PyImport_ImportModule("macfsn");
|
||||
|
||||
if ( m == NULL ) {
|
||||
PySys_WriteStderr("'import macfsn' failed; ");
|
||||
if (Py_VerboseFlag) {
|
||||
PySys_WriteStderr("traceback:\n");
|
||||
PyErr_Print();
|
||||
}
|
||||
else {
|
||||
PySys_WriteStderr("use -v for traceback\n");
|
||||
}
|
||||
PyErr_Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_MAC_APPLET_SUPPORT
|
||||
/* Applet support */
|
||||
|
||||
|
@ -464,7 +439,6 @@ PyMac_InitApplet(void)
|
|||
init_common(&argc, &argv, 0);
|
||||
|
||||
Py_Initialize();
|
||||
PyMac_InstallNavServicesForSF();
|
||||
PySys_SetArgv(argc, argv);
|
||||
|
||||
err = run_main_resource();
|
||||
|
@ -488,7 +462,6 @@ PyMac_Initialize(void)
|
|||
|
||||
init_common(&argc, &argv, 1);
|
||||
Py_Initialize();
|
||||
PyMac_InstallNavServicesForSF();
|
||||
PySys_SetArgv(argc, argv);
|
||||
}
|
||||
|
||||
|
@ -675,8 +648,6 @@ Py_Main(int argc, char **argv, char *filename)
|
|||
|
||||
PyUnicode_SetDefaultEncoding(PyMac_getscript());
|
||||
|
||||
PyMac_InstallNavServicesForSF();
|
||||
|
||||
PySys_SetArgv(argc, argv);
|
||||
|
||||
if (filename == NULL && isatty((int)fileno(fp))) {
|
||||
|
|
Loading…
Reference in New Issue