summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1996-02-28 15:42:47 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1996-02-28 15:42:47 (GMT)
commit01fbc688967f4d68e2a080dd0de56c582e220432 (patch)
tree08f786705dc11d6c25fb733ff7d5996500d4f2e0
parentdc1c64a148cc8b1ec57bf72020b001221fe62bb0 (diff)
downloadcpython-01fbc688967f4d68e2a080dd0de56c582e220432.zip
cpython-01fbc688967f4d68e2a080dd0de56c582e220432.tar.gz
cpython-01fbc688967f4d68e2a080dd0de56c582e220432.tar.bz2
- Reorganized init code
- Fixed serious bug in code to get options from a resource
-rw-r--r--Mac/Include/pythonresources.h6
-rw-r--r--Mac/Python/macapplication.c3
-rw-r--r--Mac/Python/macgetargv.c19
-rw-r--r--Mac/Python/macgetpath.c10
-rw-r--r--Mac/Python/macmain.c70
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;