From 01fbc688967f4d68e2a080dd0de56c582e220432 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Wed, 28 Feb 1996 15:42:47 +0000 Subject: - Reorganized init code - Fixed serious bug in code to get options from a resource --- Mac/Include/pythonresources.h | 6 ++++ Mac/Python/macapplication.c | 3 -- Mac/Python/macgetargv.c | 19 ------------ Mac/Python/macgetpath.c | 10 +++---- Mac/Python/macmain.c | 70 ++++++++++++++++++++++++++++++++----------- 5 files changed, 63 insertions(+), 45 deletions(-) diff --git a/Mac/Include/pythonresources.h b/Mac/Include/pythonresources.h index ca00a23..49e909f 100644 --- a/Mac/Include/pythonresources.h +++ b/Mac/Include/pythonresources.h @@ -75,4 +75,10 @@ #define POPT_DEBUGGING 4 #define POPT_KEEPNORM 5 #define POPT_KEEPERR 6 + +/* From macgetpath.c: */ +void PyMac_PreferenceOptions Py_PROTO((int *inspect, int *verbose, int *suppress_print, + int *unbuffered, int *debugging, int *keep_normal, + int *keep_error)); + diff --git a/Mac/Python/macapplication.c b/Mac/Python/macapplication.c index 5d7bc83..0028741 100644 --- a/Mac/Python/macapplication.c +++ b/Mac/Python/macapplication.c @@ -31,9 +31,6 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. extern void PyMac_InitApplication(); main() { -#if defined(USE_GUSI) - GUSIDefaultSetup(); -#endif #if defined(__MWERKS__) && defined(__CFM68K__) printf("Hello, world!\n"); #endif diff --git a/Mac/Python/macgetargv.c b/Mac/Python/macgetargv.c index 90cdb5a..96a02fd 100644 --- a/Mac/Python/macgetargv.c +++ b/Mac/Python/macgetargv.c @@ -295,31 +295,12 @@ event_loop() } } -/* Initialize the Mac toolbox world */ - -static void -init_mac_world() -{ -#ifdef THINK_C - printf("\n"); -#else - MaxApplZone(); - InitGraf(&qd.thePort); - InitFonts(); - InitWindows(); - TEInit(); - InitDialogs((long)0); - InitMenus(); - InitCursor(); -#endif -} /* Get the argv vector, return argc */ int PyMac_GetArgv(pargv) char ***pargv; { - init_mac_world(); arg_count = 0; arg_vector[arg_count++] = strdup(get_application_name()); diff --git a/Mac/Python/macgetpath.c b/Mac/Python/macgetpath.c index b782736..38feb3e 100644 --- a/Mac/Python/macgetpath.c +++ b/Mac/Python/macgetpath.c @@ -43,9 +43,9 @@ getpythonpath() char *curwd; char *p, *endp; int newlen; - extern char *PyMac_GetPythonDir(); + staticforward char *PyMac_GetPythonDir(); #ifndef USE_BUILTIN_PATH - extern char *PyMac_GetPythonPath(); + staticforward char *PyMac_GetPythonPath(); #endif if ( pythonpath ) return pythonpath; @@ -89,7 +89,7 @@ getpythonpath() /* ** Open/create the Python Preferences file, return the handle */ -short +static short PyMac_OpenPrefFile() { AliasHandle handle; @@ -142,7 +142,7 @@ PyMac_OpenPrefFile() /* ** Return the name of the Python directory */ -char * +static char * PyMac_GetPythonDir() { static char name[256]; @@ -187,7 +187,7 @@ PyMac_GetPythonDir() } #ifndef USE_BUILTIN_PATH -char * +static char * PyMac_GetPythonPath(dir) char *dir; { diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c index ecaa018..3d878ed 100644 --- a/Mac/Python/macmain.c +++ b/Mac/Python/macmain.c @@ -68,6 +68,54 @@ static int orig_argc; static int keep_normal; static int keep_error = 1; +/* Initialize the Mac toolbox world */ + +static void +init_mac_world() +{ +#ifdef THINK_C + printf("\n"); +#else + MaxApplZone(); + InitGraf(&qd.thePort); + InitFonts(); + InitWindows(); + TEInit(); + InitDialogs((long)0); + InitMenus(); + InitCursor(); +#endif +} + +/* Initialization code shared by interpreter and applets */ + +static void +init_common() +{ + + /* Initialize toolboxes */ + init_mac_world(); + +#ifdef USE_MAC_SHARED_LIBRARY + /* Add the shared library to the stack of resource files */ + PyMac_AddLibResources(); +#endif + +#if defined(USE_GUSI) + /* Setup GUSI */ + GUSIDefaultSetup(); +#endif + +#ifdef USE_SIOUX + /* Set various SIOUX flags. Some are changed later based on options */ + SIOUXSettings.asktosaveonclose = 0; + SIOUXSettings.showstatusline = 0; + SIOUXSettings.tabspaces = 4; +#endif + +} + + #ifdef USE_MAC_APPLET_SUPPORT /* Applet support */ @@ -112,14 +160,7 @@ PyMac_InitApplet() char **argv; int err; -#ifdef USE_MAC_SHARED_LIBRARY - PyMac_AddLibResources(); -#endif -#ifdef USE_SIOUX - SIOUXSettings.asktosaveonclose = 0; - SIOUXSettings.showstatusline = 0; - SIOUXSettings.tabspaces = 4; -#endif + init_common(); argc = PyMac_GetArgv(&argv); Py_Initialize(); PySys_SetArgv(argc, argv); @@ -139,14 +180,7 @@ PyMac_InitApplication() int argc; char **argv; -#ifdef USE_MAC_SHARED_LIBRARY - PyMac_AddLibResources(); -#endif -#ifdef USE_SIOUX - SIOUXSettings.asktosaveonclose = 0; - SIOUXSettings.showstatusline = 0; - SIOUXSettings.tabspaces = 4; -#endif + init_common(); argc = PyMac_GetArgv(&argv); if ( argc > 1 ) { /* We're running a script. Attempt to change current directory */ @@ -181,8 +215,8 @@ PyMac_InteractiveOptions(int *inspect, int *verbose, int *suppress_print, /* Default-defaults: */ *keep_error = 1; /* Get default settings from our preference file */ - PyMac_PreferenceOptions(&inspect, &Py_VerboseFlag, &Py_SuppressPrintingFlag, - &unbuffered, &Py_DebugFlag, &keep_normal, &keep_error); + PyMac_PreferenceOptions(inspect, verbose, suppress_print, + unbuffered, debugging, keep_normal, keep_error); /* If option is pressed override these */ GetKeys(rmap); map = (unsigned char *)rmap; -- cgit v0.12