Also, a historical split.
* europe: Add commentary describing proposed future zones Asia/Chita and
Asia/Srednekolymsk, as well as proposed historical split Asia/Tiksi.
* NEWS: Document this.
This borrows heavily from Oscar van Vlijmen's earlier work here.
Mention recent mergers of regions as well.
* europe (Europe/Volgograd): Reattribute old comment to Paul Eggert.
(Asia/Yakutsk): Confirm that Zabaykalsky Krai will need its own zone
from 2014-10-26.
(Asia/Vladivostok): Mention that Bulunsky District will need its own
zone to correctly record its history.
(Asia/Magadan): Mention that the parts of Sakha (Yakutia) Republic and
the North Kuril Islands covered by this zone will need their own zone
from 2014-10-26.
* NEWS: Document this.
* europe: Fix an 80-column issue in commentary.
(Asia/Novokuznetsk): Switch abbreviation from NOVT to KRAT on 2014-10-26
at 02:00.
(Asia/Krasnoyarsk, Asia/Khandyga, Asia/Sakhalin, Asia/Ust-Nera):
Subtract an hour on 2014-10-26 at 02:00.
(Asia/Magadan): Subtract two hours at that time.
* zone.tab (Europe/Samara, Asia/Novokuznetsk, Asia/Magadan, Asia/Kamchatka)
(Asia/Anadyr): Update descriptions relative to Moscow time.
* NEWS: Document this.
* asia (Asia/Taipei):
DST in 1946 was adopted from May 15 through Sep 30.
DST in 1947 was adopted form Apr 15 through Oct 31.
DST in 1979 was adopted from Jul 1 through Sep 30.
* europe (Europe/Kaliningrad, Europe/Moscow, Europe/Simferopol)
(Europe/Volgograd, Asia/Yekaterinburg, Asia/Omsk)
(Asia/Novosibirsk, Asia/Irkutsk, Asia/Yakutsk, Asia/Vladivostok):
The transition this fall is at 02:00 local time, not 02:00 Moscow time.
The newspaper report was wrong. Also, add pointers to the bill and to
Krivenyshev's table. (Thanks to Alexander Krivenyshev.)
(Thanks to Yu-Cheng Chuang.) Also, update time zone abbreviations for
Japan's two time zones used 1896-1937. JWST now stands for Western
Standard Time, and JCST for Central Standard Time (formerly this was CJT).
* asia (Taiwan): Omit DST during 1945.
(Asia/Taipei): Add a transition to JWST on 1896-01-01, then to
JST on 1937-10-01, then to CST on 1945-10-25.
(Asia/Tokyo): Rename CJT to JCST. Transition to JCST was 1937-10-01,
not 1938.
(Asia/Seoul, Asia/Pyongyang): Call UT+9 "JCST" until 1937-01-01,
"JST" thereafter. Assume JCST/JST until Allied takeover after WWII.
* NEWS: Document this.
(Thanks to Alexander Krivenyshev.)
* europe: Document FET separately. Add a comment about
whether Zabajkal'skij kraj needs a separate zone.
(Europe/Kaliningrad, Europe/Moscow, Europe/Simferopol, Europe/Volgograd)
(Asia/Yekaterinburg, Asia/Omsk, Asia/Novosibirsk, Asia/Irkutsk)
(Asia/Yakutsk, and Asia/Vladivostok): Subtract an hour from the
time zone on 2014-10-26 at 02:00 Moscow time.
(Europe/Simferopol): Move to after Europe/Moscow, to simplify
similar maintenance in the future.
* NEWS: Document this.
* antarctica (Antarctica/Casey): Spell out AWST in comment.
* tz-link.htm: Use CST instead of EST in the example, as in Theory, to
match the current database.
* zic.8: Update Australia/Adelaide Zone line example to match current
usage.
* NEWS, asia: Document this.
* asia (Asia/Harbin, Asia/Chongqing, Asia/Kashgar): Remove.
These are now links in 'backward'.
(Asia/Shanghai): Change pre-standard-time offset from 8:05:57 to
8:05:43. Change transition to standard time from 1928 to 1901.
(Asia/Urumqi): Remove 1980 transition to UTC+8.
* backward (Asia/Harbin, Asia/Chongqing, Asia/Kashgar): New links.
(Asia/Chungking): Avoid link-to-link.
* zone.tab (Asia/Harbin, Asia/Chongqing, Asia/Kashgar): Remove.
* 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.
* NEWS, australasia (Aus, Australia/Darwin, AW, Australia/Perth)
(Australia/Eucla, AQ, Holiday, Australia/Brisbane, Australia/Lindeman)
(AS, Australia/Adelaide, AT, Australia/Hobart, Australia/Currie, AV)
(Australia/Melbourne, AN, Australia/Sydney, Australia/Broken_Hill)
(LH, Australia/Lord_Howe, Antarctica/Macquarie):
Prefix Australian time zone abbreviations with "A", and switch
from "ST" to "DT" to denote daylight saving time. (Thanks to Ian
Abbott, Russ Allbery, Timothy Arceri, Alan Barrett, Stuart Bishop,
Shaun Bouckaert, Stephen Colebourne, Tobias Conradi, Mark Davis,
Robert Elz, Clive D.W. Feather, Dennis Ferguson, Edwin Groothuis,
Guy Harris, John Hawkinson, John Haxby, Brian Inglis, Paul Koning,
Kevin Lyda, Curtis Manwaring, Alan Mintz, Arthur David Olson, Matt
Paine, David Patte, Tim Parenti, random832, Derick Rethans, SM,
Peter Stagg, Rich Tibbett, Bennett Todd, and Garrett Wollman for
their contributions to this topic.)
Using '\-' to denote ASCII minus has problems in groff output, since
it generates a minus sign in the current font, and if you cut and
paste from the documentation the resulting text won't work. To avoid
the problem, define a string \*- that expands to ASCII minus in a
constant-width font in groff. Also, change some instances of \(mi and
\(pl to use plain \- and +, since we no longer need special fonts for
these. Finally, remove some no-longer-needed instances of "\^" after
italicized words.
* tz-link.htm, NEWS: Mention Moment Timezone, TimezoneJS.Date, Walltime-js,
and Timezone. (Thanks to a heads-up from Matt Johnson.) Also, list
license for timezone-olson.
* zic.8, NEWS: Say that "." and ".." file name
components are not allowed in output file names.
* zic.c (componentcheck, namecheck): Do not allow such
file name components.
* zic.c: Use angle brackets for <sys/stat.h>.
(dolink): Don't try to link from a directory, as this can
cause trouble on some systems when superuser.
(dolink, itsdir): Rewrite to avoid use of 'access', which is
problematic when setuid.
(itsdir): If S_ISDIR is defined, use plain 'stat' and S_ISDIR;
that's more reliable. Return -1 if trouble; all callers changed.
(mkdirs): Simplify by using mkdir-itsdir rather than
itsdir-mkdir-itsdir. Don't assume strerror preserves errno.
* zdump.c, zic.c: Don't include <ctype.h>, because the behavior if
its macros is locale-dependent if HAVE_GETTEXT, and we want the C
locale's semantics. Instead, use portable replacements for
ctype.h operations, with the desired semantics. All uses of
isalpha etc. replaced by calls to new functions is_alpha etc. or
by inline code.
(isascii): Remove.
(is_alpha): New function.
* zic.c (doabbr): Simplify by using is_alpha.
(is_space): New function.
* NEWS: Document the above.
* zic.c (componentcheck, namecheck): Warn about all '.'s in
the file name, not merely about "." and ".." file name components.
* zic.8 (DESCRIPTION), NEWS: Document this.
For *.txt files, UTF-8 is not that important, and avoiding it
is better for users with older or misconfigured manpage readers.
* Makefile (check_character_set): Check that *.txt files
contain only safe characters.
($(MANTXTS)): Build *.txt files in the C locale, not in en_US.utf8.
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.
* Makefile (NONSYM_CHAR, NONSYM_LINE): New macros.
(SAFE_SHARP_LINE): Don't let comments contain troublesome symbols.
(check_character_set): Don't let troublesome symbols appear in
source files, and don't let non-ASCII appear in .html files.
Change attributions for contributors' names using the Latin alphabet
only where it was possible to reconstruct from mailing list records.
Leave attributions for Андрей Чернов, Иофис Герман Романович, and 李耀
宗 with their romanized versions instead (Andrey A. Chernov, German
Iofis, and Lee Yiu Chung, respectively).
(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.
These changes pacify gcc 4.8.2-19ubuntu1 on Ubuntu 14.04,
and take advantage of recently-added GCC options when compiling
with GCC_DEBUG_FLAGS.
* Makefile (GCC_DEBUG_FLAGS): Add -Wdeclaration-after-statement,
-Wjump-misses-init, -Wsuggest-attribute=format.
* date.c (copyright, sccsid):
* strftime.c (sccsid):
Remove unused vars.
* date.c (main):
* localtime.c (tzparse):
Remove no-longer-needed uses of INITIALIZE; GCC is smart enough to
figure these out on its own now.
* localtime.c (gmtsub): Redo initialization of gmt_is_set to pacify GCC.
Retry malloc next time even if it failed this time.
* private.h, zdump.c (GNUC_or_lint): Remove, as it provoked a GCC
diagnostic about unused macros in some cases. Instead, just use
'lint'. All uses removed.
(TZ_DOMAIN): Don't define unless needed, as otherwise it provokes
a GCC diagnostic about unused macros.
* private.h (INITIALIZE): Simplify accordingly.
* NEWS: Document this.