diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-05-25 15:50:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-05-25 15:50:36 +0000 |
commit | c0a119316e3cf2247fe9b2c3d6fbbddebb7dbca8 (patch) | |
tree | 9c5012aae813e75d5043f7f35f659f24abffda34 | |
parent | ae2eaff13eb43834f7b36562ad343c14842bcd0f (diff) |
Make 2nd para for scheck const. Update zic.c.
-rw-r--r-- | time/private.h | 2 | ||||
-rw-r--r-- | time/scheck.c | 2 | ||||
-rw-r--r-- | time/zic.c | 21 |
3 files changed, 19 insertions, 6 deletions
diff --git a/time/private.h b/time/private.h index 5a5b516d0f..e32653b76d 100644 --- a/time/private.h +++ b/time/private.h @@ -182,7 +182,7 @@ char * imalloc P((int n)); void * irealloc P((void * pointer, int size)); void icfree P((char * pointer)); void ifree P((char * pointer)); -char * scheck P((const char *string, char *format)); +char * scheck P((const char *string, const char *format)); /* diff --git a/time/scheck.c b/time/scheck.c index b51f58d042..52b4ff51fd 100644 --- a/time/scheck.c +++ b/time/scheck.c @@ -11,7 +11,7 @@ static char elsieid[] = "@(#)scheck.c 8.14"; char * scheck(string, format) const char * const string; -char * const format; +const char * const format; { register char * fbuf; register const char * fp; diff --git a/time/zic.c b/time/zic.c index b9518c4649..c95887c9b4 100644 --- a/time/zic.c +++ b/time/zic.c @@ -1,6 +1,6 @@ #ifndef lint #ifndef NOID -static char elsieid[] = "@(#)zic.c 7.83"; +static char elsieid[] = "@(#)zic.c 7.87"; #endif /* !defined NOID */ #endif /* !defined lint */ @@ -141,8 +141,10 @@ static int leapcnt; static int linenum; static time_t max_time; static int max_year; +static int max_year_representable; static time_t min_time; static int min_year; +static int min_year_representable; static int noise; static const char * rfilename; static int rlinenum; @@ -430,7 +432,7 @@ const char * const string; cp = ecpyalloc("warning: "); cp = ecatalloc(cp, string); - error(string); + error(cp); ifree(cp); --errors; } @@ -649,6 +651,8 @@ setboundaries P((void)) } min_year = TM_YEAR_BASE + gmtime(&min_time)->tm_year; max_year = TM_YEAR_BASE + gmtime(&max_time)->tm_year; + min_year_representable = min_year; + max_year_representable = max_year; } static int @@ -1218,6 +1222,7 @@ const char * const timep; rp->r_todisstd = FALSE; rp->r_todisgmt = FALSE; *ep = '\0'; + break; case 'g': /* Greenwich */ case 'u': /* Universal */ case 'z': /* Zulu */ @@ -1249,7 +1254,11 @@ const char * const timep; } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_loyear) != 1) { error(_("invalid starting year")); return; - } + } else if (noise) + if (rp->r_loyear < min_year_representable) + warning(_("starting year too low to be represented")); + else if (rp->r_loyear > max_year_representable) + warning(_("starting year too high to be represented")); cp = hiyearp; if ((lp = byword(cp, end_years)) != NULL) switch ((int) lp->l_value) { case YR_MINIMUM: @@ -1269,7 +1278,11 @@ const char * const timep; } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_hiyear) != 1) { error(_("invalid ending year")); return; - } + } else if (noise) + if (rp->r_loyear < min_year_representable) + warning(_("starting year too low to be represented")); + else if (rp->r_loyear > max_year_representable) + warning(_("starting year too high to be represented")); if (rp->r_loyear > rp->r_hiyear) { error(_("starting year greater than ending year")); return; |