2 ** Mac shared lib glue.
13 ** This part is copied from MW Startup.c, which is
14 ** Copyright © 1993 metrowerks inc. All Rights Reserved.
19 void *__local_destructor_chain
; /* chain of local objects that need destruction */
23 QDGlobals qd
; /* define the Quickdraw globals here! */
24 jmp_buf __program_exit
; /* exit() does a longjmp() to here */
25 void (*__atexit_hook
)(void); /* atexit() sets this up if it is ever called */
26 void (*___atexit_hook
)(void); /* _atexit() sets this up if it is ever called */
27 int __aborting
; /* abort() sets this and longjmps to __program_exit */
31 ** Variables passed from shared lib initialization to PyMac_AddLibResources.
33 static int library_fss_valid
;
34 static FSSpec library_fss
;
37 ** Routine called upon fragment load. We attempt to save the FSSpec from which we're
38 ** loaded. We always return noErr (we just continue without the resources).
41 __sinit(InitBlockPtr data
)
43 if ( data
== nil
) return noErr
;
44 if ( data
->fragLocator
.where
== kOnDiskFlat
) {
45 library_fss
= *data
->fragLocator
.u
.onDisk
.fileSpec
;
46 library_fss_valid
= 1;
47 } else if ( data
->fragLocator
.where
== kOnDiskSegmented
) {
48 library_fss
= *data
->fragLocator
.u
.inSegs
.fileSpec
;
49 library_fss_valid
= 1;
55 ** Insert the library resources into the search path. Put them after
56 ** the resources from the application (which we assume is the current
57 ** resource file). Again, we ignore errors.
60 PyMac_AddLibResources()
65 if ( !library_fss_valid
)
67 fd
= FSpOpenResFile(&library_fss
, fsRdPerm
);