- Reorganized init code
- Fixed serious bug in code to get options from a resource
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 @@
 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 @@
 	}
 }
 
-/* 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 @@
 	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 @@
 /*
 ** Open/create the Python Preferences file, return the handle
 */
-short
+static short
 PyMac_OpenPrefFile()
 {
     AliasHandle handle;
@@ -142,7 +142,7 @@
 /*
 ** Return the name of the Python directory
 */
-char *
+static char *
 PyMac_GetPythonDir()
 {
     static char name[256];
@@ -187,7 +187,7 @@
 }
 
 #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 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 @@
 	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 @@
 	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 @@
 	/* 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;