0
0
mirror of https://github.com/python/cpython.git synced 2024-12-01 03:01:36 +01:00
cpython/Mac/Python/gusiconfig.cpp

138 lines
3.0 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 *************************/