diff options
Diffstat (limited to 'Mac')
-rw-r--r-- | Mac/mwerks/macuseshlstart.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Mac/mwerks/macuseshlstart.c b/Mac/mwerks/macuseshlstart.c new file mode 100644 index 0000000..d26a89f --- /dev/null +++ b/Mac/mwerks/macuseshlstart.c @@ -0,0 +1,29 @@ +/* +** mac __start for python-with-shared-library. +** +** Partially stolen from MW Startup.c, which is +** Copyright © 1993 metrowerks inc. All Rights Reserved. +*/ + +#include <setjmp.h> + +extern jmp_buf __program_exit; /* exit() does a longjmp() to here */ +extern void (*__atexit_hook)(void); /* atexit() sets this up if it is ever called */ +extern void (*___atexit_hook)(void); /* _atexit() sets this up if it is ever called */ +extern int __aborting; /* abort() sets this and longjmps to __program_exit */ + +void __start(void) +{ + char *argv = 0; + + if (setjmp(__program_exit) == 0) { // set up jmp_buf for exit() + main(0, &argv); // call main(argc, argv) + if (__atexit_hook) + __atexit_hook(); // call atexit() procs + } + if (!__aborting) { + if (___atexit_hook) + ___atexit_hook(); // call _atexit() procs + } +// ExitToShell(); +} |