From 68f2042d8f111ba0f24642660ec48fd69f79bdbc Mon Sep 17 00:00:00 2001 From: zolliker Date: Thu, 14 Nov 2024 09:04:10 +0100 Subject: [PATCH] fix issue with tcl time/date library this seems to be an issue with conflocting behaviour of different tcl library versions --- tclDate.c | 10 +++++----- tclUnixTime.c | 30 +++++++++++++++++------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/tclDate.c b/tclDate.c index 6abca447..07a2b973 100644 --- a/tclDate.c +++ b/tclDate.c @@ -117,7 +117,7 @@ static int LookupWord _ANSI_ARGS_((char *buff)); static int TclDatelex _ANSI_ARGS_((void)); int -TclDateparse _ANSI_ARGS_((void)); +TclDateparseX _ANSI_ARGS_((void)); typedef union #ifdef __cplusplus YYSTYPE @@ -161,7 +161,7 @@ extern "C" { #ifndef TclDatelex int TclDatelex(void); #endif - int TclDateparse(void); + int TclDateparseX(void); #if defined(__cplusplus) && defined(__EXTERN_C__) } #endif @@ -877,7 +877,7 @@ TclGetDate(p, now, zone, timePtr) TclDateHaveTime = 0; TclDateHaveZone = 0; - if (TclDateparse() || TclDateHaveTime > 1 || TclDateHaveZone > 1 || TclDateHaveDate > 1 || + if (TclDateparseX() || TclDateHaveTime > 1 || TclDateHaveZone > 1 || TclDateHaveDate > 1 || TclDateHaveDay > 1 || TclDateHaveOrdinalMonth > 1) { return -1; } @@ -1231,9 +1231,9 @@ int TclDatecvtok(i) int i; ** TclDateparse - return 0 if worked, 1 if syntax error not recovered from */ #if defined(__STDC__) || defined(__cplusplus) -int TclDateparse(void) +int TclDateparseX(void) #else -int TclDateparse() +int TclDateparseX() #endif { register YYSTYPE *TclDatepvt = 0; /* top of value stack for $vars */ diff --git a/tclUnixTime.c b/tclUnixTime.c index c285365d..7dc3ee38 100644 --- a/tclUnixTime.c +++ b/tclUnixTime.c @@ -20,6 +20,10 @@ #define TM_YEAR_BASE 1900 #define IsLeapYear(x) ((x % 4 == 0) && (x % 100 != 0 || x % 400 == 0)) +/* added declarations */ +struct tm * TclpLocaltimeX( CONST time_t *tt); +struct tm * TclpGmtimeX( CONST time_t *tt); + /* * TclpGetDate is coded to return a pointer to a 'struct tm'. For * thread safety, this structure must be in thread-specific data. @@ -67,7 +71,7 @@ static void CleanupMemory _ANSI_ARGS_((ClientData)); */ unsigned long -TclpGetSeconds() +TclpGetSecondsX() { return time((time_t *) NULL); } @@ -92,7 +96,7 @@ TclpGetSeconds() */ unsigned long -TclpGetClicks() +TclpGetClicksX() { unsigned long now; #ifdef NO_GETTOD @@ -131,7 +135,7 @@ TclpGetClicks() */ int -TclpGetTimeZone (currentTime) +TclpGetTimeZoneX (currentTime) unsigned long currentTime; { /* @@ -150,7 +154,7 @@ TclpGetTimeZone (currentTime) /* Struct tm contains tm_tzadj - that value may be used. */ time_t curTime = (time_t) currentTime; - struct tm *timeDataPtr = TclpLocaltime((time_t *) &curTime); + struct tm *timeDataPtr = TclpLocaltimeX((time_t *) &curTime); int timeZone; timeZone = timeDataPtr->tm_tzadj / 60; @@ -168,7 +172,7 @@ TclpGetTimeZone (currentTime) /* Struct tm contains tm_gmtoff - that value may be used. */ time_t curTime = (time_t) currentTime; - struct tm *timeDataPtr = TclpLocaltime((time_t *) &curTime); + struct tm *timeDataPtr = TclpLocaltimeX((time_t *) &curTime); int timeZone; timeZone = -(timeDataPtr->tm_gmtoff / 60); @@ -209,7 +213,7 @@ TclpGetTimeZone (currentTime) time_t tt; struct tm *stm; tt = 849268800L; /* 1996-11-29 12:00:00 GMT */ - stm = TclpLocaltime((time_t *) &tt); /* eg 1996-11-29 6:00:00 CST6CDT */ + stm = TclpLocaltimeX((time_t *) &tt); /* eg 1996-11-29 6:00:00 CST6CDT */ /* The calculation below assumes a max of +12 or -12 hours from GMT */ timeZone = (12 - stm->tm_hour)*60 + (0 - stm->tm_min); if ( stm -> tm_isdst ) { @@ -247,7 +251,7 @@ TclpGetTimeZone (currentTime) */ void -Tcl_GetTime(timePtr) +Tcl_GetTimeX(timePtr) Tcl_Time *timePtr; /* Location to store time information. */ { struct timeval tv; @@ -282,9 +286,9 @@ TclppGetDate(time, useGMT) { time_t mtime = time; if (useGMT) { - return TclpGmtime(&mtime); + return TclpGmtimeX(&mtime); } else { - return TclpLocaltime(&mtime); + return TclpLocaltimeX(&mtime); } } @@ -344,7 +348,7 @@ TclpStrftime(s, maxsize, format, t, useGMT) */ struct tm * -TclpGmtime( tt ) +TclpGmtimeX( tt ) CONST time_t *tt; { CONST time_t *timePtr = (CONST time_t *) tt; @@ -374,7 +378,7 @@ struct tm* TclpGmtime_unix( timePtr ) CONST time_t *timePtr; { - return TclpGmtime( timePtr ); + return TclpGmtimeX( timePtr ); } /* @@ -395,7 +399,7 @@ TclpGmtime_unix( timePtr ) */ struct tm * -TclpLocaltime( tt ) +TclpLocaltimeX( tt ) CONST time_t *tt; { CONST time_t *timePtr = (CONST time_t *) tt; @@ -425,7 +429,7 @@ struct tm* TclpLocaltime_unix( timePtr ) CONST time_t *timePtr; { - return TclpLocaltime( timePtr ); + return TclpLocaltimeX( timePtr ); } /*