- Reorganized init code

- Fixed serious bug in code to get options from a resource
This commit is contained in:
Jack Jansen 1996-02-28 15:42:47 +00:00
parent dc1c64a148
commit 01fbc68896
5 changed files with 63 additions and 45 deletions

View File

@ -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));

View File

@ -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

View File

@ -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());

View File

@ -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;
{

View File

@ -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;