summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan <jan>2011-04-21 21:13:14 (GMT)
committerjan <jan>2011-04-21 21:13:14 (GMT)
commit869f829101ea038744766b33e8a5d362f1cf21ee (patch)
treee719889bb81c852a69a71fe75bd951d8899a7fe4
parent8bcda731ae34f234a8894fe1f2de0d06ce951b72 (diff)
parentc43268cbb41ef01e1a47b494dc8e1e3af6d9e147 (diff)
downloadtcl-869f829101ea038744766b33e8a5d362f1cf21ee.zip
tcl-869f829101ea038744766b33e8a5d362f1cf21ee.tar.gz
tcl-869f829101ea038744766b33e8a5d362f1cf21ee.tar.bz2
[Bug 3288345]: Bring cygwin Tcl_StatBuf a little closer to reality
-rw-r--r--generic/tcl.h2
-rw-r--r--win/tclWinFile.c5
-rw-r--r--win/tclWinPort.h12
3 files changed, 13 insertions, 6 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index 1933ded..fa9f6b4 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -352,7 +352,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 aa43495..0291a41 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -12,8 +12,9 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
-/* #define _WIN32_WINNT 0x0500 */
-
+#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 c1317be..8fdf391 100644
--- a/win/tclWinPort.h
+++ b/win/tclWinPort.h
@@ -109,17 +109,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