summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/winTime.test49
-rw-r--r--win/tclWinTime.c7
2 files changed, 53 insertions, 3 deletions
diff --git a/tests/winTime.test b/tests/winTime.test
new file mode 100644
index 0000000..aa3d410
--- /dev/null
+++ b/tests/winTime.test
@@ -0,0 +1,49 @@
+# This file tests the tclWinTime.c file.
+#
+# This file contains a collection of tests for one or more of the Tcl
+# built-in commands. Sourcing this file into Tcl runs the tests and
+# generates output for errors. No output means no errors were found.
+#
+# Copyright (c) 1997 Sun Microsystems, Inc.
+# Copyright (c) 1998-1999 by Scriptics Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: winTime.test,v 1.1.2.1 1999/04/06 00:29:19 stanton Exp $
+
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ source [file join [pwd] [file dirname [info script]] defs.tcl]
+}
+
+# The next two tests will crash on Windows if the check for negative
+# clock values is not done properly.
+
+test winTime-1.1 {TclpGetDate} {pcOnly} {
+ set ::env(TZ) JST-9
+ set result [clock format -1 -format %Y]
+ unset ::env(TZ)
+ set result
+} {1970}
+test winTime-1.2 {TclpGetDate} {pcOnly} {
+ set ::env(TZ) PST8
+ set result [clock format 1 -format %Y]
+ unset ::env(TZ)
+ set result
+} {1969}
+
+# cleanup
+::tcltest::cleanupTests
+return
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/win/tclWinTime.c b/win/tclWinTime.c
index 196a0db..87953eb 100644
--- a/win/tclWinTime.c
+++ b/win/tclWinTime.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclWinTime.c,v 1.1.2.3 1999/03/10 06:49:31 stanton Exp $
+ * RCS: @(#) $Id: tclWinTime.c,v 1.1.2.4 1999/04/06 00:29:19 stanton Exp $
*/
#include "tclWinInt.h"
@@ -269,10 +269,11 @@ TclpGetDate(t, useGMT)
* algorithm ignores daylight savings time before the epoch.
*/
- time = *tp - _timezone;
- if (time >= 0) {
+ if (*tp >= 0) {
return localtime(tp);
}
+
+ time = *tp - _timezone;
/*
* If we aren't near to overflowing the long, just add the bias and