Mercurial > cpython-lru_cache-weakref
view Mac/Python/gusiconfig.cpp @ 12654:6b143ca4fd7f legacy-trunk
GUSI 2.0.5 has a non-functional getsockname() if you use Open Transport. For now the workaround is to only enable MacTCP sockets.
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Wed, 10 May 2000 15:15:54 +0000 |
| parents | e367ad3ea59a |
| children | a8afefc4fced |
line wrap: on
line source
/* * 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(); GUSIwithMTInetSockets(); #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 */ 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('ttxt', 'TEXT'); config->ConfigureSuffices( sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices); config->ConfigureAutoInitGraf(false); config->ConfigureAutoSpin(false); config->ConfigureHandleAppleEvents(false); config->ConfigureSigInt(false); config->ConfigureSigPipe(true); GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin); } /**************** END GUSI CONFIGURATION *************************/
