aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-11-10 02:42:49 +0000
committerUlrich Drepper <drepper@redhat.com>1999-11-10 02:42:49 +0000
commit2864e767053317538feafa815046fff89e5a16be (patch)
treea52fa311533e331ee0dbf609092e5cf6dc554b82
parentf2b9733fd6af9cd7e2aac553db4b30c96b83f66c (diff)
downloadglibc-2864e767053317538feafa815046fff89e5a16be.zip
glibc-2864e767053317538feafa815046fff89e5a16be.tar.gz
glibc-2864e767053317538feafa815046fff89e5a16be.tar.bz2
Update.
1999-11-09 Ulrich Drepper <drepper@cygnus.com> * elf/dl-load.c (_dl_dst_count): Allow $ORIGIN to point to directory with the reference since this is as secure as using the object with the dependency. (_dl_dst_substitute): Likewise. * elf/dl-load.c (_dl_dst_count): Change strings in first two strncmp calls to allow reuse. (_dl_dst_substitute): Likewise. 1999-11-01 Arnold D. Robbins <arnold@skeeve.com> * posix/regex.c (init_syntax_once): move below definition of ISALNUM etc., then use ISALNUM to init the table, so that the word ops will work if i18n'ed. (SYNTAX): And subscript with 0xFF for 8bit character sets. 1999-11-09 Andreas Jaeger <aj@suse.de> * sysdeps/unix/getlogin_r.c (getlogin_r): Sync with getlogin implementation for ttyname_r call; fix inverted condition; return ut_user. Closes PR libc/1438. 1999-11-09 Ulrich Drepper <drepper@cygnus.com> * timezone/checktab.awk: Update from tzcode1999h. * timezone/africa: Update from tzdata1999i. * timezone/asia: Likewise. * timezone/australasia: Likewise. * timezone/backward: Likewise. * timezone/europe: Likewise. * timezone/northamerica: Likewise. * timezone/southamerica: Likewise. * timezone/iso3166.tab: Likewise. * timezone/zone.tab: Likewise. * sysdeps/unix/sysv/linux/bits/resource.h: Define values also as macros. Patch by brg@csua.berkeley.edu [PR libc/1439]. 1999-11-09 Andreas Jaeger <aj@suse.de> * posix/Makefile (tests): Added tst-getlogin. * posix/tst-getlogin.c: New file, contains simple tests for getlogin and getlogin_r. 1999-11-09 Andreas Schwab <schwab@suse.de> * misc/syslog.c: For LOG_PERROR only append a newline if necessary.
-rw-r--r--ChangeLog52
-rw-r--r--elf/dl-load.c38
-rw-r--r--manual/search.texi8
-rw-r--r--misc/syslog.c12
-rw-r--r--posix/Makefile2
-rw-r--r--posix/regex.c77
-rw-r--r--posix/tst-getlogin.c58
-rw-r--r--sysdeps/unix/getlogin_r.c32
-rw-r--r--sysdeps/unix/sysv/linux/bits/resource.h3
-rw-r--r--timezone/africa30
-rw-r--r--timezone/asia85
-rw-r--r--timezone/australasia70
-rw-r--r--timezone/backward3
-rw-r--r--timezone/checktab.awk4
-rw-r--r--timezone/europe55
-rw-r--r--timezone/iso3166.tab17
-rw-r--r--timezone/northamerica68
-rw-r--r--timezone/southamerica147
-rw-r--r--timezone/zone.tab15
19 files changed, 450 insertions, 326 deletions
diff --git a/ChangeLog b/ChangeLog
index cd3953c..f3d9cad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+1999-11-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c (_dl_dst_count): Allow $ORIGIN to point to
+ directory with the reference since this is as secure as using the
+ object with the dependency.
+ (_dl_dst_substitute): Likewise.
+
+ * elf/dl-load.c (_dl_dst_count): Change strings in first two
+ strncmp calls to allow reuse.
+ (_dl_dst_substitute): Likewise.
+
+1999-11-01 Arnold D. Robbins <arnold@skeeve.com>
+
+ * posix/regex.c (init_syntax_once): move below definition of
+ ISALNUM etc., then use ISALNUM to init the table, so that
+ the word ops will work if i18n'ed.
+ (SYNTAX): And subscript with 0xFF for 8bit character sets.
+
+1999-11-09 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/getlogin_r.c (getlogin_r): Sync with getlogin
+ implementation for ttyname_r call; fix inverted condition; return
+ ut_user. Closes PR libc/1438.
+
+1999-11-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * timezone/checktab.awk: Update from tzcode1999h.
+ * timezone/africa: Update from tzdata1999i.
+ * timezone/asia: Likewise.
+ * timezone/australasia: Likewise.
+ * timezone/backward: Likewise.
+ * timezone/europe: Likewise.
+ * timezone/northamerica: Likewise.
+ * timezone/southamerica: Likewise.
+ * timezone/iso3166.tab: Likewise.
+ * timezone/zone.tab: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/resource.h: Define values also as
+ macros. Patch by brg@csua.berkeley.edu [PR libc/1439].
+
+1999-11-09 Andreas Jaeger <aj@suse.de>
+
+ * posix/Makefile (tests): Added tst-getlogin.
+
+ * posix/tst-getlogin.c: New file, contains simple tests for
+ getlogin and getlogin_r.
+
+1999-11-09 Andreas Schwab <schwab@suse.de>
+
+ * misc/syslog.c: For LOG_PERROR only append a newline if
+ necessary.
+
1999-11-08 Ulrich Drepper <drepper@cygnus.com>
* elf/elf.h: Add STT_REGISTER, STT_HP_OPAQUE, and STT_ST_STUB
diff --git a/elf/dl-load.c b/elf/dl-load.c
index eb3c415..2d54786 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -149,21 +149,31 @@ local_strdup (const char *s)
size_t
_dl_dst_count (const char *name, int is_path)
{
+ const char *const start = name;
size_t cnt = 0;
do
{
size_t len = 1;
- /* $ORIGIN is not expanded for SUID/GUID programs. */
- if ((((!__libc_enable_secure
- && strncmp (&name[1], "ORIGIN", 6) == 0 && (len = 7) != 0)
- || (strncmp (&name[1], "PLATFORM", 8) == 0 && (len = 9) != 0))
+ /* $ORIGIN is not expanded for SUID/GUID programs.
+
+ Note that it is no bug that the strings in the first two `strncmp'
+ calls are longer than the sequence which is actually tested. */
+ if ((((strncmp (&name[1], "ORIGIN}", 6) == 0
+ && (!__libc_enable_secure
+ || ((name[7] == '\0' || (is_path && name[7] == ':'))
+ && (name == start || (is_path && name[-1] == ':'))))
+ && (len = 7) != 0)
+ || (strncmp (&name[1], "PLATFORM}", 8) == 0 && (len = 9) != 0))
&& (name[len] == '\0' || name[len] == '/'
|| (is_path && name[len] == ':')))
|| (name[1] == '{'
- && ((!__libc_enable_secure
- && strncmp (&name[2], "ORIGIN}", 7) == 0 && (len = 9) != 0)
+ && ((strncmp (&name[2], "ORIGIN}", 7) == 0
+ && (!__libc_enable_secure
+ || ((name[9] == '\0' || (is_path && name[9] == ':'))
+ && (name == start || (is_path && name[-1] == ':'))))
+ && (len = 9) != 0)
|| (strncmp (&name[2], "PLATFORM}", 9) == 0
&& (len = 11) != 0))))
++cnt;
@@ -180,6 +190,7 @@ char *
_dl_dst_substitute (struct link_map *l, const char *name, char *result,
int is_path)
{
+ const char *const start = name;
char *last_elem, *wp;
/* Now fill the result path. While copying over the string we keep
@@ -195,8 +206,10 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
const char *repl;
size_t len;
- if ((((strncmp (&name[1], "ORIGIN", 6) == 0 && (len = 7) != 0)
- || (strncmp (&name[1], "PLATFORM", 8) == 0 && (len = 9) != 0))
+ /* Note that it is no bug that the strings in the first two `strncmp'
+ calls are longer than the sequence which is actually tested. */
+ if ((((strncmp (&name[1], "ORIGIN}", 6) == 0 && (len = 7) != 0)
+ || (strncmp (&name[1], "PLATFORM}", 8) == 0 && (len = 9) != 0))
&& (name[len] == '\0' || name[len] == '/'
|| (is_path && name[len] == ':')))
|| (name[1] == '{'
@@ -205,7 +218,12 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
&& (len = 11) != 0))))
{
repl = ((len == 7 || name[2] == 'O')
- ? (__libc_enable_secure ? NULL : l->l_origin)
+ ? (__libc_enable_secure
+ && ((name[len] != '\0'
+ && (!is_path || name[len] != ':'))
+ || (name != start
+ && (!is_path || name[-1] != ':')))
+ ? NULL : l->l_origin)
: _dl_platform);
if (repl != NULL && repl != (const char *) -1)
@@ -259,7 +277,7 @@ expand_dynamic_string_token (struct link_map *l, const char *s)
size_t total;
char *result;
- /* Determine the nubmer of DST elements. */
+ /* Determine the number of DST elements. */
cnt = DL_DST_COUNT (s, 1);
/* If we do not have to replace anything simply copy the string. */
diff --git a/manual/search.texi b/manual/search.texi
index f561ef9..ec82e1c 100644
--- a/manual/search.texi
+++ b/manual/search.texi
@@ -475,9 +475,11 @@ elements.
To remove a specific element matching @var{key} from the tree
@code{tdelete} can be used. It locates the matching element using the
same method as @code{tfind}. The corresponding element is then removed
-and the data if this tree node is returned by the function. If there is
-no matching entry in the tree nothing can be deleted and the function
-returns @code{NULL}.
+and a pointer to the parent of the deleted node is returned by the
+function. If there is no matching entry in the tree nothing can be
+deleted and the function returns @code{NULL}. If the root of the tree
+is deleted @code{tdelete} returns some unspecified value not equal to
+@code{NULL}.
@end deftypefun
@comment search.h
diff --git a/misc/syslog.c b/misc/syslog.c
index ee832fe..9690bf1 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -177,10 +177,14 @@ vsyslog(pri, fmt, ap)
v->iov_base = buf + msgoff;
v->iov_len = bufsize - msgoff;
- ++v;
- v->iov_base = (char *) "\n";
- v->iov_len = 1;
- (void)__writev(STDERR_FILENO, iov, 2);
+ /* Append a newline if necessary. */
+ if (buf[bufsize - 1] != '\n')
+ {
+ ++v;
+ v->iov_base = (char *) "\n";
+ v->iov_len = 1;
+ }
+ (void)__writev(STDERR_FILENO, iov, v - iov + 1);
}
/* Prepare for multiple users. We have to take care: open and
diff --git a/posix/Makefile b/posix/Makefile
index f8e72b6..7861bdf 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -57,7 +57,7 @@ include ../Makeconfig
aux := init-posix environ
tests := tstgetopt testfnm runtests runptests \
- tst-preadwrite test-vfork regexbug1
+ tst-preadwrite test-vfork regexbug1 tst-getlogin
ifeq (yes,$(build-shared))
test-srcs := globtest
tests += wordexp-test
diff --git a/posix/regex.c b/posix/regex.c
index 16e91f1..04df21e 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -164,46 +164,6 @@ char *realloc ();
# define SWITCH_ENUM_CAST(x) (x)
# endif
-/* How many characters in the character set. */
-# define CHAR_SET_SIZE 256
-
-# ifdef SYNTAX_TABLE
-
-extern char *re_syntax_table;
-
-# else /* not SYNTAX_TABLE */
-
-static char re_syntax_table[CHAR_SET_SIZE];
-
-static void
-init_syntax_once ()
-{
- register int c;
- static int done;
-
- if (done)
- return;
-
- bzero (re_syntax_table, sizeof re_syntax_table);
-
- for (c = 'a'; c <= 'z'; c++)
- re_syntax_table[c] = Sword;
-
- for (c = 'A'; c <= 'Z'; c++)
- re_syntax_table[c] = Sword;
-
- for (c = '0'; c <= '9'; c++)
- re_syntax_table[c] = Sword;
-
- re_syntax_table['_'] = Sword;
-
- done = 1;
-}
-
-# endif /* not SYNTAX_TABLE */
-
-# define SYNTAX(c) re_syntax_table[c]
-
#endif /* not emacs */
/* Get the interface, including the syntax bits. */
@@ -276,6 +236,43 @@ init_syntax_once ()
# define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
#endif
+#ifndef emacs
+/* How many characters in the character set. */
+# define CHAR_SET_SIZE 256
+
+# ifdef SYNTAX_TABLE
+
+extern char *re_syntax_table;
+
+# else /* not SYNTAX_TABLE */
+
+static char re_syntax_table[CHAR_SET_SIZE];
+
+static void
+init_syntax_once ()
+{
+ register int c;
+ static int done = 0;
+
+ if (done)
+ return;
+ bzero (re_syntax_table, sizeof re_syntax_table);
+
+ for (c = 0; c < CHAR_SET_SIZE; ++c)
+ if (ISALNUM (c))
+ re_syntax_table[c] = Sword;
+
+ re_syntax_table['_'] = Sword;
+
+ done = 1;
+}
+
+# endif /* not SYNTAX_TABLE */
+
+# define SYNTAX(c) re_syntax_table[((c) & 0xFF)]
+
+#endif /* emacs */
+
/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we
use `alloca' instead of `malloc'. This is because using malloc in
re_search* or re_match* could cause memory leaks when C-g is used in
diff --git a/posix/tst-getlogin.c b/posix/tst-getlogin.c
new file mode 100644
index 0000000..75c0c5c
--- /dev/null
+++ b/posix/tst-getlogin.c
@@ -0,0 +1,58 @@
+/* Copyright (C) 1999 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+main (void)
+{
+ char *login;
+ int errors = 0;
+
+ login = getlogin ();
+ if (login == NULL)
+ puts ("getlogin returned NULL, no further tests");
+ else
+ {
+ char name[1024];
+ int ret;
+
+ printf ("getlogin returned: `%s'\n", login);
+
+ ret = getlogin_r (name, sizeof (name));
+ if (ret == 0)
+ {
+ printf ("getlogin_r returned: `%s'\n", name);
+ if (strcmp (name, login) != 0)
+ {
+ puts ("Error: getlogin and getlogin_r returned different names");
+ ++errors;
+ }
+ }
+ else
+ {
+ printf ("Error: getlogin_r returned: %d (%s)\n",
+ ret, strerror (ret));
+ ++errors;
+ }
+ }
+
+ return errors != 0;
+}
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index cb0545e..04b9905 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -40,20 +40,20 @@ getlogin_r (name, name_len)
int result = 0;
struct utmp *ut, line, buffer;
- {
- int d = __open ("/dev/tty", 0);
- if (d < 0)
- return errno;
+ /* Get name of tty connected to fd 0. Return if not a tty or
+ if fd 0 isn't open. Note that a lot of documentation says that
+ getlogin() is based on the controlling terminal---what they
+ really mean is "the terminal connected to standard input". The
+ getlogin() implementation of DEC Unix, SunOS, Solaris, HP-UX all
+ return NULL if fd 0 has been closed, so this is the compatible
+ thing to do. Note that ttyname(open("/dev/tty")) on those
+ systems returns /dev/tty, so that is not a possible solution for
+ getlogin(). */
- result = __ttyname_r (d, real_tty_path, sizeof (tty_pathname));
- (void) __close (d);
-
- if (result != 0)
- {
- __set_errno (result);
- return result;
- }
- }
+ result = __ttyname_r (0, real_tty_path, sizeof (tty_pathname));
+
+ if (result != 0)
+ return result;
real_tty_path += 5; /* Remove "/dev/". */
@@ -69,16 +69,16 @@ getlogin_r (name, name_len)
}
else
{
- size_t needed = strlen (ut->ut_line) + 1;
+ size_t needed = strlen (ut->ut_user) + 1;
- if (needed < name_len)
+ if (needed > name_len)
{
__set_errno (ERANGE);
result = ERANGE;
}
else
{
- memcpy (name, ut->ut_line, needed);
+ memcpy (name, ut->ut_user, needed);
result = 0;
}
}
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index 42e0d36..fcff605 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -219,6 +219,9 @@ struct rusage
enum __priority_which
{
PRIO_PROCESS = 0, /* WHO is a process ID. */
+#define PRIO_PROCESS PRIO_PROCESS
PRIO_PGRP = 1, /* WHO is a process group ID. */
+#define PRIO_PGRP PRIO_PGRP
PRIO_USER = 2 /* WHO is a user ID. */
+#define PRIO_USER PRIO_USER
};
diff --git a/timezone/africa b/timezone/africa
index d5d8544..69657c0 100644
--- a/timezone/africa
+++ b/timezone/africa
@@ -1,4 +1,4 @@
-# @(#)africa 7.31
+# @(#)africa 7.32
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
@@ -7,8 +7,8 @@
# From Paul Eggert <eggert@twinsun.com> (1999-03-22):
#
# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks, The International Atlas (4th edition),
-# San Diego: ACS Publications, Inc. (1995).
+# Thomas G. Shanks, The International Atlas (5th edition),
+# San Diego: ACS Publications, Inc. (1999).
#
# Gwillim Law <LAW@encmail.encompass.com> writes that a good source
# for recent time zone data is the International Air Transport
@@ -294,8 +294,6 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Mar
# Shanks reports the date as May 1, whereas Howse reports Jan; go with Shanks.
# For Liberia before 1972, Shanks reports -0:44, whereas Howse and Whitman
# each report -0:44:30; go with the more precise figure.
-#
-# From Shanks, as corrected by Whitman:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Monrovia -0:43:08 - LMT 1882
-0:43:08 - MMT 1919 Mar # Monrovia Mean Time
@@ -320,18 +318,16 @@ Rule Libya 1986 only - Apr 4 0:00 1:00 S
Rule Libya 1986 only - Oct 3 0:00 0 -
Rule Libya 1987 1989 - Apr 1 0:00 1:00 S
Rule Libya 1987 1990 - Oct 1 0:00 0 -
-Rule Libya 1990 only - May 4 0:00 1:00 S
-Rule Libya 1996 only - Mar 30 2:00s 1:00 S
-Rule Libya 1996 only - Sep 30 2:00s 0 -
-Rule Libya 1997 only - Apr 4 0:00 1:00 S
-Rule Libya 1997 only - Oct 4 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Tripoli 0:52:44 - LMT 1920
1:00 Libya CE%sT 1959
2:00 - EET 1982
- 1:00 Libya CE%sT 1991
- 2:00 - EET 1996 Mar 30 3:00
- 1:00 Libya CE%sT 1997 Oct 4 0:00
+ 1:00 Libya CE%sT 1990 May 4
+# The following entries are all from Shanks;
+# the IATA SSIM data contain some obvious errors.
+ 2:00 - EET 1996 Sep 30
+ 1:00 - CET 1997 Apr 4
+ 1:00 1:00 CEST 1997 Oct 4
2:00 - EET
# Madagascar
@@ -409,8 +405,8 @@ Zone Africa/Maputo 2:10:20 - LMT 1903 Mar
2:00 - CAT
# Namibia
-# Shanks says DST transitions are at 0:00; go with IATA.
# The 1994-04-03 transition is from Shanks.
+# Shanks reports no DST after 1998-04; go with IATA.
# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Namibia 1994 max - Sep Sun>=1 2:00 1:00 S
Rule Namibia 1995 max - Apr Sun>=1 2:00 0 -
@@ -458,9 +454,6 @@ Zone Africa/Kigali 2:00:16 - LMT 1935 Jun
2:00 - CAT
# St Helena
-# From Paul Eggert (1997-10-05):
-# Shanks says St Helena was 1W26 (-0:05:44) from 1890 to 1951,
-# but this is most likely a typo for 5W42, the longitude of Jamestown.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown
-0:22:48 - JMT 1951 # Jamestown Mean Time
@@ -517,9 +510,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8
1:30 - SAST 1903 Mar
2:00 SA SAST
-# Shanks erroneously claims that most of South Africa switched to 1:00
-# on 1994-04-03 at 00:00.
-#
# Marion and Prince Edward Is
# scientific station since 1947
# no information
diff --git a/timezone/asia b/timezone/asia
index 394877c..fd17407 100644
--- a/timezone/asia
+++ b/timezone/asia
@@ -1,4 +1,4 @@
-# @(#)asia 7.48
+# @(#)asia 7.49
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
@@ -7,9 +7,8 @@
# From Paul Eggert <eggert@twinsun.com> (1999-03-22):
#
# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks, The International Atlas (4th edition),
-# San Diego: ACS Publications, Inc. (1995).
-# Except where otherwise noted, it is the source for the data below.
+# Thomas G. Shanks, The International Atlas (5th edition),
+# San Diego: ACS Publications, Inc. (1999).
#
# Gwillim Law <LAW@encmail.encompass.com> writes that a good source
# for recent time zone data is the International Air Transport
@@ -78,24 +77,21 @@ Zone Asia/Kabul 4:36:48 - LMT 1890
4:30 - AFT
# Armenia
-# From Paul Eggert (1999-09-27):
+# From Paul Eggert (1999-10-29):
# Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991,
-# but usno1995 has Armenia at 4:00 (with DST), and Edgar Der-Danieliantz
+# then to 4:00 with no DST in fall 1995, then readopting Russian DST in 1997.
+# Go with Shanks, even when he disagrees with others. Edgar Der-Danieliantz
# <edd@AIC.NET> reported (1996-05-04) that Yerevan probably wouldn't use DST
# in 1996, though it did use DST in 1995. IATA SSIM (1991/1998) reports that
# Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991,
# but started switching at 3:00s in 1998. IATA SSIM (1999-02) reports
# that they switch one day later in 2001 (i.e. on Mondays).
-# What a mess! We guess Yerevan DST stayed in sync with Moscow between 1990
-# and 1995, did not use DST in 1996, and started using DST again in 1997.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
3:00 - YERT 1957 Mar # Yerevan Time
4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s
3:00 1:00 YERST 1991 Sep 23 # independence
- 3:00 1:00 AMST 1991 Sep 29 2:00s # Armenia Time
- 3:00 - AMT 1992 Jan 19 2:00s
- 4:00 RussiaAsia AM%sT 1996
+ 3:00 RussiaAsia AM%sT 1995 Sep 24 2:00s
4:00 - AMT 1997
4:00 RussiaAsia AM%sT
@@ -191,7 +187,7 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9
# note about Time magazine, though apparently _something_ happened in 1986.
# Go with Shanks for now. I made up names for the other pre-1980 time zones.
-# From Shanks (1995):
+# From Shanks:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Shang 1940 only - Jun 3 0:00 1:00 D
Rule Shang 1940 1941 - Oct 1 0:00 0 S
@@ -247,7 +243,7 @@ Zone Asia/Hong_Kong 7:36:36 - LMT 1904 Oct 30
# Taiwan
-# Shanks (1995) writes that Taiwan observed DST during 1945, when it
+# Shanks writes that Taiwan observed DST during 1945, when it
# was still controlled by Japan. This is hard to believe, but we don't
# have any other information.
@@ -331,6 +327,14 @@ Zone Asia/Tbilisi 2:59:16 - LMT 1880
4:00 1:00 GEST 1997 Mar lastSun
4:00 E-EurAsia GE%sT
+# East Timor
+# Zone NAME GMTOFF RULES FORMAT [UNTIL]
+Zone Asia/Dili 8:22:20 - LMT 1912
+ 8:00 - TPT 1942 Feb 21 23:00
+ 9:00 - JST 1945 Aug
+ 9:00 - TPT 1976 May 3
+ 8:00 - TPT # East Timor Time
+
# India
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Calcutta 5:53:28 - LMT 1880
@@ -347,7 +351,9 @@ Zone Asia/Calcutta 5:53:28 - LMT 1880
# Indonesia
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10
- 7:07:12 - JMT 1924 Jan 1 0:13 # Jakarta MT
+# Shanks says the next transition was at 1924 Jan 1 0:13,
+# but this must be a typo.
+ 7:07:12 - JMT 1923 Dec 31 23:47:12 # Jakarta
7:20 - JAVT 1932 Nov # Java Time
7:30 - JAVT 1942 Mar 23
9:00 - JST 1945 Aug
@@ -460,6 +466,7 @@ Rule Iraq 1984 1985 - Apr 1 0:00 1:00 D
Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 S
Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 D
# IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the `:01' is a typo.
+# Shanks says Iraq did not observe DST 1992/1997 or 1999 on; ignore this.
Rule Iraq 1991 max - Apr 1 3:00s 1:00 D
Rule Iraq 1991 max - Oct 1 3:00s 0 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -477,7 +484,7 @@ Zone Asia/Baghdad 2:57:40 - LMT 1890
# ISRAEL 2 H AHEAD OF UTC
# ISRAEL 3 H AHEAD OF UTC APR 10 - SEP 3
-# From Shanks (1995):
+# From Shanks:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Zion 1940 only - Jun 1 0:00 1:00 D
Rule Zion 1942 1944 - Nov 1 0:00 0 S
@@ -718,16 +725,17 @@ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 # or Aktau
4:00 E-EurAsia AQT%sT
# Kirgizstan
+# Transitions through 1991 are from Shanks.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Kirgiz 1992 1996 - Apr Sun>=7 0:00 1:00 S
-Rule Kirgiz 1991 1996 - Sep lastSun 0:00 0 -
+Rule Kirgiz 1992 1996 - Sep lastSun 0:00 0 -
Rule Kirgiz 1997 max - Mar lastSun 2:30 1:00 S
Rule Kirgiz 1997 max - Oct lastSun 2:30 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
5:00 - FRUT 1930 Jun 21 # Frunze Time
6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s
- 5:00 1:00 FRUST 1991 Aug 31 # independence
+ 5:00 1:00 FRUST 1991 Aug 31 2:00 # independence
5:00 Kirgiz KG%sT # Kirgizstan Time
###############################################################################
@@ -739,7 +747,7 @@ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
# Daylight Savings Time was not observed until 1987. He did not know
# at what time of day DST starts or ends.
-# From Shanks (1995):
+# From Shanks:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule ROK 1960 only - May 15 0:00 1:00 D
Rule ROK 1960 only - Sep 13 0:00 0 S
@@ -837,7 +845,6 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male
# Mongolia
# Shanks says that Mongolia has three time zones, but usno1995 and the CIA map
# Standard Time Zones of the World (1997-01)
-# </a>
# both say that it has just one.
# Let's comment out the western and eastern Mongolian time zones
# till we know what their principal towns are.
@@ -848,7 +855,8 @@ Rule Mongol 1985 1990 - Mar lastSun 2:00 1:00 S
Rule Mongol 1985 1990 - Sep lastSun 3:00 0 -
Rule Mongol 1991 max - Mar lastSun 0:00 1:00 S
Rule Mongol 1991 1995 - Sep lastSun 0:00 0 -
-Rule Mongol 1996 only - Oct Fri>=22 0:00 0 -
+# IATA SSIM (1996-09) says 1996-10-25; go with Shanks.
+Rule Mongol 1996 only - Oct lastSun 0:00 0 -
Rule Mongol 1997 max - Sep lastSun 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#Zone Asia/Dariv 6:14:32 - LMT 1905 Aug
@@ -1028,7 +1036,6 @@ Zone Asia/Singapore 6:55:24 - LMT 1880
# no longer available as of 1999-08-17)
# reported ``the country's standard time will be put forward by one hour at
# midnight Friday (1830 GMT) `in the light of the present power crisis'.''
-# Transitions before 1996 are from Shanks (1995).
#
# From Dharmasiri Senanayake, Sri Lanka Media Minister (1996-10-24), as quoted
# by Shamindra in
@@ -1078,23 +1085,24 @@ Rule Syria 1991 1992 - Oct 1 0:00 0 -
Rule Syria 1992 only - Apr 8 0:00 1:00 S
Rule Syria 1993 only - Mar 26 0:00 1:00 S
Rule Syria 1993 only - Sep 25 0:00 0 -
-# IATA SSIM (1996-09) says 1997-03-31; (1998-02) says 1998-04-02;
+# IATA SSIM (1998-02) says 1998-04-02;
# (1998-09) says 1999-03-29 and 1999-09-29; (1999-02) says 1999-04-02,
-# 2000-04-02, and 2001-04-02; ignore all these claims for now.
-Rule Syria 1994 max - Apr 1 0:00 1:00 S
+# 2000-04-02, and 2001-04-02; ignore all these claims and go with Shanks.
+Rule Syria 1994 1996 - Apr 1 0:00 1:00 S
Rule Syria 1994 max - Oct 1 0:00 0 -
+Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S
+Rule Syria 1999 max - Apr 1 0:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Damascus 2:25:12 - LMT 1920
2:00 Syria EE%sT
# Tajikistan
-# From Shanks (1995), who writes ``date of change uncertain'' for 1991.
+# From Shanks.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
5:00 - DUST 1930 Jun 21 # Dushanbe Time
6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s
- 5:00 1:00 DUSST 1991 Sep 9 # independence
- 5:00 RussiaAsia TJ%sT 1992
+ 5:00 1:00 DUSST 1991 Sep 9 2:00s
5:00 - TJT # Tajikistan Time
# Thailand
@@ -1104,16 +1112,13 @@ Zone Asia/Bangkok 6:42:04 - LMT 1880
7:00 - ICT
# Turkmenistan
-# From Shanks (1995):
+# From Shanks.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Ashkhabad 3:53:32 - LMT 1924 May 2 # or Ashgabat
4:00 - ASHT 1930 Jun 21 # Ashkhabad Time
- 5:00 - ASHT 1981 Apr 1
- 5:00 1:00 ASHST 1981 Oct 1
- 6:00 - ASHT 1982 Apr 1
- 5:00 RussiaAsia ASH%sT 1991
- 5:00 - ASHT 1991 Oct 27 # independence
- 5:00 RussiaAsia TM%sT 1993 # Turkmenistan Time
+ 5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00
+ 4:00 RussiaAsia ASH%sT 1991 Oct 27 # independence
+ 4:00 RussiaAsia TM%sT 1992 Jan 19 2:00
5:00 - TMT
# United Arab Emirates
@@ -1122,22 +1127,22 @@ Zone Asia/Dubai 3:41:12 - LMT 1920
4:00 - GST
# Uzbekistan
-# From Shanks (1995):
+# 1991 transitions are from Shanks.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Samarkand 4:27:12 - LMT 1924 May 2
4:00 - SAMT 1930 Jun 21 # Samarkand Time
5:00 - SAMT 1981 Apr 1
5:00 1:00 SAMST 1981 Oct 1
6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 # Tashkent Time
- 5:00 - TAST 1991 Sep 1 # independence
- 5:00 - UZT 1992
+ 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence
+ 5:00 RussiaAsia UZ%sT 1992
5:00 RussiaAsia UZ%sT 1993
5:00 - UZT
Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2
5:00 - TAST 1930 Jun 21 # Tashkent Time
6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00s
- 5:00 - TAST 1991 Sep 1 # independence
- 5:00 - UZT 1992
+ 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence
+ 5:00 RussiaAsia UZ%sT 1992
5:00 RussiaAsia UZ%sT 1993
5:00 - UZT
@@ -1145,7 +1150,7 @@ Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2
# From Paul Eggert <eggert@twinsun.com> (1993-11-18):
# Saigon's official name is Thanh-Pho Ho Chi Minh, but it's too long.
# We'll stick with the traditional name for now.
-# From Shanks (1991):
+# From Shanks:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Saigon 7:06:40 - LMT 1906 Jun 9
7:06:20 - SMT 1911 Mar 11 0:01 # Saigon MT?
diff --git a/timezone/australasia b/timezone/australasia
index 0dbb9da..1782558 100644
--- a/timezone/australasia
+++ b/timezone/australasia
@@ -1,4 +1,4 @@
-# @(#)australasia 7.51
+# @(#)australasia 7.52
# This file also includes Pacific islands.
# Notes are at the end of this file
@@ -8,8 +8,7 @@
# Australia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-# Shanks gives 1917 Jan 1 0:01; go with Whitman (and guess 2:00).
-Rule Aus 1916 only - Oct 1 2:00 1:00 -
+Rule Aus 1917 only - Jan 1 0:01 1:00 -
Rule Aus 1917 only - Mar 25 2:00 0 -
Rule Aus 1942 only - Jan 1 2:00 1:00 -
Rule Aus 1942 only - Mar 29 2:00 0 -
@@ -24,11 +23,9 @@ Rule Aus 1943 only - Oct 3 2:00 1:00 -
# Northern Territory
Zone Australia/Darwin 8:43:20 - LMT 1895 Feb
9:00 - CST 1899 May
- 9:30 - CST 1917 Jan 1 0:01
9:30 Aus CST
# Western Australia
Zone Australia/Perth 7:43:24 - LMT 1895 Dec
- 8:00 - WST 1917 Jan 1 0:01
8:00 Aus WST 1943 Jul
8:00 - WST 1974 Oct lastSun 2:00s
8:00 1:00 WST 1975 Mar Sun>=1 2:00s
@@ -58,11 +55,9 @@ Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 -
Rule Holiday 1992 1993 - Oct lastSun 2:00s 1:00 -
Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 -
Zone Australia/Brisbane 10:12:08 - LMT 1895
- 10:00 - EST 1917 Jan 1 0:01
10:00 Aus EST 1971
10:00 AQ EST
Zone Australia/Lindeman 9:55:56 - LMT 1895
- 10:00 - EST 1917 Jan 1 0:01
10:00 Aus EST 1971
10:00 AQ EST 1992 Jul
10:00 Holiday EST
@@ -81,7 +76,6 @@ Rule AS 1995 max - Mar lastSun 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Australia/Adelaide 9:14:20 - LMT 1895 Feb
9:00 - CST 1899 May
- 9:30 - CST 1917 Jan 1 0:01
9:30 Aus CST 1971
9:30 AS CST
@@ -99,11 +93,14 @@ Rule AT 1986 only - Oct Sun>=15 2:00s 1:00 -
Rule AT 1987 1990 - Mar Sun>=15 2:00s 0 -
Rule AT 1987 only - Oct Sun>=22 2:00s 1:00 -
Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 -
-Rule AT 1991 max - Oct Sun>=1 2:00s 1:00 -
+Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 -
Rule AT 1991 max - Mar lastSun 2:00s 0 -
+Rule AT 2000 only - Aug lastSun 2:00s 1:00 -
+Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Australia/Hobart 9:49:16 - LMT 1895 Sep
- 10:00 - EST 1917 Jan 1 0:01
+ 10:00 - EST 1916 Oct 1 2:00
+ 10:00 1:00 EST 1917 Feb
10:00 Aus EST 1967
10:00 AT EST
@@ -121,7 +118,6 @@ Rule AV 2000 only - Aug lastSun 2:00s 1:00 -
Rule AV 2001 max - Oct lastSun 2:00s 1:00 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Australia/Melbourne 9:39:52 - LMT 1895 Feb
- 10:00 - EST 1917 Jan 1 0:01
10:00 Aus EST 1971
10:00 AV EST
@@ -141,13 +137,11 @@ Rule AN 2000 only - Aug lastSun 2:00s 1:00 -
Rule AN 2001 max - Oct lastSun 2:00s 1:00 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Australia/Sydney 10:04:52 - LMT 1895 Feb
- 10:00 - EST 1917 Jan 1 0:01
10:00 Aus EST 1971
10:00 AN EST
Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb
10:00 - EST 1896 Aug 23
9:00 - CST 1899 May
- 9:30 - CST 1917 Jan 1 0:01
9:30 Aus CST 1971
9:30 AN CST 2000
9:30 AS CST
@@ -157,10 +151,10 @@ Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb
Rule LH 1981 1984 - Oct lastSun 2:00s 1:00 -
Rule LH 1982 1985 - Mar Sun>=1 2:00s 0 -
Rule LH 1985 only - Oct lastSun 2:00s 0:30 -
-Rule LH 1986 1989 - Mar Sun>=15 2:00s 0 -
+Rule LH 1986 1991 - Mar Sun>=15 2:00s 0 -
Rule LH 1986 only - Oct 19 2:00s 0:30 -
Rule LH 1987 max - Oct lastSun 2:00s 0:30 -
-Rule LH 1990 1995 - Mar Sun>=1 2:00s 0 -
+Rule LH 1992 1995 - Mar Sun>=1 2:00s 0 -
Rule LH 1996 max - Mar lastSun 2:00s 0 -
Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb
10:00 - EST 1981 Mar
@@ -193,7 +187,7 @@ Zone Indian/Christmas 7:02:52 - LMT 1895 Feb
7:00 - CXT # Christmas Island Time
# Cook Is
-# From Shanks (1995):
+# From Shanks:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Cook 1978 only - Nov 12 0:00 0:30 HS
Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
@@ -271,8 +265,9 @@ Zone Pacific/Truk 10:07:08 - LMT 1901
Zone Pacific/Ponape 10:32:52 - LMT 1901 # Kolonia
11:00 - PONT # Ponape Time
Zone Pacific/Kosrae 10:51:56 - LMT 1901
- 11:00 - PONT 1969 Oct
- 12:00 - KOST # Kosrae Time
+ 11:00 - KOST 1969 Oct # Kosrae Time
+ 12:00 - KOST 1999
+ 11:00 - KOST
# Nauru
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -287,6 +282,7 @@ Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe
Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 S
Rule NC 1978 1979 - Feb 27 0:00 0 -
Rule NC 1996 only - Dec 1 2:00s 1:00 S
+# Shanks says the following was at 2:00; go with IATA.
Rule NC 1997 only - Mar 2 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13
@@ -394,10 +390,9 @@ Zone Pacific/Fakaofo -11:24:56 - LMT 1901
-10:00 - TKT # Tokelau Time
# Tonga
-# Transition time is a guess--see below
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Tonga 1999 max - Oct Sat>=1 0:00 1:00 S
-Rule Tonga 2000 max - Apr Sat>=15 0:00 - -
+Rule Tonga 1999 max - Oct Sat>=1 2:00s 1:00 S
+Rule Tonga 2000 max - Apr Sun>=16 2:00s - -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Tongatapu 12:19:20 - LMT 1901
12:20 - TOT 1941 # Tonga Time
@@ -467,10 +462,10 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# go ahead and edit the file (and please send any changes to
# tz@elsie.nci.nih.gov for general use in the future).
-# From Paul Eggert <eggert@twinsun.com> (1999-03-22):
+# From Paul Eggert <eggert@twinsun.com> (1999-10-29):
# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks, The International Atlas (4th edition),
-# San Diego: ACS Publications, Inc. (1995).
+# Thomas G. Shanks, The International Atlas (5th edition),
+# San Diego: ACS Publications, Inc. (1999).
#
# Gwillim Law <LAW@encmail.encompass.com> writes that a good source
# for recent time zone data is the International Air Transport
@@ -733,6 +728,13 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# 6 weeks a year now when we are out of sync with the rest of Australia
# (but nothing new about that).
+# From Alex Livingston (1999-10-04):
+# I heard on the ABC (Australian Broadcasting Corporation) radio news on the
+# (long) weekend that Tasmania, which usually goes its own way in this regard,
+# has decided to join with most of NSW, the ACT, and most of Victoria
+# (Australia) and start daylight saving on the last Sunday in August in 2000
+# instead of the first Sunday in October.
+
# Victoria
# The rules for 1971 through 1991 were reported by George Shepherd
@@ -884,11 +886,11 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# time on both the first Sunday in October and the third Sunday in March.
# As with Australia, we'll assume the tradition is 2:00s, not 2:00.
#
-# From Paul Eggert (1996-11-22):
-# Shanks gives no data for Chatham; usno1989 says it's +12:45,
-# usno1995 says it's +12:45/+13:45, and IATA SSIM (1991/1996)
+# From Paul Eggert (1999-10-29):
+# Shanks gives no time data for Chatham; usno1989 says it's +12:45,
+# usno1995 says it's +12:45/+13:45, and IATA SSIM (1991/1999)
# gives the NZ rules but with transitions at 2:45 local standard time.
-# Guess that they adopted DST in 1990.
+# Guess that they have been in lock-step with NZ since 1990.
###############################################################################
@@ -945,6 +947,14 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# Shanks writes that Truk switched from GMT+10 to GMT+11 on 1978-10-01;
# ignore this for now.
+# From Paul Eggert (1999-10-29):
+# The Federated States of Micronesia Visitors Board writes in
+# <a href="http://www.fsmgov.org/info/clocks.html">
+# The Federated States of Micronesia - Visitor Information
+# </a> (1999-01-26)
+# that Truk and Yap are GMT+10, and Ponape and Kosrae are GMT+11.
+# We don't know when Kosrae switched from GMT+12; assume January 1 for now.
+
# Samoa
# Howse writes (p 153, citing p 10 of the 1883-11-18 New York Herald)
@@ -1018,3 +1028,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# Sept. 10, clocks must be turned ahead one hour on the opening day and
# set back an hour on the closing date."
# Alas, no indication of the time of day.
+
+# From Rives McDow (1999-10-06):
+# Tonga started its Daylight Saving on Saturday morning October 2nd at 0200am.
+# Daylight Saving ends on April 16 at 0300am which is Sunday morning.
diff --git a/timezone/backward b/timezone/backward
index 84f3de5..23b76cb 100644
--- a/timezone/backward
+++ b/timezone/backward
@@ -1,9 +1,10 @@
-# @(#)backward 7.15
+# @(#)backward 7.16
# This file provides links between current names for time zones
# and their old names. Many names changed in late 1993.
Link America/Adak America/Atka
+Link America/Tijuana America/Ensenada
Link America/Indianapolis America/Fort_Wayne
Link America/Indiana/Knox America/Knox_IN
Link America/St_Thomas America/Virgin
diff --git a/timezone/checktab.awk b/timezone/checktab.awk
index 43ecc92..6a2d19a 100644
--- a/timezone/checktab.awk
+++ b/timezone/checktab.awk
@@ -1,6 +1,6 @@
# Check tz tables for consistency.
-# @(#)checktab.awk 1.5
+# @(#)checktab.awk 1.6
# Contributed by Paul Eggert <eggert@twinsun.com>.
@@ -148,7 +148,7 @@ END {
if (0 < want_warnings) {
for (cc in cc2name) {
if (!cc_used[cc]) {
- printf "%s:%d: warning:" \
+ printf "%s:%d: warning: " \
"no Zone entries for %s (%s)\n", \
iso_table, cc2NR[cc], cc, cc2name[cc]
}
diff --git a/timezone/europe b/timezone/europe
index ea38d12..cdbc667 100644
--- a/timezone/europe
+++ b/timezone/europe
@@ -1,13 +1,13 @@
-# @(#)europe 7.65
+# @(#)europe 7.66
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
# tz@elsie.nci.nih.gov for general use in the future).
-# From Paul Eggert <eggert@twinsun.com> (1999-03-22):
+# From Paul Eggert <eggert@twinsun.com> (1999-10-29):
# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks, The International Atlas (4th edition),
-# San Diego: ACS Publications, Inc. (1995).
+# Thomas G. Shanks, The International Atlas (5th edition),
+# San Diego: ACS Publications, Inc. (1999).
#
# Gwillim Law <LAW@encmail.encompass.com> writes that a good source
# for recent time zone data is the International Air Transport
@@ -724,10 +724,10 @@
# changes in Alderney and Guernsey were at the same 2am GMT time as
# for Great Britain; the order for Jersey is more interesting.
#
-# From Paul Eggert (1999-10-06):
+# From Paul Eggert (1999-10-22):
# Mark Brader kindly translated the 1916 Jersey order from the French.
# It says that the 1916 transitions were 05-20 and 09-30 at midnight.
-# Presumably this was 24:00, two hours earlier than Great Britain.
+# No doubt this was 24:00, two or three hours earlier than Great Britain.
# It also says that after 1916 they'll sync with Great Britain.
# From Joseph S. Myers (1999-09-28):
@@ -1005,9 +1005,6 @@ Rule Russia 1919 only - May 31 23:00 2:00 MDST
Rule Russia 1919 only - Jul 1 2:00 1:00 S
Rule Russia 1919 only - Aug 16 0:00 0 -
Rule Russia 1921 only - Feb 14 23:00 1:00 S
-# Shanks gives 1921 Mar 21 for the following transition.
-# From Andrey A. Chernov <ache@astral.msk.su> (1993-11-12):
-# My sources says, that it is Mar 20, not 21.
Rule Russia 1921 only - Mar 20 23:00 2:00 M # Midsummer
Rule Russia 1921 only - Sep 1 0:00 1:00 S
Rule Russia 1921 only - Oct 1 0:00 0 -
@@ -1090,7 +1087,7 @@ Rule Albania 1984 only - Apr 1 0:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Tirane 1:19:20 - LMT 1914
1:00 - CET 1940 Jun 16
-# The following transition is from Shanks's 4th edition (1995).
+# The following transition is from Shanks.
1:00 Albania CE%sT 1984 Jul
1:00 EU CE%sT
@@ -1120,17 +1117,18 @@ Zone Europe/Vienna 1:05:20 - LMT 1893 Apr
1:00 EU CE%sT
# Belarus
-# Transitions before 1991 are from Shanks (1995).
+# Transitions before 1991 are from Shanks.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Minsk 1:50:16 - LMT 1880
1:50 - MMT 1924 May 2 # Minsk Mean Time
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Jun 28
1:00 C-Eur CE%sT 1944 Jul 3
- 3:00 Russia MSK/MSD 1991 Mar 31 2:00s
+ 3:00 Russia MSK/MSD 1990
+ 3:00 - MSK 1991 Mar 31 2:00s
2:00 1:00 EEST 1991 Sep 29 2:00s
- 2:00 - EET 1992 Mar 29 2:00s
- 2:00 1:00 EEST 1992 Sep 27 2:00s
+ 2:00 - EET 1992 Mar 29 0:00s
+ 2:00 1:00 EEST 1992 Sep 27 0:00s
2:00 Russia EE%sT
# Belgium
@@ -1366,7 +1364,6 @@ Zone Europe/Helsinki 1:39:52 - LMT 1878 May 31
# France
#
# Shanks seems to use `24:00' ambiguously; we resolve it with Whitman.
-# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule France 1916 only - Jun 14 23:00s 1:00 S
Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
@@ -1454,7 +1451,6 @@ Rule Germany 1945 only - May 31 3:00 2:00 M # Midsummer
Rule Germany 1945 only - Sep 23 3:00 1:00 S
Rule Germany 1945 only - Nov 18 2:00s 0 -
Rule Germany 1946 only - Apr 14 2:00s 1:00 S
-# Shanks gives 1946-10-06; go with the PTB.
Rule Germany 1946 only - Oct 7 2:00s 0 -
Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
Rule Germany 1947 only - Apr 6 2:00s 1:00 S
@@ -1571,10 +1567,10 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
# might be a reference to the Julian calendar as opposed to Gregorian, or it
# might mean something else (???).
#
-# From Paul Eggert <eggert@twinsun.com> (1993-12-09):
+# From Paul Eggert <eggert@twinsun.com> (1999-10-29):
# The Iceland Almanak, Shanks and Whitman disagree on many points.
# We go with the Almanak, except for one claim from Shanks, namely that
-# Reykavik was -1:28 from 1837 to 1908, local mean time before that.
+# Reykavik was 21W57 from 1837 to 1908, local mean time before that.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Iceland 1917 1918 - Feb 19 23:00 1:00 S
@@ -1728,8 +1724,6 @@ Zone Europe/Riga 1:36:24 - LMT 1880
2:00 - EET 1940 Aug 5
3:00 - MSK 1941 Jul
1:00 C-Eur CE%sT 1944 Oct 13
- # Shanks says 1944-08-08, but
- # Riga fell to the Red Army on 1944-10-13.
3:00 Russia MSK/MSD 1989 Mar lastSun 2:00s
2:00 1:00 EEST 1989 Sep lastSun 2:00s
2:00 Latvia EE%sT 1997 Jan 21
@@ -1832,12 +1826,14 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta
1:00 EU CE%sT
# Moldova
+# see commentary for Romania
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Chisinau 1:55:20 - LMT 1924 May 2
2:00 - EET 1930 Jun 21
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 1:00 EEST 1991 Sep 29 2:00s
- 2:00 E-Eur EE%sT
+ 2:00 E-Eur EE%sT 1997
+ 2:00 EU EE%sT
# Monaco
# Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21.
@@ -1852,7 +1848,7 @@ Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
# Howse writes that the Netherlands' railways used GMT between 1892 and 1940,
# but for other purposes the Netherlands used Amsterdam mean time.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-# Shanks gives 1916 May 1 0:00 and 1916 Oct 1 0:00; go with Whitman.
+# Shanks gives 1916 Apr 30 24:00 and 1916 Oct 1 00:00; go with Whitman.
Rule Neth 1916 only - May 1 2:00s 1:00 NST # Netherlands Summer Time
Rule Neth 1916 only - Oct 2 2:00s 0 AMT # Amsterdam Mean Time
Rule Neth 1917 only - Apr 16 2:00s 1:00 NST
@@ -1878,7 +1874,6 @@ Rule Neth 1937 1939 - Oct Sun>=2 2:00s 0 -
Rule Neth 1938 1939 - May 15 2:00s 1:00 S
Rule Neth 1945 only - Apr 2 2:00s 1:00 S
Rule Neth 1945 only - May 20 2:00s 0 -
-# Before 1937, Shanks says just `0:20'; we use Whitman's more precise figure.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Amsterdam 0:19:28 - LMT 1892 May
0:19:28 Neth %s 1937 Jul
@@ -2067,6 +2062,14 @@ Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal
0:00 EU WE%sT
# Romania
+#
+# From Paul Eggert (1999-10-07):
+# <a href="http://www.nineoclock.ro/POL/1778pol.html">
+# Nine O'clock</a> (1998-10-23) reports that the switch occurred at
+# 04:00 local time in fall 1998. For lack of better info,
+# assume that Romania and Moldova switched to EU rules in 1997,
+# the same year as Bulgaria.
+#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Romania 1932 only - May 21 0:00s 1:00 S
Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
@@ -2083,7 +2086,8 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
2:00 Romania EE%sT 1981 Mar 29 2:00s
2:00 C-Eur EE%sT 1991
2:00 Romania EE%sT 1994
- 2:00 E-Eur EE%sT
+ 2:00 E-Eur EE%sT 1997
+ 2:00 EU EE%sT
# Russia
@@ -2293,7 +2297,7 @@ Zone Europe/Stockholm 1:12:12 - LMT 1878 May 31
# From Whitman (who writes ``Midnight?''):
Rule Swiss 1940 only - Nov 2 0:00 1:00 S
Rule Swiss 1940 only - Dec 31 0:00 0 -
-# From Shanks (1991):
+# From Shanks:
Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S
Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -2316,7 +2320,6 @@ Rule Turkey 1922 only - Oct 8 0:00 0 -
Rule Turkey 1924 only - May 13 0:00 1:00 S
Rule Turkey 1924 1925 - Oct 1 0:00 0 -
Rule Turkey 1925 only - May 1 0:00 1:00 S
-# Shanks omits the first two transitions in 1940; go with Whitman.
Rule Turkey 1940 only - Jun 30 0:00 1:00 S
Rule Turkey 1940 only - Oct 5 0:00 0 -
Rule Turkey 1940 only - Dec 1 0:00 1:00 S
diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab
index e20b589..0173c40 100644
--- a/timezone/iso3166.tab
+++ b/timezone/iso3166.tab
@@ -1,21 +1,18 @@
# ISO 3166 2-letter country codes
#
-# @(#)iso3166.tab 1.6
+# @(#)iso3166.tab 1.7
#
-# From Paul Eggert <eggert@twinsun.com> (1996-09-03):
+# From Paul Eggert <eggert@twinsun.com> (1999-10-13):
#
# This file contains a table with the following columns:
-# 1. ISO 3166-1:1997 2-character country code. See:
+# 1. ISO 3166-1:1999 2-character country code. See:
+# <a href="http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1.html">
+# ISO 3166-1: The Code List
+# </a>.
# 2. The usual English name for the country,
# chosen so that alphabetic sorting of subsets produces helpful lists.
# This is not the same as the English name in the ISO 3166 tables.
#
-# The PS code below has been reserved for Palestine by the ISO;
-# however, the code is not yet officially assigned to Palestine. Please see
-# <a href="ftp://ftp.informatik.uni-erlangen.de/pub/doc/ISO/ISO-3166-background">
-# Cord Wischhoefer, Country Code Elements for Palestine (1996-07-24)
-# </a>.
-#
# Columns are separated by a single tab.
# The table is sorted by country code.
#
@@ -95,7 +92,6 @@ FK Falkland Islands
FM Micronesia
FO Faeroe Islands
FR France
-FX France, Metropolitan
GA Gabon
GB Britain (UK)
GD Grenada
@@ -114,6 +110,7 @@ GT Guatemala
GU Guam
GW Guinea-Bissau
GY Guyana
+HK Hong Kong
HM Heard Island & McDonald Islands
HN Honduras
HR Croatia
diff --git a/timezone/northamerica b/timezone/northamerica
index 6203adf..743e721 100644
--- a/timezone/northamerica
+++ b/timezone/northamerica
@@ -1,4 +1,4 @@
-# @(#)northamerica 7.47
+# @(#)northamerica 7.48
# also includes Central America and the Caribbean
# This data is by no means authoritative; if you think you know better,
@@ -408,6 +408,16 @@ Zone America/Louisville -5:43:02 - LMT 1883 Nov 18 12:00
-5:00 US E%sT 1974 Jan 6 2:00
-6:00 1:00 CDT 1974 Oct 27 2:00
-5:00 US E%sT
+# Wayne County, Kentucky
+# From
+# <a href="http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=1999_register&docid=99-26945-filed">
+# Federal Register Doc. 99-26945
+# </a> (1999-10-14 08:45-04)
+# In response to a petition by the Wayne County, Kentucky, Fiscal Court,
+# the Department of Transportation (DOT) proposed to move Wayne County,
+# Kentucky, from the Central Time Zone to the Eastern Time Zone.... Now
+# the earliest date that the proposed change might take effect is
+# October 29, 2000.
# Michigan
#
@@ -482,10 +492,10 @@ Link Pacific/Honolulu HST
################################################################################
-# From Paul Eggert <eggert@twinsun.com> (1996-11-22):
+# From Paul Eggert <eggert@twinsun.com> (1999-10-29):
# A good source for time zone historical data outside the US is
-# Thomas G. Shanks, The International Atlas (4th edition),
-# San Diego: ACS Publications, Inc. (1995).
+# Thomas G. Shanks, The International Atlas (5th edition),
+# San Diego: ACS Publications, Inc. (1999).
#
# Gwillim Law <LAW@encmail.encompass.com> writes that a good source
# for recent time zone data is the International Air Transport
@@ -536,7 +546,7 @@ Link Pacific/Honolulu HST
# From Paul Eggert <eggert@twinsun.com> (1994-11-22):
# Alas, this sort of thing must be handled by localization software.
-# The data for Canada are all from Shanks (1991).
+# The data for Canada are all from Shanks.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
@@ -682,7 +692,7 @@ Zone America/Glace_Bay -3:59:48 - LMT 1902 Jun 15
# says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT.
# Officially Atikokan is therefore on CST/CDT, and most likely this report
# concerns a non-official time observed as a matter of local practice.
-# For what it's worth, Shanks (1995) says that Atikokan has agreed with
+# For what it's worth, Shanks says that Atikokan has agreed with
# Rainy River ever since standard time was introduced.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
@@ -854,7 +864,7 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# From Paul Eggert (1996-06-12):
# Shanks writes that since 1970 most of this region has been like Vancouver.
-# Dawswon Creek uses MST. Much of east BC is like Edmonton.
+# Dawson Creek uses MST. Much of east BC is like Edmonton.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
@@ -877,9 +887,8 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884
# Northwest Territories, Nunavut, Yukon
-# From Paul Eggert (1996-10-07):
+# From Paul Eggert (1999-10-29):
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
-# Shanks's table for Watson Lake is corrupted, so we have no data there.
# Mathew Englander <mathew@io.org> (1996-10-07) gives the following refs:
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# c. 7 defines Yukon standard time as UTC-9. This is still valid;
@@ -892,7 +901,7 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884
# From Rives McDow (1999-09-04):
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
# <a href="http://www.nunatsiaq.com/nunavut/nvt90903_13.html">
-# The change announcement
+# Nunavut moves to single time zone Oct. 31
# </a>
#
# From Antoine Leca (1999-09-06):
@@ -997,10 +1006,6 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
# a zone that's GMT-8 with DST; a zone that's always GMT-7;
# a zone that's GMT-6 with DST; and a zone that's always GMT-6.
-# From Paul Eggert <eggert@twinsun.com> (1993-11-18):
-# Shanks also says there are four zones, but disagrees about the fourth.
-# Instead of GMT-6 with DST, he says there's GMT-8 without DST.
-
# From Alan Perry <alan.perry@eng.sun.com> (1996-02-15):
# A guy from our Mexico subsidiary finally found the Presidential Decree
# outlining the timezone changes in Mexico.
@@ -1039,7 +1044,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
# The State of Quintana Roo has reverted back to central STD and DST times
# (i.e. UTC -0600 and -0500 as of 1998-08-02).
-# From Shanks (1991):
+# From Shanks:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mexico 1939 only - Feb 5 0:00 1:00 D
Rule Mexico 1939 only - Jun 25 0:00 0 S
@@ -1052,12 +1057,11 @@ Rule Mexico 1950 only - Jul 30 0:00 0 S
Rule Mexico 1996 max - Apr Sun>=1 2:00 1:00 D
Rule Mexico 1996 max - Oct lastSun 2:00 0 S
#
-Rule BajaN 1950 1966 - Apr lastSun 2:00 1:00 D
-Rule BajaN 1950 1961 - Sep lastSun 2:00 0 S
-Rule BajaN 1961 1966 - Oct lastSun 2:00 0 S
+Rule BajaN 1954 1961 - Apr lastSun 2:00 1:00 D
+Rule BajaN 1954 1961 - Sep lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Quintana Roo
-Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 1:12:42
+Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56
-6:00 - CST 1996
-6:00 Mexico C%sT 1997 Oct lastSun 2:00
-5:00 Mexico E%sT 1998 Aug 2 2:00
@@ -1071,7 +1075,7 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
-7:00 - MST 1932 Mar 30 23:00
-6:00 Mexico C%sT
# Chihuahua
-Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:44
+Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
@@ -1092,23 +1096,15 @@ Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20
-7:00 - MST 1949 Jan 14
-8:00 - PST 1970
-7:00 Mexico M%sT
-# N Baja California
+# Baja California
Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
-8:00 - PST 1927 Jun 10 23:00
-7:00 - MST 1930 Nov 16
-8:00 - PST 1942 Apr
-7:00 - MST 1949 Jan 14
- -8:00 BajaN P%sT 1967 Apr lastSun 2:00
+ -8:00 BajaN P%sT 1976
-8:00 US P%sT 1996
-8:00 Mexico P%sT
-# Baja California
-Zone America/Ensenada -7:46:28 - LMT 1922 Jan 1 0:13:32
- -8:00 - PST 1927 Jun 10 23:00
- -7:00 - MST 1930 Nov 16
- -8:00 - PST 1942 Apr
- -7:00 - MST 1949 Jan 14
- -8:00 - PST 1996
- -8:00 Mexico P%sT
#
# Revillagigedo Is
# no information
@@ -1173,8 +1169,6 @@ Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
-5:00 - EST
# Costa Rica
-# Shanks gives some very odd dates for 1991, and stops there.
-# For now, we won't guess further.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
@@ -1185,7 +1179,7 @@ Rule CR 1992 only - Mar 15 0:00 0 S
# There are too many San Joses elsewhere, so we'll use `Costa Rica'.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose
- -5:36 - SJMT 1921 Jan 15 # San Jose Mean Time
+ -5:36:20 - SJMT 1921 Jan 15 # San Jose Mean Time
-6:00 CR C%sT
# Coco
# no information; probably like America/Costa_Rica
@@ -1236,7 +1230,7 @@ Rule Cuba 2000 max - Apr 1 0:00s 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Havana -5:29:28 - LMT 1890
- -5:30 - HMT 1925 Jul 19 12:00 # Havana MT
+ -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT
-5:00 Cuba C%sT
# Dominica
@@ -1294,7 +1288,7 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5
Rule Haiti 1983 only - May 8 0:00 1:00 D
Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
-# Shanks says AT is 2:00, but IATA SSIM (1991/1996) says 1:00s. Go with IATA.
+# Shanks says AT is 2:00, but IATA SSIM (1991/1997) says 1:00s. Go with IATA.
Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D
Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1318,11 +1312,11 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr
# From U. S. Naval Observatory (1989-01-19):
# JAMAICA 5 H BEHIND UTC
-# From Shanks (1991):
+# From Shanks:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Jamaica -5:07:12 - LMT 1890 # Kingston
-5:07:12 - KMT 1912 Feb # Kingston Mean Time
- -5:00 - EST 1974 Jan 6 2:00
+ -5:00 - EST 1974 Apr 28 2:00
-5:00 US E%sT 1984
-5:00 - EST
diff --git a/timezone/southamerica b/timezone/southamerica
index 2544680..bb95d0d 100644
--- a/timezone/southamerica
+++ b/timezone/southamerica
@@ -1,4 +1,4 @@
-# @(#)southamerica 7.31
+# @(#)southamerica 7.32
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
@@ -6,8 +6,8 @@
# From Paul Eggert <eggert@twinsun.com> (1999-07-07):
# A good source for time zone historical data outside the U.S. is
-# Thomas G. Shanks, The International Atlas (4th edition),
-# San Diego: ACS Publications, Inc. (1995).
+# Thomas G. Shanks, The International Atlas (5th edition),
+# San Diego: ACS Publications, Inc. (1999).
#
# Gwillim Law <LAW@encmail.encompass.com> writes that a good source
# for recent time zone data is the International Air Transport
@@ -99,7 +99,7 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 S
# Talleres de Hidrografia Naval Argentina
# (Argentine Naval Hydrography Institute)
#
-# Shanks gives 1989 Mar 16 and stops after 1990 Mar 4; go with Otero.
+# Shanks stops after 1992-03-01; go with Otero.
Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S
#
@@ -216,38 +216,16 @@ Zone America/La_Paz -4:32:36 - LMT 1890
# Maranhao (MA), Paraiba (PR), Pernambuco (PE), Piaui (PI), and Rio Grande do
# Norte (RN), and the eastern part of Para (PA) are all in BR1 without DST.
-# From Paul Eggert (1996-11-22):
-# Let's make the following assumptions:
-#
-# * All data in Shanks are correct through 1990. In particular,
-# Shanks was right when he said Acre stopped observing DST in mid-1988.
-# * Areas where Shanks reports DST up to 1990, but the IATA reports no DST
-# in 1995, stopped observing DST in mid-1990.
-#
-# Under these assumptions Brazil needs 7 entries to cover all the distinct
-# time zone histories since 1970:
-#
-# Noronha (UTC-2), Fortaleza (UTC-3), and Manaus (UTC-4) stopped observing DST
-# in mid-1990.
-# Maceio (UTC-3) stopped observing DST in mid-1990, but started again mid-1995.
-# Sao Paulo (UTC-3) and Cuiaba (UTC-4) always observed DST.
-# Porto Acre (UTC-5) stopped observing DST in mid-1988.
-
-# From Rodrigo Feher <feher@pobox.com> (1998-01-17):
-# Reading "southamerica" file in timezone 7.55 I've found an
-# error. Line 193 say "Territory of Acre". It is not a territory anymore
-# but a state.
-
# From Marcos Tadeu (1998-09-27):
# <a href="http://pcdsh01.on.br/verao1.html">
# Brazilian official page
# </a>
#
-# From Paul Eggert (1998-09-28):
+# From Paul Eggert (1998-10-29):
# The official decrees referenced below are taken from
# <a href="http://pcdsh01.on.br/DecHV.html">
# Decretos sobre o Horario de Verao no Brasil
-# </a> (1998-09-25, in Portuguese).
+# </a> (1999-10-04, in Portuguese).
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01)
@@ -355,9 +333,11 @@ Rule Brazil 1998 only - Mar 1 0:00 0 -
Rule Brazil 1998 only - Oct 11 0:00 1:00 S
Rule Brazil 1999 only - Feb 21 0:00 0 -
# Decree <a href="http://pcdsh01.on.br/figuras/HV3150.gif">3,150</a>
-# (1999-08-23), adopted by same states, says only 1999-10-03 and 2000-02-27;
-# after that, these rules are guesses and are quite possibly wrong,
-# but they are more likely than no DST at all.
+# (1999-08-23) adopted by same states.
+# Decree <a href="http://pcdsh01.on.br/DecHV99.gif">3,188</a> (1999-09-30)
+# adds SE, AL, PE, PR, RN, CE, PI, MA and RR.
+# These give only one year's rules. After that, the rules are guesses
+# and are quite possibly wrong, but are more likely than no DST at all.
Rule Brazil 1999 max - Oct Sun>=1 0:00 1:00 S
Rule Brazil 2000 max - Feb lastSun 0:00 0 -
@@ -366,61 +346,69 @@ Rule Brazil 2000 max - Feb lastSun 0:00 0 -
#
# Fernando de Noronha
Zone America/Noronha -2:09:40 - LMT 1914
- -2:00 Brazil FN%sT 1990 Jul
+ -2:00 Brazil FN%sT 1990 Sep 17
-2:00 - FNT
#
-# Amapa, east Para
+# Amapa (AP), east Para (PA)
Zone America/Belem -3:13:56 - LMT 1914
- -3:00 Brazil BR%sT 1988 Jul
+ -3:00 Brazil BR%sT 1988 Sep 12
-3:00 - BRT
#
-# Maranhao, Piaui, Ceara, Rio Grande do Norte, Paraiba,
-# Pernambuco (except Fernando de Noronha)
+# Maranhao (MA), Piaui (PI), Ceara (CE), Rio Grande do Norte (RN),
+# Paraiba (PB), Pernambuco (PE) (except Fernando de Noronha)
Zone America/Fortaleza -2:34:00 - LMT 1914
- -3:00 Brazil BR%sT 1990 Jul
- -3:00 - BRT
+ -3:00 Brazil BR%sT 1990 Sep 17
+ -3:00 - BRT 1999 Sep 30
+ -3:00 Brazil BR%sT
#
-# Tocantins
+# Tocantins (TO)
Zone America/Araguaina -3:12:48 - LMT 1914
- -3:00 Brazil BR%sT 1990 Jul
- -3:00 - BRT 1995 Jul
+ -3:00 Brazil BR%sT 1990 Sep 17
+ -3:00 - BRT 1995 Sep 14
-3:00 Brazil BR%sT
#
-# Alagoas, Sergipe
+# Alagoas (AL), Sergipe (SE)
Zone America/Maceio -2:22:52 - LMT 1914
- -3:00 Brazil BR%sT 1990 Jul
- -3:00 - BRT 1995 Jul
- -3:00 Brazil BR%sT 1996 Jul
- -3:00 - BRT
+ -3:00 Brazil BR%sT 1990 Sep 17
+ -3:00 - BRT 1995 Oct 13
+ -3:00 Brazil BR%sT 1996 Sep 4
+ -3:00 - BRT 1999 Sep 30
+ -3:00 Brazil BR%sT
#
-# Bahia, Goias, Distrito Federal, Minas Gerais, Espirito Santo, Rio de Janeiro,
-# Sao Paulo, Parana, Santa Catarina, Rio Grande do Sul
+# Bahia (BA), Goias (GO), Distrito Federal (DF), Minas Gerais (MG),
+# Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR),
+# Santa Catarina (SC), Rio Grande do Sul (RS)
Zone America/Sao_Paulo -3:06:28 - LMT 1914
-3:00 Brazil BR%sT 1963 Oct 23 00:00
- -3:00 - BRST 1964
+ -3:00 1:00 BRST 1964
-3:00 Brazil BR%sT
#
# Mato Grosso, Mato Grosso do Sul
Zone America/Cuiaba -3:44:20 - LMT 1914
- -4:00 Brazil AM%sT 1990 Jul
- -4:00 - AMT
+ -4:00 Brazil AM%sT
#
-# Roraima, west Para, Rondonia
+# west Para (PA), Rondonia (RO)
Zone America/Porto_Velho -4:15:36 - LMT 1914
- -4:00 Brazil AM%sT 1988 Jul
+ -4:00 Brazil AM%sT 1988 Sep 12
-4:00 - AMT
#
-# Amazonas
+# Roraima (RR)
+Zone America/Boa_Vista -4:02:40 - LMT 1914
+ -4:00 Brazil AM%sT 1988 Sep 12
+ -4:00 - AMT 1999 Sep 30
+ -4:00 Brazil AM%sT
+#
+# Amazonas (AM)
Zone America/Manaus -4:00:04 - LMT 1914
- -4:00 Brazil AM%sT 1988 Jul
- -4:00 - AMT 1993 Jul
- -4:00 Brazil AM%sT 1994 Jul
+ -4:00 Brazil AM%sT 1988 Sep 12
+ -4:00 - AMT 1993 Sep 28
+ -4:00 Brazil AM%sT 1994 Sep 22
-4:00 - AMT
#
-# Acre
+# Acre (AC)
# Rio_Branco is too ambiguous, since there's a Rio Branco in Uruguay too.
Zone America/Porto_Acre -4:31:12 - LMT 1914
- -5:00 Brazil AC%sT 1988 Jul
+ -5:00 Brazil AC%sT 1988 Sep 12
-5:00 - ACT
#
# Martin Vaz and Trinidade are like America/Noronha.
@@ -452,7 +440,7 @@ Rule Chile 1999 only - Apr 4 0:00 0 -
Rule Chile 1999 max - Oct Sun>=9 0:00 1:00 S
Rule Chile 2000 max - Mar Sun>=9 0:00 0 -
# IATA SSIM anomalies: (1990-09) says 1990-09-16; (1992-02) says 1992-03-14;
-# (1996-09) says 1998-03-08. Ignore these for now.
+# (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Santiago -4:42:40 - LMT 1890
-4:42:40 - SMT 1910 # Santiago Mean Time
@@ -469,9 +457,10 @@ Zone Pacific/Easter -7:17:28 - LMT 1890 # Mataveri
# Colombia
+# Shanks specifies 24:00 for 1992 transition times; go with IATA,
+# as it seems implausible to change clocks at midnight New Year's Eve.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule CO 1992 only - May 2 0:00 1:00 S
-# Shanks (1995) estimates 1993-04-03 24:00 for this; go with IATA.
Rule CO 1992 only - Dec 31 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Bogota -4:56:20 - LMT 1884 Mar 13
@@ -481,7 +470,7 @@ Zone America/Bogota -4:56:20 - LMT 1884 Mar 13
# no information; probably like America/Bogota
# Curacao
-# Shanks (1995) says that Bottom and Oranjestad have been at -4:00 since
+# Shanks says that Bottom and Oranjestad have been at -4:00 since
# standard time was introduced on 1912-03-02; and that Kralendijk and Rincon
# used Kralendijk Mean Time (-4:33:08) from 1912-02-02 to 1965-01-01.
# This all predates our 1970 cutoff, though.
@@ -535,22 +524,14 @@ Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown
-4:00 - GYT
# Paraguay
-
-# From Bob Devine (1988-01-28):
-# Paraguay: First day in October to last in March. Midnight switch??
-# Since 1980.
-
-# From U. S. Naval Observatory (1989-01-19):
-# PARAGUAY 4 H BEHIND UTC
-# PARAGUAY 3 H BEHIND UTC OCT 1, '88-MAR 31, '89
-
-# From Shanks (1991):
+# From Paul Eggert (1999-10-29):
+# Shanks (1999) says that spring transitions are from 01:00 -> 02:00,
+# and autumn transitions are from 00:00 -> 23:00. Go with earlier
+# editions of Shanks, and with the IATA, who say transitions occur at 00:00.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Para 1975 1978 - Oct 1 0:00 1:00 S
+Rule Para 1975 1988 - Oct 1 0:00 1:00 S
Rule Para 1975 1978 - Mar 1 0:00 0 -
-# Shanks says 1979 was all DST.
-Rule Para 1980 1991 - Apr 1 0:00 0 -
-Rule Para 1980 1988 - Oct 1 0:00 1:00 S
+Rule Para 1979 1991 - Apr 1 0:00 0 -
Rule Para 1989 only - Oct 22 0:00 1:00 S
Rule Para 1990 only - Oct 1 0:00 1:00 S
Rule Para 1991 only - Oct 6 0:00 1:00 S
@@ -559,9 +540,13 @@ Rule Para 1992 only - Oct 5 0:00 1:00 S
Rule Para 1993 only - Mar 31 0:00 0 -
Rule Para 1993 1995 - Oct 1 0:00 1:00 S
Rule Para 1994 1995 - Feb lastSun 0:00 0 -
-Rule Para 1996 1998 - Mar 1 0:00 0 -
+Rule Para 1996 only - Mar 1 0:00 0 -
+# IATA SSIM (1997-09) says Mar 1; go with Shanks.
+Rule Para 1997 only - Feb lastSun 0:00 0 -
+Rule Para 1998 only - Mar 1 0:00 0 -
Rule Para 1996 max - Oct Sun>=1 0:00 1:00 S
-Rule Para 1999 max - Feb lastSat 0:00 0 -
+# IATA SSIM (1999-02) says lastSat, not lastSun; go with Shanks.
+Rule Para 1999 max - Feb lastSun 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Asuncion -3:50:40 - LMT 1890
-3:50:40 - AMT 1931 Oct 10 # Asuncion Mean Time
@@ -611,7 +596,7 @@ Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2
# Uruguay
# From Paul Eggert <eggert@twinsun.com> (1993-11-18):
# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
-# From Shanks (1991):
+# From Shanks:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Whitman gives 1923 Oct 1; go with Shanks.
Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS
@@ -653,10 +638,10 @@ Rule Uruguay 1988 only - Mar 14 0:00 0 -
Rule Uruguay 1988 only - Dec 11 0:00 1:00 S
Rule Uruguay 1989 only - Mar 12 0:00 0 -
Rule Uruguay 1989 only - Oct 29 0:00 1:00 S
+# Shanks says no DST was observed in 1990/1 and 1991/2,
+# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA.
Rule Uruguay 1990 1992 - Mar Sun>=1 0:00 0 -
Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S
-# Shanks's 4th edition (1995) says no DST was observed in 1990/1 and 1991/2,
-# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA.
Rule Uruguay 1992 only - Oct 18 0:00 1:00 S
Rule Uruguay 1993 only - Feb 28 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
diff --git a/timezone/zone.tab b/timezone/zone.tab
index 79257a1..b5f67e9 100644
--- a/timezone/zone.tab
+++ b/timezone/zone.tab
@@ -1,4 +1,4 @@
-# @(#)zone.tab 1.15
+# @(#)zone.tab 1.16
#
# TZ zone descriptions
#
@@ -78,7 +78,8 @@ BR -0712-04812 America/Araguaina Tocantins
BR -0940-03543 America/Maceio Alagoas, Sergipe
BR -2332-04637 America/Sao_Paulo S & SE Brazil (BA, GO, DF, MG, ES, RJ, SP, PR, SC, RS)
BR -1535-05605 America/Cuiaba Mato Grosso, Mato Grosso do Sul
-BR -0846-06354 America/Porto_Velho W Para, Rondonia, Roraima
+BR -0846-06354 America/Porto_Velho W Para, Rondonia
+BR +0249-06040 America/Boa_Vista Roraima
BR -0308-06001 America/Manaus Amazonas
BR -0934-06731 America/Porto_Acre Acre
BS +2505-07721 America/Nassau
@@ -121,7 +122,6 @@ CL -2710-10927 Pacific/Easter Easter Island
CM +0403+00942 Africa/Douala
CN +4545+12641 Asia/Harbin north Manchuria
CN +3114+12128 Asia/Shanghai China coast
-CN +2217+11409 Asia/Hong_Kong Hong Kong
CN +2934+10635 Asia/Chungking China mountains
CN +4348+08735 Asia/Urumqi Tibet & Xinjiang
CN +3929+07559 Asia/Kashgar Eastern Turkestan
@@ -178,6 +178,7 @@ GT +1438-09031 America/Guatemala
GU +1328+14445 Pacific/Guam
GW +1151-01535 Africa/Bissau
GY +0648-05810 America/Guyana
+HK +2217+11409 Asia/Hong_Kong
HN +1406-08713 America/Tegucigalpa
HR +4548+01558 Europe/Zagreb
HT +1832-07220 America/Port-au-Prince
@@ -242,12 +243,11 @@ MT +3554+01431 Europe/Malta
MU -2010+05730 Indian/Mauritius
MV +0410+07330 Indian/Maldives
MW -1547+03500 Africa/Blantyre
-MX +2105-08646 America/Cancun Eastern Time
-MX +1924-09909 America/Mexico_City Central Time
+MX +1924-09909 America/Mexico_City Central Time - most locations
+MX +2105-08646 America/Cancun Central Time - Quintana Roo
MX +2313-10625 America/Mazatlan Mountain Time - most locations
MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua
-MX +3152-11637 America/Ensenada Pacific Time - most locations
-MX +3232-11701 America/Tijuana Pacific Time - north Baja California
+MX +3232-11701 America/Tijuana Pacific Time
MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia
MY +0133+11020 Asia/Kuching Sabah & Sarawak
MZ -2558+03235 Africa/Maputo
@@ -330,6 +330,7 @@ TK -0922-17114 Pacific/Fakaofo
TM +3757+05823 Asia/Ashkhabad
TN +3648+01011 Africa/Tunis
TO -2110+17510 Pacific/Tongatapu
+TP -0833+12535 Asia/Dili
TR +4101+02858 Europe/Istanbul
TT +1039-06131 America/Port_of_Spain
TV -0831+17913 Pacific/Funafuti