*** empty log message ***

This commit is contained in:
ceriel 1987-02-05 21:04:40 +00:00
parent c6a224a6d1
commit 775e473fb0
2 changed files with 23 additions and 10 deletions

View file

@ -25,13 +25,13 @@ localtime(clock)
register struct tm *gmt;
long cl;
int begindst, enddst;
extern int daylight;
extern long timezone;
extern int __daylight;
extern long __timezone;
tzset();
cl = *clock - timezone;
cl = *clock - __timezone;
gmt = gmtime(&cl);
if (daylight) {
if (__daylight) {
/* daylight saving time.
Unfortunately, rules differ for different countries.
Implemented here are heuristics that got it right
@ -45,6 +45,7 @@ localtime(clock)
(gmt->tm_yday==begindst && gmt->tm_hour>=2)) &&
(gmt->tm_yday<enddst ||
(gmt->tm_yday==enddst && gmt->tm_hour<3))) {
/* it all happens between 2 and 3 */
cl += 1*60*60;
gmt = gmtime(&cl);
gmt->tm_isdst++;

View file

@ -7,9 +7,15 @@
#endif
#endif
#ifdef USG
long timezone = -1 * 60;
int daylight = 1;
char *tzname[] = {"MET", "MDT",};
#endif
long __timezone = -1 * 60;
int __daylight = 1;
char *__tzname[] = {"MET", "MDT", };
tzset()
{
@ -18,15 +24,15 @@ tzset()
struct timezone tzon;
gettimeofday(&tval, &tzon);
timezone = tzon.tz_minuteswest * 60L;
daylight = tzon.tz_dsttime;
__timezone = tzon.tz_minuteswest * 60L;
__daylight = tzon.tz_dsttime;
#else
#ifndef USG
struct timeb time;
ftime(&time);
timezone = time.timezone*60L;
daylight = time.dstflag;
__timezone = time.timezone*60L;
__daylight = time.dstflag;
#endif
#endif
@ -48,9 +54,15 @@ tzset()
while(*p >= '0' && *p <= '9')
n = 10 * n + (*p++ - '0');
n *= sign;
timezone = ((long)(n * 60)) * 60;
daylight = (*p != '\0');
__timezone = ((long)(n * 60)) * 60;
__daylight = (*p != '\0');
strncpy(tzname[1], p, 3);
}
}
#ifdef USG
timezone = __timezone;
daylight = __daylight;
tzname[0] = __tzname[0];
tzname[1] = __tzname[1];
#endif
}