mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			137 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * 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 *************************/
 |