diff options
Diffstat (limited to 'src/backend/utils/adt/nabstime.c')
-rw-r--r-- | src/backend/utils/adt/nabstime.c | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c index 61973c46cf2..a7ee883f7b0 100644 --- a/src/backend/utils/adt/nabstime.c +++ b/src/backend/utils/adt/nabstime.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.74 2000/09/29 13:53:31 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.75 2000/10/29 13:17:34 petere Exp $ * * NOTES * @@ -24,7 +24,7 @@ #include <float.h> #include <limits.h> -#ifndef USE_POSIX_TIME +#if !(defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE)) #include <sys/timeb.h> #endif @@ -126,11 +126,11 @@ GetCurrentAbsoluteTime(void) { time_t now; -#ifdef USE_POSIX_TIME +#if defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE) struct tm *tm; now = time(NULL); -#else /* ! USE_POSIX_TIME */ +#else struct timeb tb; /* the old V7-ism */ ftime(&tb); @@ -139,7 +139,6 @@ GetCurrentAbsoluteTime(void) if (!HasCTZSet) { -#ifdef USE_POSIX_TIME #if defined(HAVE_TM_ZONE) tm = localtime(&now); @@ -166,16 +165,13 @@ GetCurrentAbsoluteTime(void) CDayLight = tm->tm_isdst; CTimeZone = -#ifdef __CYGWIN__ +# ifdef __CYGWIN__ (tm->tm_isdst ? (_timezone - 3600) : _timezone); -#else +# else (tm->tm_isdst ? (timezone - 3600) : timezone); -#endif +# endif strcpy(CTZName, tzname[tm->tm_isdst]); -#else -#error USE_POSIX_TIME defined but no time zone available -#endif -#else /* ! USE_POSIX_TIME */ +#else /* neither HAVE_TM_ZONE nor HAVE_INT_TIMEZONE */ CTimeZone = tb.timezone * 60; CDayLight = (tb.dstflag != 0); @@ -206,25 +202,23 @@ void abstime2tm(AbsoluteTime _time, int *tzp, struct tm * tm, char *tzn) { time_t time = (time_t) _time; -#ifdef USE_POSIX_TIME +#if defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE) struct tm *tx; -#else /* ! USE_POSIX_TIME */ +#else struct timeb tb; /* the old V7-ism */ ftime(&tb); #endif -#ifdef USE_POSIX_TIME + +#if defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE) if (tzp != NULL) tx = localtime((time_t *) &time); else { tx = gmtime((time_t *) &time); }; -#endif - -#ifdef USE_POSIX_TIME tm->tm_year = tx->tm_year + 1900; tm->tm_mon = tx->tm_mon + 1; @@ -234,7 +228,7 @@ abstime2tm(AbsoluteTime _time, int *tzp, struct tm * tm, char *tzn) tm->tm_sec = tx->tm_sec; tm->tm_isdst = tx->tm_isdst; -#if defined(HAVE_TM_ZONE) +# if defined(HAVE_TM_ZONE) tm->tm_gmtoff = tx->tm_gmtoff; tm->tm_zone = tx->tm_zone; @@ -252,13 +246,13 @@ abstime2tm(AbsoluteTime _time, int *tzp, struct tm * tm, char *tzn) if (strlen(tm->tm_zone) > MAXTZLEN) elog(NOTICE, "Invalid timezone \'%s\'", tm->tm_zone); } -#elif defined(HAVE_INT_TIMEZONE) +# elif defined(HAVE_INT_TIMEZONE) if (tzp != NULL) -#ifdef __CYGWIN__ +# ifdef __CYGWIN__ *tzp = (tm->tm_isdst ? (_timezone - 3600) : _timezone); -#else +# else *tzp = (tm->tm_isdst ? (timezone - 3600) : timezone); -#endif +# endif if (tzn != NULL) { @@ -270,10 +264,8 @@ abstime2tm(AbsoluteTime _time, int *tzp, struct tm * tm, char *tzn) if (strlen(tzname[tm->tm_isdst]) > MAXTZLEN) elog(NOTICE, "Invalid timezone \'%s\'", tzname[tm->tm_isdst]); } -#else -#error POSIX time support is broken -#endif -#else /* ! USE_POSIX_TIME */ +# endif +#else /* not (HAVE_TM_ZONE || HAVE_INT_TIMEZONE) */ if (tzp != NULL) *tzp = tb.timezone * 60; |