| /*********************************************************** | 
 | Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, | 
 | The Netherlands. | 
 |  | 
 |                         All Rights Reserved | 
 |  | 
 | Permission to use, copy, modify, and distribute this software and its  | 
 | documentation for any purpose and without fee is hereby granted,  | 
 | provided that the above copyright notice appear in all copies and that | 
 | both that copyright notice and this permission notice appear in  | 
 | supporting documentation, and that the names of Stichting Mathematisch | 
 | Centrum or CWI not be used in advertising or publicity pertaining to | 
 | distribution of the software without specific, written prior permission. | 
 |  | 
 | STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO | 
 | THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | 
 | FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE | 
 | FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | 
 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 
 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT | 
 | OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 
 |  | 
 | ******************************************************************/ | 
 |  | 
 | /* Macintosh Python main program for both applets and interpreter */ | 
 |  | 
 | #include <Resources.h> | 
 | #include <CodeFragments.h> | 
 |  | 
 | #ifdef __CFM68K__ | 
 | #pragma lib_export on | 
 | #endif | 
 |  | 
 | extern void PyMac_InitApplet(); | 
 | #ifdef USE_MAC_APPLET_SUPPORT | 
 | extern void PyMac_InitApplication(); | 
 | #endif /* USE_MAC_APPLET_SUPPORT */ | 
 |  | 
 |  | 
 | /* | 
 | ** Alternative initialization entry point for some very special cases. | 
 | ** Use this in stead of __initialize in the PEF settings to remember (and | 
 | ** re-open as resource file) the application. This is needed if we link against | 
 | ** a dynamic library that, in its own __initialize routine, opens a resource | 
 | ** file. This would mess up our finding of override preferences. | 
 | ** Only set this entrypoint in your apps if you notice sys.path or some such is | 
 | ** messed up. | 
 | */ | 
 | static int application_fss_valid; | 
 | static FSSpec application_fss; | 
 |  | 
 | OSErr pascal | 
 | __initialize_remember_app_fsspec(CFragInitBlockPtr data) | 
 | { | 
 | 	/* Call the MW runtime's initialization routine */ | 
 | 	__initialize(); | 
 | 	if ( data == nil ) return noErr; | 
 | 	if ( data->fragLocator.where == kDataForkCFragLocator ) { | 
 | 		application_fss = *data->fragLocator.u.onDisk.fileSpec; | 
 | 		application_fss_valid = 1; | 
 | 	} else if ( data->fragLocator.where == kResourceCFragLocator ) { | 
 | 		application_fss = *data->fragLocator.u.inSegs.fileSpec; | 
 | 		application_fss_valid = 1; | 
 | 	} | 
 | 	return noErr; | 
 | } | 
 |  | 
 | void | 
 | main() { | 
 | 	if ( application_fss_valid ) | 
 | 			(void)FSpOpenResFile(&application_fss, fsRdPerm); | 
 | #ifdef USE_MAC_APPLET_SUPPORT | 
 | 	{ | 
 |         Handle mainpyc; | 
 |  | 
 |         mainpyc = Get1NamedResource('PYC ', "\p__main__"); | 
 |         if (mainpyc != NULL) | 
 |                 PyMac_InitApplet(); | 
 |         else | 
 |                 PyMac_InitApplication(); | 
 |     } | 
 | #else | 
 | 	PyMac_InitApplication(); | 
 | #endif /* USE_MAC_APPLET_SUPPORT */ | 
 | } |