Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 10 Nov 1999 02:42:49 +0000 (02:42 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 10 Nov 1999 02:42:49 +0000 (02:42 +0000)
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.

19 files changed:
ChangeLog
elf/dl-load.c
manual/search.texi
misc/syslog.c
posix/Makefile
posix/regex.c
posix/tst-getlogin.c [new file with mode: 0644]
sysdeps/unix/getlogin_r.c
sysdeps/unix/sysv/linux/bits/resource.h
timezone/africa
timezone/asia
timezone/australasia
timezone/backward
timezone/checktab.awk
timezone/europe
timezone/iso3166.tab
timezone/northamerica
timezone/southamerica
timezone/zone.tab

index cd3953c..f3d9cad 100644 (file)
--- 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
index eb3c415..2d54786 100644 (file)
@@ -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.  */
index f561ef9..ec82e1c 100644 (file)
@@ -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
index ee832fe..9690bf1 100644 (file)
@@ -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
index f8e72b6..7861bdf 100644 (file)
@@ -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
index 16e91f1..04df21e 100644 (file)
@@ -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 */
 \f
 /* 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
 \f
+#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 */
+\f
 /* 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 (file)
index 0000000..75c0c5c
--- /dev/null
@@ -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;
+}
index cb0545e..04b9905 100644 (file)
@@ -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;
        }
     }
index 42e0d36..fcff605 100644 (file)
@@ -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
 };
index d5d8544..69657c0 100644 (file)
@@ -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
index 394877c..fd17407 100644 (file)
@@ -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?
index 0dbb9da..1782558 100644 (file)
@@ -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.
index 84f3de5..23b76cb 100644 (file)
@@ -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
index 43ecc92..6a2d19a 100644 (file)
@@ -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]
                        }
index ea38d12..cdbc667 100644 (file)
@@ -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
 # 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
index e20b589..0173c40 100644 (file)
@@ -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
index 6203adf..743e721 100644 (file)
@@ -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
-# 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
 
index 2544680..bb95d0d 100644 (file)
@@ -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]
index 79257a1..b5f67e9 100644 (file)
@@ -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