| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Generated with the GUSIConfig application and then hand-modified by jack. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define GUSI_SOURCE
 | 
					
						
							|  |  |  | #include <GUSIConfig.h>
 | 
					
						
							|  |  |  | #include <sys/cdefs.h>
 | 
					
						
							| 
									
										
										
										
											2000-04-21 23:53:37 +00:00
										 |  |  | #include <Resources.h>
 | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "Python.h"
 | 
					
						
							|  |  |  | #include "macglue.h"
 | 
					
						
							| 
									
										
										
										
											2000-04-21 23:53:37 +00:00
										 |  |  | #include "pythonresources.h"
 | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							|  |  |  | PyMac_GUSISpin(bool wait) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	static Boolean	inForeground = true; | 
					
						
							|  |  |  | 	int		maxsleep = 6;	/* 6 ticks is "normal" sleeptime */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (PyMac_ConsoleIsDead) return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if ( !wait ) | 
					
						
							|  |  |  | 		maxsleep = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	PyMac_DoYield(maxsleep, 0); /* XXXX or is it safe to call python here? */ | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Declarations of Socket Factories */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __BEGIN_DECLS | 
					
						
							|  |  |  | void GUSIwithInetSockets(); | 
					
						
							|  |  |  | void GUSIwithLocalSockets(); | 
					
						
							|  |  |  | void GUSIwithMTInetSockets(); | 
					
						
							|  |  |  | void GUSIwithMTTcpSockets(); | 
					
						
							|  |  |  | void GUSIwithMTUdpSockets(); | 
					
						
							|  |  |  | void GUSIwithOTInetSockets(); | 
					
						
							|  |  |  | void GUSIwithOTTcpSockets(); | 
					
						
							|  |  |  | void GUSIwithOTUdpSockets(); | 
					
						
							|  |  |  | void GUSIwithPPCSockets(); | 
					
						
							|  |  |  | void GUSISetupFactories(); | 
					
						
							|  |  |  | __END_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Configure Socket Factories */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void GUSISetupFactories() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifdef GUSISetupFactories_BeginHook
 | 
					
						
							|  |  |  | 	GUSISetupFactories_BeginHook | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2000-08-17 20:04:26 +00:00
										 |  |  | #if 1 || TARGET_API_MAC_CARBON
 | 
					
						
							| 
									
										
										
										
											2000-08-17 20:01:24 +00:00
										 |  |  | 	GUSIwithInetSockets(); | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2000-05-10 15:15:54 +00:00
										 |  |  | 	GUSIwithMTInetSockets(); | 
					
						
							| 
									
										
										
										
											2000-08-17 20:01:24 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | #ifdef GUSISetupFactories_EndHook
 | 
					
						
							|  |  |  | 	GUSISetupFactories_EndHook | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Declarations of File Devices */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __BEGIN_DECLS | 
					
						
							|  |  |  | void GUSIwithDConSockets(); | 
					
						
							|  |  |  | void GUSIwithNullSockets(); | 
					
						
							|  |  |  | void GUSISetupDevices(); | 
					
						
							|  |  |  | __END_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Configure File Devices */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void GUSISetupDevices() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifdef GUSISetupDevices_BeginHook
 | 
					
						
							|  |  |  | 	GUSISetupDevices_BeginHook | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #ifdef GUSISetupDevices_EndHook
 | 
					
						
							|  |  |  | 	GUSISetupDevices_EndHook | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __cplusplus
 | 
					
						
							|  |  |  | #error GUSISetupConfig() needs to be written in C++
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GUSIConfiguration::FileSuffix	sSuffices[] = { | 
					
						
							|  |  |  | 	"", '????', '????' | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | extern "C" void GUSISetupConfig() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2000-04-21 23:53:37 +00:00
										 |  |  | 	Handle h; | 
					
						
							|  |  |  | 	short oldrh, prefrh = -1; | 
					
						
							|  |  |  | 	short resource_id = GUSIConfiguration::kNoResource; | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	oldrh = CurResFile(); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	/* Try override from the application resource fork */ | 
					
						
							|  |  |  | 	UseResFile(PyMac_AppRefNum); | 
					
						
							|  |  |  | 	h = Get1Resource('GU\267I', GUSIOPTIONSOVERRIDE_ID); | 
					
						
							|  |  |  | 	if ( h ) { | 
					
						
							|  |  |  | 		resource_id = GUSIOPTIONSOVERRIDE_ID; | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		/* Next try normal resource from preference file */ | 
					
						
							|  |  |  | 		prefrh = PyMac_OpenPrefFile(); | 
					
						
							|  |  |  | 		h = Get1Resource('GU\267I', GUSIOPTIONS_ID); | 
					
						
							|  |  |  | 		if ( h ) { | 
					
						
							|  |  |  | 			resource_id = GUSIOPTIONS_ID; | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			/* Finally try normal resource from application */ | 
					
						
							|  |  |  | 			if ( prefrh != -1 ) { | 
					
						
							|  |  |  | 				CloseResFile(prefrh); | 
					
						
							|  |  |  | 				prefrh = -1; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			resource_id = GUSIOPTIONS_ID; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* Now we have the right resource file topmost and the id. Init GUSI. */ | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | 	GUSIConfiguration * config = | 
					
						
							| 
									
										
										
										
											2000-04-21 23:53:37 +00:00
										 |  |  | 		GUSIConfiguration::CreateInstance(resource_id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* Finally restore the old resource file */ | 
					
						
							|  |  |  |    	if ( prefrh != -1) CloseResFile(prefrh); | 
					
						
							|  |  |  | 	UseResFile(oldrh); | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-08-17 20:01:24 +00:00
										 |  |  | 	config->ConfigureDefaultTypeCreator('TEXT', 'R*ch'); | 
					
						
							|  |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | 	config->ConfigureSuffices( | 
					
						
							|  |  |  | 		sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices); | 
					
						
							| 
									
										
										
										
											2000-08-17 20:01:24 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2000-04-07 09:10:49 +00:00
										 |  |  | 	config->ConfigureAutoInitGraf(false); | 
					
						
							|  |  |  | 	config->ConfigureAutoSpin(false); | 
					
						
							|  |  |  | 	config->ConfigureHandleAppleEvents(false); | 
					
						
							|  |  |  | 	config->ConfigureSigInt(false); | 
					
						
							|  |  |  | 	config->ConfigureSigPipe(true); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**************** END GUSI CONFIGURATION *************************/ |