summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
Diffstat (limited to 'Mac')
-rw-r--r--Mac/mwerks/macuseshlstart.c29
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();
+}