In particular, this patch is makes the commentary more systematic
about preferring "time zone" to "timezone" except when quoting someone
else or when talking about code that uses "timezone".
It allows multiple country codes per zone. Switch code and data to
use the new format, along with the recently-added Crozet Islands entry.
The old zone.tab file is still installed but is deprecated.
The new file uses UTF-8; add commentary saying that iso3166.tab is
planned to change to UTF-8.
* Theory, tzselect.8 (FILES): zone.tab -> time.tab.
* africa (Indian/Alfred_Faure): Remove link.
* antarctica: Mention Possession Island in comments.
* checktab.awk: Add support for checking time.tab.
* iso3166.tab: Mention planned switch to UTF-8.
Update ISO 3166-1 Newsletter from VI-15 to VI-16.
* time.tab: New file.
* tzselect.ksh (zonetabtype): New variable.
Add undocumented -t option, meant for developer testing.
(TZ_ZONE_TABLE): Use zonetabtype.
(output_distances, countries, regions, TZ): Support time.tab format.
(quoted_continents, distance_table, countries, regions)
(TZ, TZ_for_date): Quote shell strings more carefully.
* zone.tab: Refer to time.tab for detailed comments about format.
(Indian/Alfred_Faure): Remove.
* Makefile (TIMETABLES): New macro.
(TABDATA, install, check_tables): Use it.
(check_character_set, check_tables): Check time.tab too.
(check_time_t_alternatives): Use time.tab, not zone.tab.
* NEWS: Document the above.
* Theory: Use CST instead of EST in the example, so that it matches
the current database.
* antarctica (Antarctica/Casey): AWST, not WST.
* asia (Asia/Jayapura): ACST, not CST.
* australasia: Prepend "[A]" to "EST" in quote about EST.
Also, document the longstanding exceptions to POSIX.
Derived from Arthur David Olson's patch in:
http://mm.icann.org/pipermail/tz/2014-June/021052.html
* Theory: Document the exceptional file name components in 'etcetera'
and 'backward' that contain '+' or digits, or are too long.
* zic.8 (DESCRIPTION): Document the change to zic.
* zic.c (component_length_check, namecheck): New functions.
(dolink, writezone): Use them to check that file name components
obey the POSIX rules, and do not contain "." or "..".
* NEWS: Document the above.
(Thanks to Garrett Wollman for reporting the problem.)
* NEWS, Theory, northamerica: Add "coding: utf-8" directives so
that GNU Emacs, when run in a unibyte locale, does not mistakenly
interpret these files to be unibyte. This change should make no
difference if you use Emacs to read these files in a UTF-8 locale.
I didn't bother to add coding directives to files where GNU Emacs
already deduces the encoding correctly in a Latin-1 locale.
Garrett Wollman reported privately that XEmacs 21.4.22, the current
stable version, doesn't work with the UTF-8 recently introduced
into our commentary. For example, the UTF-8 character '−'
(MINUS SIGN), which is stored as the three bytes "\342\210\222",
displays as 'â\210\222'. For proper names this is annoying but
tolerable, as there's little loss in utility from (say) 'Racoviță'
to its display form 'RacoviÈ\233Ä\203'. But for symbols this is a
real pain that can make it hard to understand the documentation, e.g.,
'Release 2014e – 2014-06-12 21:53:52 −0700' displays as
'Release 2014e â\200\223 2014-06-12 21:53:52 â\210\2220700'.
To work around this problem, make the following substitutions in
commentary to mostly revert these symbols to their pre-UTF-8 versions:
'§' -> 'section', '°' -> 'degrees', '±' -> '+-', '–' -> '-' (en
dash), '—' -> '--' (em dash), '′' -> "'", '″' -> '"', '→' -> '->',
'−' -> '-' (minus sign), '≤' -> '<='. Leave proper names and
foreign words in UTF-8.
Most of this patch is to commentary, to distinguish better among
the similar characters hyphen '-', minus sign '−', en dash '–' (used
for ranges), and em dash '—'. Render ordinary dashes in text as
spaced en dashes, as this gives better-looking results in monospaced
fonts.
* yearistype.sh, zic.c: Reword diagnostics so that they do not use
hyphens as if they were dashes. Since we are sticking to ASCII in
programs, we can't use proper dashes in diagnostics.
In several cases our text files had commentary like this:
# Egypt to cancel daylight saving time
# <a href="http://www.almasryalyoum.com/en/node/407168">
# http://www.almasryalyoum.com/en/node/407168
# </a>
where lines 2 and 4 let the file be viewed by a browser with the
URL being clickable. In practice this approach does not work with
many modern browsers (I tested with Firefox and with Chrome) and
it clutters up the data, so in cases like the above this patch
removes lines 2 and 4.
(Problem reported by Steffen "Daode" Nurpmeso.)
This was experimental, and it appears that the tzwinnow
approach will be better. We need to cut a new stable
release soon, and the -t option might make it harder to
integrate tzwinnow later, so let's omit -t for now.
* .gitignore: Remove time.tab.
* Makefile (ZONETABTYPE): Remove. All uses removed.
(time.tab): Remove. All uses removed.
* Theory: Omit discussion of time.tab.
* zone-time.awk: Remove.
* tzselect.8: Omit -t and time.tab.
* tzselect.ksh (ZONETABTYPE): Remove. All uses removed.
Remove -t ZONETABTYPE option.
* zone.tab: Restore first comment line, since there's no longer
a need to distinguish this file from time.tab.
In several places the code and documentation incorrectly used
"UTC" to describe time stamps that might precede the introduction
of UTC and for which UTC is therefore undefined. Change these
uses to "UT", as that's the correct term when talking about these
time stamps. Problem reported by Steve Allen in
<http://mm.icann.org/pipermail/tz/2013-September/019907.html>.
The major compatibility issue here is with 'zdump -v'; it'll now
output "UT" instead of the possibly-incorrect "UTC".
Many files change in minor ways in the commentary.
* zdump.c (show):
* zic.c (inzsub, addtype):
In output, say "UT" rather than "UTC", since the time stamp we're
talking about might precede the introduction of UTC.
These come from POSIX or similar platforms, or from the standard
'zic' implementation, but never got written down anywhere.
* Theory: Document other POSIX-inspired restrictions on names.
* zic.8 (DESCRIPTION): Document that zic's behavior is unspecified
if some names are duplicates. Sometimes it complains, sometimes not.
This change stemmed from a long discussion on the tz mailing list
about what country the Jerusalem zone entry is in. The idea of
this change is to deemphasize the role of countries in the tz
database, to lessen the amount of controversy in the future.
Due to backward compatibility concerns this change does not eliminate
the role of countries entirely. With one minor exception this
change does not alter any code or data, just comments.
* Theory, zone.tab: Deemphasize the role of countries in choosing
location names, as they tend to introduce political conflict
during maintenance, and country information isn't needed for
typical uses of the database.
* Theory: Say that names should differ in more than just case, and why;
and explain why 'backward' means old names will continue to work.
(thanks to Norbert Lindenberg for spotting these issues).
Update citation date and URL.
* iso3166.tab: Mention latest maintenance update.
Update citation URL. Add missing comma for BQ.
Be more consistent about abbreviating Sint like Saint.
Mention SX "Dutch part" for consistency with MF "French part".
* iso3166.tab, zone.tab: Add legal/territorial disclaimer.
* zone.tab: Say that country/zone overlaps can occur in both
directions, and that column 2 need not lie within column 1.
(Asia/Jerusalem): Change the coordinates from a sloppy value,
taken from an old astrology book, to a more-precise value, the
site of city hall. The sloppy value sparked some controversy and
the hope is that the more-precise value will be a bit less
controversial.