| /* | 
 |  * Generated with the GUSIConfig application and then hand-modified by jack. | 
 |  */ | 
 |  | 
 | #define GUSI_SOURCE | 
 | #include <GUSIConfig.h> | 
 | #include <sys/cdefs.h> | 
 | #include <Resources.h> | 
 |  | 
 | #include "Python.h" | 
 | #include "macglue.h" | 
 | #include "pythonresources.h" | 
 |  | 
 | 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 | 
 | 	GUSIwithInetSockets(); | 
 | #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() | 
 | { | 
 | 	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 */ | 
 | 		UseResFile(oldrh); | 
 | 		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. */ | 
 | 	GUSIConfiguration * config = | 
 | 		GUSIConfiguration::CreateInstance(resource_id); | 
 |  | 
 | 	/* Finally restore the old resource file */ | 
 |    	if ( prefrh != -1) CloseResFile(prefrh); | 
 | 	UseResFile(oldrh); | 
 |  | 
 | 	config->ConfigureDefaultTypeCreator('TEXT', 'R*ch'); | 
 | #if 0 | 
 | 	config->ConfigureSuffices( | 
 | 		sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices); | 
 | #endif | 
 | 	config->ConfigureAutoInitGraf(false); | 
 | 	config->ConfigureAutoSpin(false); | 
 | 	config->ConfigureHandleAppleEvents(false); | 
 | 	config->ConfigureSigInt(false); | 
 | 	config->ConfigureSigPipe(true); | 
 | 	 | 
 | 	GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin); | 
 |  | 
 | } | 
 |  | 
 | /**************** END GUSI CONFIGURATION *************************/ |