summaryrefslogtreecommitdiffstats
path: root/generic/tcl.h
diff options
context:
space:
mode:
authorjan <jan>2011-04-20 00:01:54 (GMT)
committerjan <jan>2011-04-20 00:01:54 (GMT)
commitb99b0b6866dfddd102e496aa634c4b940ace19d7 (patch)
tree3311ff091a6d8a60128e5ab87c48ea95450f51bd /generic/tcl.h
parenta6a5cd0c448ed7eab1edf7e9812853b9111593d5 (diff)
downloadtcl-b99b0b6866dfddd102e496aa634c4b940ace19d7.zip
tcl-b99b0b6866dfddd102e496aa634c4b940ace19d7.tar.gz
tcl-b99b0b6866dfddd102e496aa634c4b940ace19d7.tar.bz2
fix for [Bug 3288345]: Wrong Tcl_StatBuf used on MinGW. Follow-up: get it right for cygwin and WIN64 as well.
Diffstat (limited to 'generic/tcl.h')
-rw-r--r--generic/tcl.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index a98b685..264363d 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -372,17 +372,19 @@ typedef long LONG;
*/
#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
-# if defined(__WIN32__)
+# if defined(__WIN32__) && !defined(__CYGWIN__)
# define TCL_WIDE_INT_TYPE __int64
# ifdef __BORLANDC__
typedef struct stati64 Tcl_StatBuf;
# define TCL_LL_MODIFIER "L"
# define TCL_LL_MODIFIER_SIZE 1
# else /* __BORLANDC__ */
-# if (defined(_MSC_VER) && (_MSC_VER < 1400)) || !defined(_M_IX86)
+# if defined(_WIN64)
+typedef struct _stat64 Tcl_StatBuf;
+# elif (defined(_MSC_VER) && (_MSC_VER < 1400))
typedef struct _stati64 Tcl_StatBuf;
# else
-typedef struct _stat64 Tcl_StatBuf;
+typedef struct _stat32i64 Tcl_StatBuf;
# endif /* _MSC_VER < 1400 */
# define TCL_LL_MODIFIER "I64"
# define TCL_LL_MODIFIER_SIZE 3