I think I see the real issue behind the recent argument about the datatype of the timezone variable. I don't think the datatype matters, but the name certainly does. In pgtz.c we have
#if defined(HAVE_STRUCT_TM_TM_ZONE) return tm->tm_gmtoff; #elif defined(HAVE_INT_TIMEZONE) #ifdef HAVE_UNDERSCORE_TIMEZONE return -_timezone; #else return -timezone; #endif #else #error No way to determine TZ? Can this happen? #endif but the symbol HAVE_UNDERSCORE_TIMEZONE appears nowhere else --- certainly it's not set by configure, and never has been. So the "_timezone" case is dead code at the moment. In 7.4, pg_config_manual.h contained /* * Define this if your operating system has _timezone rather than timezone */ #if defined(__CYGWIN__) || defined(WIN32) #define HAVE_INT_TIMEZONE /* has int _timezone */ #define HAVE_UNDERSCORE_TIMEZONE 1 #endif but this passage has disappeared from CVS tip. So given a platform that has "_timezone" but not "timezone", CVS tip is broken. I am wondering how changing this would affect the existing, allegedly working Windows port. Should we put back the pg_config_manual.h entry? Should we restrict it to __CYGWIN__ only? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster