diff options
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); } |