diff options
author | davygrvy <davygrvy@pobox.com> | 2003-12-16 02:55:38 (GMT) |
---|---|---|
committer | davygrvy <davygrvy@pobox.com> | 2003-12-16 02:55:38 (GMT) |
commit | 2534806dbf61a11a318e1e999e4ab37863602e2e (patch) | |
tree | ac8c841e1470bf5440f5c63c7ab2e4f25b5b2821 /win | |
parent | 1507b662546b275a56d4239975de5a453f67d370 (diff) | |
download | tcl-2534806dbf61a11a318e1e999e4ab37863602e2e.zip tcl-2534806dbf61a11a318e1e999e4ab37863602e2e.tar.gz tcl-2534806dbf61a11a318e1e999e4ab37863602e2e.tar.bz2 |
* win/tclWinFile.c (TclpUtime) : utimbuf struct not a problem
with Borland.
* win/tclWinTime.c (TclpGetDate) : Borland's localtime() has
a slight behavioral difference.
From Helmut Giese <hgiese@ratiosoft.com> [Patch 758097].
Diffstat (limited to 'win')
-rw-r--r-- | win/tclWinFile.c | 12 | ||||
-rw-r--r-- | win/tclWinTime.c | 15 |
2 files changed, 24 insertions, 3 deletions
diff --git a/win/tclWinFile.c b/win/tclWinFile.c index 697bff3..a000802 100644 --- a/win/tclWinFile.c +++ b/win/tclWinFile.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclWinFile.c,v 1.57 2003/12/12 17:09:27 vincentdarley Exp $ + * RCS: @(#) $Id: tclWinFile.c,v 1.58 2003/12/16 02:55:38 davygrvy Exp $ */ //#define _WIN32_WINNT 0x0500 @@ -2505,12 +2505,20 @@ TclpUtime(pathPtr, tval) struct utimbuf *tval; /* New modification date structure */ { int res; +#ifndef __BORLANDC__ /* * Windows uses a slightly different structure name and, possibly, * contents, so we have to copy the information over */ struct _utimbuf buf; - +#else + /* + * Borland's compiler does not, but we still copy the content into a + * local variable using the 'generic' name + */ + struct utimbuf buf; +#endif + buf.actime = tval->actime; buf.modtime = tval->modtime; diff --git a/win/tclWinTime.c b/win/tclWinTime.c index 39057cd..396adfa 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.20 2003/08/27 19:50:07 davygrvy Exp $ + * RCS: @(#) $Id: tclWinTime.c,v 1.21 2003/12/16 02:55:38 davygrvy Exp $ */ #include "tclWinInt.h" @@ -561,7 +561,20 @@ TclpGetDate(t, useGMT) * algorithm ignores daylight savings time before the epoch. */ + /* + Hm, Borland's localtime manages to return NULL under certain + circumstances (e.g. wintime.test, test 1.2). Nobody tests for this, + since 'localtime' isn't supposed to do this, possibly leading to + crashes. + Patch: We only call this function if we are at least one day into + the epoch, else we handle it ourselves (like we do for times < 0). + H. Giese, June 2003 + */ +#ifdef __BORLANDC__ + if (*tp >= SECSPERDAY) { +#else if (*tp >= 0) { +#endif return localtime(tp); } |