summaryrefslogtreecommitdiffstats
path: root/continue.h
diff options
context:
space:
mode:
Diffstat (limited to 'continue.h')
-rw-r--r--continue.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/continue.h b/continue.h
index 3c213e0..e917314 100644
--- a/continue.h
+++ b/continue.h
@@ -64,9 +64,16 @@
# else /* ndef _CRAY1 */
# include <setjmp.h>
-# define jump_buf jmp_buf
-# define setjump setjmp
-# define longjump longjmp
+# include <signal.h>
+# ifdef SIG_UNBLOCK
+# define jump_buf sigjmp_buf
+# define setjump(buf) sigsetjmp((buf), !0)
+# define longjump siglongjmp
+# else
+# define jump_buf jmp_buf
+# define setjump setjmp
+# define longjump longjmp
+# endif /* ndef HAVE_SIGSETJMP */
# endif /* ndef _CRAY1 */
#endif /* ndef vax */
@@ -83,6 +90,9 @@
#ifdef THINK_C
# define SHORT_ALIGN
#endif
+#ifdef __MWERKS__
+# define SHORT_ALIGN
+#endif
#ifdef MSDOS
# define SHORT_ALIGN
#endif