* localtime.c (time1): Shrink size of 'types' local back down
from TZ_MAX_TIMES to TZ_MAX_TYPES. The smaller value suffices,
since nseen can grow to at most TZ_MAX_TYPES. (Thanks to
Arthur David Olson.)
* NEWS: Remove mention of non-fix.
* localtime.c (tzload) [ALL_STATE]:
Redo to keep the stack frame tiny.
(time1): Shrink sizes of local arrays so that this stack frame
doesn't take much more than about TZ_MAX_TIMES bytes total.
* Makefile (DOCS): Move $(WEB_PAGES) here ...
(MISC): ... from here, so that they can contain UTF-8.
* tz-art.htm, tz-link.htm: Switch to UTF-8 encoding.
Prefer UTF-8 to HTML entities, e.g., prefer '–' to '–'.
* Makefile (INVALID_CHAR1): Rename to SAFE_CHARSET1.
(INVALID_CHAR2): Rename to SAFE_CHARSET2.
(INVALID_CHAR3): Rename to SAFE_CHARSET3.
(INVALID_CHAR): Remove.
(SAFE_CHARSET, SAFE_CHAR, SAFE_LINE, SAFE_SHARP_LINE, VALID_LINE):
New macros.
(check_character_set): Allow any UTF-8 character in some contexts,
including comments in the data, and in some auxiliary commentary files.
(Thanks to Milamber Space Network.)
* africa (Morocco): 2014 transitions are Jun 28 03:00 and Aug 2 02:00.
Guess a similar pattern for future years. Fix white space to be
more consistent.
* NEWS: Document this.
* africa (Egypt): 2014 transitions are June 26 and July 31 at 24:00.
(Thanks to Imed Chihi.) Guess a similar pattern for future years,
namely, DST is not observed in Ramadan, nor in the days following the
last Thursday before Ramadan, nor in the days preceding the first
Friday after Ramadan.
* NEWS: Document this.
since they're in free association with NZ not Australia.
Mention notation problem with Chatham.
(Thanks to Hank W.)
This change doesn't alter the data files produced.
This should help forestall flame wars among competing camps of physicists.
(Thanks to James Cloos.)
* NEWS, zic.8 (NOTES): Document this.
* zic.c (BIG_BANG): Use - 2**59 rather than a more-precise estimate.
* zic.c (inleap): Reject leap seconds preceding big_bang_time.
(Thanks to Arthur David Olson.) Also, remove redundant test and cast.
* NEWS: Document this.
This works around Gnome bug 730332
<https://bugzilla.gnome.org/show_bug.cgi?id=730332>.
zic 2014c introduced the idea of generating a transition at the
minimum time value -2**63, to avoid ambiguities about what to do
before the first real transition. Through Glib release 2.40, the
interval_end function of Glib's gtimezone.c subtracts one from
this, to find the end time of the zeroth interval (i.e., the
interval containing all the "early" time stamps); this subtraction
typically overflows and wraps around to 2**63 - 1, which causes
Glib to go off the rails and assume that all time stamps are
"early". For example, Glib computes Sao Paulo time stamps as if
Brazil's circa-1913 rules were still in effect.
(Thanks to Leonardo Chiquitto for reporting the bug.)
Work around the bug by not generating time stamps equal to -2**63.
Come to think of it, time stamps before the Big Bang are physically
suspect anyway, so don't generate time stamps before the Big Bang.
* Makefile (GCC_DEBUG_FLAGS): Add comment re BIG_BANG.
* NEWS, zic.8 (NOTES): Document this.
* zic.c (BIG_BANG): New macro.
(big_bang_time): New constant.
(writezone, outzone, addtt): Compare to big_bang_time, not to
min_time, when deciding whether to output a time stamp.
(Thanks to Ahmad El-Dardiry.)
* NEWS: Document this.
* africa (Egypt): Add rules for 2014 through 2038. They all
involve some guesswork, unfortunately.
* zic.c (writezone, outzone): Arrange things so that binary files
include "transition" entries for minimum time values; these
entries eliminate localtime guesswork in handling low-valued time
stamps. The bad news: binary files grow slightly as a result of
these changes. The good news: there are no changes in the output
of "zdump -v" applied to before-and-after versions of all the
binary files generated by a "make install".
These were part of commit fada9b7b05
dated 2013-05-23 12:19:13 -0700.
* zic.c (writezone): Don't set type 0 to that of lowest-valued time.
(writezone, outzone): Don't reserve type 0.
* antarctica (Antarctica/Troll), NEWS: Uncomment, but with an
approximation that uses only UTC and CEST. (Thanks to Bengt-Inge
Larsson.)
* zone.tab (Antarctica/Troll): New entry.
This lets zic handle the time rules of Troll station,
Antarctica. Adapted from a fix by Zefram in:
http://mm.icann.org/pipermail/tz/2014-March/020759.html
* zic.c (timecnt_alloc): New static var.
(attypes): Now a pointer to an array, not a fixed size array.
(writezone, addtt): Don't assume the number of times is less than
TZ_MAX_TIMES.
* NEWS: Document this.
Also, allocate memory faster by growing buffers by a factor of 1.5
each time, rather than simply adding 1 to the size.
* private.h (SIZE_MAX): New macro, for older systems lacking it.
* zic.c (nrules_alloc, nzones_alloc, nlinks_alloc): New static vars.
(memory_exhausted, size_product, growalloc): New functions.
(memcheck, inrule, inzsub, inlink, getfields): Use them.