This implements part of RFC-2217
It's based off a patch originally written by Sujal Patel at Isilon, and
contributions from other Isilon employees.
PR: 173728
Phabric: D995
Reviewed by: markj, markm
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division
sufficiently from upstream (including a full whitespace commit and large
portions rewritten) that this change does not move us further from the
upstream.
PR: docs/186608
Submitted by: Jamie Landeg-Jones <jamie@dyslexicfish.net>
MFC after: 3 days
The stdtime sources were moved from lib/libc to contrib/tzcode, and tzfile.h
is not an installed header, so the man page refers to its location in the
source tree.
The documentation could be more clear about the internal nature of the
header, but those changes should go through upstream tzcode.
PR: docs/176864
Approved by: hrs (mentor)
asctime.c:
* Set errno to EINVAL and return "??? ??? ?? ??:??:?? ????\n" if
asctime_r is called with a NULL struct tm pointer. (Note that
asctime_r is called by ctime_r and asctime; asctime is called by
ctime.)
localtime.c:
* Set errno to EINVAL and return WRONG if time1 is called with a
NULL struct tm pointer; avoid dereference if a NULL struct tm
pointer is passed to timelocal, timegm, or timeoff. (Note that
time1 is called by mktime, timegm, and timeoff; mktime is called
by timelocal.)
* more core-avoidance work
* Change to set timezone and altzone based on time types with
greatest transition times (for the benefit of Asia/Seoul).
zic.8:
* Warning about case-sensitivity of names, but not of abbrevations
zic.c:
* Conditionally output extra types with most-recently-use offsets
last (for use by systems with pre-2011 versions of localtime.c,
helping to ensure that globals "altzone and "timezone" get set
correctly).
The code has been running for nearly four weeks on my laptop running
FreeBSD 8.1 without a problem.
MFC after: 1 month
The Makefiles are leftovers from the copies and should live in usr.sbin/zic/*
From usr.sbin/zic:
The sources are from a vendor contributed source, therefore should
live in contrib/tzcode/zic.