Attached is a proposed change to let zic.c cope gracefully when 32 < sizeof (time_t) I'll make it part of the ftpable stuff if nobody squawks in the next week. --ado SCCS/s.zic.c: 7.50 vs. 7.51 *** 7.50/zic.c Sat Oct 21 05:58:46 1995 --- 7.51/zic.c Sat Oct 21 05:58:47 1995 *************** *** 1,6 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)zic.c 7.50"; #endif /* !defined NOID */ #endif /* !defined lint */ --- 1,6 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)zic.c 7.51"; #endif /* !defined NOID */ #endif /* !defined lint */ *************** *** 567,594 **** ifree(toname); } static void setboundaries P((void)) { register time_t bit; ! register int bii; for (bit = 1; bit > 0; bit <<= 1) ! continue; ! if (bit == 0) { /* time_t is an unsigned type */ ! tt_signed = FALSE; ! min_time = 0; ! max_time = ~(time_t) 0; if (sflag) ! max_time >>= 1; } else { ! tt_signed = TRUE; ! min_time = bit; ! max_time = bit; ! ++max_time; ! max_time = -max_time; if (sflag) ! min_time = 0; } min_year = TM_YEAR_BASE + gmtime(&min_time)->tm_year; max_year = TM_YEAR_BASE + gmtime(&max_time)->tm_year; --- 567,613 ---- ifree(toname); } + #define MAX_BITS_IN_FILE 32 + static void setboundaries P((void)) { register time_t bit; ! register int nbits; ! register int bii; + nbits = 0; for (bit = 1; bit > 0; bit <<= 1) ! ++nbits; ! tt_signed = (bit != 0); ! if (tt_signed) ! ++nbits; ! if (tt_signed) { ! if (nbits <= MAX_BITS_IN_FILE) { ! min_time = bit; ! max_time = bit; ! ++max_time; ! max_time = -max_time; ! } else { ! max_time = 1; ! max_time <<= (MAX_BITS_IN_FILE - 1); ! --max_time; ! min_time = max_time; ! --min_time; ! } if (sflag) ! min_time = 0; } else { ! min_time = 0; ! if (nbits <= MAX_BITS_IN_FILE) ! max_time = ~(time_t) 0; ! else { ! max_time = 1; ! max_time <<= MAX_BITS_IN_FILE; ! --max_time; ! } if (sflag) ! max_time >>= 1; } min_year = TM_YEAR_BASE + gmtime(&min_time)->tm_year; max_year = TM_YEAR_BASE + gmtime(&max_time)->tm_year;