mirror of
https://frontier.innolan.net/rainlance/amiga-tz.git
synced 2026-10-05 13:45:05 +00:00
tzfile.h work
SCCS-file: zic.c SCCS-SID: 2.36
This commit is contained in:
committed by
Paul Eggert
parent
d0e0401665
commit
9f2200cb2a
@@ -50,16 +50,16 @@ static long tadd();
|
|||||||
static long timecnt;
|
static long timecnt;
|
||||||
static long typecnt;
|
static long typecnt;
|
||||||
|
|
||||||
#define SECS_PER_MIN 60L
|
#define LSECS_PER_MIN ((long) SECS_PER_MIN)
|
||||||
#define MINS_PER_HOUR 60L
|
#define LMINS_PER_HOUR ((long) MINS_PER_HOUR)
|
||||||
#define HOURS_PER_DAY 24L
|
#define LHOURS_PER_DAY ((long) HOURS_PER_DAY)
|
||||||
#define SECS_PER_HOUR (SECS_PER_MIN * MINS_PER_HOUR)
|
#define LSECS_PER_HOUR (LSECS_PER_MIN * LMINS_PER_HOUR)
|
||||||
#define SECS_PER_DAY (SECS_PER_HOUR * HOURS_PER_DAY)
|
#define LSECS_PER_DAY (LSECS_PER_HOUR * LHOURS_PER_DAY)
|
||||||
|
|
||||||
#define EPOCH_YEAR 1970L
|
#define LEPOCH_YEAR ((long) EPOCH_YEAR)
|
||||||
#define EPOCH_WDAY TM_THURSDAY
|
#define EPOCH_WDAY TM_THURSDAY
|
||||||
#define MIN_YEAR 1902L
|
#define LMIN_YEAR 1902L
|
||||||
#define MAX_YEAR 2037L
|
#define LMAX_YEAR 2037L
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Values a la localtime(3)
|
** Values a la localtime(3)
|
||||||
@@ -264,15 +264,15 @@ static struct lookup lasts[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static struct lookup begin_years[] = {
|
static struct lookup begin_years[] = {
|
||||||
"minimum", MIN_YEAR,
|
"minimum", LMIN_YEAR,
|
||||||
"maximum", MAX_YEAR,
|
"maximum", LMAX_YEAR,
|
||||||
NULL, 0
|
NULL, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct lookup end_years[] = {
|
static struct lookup end_years[] = {
|
||||||
"minimum", MIN_YEAR,
|
"minimum", LMIN_YEAR,
|
||||||
"maximum", MAX_YEAR,
|
"maximum", LMAX_YEAR,
|
||||||
#define ONLY EPOCH_YEAR /* surely neither MIN_YEAR nor MAX_YEAR */
|
#define ONLY LEPOCH_YEAR /* surely neither LMIN_YEAR nor LMAX_YEAR */
|
||||||
"only", ONLY,
|
"only", ONLY,
|
||||||
NULL, 0
|
NULL, 0
|
||||||
};
|
};
|
||||||
@@ -638,13 +638,13 @@ char * errstring;
|
|||||||
error(errstring);
|
error(errstring);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (hh < 0 || hh >= HOURS_PER_DAY ||
|
if (hh < 0 || hh >= LHOURS_PER_DAY ||
|
||||||
mm < 0 || mm >= MINS_PER_HOUR ||
|
mm < 0 || mm >= LMINS_PER_HOUR ||
|
||||||
ss < 0 || ss >= SECS_PER_MIN) {
|
ss < 0 || ss >= LSECS_PER_MIN) {
|
||||||
error(errstring);
|
error(errstring);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return (long) sign * (((hh * MINS_PER_HOUR) + mm) * SECS_PER_MIN + ss);
|
return (long) sign * (((hh * LMINS_PER_HOUR) + mm) * LSECS_PER_MIN + ss);
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
@@ -846,7 +846,7 @@ char * timep;
|
|||||||
if ((lp = byword(cp, begin_years)) != NULL)
|
if ((lp = byword(cp, begin_years)) != NULL)
|
||||||
rp->r_loyear = lp->l_value;
|
rp->r_loyear = lp->l_value;
|
||||||
else if (sscanf(cp, scheck(cp, "%ld"), &rp->r_loyear) != 1 ||
|
else if (sscanf(cp, scheck(cp, "%ld"), &rp->r_loyear) != 1 ||
|
||||||
rp->r_loyear < MIN_YEAR || rp->r_loyear > MAX_YEAR) {
|
rp->r_loyear < LMIN_YEAR || rp->r_loyear > LMAX_YEAR) {
|
||||||
error("invalid starting year");
|
error("invalid starting year");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -855,7 +855,7 @@ char * timep;
|
|||||||
if ((rp->r_hiyear = lp->l_value) == ONLY)
|
if ((rp->r_hiyear = lp->l_value) == ONLY)
|
||||||
rp->r_hiyear = rp->r_loyear;
|
rp->r_hiyear = rp->r_loyear;
|
||||||
} else if (sscanf(cp, scheck(cp, "%ld"), &rp->r_hiyear) != 1 ||
|
} else if (sscanf(cp, scheck(cp, "%ld"), &rp->r_hiyear) != 1 ||
|
||||||
rp->r_hiyear < MIN_YEAR || rp->r_hiyear > MAX_YEAR) {
|
rp->r_hiyear < LMIN_YEAR || rp->r_hiyear > LMAX_YEAR) {
|
||||||
error("invalid ending year");
|
error("invalid ending year");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1017,7 +1017,7 @@ struct zone * zpfirst;
|
|||||||
addtt(starttime, type);
|
addtt(starttime, type);
|
||||||
gmtoff = zp->z_gmtoff;
|
gmtoff = zp->z_gmtoff;
|
||||||
stdoff = zp->z_stdoff;
|
stdoff = zp->z_stdoff;
|
||||||
} else for (year = MIN_YEAR; year <= MAX_YEAR; ++year) {
|
} else for (year = LMIN_YEAR; year <= LMAX_YEAR; ++year) {
|
||||||
if (useuntil && year > zp->z_untilrule.r_hiyear)
|
if (useuntil && year > zp->z_untilrule.r_hiyear)
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
@@ -1320,7 +1320,7 @@ register long wantedy;
|
|||||||
|
|
||||||
dayoff = 0;
|
dayoff = 0;
|
||||||
m = TM_JANUARY;
|
m = TM_JANUARY;
|
||||||
y = EPOCH_YEAR;
|
y = LEPOCH_YEAR;
|
||||||
while (wantedy != y) {
|
while (wantedy != y) {
|
||||||
if (wantedy > y) {
|
if (wantedy > y) {
|
||||||
i = year_lengths[isleap(y)];
|
i = year_lengths[isleap(y)];
|
||||||
@@ -1376,11 +1376,11 @@ register long wantedy;
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t = dayoff * SECS_PER_DAY;
|
t = dayoff * LSECS_PER_DAY;
|
||||||
/*
|
/*
|
||||||
** Cheap overflow check.
|
** Cheap overflow check.
|
||||||
*/
|
*/
|
||||||
if (t / SECS_PER_DAY != dayoff) {
|
if (t / LSECS_PER_DAY != dayoff) {
|
||||||
error("time overflow");
|
error("time overflow");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user