summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan <jan>2011-04-21 21:15:23 (GMT)
committerjan <jan>2011-04-21 21:15:23 (GMT)
commit3d68e9781710f7ffb984a7e6ec2105ca91dccb92 (patch)
treeb15b383b0f866020c5c0c9cf1fa3ecb992ffc12e
parent97ca190e3033a85ba2f074151fbedb986b531def (diff)
parent869f829101ea038744766b33e8a5d362f1cf21ee (diff)
downloadtcl-3d68e9781710f7ffb984a7e6ec2105ca91dccb92.zip
tcl-3d68e9781710f7ffb984a7e6ec2105ca91dccb92.tar.gz
tcl-3d68e9781710f7ffb984a7e6ec2105ca91dccb92.tar.bz2
[Bug 3288345]: Bring cygwin Tcl_StatBuf a little bit closer to reality
-rw-r--r--generic/tcl.h2
-rw-r--r--win/tclWinFile.c3
-rw-r--r--win/tclWinPort.h12
3 files changed, 13 insertions, 4 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index 73a8932..ee263d8 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -373,7 +373,7 @@ 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;
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index a772015..df1c25b 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -12,6 +12,9 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
+#ifndef _WIN64
+# define _USE_32BIT_TIME_T
+#endif
#include "tclWinInt.h"
#include "tclFileSystem.h"
#include <winioctl.h>
diff --git a/win/tclWinPort.h b/win/tclWinPort.h
index 9c9831c..a3e5830 100644
--- a/win/tclWinPort.h
+++ b/win/tclWinPort.h
@@ -117,17 +117,23 @@
*/
#if !defined(__BORLANDC__) && !defined(_MSC_VER) && !defined(_WIN64) && !defined(HAVE_STRUCT_STAT32I64)
struct _stat32i64 {
- _dev_t st_dev;
- _ino_t st_ino;
+ dev_t st_dev;
+ ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
- _dev_t st_rdev;
+ dev_t st_rdev;
__int64 st_size;
+#ifdef __CYGWIN__
+ struct {long tv_sec;} st_atim;
+ struct {long tv_sec;} st_mtim;
+ struct {long tv_sec;} st_ctim;
+#else
long st_atime;
long st_mtime;
long st_ctime;
+#endif
};
#endif