summaryrefslogtreecommitdiffstats
path: root/win/tclWinInt.h
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-10-02 08:08:10 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-10-02 08:08:10 (GMT)
commit548a9adad7f576388cea59eeb7c057568f512195 (patch)
treeca0473f739d061bb6354d7025f33a767047c1478 /win/tclWinInt.h
parentb7a78b298890c157bd8b320d9b7db18a5c210d79 (diff)
parentab9b922b76e5a364b81263128b3231b5bbd85c36 (diff)
downloadtcl-548a9adad7f576388cea59eeb7c057568f512195.zip
tcl-548a9adad7f576388cea59eeb7c057568f512195.tar.gz
tcl-548a9adad7f576388cea59eeb7c057568f512195.tar.bz2
Fix compilation with latest MinGW-w64 version 3.0: Conflict on EXCEPTION_REGISTRATION typedef, which means something completely different in MinGW-w64.
Diffstat (limited to 'win/tclWinInt.h')
-rw-r--r--win/tclWinInt.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/win/tclWinInt.h b/win/tclWinInt.h
index 882b811..c7066bb 100644
--- a/win/tclWinInt.h
+++ b/win/tclWinInt.h
@@ -14,6 +14,23 @@
#include "tclInt.h"
+#ifdef HAVE_NO_SEH
+/*
+ * Unlike Borland and Microsoft, we don't register exception handlers by
+ * pushing registration records onto the runtime stack. Instead, we register
+ * them by creating an TCLEXCEPTION_REGISTRATION within the activation record.
+ */
+
+typedef struct TCLEXCEPTION_REGISTRATION {
+ struct TCLEXCEPTION_REGISTRATION *link;
+ EXCEPTION_DISPOSITION (*handler)(
+ struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
+ void *ebp;
+ void *esp;
+ int status;
+} TCLEXCEPTION_REGISTRATION;
+#endif
+
/*
* Some versions of Borland C have a define for the OSVERSIONINFO for
* Win32s and for NT, but not for Windows 95.