diff options
Diffstat (limited to 'Mac/Python/macshlglue.c')
-rw-r--r-- | Mac/Python/macshlglue.c | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/Mac/Python/macshlglue.c b/Mac/Python/macshlglue.c index 5db7567..58fe7fd 100644 --- a/Mac/Python/macshlglue.c +++ b/Mac/Python/macshlglue.c @@ -1,5 +1,15 @@ /* -** Mac shared lib glue. +** Shared library initialization code. +** +** This code calls the MetroWerks shared-library initialization code +** and performs one extra step: it remembers the FSSpec of the file +** we are loaded from, so we can later call PyMac_AddLibResources to +** add the file to our resource file chain. +** +** This file is needed for PythonCore and for any dynamically loaded +** module that has interesting resources in its .slb file. +** Use by replacing __initialize in the "CFM preferences" init field +** by __initialize_with_resources. */ #include <Quickdraw.h> @@ -8,26 +18,6 @@ #include <Files.h> #include <Resources.h> -#ifdef __MWERKS__ -#ifdef PRE_CW8 -/* -** This part is copied from MW Startup.c, which is -** Copyright © 1993 metrowerks inc. All Rights Reserved. -*/ -#include <setjmp.h> -#include <stdio.h> - -/* void *__local_destructor_chain; /* chain of local objects that need destruction */ - - /* public data */ - -QDGlobals qd; /* define the Quickdraw globals here! */ -jmp_buf __program_exit; /* exit() does a longjmp() to here */ -void (*__atexit_hook)(void); /* atexit() sets this up if it is ever called */ -void (*___atexit_hook)(void); /* _atexit() sets this up if it is ever called */ -int __aborting; /* abort() sets this and longjmps to __program_exit */ -#endif -#endif /* ** Variables passed from shared lib initialization to PyMac_AddLibResources. @@ -40,10 +30,11 @@ static FSSpec library_fss; ** loaded. We always return noErr (we just continue without the resources). */ OSErr pascal -PythonCore_init(InitBlockPtr data) +__initialize_with_resources(InitBlockPtr data) { /* Call the MW runtime's initialization routine */ -#ifdef __CFM68K__ +/* #ifdef __CFM68K__ */ +#if 1 __initialize(); #else __sinit(); |