{ seismo!mnetor  cbosgd!utcs  watmath  decvax!utcsri  ihnp4!utzoo  } !lsuc!dave

(Note: this is cross-posted to several groups to increase its
chances of being seen by those who will want it. Followups are
directed to comp.bugs.misc.)

Both the U.S. and Canada (well, Ontario and at least some of the
other provinces) are adopting the new daylight savings time rules,
switching to DST the first Sunday in April instead of the last,
beginning in 1987.  Below is a diff for /usr/src/libc/gen/ctime.c
for v7 systems; if you're running v7 you should be able to feed
this article right into "patch".

Once you make the change to ctime.c, anything which calls
ctime(3), localtime(3) or getdate(3) should be recompiled.
I've gone through the source on our system, and found all
the commands that call these routines.
To be absolutely correct for the future, all of these should be
recompiled after the ctime change is installed.  Some of the
requirements are pretty minor, however; things like adb and awk
use ctime for diagnotic purposes only, I believe.

Here are the commands I'll be changing.  This is under Perkin-Elmer
Edition VII Workbench.  Other systems will differ; grep for
getdate, localtime and cdate through your source files.

/usr/src/cmd (basic v7 stuff):
make adb tp xsend spool/lpd awk learn uucp/* tar refer mail
ac at atrun calendar cron date ar find info iostat login ls
pr prof sa who write

/usr/src/ucb (stuff which came from Berkeley):
ex/exrecover snake daytime tod finger script ucbmail

/usr/sys/cmd (v7 and Berkeley stuff which is hardware-specific):
dmesg dump dumpdir fsck restor restor512 w

/usr/src/local (stuff off the net, etc.):
clock hdate logacct type whopast notes diff cpio news month
dumpdates last lastdown lastlog logcount lu talloc msgs

Now, to the ctime.c diffs:

The changed file will have #define NorthAm but not USA, which is
correct for Canada. If you are in the USA, add #define USA as well.
(The 1974-75 change didn't apply in Canada.)

(I also put in a minor speedup posted to the net a while back;
the test of year==74||year==75 is changed to year<=75&&year>=74,
which it a bit faster for dates between 1975 and 1987.)

