--- localtime.c-orig Mon Aug 23 19:53:06 1999 +++ localtime.c Tue Aug 31 20:54:36 1999 @@ -10,8 +10,6 @@ #include extern DWORD strace_active; -void cygwin_tzset(); - #define USG_COMPAT /* END CYGNUS LOCAL */ @@ -1449,41 +1447,42 @@ tzsetwall P((void)) d = div(tz.Bias+tz.StandardBias, 60); sprintf(cp, "%d", d.quot); if (d.rem) - sprintf(cp=strchr(cp, 0), ":%d", d.rem); - cp = strchr(cp, 0); - wcstombs(cp, tz.DaylightName, sizeof(tz.DaylightName)); - for (src = cp; *src; ++src) { - if (is_upper(*src)) *cp++ = *src; + sprintf(cp=strchr(cp, 0), ":%d", abs(d.rem)); + if(tz.StandardDate.wMonth) { + cp = strchr(cp, 0); + wcstombs(cp, tz.DaylightName, sizeof(tz.DaylightName)); + for (src = cp; *src; ++src) { + if (is_upper(*src)) *cp++ = *src; + } + d = div(tz.Bias+tz.DaylightBias, 60); + sprintf(cp, "%d", d.quot); + if (d.rem) + sprintf(cp=strchr(cp, 0), ":%d", abs(d.rem)); + cp = strchr(cp, 0); + sprintf(cp=strchr(cp, 0), ",M%d.%d.%d/%d", + tz.DaylightDate.wMonth, + tz.DaylightDate.wDay, + tz.DaylightDate.wDayOfWeek, + tz.DaylightDate.wHour); + if (tz.DaylightDate.wMinute || tz.DaylightDate.wSecond) + sprintf(cp=strchr(cp, 0), ":%d", tz.DaylightDate.wMinute); + if (tz.DaylightDate.wSecond) + sprintf(cp=strchr(cp, 0), ":%d", tz.DaylightDate.wSecond); + cp = strchr(cp, 0); + sprintf(cp=strchr(cp, 0), ",M%d.%d.%d/%d", + tz.StandardDate.wMonth, + tz.StandardDate.wDay, + tz.StandardDate.wDayOfWeek, + tz.StandardDate.wHour); + if (tz.StandardDate.wMinute || tz.StandardDate.wSecond) + sprintf(cp=strchr(cp, 0), ":%d", tz.StandardDate.wMinute); + if (tz.StandardDate.wSecond) + sprintf(cp=strchr(cp, 0), ":%d", tz.StandardDate.wSecond); } - d = div(tz.Bias+tz.DaylightBias, 60); - sprintf(cp, "%d", d.quot); - if (d.rem) - sprintf(cp=strchr(cp, 0), ":%d", d.rem); - cp = strchr(cp, 0); - sprintf(cp=strchr(cp, 0), ",M%d.%d.%d/%d", - tz.DaylightDate.wMonth, - tz.DaylightDate.wDay, - tz.DaylightDate.wDayOfWeek, - tz.DaylightDate.wHour); - if (tz.DaylightDate.wMinute) - sprintf(cp=strchr(cp, 0), ":%d", tz.DaylightDate.wMinute); - if (tz.DaylightDate.wSecond) - sprintf(cp=strchr(cp, 0), ":%d", tz.DaylightDate.wSecond); - cp = strchr(cp, 0); - sprintf(cp=strchr(cp, 0), ",M%d.%d.%d/%d", - tz.StandardDate.wMonth, - tz.StandardDate.wDay, - tz.StandardDate.wDayOfWeek, - tz.StandardDate.wHour); - if (tz.StandardDate.wMinute) - sprintf(cp=strchr(cp, 0), ":%d", tz.StandardDate.wMinute); - if (tz.StandardDate.wSecond) - sprintf(cp=strchr(cp, 0), ":%d", tz.StandardDate.wSecond); /* printf("TZ deduced as `%s'\n", buf); */ if (tzparse(buf, lclptr, FALSE) == 0) { settzname(); setenv("TZ", buf, 1); - cygwin_tzset(); return; } } @@ -1498,30 +1497,6 @@ tzset P((void)) { const char * name = getenv("TZ"); -#if 0 /* we set it more accurately in tzsetwall() */ -#if defined(__CYGWIN32__) || defined(__CYGWIN__) - static char b[20]; - DWORD tzid; - TIME_ZONE_INFORMATION tz; - LONG bias; - - cygwin_tzset(); - - if (name == NULL) - { - - tzid = GetTimeZoneInformation (&tz); - - if (tzid == TIME_ZONE_ID_DAYLIGHT) - bias = tz.Bias + tz.DaylightBias; - else - bias = tz.Bias + tz.StandardBias; - sprintf (b,"GMT%+d:%02d", (int) (-bias / 60), (int) (abs(bias) % 60)); - name = b; - } - -#endif -#endif if (name == NULL) { tzsetwall(); return;