summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tcl.h2
-rw-r--r--generic/tclCmdMZ.c2
-rw-r--r--generic/tclFCmd.c5
-rw-r--r--generic/tclTest.c5
4 files changed, 12 insertions, 2 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index e5e38a8..21cd0c4 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -360,7 +360,7 @@ typedef struct stati64 Tcl_StatBuf;
# else /* __BORLANDC__ */
# if defined(_WIN64)
typedef struct __stat64 Tcl_StatBuf;
-# elif (defined(_MSC_VER) && (_MSC_VER < 1400))
+# elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T)
typedef struct _stati64 Tcl_StatBuf;
# else
typedef struct _stat32i64 Tcl_StatBuf;
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 60a9414..ab673d5 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -264,7 +264,7 @@ Tcl_RegexpObjCmd(
* start of the string unless the previous character is a newline.
*/
- if ((offset == 0) || ((offset > 0) &&
+ if ((offset == 0) || ((offset > 0) && (offset < stringLength) &&
(Tcl_GetUniChar(objPtr, offset-1) == (Tcl_UniChar)'\n'))) {
eflags = 0;
} else {
diff --git a/generic/tclFCmd.c b/generic/tclFCmd.c
index 2b4977b..cc4f013 100644
--- a/generic/tclFCmd.c
+++ b/generic/tclFCmd.c
@@ -10,6 +10,11 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
+#ifndef _WIN64
+/* See [Bug 2935503]: file mtime sets wrong time */
+# define _USE_32BIT_TIME_T
+#endif
+
#include "tclInt.h"
/*
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 98208af..cb0faad 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -15,6 +15,11 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
+#ifndef _WIN64
+/* See [Bug 2935503]: file mtime sets wrong time */
+# define _USE_32BIT_TIME_T
+#endif
+
#define TCL_TEST
#include "tclInt.h"