| 
									
										
										
										
											1995-02-24 22:53:16 +00:00
										 |  |  | /***********************************************************
 | 
					
						
							| 
									
										
										
										
											1997-01-31 16:15:11 +00:00
										 |  |  | Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, | 
					
						
							| 
									
										
										
										
											1995-02-24 22:53:16 +00:00
										 |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ******************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-02-15 21:33:34 +00:00
										 |  |  | /* Macintosh Python main program for both applets and interpreter */ | 
					
						
							| 
									
										
										
										
											1995-02-24 22:53:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-02-15 21:33:34 +00:00
										 |  |  | #include <Resources.h>
 | 
					
						
							| 
									
										
										
										
											2000-01-07 14:53:31 +00:00
										 |  |  | #include <CodeFragments.h>
 | 
					
						
							| 
									
										
										
										
											1999-02-15 21:33:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-11 21:16:03 +00:00
										 |  |  | extern void PyMac_InitApplication(void); | 
					
						
							| 
									
										
										
										
											1999-02-15 23:34:56 +00:00
										 |  |  | #ifdef USE_MAC_APPLET_SUPPORT
 | 
					
						
							| 
									
										
										
										
											2000-07-11 21:16:03 +00:00
										 |  |  | extern void PyMac_InitApplet(void); | 
					
						
							| 
									
										
										
										
											1999-02-15 23:34:56 +00:00
										 |  |  | #endif /* USE_MAC_APPLET_SUPPORT */
 | 
					
						
							| 
									
										
										
										
											1995-02-24 22:53:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-11 21:16:03 +00:00
										 |  |  | /* From the MSL runtime: */ | 
					
						
							|  |  |  | extern void __initialize(void); | 
					
						
							| 
									
										
										
										
											2000-01-07 14:53:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  | ** 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; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-08-19 11:38:03 +00:00
										 |  |  | void | 
					
						
							| 
									
										
										
										
											1995-02-24 22:53:16 +00:00
										 |  |  | main() { | 
					
						
							| 
									
										
										
										
											2000-01-07 14:53:31 +00:00
										 |  |  | 	if ( application_fss_valid ) | 
					
						
							|  |  |  | 			(void)FSpOpenResFile(&application_fss, fsRdPerm); | 
					
						
							| 
									
										
										
										
											1999-02-15 23:34:56 +00:00
										 |  |  | #ifdef USE_MAC_APPLET_SUPPORT
 | 
					
						
							| 
									
										
										
										
											2000-01-07 14:53:31 +00:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											1999-02-15 21:33:34 +00:00
										 |  |  |         Handle mainpyc; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         mainpyc = Get1NamedResource('PYC ', "\p__main__"); | 
					
						
							|  |  |  |         if (mainpyc != NULL) | 
					
						
							|  |  |  |                 PyMac_InitApplet(); | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |                 PyMac_InitApplication(); | 
					
						
							| 
									
										
										
										
											2000-01-07 14:53:31 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											1999-02-15 23:34:56 +00:00
										 |  |  | #else
 | 
					
						
							|  |  |  | 	PyMac_InitApplication(); | 
					
						
							|  |  |  | #endif /* USE_MAC_APPLET_SUPPORT */
 | 
					
						
							| 
									
										
										
										
											1995-02-24 22:53:16 +00:00
										 |  |  | } |