lepreau@utah-cs.UUCP (Jay Lepreau) (01/06/84)
Index: lib/libc/gen/ctime.c 4.2BSD Fix Description: For negative GMT times, which in the USA can be positive local times, ctime prints out garbage. Matter of fact it is so garbaged that the year has a ^A in it! In particular, this is a problem with local times of 0. gmtime() turns out to be the culprit. Repeat-By: main() /* in timezones west of greenwich */ { int zero = 0; printf("%s", ctime(&zero)); } Fix: This happened cause the types of all the "time" variables in ctime.c have been changed from long in 4.1 to unsigned long in 4.2. Note that sys/types.h says that time_t is long, as do all the man pages. Plus I seem to remember seeing somewhere in the Unix docco that negative times are supposed to "work." And finally, 7fffffff is year 2038, and I expect Unix will be long dead by then, even if the world isn't. All you really have to change are the types in gmtime() itself: 206c206 < unsigned long *tim; --- > long *tim; 209c209 < unsigned long hms, day; --- > long hms, day;