]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
update from main archive 960909 cvs/libc-960910
authorUlrich Drepper <drepper@redhat.com>
Tue, 10 Sep 1996 02:00:15 +0000 (02:00 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 10 Sep 1996 02:00:15 +0000 (02:00 +0000)
Mon Sep  9 20:31:27 1996  Ulrich Drepper  <drepper@cygnus.com>

* version.c (banner): Report to bug-glibc@prep not @gnu.
Reported by Andreas Jaeger.

* libio/stdio.h [!__USE_REENTRANT]: Don't define getc as
  _IO_getc_unlocked.
[__USE_REENTRANT]: Don't define

Mon Sep  9 15:59:32 1996  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/i386/strrchr.c: Fix bug where NUL byte is not recognized
when it is the third byte in the string.  Reported by
NIIBE Yutaka.
* string/tester.c: Add tests for above bug to strlen, strchr, and
strrchr tests.

Fri Sep  6 21:23:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* sysdeps/m68k/fpu/e_acos.c: Deansideclized.  Include
"math_private.h" to get prototype.
* sysdeps/m68k/fpu/e_fmod.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Likewise.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.

* sysdeps/m68k/fpu/k_sin.c: Remove uneeded indirection of
__m81_u.
* sysdeps/m68k/fpu/k_tan.c: Likewise.

Sun Sep  1 18:01:35 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* sysdeps/m68k/fpu/__math.h: Check for __NO_M81_MATH_INLINES
instead of __NO_MATH_INLINES.
(__M81_MATH_INLINES): Renamed from __MATH_INLINES.
* sysdeps/m68k/fpu/e_acos.c: Define __NO_M81_MATH_INLINES.
* sysdeps/m68k/fpu/e_fmod.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Likewise.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
* sysdeps/m68k/fpu/s_atan.c: Likewise.
* sysdeps/m68k/fpu/s_frexp.c: Likewise.
* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
* sysdeps/m68k/fpu/s_isinf.c: Likewise.
* sysdeps/m68k/fpu/s_ldexp.c: Likewise.
* sysdeps/m68k/fpu/s_modf.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Use inline version of __cos.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.

Mon Sep  9 12:55:14 1996  Ulrich Drepper  <drepper@cygnus.com>

* nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): Check for
available character before converting number and return with
error if none is available.

Fri Sep  6 22:09:08 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* sysdeps/unix/sysv/linux/init-first.h: New file, generic
implementation for architectures where parameters are passed on
stack.
* sysdeps/unix/sysv/linux/m68k/init-first.h: Removed.
* sysdeps/unix/sysv/linux/i386/init-first.h: Removed.

Fri Sep  6 22:05:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* configure.in: Remove unneeded sysnames frobbing.

Mon Sep  9 05:29:09 1996  Ulrich Drepper  <drepper@cygnus.com>

* time/zic.c: Update from ADO 96l.
* time/africa: Update from ADO 96k.
* time/antarctica: Likewise.
* time/asia: Likewise.
* time/australia: Likewise.
* time/europe: Likewise.
* time/northamerica: Likewise.
* time/southamerica: Likewise.

Mon Sep  9 05:03:47 1996  NIIBE Yutaka  <gniibe@mri.co.jp>

* sysdeps/unix/sysv/linux/i386/init-first.h: Work around buggy
gcc <= 2.7.2.1 which optimizes away address operations on weak
objects.

* nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): New macro.
Like INT_FIELD but also accept non-existing field.
* shadow/sgetspent_r.c (LINE_PARSER): Use INT_FIELD_MAYBE_NULL
for last four fields.
* shadow/putspent.c (putspent): Print `:' after numeric value.

Mon Sep  9 02:42:48 1996  Richard Henderson  <rth@tamu.edu>

* libio/stdio.h (BUFSIZ): Define using _IO_BUFSIZ.

Sun Sep  8 16:43:56 1996  Ulrich Drepper  <drepper@cygnus.com>

* Make-dist: Filter out $(add-ons) from $(subdirs).
Don't distribute TAGS files.
($(tardir).tar): Remove dist.tar when all is done.
* manual/Makefile (distribute): Add libc.info*.
* libio/Makefile (distribute): Add Banner.
* inet/Makefile (headers): Add netinet/tcp.h.

* resolv/Makefile (libresolv-routines): Add getnetnamadr.

* crypt-README: Removed.
* gnu-stabs.h: Removed.

* sysdeps/alpha/copysign.S: Renamed to...
* sysdeps/alpha/s_copysign.S: ...this.
* sysdeps/alpha/fabs.S: Renamed to...
* sysdeps/alpha/s_fabs.S: ...this.

* sysdeps/m68k/isinfl.c: Renamed to...
* sysdeps/m68k/s_isinfl.c: ...this.
* sysdeps/m68k/isnanl.c: Renamed to...
* sysdeps/m68k/s_isnanl.c: ...this.

* sysdeps/sparc/sqrt.c: Renamed to...
* sysdeps/sparc/e_sqrt.c: ...this.  Function name now is
__ieee754_sqrt.

* sysdeps/generic/get_str.c: Removed.

* sysdeps/ieee754/cbrt.c: Removed.
* sysdeps/ieee754/drem.c: Removed.
* sysdeps/ieee754/logb.c: Removed.
* sysdeps/ieee754/sqrt.c: Removed.

* sysdeps/stub/cbrt.c: Removed.
* sysdeps/stub/cos.c: Removed.
* sysdeps/stub/drem.c: Removed.
* sysdeps/stub/isinf.c: Removed.
* sysdeps/stub/isinfl.c: Removed.
* sysdeps/stub/isnanl.c: Removed.
* sysdeps/stub/logb.c: Removed.
* sysdeps/stub/sin.c: Removed.
* sysdeps/stub/sqrt.c: Removed.

* sysdeps/tahoe/log10.c: Removed.

* sysdeps/vax/index.s: Removed.
* sysdeps/vax/rindex.s: Removed.
* sysdeps/vax/bcmp.s: Removed.
* sysdeps/vax/log10.c: Removed.
* sysdeps/vax/infnan.c: Removed.
* sysdeps/vax/Dist: Add fl.h.

* sysdeps/unix/sysv/linux/alpha/Dist: Add llseek.S.

* inet/rcmd.c (rcmd): Make messages more uniform.

Sun Sep  8 14:15:42 1996  Ulrich Drepper  <drepper@cygnus.com>

* po/de.po: Update.
* po/es.po: Update.
* po/ko.po: Update.
* po/pl.po: New file.
* po/nl.po: New file.

take care for a possible clash.  Nobody will name the domain

73 files changed:
ChangeLog
Make-dist
README
configure
configure.in
crypt-README [deleted file]
gnu-stabs.h [deleted file]
inet/Makefile
inet/rcmd.c
libio/Makefile
libio/stdio.h
manual/Makefile
nss/nss_files/files-parse.c
resolv/Makefile
shadow/putspent.c
shadow/sgetspent_r.c
string/tester.c
sysdeps/alpha/s_copysign.S [moved from sysdeps/alpha/copysign.S with 100% similarity]
sysdeps/alpha/s_fabs.S [moved from sysdeps/alpha/fabs.S with 94% similarity]
sysdeps/generic/get_str.c [deleted file]
sysdeps/generic/prof-freq.c
sysdeps/i386/strrchr.S
sysdeps/ieee754/cbrt.c [deleted file]
sysdeps/ieee754/drem.c [deleted file]
sysdeps/ieee754/logb.c [deleted file]
sysdeps/ieee754/sqrt.c [deleted file]
sysdeps/m68k/fpu/__math.h
sysdeps/m68k/fpu/e_acos.c
sysdeps/m68k/fpu/e_fmod.c
sysdeps/m68k/fpu/k_cos.c
sysdeps/m68k/fpu/k_sin.c
sysdeps/m68k/fpu/k_tan.c
sysdeps/m68k/fpu/s_atan.c
sysdeps/m68k/fpu/s_frexp.c
sysdeps/m68k/fpu/s_ilogb.c
sysdeps/m68k/fpu/s_isinf.c
sysdeps/m68k/fpu/s_ldexp.c
sysdeps/m68k/fpu/s_modf.c
sysdeps/m68k/s_isinfl.c [moved from sysdeps/m68k/isinfl.c with 100% similarity]
sysdeps/m68k/s_isnanl.c [moved from sysdeps/m68k/isnanl.c with 100% similarity]
sysdeps/mach/hurd/prof-freq.c
sysdeps/sparc/e_sqrt.c [moved from sysdeps/sparc/sqrt.c with 96% similarity]
sysdeps/stub/cbrt.c [deleted file]
sysdeps/stub/cos.c [deleted file]
sysdeps/stub/drem.c [deleted file]
sysdeps/stub/isinf.c [deleted file]
sysdeps/stub/isinfl.c [deleted file]
sysdeps/stub/isnanl.c [deleted file]
sysdeps/stub/logb.c [deleted file]
sysdeps/stub/sin.c [deleted file]
sysdeps/stub/sqrt.c [deleted file]
sysdeps/tahoe/log10.c [deleted file]
sysdeps/unix/sysv/linux/alpha/Dist
sysdeps/unix/sysv/linux/i386/init-first.h [deleted file]
sysdeps/unix/sysv/linux/m68k/init-first.h [deleted file]
sysdeps/vax/Dist
sysdeps/vax/bcmp.s [deleted file]
sysdeps/vax/index.s [deleted file]
sysdeps/vax/infnan.c [deleted file]
sysdeps/vax/log10.c [deleted file]
sysdeps/vax/memcmp.s
sysdeps/vax/rindex.s [deleted file]
sysdeps/vax/strchr.s
sysdeps/vax/strrchr.s
time/africa
time/antarctica
time/asia
time/australasia
time/europe
time/northamerica
time/southamerica
time/zic.c
version.c

index c052ebf06ae01686235854444cca6916c734cd30..92b1e8a061e17802c7be40664c4a18c05a3e6c3b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,164 @@
+Mon Sep  9 20:31:27 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * version.c (banner): Report to bug-glibc@prep not @gnu.
+       Reported by Andreas Jaeger.
+
+       * libio/stdio.h [!__USE_REENTRANT]: Don't define getc as
+       _IO_getc_unlocked.
+       [__USE_REENTRANT]: Don't define
+
+Mon Sep  9 15:59:32 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/i386/strrchr.c: Fix bug where NUL byte is not recognized
+       when it is the third byte in the string.  Reported by
+       NIIBE Yutaka.
+       * string/tester.c: Add tests for above bug to strlen, strchr, and
+       strrchr tests.
+
+Fri Sep  6 21:23:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/m68k/fpu/e_acos.c: Deansideclized.  Include
+       "math_private.h" to get prototype.
+       * sysdeps/m68k/fpu/e_fmod.c: Likewise.
+       * sysdeps/m68k/fpu/k_cos.c: Likewise.
+       * sysdeps/m68k/fpu/k_sin.c: Likewise.
+       * sysdeps/m68k/fpu/k_tan.c: Likewise.
+
+       * sysdeps/m68k/fpu/k_sin.c: Remove uneeded indirection of
+       __m81_u.
+       * sysdeps/m68k/fpu/k_tan.c: Likewise.
+
+Sun Sep  1 18:01:35 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/m68k/fpu/__math.h: Check for __NO_M81_MATH_INLINES
+       instead of __NO_MATH_INLINES.
+       (__M81_MATH_INLINES): Renamed from __MATH_INLINES.
+       * sysdeps/m68k/fpu/e_acos.c: Define __NO_M81_MATH_INLINES.
+       * sysdeps/m68k/fpu/e_fmod.c: Likewise.
+       * sysdeps/m68k/fpu/k_cos.c: Likewise.
+       * sysdeps/m68k/fpu/k_sin.c: Likewise.
+       * sysdeps/m68k/fpu/k_tan.c: Likewise.
+       * sysdeps/m68k/fpu/s_atan.c: Likewise.
+       * sysdeps/m68k/fpu/s_frexp.c: Likewise.
+       * sysdeps/m68k/fpu/s_ilogb.c: Likewise.
+       * sysdeps/m68k/fpu/s_isinf.c: Likewise.
+       * sysdeps/m68k/fpu/s_ldexp.c: Likewise.
+       * sysdeps/m68k/fpu/s_modf.c: Likewise.
+       * sysdeps/m68k/fpu/k_cos.c: Use inline version of __cos.
+       * sysdeps/m68k/fpu/k_sin.c: Likewise.
+       * sysdeps/m68k/fpu/k_tan.c: Likewise.
+
+Mon Sep  9 12:55:14 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): Check for
+       available character before converting number and return with
+       error if none is available.
+
+Fri Sep  6 22:09:08 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/unix/sysv/linux/init-first.h: New file, generic
+       implementation for architectures where parameters are passed on
+       stack.
+       * sysdeps/unix/sysv/linux/m68k/init-first.h: Removed.
+       * sysdeps/unix/sysv/linux/i386/init-first.h: Removed.
+
+Fri Sep  6 22:05:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * configure.in: Remove unneeded sysnames frobbing.
+
+Mon Sep  9 05:29:09 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * time/zic.c: Update from ADO 96l.
+       * time/africa: Update from ADO 96k.
+       * time/antarctica: Likewise.
+       * time/asia: Likewise.
+       * time/australia: Likewise.
+       * time/europe: Likewise.
+       * time/northamerica: Likewise.
+       * time/southamerica: Likewise.
+
+Mon Sep  9 05:03:47 1996  NIIBE Yutaka  <gniibe@mri.co.jp>
+
+       * sysdeps/unix/sysv/linux/i386/init-first.h: Work around buggy
+       gcc <= 2.7.2.1 which optimizes away address operations on weak
+       objects.
+
+       * nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): New macro.
+       Like INT_FIELD but also accept non-existing field.
+       * shadow/sgetspent_r.c (LINE_PARSER): Use INT_FIELD_MAYBE_NULL
+       for last four fields.
+       * shadow/putspent.c (putspent): Print `:' after numeric value.
+
+Mon Sep  9 02:42:48 1996  Richard Henderson  <rth@tamu.edu>
+
+       * libio/stdio.h (BUFSIZ): Define using _IO_BUFSIZ.
+
+Sun Sep  8 16:43:56 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * Make-dist: Filter out $(add-ons) from $(subdirs).
+       Don't distribute TAGS files.
+       ($(tardir).tar): Remove dist.tar when all is done.
+       * manual/Makefile (distribute): Add libc.info*.
+       * libio/Makefile (distribute): Add Banner.
+       * inet/Makefile (headers): Add netinet/tcp.h.
+
+       * resolv/Makefile (libresolv-routines): Add getnetnamadr.
+
+       * crypt-README: Removed.
+       * gnu-stabs.h: Removed.
+
+       * sysdeps/alpha/copysign.S: Renamed to...
+       * sysdeps/alpha/s_copysign.S: ...this.
+       * sysdeps/alpha/fabs.S: Renamed to...
+       * sysdeps/alpha/s_fabs.S: ...this.
+
+       * sysdeps/m68k/isinfl.c: Renamed to...
+       * sysdeps/m68k/s_isinfl.c: ...this.
+       * sysdeps/m68k/isnanl.c: Renamed to...
+       * sysdeps/m68k/s_isnanl.c: ...this.
+
+       * sysdeps/sparc/sqrt.c: Renamed to...
+       * sysdeps/sparc/e_sqrt.c: ...this.  Function name now is
+       __ieee754_sqrt.
+
+       * sysdeps/generic/get_str.c: Removed.
+
+       * sysdeps/ieee754/cbrt.c: Removed.
+       * sysdeps/ieee754/drem.c: Removed.
+       * sysdeps/ieee754/logb.c: Removed.
+       * sysdeps/ieee754/sqrt.c: Removed.
+
+       * sysdeps/stub/cbrt.c: Removed.
+       * sysdeps/stub/cos.c: Removed.
+       * sysdeps/stub/drem.c: Removed.
+       * sysdeps/stub/isinf.c: Removed.
+       * sysdeps/stub/isinfl.c: Removed.
+       * sysdeps/stub/isnanl.c: Removed.
+       * sysdeps/stub/logb.c: Removed.
+       * sysdeps/stub/sin.c: Removed.
+       * sysdeps/stub/sqrt.c: Removed.
+
+       * sysdeps/tahoe/log10.c: Removed.
+
+       * sysdeps/vax/index.s: Removed.
+       * sysdeps/vax/rindex.s: Removed.
+       * sysdeps/vax/bcmp.s: Removed.
+       * sysdeps/vax/log10.c: Removed.
+       * sysdeps/vax/infnan.c: Removed.
+       * sysdeps/vax/Dist: Add fl.h.
+
+       * sysdeps/unix/sysv/linux/alpha/Dist: Add llseek.S.
+
+       * inet/rcmd.c (rcmd): Make messages more uniform.
+
+Sun Sep  8 14:15:42 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+       * po/de.po: Update.
+       * po/es.po: Update.
+       * po/ko.po: Update.
+       * po/pl.po: New file.
+       * po/nl.po: New file.
+
 Sat Sep  7 18:41:17 1996  Richard Henderson  <rth@tamu.edu>
 
        * Makeconfig (+link): Filter out start, pre & postinit from the
@@ -11,7 +172,7 @@ Sun Sep  8 02:36:02 1996  Ulrich Drepper  <drepper@cygnus.com>
 
        * locale/SYS_libc.c (_libc_intl_domainname): Change value to "libc".
        This is consistent with all other GNU packages.  We shouldn't
-       take care for a possible clash.  Somebody will name the domain
+       take care for a possible clash.  Nobody will name the domain
        of a package libc if it is not the libc itself.
        * MakeTAGS ($P/SYS_libc.pot): Rename to $P/libc.pot.
        * po/Makefile (domainname): Change to libc.
index 10ea43c06bdd0573f8d48bdc2ea4d78b42810377..ec0f10bd8e4f2fd006826efb436a076622845b94 100644 (file)
--- a/Make-dist
+++ b/Make-dist
@@ -40,6 +40,9 @@ else
 sysdep_dirs := $(addprefix $(..),$(sysdep_dirs))
 endif
 
+# Don't distribute add-on subdirs.
+subdirs := $(filter-out $(add-ons),$(subdirs))
+
 # Make sure both stdio and libio get in, whichever is in use.
 subdirs += stdio libio
 
@@ -129,8 +132,8 @@ endif
 $(..)glibc-$(version):
        ln -s . $@
 
-+tsrcs := $(+tsrcs) \
-         TAGS
+#+tsrcs := $(+tsrcs) \
+#        TAGS
 .PHONY: TAGS
 TAGS: $(..)MakeTAGS
        $(MAKE) -f $< $@ -o subdir_TAGS
@@ -195,7 +198,7 @@ $(tardir).tar: dist.tar subdir_dist
        @echo Files listed here have names exceeding 14 chars.
        tar xfv $< -C /tmp | sed -n '/[^/]\{15,\}/p'
        tar covf $@ -C /tmp $(tardir)
-       -rm -fr /tmp/$(tardir) &
+       -rm -fr /tmp/$(tardir) dist.tar &
 
 %.Z: %
        compress -c $< > $@
diff --git a/README b/README
index 8f2c548dd19718869ac7fd34d7b3a8dc0b422a08..c04bef259cc5e5240ac0bdfedde460b6681da82b 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This directory contains the version 1.93 test release of the GNU C Library.
+This directory contains the version 1.94 test release of the GNU C Library.
 Many bugs have been fixed since the last release.
 Some bugs surely remain.
 
@@ -38,7 +38,7 @@ provides the Unix `crypt' function, plus some other entry points.
 Because of the United States export restriction on DES implementations,
 we are distributing this code separately from the rest of the C
 library.  There is an extra distribution tar file just for crypt; it is
-called `glibc-1.93-crypt.tar.gz'.  You can just unpack the crypt
+called `glibc-1.94-crypt.tar.gz'.  You can just unpack the crypt
 distribution along with the rest of the C library and build; you can
 also build the library without getting crypt.  Users outside the USA
 can get the crypt distribution via anonymous FTP from ftp.uni-c.dk
index 2d03f8c6dad642d18c5debe1ca744baf4b10a0c8..fc7595cdf8e43f1ecb0ec5bdee7f88ed4d78458d 100755 (executable)
--- a/configure
+++ b/configure
@@ -886,10 +886,6 @@ if test "$elf" = yes; then
 fi
 
 
-# Remove the leading slashes.
-sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
-
-
 # Expand the list of system names into a full list of directories
 # from each element's parent name and Implies file (if present).
 set $sysnames
@@ -1174,13 +1170,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1178 "configure"
+#line 1174 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1189,13 +1185,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1193 "configure"
+#line 1189 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1337,7 +1333,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1341 "configure"
+#line 1337 "configure"
 #include "confdefs.h"
 #define __need_size_t
 #define __need_wchar_t
@@ -1353,7 +1349,7 @@ size_t size; wchar_t wchar;
 if (&size == NULL || &wchar == NULL) abort ();
 ; return 0; }
 EOF
-if { (eval echo configure:1357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_friendly_stddef=yes
 else
@@ -1460,7 +1456,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1464 "configure"
+#line 1460 "configure"
 #include "confdefs.h"
 
 int main() { return 0; }
@@ -1470,7 +1466,7 @@ asm (".section .init");
                                    asm (".text");
 ; return 0; }
 EOF
-if { (eval echo configure:1474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_have_initfini=yes
 else
@@ -1498,7 +1494,7 @@ if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1502 "configure"
+#line 1498 "configure"
 #include "confdefs.h"
 asm ("_glibc_foobar:");
 int main() { return 0; }
@@ -1506,7 +1502,7 @@ int t() {
 glibc_foobar ();
 ; return 0; }
 EOF
-if { (eval echo configure:1510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:1506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
   rm -rf conftest*
   libc_cv_asm_underscores=yes
 else
@@ -1600,7 +1596,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
                            -nostdlib -nostartfiles -Wl,--no-whole-archive
-                           -o conftest conftest.c'; { (eval echo configure:1604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                           -o conftest conftest.c'; { (eval echo configure:1600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_ld_no_whole_archive=yes
 else
   libc_cv_ld_no_whole_archive=no
@@ -1621,7 +1617,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
                            -nostdlib -nostartfiles -fno-exceptions
-                           -o conftest conftest.c'; { (eval echo configure:1625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                           -o conftest conftest.c'; { (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_no_exceptions=yes
 else
   libc_cv_gcc_no_exceptions=no
index 76055a23420b949bb0f189eb86ae75d4e7ead36f..cd9de1306399ae64c99b9d3a236a29d4e00176b2 100644 (file)
@@ -256,10 +256,6 @@ if test "$elf" = yes; then
 fi
 
 
-# Remove the leading slashes.
-sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
-
-
 # Expand the list of system names into a full list of directories
 # from each element's parent name and Implies file (if present).
 set $sysnames
diff --git a/crypt-README b/crypt-README
deleted file mode 100644 (file)
index c80ddf5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
-provides the Unix `crypt' function, plus some other entry points.  Because
-of the United States export restriction on DES implementations, we are
-distributing this code separately from the rest of the C library.  There is
-an extra distribution tar file just for crypt; it is called
-`glibc-1.07-crypt.tar.gz'.  You can just unpack the crypt distribution
-along with the rest of the C library and build; you can also build the
-library without getting crypt.  Users outside the USA can get the crypt
-distribution via anonymous FTP from ftp.uni-c.dk [129.142.6.74], or another
-archive site outside the USA.  Archive maintainers are encouraged to copy
-this distribution to their archives outside the USA.  Please get it from
-ftp.uni-c.dk; transferring this distribution from prep.ai.mit.edu (or any
-other site in the USA) to a site outside the USA is in violation of US
-export laws.
diff --git a/gnu-stabs.h b/gnu-stabs.h
deleted file mode 100644 (file)
index 3cdc91d..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#error This file is obsolete.
-
-/* Copyright (C) 1991, 1992, 1994 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#ifndef        __GNU_STABS_H
-
-#define        __GNU_STABS_H   1
-
-#ifdef HAVE_GNU_LD
-
-/* Alias a function:
-       function_alias(creat, _creat, int, (file, mode),
-                      DEFUN(creat, (file, mode),
-                            CONST char *file AND int mode))
-   Yes, this is very repetitive.  Nothing you can do about it, so shut up.  */
-#define        function_alias(name, _name, type, args, defun) \
-  symbol_alias (_name, name);
-
-#define function_alias_void(name, _name, args, defun) \
-  symbol_alias (_name, name);
-
-#ifdef NO_UNDERSCORES
-#define __SYMBOL_PREFIX
-#else
-#define __SYMBOL_PREFIX "_"
-#endif
-
-/* Make references to ALIAS refer to SYMBOL.  */
-#define        symbol_alias(symbol, alias)     \
-  asm(".stabs \"" __SYMBOL_PREFIX #alias "\",11,0,0,0\n"\
-      ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0")
-
-/* Issue a warning message from the linker whenever SYMBOL is referenced.  */
-#define        warn_references(symbol, msg)    \
-  asm(".stabs \"" msg "\",30,0,0,0\n"  \
-      ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0")
-
-#define        stub_warning(name) \
-  warn_references(name, \
-                 "warning: " #name " is not implemented and will always fail")
-
-#define        text_set_element(set, symbol)   \
-  asm(".stabs \"" __SYMBOL_PREFIX #set "\",23,0,0," __SYMBOL_PREFIX #symbol)
-#define        data_set_element(set, symbol)   \
-  asm(".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol)
-#define        bss_set_element(set, symbol)    \
-  asm(".stabs \"" __SYMBOL_PREFIX #set "\",27,0,0," __SYMBOL_PREFIX #symbol)
-
-#else  /* No GNU stabs.  */
-
-#define        function_alias(name, _name, type, args, defun) \
-  type defun { return _name args; }
-
-#define function_alias_void(name, _name, args, defun) \
-  void defun { _name args; }
-
-#endif /* GNU stabs.  */
-
-#endif /* gnu-stabs.h  */
index e97da7f1ce39c78faa58b2f22ae29c13ea1349b6..fbac0dc4c8e74b63ac6f0c3c85ab6ab9f0c81c6b 100644 (file)
@@ -22,7 +22,7 @@
 subdir := inet
 
 headers        := netinet/ether.h netinet/in.h netinet/if_ether.h \
-          $(wildcard arpa/*.h protocols/*.h)
+          netinet/tcp.h $(wildcard arpa/*.h protocols/*.h)
 
 routines := ntohl ntohs htonl htons            \
            inet_lnaof inet_mkadr       \
index 7a29db2155b6478f4898b891091cabc5899a4b03..00fa965fd7c81543a2ccb97568b7cce981abff62 100644 (file)
@@ -173,7 +173,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
                    from.sin_port >= IPPORT_RESERVED ||
                    from.sin_port < IPPORT_RESERVED / 2) {
                        (void)fprintf(stderr,
-                           _("socket: protocol failure in circuit setup.\n"));
+                           _("socket: protocol failure in circuit setup\n"));
                        goto bad2;
                }
        }
index 355a79a0e58d83fa9b8e22ea798af17ebaa59365..1d0ec937bfd03cf091fadb181d721018222a2258 100644 (file)
@@ -48,6 +48,6 @@ endif
 aux    :=                                                                    \
        cleanup fileops genops stdfiles stdio strops
 
-distribute := iolibio.h libioP.h strfile.h
+distribute := iolibio.h libioP.h strfile.h Banner
 
 include ../Rules
index 0d6c5e67411971f7f9aace815c3f638e90918a9f..ce3da7df4cadd8eda450e55ade24562649cdebf5 100644 (file)
@@ -40,7 +40,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 #define EOF (-1)
 #endif
 #ifndef BUFSIZ
-#define BUFSIZ 1024
+#define BUFSIZ _IO_BUFSIZ
 #endif
 
 #define _IOFBF 0 /* Fully buffered. */
@@ -234,21 +234,16 @@ extern int putc_unlocked __P ((int, FILE *));
 extern int putchar_locked __P ((int));
 extern int putchar_unlocked __P ((int));
 
-# define getc_unlocked(fp) _IO_getc_unlocked (fp)
-# define getc_locked(fp) fgetc (fp)
-# define getchar_unlocked() getc_unlocked (stdin)
-# define getchar_locked() getc_locked (stdin)
-# define getc(fp) getc_locked (fp)
-
-# define putc_unlocked(c, fp) putc_unlocked (c, fp)
-# define putc_locked(c, fp) putc_locked (c, fp)
-# define putchar_unlocked(c) putc_unlocked (c, stdout)
-# define putchar_locked(c) putc_locked (c, stdout)
-# define putc(c, fp) putc_locked (c, fp)
-
-#else
-# define getc(fp) _IO_getc_unlocked (fp)
-# define putc(c, fp) _IO_putc_unlocked (c, fp)
+# ifndef _LIBC
+#  define getc_unlocked(fp) _IO_getc_unlocked (fp)
+#  define getc_locked(fp) fgetc (fp)
+#  define getchar_unlocked() getc_unlocked (stdin)
+#  define getchar_locked() getc_locked (stdin)
+#  define getc(fp) getc_locked (fp)
+#  define putchar_unlocked(c) putc_unlocked (c, stdout)
+#  define putchar_locked(c) putc_locked (c, stdout)
+#  define putc(c, fp) putc_locked (c, fp)
+# endif
 
 #endif /* __USE_REENTRANT */
 
index c0a5782ea7acea6ddfef48825174131c1279661e..5c217815b253d5d2f75bf3182a7529ce520c8c82 100644 (file)
@@ -77,7 +77,7 @@ doc-only-dist = Makefile COPYING.LIB mkinstalldirs
 distribute = $(minimal-dist)                                           \
             $(patsubst examples/%.c,%.c.texi,$(filter examples/%.c,    \
                        $(minimal-dist)))                               \
-            libc.?? libc.??s texinfo.tex summary.texi                  \
+            libc.info* libc.?? libc.??s texinfo.tex summary.texi       \
             stamp-summary chapters chapters-incl
 export distribute := $(distribute)
 
index c9fb1f81e99b8f902c2ab6b12351186d7f1fc61a..ece253d01740c84eaf3c7e7a947dd313ce5c47f3 100644 (file)
@@ -121,6 +121,24 @@ parse_line (char *line, struct STRUCTURE *result,                        \
     line = endp;                                                             \
   }
 
+#define INT_FIELD_MAYBE_NULL(variable, terminator_p, swallow, base, convert, default)        \
+  {                                                                          \
+    char *endp;                                                                      \
+    if (*line == '\0')                                                       \
+      /* We expect some more input, so don't allow the string to end here. */ \
+      return 0;                                                                      \
+    variable = convert (strtol (line, &endp, base));                         \
+    if (endp == line)                                                        \
+      variable = default;                                                    \
+    if (terminator_p (*endp))                                                \
+      do                                                                     \
+       ++endp;                                                               \
+      while (swallow && terminator_p (*endp));                               \
+    else if (*endp != '\0')                                                  \
+      return 0;                                                                      \
+    line = endp;                                                             \
+  }
+
 #define ISCOLON(c) ((c) == ':')
 
 
index 51257a5917a96cfc74f62433c32fc184fcf17d7b..fffaca3948801f79f5fbf0d5e75ce0544ee86566 100644 (file)
@@ -27,9 +27,9 @@ distribute := ../conf/portability.h mapv4v6addr.h mapv4v6hostent.h
 routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init
 
 extra-libs := libresolv
-libresolv-routines := gethnamaddr res_comp res_debug res_data res_mkquery \
-                     res_query res_send inet_net_ntop inet_net_pton \
-                     inet_neta base64
+libresolv-routines := gethnamaddr getnetnamadr res_comp res_debug      \
+                     res_data res_mkquery res_query res_send           \
+                     inet_net_ntop inet_net_pton inet_neta base64
 
 include ../Rules
 
index 59dbfda172e255d5276aae044e58dcce976d85de..b638057bae5e95c563f0c2c5c9f5a0864f83fe66 100644 (file)
@@ -28,48 +28,48 @@ putspent (const struct spwd *p, FILE *stream)
 {
   int errors = 0;
 
-  if (fprintf (stream, "%s:%s", p->sp_namp, p->sp_pwdp) < 0)
+  if (fprintf (stream, "%s:%s:", p->sp_namp, p->sp_pwdp) < 0)
     ++errors;
 
   if ((p->sp_lstchg != (time_t) -1
-       && fprintf (stream, "%ld", p->sp_lstchg) < 0)
+       && fprintf (stream, "%ld:", p->sp_lstchg) < 0)
       || (p->sp_lstchg == (time_t) -1
          && putc (':', stream) == EOF))
     ++errors;
 
   if ((p->sp_min != (time_t) -1
-       && fprintf (stream, "%ld", p->sp_min) < 0)
+       && fprintf (stream, "%ld:", p->sp_min) < 0)
       || (p->sp_min == (time_t) -1
          && putc (':', stream) == EOF))
     ++errors;
 
   if ((p->sp_max != (time_t) -1
-       && fprintf (stream, "%ld", p->sp_max) < 0)
+       && fprintf (stream, "%ld:", p->sp_max) < 0)
       || (p->sp_max == (time_t) -1
          && putc (':', stream) == EOF))
     ++errors;
 
   if ((p->sp_warn != (time_t) -1
-       && fprintf (stream, "%ld", p->sp_warn) < 0)
+       && fprintf (stream, "%ld:", p->sp_warn) < 0)
       || (p->sp_warn == (time_t) -1
          && putc (':', stream) == EOF))
     ++errors;
 
   if ((p->sp_inact != (time_t) -1
-       && fprintf (stream, "%ld", p->sp_inact) < 0)
+       && fprintf (stream, "%ld:", p->sp_inact) < 0)
       || (p->sp_inact == (time_t) -1
          && putc (':', stream) == EOF))
     ++errors;
 
   if ((p->sp_expire != (time_t) -1
-       && fprintf (stream, "%ld", p->sp_expire) < 0)
+       && fprintf (stream, "%ld:", p->sp_expire) < 0)
       || (p->sp_expire == (time_t) -1
          && putc (':', stream) == EOF))
     ++errors;
 
-  if ((p->sp_flag != -1l
-       && fprintf (stream, "%ld", p->sp_flag) < 0)
-      || (p->sp_flag == -1l
+  if ((p->sp_flag != ~0ul
+       && fprintf (stream, "%ld:", p->sp_flag) < 0)
+      || (p->sp_flag == ~0ul
          && putc (':', stream) == EOF))
     ++errors;
 
index 134a45e5b4ebac90545a49b71ce5f4e75aa317dc..03c96b581b08af061207426d337d6b8e0a556fb4 100644 (file)
@@ -44,19 +44,18 @@ LINE_PARSER
      result->sp_warn = (time_t) -1;
      result->sp_inact = (time_t) -1;
      result->sp_expire = (time_t) -1;
-     result->sp_flag = (time_t) -1;
+     result->sp_flag = ~0ul;
    }
  else
    {
-     INT_FIELD (result->sp_warn, ISCOLON, 0, 10, (time_t));
-     INT_FIELD (result->sp_inact, ISCOLON, 0, 10, (time_t));
-     INT_FIELD (result->sp_expire, ISCOLON, 0, 10, (time_t));
-     while (isspace (*line))
-       ++line;
-     if (*line == '\0')
-       result->sp_flag = -1;
-     else
-       INT_FIELD (result->sp_flag, ISCOLON, 0, 10, );
+     INT_FIELD_MAYBE_NULL (result->sp_warn, ISCOLON, 0, 10, (time_t),
+                          (time_t) -1);
+     INT_FIELD_MAYBE_NULL (result->sp_inact, ISCOLON, 0, 10, (time_t),
+                          (time_t) -1);
+     INT_FIELD_MAYBE_NULL (result->sp_expire, ISCOLON, 0, 10, (time_t),
+                          (time_t) -1);
+     INT_FIELD_MAYBE_NULL (result->sp_flag, ISCOLON, 0, 10,
+                          (unsigned long int), ~0ul);
    }
  )
 
index e57b279fa4801e3f19755c23388bcb175b27b6b3..d376db2a676b013fa56dfe2123736b6b2eb5b1cf 100644 (file)
@@ -208,7 +208,19 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
   it = "strlen";
   check(strlen("") == 0, 1);           /* Empty. */
   check(strlen("a") == 1, 2);          /* Single char. */
-  check(strlen("abcd") == 4, 3);               /* Multiple chars. */
+  check(strlen("abcd") == 4, 3);       /* Multiple chars. */
+  {
+    char buf[4096];
+    int i;
+    char *p;
+    for (i=0; i < 0x100; i++)
+      {
+       p = (char *)((int)(buf + 0xff) & ~0xff) + i;
+       strcpy (p, "OK");
+       strcpy (p+3, "BAD/WRONG");
+       check(strlen(p) == 2, 4+i);
+      }
+   }
 
   /* strchr.  */
   it = "strchr";
@@ -223,6 +235,18 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
   (void) strcpy(one, "");
   check(strchr(one, 'b') == NULL, 7);  /* Empty string. */
   check(strchr(one, '\0') == one, 8);  /* NUL in empty string. */
+  {
+    char buf[4096];
+    int i;
+    char *p;
+    for (i=0; i < 0x100; i++)
+      {
+       p = (char *)((int)(buf + 0xff) & ~0xff) + i;
+       strcpy (p, "OK");
+       strcpy (p+3, "BAD/WRONG");
+       check(strchr(p, '/') == NULL, 9+i);
+      }
+   }
 
 #if 0
   /* index - just like strchr.  */
@@ -253,6 +277,18 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
   (void) strcpy(one, "");
   check(strrchr(one, 'b') == NULL, 7); /* Empty string. */
   check(strrchr(one, '\0') == one, 8); /* NUL in empty string. */
+  {
+    char buf[4096];
+    int i;
+    char *p;
+    for (i=0; i < 0x100; i++)
+      {
+       p = (char *)((int)(buf + 0xff) & ~0xff) + i;
+       strcpy (p, "OK");
+       strcpy (p+3, "BAD/WRONG");
+       check(strrchr(p, '/') == NULL, 9+i);
+      }
+   }
 
 #if 0
   /* rindex - just like strrchr.  */
@@ -515,8 +551,8 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
     char buf[128 + sizeof(long)];
     long align, len, i, pos;
 
-    for (align = 0; align < sizeof(long); ++align) {
-      for (len = 0; len < sizeof(buf) - align; ++len) {
+    for (align = 0; align < (long) sizeof(long); ++align) {
+      for (len = 0; len < (long) (sizeof(buf) - align); ++len) {
        for (i = 0; i < len; ++i) {
          buf[align + i] = 'x';         /* don't depend on memset... */
        }
similarity index 94%
rename from sysdeps/alpha/fabs.S
rename to sysdeps/alpha/s_fabs.S
index dff8390b5ac07ab2562b49806b77fefebaab64e2..12c0abdf759524425be1004bb17936d832e3537b 100644 (file)
@@ -19,9 +19,10 @@ Cambridge, MA 02139, USA.  */
 
 #include <sysdep.h>
 
-ENTRY(fabs)
+ENTRY(__fabs)
        .prologue 0
        cpys    $f31,$f16,$f0
        ret
 
-       END(fabs)
+       END(__fabs)
+weak_alias (__fabs, fabs)
diff --git a/sysdeps/generic/get_str.c b/sysdeps/generic/get_str.c
deleted file mode 100644 (file)
index 182815e..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/* __mpn_get_str -- Convert a MSIZE long limb vector pointed to by MPTR
-   to a printable string in STR in base BASE.
-
-Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
-
-
-This file is part of the GNU C Library.  Its master source is NOT part of
-the C library, however.  This file is in fact copied from the GNU MP
-Library and its source lives there.
-
-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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include "gmp.h"
-#include "gmp-impl.h"
-
-/* Convert the limb vector pointed to by MPTR and MSIZE long to a
-   char array, using base BASE for the result array.  Store the
-   result in the character array STR.  STR must point to an array with
-   space for the largest possible number represented by a MSIZE long
-   limb vector + 1 extra character.
-
-   The result is NOT in Ascii, to convert it to printable format, add
-   '0' or 'A' depending on the base and range.
-
-   Return the number of digits in the result string.
-   This may include some leading zeros.
-
-   The limb vector pointed to by MPTR is clobbered.  */
-
-size_t
-__mpn_get_str (str, base, mptr, msize)
-     unsigned char *str;
-     int base;
-     mp_ptr mptr;
-     mp_size_t msize;
-{
-  mp_limb big_base;
-#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME
-  int normalization_steps;
-#endif
-#if UDIV_TIME > 2 * UMUL_TIME
-  mp_limb big_base_inverted;
-#endif
-  unsigned int dig_per_u;
-  mp_size_t out_len;
-  register unsigned char *s;
-
-  big_base = __mp_bases[base].big_base;
-
-  s = str;
-
-  /* Special case zero, as the code below doesn't handle it.  */
-  if (msize == 0)
-    {
-      s[0] = 0;
-      return 1;
-    }
-
-  if ((base & (base - 1)) == 0)
-    {
-      /* The base is a power of 2.  Make conversion from most
-        significant side.  */
-      mp_limb n1, n0;
-      register int bits_per_digit = big_base;
-      register int x;
-      register int bit_pos;
-      register int i;
-
-      n1 = mptr[msize - 1];
-      count_leading_zeros (x, n1);
-
-       /* BIT_POS should be R when input ends in least sign. nibble,
-          R + bits_per_digit * n when input ends in n:th least significant
-          nibble. */
-
-      {
-       int bits;
-
-       bits = BITS_PER_MP_LIMB * msize - x;
-       x = bits % bits_per_digit;
-       if (x != 0)
-         bits += bits_per_digit - x;
-       bit_pos = bits - (msize - 1) * BITS_PER_MP_LIMB;
-      }
-
-      /* Fast loop for bit output.  */
-      i = msize - 1;
-      for (;;)
-       {
-         bit_pos -= bits_per_digit;
-         while (bit_pos >= 0)
-           {
-             *s++ = (n1 >> bit_pos) & ((1 << bits_per_digit) - 1);
-             bit_pos -= bits_per_digit;
-           }
-         i--;
-         if (i < 0)
-           break;
-         n0 = (n1 << -bit_pos) & ((1 << bits_per_digit) - 1);
-         n1 = mptr[i];
-         bit_pos += BITS_PER_MP_LIMB;
-         *s++ = n0 | (n1 >> bit_pos);
-       }
-
-      *s = 0;
-
-      return s - str;
-    }
-  else
-    {
-      /* General case.  The base is not a power of 2.  Make conversion
-        from least significant end.  */
-
-      /* If udiv_qrnnd only handles divisors with the most significant bit
-        set, prepare BIG_BASE for being a divisor by shifting it to the
-        left exactly enough to set the most significant bit.  */
-#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME
-      count_leading_zeros (normalization_steps, big_base);
-      big_base <<= normalization_steps;
-#if UDIV_TIME > 2 * UMUL_TIME
-      /* Get the fixed-point approximation to 1/(BIG_BASE << NORMALIZATION_STEPS).  */
-      big_base_inverted = __mp_bases[base].big_base_inverted;
-#endif
-#endif
-
-      dig_per_u = __mp_bases[base].chars_per_limb;
-      out_len = ((size_t) msize * BITS_PER_MP_LIMB
-                * __mp_bases[base].chars_per_bit_exactly) + 1;
-      s += out_len;
-
-      while (msize != 0)
-       {
-         int i;
-         mp_limb n0, n1;
-
-#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME
-         /* If we shifted BIG_BASE above, shift the dividend too, to get
-            the right quotient.  We need to do this every loop,
-            since the intermediate quotients are OK, but the quotient from
-            one turn in the loop is going to be the dividend in the
-            next turn, and the dividend needs to be up-shifted.  */
-         if (normalization_steps != 0)
-           {
-             n0 = __mpn_lshift (mptr, mptr, msize, normalization_steps);
-
-             /* If the shifting gave a carry out limb, store it and
-                increase the length.  */
-             if (n0 != 0)
-               {
-                 mptr[msize] = n0;
-                 msize++;
-               }
-           }
-#endif
-
-         /* Divide the number at TP with BIG_BASE to get a quotient and a
-            remainder.  The remainder is our new digit in base BIG_BASE.  */
-         i = msize - 1;
-         n1 = mptr[i];
-
-         if (n1 >= big_base)
-           n1 = 0;
-         else
-           {
-             msize--;
-             i--;
-           }
-
-         for (; i >= 0; i--)
-           {
-             n0 = mptr[i];
-#if UDIV_TIME > 2 * UMUL_TIME
-             udiv_qrnnd_preinv (mptr[i], n1, n1, n0, big_base, big_base_inverted);
-#else
-             udiv_qrnnd (mptr[i], n1, n1, n0, big_base);
-#endif
-           }
-
-#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME
-         /* If we shifted above (at previous UDIV_NEEDS_NORMALIZATION tests)
-            the remainder will be up-shifted here.  Compensate.  */
-         n1 >>= normalization_steps;
-#endif
-
-         /* Convert N1 from BIG_BASE to a string of digits in BASE
-            using single precision operations.  */
-         for (i = dig_per_u - 1; i >= 0; i--)
-           {
-             *--s = n1 % base;
-             n1 /= base;
-             if (n1 == 0 && msize == 0)
-               break;
-           }
-       }
-
-      while (s != str)
-       *--s = 0;
-      return out_len;
-    }
-}
index c69b43ec098ec02b5bdf3bebe1a21a42687a341c..4ad42124e803ad0749ea93e0d728a625d1b79c82 100644 (file)
@@ -55,62 +55,3 @@ __profile_frequency ()
     return 0;
   return (1000000 / tim.it_interval.tv_usec);
 }
-/* Return frequency of ticks reported by profil.  Generic version. */
-/*-
- * Copyright (c) 1983, 1992, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-#include <sys/types.h>
-#include <sys/time.h>
-
-int
-__profile_frequency ()
-{
-  /*
-   * Discover the tick frequency of the machine if something goes wrong,
-   * we return 0, an impossible hertz.
-   */
-  struct itimerval tim;
-
-  tim.it_interval.tv_sec = 0;
-  tim.it_interval.tv_usec = 1;
-  tim.it_value.tv_sec = 0;
-  tim.it_value.tv_usec = 0;
-  setitimer(ITIMER_REAL, &tim, 0);
-  setitimer(ITIMER_REAL, 0, &tim);
-  if (tim.it_interval.tv_usec < 2)
-    return 0;
-  return (1000000 / tim.it_interval.tv_usec);
-}
-
-
index 26d6a22d6b2b3ebe5e195dda3cd294bb6596ed39..58058e1195e58d208aee5cf36671ed26d6431d24 100644 (file)
@@ -1,6 +1,6 @@
-/* strchr (str, ch) -- Return pointer to last occurrence of CH in STR.
+/* strrchr (str, ch) -- Return pointer to last occurrence of CH in STR.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
 This file is part of the GNU C Library.
@@ -84,7 +84,7 @@ L12:  orb %dl, %dl            /* is NUL? */
        cmpb %dl, %cl           /* compare byte */
        jne L13                 /* target found => return */
        movl %esi, %eax         /* remember pointer as result */
-L13:   orb %cl, %cl            /* is NUL? */
+L13:   orb %dl, %dl            /* is NUL? */
        jz L2                   /* yes => return NULL */
        incl %esi               /* increment pointer */
 
@@ -134,7 +134,11 @@ L13:       orb %cl, %cl            /* is NUL? */
        /* These fill bytes make the main loop be correctly aligned.
           We cannot use align because it is not the following instruction
           which should be aligned.  */
-       .byte 0, 0, 0, 0, 0, 0, 0, 0
+       .byte 0, 0
+#ifndef        PROF
+       /* Profiling adds some code and so changes the alignment.  */
+       .byte 0
+#endif
 
 L4:    subl $4, %esi           /* adjust pointer */
 L41:   subl $4, %esi
diff --git a/sysdeps/ieee754/cbrt.c b/sysdeps/ieee754/cbrt.c
deleted file mode 100644 (file)
index fe5fb95..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 1985, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)cbrt.c     8.1 (Berkeley) 6/4/93";
-#endif /* not lint */
-
-#include <sys/cdefs.h>
-
-/* kahan's cube root (53 bits IEEE double precision)
- * for IEEE machines only
- * coded in C by K.C. Ng, 4/30/85
- *
- * Accuracy:
- *     better than 0.667 ulps according to an error analysis. Maximum
- * error observed was 0.666 ulps in an 1,000,000 random arguments test.
- *
- * Warning: this code is semi machine dependent; the ordering of words in
- * a floating point number must be known in advance. I assume that the
- * long interger at the address of a floating point number will be the
- * leading 32 bits of that floating point number (i.e., sign, exponent,
- * and the 20 most significant bits).
- * On a National machine, it has different ordering; therefore, this code 
- * must be compiled with flag -DNATIONAL. 
- */
-#if !defined(vax)&&!defined(tahoe)
-
-static const unsigned long
-                    B1 = 715094163, /* B1 = (682-0.03306235651)*2**20 */
-                    B2 = 696219795; /* B2 = (664-0.03306235651)*2**20 */
-static const double
-           C= 19./35.,
-           D= -864./1225.,
-           E= 99./70.,
-           F= 45./28.,
-           G= 5./14.;
-
-double cbrt(x) 
-double x;
-{
-       double r,s,t=0.0,w;
-       unsigned long *px = (unsigned long *) &x,
-                     *pt = (unsigned long *) &t,
-                     mexp,sign;
-
-#ifdef national /* ordering of words in a floating points number */
-       const int n0=1,n1=0;
-#else  /* national */
-       const int n0=0,n1=1;
-#endif /* national */
-
-       mexp=px[n0]&0x7ff00000;
-       if(mexp==0x7ff00000) return(x); /* cbrt(NaN,INF) is itself */
-       if(x==0.0) return(x);           /* cbrt(0) is itself */
-
-       sign=px[n0]&0x80000000; /* sign= sign(x) */
-       px[n0] ^= sign;         /* x=|x| */
-
-
-    /* rough cbrt to 5 bits */
-       if(mexp==0)             /* subnormal number */
-         {pt[n0]=0x43500000;   /* set t= 2**54 */
-          t*=x; pt[n0]=pt[n0]/3+B2;
-         }
-       else
-         pt[n0]=px[n0]/3+B1;   
-
-
-    /* new cbrt to 23 bits, may be implemented in single precision */
-       r=t*t/x;
-       s=C+r*t;
-       t*=G+F/(s+E+D/s);       
-
-    /* chopped to 20 bits and make it larger than cbrt(x) */ 
-       pt[n1]=0; pt[n0]+=0x00000001;
-
-
-    /* one step newton iteration to 53 bits with error less than 0.667 ulps */
-       s=t*t;          /* t*t is exact */
-       r=x/s;
-       w=t+t;
-       r=(r-t)/(w+r);  /* r-t is exact */
-       t=t+t*r;
-
-
-    /* retore the sign bit */
-       pt[n0] |= sign;
-       return(t);
-}
-#endif
diff --git a/sysdeps/ieee754/drem.c b/sysdeps/ieee754/drem.c
deleted file mode 100644 (file)
index cab3a04..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 1992, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-/*
- * Copyright (c) 1985 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted provided
- * that: (1) source distributions retain this entire copyright notice and
- * comment, and (2) distributions including binaries display the following
- * acknowledgement:  ``This product includes software developed by the
- * University of California, Berkeley and its contributors'' in the
- * documentation or other materials provided with the distribution and in
- * all advertising materials mentioning features or use of this software.
- * Neither the name of the University nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#include <ansidecl.h>
-#include <math.h>
-#include <float.h>
-#include "ieee754.h"
-
-/* Return the remainder of X/Y.  */
-double
-DEFUN(__drem, (x, y),
-      double x AND double y)
-{
-  union ieee754_double ux, uy;
-
-  ux.d = x;
-  uy.d = y;
-#define x ux.d
-#define        y uy.d
-
-  uy.ieee.negative = 0;
-
-  if (!__finite (x) || y == 0.0)
-    return NAN;
-  else if (__isnan (y))
-    return y;
-  else if (__isinf (y))
-    return x;
-  else if (uy.ieee.exponent <= 1)
-    {
-      /* Subnormal (or almost subnormal) Y value.  */
-      double b = __scalb (1.0, 54);
-      y *= b;
-      x = __drem (x, y);
-      x *= b;
-      return __drem (x, y) / b;
-    }
-  else if (y >= 1.7e308 / 2)
-    {
-      y /= 2;
-      x /= 2;
-      return __drem (x, y) * 2;
-    }
-  else
-    {
-      union ieee754_double a;
-      double b;
-      unsigned int negative = ux.ieee.negative;
-      a.d = y + y;
-      b = y / 2;
-      ux.ieee.negative = 0;
-      while (x > a.d)
-       {
-         unsigned short int k = ux.ieee.exponent - a.ieee.exponent;
-         union ieee754_double tmp;
-         tmp.d = a.d;
-         tmp.ieee.exponent += k;
-         if (x < tmp.d)
-           --tmp.ieee.exponent;
-         x -= tmp.d;
-       }
-      if (x > b)
-       {
-         x -= y;
-         if (x >= b)
-           x -= y;
-       }
-      ux.ieee.negative ^= negative;
-      return x;
-    }
-}
-
-weak_alias (__drem, drem)
diff --git a/sysdeps/ieee754/logb.c b/sysdeps/ieee754/logb.c
deleted file mode 100644 (file)
index 918de9e..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 1992, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <math.h>
-#include <float.h>
-#include "ieee754.h"
-
-/* Return the base 2 signed integral exponent of X.  */
-double
-DEFUN(__logb, (x), double x)
-{
-  union ieee754_double u;
-
-  if (__isnan (x))
-    return x;
-  else if (__isinf (x))
-    return HUGE_VAL;
-  else if (x == 0.0)
-    return - HUGE_VAL;
-
-  u.d = x;
-
-  if (u.ieee.exponent == 0)
-    /* A denormalized number.
-       Multiplying by 2 ** DBL_MANT_DIG normalizes it;
-       we then subtract the DBL_MANT_DIG we added to the exponent.  */
-    return (__logb (x * ldexp (1.0, DBL_MANT_DIG)) - DBL_MANT_DIG);
-
-  return (int) u.ieee.exponent - (DBL_MAX_EXP - 1);
-}
-
-weak_alias (__logb, logb)
diff --git a/sysdeps/ieee754/sqrt.c b/sysdeps/ieee754/sqrt.c
deleted file mode 100644 (file)
index 7e350e0..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 1985 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted provided
- * that: (1) source distributions retain this entire copyright notice and
- * comment, and (2) distributions including binaries display the following
- * acknowledgement:  ``This product includes software developed by the
- * University of California, Berkeley and its contributors'' in the
- * documentation or other materials provided with the distribution and in
- * all advertising materials mentioning features or use of this software.
- * Neither the name of the University nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Return the square root of X.  */
-double
-DEFUN (sqrt, (x), double x)
-{
-  double q, s, b, r, t;
-  CONST double zero = 0.0;
-  int m, n, i;
-
-  /* sqrt (NaN) is NaN; sqrt (+-0) is +-0.  */
-  if (__isnan (x) || x == zero)
-    return x;
-
-  if (x < zero)
-    return zero / zero;
-
-  /* sqrt (Inf) is Inf.  */
-  if (__isinf (x))
-    return x;
-
-  /* Scale X to [1,4).  */
-  n = __logb (x);
-  x = __scalb (x, -n);
-  m = __logb (x);
-  if (m != 0)
-    /* Subnormal number.  */
-    x = __scalb (x, -m);
-
-  m += n;
-  n = m / 2;
-
-  if ((n + n) != m)
-    {
-      x *= 2;
-      --m;
-      n = m / 2;
-    }
-
-  /* Generate sqrt (X) bit by bit (accumulating in Q).  */
-  q = 1.0;
-  s = 4.0;
-  x -= 1.0;
-  r = 1;
-  for (i = 1; i <= 51; i++)
-    {
-      t = s + 1;
-      x *= 4;
-      r /= 2;
-      if (t <= x)
-       {
-         s = t + t + 2, x -= t;
-         q += r;
-       }
-      else
-       s *= 2;
-    }
-
-  /* Generate the last bit and determine the final rounding.  */
-  r /= 2;
-  x *= 4;
-  if (x == zero)
-    goto end;
-  (void) (100 + r);            /* Trigger inexact flag.  */
-  if (s < x)
-    {
-      q += r;
-      x -= s;
-      s += 2;
-      s *= 2;
-      x *= 4;
-      t = (x - s) - 5;
-      b = 1.0 + 3 * r / 4;
-      if (b == 1.0)
-       goto end;               /* B == 1: Round to zero.  */
-      b = 1.0 + r / 4;
-      if (b > 1.0)
-       t = 1;                  /* B > 1: Round to +Inf.  */
-      if (t >= 0)
-       q += r;
-    }                          /* Else round to nearest.  */
-  else
-    {
-      s *= 2;
-      x *= 4;
-      t = (x - s) - 1;
-      b = 1.0 + 3 * r / 4;
-      if (b == 1.0)
-       goto end;
-      b = 1.0 + r / 4;
-      if (b > 1.0)
-       t = 1;
-      if (t >= 0)
-       q += r;
-    }
-
-end:
-  return __scalb (q, n);
-}
index 2cbb4ca388f929d60d571f3e180a234532636ce1..4992aea561694eb78ba0c6aa207a8ce50f53089c 100644 (file)
@@ -20,7 +20,7 @@ Cambridge, MA 02139, USA.  */
 
 #include <sys/cdefs.h>
 
-#ifdef __NO_MATH_INLINES
+#ifdef __NO_M81_MATH_INLINES
 /* This is used when defining the functions themselves.  Define them with
    __ names, and with `static inline' instead of `extern inline' so the
    bodies will always be used, never an external function call.  */
@@ -29,7 +29,7 @@ Cambridge, MA 02139, USA.  */
 #else
 #define        __m81_u(x)      x
 #define __m81_inline   extern __inline
-#define        __MATH_INLINES  1
+#define        __M81_MATH_INLINES      1
 #endif
 
 /* Define a const math function.  */
index ae77dabf9835c4fd4b93b537394702ec98ffb2b9..61c374d9177d59c8ed090012e3ac1d41eb0d3dd9 100644 (file)
@@ -16,8 +16,9 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
-#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
+#include "math_private.h"
 
 #ifndef        FUNC
 #define        FUNC    __ieee754_acos
@@ -27,7 +28,8 @@ Cambridge, MA 02139, USA.  */
 #endif
 
 float_type
-DEFUN(FUNC, (x), float_type x)
+FUNC (x)
+     float_type x;
 {
   return __m81_u(FUNC)(x);
 }
index 0b2468c06d805911bda1fb8f4e2af0da714c61a5..bf2f7ed1bb19944a1ae282c45ab99fedb7d34a06 100644 (file)
@@ -16,8 +16,9 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
-#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
+#include "math_private.h"
 
 #ifndef FUNC
 #define FUNC __ieee754_fmod
@@ -27,7 +28,9 @@ Cambridge, MA 02139, USA.  */
 #endif
 
 float_type
-DEFUN(FUNC, (x, y), float_type x AND float_type y)
+FUNC (x, y)
+     float_type x;
+     float_type y;
 {
   return __m81_u(FUNC)(x, y);
 }
index 61f566f6a10ae4dd7437a35963ed3e96b58cbf6c..6bb9090568ec7f8f1d0da80e209d4737db7f2d6f 100644 (file)
@@ -16,7 +16,9 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
+#define __NO_M81_MATH_INLINES
 #include <math.h>
+#include "math_private.h"
 
 #ifndef FUNC
 #define FUNC cos
index 3eed1d466caa58684a2cdb1cac640f7016f42417..f10c7f9801a82ae39407655387388bfa80e354f1 100644 (file)
@@ -16,7 +16,9 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
+#define __NO_M81_MATH_INLINES
 #include <math.h>
+#include "math_private.h"
 
 #ifndef FUNC
 #define FUNC sin
@@ -35,7 +37,7 @@ __CONCATX(__kernel_,FUNC) (x, y, iy)
 {
   float_type sin_x, cos_x, sin_y, cos_y;
   if (iy == 0)
-    return __m81_u_(__CONCATX(__,FUNC)) (x);
+    return __m81_u(__CONCATX(__,FUNC)) (x);
   __asm__ __volatile__ ("fsincosx %2,%0:%1" : "=f" (cos_x), "=f" (sin_x)
                        : "f" (x));
   __asm__ __volatile__ ("fsincosx %2,%0:%1" : "=f" (cos_y), "=f" (sin_y)
index 7f1b729b96f716897be0ceb0bcc240f9c67c6f5a..9c222cd6e1b2681697730858f8c2018394ae1c11 100644 (file)
@@ -16,7 +16,9 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
+#define __NO_M81_MATH_INLINES
 #include <math.h>
+#include "math_private.h"
 
 #ifndef FUNC
 #define FUNC tan
@@ -34,8 +36,8 @@ __CONCATX(__kernel_,FUNC) (x, y, iy)
      int iy;
 {
   float_type tan_x, tan_y;
-  tan_x = __m81_u_(__CONCATX(__,FUNC)) (x);
-  tan_y = __m81_u_(__CONCATX(__,FUNC)) (y);
+  tan_x = __m81_u(__CONCATX(__,FUNC)) (x);
+  tan_y = __m81_u(__CONCATX(__,FUNC)) (y);
   if (iy > 0)
     return (tan_x + tan_y) / (1 - tan_x * tan_y);
   else
index 29717d43950e2dff99f54f922a2e94ff908253a9..99b302432695235f0cf8422302170ef6b054299c 100644 (file)
@@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
 
 #ifndef FUNC
index 16f30394b23038aa09a23717660fd574056bf24e..8b38086e27d4a0185ebe6f0079d09c6a00efbd48 100644 (file)
@@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
 
 #ifndef FUNC
index c80a28894957fce5640ca061ba083fed15776b17..39c871481d530c45d70fec05fff84e6a4f104a1c 100644 (file)
@@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
 
 #ifndef FUNC
index 570a7ba7bb064c0a1ac1a83165e12c6e84192801..7d4b1c44a52cb357898a3a2ea47bc1454ebb17b1 100644 (file)
@@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
 
 #ifndef FUNC
index ea8bfbab88ecf4b9a2750f4c0c335daa8df895c3..18f4d43c37c6e669bfa017481a39e322bd5b6d1f 100644 (file)
@@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
 
 #ifndef FUNC
index f704260e216f9626307494651622d3fa196c719a..426d847ebd01972589a13a3dd8de3c8f1cb61480 100644 (file)
@@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
 #include <math.h>
 
 #ifndef FUNC
index 5c0d307bdb1cdbf39d1e0afdd87ce4cbd440c5dc..a3707033a6ad9716570d8c5bf2a7574acbe42b31 100644 (file)
@@ -1,4 +1,2 @@
 /* __profile_frequency is in sysdeps/mach/hurd/profil.c.  This file
 is here as a place-holder to prevent the use of sysdeps/generic/prof-freq.c. */
-/* __profile_frequency is in sysdeps/mach/hurd/profil.c.  This file
-is here as a place-holder to prevent the use of sysdeps/generic/prof-freq.c. */
similarity index 96%
rename from sysdeps/sparc/sqrt.c
rename to sysdeps/sparc/e_sqrt.c
index bff46e164409a679c23a0cff1023d4f3deed77bf..614965d0476e8bcfe8ab2cfb5ab10e1f96b02d76 100644 (file)
@@ -26,7 +26,7 @@ Cambridge, MA 02139, USA.  */
 
 /* Return the square root of X.  */
 double
-DEFUN(sqrt, (x), double x)
+DEFUN(__ieee754_sqrt, (x), double x)
 {
   register double result;
   asm("fsqrtd %1, %0" : "=f" (result) : "f" (x));
diff --git a/sysdeps/stub/cbrt.c b/sysdeps/stub/cbrt.c
deleted file mode 100644 (file)
index a330b05..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1992, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Return the cube root of X.  */
-double
-DEFUN(cbrt, (x), double x)
-{
-  errno = ENOSYS;
-  return 0.0;
-}
-
-
-stub_warning (cbrt)
diff --git a/sysdeps/stub/cos.c b/sysdeps/stub/cos.c
deleted file mode 100644 (file)
index 81cf1b6..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1991, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Return the cosine of X.  */
-double
-DEFUN(cos, (x), double x)
-{
-  errno = ENOSYS;
-  return(0.0);
-}
-
-
-stub_warning (cos)
diff --git a/sysdeps/stub/drem.c b/sysdeps/stub/drem.c
deleted file mode 100644 (file)
index e4c7cea..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1992, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Return the remainder of X/Y.  */
-double
-DEFUN(__drem, (x, y),
-      double x AND double y)
-{
-  errno = ENOSYS;
-  return 0.0;
-}
-
-stub_warning (drem)
-weak_alias (__drem, drem)
diff --git a/sysdeps/stub/isinf.c b/sysdeps/stub/isinf.c
deleted file mode 100644 (file)
index aa02eb1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1991, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <math.h>
-
-/* Return 0 if VALUE is finite or NaN, +1 if it
-   is +Infinity, -1 if it is -Infinity.  */
-int
-DEFUN(__isinf, (value), double value)
-{
-  return 0;
-}
-weak_alias (__isinf, isinf)
-
-stub_warning (__isinf)
diff --git a/sysdeps/stub/isinfl.c b/sysdeps/stub/isinfl.c
deleted file mode 100644 (file)
index 71065c7..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <math.h>
-
-#undef __isinfl
-#undef isinfl
-
-
-/* Return 0 if VALUE is finite or NaN, +1 if it
-   is +Infinity, -1 if it is -Infinity.  */
-int
-__isinfl (long double value)
-{
-  return 0;
-}
-
-weak_alias (__isinfl, isinfl);
diff --git a/sysdeps/stub/isnanl.c b/sysdeps/stub/isnanl.c
deleted file mode 100644 (file)
index c785b35..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <math.h>
-
-#undef __isnanl
-#undef isnanl
-
-
-/* Return nonzero if VALUE is not a number.  */
-
-int
-__isnanl (long double value)
-{
-  return 0;
-}
-
-weak_alias (__isnanl, isnanl);
diff --git a/sysdeps/stub/logb.c b/sysdeps/stub/logb.c
deleted file mode 100644 (file)
index f5af6bf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1992, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <math.h>
-#include <errno.h>
-
-/* Return the base 2 signed integral exponent of X.  */
-double
-DEFUN(__logb, (x), double x)
-{
-  errno = ENOSYS;
-  return 0.0;
-}
-stub_warning (logb)
-weak_alias (__logb, logb)
diff --git a/sysdeps/stub/sin.c b/sysdeps/stub/sin.c
deleted file mode 100644 (file)
index 7100661..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1991, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Return the sine of X.  */
-double
-DEFUN(sin, (x), double x)
-{
-  errno = ENOSYS;
-  return(0.0);
-}
-
-
-stub_warning (sin)
diff --git a/sysdeps/stub/sqrt.c b/sysdeps/stub/sqrt.c
deleted file mode 100644 (file)
index 8ca3459..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1991, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Return the square root of X.  */
-double
-DEFUN(sqrt, (x), double x)
-{
-  errno = ENOSYS;
-  return(0.0);
-}
-
-
-stub_warning (sqrt)
diff --git a/sysdeps/tahoe/log10.c b/sysdeps/tahoe/log10.c
deleted file mode 100644 (file)
index 2cf2cee..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 1991 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#define        FPCONST(hi0, lo0, hi1, lo1)     { (hi0), (lo0), (hi1), (lo1) }
-
-#include <../sysdeps/vax/log10.c>
-
index d898d041a2f42a0cace42ae3191920a7a23a9489..d79f1f29707638edff964c296605e2051e772f67 100644 (file)
@@ -4,3 +4,4 @@ ioperm.c
 init-first.h
 clone.S
 sys/io.h
+llseek.S
diff --git a/sysdeps/unix/sysv/linux/i386/init-first.h b/sysdeps/unix/sysv/linux/i386/init-first.h
deleted file mode 100644 (file)
index 4c61f1b..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/* The job of this fragment it to find argc and friends for INIT.
-   This is done in one of two ways: either in the stack context
-   of program start, or having dlopen pass them in.  */
-
-#define SYSDEP_CALL_INIT(NAME, INIT)                                         \
-void NAME (void *arg)                                                        \
-{                                                                            \
-  int argc;                                                                  \
-  char **argv, **envp;                                                       \
-                                                                             \
-  __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;                      \
-                                                                             \
-  if (!__libc_multiple_libcs)                                                \
-    {                                                                        \
-      argc = (int) arg;                                                              \
-      argv = (char **) &arg + 1;                                             \
-      envp = &argv[argc+1];                                                  \
-    }                                                                        \
-  else                                                                       \
-    {                                                                        \
-      argc = (int) arg;                                                              \
-      argv = ((char ***) &arg)[1];                                           \
-      envp = ((char ***) &arg)[2];                                           \
-    }                                                                        \
-                                                                             \
-  INIT (argc, argv, envp);                                                   \
-}
diff --git a/sysdeps/unix/sysv/linux/m68k/init-first.h b/sysdeps/unix/sysv/linux/m68k/init-first.h
deleted file mode 100644 (file)
index 7d8c320..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This fragment is invoked in the stack context of program start.
-   Its job is to set up a pointer to argc as an argument, pass
-   control to `INIT', and, if necessary, clean up after the call
-   to leave the stack in the same condition it was found in.  */
-
-#define SYSDEP_CALL_INIT(NAME, INIT)   \
-    asm(".globl " #NAME "\n\t"         \
-       #NAME ":\n\t"                   \
-       "pea %sp@(4)\n\t"               \
-       "jbsr " #INIT "\n\t"            \
-       "addq #4,%sp\n\t"               \
-       "rts");
index 9830be29a4813499a948af08df33c8ae882758ea..22a693094a31f027c7c1a62216df93cb95a6412c 100644 (file)
@@ -1 +1,2 @@
 DEFS.h
+fl.h
diff --git a/sysdeps/vax/bcmp.s b/sysdeps/vax/bcmp.s
deleted file mode 100644 (file)
index d980feb..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-       .asciz "@(#)bcmp.s      5.6 (Berkeley) 6/1/90"
-#endif /* LIBC_SCCS and not lint */
-
-/* bcmp(s1, s2, n) */
-
-#include "DEFS.h"
-
-ENTRY(bcmp, 0)
-       movl    4(ap),r1
-       movl    8(ap),r3
-       movl    12(ap),r4
-1:
-       movzwl  $65535,r0
-       cmpl    r4,r0
-       jleq    2f
-       subl2   r0,r4
-       cmpc3   r0,(r1),(r3)
-       jeql    1b
-       addl2   r4,r0
-       ret
-2:
-       cmpc3   r4,(r1),(r3)
-       ret
diff --git a/sysdeps/vax/index.s b/sysdeps/vax/index.s
deleted file mode 100644 (file)
index e599b27..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-       .asciz "@(#)index.s     5.6 (Berkeley) 6/1/90"
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Find the first occurence of c in the string cp.
- * Return pointer to match or null pointer.
- *
- * char *
- * index(cp, c)
- *     char *cp, c;
- */
-#include "DEFS.h"
-
-ENTRY(index, 0)
-       movq    4(ap),r1        # r1 = cp; r2 = c
-       tstl    r2              # check for special case c == '\0'
-       bneq    2f
-1:
-       locc    $0,$65535,(r1)  # just find end of string
-       beql    1b              # still looking
-       movl    r1,r0           # found it
-       ret
-2:
-       moval   tbl,r3          # r3 = address of table
-       bbss    $0,(r3),5f      # insure not reentering
-       movab   (r3)[r2],r5     # table entry for c
-       incb    (r5)
-       movzwl  $65535,r4       # fast access
-3:
-       scanc   r4,(r1),(r3),$1 # look for c or '\0'
-       beql    3b              # still looking
-       movl    r1,r0           # return pointer to char
-       tstb    (r0)            #    if have found '\0'
-       bneq    4f
-       clrl    r0              # else return 0
-4:
-       clrb    (r5)            # clean up table
-       clrb    (r3)
-       ret
-
-       .data
-tbl:   .space  256
-       .text
-
-/*
- * Reentrant, but slower version of index
- */
-5:
-       movl    r1,r3
-6:
-       locc    $0,$65535,(r3)  # look for '\0'
-       bneq    7f
-       locc    r2,$65535,(r3)  # look for c
-       bneq    8f
-       movl    r1,r3           # reset pointer and ...
-       jbr     6b              # ... try again
-7:
-       subl3   r3,r1,r4        # length of short block
-       incl    r4              # +1 for '\0'
-       locc    r2,r4,(r3)      # look for c
-       bneq    8f
-       ret
-8:
-       movl    r1,r0           # return pointer to char
-       ret
diff --git a/sysdeps/vax/infnan.c b/sysdeps/vax/infnan.c
deleted file mode 100644 (file)
index 62ec9dc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 1991, 1992, 1995 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#ifndef        __GNUC__
-  #error This file uses GNU C extensions; you must compile with GCC.
-#else
-
-#include <ansidecl.h>
-#include <errno.h>
-#include <math.h>
-
-/* Deal with an infinite or NaN result.
-   If ERROR is ERANGE, result is +Inf;
-   if ERROR is - ERANGE, result is -Inf;
-   otherwise result is NaN.
-   This will set `errno' to either ERANGE or EDOM,
-   and may return an infinity or NaN, or may do something else.  */
-double
-DEFUN(__infnan, (error), int error)
-{
-  switch (error)
-    {
-    case ERANGE:
-      errno = ERANGE;
-      break;
-
-    case - ERANGE:
-      errno = ERANGE;
-      break;
-
-    default:
-      errno = EDOM;
-      break;
-    }
-
-  /* Trigger a reserved operand fault.  */
-  {
-    double result;
-    asm volatile("emodd %1, %1, %2, %0, %0" : "=r" (result) :
-                "i" (0), "i" (0x8000));
-    return result;
-  }
-}
-
-#endif
-
-weak_alias (__infnan, infnan)
diff --git a/sysdeps/vax/log10.c b/sysdeps/vax/log10.c
deleted file mode 100644 (file)
index 0874177..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1991 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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <ansidecl.h>
-
-#ifndef        FPCONST
-#define        FPCONST(hi0, lo0, hi1, lo1)     { (lo0), (hi0), (lo1), (hi1) }
-#endif
-
-static CONST short int ln10[] = FPCONST(0x4113, 0x5d8d, 0xddaa, 0xa8ac);
-#define        LN10    (*(CONST double *) ln10)
-
-#include <../sysdeps/generic/log10.c>
index 3854fd8e4a32d472e25a65595cd7da6d7ad3749f..f7e47ded4626354762b3e67a51e6be3f4b248252 100644 (file)
@@ -59,3 +59,5 @@ ENTRY(memcmp, 0)
        cmpc3   r5,(r1),(r3)
        jeql    0b              /* loop if same */
        jbr     1b
+
+weak_alias (memcmp, bcmp)
diff --git a/sysdeps/vax/rindex.s b/sysdeps/vax/rindex.s
deleted file mode 100644 (file)
index 76d7e29..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-       .asciz "@(#)rindex.s    5.6 (Berkeley) 6/1/90"
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Find the last occurence of c in the string cp.
- * Return pointer to match or null pointer.
- *
- * char *
- * rindex(cp, c)
- *     char *cp, c;
- */
-#include "DEFS.h"
-
-ENTRY(rindex, 0)
-       movq    4(ap),r1        # r1 = cp; r2 = c
-       tstl    r2              # check for special case c == '\0'
-       bneq    2f
-1:
-       locc    $0,$65535,(r1)  # just find end of string
-       beql    1b              # still looking
-       movl    r1,r0           # found it
-       ret
-2:
-       moval   tbl,r3          # r3 = address of table
-       bbss    $0,(r3),5f      # insure not reentering
-       movab   (r3)[r2],r5     # table entry for c
-       incb    (r5)
-       clrl    r4              # last found
-3:
-       scanc   $65535,(r1),(r3),$1     # look for c or '\0'
-       beql    3b              # keep looking
-       tstb    (r1)            # if have found '\0'
-       beql    4f              #    we are done
-       movl    r1,r4           # save most recently found
-       incl    r1              # skip over character
-       jbr     3b              # keep looking
-4:
-       movl    r4,r0           # return last found (if any)
-       clrb    (r5)            # clean up table
-       clrb    (r3)
-       ret
-
-       .data
-tbl:   .space  256
-       .text
-
-/*
- * Reentrant, but slower version of rindex
- */
-5:
-       movl    r1,r3
-       clrl    r4              # r4 = pointer to last match
-6:
-       locc    $0,$65535,(r3)  # look for '\0'
-       bneq    8f
-       decw    r0              # r0 = 65535
-1:
-       locc    r2,r0,(r3)      # look for c
-       bneq    7f
-       movl    r1,r3           # reset pointer and ...
-       jbr     6b              # ... try again
-7:
-       movl    r1,r4           # stash pointer ...
-       addl3   $1,r1,r3        # ... skip over match and ...
-       decl    r0              # ... decrement count
-       jbr     6b              # ... try again
-8:
-       subl3   r3,r1,r0        # length of short block
-       incl    r0              # +1 for '\0'
-9:
-       locc    r2,r0,(r3)      # look for c
-       beql    0f
-       movl    r1,r4           # stash pointer ...
-       addl3   $1,r1,r3        # ... skip over match ...
-       decl    r0              # ... adjust count and ...
-       jbr     9b              # ... try again
-0:
-       movl    r4,r0           # return stashed pointer
-       ret
index 18b53838ec26fcd258d454fe0096d6738dc59e2a..1683f564e2976ef8104f5afc1ec039ab36694ffd 100644 (file)
@@ -103,3 +103,5 @@ Lreent:
        beql    2f              /* not found: return NULL */
        movl    r1,r0
 2:     ret
+
+weak_alias (strchr, index)
index f292eaceab281b920edd20c0ca1f062ef1d05f57..dffcddaef027eec7becce53888169d146f93a088 100644 (file)
@@ -112,3 +112,5 @@ Lreent:
 3:
        movl    r5,r0           /* return stashed pointer */
        ret
+
+weak_alias (strrchr, rindex)
index d55b598912bac62e2d0f6266a34686594bb3972e..110f540064b0d437775aa371351dd3ff3c04590e 100644 (file)
@@ -1,10 +1,10 @@
-# @(#)africa   7.13
+# @(#)africa   7.14
 
 # 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> (November 18, 1993):
+# From Paul Eggert <eggert@twinsun.com> (1996-09-03):
 #
 # A good source for time zone historical data outside the U.S. is
 # Thomas G. Shanks, The International Atlas (3rd edition),
 #      Omit `.' from abbreviations in names, e.g. prefer `St_Helena'
 #              to `St._Helena'.
 #
-# We typically use traditional English time zone abbreviations,
-# and assume that applications translate them to other languages
-# as part of the normal localization process.
+# For time zone abbreviations like `EST' I used the following rules,
+# in decreasing order of importance:
+#
+#      Use abbreviations that consist of 3 or more upper-case Ascii letters,
+#              except use "___" for locations while uninhabited.
+#              Posix.1 requires at least 3 characters, and the restriction to
+#              upper-case Ascii letters follows most traditions.
+#              Previous editions of this database also used characters like
+#              ' ' and '?', but these characters have a special meaning to
+#              the shell and cause commands like
+#                      set `date`
+#              to have unexpected effects.  In theory, the character set could
+#              be !%./@A-Z^_a-z{}, but these tables use only upper-case
+#              Ascii letters (and "___").
+#      Use abbreviations that are in common use among English-speakers,
+#              e.g. `EST' for Eastern Standard Time in North America.
+#              We assume that applications translate them to other languages
+#              as part of the normal localization process; for example,
+#              a French application might translate `EST' to `HNE'.
+#      For zones whose times are taken from a city's longitude, use the
+#              traditional xMT notation, e.g. `PMT' for Paris Mean Time.
+#              The only name like this in current use is `GMT'.
+#      If there is no common English abbreviation, abbreviate the English
+#              translation of the usual phrase used by native speakers.
+#              If this is not available or is a phrase mentioning the country
+#              (e.g. ``Cape Verde Time''), then:
+#
+#              When a country has a single or principal time zone region,
+#                      append `T' to the country's ISO code, e.g. `CVT' for
+#                      Cape Verde Time.  For summer time append `ST';
+#                      for double summer time append `DST'; etc.
+#              When a country has multiple time zones, take the first three
+#                      letters of an English place name identifying each zone
+#                      and then append `T', `ST', etc. as before;
+#                      e.g. `MOSST' for MOScow Summer Time.
 #
-# I made up the following time zone abbreviations; corrections are welcome!
+#
+# For Africa I invented the following time zone abbreviations.
 #              LMT     Local Mean Time
-#      -2:00   CVT     Cape Verde Time (no longer used)
-#      -1:00   AAT     Atlantic Africa Time
+#      -1:00   AAT     Atlantic Africa Time (no longer used)
 #       0:00   WAT     West Africa Time
 #       1:00   CAT     Central Africa Time
 #       2:00   SAT     South Africa Time
 #       3:00   EAT     East Africa Time
-#       4:00   SMT     Seychelles and Mascarene Time
 # The final `T' is replaced by `ST' for summer time, e.g. `SAST'.
 # BEAT is British East Africa Time, which was 2:30 before 1948 and 2:45 after.
 
 
 # Algeria
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Algeria 1916    only    -       Jun     14      23:00s  1:00    " DST"
+Rule   Algeria 1916    only    -       Jun     14      23:00s  1:00    S
 Rule   Algeria 1916    1919    -       Oct     Sun<=7  23:00s  0       -
-Rule   Algeria 1917    only    -       Mar     24      23:00s  1:00    " DST"
-Rule   Algeria 1918    only    -       Mar      9      23:00s  1:00    " DST"
-Rule   Algeria 1919    only    -       Mar      1      23:00s  1:00    " DST"
-Rule   Algeria 1920    only    -       Feb     14      23:00s  1:00    " DST"
+Rule   Algeria 1917    only    -       Mar     24      23:00s  1:00    S
+Rule   Algeria 1918    only    -       Mar      9      23:00s  1:00    S
+Rule   Algeria 1919    only    -       Mar      1      23:00s  1:00    S
+Rule   Algeria 1920    only    -       Feb     14      23:00s  1:00    S
 Rule   Algeria 1920    only    -       Oct     23      23:00s  0       -
-Rule   Algeria 1921    only    -       Mar     14      23:00s  1:00    " DST"
+Rule   Algeria 1921    only    -       Mar     14      23:00s  1:00    S
 Rule   Algeria 1921    only    -       Jun     21      23:00s  0       -
-Rule   Algeria 1939    only    -       Sep     11      23:00s  1:00    " DST"
+Rule   Algeria 1939    only    -       Sep     11      23:00s  1:00    S
 Rule   Algeria 1939    only    -       Nov     19       1:00   0       -
-Rule   Algeria 1944    1945    -       Apr     Mon<=7   2:00   1:00    " DST"
+Rule   Algeria 1944    1945    -       Apr     Mon<=7   2:00   1:00    S
 Rule   Algeria 1944    only    -       Oct      8       2:00   0       -
 Rule   Algeria 1945    only    -       Sep     16       1:00   0       -
-Rule   Algeria 1971    only    -       Apr     25      23:00s  1:00    " DST"
+Rule   Algeria 1971    only    -       Apr     25      23:00s  1:00    S
 Rule   Algeria 1971    only    -       Sep     26      23:00s  0       -
-Rule   Algeria 1977    only    -       May      6       0:00   1:00    " DST"
+Rule   Algeria 1977    only    -       May      6       0:00   1:00    S
 Rule   Algeria 1977    only    -       Oct     21       0:00   0       -
-Rule   Algeria 1978    only    -       Mar     24       1:00   1:00    " DST"
+Rule   Algeria 1978    only    -       Mar     24       1:00   1:00    S
 Rule   Algeria 1978    only    -       Sep     22       3:00   0       -
-Rule   Algeria 1980    only    -       Apr     25       0:00   1:00    " DST"
+Rule   Algeria 1980    only    -       Apr     25       0:00   1:00    S
 Rule   Algeria 1980    only    -       Oct     31       2:00   0       -
 # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Algiers  0:12:12 -       LMT     1891 Mar 15 0:01
                        0:09:21 -       PMT     1911 Mar 11    # Paris Mean Time
-                       0:00    Algeria WET%s   1940 Feb 25 2:00
-                       1:00    Algeria MET%s   1946 Oct  7
+                       0:00    Algeria WE%sT   1940 Feb 25 2:00
+                       1:00    Algeria CE%sT   1946 Oct  7
                        0:00    -       WET     1956 Jan 29
-                       1:00    -       MET     1963 Apr 14
-                       0:00    Algeria WET%s   1977 Oct 21
-                       1:00    Algeria MET%s   1979 Oct 26
-                       0:00    Algeria WET%s   1981 May
-                       1:00    -       MET
+                       1:00    -       CET     1963 Apr 14
+                       0:00    Algeria WE%sT   1977 Oct 21
+                       1:00    Algeria CE%sT   1979 Oct 26
+                       0:00    Algeria WE%sT   1981 May
+                       1:00    -       CET
 
 # Angola
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Luanda   0:52:56 -       LMT     1892
-                       0:52    -       LMT     1911 May 26 # Luanda Mean Time
+                       0:52:04 -       LMT     1911 May 26 # Luanda Mean Time?
                        1:00    -       CAT
 
 # Bassas da India
@@ -160,7 +191,7 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT     1907                    # Praia
                        -2:00   -       CVT     1942 Sep
                        -2:00   1:00    CVST    1945 Oct 15
                        -2:00   -       CVT     1975 Nov 25 2:00
-                       -1:00   -       AAT
+                       -1:00   -       CVT
 
 # Central African Republic
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -211,28 +242,28 @@ Zone      Africa/Djibouti 2:52:36 -       LMT     1911 Jul
 
 # From Shanks (1991):
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Egypt   1940    only    -       Jul     15      0:00    1:00    " DST"
+Rule   Egypt   1940    only    -       Jul     15      0:00    1:00    S
 Rule   Egypt   1940    only    -       Oct      1      0:00    0       -
-Rule   Egypt   1941    only    -       Apr     15      0:00    1:00    " DST"
+Rule   Egypt   1941    only    -       Apr     15      0:00    1:00    S
 Rule   Egypt   1941    only    -       Sep     16      0:00    0       -
-Rule   Egypt   1942    1944    -       Apr      1      0:00    1:00    " DST"
+Rule   Egypt   1942    1944    -       Apr      1      0:00    1:00    S
 Rule   Egypt   1942    only    -       Oct     27      0:00    0       -
 Rule   Egypt   1943    1945    -       Nov      1      0:00    0       -
-Rule   Egypt   1945    only    -       Apr     16      0:00    1:00    " DST"
-Rule   Egypt   1957    only    -       May     10      0:00    1:00    " DST"
+Rule   Egypt   1945    only    -       Apr     16      0:00    1:00    S
+Rule   Egypt   1957    only    -       May     10      0:00    1:00    S
 Rule   Egypt   1957    1958    -       Oct      1      0:00    0       -
-Rule   Egypt   1958    only    -       May      1      0:00    1:00    " DST"
-Rule   Egypt   1959    1981    -       May      1      1:00    1:00    " DST"
+Rule   Egypt   1958    only    -       May      1      0:00    1:00    S
+Rule   Egypt   1959    1981    -       May      1      1:00    1:00    S
 Rule   Egypt   1959    1965    -       Sep     30      3:00    0       -
 Rule   Egypt   1966    max     -       Oct      1      3:00    0       -
-Rule   Egypt   1982    only    -       Jul     25      1:00    1:00    " DST"
-Rule   Egypt   1983    only    -       Jul     12      1:00    1:00    " DST"
-Rule   Egypt   1984    1988    -       May      1      1:00    1:00    " DST"
-Rule   Egypt   1989    only    -       May      6      1:00    1:00    " DST"
-Rule   Egypt   1990    max     -       May      1      1:00    1:00    " DST"
+Rule   Egypt   1982    only    -       Jul     25      1:00    1:00    S
+Rule   Egypt   1983    only    -       Jul     12      1:00    1:00    S
+Rule   Egypt   1984    1988    -       May      1      1:00    1:00    S
+Rule   Egypt   1989    only    -       May      6      1:00    1:00    S
+Rule   Egypt   1990    max     -       May      1      1:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Cairo    2:05:00 -       LMT     1900 Oct
-                       2:00    Egypt   EET%s
+                       2:00    Egypt   EE%sT
 
 # Equatorial Guinea
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -243,14 +274,14 @@ Zone      Africa/Malabo   0:35:08 -       LMT     1912
 # Eritrea
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Asmera   2:35:32 -       LMT     1870
-                       2:36    -       AMT     1890          # Asmera Mean Time
-                       2:35    -       AAMT    1936 May 5    # Addis Ababa MT
+                       2:35:32 -       AMT     1890          # Asmera Mean Time
+                       2:35:20 -       AAMT    1936 May 5    # Addis Ababa MT?
                        3:00    -       EAT
 
 # Ethiopia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Africa/Addis_Ababa        2:34:48 -       LMT     1870
-                       2:35    -       AAMT    1936 May 5    # Addis Ababa MT
+                       2:35:20 -       AAMT    1936 May 5    # Addis Ababa MT?
                        3:00    -       EAT
 
 # Europa Island
@@ -264,17 +295,17 @@ Zone Africa/Libreville    0:37:48 -       LMT     1912
 # Gambia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Banjul   -1:06:36 -      LMT     1912
-                       -1:07   -       BMT     1935    # Banjul Mean Time
+                       -1:06:36 -      BMT     1935    # Banjul Mean Time
                        -1:00   -       AAT     1964
                         0:00   -       WAT
 
 # Ghana
-# From Paul Eggert <eggert@twinsun.com> (November 18, 1993):
-# WATDT is my invention for ``West Africa one-Third Daylight Time''.
+# From Paul Eggert <eggert@twinsun.com> (1996-09-03):
+# WATST is my invention for ``West Africa one-Third Summer Time''.
 # From Shanks (1991):
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # Whitman says DST was observed from 1931 to ``the present''; go with Shanks.
-Rule   Ghana   1936    1942    -       Sep      1      0:00    0:20    WATDT
+Rule   Ghana   1936    1942    -       Sep      1      0:00    0:20    WATST
 Rule   Ghana   1936    1942    -       Dec     31      0:00    0       WAT
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Accra    -0:00:52 -      LMT     1918
@@ -329,7 +360,7 @@ Zone        Africa/Maseru   1:50:00 -       LMT     1903 Mar
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Monrovia -0:43:08 -      LMT     1882
                        -0:43:08 -      MMT     1919 Mar # Monrovia Mean Time
-                       -0:44:30 -      LST     1972 May # Liberia Standard Time
+                       -0:44:30 -      LRT     1972 May # Liberia Time
                         0:00   -       WAT
 
 ###############################################################################
@@ -345,28 +376,28 @@ Zone      Africa/Monrovia -0:43:08 -      LMT     1882
 
 # From Shanks (1991):
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Libya   1951    only    -       Oct     14      2:00    1:00    " DST"
+Rule   Libya   1951    only    -       Oct     14      2:00    1:00    S
 Rule   Libya   1952    only    -       Jan      1      0:00    0       -
-Rule   Libya   1953    only    -       Oct      9      2:00    1:00    " DST"
+Rule   Libya   1953    only    -       Oct      9      2:00    1:00    S
 Rule   Libya   1954    only    -       Jan      1      0:00    0       -
-Rule   Libya   1955    only    -       Sep     30      0:00    1:00    " DST"
+Rule   Libya   1955    only    -       Sep     30      0:00    1:00    S
 Rule   Libya   1956    only    -       Jan      1      0:00    0       -
-Rule   Libya   1982    1984    -       Apr      1      0:00    1:00    " DST"
+Rule   Libya   1982    1984    -       Apr      1      0:00    1:00    S
 Rule   Libya   1982    1985    -       Oct      1      0:00    0       -
-Rule   Libya   1985    only    -       Apr      6      0:00    1:00    " DST"
-Rule   Libya   1986    only    -       Apr      4      0:00    1:00    " DST"
+Rule   Libya   1985    only    -       Apr      6      0:00    1:00    S
+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    " DST"
+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    " DST"
+Rule   Libya   1990    only    -       May      4      0:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Tripoli  0:52:44 -       LMT     1920
-                       1:00    Libya   MET%s   1959
+                       1:00    Libya   CE%sT   1959
                        2:00    -       EET     1982
 # From Paul Eggert <eggert@twinsun.com> (1995-12-19):
 # usno1995 (from OAG) says Libya uses 2:00 all year, as they did before 1982.
 # We don't know when they switched back.  We'll guess 1991.
-                       1:00    Libya   MET%s   1991
+                       1:00    Libya   CE%sT   1991
                        2:00    -       EET
 
 # Madagascar
@@ -401,7 +432,7 @@ Zone Africa/Nouakchott      -1:03:48 -      LMT     1912
 # Mauritius
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Indian/Mauritius  3:50:00 -       LMT     1907            # Port Louis
-                       4:00    -       SMT
+                       4:00    -       MUT     # Mauritius Time
 # Agalega Is, Rodriguez
 # no information; probably like Indian/Mauritius
 
@@ -411,29 +442,31 @@ Zone      Indian/Mayotte  3:00:56 -       LMT     1911 Jul        # Mamoutzou
                        3:00    -       EAT
 
 # Morocco
-# Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Morocco 1939    only    -       Sep     12       0:00   1:00    " DST"
+# rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
+Rule   Morocco 1939    only    -       Sep     12       0:00   1:00    S
 Rule   Morocco 1939    only    -       Nov     19       0:00   0       -
-Rule   Morocco 1940    only    -       Feb     25       0:00   1:00    " DST"
+Rule   Morocco 1940    only    -       Feb     25       0:00   1:00    S
 Rule   Morocco 1945    only    -       Nov     18       0:00   0       -
-Rule   Morocco 1950    only    -       Jun     11       0:00   1:00    " DST"
+Rule   Morocco 1950    only    -       Jun     11       0:00   1:00    S
 Rule   Morocco 1950    only    -       Oct     29       0:00   0       -
-Rule   Morocco 1967    only    -       Jun      3      12:00   1:00    " DST"
+Rule   Morocco 1967    only    -       Jun      3      12:00   1:00    S
 Rule   Morocco 1967    only    -       Oct      1       0:00   0       -
-Rule   Morocco 1974    only    -       Jun     24       0:00   1:00    " DST"
+Rule   Morocco 1974    only    -       Jun     24       0:00   1:00    S
 Rule   Morocco 1974    only    -       Sep      1       0:00   0       -
-Rule   Morocco 1976    1977    -       May      1       0:00   1:00    " DST"
+Rule   Morocco 1976    1977    -       May      1       0:00   1:00    S
 Rule   Morocco 1976    only    -       Aug      1       0:00   0       -
 Rule   Morocco 1977    only    -       Sep     28       0:00   0       -
-Rule   Morocco 1978    only    -       Jun      1       0:00   1:00    " DST"
+Rule   Morocco 1978    only    -       Jun      1       0:00   1:00    S
 Rule   Morocco 1978    only    -       Aug      4       0:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Africa/Casablanca -0:30:20 -      LMT     1913 Oct 26
-                        0:00   Morocco WET%s   1984 Mar 16
-                        1:00   -       MET     1986
+                        0:00   Morocco WE%sT   1984 Mar 16
+                        1:00   -       CET     1986
+                        0:00   -       WET
+# Western Sahara
+Zone Africa/El_Aaiun   -0:52:48 -      LMT     1934 Jan
+                       -1:00   -       AAT     1976 Apr 14
                         0:00   -       WET
-# The following are controlled by Spain, and are like Europe/Madrid:
-# Alboran, Alhucemas Is, Ceuta, Chafarinas Is, Melilla.
 
 # Mozambique
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -463,7 +496,7 @@ Zone        Africa/Lagos    0:13:36 -       LMT     1919 Sep
 # Reunion
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Indian/Reunion  3:41:52 -       LMT     1911 Jun        # Saint-Denis
-                       4:00    -       SMT
+                       4:00    -       RET     # Reunion Time
 
 # Rwanda
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -473,7 +506,7 @@ Zone        Africa/Kigali   2:00:16 -       LMT     1935 Jun
 # St Helena
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Atlantic/St_Helena        -0:22:48 -      LMT     1890            # Jamestown
-                       -0:06   -       ?MT     1951    # a typo in Shanks?
+                       -0:06   -       SHT     1951    # St Helena Time (?)
                         0:00   -       GMT
 # The other parts of the St Helena territory are similar:
 #      Tristan da Cunha: on GMT, says Whitman
@@ -483,7 +516,7 @@ Zone Atlantic/St_Helena     -0:22:48 -      LMT     1890            # Jamestown
 # Sao Tome and Principe
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Sao_Tome  0:26:56 -      LMT     1884
-                       -0:37   -       ?MT     1912    # a typo in Shanks?
+                       -0:36:32 -      LMT     1912    # Lisbon Mean Time
                         0:00   -       WAT
 
 # Senegal
@@ -495,7 +528,7 @@ Zone        Africa/Dakar    -1:09:44 -      LMT     1912
 # Seychelles
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Indian/Mahe     3:41:48 -       LMT     1906 Jun        # Victoria
-                       4:00    -       SMT
+                       4:00    -       SCT     # Seychelles Time
 
 # Sierra Leone
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
@@ -506,7 +539,7 @@ Rule        SL      1957    1962    -       Jun      1      0:00    1:00    S
 Rule   SL      1957    1962    -       Sep      1      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Freetown -0:53:00 -      LMT     1882
-                       -0:53   -       FMT     1913 Jun
+                       -0:53:00 -      FMT     1913 Jun # Freetown Mean Time
                        -1:00   SL      AA%sT   1957
                         0:00   SL      WA%sT
 
@@ -537,13 +570,13 @@ Zone Africa/Johannesburg 1:52:00 -        LMT     1892 Feb 8
 # I verified this today by telephone with the Sudan Mission to the
 # United Nations: 212-573-6033
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Sudan   1970    only    -       May      1      0:00    1:00    " DST"
+Rule   Sudan   1970    only    -       May      1      0:00    1:00    S
 Rule   Sudan   1970    1985    -       Oct     15      0:00    0       -
-Rule   Sudan   1971    only    -       Apr     30      0:00    1:00    " DST"
-Rule   Sudan   1972    1985    -       Apr     lastSun 0:00    1:00    " DST"
+Rule   Sudan   1971    only    -       Apr     30      0:00    1:00    S
+Rule   Sudan   1972    1985    -       Apr     lastSun 0:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Khartoum 2:10:08 -       LMT     1931
-                       2:00    Sudan   EET%s
+                       2:00    Sudan   EE%sT
 
 # Swaziland
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -567,34 +600,34 @@ Zone      Africa/Lome     0:04:52 -       LMT     1893
 
 # Tunisia
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Tunisia 1939    only    -       Apr     15      23:00s  1:00    " DST"
+Rule   Tunisia 1939    only    -       Apr     15      23:00s  1:00    S
 Rule   Tunisia 1939    only    -       Nov     18      23:00s  0       -
-Rule   Tunisia 1940    only    -       Feb     25      23:00s  1:00    " DST"
+Rule   Tunisia 1940    only    -       Feb     25      23:00s  1:00    S
 Rule   Tunisia 1941    only    -       Oct      6       0:00   0       -
-Rule   Tunisia 1942    only    -       Mar      9       0:00   1:00    " DST"
+Rule   Tunisia 1942    only    -       Mar      9       0:00   1:00    S
 Rule   Tunisia 1942    only    -       Nov      2       3:00   0       -
-Rule   Tunisia 1943    only    -       Mar     29       2:00   1:00    " DST"
+Rule   Tunisia 1943    only    -       Mar     29       2:00   1:00    S
 Rule   Tunisia 1943    only    -       Apr     17       2:00   0       -
-Rule   Tunisia 1943    only    -       Apr     25       2:00   1:00    " DST"
+Rule   Tunisia 1943    only    -       Apr     25       2:00   1:00    S
 Rule   Tunisia 1943    only    -       Oct      4       2:00   0       -
-Rule   Tunisia 1944    1945    -       Apr     Mon>=1   2:00   1:00    " DST"
+Rule   Tunisia 1944    1945    -       Apr     Mon>=1   2:00   1:00    S
 Rule   Tunisia 1944    only    -       Oct      8       0:00   0       -
 Rule   Tunisia 1945    only    -       Sep     16       0:00   0       -
-Rule   Tunisia 1977    only    -       Apr     30       0:00s  1:00    " DST"
+Rule   Tunisia 1977    only    -       Apr     30       0:00s  1:00    S
 Rule   Tunisia 1977    only    -       Sep     24       0:00s  0       -
-Rule   Tunisia 1978    only    -       May      1       0:00s  1:00    " DST"
+Rule   Tunisia 1978    only    -       May      1       0:00s  1:00    S
 Rule   Tunisia 1978    only    -       Oct      1       0:00s  0       -
-Rule   Tunisia 1988    only    -       Jun      1       0:00s  1:00    " DST"
+Rule   Tunisia 1988    only    -       Jun      1       0:00s  1:00    S
 Rule   Tunisia 1988    max     -       Sep     lastSun  0:00s  0       -
-Rule   Tunisia 1989    only    -       Mar     26       0:00s  1:00    " DST"
-Rule   Tunisia 1990    only    -       May      1       0:00s  1:00    " DST"
-Rule   Tunisia 1991    max     -       Mar     lastSun  0:00s  1:00    " DST"
+Rule   Tunisia 1989    only    -       Mar     26       0:00s  1:00    S
+Rule   Tunisia 1990    only    -       May      1       0:00s  1:00    S
+Rule   Tunisia 1991    max     -       Mar     lastSun  0:00s  1:00    S
 # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21.
 # Shanks says the 1911 switch occurred on Mar 9; go with Howse's Mar 11.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Tunis    0:40:44 -       LMT     1881 May 12
                        0:09:21 -       PMT     1911 Mar 11    # Paris Mean Time
-                       1:00    Tunisia MET%s
+                       1:00    Tunisia CE%sT
 
 # Uganda
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -608,7 +641,7 @@ Zone        Africa/Kampala  2:09:40 -       LMT     1928 Jul
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Africa/Kinshasa   1:01:12 -       LMT     1897 Nov 9
                        1:00    -       CAT
-Zone Africa/Lumumbashi 1:49:52 -       LMT     1897 Nov 9
+Zone Africa/Lubumbashi 1:49:52 -       LMT     1897 Nov 9
                        2:00    -       SAT
 
 # Zambia
index 3c46c1576ccd9baa74489c833adfcf9ae69e7626..0c78eb68269d254bf4e409726990cf91fbc1eadf 100644 (file)
-# @(#)antarctica       7.3
+# @(#)antarctica       7.4
 
-# From Arthur David Olson (February 13, 1988):
-# No data available.
+# From Paul Eggert (1996-09-03):
+# To keep things manageable, we list only locations occupied year-round;
+# see <URL:http://earth.agu.org/amen/nations.html> (1996-05-24).
+# Unless otherwise specified, we have no time zone information.
+#
+# I made up all time zone abbreviations mentioned here; corrections welcome!
+# FORMAT is `___' and GMTOFF is 0 for locations while uninhabited.
 
-# Balleny Is
 
-# British Antarctic Territories include
-#      South Orkney Is
-#      South Shetland Is
+# Argentina - 6 year-round bases
+# General Belgrano II
+# 5 others
 
-# Bouvet
-# uninhabited
+# Australia - territories
+# Heard Island, McDonald Islands
+#
+# year-round bases
+# Casey, Bailey Peninsula, since 1969
+# Davis, Vestfold Hills, since 1957-01-13 (except 1965-01 -  1969-02)
+# Mawson, Holme Bay, since 1954-02-13
+# Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
+Zone Antarctica/Casey  0       -       ___     1969
+                       8:00    -       WST     # Western (Aus) Standard Time
+#Zone Antartica/Davis  unknown
+Zone Antarctica/Mawson 0       -       ___     1954 Feb 13
+                       6:00    -       MAWT    # Mawson Time
+# References:
+# <URL:http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html> (1996-07-15)
+# <URL:http://www.antdiv.gov.au/aad/exop/sfo/mawson/video.html> (1996-04-19)
 
-# French Southern and Antarctic Lands (no indigenous inhabitants) include
-#      Amsterdam Island
-#      Crozet Is
-#      Kerguelen Is
-#      St Paul Island
+# Brazil - year-round base
+# Ferraz, King George Island, since 1983/4
 
-# Heard Island, McDonald Is
-# uninhabited
+# Chile - 4 year-round bases
 
-# Peter I Island
+# China - year-round bases
+# Great Wall, King George Island, since 1985-02-20
+# Zhongshan, Larsemann Hills, Prydz Bay, since 1989-02-26
+
+# Finland - year-round base
+# Aboa, Queen Maud Land, since 1988
+
+# France
+#
+# French Southern Territories with year-round inhabitants
+# Amsterdam Island
+# Crozet Islands
+# Kerguelen Islands
+# St Paul Island
+#
+# year-round base
+# Dumont d'Urville, Adelie Land, since IGY
+
+# Germany - year-round base
+# Georg von Neumayer
+
+# India - year-round base
+# Dakshin Gangotri
+
+# Japan - year-round bases
+# Dome Fuji
+# Syowa
+
+# S Korea - year-round base
+# King Sejong, King George Island, since 1988
+
+# New Zealand - claims
+# Balleny Islands
 # Scott Island
+#
+# year-round base
+# Scott, Ross Island, since 1957-01, is like Antarctica/McMurdo.
+#
+# These rules for New Zealand are stolen from the `australasia' file.
+# Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
+Rule   NZAQ    1974    only    -       Nov      3      2:00s   1:00    D
+Rule   NZAQ    1975    1988    -       Oct     lastSun 2:00s   1:00    D
+Rule   NZAQ    1989    only    -       Oct      8      2:00s   1:00    D
+Rule   NZAQ    1990    max     -       Oct     Sun>=1  2:00s   1:00    D
+Rule   NZAQ    1975    only    -       Feb     23      2:00s   0       S
+Rule   NZAQ    1976    1989    -       Mar     Sun>=1  2:00s   0       S
+Rule   NZAQ    1990    max     -       Mar     Sun>=15 2:00s   0       S
+
+# Norway - territories
+# Bouvet (uninhabited)
+#
+# claims
+# Peter I Island (uninhabited)
+
+# Poland - year-round base
+# Arctowski, King George Island, since 1977
+
+# Russia - year-round bases
+# Bellingshausen, King George Island
+# Mirny
+# Molodezhnaya
+# Novolazarevskaya
+# Vostok
+
+# S Africa - year-round bases
+# Marion Island
+# Sanae
+
+# UK
+#
+# British Antarctic Territories (BAT) claims
+# South Orkney Islands
+# South Shetland Islands
+#
+# year-round bases
+# Halley, Coates Land, -7535-2619, since 1956-01-06
+# Rothera, Adelaide Island, -6734-6808, since 1976-12-01
+
+# Uruguay - year round base
+# Artigas, King George Island
+
+# USA - year-round bases
+#
+# Palmer, Anvers Island
+#
+# McMurdo, Ross Island, since 1956
+# Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
+Zone Antarctica/McMurdo        0       -       ___     1956
+                       12:00   NZAQ    NZ%sT
+#
+# Amundsen-Scott, South Pole, since 1957-01-23
+# From Paul Eggert (1996-09-03):
+# Normally it wouldn't have a separate entry, since it's like the
+# larger Antarctica/McMurdo since 1970, but it's too famous to omit.
+#
+# From Chris Carrier <72157.3334@CompuServe.COM> (1996-06-27):
+# Siple, the first commander of the South Pole station,
+# stated that he would have liked to have kept GMT at the station,
+# but that he found it more convenient to keep GMT+12
+# as supplies for the station were coming from McMurdo Sound,
+# which was on GMT+12 because New Zealand was on GMT+12 all year
+# at that time (1957).  (Source: Siple's book 90 degrees SOUTH.)
+#
+# From Susan Smith <URL:http://www.cybertours.com/whs/pole10.html>
+# (1995-11-13 16:24:56 +1300): We use the same time as McMurdo does.
+# And they use the same time as Christchurch, NZ does....
+# One last quirk about South Pole time.
+# All the electric clocks are usually wrong.
+# Something about the generators running at 60.1hertz or something
+# makes all of the clocks run fast.  So every couple of days,
+# we have to go around and set them back 5 minutes or so.
+# Maybe if we let them run fast all of the time, we'd get to leave here sooner!!
+#
+Link   Antarctica/McMurdo      Antarctica/South_Pole
index a5d0ab59f5d99610169491bcb5ada62f0fd500b6..2cc414f1dfcb3e33bceefeff616b9433708be3a8 100644 (file)
--- a/time/asia
+++ b/time/asia
@@ -1,10 +1,10 @@
-# @(#)asia     7.23
+# @(#)asia     7.24
 
 # 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> (1995-12-19):
+# From Paul Eggert <eggert@twinsun.com> (1995-07-24):
 #
 # A good source for time zone historical data outside the U.S. is
 # Thomas G. Shanks, The International Atlas (3rd edition),
 #              std dst
 #              LMT     Local Mean Time
 #              LST     Local Star Time (Russian ``mestnoe zvezdnoe vremya'')
-#      2:00    EET  EET DST    Eastern European Time
+#      2:00    EET EEST Eastern European Time
 #      2:00    IST IDT Israel
 #      3:00    AST ADT Arabia*
-#      3:00    BSK BSD Baku (was 4:00)*
-#      3:30    IST IDT Iran
-#      4:00    AMST AMDT Armenia (was 3:00) (was YSK, YSD)*
-#      4:00    TBSK TBSD Tbilisi (was 3:00)*
-#      4:00    GST GDT Gulf*
-#      4:30    AFT     Afghanistan*
-#      5:00    ASK ASD Aktau (was SHSK, SHSD)*
-#      5:00    ASK ASD Ashkhabad (was 4:00)*
-#      5:00    BSK BSD Bishkek (was 6:00) (was FSK, FSD)*
-#      5:00    PKT     Pakistan*
-#      5:00    TSK TSD Tashkent (was 6:00)*
-#      5:30    IST IST India
-#      5:45    NPT     Nepal*
-#      6:00    AASK AASD Alma-Ata (was 5:00)*
-#      6:00    BGT     Bengal, Bangladesh*
-#      6:00    DSK DSD Dushanbe (was 5:00)*
-#      6:30    BMT     Burma*
+#      4:00    GST     Gulf*
+#      5:30    IST     India
 #      7:00    ICT     Indochina*
-#      7:00    JVT     Java*
-#      8:00    BNT     Borneo, Brunei*
-#      8:00    CST CDT China
-#      8:00    HKT HKST Hong Kong
-#      8:00    PST PDT Philippines*
-#      8:00    SGT     Singapore
-#      8:00    UST UDT Ulan Bator*
-#      9:00    JST JDT Japan
-#      9:00    KST KDT Korea
-#      9:00    MLT     Moluccas*
-#      9:30    CST     Australian Central Standard Time
+#      8:00    CST     China
+#      9:00    JST     Japan
+#      9:00    KST     Korea
+#      9:30    CST     (Australian) Central Standard Time
 #
 # See the `europe' file for Russia and Turkey in Asia.
 #
-# See the `africa' file for Zone naming conventions.
+# See the `africa' file for time zone naming and abbreviation conventions.
 
 # From Guy Harris:
 # Incorporates data for Singapore from Robert Elz' asia 1.1, as well as
 
 # These rules for Russia are stolen from the `europe' file.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule RussiaAsia 1981   1984    -       Apr     1       0:00    1:00    D
-Rule RussiaAsia 1981   1983    -       Oct     1       0:00    0       K
-Rule RussiaAsia 1984   max     -       Sep     lastSun 2:00s   0       K
-Rule RussiaAsia 1985   max     -       Mar     lastSun 2:00s   1:00    D
+Rule RussiaAsia 1981   1984    -       Apr     1       0:00    1:00    S
+Rule RussiaAsia 1981   1983    -       Oct     1       0:00    0       -
+Rule RussiaAsia 1984   max     -       Sep     lastSun 2:00s   0       -
+Rule RussiaAsia 1985   max     -       Mar     lastSun 2:00s   1:00    S
 
 # Afghanistan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Kabul      4:36:48 -       LMT     1890
-                       4:00    -       GST     1945
+                       4:00    -       AFT     1945
                        4:30    -       AFT
 
 # Armenia
@@ -90,30 +68,27 @@ Zone        Asia/Kabul      4:36:48 -       LMT     1890
 # <edd@AIC.NET> reported today that Yerevan probably won't use DST this year,
 # though it did use DST in 1995.  We guess Yerevan stayed in sync with Moscow
 # between 1990 and 1995, but stopped using DST in 1996.
-# Der-Danieliantz also asked for a better abbreviation than `YSK'
-# after independence.  Apparently no abbreviation is in common use;
-# use `AMST/AMDT' since `AM' is the ISO country code for Armenia.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Armenia 1992    1995    -       Sep     lastSun 2:00s   0       S
-Rule   Armenia 1992    1995    -       Mar     lastSun 2:00s   1:00    D
+Rule   Armenia 1991    1995    -       Mar     lastSun 2:00s   1:00    S
+Rule   Armenia 1991    1995    -       Sep     lastSun 2:00s   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Yerevan    2:58:00 -       LMT     1924 May  2
-                       3:00    -       YSK     1957 Mar
-                       4:00 RussiaAsia YS%s    1991 Mar 31 2:00s
-                       3:00    1:00    YSD     1991 Sep 29 2:00s
-                       3:00    -       AMST    1992 Jan 19 2:00s
-                       4:00    Armenia AM%sT   1996
-                       4:00    -       AMST
+                       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    Armenia AM%sT   1992 Jan 19 2:00s # Armenia Time
+                       4:00    Armenia AM%sT
 
 # Azerbaijan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Baku       3:19:24 -       LMT     1924 May  2
-                       3:00    -       BSK     1957 Mar
-                       4:00 RussiaAsia BS%s    1991 Mar 31 2:00s
-                       3:00    1:00    BSD     1991 Sep 29 2:00s
-                       3:00    -       BSK
+                       3:00    -       BAKT    1957 Mar    # Baku Time
+                       4:00 RussiaAsia BAK%sT  1991 Mar 31 2:00s
+                       3:00    1:00    BAKST   1991 Aug 30 # independence
+                       3:00 RussiaAsia AZ%sT   1992        # Azerbaijan Time
+                       3:00    -       AZT
 # Shanks has Baku using Russian DST rules after 1991,
-# but usno1995 has Azerbaijan with no DST.  Go with usno1995.
+# but usno1995 has Azerbaijan with no DST.  Guess no DST after 1991.
 
 # Bahrain
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -124,22 +99,23 @@ Zone       Asia/Bahrain    3:22:20 -       LMT     1920            # Al-Manamah
 # Bangladesh
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Dacca      6:01:40 -       LMT     1890
-                       5:53    -       CMT     1941 Oct    # Calcutta Mean Time
-                       6:30    -       BMT     1942 May 15
+                       5:53:20 -       HMT     1941 Oct    # Howrah Mean Time?
+                       6:30    -       BURT    1942 May 15 # Burma Time
                        5:30    -       IST     1942 Sep
-                       6:30    -       BMT     1951 Sep 30
-                       6:00    -       BGT
+                       6:30    -       BURT    1951 Sep 30
+                       6:00    -       DACT    1971 Mar 26 # Dacca Time
+                       6:00    -       BDT     # Bangladesh Time
 
 # Bhutan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Thimbu     5:58:36 -       LMT     1947 Aug 15
                        5:30    -       IST     1987 Oct
-                       6:00    -       BGT
+                       6:00    -       BTT     # Bhutan Time
 
 # British Indian Ocean Territory
 # From Whitman:
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-Zone   Indian/Chagos   5:00    -       PKT
+Zone   Indian/Chagos   5:00    -       IOT     # BIOT Time
 
 # Brunei
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -150,15 +126,15 @@ Zone      Asia/Brunei     7:39:40 -       LMT     1926 Mar   # Bandar Seri Begawan
 # Burma / Myanmar
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Rangoon    6:24:40 -       LMT     1880            # or Yangon
-                       6:25    -       RMT     1920
-                       6:30    -       BMT     1942 May
+                       6:24:36 -       RMT     1920       # Rangoon Mean Time?
+                       6:30    -       BURT    1942 May   # Burma Time
                        9:00    -       JST     1945 May 3
-                       6:30    -       BMT
+                       6:30    -       MMT                # Myanmar Time
 
 # Cambodia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Phnom_Penh 6:59:40 -       LMT     1906 Jun  9
-                       7:06    -       SMT     1911 Mar 11 0:01     # Saigon MT
+                       7:06:20 -       SMT     1911 Mar 11 0:01 # Saigon MT?
                        7:00    -       ICT     1912 May
                        8:00    -       ICT     1931 May
                        7:00    -       ICT
@@ -187,8 +163,7 @@ Zone        Asia/Phnom_Penh 6:59:40 -       LMT     1906 Jun  9
 # CHINA               9 H  AHEAD OF UTC  APR 17 - SEP 10
 
 # From Paul Eggert <eggert@twinsun.com> (1995-12-19):
-# Shanks writes that China switched from the Chinese calendar on 1912 Feb 12.
-# He also writes that China has had a single time zone since 1980 May 1,
+# Shanks writes that China has had a single time zone since 1980 May 1,
 # observing summer DST from 1986 through 1991; this contradicts Devine's
 # 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.
@@ -204,23 +179,23 @@ Rule      PRC     1986    1991    -       Sep     Sun>=11 0:00    0       S
 Rule   PRC     1987    1991    -       Apr     Sun>=10 0:00    1:00    D
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Harbin     8:26:44 -       LMT     1928
-                       8:30    -       MAT     1932 Mar    # Manchuria
+                       8:30    -       HART    1932 Mar # Harbin Time
                        8:00    -       CST     1940
-                       9:00    -       KST     1966 May
-                       8:30    -       MAT     1980 May
+                       9:00    -       HART    1966 May
+                       8:30    -       HART    1980 May
                        8:00    PRC     C%sT
 Zone   Asia/Shanghai   8:05:52 -       LMT     1928
                        8:00    Shang   C%sT    1949
                        8:00    PRC     C%sT
 Zone   Asia/Chungking  7:06:20 -       LMT     1928
-                       7:00    -       ICT     1980 May
+                       7:00    -       CHUT    1980 May # Chungking Time
                        8:00    PRC     C%sT
 Zone   Asia/Urumqi     5:50:20 -       LMT     1928
-                       6:00    -       URT     1980 May    # Urumqi
+                       6:00    -       URUT    1980 May # Urumqi Time
                        8:00    PRC     C%sT
 Zone   Asia/Kashgar    5:03:56 -       LMT     1928
-                       5:30    -       ETT     1940        # Eastern Turkestan
-                       5:00    -       ETT     1980 May
+                       5:30    -       KAST    1940     # Kashgar Time
+                       5:00    -       KAST    1980 May
                        8:00    PRC     C%sT
 
 ###############################################################################
@@ -263,45 +238,47 @@ Rule      HK      1979    1980    -       May     Sun>=8  3:30    1:00    S
 Rule   HK      1979    1980    -       Oct     Sun>=16 3:30    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Hong_Kong  7:36:36 -       LMT     1904 Oct 30
-                       8:00    HK      HK%sT
+                       8:00    HK      HK%sT   1997 Jul  1 # return to China
+                       8:00    PRC     C%sT
 
 # Macao
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Macao   1961    1962    -       Mar     Sun>=16 3:30    1:00    D
-Rule   Macao   1961    1964    -       Nov     Sun>=1  3:30    0       S
-Rule   Macao   1963    only    -       Mar     Sun>=16 0:00    1:00    D
-Rule   Macao   1964    only    -       Mar     Sun>=16 3:30    1:00    D
-Rule   Macao   1965    only    -       Mar     Sun>=16 0:00    1:00    D
-Rule   Macao   1965    only    -       Oct     31      0:00    0       S
-Rule   Macao   1966    1971    -       Apr     Sun>=16 3:30    1:00    D
-Rule   Macao   1966    1971    -       Oct     Sun>=16 3:30    0       S
-Rule   Macao   1972    1974    -       Apr     Sun>=15 0:00    1:00    D
-Rule   Macao   1972    1973    -       Oct     Sun>=15 0:00    0       S
-Rule   Macao   1974    1977    -       Oct     Sun>=15 3:30    0       S
-Rule   Macao   1975    1977    -       Apr     Sun>=15 3:30    1:00    D
-Rule   Macao   1978    1980    -       Apr     Sun>=15 0:00    1:00    D
-Rule   Macao   1978    1980    -       Oct     Sun>=15 0:00    0       S
+Rule   Macao   1961    1962    -       Mar     Sun>=16 3:30    1:00    S
+Rule   Macao   1961    1964    -       Nov     Sun>=1  3:30    0       -
+Rule   Macao   1963    only    -       Mar     Sun>=16 0:00    1:00    S
+Rule   Macao   1964    only    -       Mar     Sun>=16 3:30    1:00    S
+Rule   Macao   1965    only    -       Mar     Sun>=16 0:00    1:00    S
+Rule   Macao   1965    only    -       Oct     31      0:00    0       -
+Rule   Macao   1966    1971    -       Apr     Sun>=16 3:30    1:00    S
+Rule   Macao   1966    1971    -       Oct     Sun>=16 3:30    0       -
+Rule   Macao   1972    1974    -       Apr     Sun>=15 0:00    1:00    S
+Rule   Macao   1972    1973    -       Oct     Sun>=15 0:00    0       -
+Rule   Macao   1974    1977    -       Oct     Sun>=15 3:30    0       -
+Rule   Macao   1975    1977    -       Apr     Sun>=15 3:30    1:00    S
+Rule   Macao   1978    1980    -       Apr     Sun>=15 0:00    1:00    S
+Rule   Macao   1978    1980    -       Oct     Sun>=15 0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Macao      7:34:20 -       LMT     1912
-                       8:00    Macao   C%sT
+                       8:00    Macao   MO%sT   1999 Dec 20 # return to China
+                       8:00    PRC     C%sT
 
 
 ###############################################################################
 
 # Cyprus
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Cyprus  1975    only    -       Apr     13      0:00    1:00    " DST"
+Rule   Cyprus  1975    only    -       Apr     13      0:00    1:00    S
 Rule   Cyprus  1975    only    -       Oct     12      0:00    0       -
-Rule   Cyprus  1976    only    -       May     15      0:00    1:00    " DST"
+Rule   Cyprus  1976    only    -       May     15      0:00    1:00    S
 Rule   Cyprus  1976    only    -       Oct     11      0:00    0       -
-Rule   Cyprus  1977    1980    -       Apr     Sun>=1  0:00    1:00    " DST"
+Rule   Cyprus  1977    1980    -       Apr     Sun>=1  0:00    1:00    S
 Rule   Cyprus  1977    only    -       Sep     25      0:00    0       -
 Rule   Cyprus  1978    only    -       Oct     2       0:00    0       -
 Rule   Cyprus  1979    max     -       Sep     lastSun 0:00    0       -
-Rule   Cyprus  1981    max     -       Mar     lastSun 0:00    1:00    " DST"
+Rule   Cyprus  1981    max     -       Mar     lastSun 0:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Nicosia    2:13:28 -       LMT     1921 Nov 14
-                       2:00    Cyprus  EET%s
+                       2:00    Cyprus  EE%sT
 
 # Georgia
 # From Paul Eggert <eggert@twinsun.com> (1994-11-19):
@@ -316,18 +293,18 @@ Zone      Asia/Nicosia    2:13:28 -       LMT     1921 Nov 14
 # Most likely we're still missing some rule changes between 1991 and 1994.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Tbilisi    2:59:16 -       LMT     1880
-                       2:59    -       LST     1924 May  2
-                       3:00    -       TBSK    1957 Mar
-                       4:00 RussiaAsia TBS%s   1991 Mar 31 2:00s
-                       3:00    1:00    TBSD    1991 Sep 29 2:00s
-                       3:00 RussiaAsia TBS%s   1994 Sep 25 2:00s
-                       4:00    -       TBSK
+                       2:59:16 -       TBMT    1924 May  2 # Tbilisi Mean Time
+                       3:00    -       TBIT    1957 Mar    # Tbilisi Time
+                       4:00 RussiaAsia TBI%sT  1991 Mar 31 2:00s
+                       3:00    1:00    TBIST   1991 Apr  9 # independence
+                       3:00 RussiaAsia GE%sT   1994 Sep 25 2:00s # Georgia Time
+                       4:00    -       GET
 
 # India
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Calcutta   5:53:28 -       LMT     1880
-                       5:53    -       CMT     1941 Oct    # Calcutta Mean Time
-                       6:30    -       BMT     1942 May 15
+                       5:53:20 -       HMT     1941 Oct    # Howrah Mean Time?
+                       6:30    -       BURT    1942 May 15 # Burma Time
                        5:30    -       IST     1942 Sep
                        5:30    1:00    IST     1945 Oct 15
                        5:30    -       IST
@@ -339,36 +316,36 @@ 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    -       JMT     1924 Jan  1 0:13
-                       7:20    -       JVT     1932 Nov
-                       7:30    -       JVT     1942 Mar 23
+                       7:07:12 -       JMT     1924 Jan  1 0:13 # Jakarta MT
+                       7:20    -       JAVT    1932 Nov         # Java Time
+                       7:30    -       JAVT    1942 Mar 23
                        9:00    -       JST     1945 Aug
-                       7:30    -       JVT     1948 May
-                       8:00    -       JVT     1950 May
-                       7:30    -       JVT     1964
-                       7:00    -       JVT
+                       7:30    -       JAVT    1948 May
+                       8:00    -       JAVT    1950 May
+                       7:30    -       JAVT    1964
+                       7:00    -       JAVT
 Zone Asia/Ujung_Pandang 7:57:36 -      LMT     1920
-                       7:58    -       MMT     1932 Nov    # Macassar Mean Time
-                       8:00    -       BNT     1942 Feb  9
+                       7:57:36 -       MMT     1932 Nov    # Macassar MT
+                       8:00    -       BORT    1942 Feb  9 # Borneo Time
                        9:00    -       JST     1945 Aug
-                       8:00    -       BNT
+                       8:00    -       BORT
 Zone Asia/Jayapura     9:22:48 -       LMT     1932 Nov
-                       9:00    -       MLT     1944
+                       9:00    -       JAYT    1944        # Jayapura Time
                        9:30    -       CST     1964
-                       9:00    -       MLT
+                       9:00    -       JAYT
 
 # Iran
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Iran    1978    1980    -       Mar     21      0:00    1:00    D
-Rule   Iran    1978    only    -       Oct     21      0:00    0       S
-Rule   Iran    1979    only    -       Sep     19      0:00    0       S
-Rule   Iran    1980    only    -       Sep     23      0:00    0       S
+Rule   Iran    1978    1980    -       Mar     21      0:00    1:00    S
+Rule   Iran    1978    only    -       Oct     21      0:00    0       -
+Rule   Iran    1979    only    -       Sep     19      0:00    0       -
+Rule   Iran    1980    only    -       Sep     23      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Tehran     3:25:44 -       LMT     1916
-                       3:26    -       TMT     1946
-                       3:30    -       IST     1977 Nov
-                       4:00    Iran    G%sT    1979
-                       3:30    Iran    I%sT
+                       3:25:44 -       TMT     1946    # Tehran Mean Time
+                       3:30    -       IRT     1977 Nov
+                       4:00    Iran    IR%sT   1979
+                       3:30    Iran    IR%sT
 
 # Iraq
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
@@ -380,7 +357,7 @@ Rule        Iraq    1985    max     -       Sep     lastSun 1:00s   0       S
 Rule   Iraq    1986    max     -       Mar     lastSun 1:00s   1:00    D
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Baghdad    2:57:40 -       LMT     1890
-                       2:58    -       BMT     1918        # Baghdad Mean Time
+                       2:57:36 -       BMT     1918        # Baghdad Mean Time?
                        3:00    -       AST     1982 May
                        3:00    Iraq    A%sT
 
@@ -440,12 +417,6 @@ Rule       Zion    1987    only    -       Apr     15      0:00    1:00    D
 Rule   Zion    1987    only    -       Sep     13      0:00    0       S
 Rule   Zion    1988    only    -       Apr      9      0:00    1:00    D
 Rule   Zion    1988    only    -       Sep      3      0:00    0       S
-#Rule  Zion    1989    only    -       Apr     29      0:00    1:00    D
-#Rule  Zion    1989    only    -       Sep      2      0:00    0       S
-#Rule  Zion    1990    only    -       Mar     25      0:00    1:00    D
-#Rule  Zion    1990    only    -       Aug     26      0:00    0       S
-#Rule  Zion    1991    only    -       Mar     10      0:00    1:00    D
-#Rule  Zion    1991    only    -       Sep      1      0:00    0       S
 
 # From Ephraim Silverberg (1996-01-02):
 #
@@ -466,25 +437,25 @@ Rule      Zion    1988    only    -       Sep      3      0:00    0       S
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Zion    1989    only    -       Apr     30      0:00    1:00    D
-Rule   Zion    1989    only    -       Sep      3      0:00    0:00    S
+Rule   Zion    1989    only    -       Sep      3      0:00    0       S
 Rule   Zion    1990    only    -       Mar     25      0:00    1:00    D
-Rule   Zion    1990    only    -       Aug     26      0:00    0:00    S
+Rule   Zion    1990    only    -       Aug     26      0:00    0       S
 Rule   Zion    1991    only    -       Mar     24      0:00    1:00    D
-Rule   Zion    1991    only    -       Sep      1      0:00    0:00    S
+Rule   Zion    1991    only    -       Sep      1      0:00    0       S
 Rule   Zion    1992    only    -       Mar     29      0:00    1:00    D
-Rule   Zion    1992    only    -       Sep      6      0:00    0:00    S
+Rule   Zion    1992    only    -       Sep      6      0:00    0       S
 Rule   Zion    1993    only    -       Apr      2      0:00    1:00    D
-Rule   Zion    1993    only    -       Sep      5      0:00    0:00    S
+Rule   Zion    1993    only    -       Sep      5      0:00    0       S
 
 # The dates for 1994-1995 were obtained from Office of the Spokeswoman for the
 # Ministry of Interior, Jerusalem, Israel.  The spokeswoman can be reached by
 # calling the switchboard at 972-2-701411 and asking for the spokeswoman.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule    Zion    1994    only    -       Apr      1      0:00    1:00    D
-Rule    Zion    1994    only    -       Aug     28      0:00    0:00    S
-Rule    Zion    1995    only    -       Mar     31      0:00    1:00    D
-Rule    Zion    1995    only    -       Sep      3      0:00    0:00    S
+Rule   Zion    1994    only    -       Apr      1      0:00    1:00    D
+Rule   Zion    1994    only    -       Aug     28      0:00    0       S
+Rule   Zion    1995    only    -       Mar     31      0:00    1:00    D
+Rule   Zion    1995    only    -       Sep      3      0:00    0       S
 
 # The dates for 1996-1998 were also obtained from Office of the Spokeswoman
 # for the Ministry of Interior, Jerusalem, Israel.  The official announcement
@@ -504,12 +475,12 @@ Rule    Zion    1995    only    -       Sep      3      0:00    0:00    S
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Zion    1996    1998    -       Mar     Fri>=14 0:00    1:00    D
-Rule   Zion    1996    only    -       Sep     16      0:00    0:00    S
-Rule   Zion    1997    1998    -       Oct     Sun>=14 0:00    0:00    S
+Rule   Zion    1996    only    -       Sep     16      0:00    0       S
+Rule   Zion    1997    1998    -       Oct     Sun>=14 0:00    0       S
 
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Jerusalem  2:20:56 -       LMT     1880
-                       2:21    -       JMT     1918
+                       2:20:40 -       JMT     1918    # Jerusalem Mean Time?
                        2:00    Zion    I%sT
 
 
@@ -531,29 +502,12 @@ Zone      Asia/Jerusalem  2:20:56 -       LMT     1880
 #Rule  Japan   1950    1951    -       May     Sun>=1  2:00    1:00    D
 # but the only locations using it were US military bases.
 # We go with Shanks and omit daylight saving in those years for Asia/Tokyo.
-#
-# The same news article also reports that Japan is likely to go on DST in 1996
-# as follows, where I've guessed the AT and LETTER/S columns:
-# Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-#Rule  Japan   1996    max     -       Apr     Sun>=1  2:00    1:00    D
-#Rule  Japan   1996    max     -       Oct     lastSun 2:00    0       S
 
-# From Shanks (1991):
-# Japan switched from the Japanese calendar on 1893 Jan 1.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Tokyo      9:19:04 -       LMT     1896
                        9:00    -       JST
-# If Japan adopts DST in 1996, replace the above line with the following lines:
-#                      9:00    -       JST     1996
-#                      9:00    Japan   J%sT
-# and uncomment the two `Rule' lines commented out above.
-
-# From Paul Eggert <eggert@twinsun.com> (1995-12-19):
-# Shanks says that the far southern Ryukyu Is (Nansei-Shoto) are 8:00,
-# but we haven't confirmed this.
-# Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-#Zone  Asia/Ishigaki   8:16:36 -       LMT     1896
-#                      8:00    -       CST
+Zone   Asia/Ishigaki   8:16:36 -       LMT     1896
+                       8:00    -       CST
 # There is no information for Marcus.
 # Other Japanese possessions are probably like Asia/Tokyo.
 
@@ -562,26 +516,26 @@ Zone      Asia/Tokyo      9:19:04 -       LMT     1896
 # Most likely Shanks is merely guessing dates from 1992 on.
 # From Shanks (1991):
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule    Jordan 1973    only    -       Jun     6       0:00    1:00    " DST"
+Rule    Jordan 1973    only    -       Jun     6       0:00    1:00    S
 Rule    Jordan 1973    1975    -       Oct     1       0:00    0       -
-Rule    Jordan 1974    1977    -       May     1       0:00    1:00    " DST"
+Rule    Jordan 1974    1977    -       May     1       0:00    1:00    S
 Rule    Jordan 1976    only    -       Nov     1       0:00    0       -
 Rule    Jordan 1977    only    -       Oct     1       0:00    0       -
-Rule    Jordan 1978    only    -       Apr     30      0:00    1:00    " DST"
+Rule    Jordan 1978    only    -       Apr     30      0:00    1:00    S
 Rule    Jordan 1978    only    -       Sep     30      0:00    0       -
-Rule    Jordan 1985    only    -       Apr     1       0:00    1:00    " DST"
+Rule    Jordan 1985    only    -       Apr     1       0:00    1:00    S
 Rule    Jordan 1985    only    -       Oct     1       0:00    0       -
-Rule    Jordan 1986    1988    -       Apr     Fri>=1  0:00    1:00    " DST"
+Rule    Jordan 1986    1988    -       Apr     Fri>=1  0:00    1:00    S
 Rule    Jordan 1986    1990    -       Oct     Fri>=1  0:00    0       -
-Rule    Jordan 1989    only    -       May     8       0:00    1:00    " DST"
-Rule    Jordan 1990    only    -       Apr     27      0:00    1:00    " DST"
-Rule    Jordan 1991    only    -       Apr     19      0:00    1:00    " DST"
+Rule    Jordan 1989    only    -       May     8       0:00    1:00    S
+Rule    Jordan 1990    only    -       Apr     27      0:00    1:00    S
+Rule    Jordan 1991    only    -       Apr     19      0:00    1:00    S
 Rule    Jordan 1991    only    -       Sep     27      0:00    0       -
-Rule    Jordan 1992    max     -       Apr     Fri>=1  0:00    1:00    " DST"
+Rule    Jordan 1992    max     -       Apr     Fri>=1  0:00    1:00    S
 Rule    Jordan 1992    max     -       Oct     Fri>=1  0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Amman      2:23:44 -       LMT     1931
-                       2:00    Jordan  EET%s
+                       2:00    Jordan  EE%sT
 
 # Kazakhstan
 # From Paul Eggert (1996-04-19):
@@ -590,25 +544,25 @@ Zone      Asia/Amman      2:23:44 -       LMT     1931
 # in western Kazakhstan.  Follow Shanks before 1991, Evtichov afterwards.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Alma-Ata   5:07:48 -       LMT     1924 May  2 # or Almaty
-                       5:00    -       AASK    1957 Mar
-                       6:00 RussiaAsia AAS%s   1991 Mar 31 2:00s
-                       5:00    1:00    AASD    1991 Sep 29 2:00s
-                       5:00    -       AASK    1992 Jan 19 2:00s
-                       6:00 RussiaAsia AAS%s
+                       5:00    -       ALMT    1957 Mar # Alma-Ata Time
+                       6:00 RussiaAsia ALM%sT  1991 Mar 31 2:00s
+                       5:00    1:00    ALMST   1991 Sep 29 2:00s
+                       5:00    -       ALMT    1992 Jan 19 2:00s
+                       6:00 RussiaAsia ALM%sT
 Zone   Asia/Aktau      3:21:04 -       LMT     1924 May  2 # or Aqtau
-                       4:00    -       SHSK    1957 Mar # Fort Shevchenko
-                       5:00 RussiaAsia SHS%s   1991 Mar 31 2:00s
-                       4:00    1:00    ASD     1991 Sep 29 2:00s
-                       4:00    -       ASK     1992 Jan 19 2:00s
-                       5:00 RussiaAsia AS%s
+                       4:00    -       SHET    1957 Mar # Fort Shevchenko Time
+                       5:00 RussiaAsia SHE%sT  1991 Mar 31 2:00s
+                       4:00    1:00    AKTST   1991 Sep 29 2:00s
+                       4:00    -       AKTT    1992 Jan 19 2:00s # Aktau Time
+                       5:00 RussiaAsia AKT%sT
 
 # Kirgizstan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Bishkek    4:58:24 -       LMT     1924 May  2
-                       5:00    -       FSK     1957 Mar        # Frunze
-                       6:00 RussiaAsia FS%s    1991 Mar 31 2:00s
-                       5:00    1:00    FSD     1991 Sep 29 2:00s
-                       5:00 RussiaAsia BS%s
+                       5:00    -       FRUT    1957 Mar    # Frunze Time
+                       6:00 RussiaAsia FRU%sT  1991 Mar 31 2:00s
+                       5:00    1:00    FRUST   1991 Aug 31 # independence
+                       5:00 RussiaAsia KG%sT               # Kirgizstan Time
 
 ###############################################################################
 
@@ -653,81 +607,90 @@ Zone      Asia/Kuwait     3:11:56 -       LMT     1950
 # Laos
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Vientiane  6:50:24 -       LMT     1906 Jun  9
-                       7:06    -       SMT     1911 Mar 11 0:01     # Saigon MT
+                       7:06:20 -       SMT     1911 Mar 11 0:01 # Saigon MT?
                        7:00    -       ICT     1912 May
                        8:00    -       ICT     1931 May
                        7:00    -       ICT
 
 # Lebanon
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Lebanon 1920    only    -       Mar     28      0:00    1:00    " DST"
+Rule   Lebanon 1920    only    -       Mar     28      0:00    1:00    S
 Rule   Lebanon 1920    only    -       Oct     25      0:00    0       -
-Rule   Lebanon 1921    only    -       Apr     3       0:00    1:00    " DST"
+Rule   Lebanon 1921    only    -       Apr     3       0:00    1:00    S
 Rule   Lebanon 1921    only    -       Oct     3       0:00    0       -
-Rule   Lebanon 1922    only    -       Mar     26      0:00    1:00    " DST"
+Rule   Lebanon 1922    only    -       Mar     26      0:00    1:00    S
 Rule   Lebanon 1922    only    -       Oct     8       0:00    0       -
-Rule   Lebanon 1923    only    -       Apr     22      0:00    1:00    " DST"
+Rule   Lebanon 1923    only    -       Apr     22      0:00    1:00    S
 Rule   Lebanon 1923    only    -       Sep     16      0:00    0       -
-Rule   Lebanon 1957    1961    -       May     1       0:00    1:00    " DST"
+Rule   Lebanon 1957    1961    -       May     1       0:00    1:00    S
 Rule   Lebanon 1957    1961    -       Oct     1       0:00    0       -
-Rule   Lebanon 1972    only    -       Jun     22      0:00    1:00    " DST"
+Rule   Lebanon 1972    only    -       Jun     22      0:00    1:00    S
 Rule   Lebanon 1972    1977    -       Oct     1       0:00    0       -
-Rule   Lebanon 1973    1977    -       May     1       0:00    1:00    " DST"
-Rule   Lebanon 1978    only    -       Apr     30      0:00    1:00    " DST"
+Rule   Lebanon 1973    1977    -       May     1       0:00    1:00    S
+Rule   Lebanon 1978    only    -       Apr     30      0:00    1:00    S
 Rule   Lebanon 1978    only    -       Sep     30      0:00    0       -
-Rule   Lebanon 1984    1987    -       May     1       0:00    1:00    " DST"
+Rule   Lebanon 1984    1987    -       May     1       0:00    1:00    S
 Rule   Lebanon 1984    max     -       Oct     16      0:00    0       -
-Rule   Lebanon 1988    only    -       Jun     1       0:00    1:00    " DST"
-Rule   Lebanon 1989    only    -       May     10      0:00    1:00    " DST"
-Rule   Lebanon 1990    max     -       May     1       0:00    1:00    " DST"
+Rule   Lebanon 1988    only    -       Jun     1       0:00    1:00    S
+Rule   Lebanon 1989    only    -       May     10      0:00    1:00    S
+Rule   Lebanon 1990    max     -       May     1       0:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Beirut     2:22:00 -       LMT     1880
-                       2:00    Lebanon EET%s
+                       2:00    Lebanon EE%sT
 
 # Malaysia
+# Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
+Rule   NBorneo 1935    1941    -       Sep     14      0:00    0:20    TS
+Rule   NBorneo 1935    1941    -       Dec     14      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Asia/Kuala_Lumpur 6:46:48 -       LMT     1880
-                       6:55    -       SMT     1905 Jun
-                       7:00    -       SGT     1933
-                       7:20    -       SGT     1942 Feb 15
+                       6:55:24 -       SMT     1905 Jun # Singapore Mean Time
+                       7:00    -       MALT    1933     # Malaya Time
+                       7:20    -       MALT    1942 Feb 15
                        9:00    -       JST     1945 Sep 2
-                       7:20    -       SGT     1950
-                       7:30    -       SGT     1982 May
-                       8:00    -       SGT
+                       7:20    -       MALT    1950
+                       7:30    -       MALT    1982 May
+                       8:00    -       MYT     # Malaysia Time
+Zone Asia/Kuching      7:21:20 -       LMT     1926 Mar
+                       7:30    -       BORT    1933    # Borneo Time
+                       8:00    NBorneo BOR%sT  1942
+                       9:00    -       JST     1945 Sep 2
+                       8:00    -       BORT    1982 May
+                       8:00    -       MYT
 
 # Maldives
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-Zone   Indian/Maldives 4:54:00 -       LMT     1880                    # Male
-                       4:54    -       MMT     1960
-                       5:00    -       PKT
+Zone   Indian/Maldives 4:54:00 -       LMT     1880    # Male
+                       4:54:00 -       MMT     1960    # Male Mean Time
+                       5:00    -       MVT             # Maldives Time
 
 # Mongolia
-# Shanks says that Mongolia has three time zones,
-# but usno1995 and http://www.odci.gov/cia/publications/95fact/802389h.gif
+# Shanks says that Mongolia has three time zones, but usno1995 and
+# <URL:http://www.odci.gov/cia/publications/95fact/802389h.gif> (1995)
 # 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.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Mongol  1981    1984    -       Apr     1       0:00    1:00    T
-Rule   Mongol  1981    1984    -       Oct     1       0:00    0       S
-Rule   Mongol  1985    max     -       Mar     lastSun 2:00    1:00    T
-Rule   Mongol  1985    max     -       Sep     lastSun 3:00    0       S
+Rule   Mongol  1981    1984    -       Apr     1       0:00    1:00    S
+Rule   Mongol  1981    1984    -       Oct     1       0:00    0       -
+Rule   Mongol  1985    max     -       Mar     lastSun 2:00    1:00    S
+Rule   Mongol  1985    max     -       Sep     lastSun 3:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 #Zone  Asia/Dariv      6:14:32 -       LMT     1905 Aug
-#                      6:00    -       DST     1978
-#                      7:00    Mongol  D%sT
+#                      6:00    -       DART    1978    # Dariv Time
+#                      7:00    Mongol  DAR%sT
 Zone   Asia/Ulan_Bator 7:07:32 -       LMT     1905 Aug
-                       7:00    -       UST     1978
-                       8:00    Mongol  U%sT
+                       7:00    -       ULAT    1978    # Ulan Bator Time
+                       8:00    Mongol  ULA%sT
 #Zone Asia/Baruun-Urt  7:33:00 -       LMT     1905 Aug
-#                      8:00    -       BST     1978
-#                      9:00    Mongol  B%sT
+#                      8:00    -       BART    1978    # Baruun-Urt Time
+#                      9:00    Mongol  BAR%sT
 
 # Nepal
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Katmandu   5:41:16 -       LMT     1920
                        5:30    -       IST     1986
-                       5:45    -       NPT
+                       5:45    -       NPT     # Nepal Time
 
 # Oman
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -740,23 +703,23 @@ Zone      Asia/Karachi    4:28:12 -       LMT     1907
                        5:30    -       IST     1942 Sep
                        5:30    1:00    IST     1945 Oct 15
                        5:30    -       IST     1951 Sep 30
-                       5:00    -       PKT
+                       5:00    -       KART    1971 Mar 26 # Karachi Time
+                       5:00    -       PKT     # Pakistan Time
 
 # Palestine
 # These rules for Egypt are stolen from the `africa' file.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule EgyptAsia 1957    only    -       May     10      0:00    1:00    " DST"
+Rule EgyptAsia 1957    only    -       May     10      0:00    1:00    S
 Rule EgyptAsia 1957    1958    -       Oct      1      0:00    0       -
-Rule EgyptAsia 1958    only    -       May      1      0:00    1:00    " DST"
-Rule EgyptAsia 1959    1981    -       May      1      1:00    1:00    " DST"
+Rule EgyptAsia 1958    only    -       May      1      0:00    1:00    S
+Rule EgyptAsia 1959    1981    -       May      1      1:00    1:00    S
 Rule EgyptAsia 1959    1965    -       Sep     30      3:00    0       -
 Rule EgyptAsia 1966    max     -       Oct      1      3:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Gaza       2:17:52 -       LMT     1900 Oct
                        2:00    -       EET     1957 May 10
-                       2:00 EgyptAsia  EET%s   1967 Jun 30
+                       2:00 EgyptAsia  EE%sT   1967 Jun 30
                        2:00    Zion    I%sT
-# This will undoubtedly change soon.
 
 # Paracel Is
 # no information
@@ -765,18 +728,18 @@ Zone      Asia/Gaza       2:17:52 -       LMT     1900 Oct
 # Howse writes (p 162) that until 1844 the Philippines kept American date.
 # The rest of this data is from Shanks.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Phil    1936    only    -       Nov     1       0:00    1:00    D
-Rule   Phil    1937    only    -       Feb     1       0:00    0       S
-Rule   Phil    1954    only    -       Apr     12      0:00    1:00    D
-Rule   Phil    1954    only    -       Jul     1       0:00    0       S
-Rule   Phil    1978    only    -       Mar     22      0:00    1:00    D
-Rule   Phil    1978    only    -       Sep     21      0:00    0       S
+Rule   Phil    1936    only    -       Nov     1       0:00    1:00    S
+Rule   Phil    1937    only    -       Feb     1       0:00    0       -
+Rule   Phil    1954    only    -       Apr     12      0:00    1:00    S
+Rule   Phil    1954    only    -       Jul     1       0:00    0       -
+Rule   Phil    1978    only    -       Mar     22      0:00    1:00    S
+Rule   Phil    1978    only    -       Sep     21      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Manila     -15:56:00 -     LMT     1844
                        8:04:00 -       LMT     1899 May 11
-                       8:00    Phil    P%sT    1942 May
+                       8:00    Phil    PH%sT   1942 May
                        9:00    -       JST     1944 Nov
-                       8:00    Phil    P%sT
+                       8:00    Phil    PH%sT
 
 # Qatar
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -792,78 +755,93 @@ Zone      Asia/Riyadh     3:06:52 -       LMT     1950
 # Singapore
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Singapore  6:55:24 -       LMT     1880
-                       6:55    -       SMT     1905 Jun
-                       7:00    -       SGT     1933
-                       7:20    -       SGT     1942 Feb 15
+                       6:55:24 -       SMT     1905 Jun # Singapore Mean Time
+                       7:00    -       MALT    1933     # Malaya Time
+                       7:20    -       MALT    1942 Feb 15
                        9:00    -       JST     1945 Sep  2
-                       7:20    -       SGT     1950
-                       7:30    -       SGT     1982 May
+                       7:20    -       MALT    1950
+                       7:30    -       MALT    1965 Aug  9 # independence
+                       7:30    -       SGT     1982 May # Singapore Time
                        8:00    -       SGT
 
 # Spratly Is
 # no information
 
 # Sri Lanka
+# From Paul Eggert (1996-09-03):
+# <URL:http://www.virtual-pc.com/lankaweb/news/items/240596-2.html> (1996-05-24)
+# 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 (1991).
+
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Colombo    5:19:24 -       LMT     1880
-                       5:20    -       JMT     1906
+                       5:20    -       CEYT    1906    # Ceylon Time
                        5:30    -       IST     1942 Jan  5
                        5:30    0:30    IHST    1942 Sep
                        5:30    1:00    IST     1945 Oct 16 2:00
-                       5:30    -       IST
+                       5:30    -       IST     1996 May 25 0:00
+                       6:30    -       LKT     # Sri Lanka Time
 
 # Syria
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Syria   1920    1923    -       Apr     Sun>=15 2:00    1:00    " DST"
+Rule   Syria   1920    1923    -       Apr     Sun>=15 2:00    1:00    S
 Rule   Syria   1920    1923    -       Oct     Sun>=1  2:00    0       -
-Rule   Syria   1962    only    -       Apr     29      2:00    1:00    " DST"
+Rule   Syria   1962    only    -       Apr     29      2:00    1:00    S
 Rule   Syria   1962    only    -       Oct     1       2:00    0       -
-Rule   Syria   1963    1965    -       May     1       2:00    1:00    " DST"
+Rule   Syria   1963    1965    -       May     1       2:00    1:00    S
 Rule   Syria   1963    only    -       Sep     30      2:00    0       -
 Rule   Syria   1964    only    -       Oct     1       2:00    0       -
 Rule   Syria   1965    only    -       Sep     30      2:00    0       -
-Rule   Syria   1966    only    -       Apr     24      2:00    1:00    " DST"
+Rule   Syria   1966    only    -       Apr     24      2:00    1:00    S
 Rule   Syria   1966    1976    -       Oct     1       2:00    0       -
-Rule   Syria   1967    1978    -       May     1       2:00    1:00    " DST"
+Rule   Syria   1967    1978    -       May     1       2:00    1:00    S
 Rule   Syria   1977    1978    -       Sep     1       2:00    0       -
-Rule   Syria   1983    1984    -       Apr     9       2:00    1:00    " DST"
+Rule   Syria   1983    1984    -       Apr     9       2:00    1:00    S
 Rule   Syria   1983    1984    -       Oct     1       2:00    0       -
-Rule   Syria   1986    only    -       Feb     16      2:00    1:00    " DST"
+Rule   Syria   1986    only    -       Feb     16      2:00    1:00    S
 Rule   Syria   1986    only    -       Oct     9       2:00    0       -
-Rule   Syria   1987    only    -       Mar     1       2:00    1:00    " DST"
+Rule   Syria   1987    only    -       Mar     1       2:00    1:00    S
 Rule   Syria   1987    1988    -       Oct     31      2:00    0       -
-Rule   Syria   1988    only    -       Mar     15      2:00    1:00    " DST"
-Rule   Syria   1989    only    -       Mar     31      2:00    1:00    " DST"
+Rule   Syria   1988    only    -       Mar     15      2:00    1:00    S
+Rule   Syria   1989    only    -       Mar     31      2:00    1:00    S
 Rule   Syria   1989    only    -       Oct     1       2:00    0       -
-Rule   Syria   1990    max     -       Apr     1       2:00    1:00    " DST"
+Rule   Syria   1990    max     -       Apr     1       2:00    1:00    S
 Rule   Syria   1990    max     -       Sep     30      2:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Damascus   2:25:12 -       LMT     1920
-                       2:00    Syria   EET%s
+                       2:00    Syria   EE%sT
 
 # Tajikistan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Dushanbe   4:35:12 -       LMT     1924 May  2
-                       5:00    -       DSK     1957 Mar
-                       6:00 RussiaAsia DS%s    1991
-                       6:00    -       DSK
-# Shanks has Dushanbe at 5:00 (6:00 summer) after 1991 Sep 29 3:00,
-# but usno1995 has it at 6:00.  Go with usno1995.
+                       5:00    -       DUST    1957 Mar    # 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    -       TJT                 # Tajikistan Time
+# Shanks has Dushanbe at 5:00 (6:00 summer) after 1991,
+# but a cable from the American Embassy at Dushanbe
+# <URL:http://www.itaiep.doc.gov/bisnis/cables/960703ti.html> (1996-07-02)
+# says that Tajikistan is at 5:00.  Guess no DST after 1991.
 
 # Thailand
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Bangkok    6:42:04 -       LMT     1880
-                       6:42    -       BMT     1920 Apr
+                       6:42:04 -       BMT     1920 Apr # Bangkok Mean Time
                        7:00    -       ICT
 
 # Turkmenistan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-Zone   Asia/Ashkhabad  3:53:32 -       LMT     1924 May  2
-                       4:00    -       ASK     1957 Mar
-                       5:00 RussiaAsia AS%s    1991
-                       5:00    -       ASK
-# Shanks has Ashkhabad at 4:00 (5:00 summer) after 1991 Sep 20 3:00,
-# but usno has it at 5:00.  Go with usno1995.
+Zone   Asia/Ashkhabad  3:53:32 -       LMT     1924 May  2 # or Ashgabat
+                       4:00    -       ASHT    1957 Mar    # Ashkhabad Time
+                       5:00 RussiaAsia ASH%sT  1991 Mar 31 2:00s
+                       4:00    1:00    ASHST   1991 Oct 27 # independence
+                       4:00 RussiaAsia TM%sT   1992        # Turkmenistan Time
+                       4:00    -       TMT
+# Shanks has Ashkhabad at 4:00 (5:00 summer) after 1991, but
+# DHL <URL:http://www.dhl.com/dhlinfo/country/turkmeni.html> (1996-07-26)
+# reports 4:00.  Guess no DST after 1991.
 
 # United Arab Emirates
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -873,14 +851,16 @@ Zone      Asia/Dubai      3:41:12 -       LMT     1920
 # Uzbekistan
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Tashkent   4:37:12 -       LMT     1924 May  2
-                       5:00    -       TSK     1957 Mar
-                       6:00 RussiaAsia TS%s    1991 Mar 31 2:00s
-                       5:00    1:00    TSD     1991 Sep 29 2:00s
-                       5:00    -       TSK
+                       5:00    -       TAST    1957 Mar    # Tashkent Time
+                       6:00 RussiaAsia TAS%sT  1991 Mar 31 2:00s
+                       5:00    1:00    TASST   1991 Sep 29 2:00s
+                       5:00    -       UZT                 # Uzbekistan Time
 # Shanks has Tashkent using DST after 1991, but usno1995 says they don't.
-# Go with usno1995.
-# http://www.odci.gov/cia/publications/95fact/802389h.gif claims that
-# Uzbekistan has two time zones, but we lack data about this.
+# Guess no DST after 1991.
+# <URL:http://www.odci.gov/cia/publications/95fact/802389h.gif> (1995)
+# says that Uzbekistan has two time zones, but a cable
+# <URL:http://www.itaiep.doc.gov/bisnis/cables/960510uz.html> (1996-05-10)
+# from the American Embassy in Tashkent implies that they have just one.
 
 # Vietnam
 # From Paul Eggert <eggert@twinsun.com> (November 18, 1993):
@@ -889,7 +869,7 @@ Zone        Asia/Tashkent   4:37:12 -       LMT     1924 May  2
 # From Shanks (1991):
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Saigon     7:06:40 -       LMT     1906 Jun  9
-                       7:06    -       SMT     1911 Mar 11 0:01     # Saigon MT
+                       7:06:20 -       SMT     1911 Mar 11 0:01 # Saigon MT?
                        7:00    -       ICT     1912 May
                        8:00    -       ICT     1931 May
                        7:00    -       ICT
index 960f9e3f559d8d7f35c69b777a5a63a9fd0f7302..e65546feb8ed256e5cb2cf9a7fe927ac0249659f 100644 (file)
@@ -1,4 +1,4 @@
-# @(#)australasia      7.27
+# @(#)australasia      7.28
 # This file also includes Pacific islands.
 
 # Notes are at the end of this file
@@ -143,7 +143,7 @@ Zone Australia/Lord_Howe 10:36:20 - LMT     1895 Feb
 # Australian miscellany
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Indian/Christmas  7:02:52 -       LMT     1895 Feb
-                       7:00    -       JVT
+                       7:00    -       CXT     # Christmas Island Time
 #
 # Ashmore Is, Cartier
 # no indigenous inhabitants; only seasonal caretakers
@@ -159,32 +159,32 @@ Zone Indian/Christmas     7:02:52 -       LMT     1895 Feb
 
 # Cook Is
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Cook    1978    only    -       Nov     12      0:00    0:30    HD
-Rule   Cook    1979    max     -       Mar     Sun>=1  0:00    0       H
-Rule   Cook    1979    max     -       Oct     lastSun 0:00    0:30    HD
+Rule   Cook    1978    only    -       Nov     12      0:00    0:30    HS
+Rule   Cook    1979    max     -       Mar     Sun>=1  0:00    0       -
+Rule   Cook    1979    max     -       Oct     lastSun 0:00    0:30    HS
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Rarotonga -10:39:04 -     LMT     1901            # Avarua
-                       -10:30  -       CIST    1978 Nov 12     # Cook Is ST
-                       -10:00  Cook    T%sT
+                       -10:30  -       CKT     1978 Nov 12     # Cook Is Time
+                       -10:00  Cook    CK%sT
 
 # Cocos
 # From USNO (1989):
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-Zone   Indian/Cocos    6:30    -       CCT
+Zone   Indian/Cocos    6:30    -       CCT     # Cocos Islands Time
 
 # Fiji
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Fiji    11:53:40 -      LMT     1915 Oct 26     # Suva
-                       12:00   -       NZST
+                       12:00   -       FJT     # Fiji Time
 
 # French Polynesia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Gambier  -8:59:48 -     LMT     1912 Oct        # Rikitea
-                        -9:00  -       GBT
+                        -9:00  -       GAMT    # Gambier Time
 Zone   Pacific/Marquesas -9:18:00 -    LMT     1912 Oct
-                        -9:30  -       MQT
+                        -9:30  -       MART    # Marquesas Time
 Zone   Pacific/Tahiti   -9:58:16 -     LMT     1912 Oct        # Papeete
-                       -10:00  -       THT
+                       -10:00  -       TAHT    # Tahiti Time
 
 # Guam
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -209,57 +209,57 @@ Zone Pacific/Johnston     -10:00  -       HST
 # Kiribati
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Tarawa     11:32:04 -     LMT     1901            # Bairiki
-                        12:00  -       NZST
+                        12:00  -       GILT             # Gilbert Is Time
 Zone Pacific/Enderbury -11:24:20 -     LMT     1901
-                       -12:00  -       KJT     1979 Oct
-                       -11:00  -       SST     1995
-                        13:00  -       TGT
+                       -12:00  -       PHOT    1979 Oct # Phoenix Is Time
+                       -11:00  -       PHOT    1995
+                        13:00  -       PHOT
 Zone Pacific/Kiritimati        -10:29:20 -     LMT     1901
-                       -10:40  -       LIT     1979 Oct        # Line Is Time
-                       -10:00  -       THT     1995
-                        14:00  -       KRT
+                       -10:40  -       LINT    1979 Oct # Line Is Time
+                       -10:00  -       LINT    1995
+                        14:00  -       LINT
 
 # N Mariana Is
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Saipan     9:43:00 -      LMT     1901
-                        9:00   -       PLT     1969 Oct
-                       10:00   -       GST
+                        9:00   -       MPT     1969 Oct # N Mariana Is Time
+                       10:00   -       MPT
 
 # Marshall Is
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Majuro    11:24:48 -      LMT     1901
-                       11:00   -       NCST    1969 Oct
-                       12:00   -       NZST
+                       11:00   -       MHT     1969 Oct # Marshall Islands Time
+                       12:00   -       MHT
 Zone Pacific/Kwajalein 11:09:20 -      LMT     1901
-                       11:00   -       NCST    1969 Oct
-                       -12:00  -       KJT     1993 Aug 20
-                       12:00   -       NZST
+                       11:00   -       MHT     1969 Oct
+                       -12:00  -       KWAT    1993 Aug 20     # Kwajalein Time
+                       12:00   -       MHT
 
 # Micronesia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Yap       9:12:32 -       LMT     1901            # Colonia
-                       9:00    -       PLT     1969 Oct
-                       10:00   -       GST
+                       9:00    -       YAPT    1969 Oct        # Yap Time
+                       10:00   -       YAPT
 Zone Pacific/Truk      10:07:08 -      LMT     1901
-                       10:00   -       GST
+                       10:00   -       TRUT                    # Truk Time
 Zone Pacific/Ponape    10:32:52 -      LMT     1901            # Kolonia
-                       11:00   -       NCST
+                       11:00   -       PONT                    # Ponape Time
 Zone Pacific/Kosrae    10:51:56 -      LMT     1901
-                       11:00   -       NCST    1969 Oct
-                       12:00   -       NZST
+                       11:00   -       PONT    1969 Oct
+                       12:00   -       KOST                    # Kosrae Time
 
 # Nauru
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Nauru   11:07:40 -      LMT     1921 Jan 15     # Uaobe
-                       11:30   -       NST     1942 Mar 15
+                       11:30   -       NRT     1942 Mar 15     # Nauru Time
                        9:00    -       JST     1944 Aug 15
-                       11:30   -       NST     1979 May
-                       12:00   -       NZST
+                       11:30   -       NRT     1979 May
+                       12:00   -       NRT
 
 # New Caledonia
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   NC      1977    1978    -       Dec     Sun>=1  0:00    1:00    D
-Rule   NC      1978    1979    -       Feb     27      0:00    0       S
+Rule   NC      1977    1978    -       Dec     Sun>=1  0:00    1:00    S
+Rule   NC      1978    1979    -       Feb     27      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Noumea  11:05:48 -      LMT     1912 Jan 13
                        11:00   NC      NC%sT
@@ -293,11 +293,11 @@ Rule      NZ      1990    max     -       Mar     Sun>=15 2:00s   0       S
 Zone Pacific/Auckland  11:39:04 -      LMT     1868
                        11:30   NZ      NZ%sT   1940 Sep 29 2:00
                        12:00   NZ      NZ%sT
-Zone Pacific/Chatham   12:45   NZ      CH%sT
+Zone Pacific/Chatham   12:45   NZ      CHA%sT
 
 
 # Antipodes Is, Kermadec Is
-# no information; probably like Pacific/Auckland
+# uninhabited except by research personnel; probably like Pacific/Auckland
 
 ###############################################################################
 
@@ -305,20 +305,20 @@ Zone Pacific/Chatham      12:45   NZ      CH%sT
 # Niue
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Niue    -11:19:40 -     LMT     1901            # Alofi
-                       -11:20  -       NIT     1951        # Niue I Time
-                       -11:30  -       NIT     1978 Oct 1
-                       -11:00  -       SST
+                       -11:20  -       NUT     1951    # Niue Time
+                       -11:30  -       NUT     1978 Oct 1
+                       -11:00  -       NUT
 
 # Norfolk
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Norfolk 11:11:52 -      LMT     1901            # Kingston
-                       11:12   -       NMT     1951
-                       11:30   -       NRFT
+                       11:12   -       NMT     1951    # Norfolk Mean Time
+                       11:30   -       NFT             # Norfolk Time
 
 # Palau
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Palau     8:57:56 -       LMT     1901            # Koror
-                       9:00    -       PLT
+                       9:00    -       PWT     # Palau Time
 
 # Palmyra
 # uninhabited since World War II; was probably like Pacific/Kiritmati
@@ -326,18 +326,18 @@ Zone Pacific/Palau        8:57:56 -       LMT     1901            # Koror
 # Papua New Guinea
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Port_Moresby 9:48:40 -    LMT     1880
-                       9:49    -       PMMT    1895
-                       10:00   -       EST
+                       9:48:40 -       PMMT    1895    # Port Moresby Mean Time
+                       10:00   -       PGT             # Papua New Guinea Time
 
 # Pitcairn
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Pitcairn  -8:40:20 -      LMT     1901            # Adamstown
-                       -8:30   -       PIT
+                       -8:30   -       PNT     # Pitcairn Time
 
 # American Samoa
 Zone Pacific/Pago_Pago  12:37:12 -     LMT     1879 Jul  5
                        -11:22:48 -     LMT     1911
-                       -11:30  -       SST     1950
+                       -11:30  -       SAMT    1950            # Samoa Time
                        -11:00  -       NST     1967 Apr        # N=Nome
                        -11:00  -       BST     1983 Nov 30     # B=Bering
                        -11:00  -       SST                     # S=Samoa
@@ -345,52 +345,52 @@ Zone Pacific/Pago_Pago     12:37:12 -     LMT     1879 Jul  5
 # W Samoa
 Zone Pacific/Apia       12:33:04 -     LMT     1879 Jul  5
                        -11:26:56 -     LMT     1911
-                       -11:30  -       SST     1950
-                       -11:00  -       SST
+                       -11:30  -       SAMT    1950            # Samoa Time
+                       -11:00  -       WST                     # W Samoa Time
 
 # Solomon Is
 # excludes Bougainville, for which see Papua New Guinea
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Guadalcanal 10:39:48 -    LMT     1912 Oct        # Honiara
-                       11:00   -       NCST
+                       11:00   -       SBT     # Solomon Is Time
 
 # Tokelau Is
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Fakaofo -11:24:56 -     LMT     1901
-                       -10:00  -       THT
+                       -10:00  -       TKT     # Tokelau Time
 
 # Tonga
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Tongatapu 12:19:20 -      LMT     1901
-                       12:20   -       TMT     1968 Oct
-                       13:00   -       TGT
+                       12:20   -       TOT     1968 Oct # Tonga Time
+                       13:00   -       TOT
 
 # Tuvalu
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Funafuti  11:56:52 -      LMT     1901
-                       12:00   -       NZST
+                       12:00   -       TVT     # Tuvalu Time
 
 # Vanuatu
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Vanuatu 1983    only    -       Sep     25      0:00    1:00    D
-Rule   Vanuatu 1984    1991    -       Mar     Sun>=23 0:00    0       S
-Rule   Vanuatu 1984    only    -       Oct     23      0:00    1:00    D
-Rule   Vanuatu 1985    1990    -       Sep     Sun>=23 0:00    1:00    D
-Rule   Vanuatu 1991    max     -       Sep     lastSun 0:00    1:00    D
-Rule   Vanuatu 1992    max     -       Mar     lastSun 0:00    0       S
+Rule   Vanuatu 1983    only    -       Sep     25      0:00    1:00    S
+Rule   Vanuatu 1984    1991    -       Mar     Sun>=23 0:00    0       -
+Rule   Vanuatu 1984    only    -       Oct     23      0:00    1:00    S
+Rule   Vanuatu 1985    1990    -       Sep     Sun>=23 0:00    1:00    S
+Rule   Vanuatu 1991    max     -       Sep     lastSun 0:00    1:00    S
+Rule   Vanuatu 1992    max     -       Mar     lastSun 0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Efate   11:13:16 -      LMT     1912 Jan 13             # Vila
-                       11:00   -       NCST
+                       11:00   Vanuatu VU%sT   # Vanuatu Time
 
 # Wake
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Wake    11:06:28 -      LMT     1901
-                       12:00   -       NZST
+                       12:00   -       WAKT    # Wake Time
 
 # Wallis and Futuna
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Pacific/Wallis  12:15:20 -      LMT     1901
-                       12:00   -       NZST
+                       12:00   -       WFT     # Wallis & Futuna Time
 
 ###############################################################################
 
@@ -419,34 +419,21 @@ Zone      Pacific/Wallis  12:15:20 -      LMT     1901
 # Corrections are welcome!
 #              std dst
 #              LMT     Local Mean Time
-#        6:30  CCT     Cocos*
-#        7:00  JVT     Java*
 #        8:00  WST WST Western Australia
 #        9:00  JST     Japan
-#        9:00  PLT     Palau*
 #        9:30  CST CST Central Australia
 #       10:00  EST EST Eastern Australia
-#       10:00  GST     Guam*
+#       10:00  GST     Guam
 #       10:30  LHST LHST Lord Howe*
-#       11:00  NCST NCDT New Caledonia*
-#       11:30  NRFT    Norfolk*
 #       12:00  NZST NZDT New Zealand
-#       12:45  CHST CHDT Chatham*
-#       13:00  TGT     Tongatapu*
-#       14:00  KRT     Kiritimati*
-#      -12:00  KJT     Kwajalein (no longer used)*
+#       12:45  CHAST CHADT Chatham*
 #      -11:00  SST     Samoa
-#      -10:40  LIT     Line Is (no longer used)*
-#      -10:00  THT     Tahiti*
 #      -10:00  HST     Hawaii
-#      - 9:30  MQT     Marquesas*
-#      - 9:00  GBT     Gambier*
-#      - 8:30  PIT     Pitcairn*
 #
 # See the `northamerica' file for Hawaii.
 # See the `southamerica' file for Easter I and the Galapagos Is.
 #
-# See the `africa' file for Zone naming conventions.
+# See the `africa' file for time zone naming and abbreviation conventions.
 
 ###############################################################################
 
index ce66e8ab5876271973eccaa890a7e933f92c17b2..73fa55c41024b7011d28815a43766f9736d10778 100644 (file)
@@ -1,10 +1,10 @@
-# @(#)europe   7.38
+# @(#)europe   7.39
 
 # 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> (1995-12-19):
+# From Paul Eggert <eggert@twinsun.com> (1996-09-03):
 # A good source for time zone historical data outside the U.S. is
 # Thomas G. Shanks, The International Atlas (3rd edition),
 # San Diego: ACS Publications, Inc. (1991).
 #
 # I invented the abbreviations marked `*' in the following table;
 # the rest are from earlier versions of this file, or from other sources.
-# The starred Russian names are dubious.  Corrections are welcome!
+# Corrections are welcome!
 #              std dst
 #              LMT     Local Mean Time
-#              LST     Local Star Time (Russian ``mestnoe zvezdnoe vremya'')
 #      -4:00   AST     Atlantic
-#      -3:00   WGT+DST Western Greenland*
-#      -2:00   MGT+DST Middle Greenland*
-#      -1:00   EGT+DST Eastern Greenland*
-#      -1:00   ACT+DST Azores and Canaries*
-#      -1:00   IST IDT Iceland (no longer used)*
+#      -3:00   WGT WGST Western Greenland*
+#      -1:00   EGT EGST Eastern Greenland*
 #       0:00   GMT BST Greenwich, British Summer
-#       0:00   WET+DST Western Europe
-#       1:00   MET+DST Middle Europe
-#       2:00   EET+DST Eastern Europe
-#       3:00   MSK MSD Moscow
-#       3:00   TUR+DST Turkey (no longer used)*
-#       4:00   KSK KSD Kuybyshev (was 3:00)*
-#       5:00   ESK ESD Yekaterinburg (was 4:00) (was SSK, SSD)*
-#       6:00   OSK OSD Omsk (was 5:00)*
-#       6:00   NSK NSD Novosibirsk (was 7:00)
-#       7:00   KRSK KRSD Krasnoyarsk (was 6:00)
-#       8:00   ISK ISD Irkutsk (was 7:00)*
-#       9:00   YSK YSD Yakutsk (was 8:00)*
-#      10:00   VSK VSD Vladivostok (was 9:00)*
-#      11:00   MSK MSD Magadan (was 10:00)*
-#      12:00   PSK PSD Petropavlovsk-Kamchatski (was 11:00)*
-#      13:00   ASK ASD Anadyr (was 12:00)*
-#
-# See the `africa' file for Zone naming conventions.
+#       0:00   GMT IST Greenwich, Irish Summer
+#       0:00   WET WEST Western Europe
+#       1:00   CET CEST Central Europe
+#       2:00   EET EEST Eastern Europe
+#
+# See the `africa' file for time zone naming and abbreviation conventions.
 #
 # A reliable and entertaining source about time zones, especially in Britain,
 # is Derek Howse, Greenwich time and the discovery of the longitude,
 # Oxford University Press (1980).
 
-# From Andrew A. Chernov <ache@astral.msk.su> (November 12, 1993):
-# LST is Local Star Time (``mestnoe zvezdnoe vremya'').
-
 # From Peter Ilieve <peter@memex.co.uk> (December 4, 1994),
 # The original six [EU members]: Belgium, France, (West) Germany, Italy,
 # Luxembourg, the Netherlands.
 # different end date for the UK and Ireland, and this was always allowed
 # in the Directive.
 
+
 ###############################################################################
 
 # United Kingdom
+# The UK and its colonies adopted the Gregorian calendar on 1752-09-14.
 
 # From Peter Ilieve <peter@memex.co.uk> (July 6, 1994):
 #
 # but it met with ridicule and opposition, especially from farming interests.
 # One-hour Summer Time was eventually adopted as a wartime measure in 1916.
 
+# From Paul Eggert (1996-09-03):
+# The OED Supplement says that the English originally said ``Daylight Saving''
+# when they were debating the adoption of DST in 1908; but by 1916 this
+# term appears only in quotes taken from DST's opponents, whereas the
+# proponents (who eventually won the argument) are quoted as using ``Summer''.
+
 # From Arthur David Olson (January 19, 1989):
 #
 # A source at the British Information Office in New York avers that it's
 # Sunday, but in the night of Sunday- Monday so that it will operate from
 # Monday, 2nd April.'
 
+# From Chris Carrier <72157.3334@CompuServe.COM> (1996-06-14):
+# I remember reading in various wartime issues of the London Times the
+# acronym BDST for British Double Summer Time.  Look for the published
+# time of sunrise and sunset in The Times, when BDST was in effect, and
+# if you find a zone reference it will say, "All times B.D.S.T."
+
 # From Peter Ilieve <peter@memex.co.uk> (September 3, 1993):
 #
 # > # Current rules
@@ -719,18 +714,18 @@ Rule      GB-Eire 1939    only    -       Apr     Sun>=16 2:00s   1:00    BST
 # 1939 end to 1947--irregular, and with double summer time
 Rule   GB-Eire 1939    only    -       Nov     19      2:00s   0       GMT
 Rule   GB-Eire 1940    only    -       Feb     25      2:00s   1:00    BST
-Rule   GB-Eire 1941    only    -       May     Sun>=2  1:00s   2:00    DST
+Rule   GB-Eire 1941    only    -       May     Sun>=2  1:00s   2:00    BDST
 Rule   GB-Eire 1941    1943    -       Aug     Sun>=9  1:00s   1:00    BST
-Rule   GB-Eire 1942    1944    -       Apr     Sun>=2  1:00s   2:00    DST
+Rule   GB-Eire 1942    1944    -       Apr     Sun>=2  1:00s   2:00    BDST
 Rule   GB-Eire 1944    only    -       Sep     Sun>=16 1:00s   1:00    BST
 # Double daylight starts on a Monday in 1945--see above.
-Rule   GB-Eire 1945    only    -       Apr      2      1:00s   2:00    DST
+Rule   GB-Eire 1945    only    -       Apr      2      1:00s   2:00    BDST
 Rule   GB-Eire 1945    only    -       Jul     15      1:00s   1:00    BST
 Rule   GB-Eire 1945    only    -       Oct      7      2:00s   0       GMT
 Rule   GB-Eire 1946    only    -       Apr     14      2:00s   1:00    BST
 Rule   GB-Eire 1946    only    -       Oct      6      2:00s   0       GMT
 Rule   GB-Eire 1947    only    -       Mar     16      2:00s   1:00    BST
-Rule   GB-Eire 1947    only    -       Apr     13      1:00s   2:00    DST
+Rule   GB-Eire 1947    only    -       Apr     13      1:00s   2:00    BDST
 Rule   GB-Eire 1947    only    -       Aug     10      1:00s   1:00    BST
 Rule   GB-Eire 1947    only    -       Nov      2      2:00s   0       GMT
 # So much for double saving time.  1948 and 1949, irregular.
@@ -768,15 +763,15 @@ Zone      Europe/London   -0:01:15 -      LMT     1847 Sep 22
                         0:00   EU      GMT/BST
 Zone   Europe/Belfast  -0:23:40 -      LMT     1880 Aug  2
                        -0:25:21 -      DMT     1916 May 21 2:00    # Dublin MT
-                       -0:25:21 1:00   DST     1916 Oct  1 3:00
+                       -0:25:21 1:00   IST     1916 Oct  1 3:00    # Irish Summer Time
                         0:00   GB-Eire %s      1968 Oct 27
                         1:00   -       BST     1971 Oct 31 2:00u
                         0:00   GB-Eire %s      1996
                         0:00   EU      GMT/BST
 Zone   Europe/Dublin   -0:25:21 -      LMT     1880 Aug  2
                        -0:25:21 -      DMT     1916 May 21 2:00    # Dublin MT
-                       -0:25:21 1:00   DST     1916 Oct  1 3:00
-                        0:00   GB-Eire %s      1921 Dec  6
+                       -0:25:21 1:00   IST     1916 Oct  1 3:00
+                        0:00   GB-Eire %s      1921 Dec  6 # independence
                         0:00   GB-Eire GMT/IST 1940 Feb 25 2:00
                         0:00   1:00    IST     1946 Oct  6 2:00
                         0:00   -       GMT     1947 Mar 16 2:00
@@ -795,259 +790,278 @@ Zone    Europe/Dublin   -0:25:21 -      LMT     1880 Aug  2
 # Common Market, etc.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   EU      1977    1980    -       Apr     Sun>=1   1:00u  1:00    " DST"
+Rule   EU      1977    1980    -       Apr     Sun>=1   1:00u  1:00    S
 Rule   EU      1977    only    -       Sep     lastSun  1:00u  0       -
 Rule   EU      1978    only    -       Oct      1       1:00u  0       -
 Rule   EU      1979    1995    -       Sep     lastSun  1:00u  0       -
-Rule   EU      1981    max     -       Mar     lastSun  1:00u  1:00    " DST"
+Rule   EU      1981    max     -       Mar     lastSun  1:00u  1:00    S
 Rule   EU      1996    max     -       Oct     lastSun  1:00u  0       -
 
 # W-Eur differs from EU only in that W-Eur uses standard time.
-Rule   W-Eur   1977    1980    -       Apr     Sun>=1   1:00s  1:00    " DST"
+Rule   W-Eur   1977    1980    -       Apr     Sun>=1   1:00s  1:00    S
 Rule   W-Eur   1977    only    -       Sep     lastSun  1:00s  0       -
 Rule   W-Eur   1978    only    -       Oct      1       1:00s  0       -
 Rule   W-Eur   1979    1995    -       Sep     lastSun  1:00s  0       -
-Rule   W-Eur   1981    max     -       Mar     lastSun  1:00s  1:00    " DST"
+Rule   W-Eur   1981    max     -       Mar     lastSun  1:00s  1:00    S
 Rule   W-Eur   1996    max     -       Oct     lastSun  1:00s  0       -
 
-# Older M-Eur rules are for convenience in the tables.
-# From 1977 on, M-Eur differs from EU only in that M-Eur uses standard time.
-Rule   M-Eur   1916    only    -       Apr     30      23:00   1:00    " DST"
-Rule   M-Eur   1916    only    -       Oct      1       1:00   0       -
-Rule   M-Eur   1917    1918    -       Apr     Mon>=15  2:00s  1:00    " DST"
-Rule   M-Eur   1917    1918    -       Sep     Mon>=15  2:00s  0       -
-Rule   M-Eur   1940    only    -       Apr      1       2:00s  1:00    " DST"
+# Older C-Eur rules are for convenience in the tables.
+# From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time.
+Rule   C-Eur   1916    only    -       Apr     30      23:00   1:00    S
+Rule   C-Eur   1916    only    -       Oct      1       1:00   0       -
+Rule   C-Eur   1917    1918    -       Apr     Mon>=15  2:00s  1:00    S
+Rule   C-Eur   1917    1918    -       Sep     Mon>=15  2:00s  0       -
+Rule   C-Eur   1940    only    -       Apr      1       2:00s  1:00    S
 # Whitman says 1941 DST was only from Feb 25 to Oct 5; go with Shanks.
-Rule   M-Eur   1942    only    -       Nov      2       2:00s  0       -
-Rule   M-Eur   1943    only    -       Mar     29       2:00s  1:00    " DST"
-Rule   M-Eur   1943    only    -       Oct      4       2:00s  0       -
-Rule   M-Eur   1944    only    -       Apr      3       2:00s  1:00    " DST"
+Rule   C-Eur   1942    only    -       Nov      2       2:00s  0       -
+Rule   C-Eur   1943    only    -       Mar     29       2:00s  1:00    S
+Rule   C-Eur   1943    only    -       Oct      4       2:00s  0       -
+Rule   C-Eur   1944    only    -       Apr      3       2:00s  1:00    S
 # Whitman gives 1944 Oct 7; go with Shanks.
-Rule   M-Eur   1944    only    -       Oct      2       2:00s  0       -
-Rule   M-Eur   1977    1980    -       Apr     Sun>=1   2:00s  1:00    " DST"
-Rule   M-Eur   1977    only    -       Sep     lastSun  2:00s  0       -
-Rule   M-Eur   1978    only    -       Oct      1       2:00s  0       -
-Rule   M-Eur   1979    1995    -       Sep     lastSun  2:00s  0       -
-Rule   M-Eur   1981    max     -       Mar     lastSun  2:00s  1:00    " DST"
-Rule   M-Eur   1996    max     -       Oct     lastSun  2:00s  0       -
+Rule   C-Eur   1944    only    -       Oct      2       2:00s  0       -
+Rule   C-Eur   1977    1980    -       Apr     Sun>=1   2:00s  1:00    S
+Rule   C-Eur   1977    only    -       Sep     lastSun  2:00s  0       -
+Rule   C-Eur   1978    only    -       Oct      1       2:00s  0       -
+Rule   C-Eur   1979    1995    -       Sep     lastSun  2:00s  0       -
+Rule   C-Eur   1981    max     -       Mar     lastSun  2:00s  1:00    S
+Rule   C-Eur   1996    max     -       Oct     lastSun  2:00s  0       -
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Russia  1917    only    -       Jul      1      23:00   1:00    " DST"
-Rule   Russia  1917    only    -       Dec     28       0:00   0       -
-Rule   Russia  1918    only    -       May     31      22:00   2:00    " DDST"
-Rule   Russia  1918    only    -       Sep     17       0:00   1:00    " DST"
-Rule   Russia  1919    only    -       May     31      23:00   2:00    " DDST"
-Rule   Russia  1919    only    -       Jul      1       2:00   1:00    D
-Rule   Russia  1919    only    -       Aug     16       0:00   0       K
-Rule   Russia  1921    only    -       Feb     14      23:00   1:00    D
+Rule   Russia  1917    only    -       Jul      1      23:00   1:00    MST     # Moscow Summer Time
+Rule   Russia  1917    only    -       Dec     28       0:00   0       MMT     # Moscow Mean Time
+Rule   Russia  1918    only    -       May     31      22:00   2:00    MDST    # Moscow Double Summer Time
+Rule   Russia  1918    only    -       Sep     17       0:00   1:00    MST
+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 Andrew A. Chernov <ache@astral.msk.su> (November 12, 1993):
 # My sources says, that it is Mar 20, not 21.
-Rule   Russia  1921    only    -       Mar     20      23:00   2:00    DD
-Rule   Russia  1921    only    -       Sep      1       0:00   1:00    D
-Rule   Russia  1921    only    -       Oct      1       0:00   0       K
-Rule   Russia  1981    1984    -       Apr      1       0:00   1:00    D
-Rule   Russia  1981    1983    -       Oct      1       0:00   0       K
-Rule   Russia  1984    max     -       Sep     lastSun  2:00s  0       K
-Rule   Russia  1985    max     -       Mar     lastSun  2:00s  1:00    D
+Rule   Russia  1921    only    -       Mar     20      23:00   2:00    DS
+Rule   Russia  1921    only    -       Sep      1       0:00   1:00    S
+Rule   Russia  1921    only    -       Oct      1       0:00   0       -
+Rule   Russia  1981    1984    -       Apr      1       0:00   1:00    S
+Rule   Russia  1981    1983    -       Oct      1       0:00   0       -
+Rule   Russia  1984    max     -       Sep     lastSun  2:00s  0       -
+Rule   Russia  1985    max     -       Mar     lastSun  2:00s  1:00    S
 
 # These are for backward compatibility with older versions.
 
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-Zone   WET             0:00    EU      WET%s
-Zone   MET             1:00    M-Eur   MET%s
-Zone   EET             2:00    EU      EET%s
+Zone   WET             0:00    EU      WE%sT
+Zone   CET             1:00    C-Eur   CE%sT
+Zone   MET             1:00    C-Eur   ME%sT
+Zone   EET             2:00    EU      EE%sT
 
-# Tom Hoffman says that MET is also known as Central European Time
+# Previous editions of this database used abbreviations like MET DST
+# for Central European Summer Time, but this didn't agree with common usage.
+
+# From Markus Kuhn <mskuhn@unrza3.dialin.rrze.uni-erlangen.de> (1996-07-12):
+# The official German names ... are
+#
+#      Mitteleuropaeische Zeit (MEZ)         = UTC+01:00
+#      Mitteleuropaeische Sommerzeit (MESZ)  = UTC+02:00
+#
+# as defined in the German Time Act (Gesetz ueber die Zeitbestimmung (ZeitG),
+# 1978-07-25, Bundesgesetzblatt, Jahrgang 1978, Teil I, S. 1110-1111)....
+# I wrote ... to the German Federal Physical-Technical Institution
+#
+#      Physikalisch-Technische Bundesanstalt (PTB)
+#      Laboratorium 4.41 "Zeiteinheit"
+#      Postfach 3345
+#      D-38023 Braunschweig
+#      phone: +49 531 592-0
+#
+# ... I received today an answer letter from Dr. Peter Hetzel, head of the PTB
+# department for time and frequency transmission.  He explained that the
+# PTB translates MEZ and MESZ into English as
+#
+#      Central European Time (CET)         = UTC+01:00
+#      Central European Summer Time (CEST) = UTC+02:00
 
-Link   MET     CET
 
 # Albania
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Albania 1940    only    -       Jun     16      0:00    1:00    " DST"
+Rule   Albania 1940    only    -       Jun     16      0:00    1:00    S
 Rule   Albania 1942    only    -       Nov      2      3:00    0       -
-Rule   Albania 1943    only    -       Mar     29      2:00    1:00    " DST"
+Rule   Albania 1943    only    -       Mar     29      2:00    1:00    S
 Rule   Albania 1943    only    -       Apr     10      3:00    0       -
-Rule   Albania 1974    only    -       May      4      0:00    1:00    " DST"
+Rule   Albania 1974    only    -       May      4      0:00    1:00    S
 Rule   Albania 1974    only    -       Oct      2      0:00    0       -
-Rule   Albania 1975    only    -       May      1      0:00    1:00    " DST"
+Rule   Albania 1975    only    -       May      1      0:00    1:00    S
 Rule   Albania 1975    only    -       Oct      2      0:00    0       -
-Rule   Albania 1976    only    -       May      2      0:00    1:00    " DST"
+Rule   Albania 1976    only    -       May      2      0:00    1:00    S
 Rule   Albania 1976    only    -       Oct      3      0:00    0       -
-Rule   Albania 1977    only    -       May      8      0:00    1:00    " DST"
+Rule   Albania 1977    only    -       May      8      0:00    1:00    S
 Rule   Albania 1977    only    -       Oct      2      0:00    0       -
-Rule   Albania 1978    only    -       May      6      0:00    1:00    " DST"
+Rule   Albania 1978    only    -       May      6      0:00    1:00    S
 Rule   Albania 1978    only    -       Oct      1      0:00    0       -
-Rule   Albania 1979    only    -       May      5      0:00    1:00    " DST"
+Rule   Albania 1979    only    -       May      5      0:00    1:00    S
 Rule   Albania 1979    only    -       Sep     30      0:00    0       -
-Rule   Albania 1980    only    -       May      3      0:00    1:00    " DST"
+Rule   Albania 1980    only    -       May      3      0:00    1:00    S
 Rule   Albania 1980    only    -       Oct      4      0:00    0       -
-Rule   Albania 1981    only    -       Apr     26      0:00    1:00    " DST"
+Rule   Albania 1981    only    -       Apr     26      0:00    1:00    S
 Rule   Albania 1981    only    -       Sep     27      0:00    0       -
-Rule   Albania 1982    only    -       May      2      0:00    1:00    " DST"
+Rule   Albania 1982    only    -       May      2      0:00    1:00    S
 Rule   Albania 1982    only    -       Oct      3      0:00    0       -
-Rule   Albania 1983    only    -       Apr     18      0:00    1:00    " DST"
+Rule   Albania 1983    only    -       Apr     18      0:00    1:00    S
 Rule   Albania 1983    only    -       Oct      1      0:00    0       -
-Rule   Albania 1984    only    -       Apr      1      0:00    1:00    " DST"
+Rule   Albania 1984    only    -       Apr      1      0:00    1:00    S
 Rule   Albania 1984    only    -       Oct      1      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Tirane   1:19:20 -       LMT     1914
-                       1:00    -       MET     1940 Jun 16
-                       1:00    Albania MET%s   1985 Mar 31 1:00
-                       1:00    W-Eur   MET%s
-#                      This may change to `EU' soon.
+                       1:00    -       CET     1940 Jun 16
+                       1:00    Albania CE%sT   1985 Mar 31 1:00
+                       1:00    W-Eur   CE%sT
 
 # Andorra
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Andorra  0:06:04 -       LMT     1901
                        0:00    -       WET     1946 Sep 30
-                       1:00    -       MET     1985 Mar 31 2:00
-                       1:00    EU      MET%s
+                       1:00    -       CET     1985 Mar 31 2:00
+                       1:00    EU      CE%sT
 
 # Austria
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Austria 1920    only    -       Apr      5      2:00s   1:00    " DST"
+Rule   Austria 1920    only    -       Apr      5      2:00s   1:00    S
 Rule   Austria 1920    only    -       Sep     13      2:00s   0       -
-Rule   Austria 1945    only    -       Apr      2      2:00s   1:00    " DST"
+Rule   Austria 1945    only    -       Apr      2      2:00s   1:00    S
 Rule   Austria 1945    only    -       Nov     18      2:00s   0       -
-Rule   Austria 1946    only    -       Apr     14      2:00s   1:00    " DST"
+Rule   Austria 1946    only    -       Apr     14      2:00s   1:00    S
 Rule   Austria 1946    1948    -       Oct     Sun>=1  2:00s   0       -
-Rule   Austria 1947    only    -       Apr      6      2:00s   1:00    " DST"
-Rule   Austria 1948    only    -       Apr     18      2:00s   1:00    " DST"
+Rule   Austria 1947    only    -       Apr      6      2:00s   1:00    S
+Rule   Austria 1948    only    -       Apr     18      2:00s   1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Vienna   1:05:20 -       LMT     1893 Apr
-                       1:00    M-Eur   MET%s   1918 Jun 16 3:00
-                       1:00    Austria MET%s   1940 Apr  1 2:00
-                       1:00    M-Eur   MET%s   1945 Apr  2 2:00
-                       1:00    Austria MET%s   1981
-                       1:00    EU      MET%s
+                       1:00    C-Eur   CE%sT   1918 Jun 16 3:00
+                       1:00    Austria CE%sT   1940 Apr  1 2:00
+                       1:00    C-Eur   CE%sT   1945 Apr  2 2:00
+                       1:00    Austria CE%sT   1981
+                       1:00    EU      CE%sT
 
 # Belarus
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Minsk    1:50:16 -       LMT     1880
-                       2:31    Russia  LST%s   1919 Jul 1 2:00
-                       3:00    Russia  MS%s    1922 Oct
+                       2:30:20 Russia  %s      1919 Jul 1 2:00
+                       3:00    Russia  MOS%sT  1922 Oct # Moscow Time
                        2:00    -       EET     1930 Jun 21
-                       3:00    Russia  MS%s    1991 Mar 31 2:00s
-                       2:00    1:00  "EET DST" 1991 Sep 29 2:00s
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       3:00    Russia  MOS%sT  1991 Mar 31 2:00s
+                       2:00    1:00    EEST    1991 Sep 29 2:00s
+                       2:00    C-Eur   EE%sT
 
 # Belgium
 # Whitman and Shanks disagree; go with Shanks, usually.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # From Whitman:
-Rule   Belgium 1919    only    -       Mar      1      23:00s  1:00    " DST"
+Rule   Belgium 1919    only    -       Mar      1      23:00s  1:00    S
 Rule   Belgium 1919    only    -       Oct      4      23:00s  0       -
 # Shanks gives 1920 Feb 14 23:00s; go with Whitman.
-Rule   Belgium 1920    1921    -       Mar     14      23:00s  1:00    " DST"
+Rule   Belgium 1920    1921    -       Mar     14      23:00s  1:00    S
 Rule   Belgium 1920    only    -       Oct     23      23:00s  0       -
 Rule   Belgium 1921    only    -       Oct     25      23:00s  0       -
-Rule   Belgium 1922    only    -       Mar     25      23:00s  1:00    " DST"
+Rule   Belgium 1922    only    -       Mar     25      23:00s  1:00    S
 # Whitman gives 1927 Oct 1 2:00s and 1928 Oct 7 2:00s; go with Shanks.
 Rule   Belgium 1922    1928    -       Oct     Sat>=1  23:00s  0       -
-Rule   Belgium 1923    only    -       Apr     21      23:00s  1:00    " DST"
-Rule   Belgium 1924    only    -       Mar     29      23:00s  1:00    " DST"
-Rule   Belgium 1925    only    -       Apr      4      23:00s  1:00    " DST"
-Rule   Belgium 1926    only    -       Apr     17      23:00s  1:00    " DST"
-Rule   Belgium 1927    only    -       Apr      9      23:00s  1:00    " DST"
-Rule   Belgium 1928    only    -       Apr     14      23:00s  1:00    " DST"
-Rule   Belgium 1929    only    -       Apr     21       2:00s  1:00    " DST"
+Rule   Belgium 1923    only    -       Apr     21      23:00s  1:00    S
+Rule   Belgium 1924    only    -       Mar     29      23:00s  1:00    S
+Rule   Belgium 1925    only    -       Apr      4      23:00s  1:00    S
+Rule   Belgium 1926    only    -       Apr     17      23:00s  1:00    S
+Rule   Belgium 1927    only    -       Apr      9      23:00s  1:00    S
+Rule   Belgium 1928    only    -       Apr     14      23:00s  1:00    S
+Rule   Belgium 1929    only    -       Apr     21       2:00s  1:00    S
 Rule   Belgium 1929    1938    -       Oct     Sun>=2   2:00s  0       -
-Rule   Belgium 1930    only    -       Apr     13       2:00s  1:00    " DST"
-Rule   Belgium 1931    only    -       Apr     19       2:00s  1:00    " DST"
-Rule   Belgium 1932    only    -       Apr     17       2:00s  1:00    " DST"
-Rule   Belgium 1933    only    -       Mar     26       2:00s  1:00    " DST"
-Rule   Belgium 1934    only    -       Apr      8       2:00s  1:00    " DST"
-Rule   Belgium 1935    only    -       Mar     31       2:00s  1:00    " DST"
-Rule   Belgium 1936    only    -       Apr     19       2:00s  1:00    " DST"
+Rule   Belgium 1930    only    -       Apr     13       2:00s  1:00    S
+Rule   Belgium 1931    only    -       Apr     19       2:00s  1:00    S
+Rule   Belgium 1932    only    -       Apr     17       2:00s  1:00    S
+Rule   Belgium 1933    only    -       Mar     26       2:00s  1:00    S
+Rule   Belgium 1934    only    -       Apr      8       2:00s  1:00    S
+Rule   Belgium 1935    only    -       Mar     31       2:00s  1:00    S
+Rule   Belgium 1936    only    -       Apr     19       2:00s  1:00    S
 # Whitman says 1937 Apr 18 2:00s; go with Shanks.
-Rule   Belgium 1937    only    -       Apr      4       2:00s  1:00    " DST"
+Rule   Belgium 1937    only    -       Apr      4       2:00s  1:00    S
 # Whitman says 1938 Apr 10 2:00s; go with Shanks.
-Rule   Belgium 1938    only    -       Mar     27       2:00s  1:00    " DST"
-Rule   Belgium 1939    only    -       Apr     16       2:00s  1:00    " DST"
+Rule   Belgium 1938    only    -       Mar     27       2:00s  1:00    S
+Rule   Belgium 1939    only    -       Apr     16       2:00s  1:00    S
 Rule   Belgium 1939    only    -       Nov     19       2:00s  0       -
-Rule   Belgium 1945    only    -       Apr      2       2:00s  1:00    " DST"
+Rule   Belgium 1945    only    -       Apr      2       2:00s  1:00    S
 Rule   Belgium 1945    only    -       Sep     16       2:00s  0       -
-Rule   Belgium 1946    only    -       May     19       2:00s  1:00    " DST"
+Rule   Belgium 1946    only    -       May     19       2:00s  1:00    S
 Rule   Belgium 1946    only    -       Oct      7       2:00s  0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Brussels 0:17:20 -       LMT     1880
-                       0:17    -       BST     1892 May  1 12:00
+                       0:17:20 -       BMT     1892 May  1 12:00 # Brussels MT
                        0:00    -       WET     1914 Aug  4
-                       1:00    M-Eur   MET%s   1919 Mar  1 23:00
-                       0:00    Belgium WET%s   1940 Feb 24 23:00
-                       1:00    M-Eur   MET%s   1945 Apr  2  2:00
-                       1:00    Belgium MET%s   1977
-                       1:00    EU      MET%s
+                       1:00    C-Eur   CE%sT   1919 Mar  1 23:00
+                       0:00    Belgium WE%sT   1940 Feb 24 23:00
+                       1:00    C-Eur   CE%sT   1945 Apr  2  2:00
+                       1:00    Belgium CE%sT   1977
+                       1:00    EU      CE%sT
 
 # Bosnia and Herzegovina
-# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Sarajevo 1:13:40 -       LMT     1884
-                       1:00    -       MET     1941 Apr 18 23:00
-                       1:00    M-Eur   MET%s   1945 May  8  2:00s
-                       1:00    1:00  "MET DST" 1945 Sep 16  2:00s
-                       1:00    -       MET     1983
-                       1:00    EU      MET%s
+                       1:00    -       CET     1941 Apr 18 23:00
+                       1:00    C-Eur   CE%sT   1945 May  8  2:00s
+                       1:00    1:00    CEST    1945 Sep 16  2:00s
+                       1:00    -       CET     1983
+                       1:00    EU      CE%sT
 
 # Bulgaria
-# Part switched from the Julian to the Gregorian calendar on 1915 Nov 14;
-# the rest switched on 1920 Sep 17.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Bulg    1979    only    -       Mar     31      23:00   1:00    " DST"
+Rule   Bulg    1979    only    -       Mar     31      23:00   1:00    S
 Rule   Bulg    1979    only    -       Oct      1       1:00   0       -
-Rule   Bulg    1980    1982    -       Apr     Sat<=7  23:00   1:00    " DST"
+Rule   Bulg    1980    1982    -       Apr     Sat<=7  23:00   1:00    S
 Rule   Bulg    1980    only    -       Sep     29       1:00   0       -
 Rule   Bulg    1981    only    -       Sep     27       2:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Sofia    1:33:16 -       LMT     1880
-                       1:57    -       TST     1894 Nov 30
+                       1:56:56 -       IMT     1894 Nov 30 # Istanbul MT?
                        2:00    -       EET     1942 Nov  2  3:00
-                       1:00    M-Eur   MET%s   1945 Apr  2  3:00
+                       1:00    C-Eur   CE%sT   1945 Apr  2  3:00
                        2:00    -       EET     1979 Mar 31 23:00
-                       2:00    Bulg    EET%s   1982 Sep 26  2:00
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       2:00    Bulg    EE%sT   1982 Sep 26  2:00
+                       2:00    C-Eur   EE%sT
 
 # Croatia
-# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Zagreb   1:03:52 -       LMT     1884
-                       1:00    -       MET     1941 Apr 18 23:00
-                       1:00    M-Eur   MET%s   1945 May  8  2:00s
-                       1:00    1:00  "MET DST" 1945 Sep 16  2:00s
-                       1:00    -       MET     1983
-                       1:00    EU      MET%s
+                       1:00    -       CET     1941 Apr 18 23:00
+                       1:00    C-Eur   CE%sT   1945 May  8  2:00s
+                       1:00    1:00    CEST    1945 Sep 16  2:00s
+                       1:00    -       CET     1983
+                       1:00    EU      CE%sT
 
 # Czech Republic
+# Gregorian calendar adopted 1584-01-17.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Czech   1945    only    -       Apr      8      2:00s   1:00    " DST"
+Rule   Czech   1945    only    -       Apr      8      2:00s   1:00    S
 Rule   Czech   1945    only    -       Nov     18      2:00s   0       -
-Rule   Czech   1946    only    -       May      6      2:00s   1:00    " DST"
+Rule   Czech   1946    only    -       May      6      2:00s   1:00    S
 Rule   Czech   1946    1949    -       Oct     Sun>=1  2:00s   0       -
-Rule   Czech   1947    only    -       Apr     20      2:00s   1:00    " DST"
-Rule   Czech   1948    only    -       Apr     18      2:00s   1:00    " DST"
-Rule   Czech   1949    only    -       Apr      9      2:00s   1:00    " DST"
+Rule   Czech   1947    only    -       Apr     20      2:00s   1:00    S
+Rule   Czech   1948    only    -       Apr     18      2:00s   1:00    S
+Rule   Czech   1949    only    -       Apr      9      2:00s   1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Prague   0:57:44 -       LMT     1850
-                       0:58    -       PMT     1891 Oct     # Prague Mean Time
-                       1:00    M-Eur   MET%s   1944 Sep 17 2:00s
-                       1:00    Czech   MET%s   1979
-                       1:00    EU      MET%s
+                       0:57:44 -       PMT     1891 Oct     # Prague Mean Time
+                       1:00    C-Eur   CE%sT   1944 Sep 17 2:00s
+                       1:00    Czech   CE%sT   1979
+                       1:00    EU      CE%sT
 
 # Denmark
+# Gregorian calendar adopted 1700-03-01.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Denmark 1916    only    -       May     14      23:00   1:00    " DST"
+Rule   Denmark 1916    only    -       May     14      23:00   1:00    S
 Rule   Denmark 1916    only    -       Sep     30      23:00   0       -
-Rule   Denmark 1940    only    -       May     15       0:00   1:00    " DST"
-Rule   Denmark 1945    only    -       Apr      2       2:00s  1:00    " DST"
+Rule   Denmark 1940    only    -       May     15       0:00   1:00    S
+Rule   Denmark 1945    only    -       Apr      2       2:00s  1:00    S
 Rule   Denmark 1945    only    -       Aug     15       2:00s  0       -
-Rule   Denmark 1946    only    -       May      1       2:00s  1:00    " DST"
+Rule   Denmark 1946    only    -       May      1       2:00s  1:00    S
 Rule   Denmark 1946    only    -       Sep      1       2:00s  0       -
-Rule   Denmark 1947    only    -       May      4       2:00s  1:00    " DST"
+Rule   Denmark 1947    only    -       May      4       2:00s  1:00    S
 Rule   Denmark 1947    only    -       Aug     10       2:00s  0       -
-Rule   Denmark 1948    only    -       May      9       2:00s  1:00    " DST"
+Rule   Denmark 1948    only    -       May      9       2:00s  1:00    S
 Rule   Denmark 1948    only    -       Aug      8       2:00s  0       -
 # Whitman also gives 1949 Apr 9 to 1949 Oct 1, and disagrees in minor ways
 # about many of the above dates; go with Shanks.
@@ -1055,45 +1069,43 @@ Rule    Denmark 1948    only    -       Aug      8       2:00s  0       -
 # For 1894, Shanks says Jan, Whitman Apr; go with Whitman.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Copenhagen  0:50:20 -      LMT     1890
-                        0:50   -       CMT     1894 Apr  # Copenhagen Mean Time
-                        1:00   Denmark MET%s   1942 Nov  2 2:00s
-                        1:00   M-Eur   MET%s   1945 Apr  2 2:00
-                        1:00   Denmark MET%s   1980
-                        1:00   EU      MET%s
+                        0:50:20 -      CMT     1894 Apr  # Copenhagen Mean Time
+                        1:00   Denmark CE%sT   1942 Nov  2 2:00s
+                        1:00   C-Eur   CE%sT   1945 Apr  2 2:00
+                        1:00   Denmark CE%sT   1980
+                        1:00   EU      CE%sT
 Zone Atlantic/Faeroe   -0:27:04 -      LMT     1908 Jan 11     # Torshavn
                         0:00   -       WET     1981
-                        0:00   EU      WET%s
+                        0:00   EU      WE%sT
 Zone America/Scoresbysund -1:29:00 -   LMT     1916 Jul 28
-                       -2:00   -       MGT     1980 Apr  6 2:00
-                       -2:00   M-Eur   MGT%s   1981 Mar 29
-                       -1:00   M-Eur   EGT%s
+                       -2:00   -       CGT     1980 Apr  6 2:00
+                       -2:00   C-Eur   CG%sT   1981 Mar 29
+                       -1:00   C-Eur   EG%sT
 Zone America/Godthab   -3:26:56 -      LMT     1916 Jul 28
                        -3:00   -       WGT     1980 Apr  6 2:00
-                       -3:00   M-Eur   WGT%s
+                       -3:00   C-Eur   WG%sT
 Zone America/Thule     -4:35:08 -      LMT     1916 Jul 28
                        -4:00   -       AST
 
 # Estonia
-# They switched from the Julian to the Gregorian calendar on 1918 Feb 15.
-#
 # From Peter Ilieve <peter@memex.co.uk> (1994-10-15):
 # A relative in Tallinn confirms the accuracy of the data for 1989 onwards
 # [through 1994] and gives the legal authority for it,
 # a regulation of the Government of Estonia, No. 111 of 1989....
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Tallinn  1:39:00 -       LMT     1880
-                       1:39    -       LST     1918 Feb
-                       1:00    M-Eur   MET%s   1919 Jul
-                       1:39    -       LST     1921 May
+                       1:39:00 -       TMT     1918 Feb # Tallinn Mean Time
+                       1:00    C-Eur   CE%sT   1919 Jul
+                       1:39:00 -       TMT     1921 May
                        2:00    -       EET     1940 Aug  6
-                       3:00    -       MSK     1941 Sep 15
-                       1:00    M-Eur   MET%s   1944 Sep 22
-                       3:00    Russia  MS%s    1989 Mar 26 2:00s
-                       2:00    1:00  "EET DST" 1989 Sep 24 2:00s
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       3:00    -       MOST    1941 Sep 15 # Moscow Time
+                       1:00    C-Eur   CE%sT   1944 Sep 22
+                       3:00    Russia  MOS%sT  1989 Mar 26 2:00s
+                       2:00    1:00    EEST    1989 Sep 24 2:00s
+                       2:00    C-Eur   EE%sT
 
 # Finland
+# See Sweden for when the Gregorian calendar was adopted.
 #
 # From Hannu Strang <chs@apu.fi> (25 Sep 1994 06:03:37 UTC):
 # Well, here in Helsinki we're just changing from summer time to regular one,
@@ -1104,61 +1116,64 @@ Zone    Europe/Tallinn  1:39:00 -       LMT     1880
 # Go with Strang instead.
 #
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Finland 1942    only    -       Apr     3       0:00    1:00    " DST"
+Rule   Finland 1942    only    -       Apr     3       0:00    1:00    S
 Rule   Finland 1942    only    -       Oct     3       0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Helsinki 1:39:52 -       LMT     1878 May 31
-                       1:40    -       HMT     1921 May    # Helsinki Mean Time
-                       2:00    Finland EET%s   1981 Mar 29 2:00
-                       2:00    EU      EET%s
+                       1:39:52 -       HMT     1921 May    # Helsinki Mean Time
+                       2:00    Finland EE%sT   1981 Mar 29 2:00
+                       2:00    EU      EE%sT
 
 # France
+# Gregorian calendar adopted 1582-12-20.
+# French Revolutionary calendar used 1792-09-22 - 1805-12-31.
+#
 # 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    " DST"
+Rule   France  1916    only    -       Jun     14      23:00s  1:00    S
 Rule   France  1916    1919    -       Oct     Sun>=1   0:00   0       -
-Rule   France  1917    only    -       Mar     24      23:00s  1:00    " DST"
-Rule   France  1918    only    -       Mar      9      23:00s  1:00    " DST"
-Rule   France  1919    only    -       Mar      1      23:00s  1:00    " DST"
-Rule   France  1920    only    -       Feb     14      23:00s  1:00    " DST"
+Rule   France  1917    only    -       Mar     24      23:00s  1:00    S
+Rule   France  1918    only    -       Mar      9      23:00s  1:00    S
+Rule   France  1919    only    -       Mar      1      23:00s  1:00    S
+Rule   France  1920    only    -       Feb     14      23:00s  1:00    S
 Rule   France  1920    only    -       Oct     23      23:00s  0       -
-Rule   France  1921    only    -       Mar     14      23:00s  1:00    " DST"
+Rule   France  1921    only    -       Mar     14      23:00s  1:00    S
 Rule   France  1921    only    -       Oct     25      23:00s  0       -
-Rule   France  1922    only    -       Mar     25      23:00s  1:00    " DST"
+Rule   France  1922    only    -       Mar     25      23:00s  1:00    S
 Rule   France  1922    1938    -       Oct     Sat>=1  23:00s  0       -
-Rule   France  1923    only    -       May     26      23:00s  1:00    " DST"
-Rule   France  1924    only    -       Mar     29      23:00s  1:00    " DST"
-Rule   France  1925    only    -       Apr      4      23:00s  1:00    " DST"
-Rule   France  1926    only    -       Apr     17      23:00s  1:00    " DST"
-Rule   France  1927    only    -       Apr      9      23:00s  1:00    " DST"
-Rule   France  1928    only    -       Apr     14      23:00s  1:00    " DST"
-Rule   France  1929    only    -       Apr     20      23:00s  1:00    " DST"
-Rule   France  1930    only    -       Apr     12      23:00s  1:00    " DST"
-Rule   France  1931    only    -       Apr     18      23:00s  1:00    " DST"
-Rule   France  1932    only    -       Apr      2      23:00s  1:00    " DST"
-Rule   France  1933    only    -       Mar     25      23:00s  1:00    " DST"
-Rule   France  1934    only    -       Apr      7      23:00s  1:00    " DST"
-Rule   France  1935    only    -       Mar     30      23:00s  1:00    " DST"
-Rule   France  1936    only    -       Apr     18      23:00s  1:00    " DST"
-Rule   France  1937    only    -       Apr      3      23:00s  1:00    " DST"
-Rule   France  1938    only    -       Mar     26      23:00s  1:00    " DST"
-Rule   France  1939    only    -       Apr     15      23:00s  1:00    " DST"
+Rule   France  1923    only    -       May     26      23:00s  1:00    S
+Rule   France  1924    only    -       Mar     29      23:00s  1:00    S
+Rule   France  1925    only    -       Apr      4      23:00s  1:00    S
+Rule   France  1926    only    -       Apr     17      23:00s  1:00    S
+Rule   France  1927    only    -       Apr      9      23:00s  1:00    S
+Rule   France  1928    only    -       Apr     14      23:00s  1:00    S
+Rule   France  1929    only    -       Apr     20      23:00s  1:00    S
+Rule   France  1930    only    -       Apr     12      23:00s  1:00    S
+Rule   France  1931    only    -       Apr     18      23:00s  1:00    S
+Rule   France  1932    only    -       Apr      2      23:00s  1:00    S
+Rule   France  1933    only    -       Mar     25      23:00s  1:00    S
+Rule   France  1934    only    -       Apr      7      23:00s  1:00    S
+Rule   France  1935    only    -       Mar     30      23:00s  1:00    S
+Rule   France  1936    only    -       Apr     18      23:00s  1:00    S
+Rule   France  1937    only    -       Apr      3      23:00s  1:00    S
+Rule   France  1938    only    -       Mar     26      23:00s  1:00    S
+Rule   France  1939    only    -       Apr     15      23:00s  1:00    S
 Rule   France  1939    only    -       Nov     18      23:00s  0       -
-Rule   France  1940    only    -       Feb     25       2:00   1:00    " DST"
+Rule   France  1940    only    -       Feb     25       2:00   1:00    S
 # The French rules for 1941-1944 were not used in Paris,
 # but were used in other places (e.g. Monaco).
-Rule   France  1941    only    -       May      5       0:00   2:00    " DDST"
-Rule   France  1941    only    -       Oct      6       1:00   1:00    " DST"
-Rule   France  1942    only    -       Mar      8       0:00   2:00    " DDST"
-Rule   France  1942    only    -       Nov      2       3:00   1:00    " DST"
-Rule   France  1943    only    -       Mar     29       2:00   2:00    " DDST"
-Rule   France  1943    only    -       Nov      4       3:00   1:00    " DST"
-Rule   France  1944    only    -       Apr      3       2:00   2:00    " DDST"
-Rule   France  1944    only    -       Oct      8       1:00   1:00    " DST"
-Rule   France  1945    only    -       Apr      2       2:00   2:00    " DDST"
+Rule   France  1941    only    -       May      5       0:00   2:00    DS
+Rule   France  1941    only    -       Oct      6       1:00   1:00    S
+Rule   France  1942    only    -       Mar      8       0:00   2:00    DS
+Rule   France  1942    only    -       Nov      2       3:00   1:00    S
+Rule   France  1943    only    -       Mar     29       2:00   2:00    DS
+Rule   France  1943    only    -       Nov      4       3:00   1:00    S
+Rule   France  1944    only    -       Apr      3       2:00   2:00    DS
+Rule   France  1944    only    -       Oct      8       1:00   1:00    S
+Rule   France  1945    only    -       Apr      2       2:00   2:00    DS
 Rule   France  1945    only    -       Sep     16       3:00   0       -
-Rule   France  1976    only    -       Mar     28       2:00s  1:00    " DST"
+Rule   France  1976    only    -       Mar     28       2:00s  1:00    S
 Rule   France  1976    only    -       Sep     lastSun  2:00s  0       -
 # Shanks gives 0:09 for Paris Mean Time, and Whitman gives 0:09:05,
 # but Howse quotes the actual French legislation as saying 0:09:21.
@@ -1167,106 +1182,105 @@ Rule  France  1976    only    -       Sep     lastSun  2:00s  0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Paris    0:09:21 -       LMT     1891 Mar 15 0:01
                        0:09:21 -       PMT     1911 Mar 11    # Paris Mean Time
-                       0:00    France  WET%s   1940 Jun 14
-                       1:00    M-Eur   MET%s   1944 Aug 25
-                       0:00    France  WET%s   1945 Sep 16 3:00
-                       1:00    France  MET%s   1977
-                       1:00    EU      MET%s
+                       0:00    France  WE%sT   1940 Jun 14
+                       1:00    C-Eur   CE%sT   1944 Aug 25
+                       0:00    France  WE%sT   1945 Sep 16 3:00
+                       1:00    France  CE%sT   1977
+                       1:00    EU      CE%sT
 
 # Germany
+
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Germany 1945    only    -       Apr      2      2:00s   1:00    " DST"
-Rule   Germany 1945    only    -       May     24      2:00    2:00    " DDST"
-Rule   Germany 1945    only    -       Sep     24      3:00    1:00    " DST"
+Rule   Germany 1945    only    -       Apr      2      2:00s   1:00    S
+Rule   Germany 1945    only    -       May     24      2:00    2:00    DS
+Rule   Germany 1945    only    -       Sep     24      3:00    1:00    S
 Rule   Germany 1945    only    -       Nov     18      2:00s   0       -
-Rule   Germany 1946    only    -       Apr     14      2:00s   1:00    " DST"
+Rule   Germany 1946    only    -       Apr     14      2:00s   1:00    S
 # Whitman gives 1948 Oct 31; go with Shanks.
 Rule   Germany 1946    1949    -       Oct     Sun>=1  2:00s   0       -
-Rule   Germany 1947    only    -       Apr      6      2:00s   1:00    " DST"
-Rule   Germany 1947    only    -       May     11      2:00s   2:00    " DDST"
-Rule   Germany 1947    only    -       Jun     29      3:00    1:00    " DST"
-Rule   Germany 1948    only    -       Apr     18      2:00s   1:00    " DST"
-Rule   Germany 1949    only    -       Apr     10      2:00s   1:00    " DST"
+Rule   Germany 1947    only    -       Apr      6      2:00s   1:00    S
+Rule   Germany 1947    only    -       May     11      2:00s   2:00    DS
+Rule   Germany 1947    only    -       Jun     29      3:00    1:00    S
+Rule   Germany 1948    only    -       Apr     18      2:00s   1:00    S
+Rule   Germany 1949    only    -       Apr     10      2:00s   1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Berlin   0:53:28 -       LMT     1893 Apr
-                       1:00    M-Eur   MET%s   1945 Apr 2 2:00
-                       1:00    Germany MET%s   1980
-                       1:00    EU      MET%s
+                       1:00    C-Eur   CE%sT   1945 Apr 2 2:00
+                       1:00    Germany CE%sT   1980
+                       1:00    EU      CE%sT
 
 # Gibraltar
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Gibraltar  -0:21:24 -      LMT     1880 Aug  2
                        0:00    GB-Eire %s      1957 Apr 14 2:00
-                       1:00    -       MET     1982
-                       1:00    EU      MET%s
+                       1:00    -       CET     1982
+                       1:00    EU      CE%sT
 
 # Greece
-# They adopted the Julian calendar in 1846.
-# Part switched to the Gregorian calendar on 1916 Jul 28.
-# The rest switched on 1920 Mar 18.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks.
-Rule   Greece  1932    only    -       Jul      7      0:00    1:00    " DST"
+Rule   Greece  1932    only    -       Jul      7      0:00    1:00    S
 Rule   Greece  1932    only    -       Sep      1      0:00    0       -
 # Whitman gives 1941 Apr 25 - ?; go with Shanks.
-Rule   Greece  1941    only    -       Apr      7      0:00    1:00    " DST"
+Rule   Greece  1941    only    -       Apr      7      0:00    1:00    S
 # Whitman gives 1942 Feb 2 - ?; go with Shanks.
 Rule   Greece  1942    only    -       Nov      2      3:00    0       -
-Rule   Greece  1943    only    -       Mar     30      0:00    1:00    " DST"
+Rule   Greece  1943    only    -       Mar     30      0:00    1:00    S
 Rule   Greece  1943    only    -       Oct      4      0:00    0       -
 # Whitman gives 1944 Oct 3 - Oct 31; go with Shanks.
-Rule   Greece  1952    only    -       Jul      1      0:00    1:00    " DST"
+Rule   Greece  1952    only    -       Jul      1      0:00    1:00    S
 Rule   Greece  1952    only    -       Nov      2      0:00    0       -
-Rule   Greece  1975    only    -       Apr     12      0:00s   1:00    " DST"
+Rule   Greece  1975    only    -       Apr     12      0:00s   1:00    S
 Rule   Greece  1975    only    -       Nov     26      0:00s   0       -
-Rule   Greece  1976    only    -       Apr     11      2:00s   1:00    " DST"
+Rule   Greece  1976    only    -       Apr     11      2:00s   1:00    S
 Rule   Greece  1976    only    -       Oct     10      2:00s   0       -
-Rule   Greece  1977    1978    -       Apr     Sun>=1  2:00s   1:00    " DST"
+Rule   Greece  1977    1978    -       Apr     Sun>=1  2:00s   1:00    S
 Rule   Greece  1977    only    -       Sep     26      2:00s   0       -
 Rule   Greece  1978    only    -       Sep     24      4:00    0       -
-Rule   Greece  1979    only    -       Apr      1      9:00    1:00    " DST"
+Rule   Greece  1979    only    -       Apr      1      9:00    1:00    S
 Rule   Greece  1979    only    -       Sep     29      2:00    0       -
-Rule   Greece  1980    only    -       Apr      1      0:00    1:00    " DST"
+Rule   Greece  1980    only    -       Apr      1      0:00    1:00    S
 Rule   Greece  1980    only    -       Sep     28      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Athens   1:34:52 -       LMT     1895 Sep 14
-                       1:35    -       AMT     1916 Jul 28 0:01     # Athens MT
-                       2:00    Greece  EET%s   1941 Apr 30
-                       1:00    Greece  MET%s   1944 Apr  4
-                       2:00    Greece  EET%s   1981
-                       # Shanks says they switched to M-Eur in 1981;
+                       1:34:52 -       AMT     1916 Jul 28 0:01     # Athens MT
+                       2:00    Greece  EE%sT   1941 Apr 30
+                       1:00    Greece  CE%sT   1944 Apr  4
+                       2:00    Greece  EE%sT   1981
+                       # Shanks says they switched to C-Eur in 1981;
                        # go with EU intead, since Greece joined it on Jan 1.
-                       2:00    EU      EET%s
+                       2:00    EU      EE%sT
 
 # Hungary
+# Gregorian calendar adopted 1587-11-01.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Hungary 1918    only    -       Apr      1       3:00   1:00    " DST"
+Rule   Hungary 1918    only    -       Apr      1       3:00   1:00    S
 Rule   Hungary 1918    only    -       Sep     29       3:00   0       -
-Rule   Hungary 1919    only    -       Apr     15       3:00   1:00    " DST"
+Rule   Hungary 1919    only    -       Apr     15       3:00   1:00    S
 Rule   Hungary 1919    only    -       Sep     15       3:00   0       -
-Rule   Hungary 1920    only    -       Apr      5       3:00   1:00    " DST"
+Rule   Hungary 1920    only    -       Apr      5       3:00   1:00    S
 Rule   Hungary 1920    only    -       Sep     30       3:00   0       -
-Rule   Hungary 1945    only    -       May      1      23:00   1:00    " DST"
+Rule   Hungary 1945    only    -       May      1      23:00   1:00    S
 Rule   Hungary 1945    only    -       Nov      3       0:00   0       -
-Rule   Hungary 1946    only    -       Mar     31       2:00s  1:00    " DST"
+Rule   Hungary 1946    only    -       Mar     31       2:00s  1:00    S
 Rule   Hungary 1946    1949    -       Oct     Sun>=1   2:00s  0       -
-Rule   Hungary 1947    1949    -       Apr     Sun>=4   2:00s  1:00    " DST"
-Rule   Hungary 1950    only    -       Apr     17       2:00s  1:00    " DST"
+Rule   Hungary 1947    1949    -       Apr     Sun>=4   2:00s  1:00    S
+Rule   Hungary 1950    only    -       Apr     17       2:00s  1:00    S
 Rule   Hungary 1950    only    -       Oct     23       2:00s  0       -
-Rule   Hungary 1954    1955    -       May     23       0:00   1:00    " DST"
+Rule   Hungary 1954    1955    -       May     23       0:00   1:00    S
 Rule   Hungary 1954    1955    -       Oct      3       0:00   0       -
-Rule   Hungary 1956    only    -       Jun     Sun>=1   0:00   1:00    " DST"
+Rule   Hungary 1956    only    -       Jun     Sun>=1   0:00   1:00    S
 Rule   Hungary 1956    only    -       Sep     lastSun  0:00   0       -
-Rule   Hungary 1957    only    -       Jun     Sun>=1   1:00   1:00    " DST"
+Rule   Hungary 1957    only    -       Jun     Sun>=1   1:00   1:00    S
 Rule   Hungary 1957    only    -       Sep     lastSun  3:00   0       -
-Rule   Hungary 1980    only    -       Apr      6       1:00   1:00    " DST"
+Rule   Hungary 1980    only    -       Apr      6       1:00   1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Budapest 1:16:20 -       LMT     1890 Oct
-                       1:00    M-Eur   MET%s   1918
-                       1:00    Hungary MET%s   1941 Apr  6  2:00
-                       1:00    M-Eur   MET%s   1945 May  1 23:00
-                       1:00    Hungary MET%s   1980 Sep 28  2:00s
-                       1:00    EU      MET%s
+                       1:00    C-Eur   CE%sT   1918
+                       1:00    Hungary CE%sT   1941 Apr  6  2:00
+                       1:00    C-Eur   CE%sT   1945 May  1 23:00
+                       1:00    Hungary CE%sT   1980 Sep 28  2:00s
+                       1:00    EU      CE%sT
 
 # Iceland
 #
@@ -1295,8 +1309,7 @@ Zone      Europe/Budapest 1:16:20 -       LMT     1890 Oct
 #      (old style), or on St. Luke's day, if a Saturday.
 # St. Luke's day ought to be traceable from ecclesiastical sources. "old style"
 # might be a reference to the Julian calendar as opposed to Gregorian, or it
-# might mean something else (???). The Gregorian calendar was not introduced
-# in Iceland until 1700.
+# might mean something else (???).
 #
 # From Paul Eggert <eggert@twinsun.com> (December 9, 1993):
 # The Iceland Almanak, Shanks and Whitman disagree on many points.
@@ -1304,37 +1317,39 @@ Zone    Europe/Budapest 1:16:20 -       LMT     1890 Oct
 # Reykavik was -1:28 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    D
-Rule   Iceland 1917    only    -       Oct     21       1:00   0       S
-Rule   Iceland 1918    only    -       Nov     16       1:00   0       S
-Rule   Iceland 1939    only    -       Apr     29      23:00   1:00    D
-Rule   Iceland 1939    only    -       Nov     29       2:00   0       S
-Rule   Iceland 1940    only    -       Feb     25       2:00   1:00    D
-Rule   Iceland 1940    only    -       Nov      3       2:00   0       S
-Rule   Iceland 1941    only    -       Mar      2       1:00s  1:00    D
-Rule   Iceland 1941    only    -       Nov      2       1:00s  0       S
-Rule   Iceland 1942    only    -       Mar      8       1:00s  1:00    D
-Rule   Iceland 1942    only    -       Oct     25       1:00s  0       S
+Rule   Iceland 1917    1918    -       Feb     19      23:00   1:00    S
+Rule   Iceland 1917    only    -       Oct     21       1:00   0       -
+Rule   Iceland 1918    only    -       Nov     16       1:00   0       -
+Rule   Iceland 1939    only    -       Apr     29      23:00   1:00    S
+Rule   Iceland 1939    only    -       Nov     29       2:00   0       -
+Rule   Iceland 1940    only    -       Feb     25       2:00   1:00    S
+Rule   Iceland 1940    only    -       Nov      3       2:00   0       -
+Rule   Iceland 1941    only    -       Mar      2       1:00s  1:00    S
+Rule   Iceland 1941    only    -       Nov      2       1:00s  0       -
+Rule   Iceland 1942    only    -       Mar      8       1:00s  1:00    S
+Rule   Iceland 1942    only    -       Oct     25       1:00s  0       -
 # 1943-1946 - first Sunday in March until first Sunday in winter
-Rule   Iceland 1943    1946    -       Mar     Sun>=1   1:00s  1:00    D
-Rule   Iceland 1943    1948    -       Oct     Sun>=22  1:00s  0       S
+Rule   Iceland 1943    1946    -       Mar     Sun>=1   1:00s  1:00    S
+Rule   Iceland 1943    1948    -       Oct     Sun>=22  1:00s  0       -
 # 1947-1967 - first Sunday in April until first Sunday in winter
-Rule   Iceland 1947    1967    -       Apr     Sun>=1   1:00s  1:00    D
+Rule   Iceland 1947    1967    -       Apr     Sun>=1   1:00s  1:00    S
 # 1949 Oct transition delayed by 1 week
-Rule   Iceland 1949    only    -       Oct     30       1:00s  0       S
-Rule   Iceland 1950    1966    -       Oct     Sun>=22  1:00s  0       S
-Rule   Iceland 1967    only    -       Oct     29       1:00s  0       S
+Rule   Iceland 1949    only    -       Oct     30       1:00s  0       -
+Rule   Iceland 1950    1966    -       Oct     Sun>=22  1:00s  0       -
+Rule   Iceland 1967    only    -       Oct     29       1:00s  0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Atlantic/Reykjavik        -1:27:24 -      LMT     1837
-                       -1:28   -       RMT     1908       # Reykjavik Mean Time
-                       -1:00   Iceland I%sT    1968 Apr 7 1:00s
+                       -1:27:48 -      RMT     1908 # Reykjavik Mean Time?
+                       -1:00   Iceland IS%sT   1968 Apr 7 1:00s
                         0:00   -       GMT
 
 # Italy
+# Gregorian calendar adopted 1582-10-15.
+#
 # From Paul Eggert (1996-05-06):
 # For Italian DST we have three sources: Shanks, Whitman, and F. Pollastri
-# <URL:http://pisolo.cstv.to.cnr.it/toi/uk/ienitlt.html> (see `FP' below),
-# taken from a publication of the Italian National Electrotechnical Institute.
+# <URL:http://pisolo.cstv.to.cnr.it/toi/uk/ienitlt.html> (1996-03-14) (`FP'
+# below), taken from an Italian National Electrotechnical Institute publication.
 # When the three sources disagree, guess who's right, as follows:
 #
 # year FP      Shanks (S)      Whitman (W)     Go with:
@@ -1348,186 +1363,180 @@ Zone Atlantic/Reykjavik       -1:27:24 -      LMT     1837
 #      10-04   10-04 24:00     10-04 01:00     FP; guess 24:00s
 # 1920 03-20   03-20 24:00     03-20 00:00     FP & S
 #      09-18   09-18 24:00     10-01 01:00     FP; guess 24:00s
-# 1944 04-02   04-03 02:00                     S (see M-Eur)
+# 1944 04-02   04-03 02:00                     S (see C-Eur)
 #      09-16   10-02 03:00                     FP; guess 24:00s
 # 1945 09-14   09-16 24:00                     FP; guess 24:00s
 # 1970 05-21   05-31 00:00                     S
 #      09-20   09-27 00:00                     S
 #
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Italy   1916    only    -       Jun      3      0:00s   1:00    " DST"
+Rule   Italy   1916    only    -       Jun      3      0:00s   1:00    S
 Rule   Italy   1916    only    -       Oct      1      0:00s   0       -
-Rule   Italy   1917    only    -       Apr      1      0:00s   1:00    " DST"
+Rule   Italy   1917    only    -       Apr      1      0:00s   1:00    S
 Rule   Italy   1917    only    -       Sep     30      0:00s   0       -
-Rule   Italy   1918    only    -       Mar     10      0:00s   1:00    " DST"
+Rule   Italy   1918    only    -       Mar     10      0:00s   1:00    S
 Rule   Italy   1918    1919    -       Oct     Sun>=1  0:00s   0       -
-Rule   Italy   1919    only    -       Mar      2      0:00s   1:00    " DST"
-Rule   Italy   1920    only    -       Mar     21      0:00s   1:00    " DST"
+Rule   Italy   1919    only    -       Mar      2      0:00s   1:00    S
+Rule   Italy   1920    only    -       Mar     21      0:00s   1:00    S
 Rule   Italy   1920    only    -       Sep     19      0:00s   0       -
-Rule   Italy   1940    only    -       Jun     15      0:00s   1:00    " DST"
+Rule   Italy   1940    only    -       Jun     15      0:00s   1:00    S
 Rule   Italy   1944    only    -       Sep     17      0:00s   0       -
-Rule   Italy   1945    only    -       Apr      2      2:00    1:00    " DST"
+Rule   Italy   1945    only    -       Apr      2      2:00    1:00    S
 Rule   Italy   1945    only    -       Sep     15      0:00s   0       -
-Rule   Italy   1946    only    -       Mar     17      2:00s   1:00    " DST"
+Rule   Italy   1946    only    -       Mar     17      2:00s   1:00    S
 Rule   Italy   1946    only    -       Oct      6      2:00s   0       -
-Rule   Italy   1947    only    -       Mar     16      0:00s   1:00    " DST"
+Rule   Italy   1947    only    -       Mar     16      0:00s   1:00    S
 Rule   Italy   1947    only    -       Oct      5      0:00s   0       -
-Rule   Italy   1948    only    -       Feb     29      2:00s   1:00    " DST"
+Rule   Italy   1948    only    -       Feb     29      2:00s   1:00    S
 Rule   Italy   1948    only    -       Oct      3      2:00s   0       -
-Rule   Italy   1966    1968    -       May     Sun>=22 0:00    1:00    " DST"
+Rule   Italy   1966    1968    -       May     Sun>=22 0:00    1:00    S
 Rule   Italy   1966    1969    -       Sep     Sun>=22 0:00    0       -
-Rule   Italy   1969    only    -       Jun      1      0:00    1:00    " DST"
-Rule   Italy   1970    only    -       May     31      0:00    1:00    " DST"
+Rule   Italy   1969    only    -       Jun      1      0:00    1:00    S
+Rule   Italy   1970    only    -       May     31      0:00    1:00    S
 Rule   Italy   1970    only    -       Sep     lastSun 0:00    0       -
-Rule   Italy   1971    1972    -       May     Sun>=22 0:00    1:00    " DST"
+Rule   Italy   1971    1972    -       May     Sun>=22 0:00    1:00    S
 Rule   Italy   1971    only    -       Sep     lastSun 1:00    0       -
 Rule   Italy   1972    only    -       Oct      1      0:00    0       -
-Rule   Italy   1973    only    -       Jun      3      0:00    1:00    " DST"
+Rule   Italy   1973    only    -       Jun      3      0:00    1:00    S
 Rule   Italy   1973    1974    -       Sep     lastSun 0:00    0       -
-Rule   Italy   1974    only    -       May     26      0:00    1:00    " DST"
-Rule   Italy   1975    only    -       Jun      1      0:00s   1:00    " DST"
+Rule   Italy   1974    only    -       May     26      0:00    1:00    S
+Rule   Italy   1975    only    -       Jun      1      0:00s   1:00    S
 Rule   Italy   1975    1977    -       Sep     lastSun 0:00s   0       -
-Rule   Italy   1976    only    -       May     30      0:00s   1:00    " DST"
-Rule   Italy   1977    1979    -       May     Sun>=22 0:00s   1:00    " DST"
+Rule   Italy   1976    only    -       May     30      0:00s   1:00    S
+Rule   Italy   1977    1979    -       May     Sun>=22 0:00s   1:00    S
 Rule   Italy   1978    only    -       Oct      1      0:00s   0       -
 Rule   Italy   1979    only    -       Sep     30      0:00s   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Rome     0:49:56 -       LMT     1866 Sep 22
-                       0:50    -       RMT     1893 Nov        # Rome Mean Time
-                       1:00    Italy   MET%s   1942 Nov  2 2:00s
-                       1:00    M-Eur   MET%s   1944 Jul
-                       1:00    Italy   MET%s   1980
-                       1:00    EU      MET%s
+                       0:49:56 -       RMT     1893 Nov        # Rome Mean Time
+                       1:00    Italy   CE%sT   1942 Nov  2 2:00s
+                       1:00    C-Eur   CE%sT   1944 Jul
+                       1:00    Italy   CE%sT   1980
+                       1:00    EU      CE%sT
 
 Link   Europe/Rome     Europe/Vatican
 Link   Europe/Rome     Europe/San_Marino
 
 # Latvia
-# They switched from the Julian to the Gregorian calendar on 1918 Feb 15.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Riga     1:36:24 -       LMT     1880
-                       1:36    -       LST     1918 Apr 15 2:00
-                       1:36    M-Eur   LST%s   1919 Apr  1 2:00
-                       1:36    1:00  "LST DST" 1919 May 22 3:00
-                       1:36    -       LST     1926 May 11
+                       1:36:24 -       RMT     1918 Apr 15 2:00 #Riga Mean Time
+                       1:36:24 1:00    LST     1918 Sep 16 3:00 #Latvian Summer
+                       1:36:24 -       RMT     1919 Apr  1 2:00
+                       1:36:24 1:00    LST     1919 May 22 3:00
+                       1:36:24 -       RMT     1926 May 11
                        2:00    -       EET     1940 Aug  5
-                       3:00    -       MSK     1941 Jul
-                       1:00    M-Eur   MET%s   1944 Aug  8
-                       3:00    Russia  MS%s    1991 Mar 31 2:00s
-                       2:00    1:00  "EET DST" 1991 Sep 29 2:00s
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       3:00    -       MOST    1941 Jul # Moscow Time
+                       1:00    C-Eur   CE%sT   1944 Aug  8
+                       3:00    Russia  MOS%sT  1991 Mar 31 2:00s
+                       2:00    1:00    EEST    1991 Sep 29 2:00s
+                       2:00    C-Eur   EE%sT
 
 # Liechtenstein
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Vaduz    0:38:04 -       LMT     1894 Jun
-                       1:00    -       MET     1981
-                       1:00    EU      MET%s
+                       1:00    -       CET     1981
+                       1:00    EU      CE%sT
 
 # Lithuania
-# They switched from the Julian to the Gregorian calendar on 1918 Feb 15.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Vilnius  1:41:16 -       LMT     1880
-                       1:24    -       LST     1917            # Kaunas
-                       1:36    -       LST     1919 Oct 10
-                       1:00    -       MET     1920 Jul 12
+                       1:24:00 -       WMT     1917        # Warsaw Mean Time
+                       1:35:36 -       KMT     1919 Oct 10 # Kaunas Mean Time
+                       1:00    -       CET     1920 Jul 12
                        2:00    -       EET     1920 Oct  9
-                       1:00    -       MET     1940 Aug  3
-                       3:00    -       MSK     1941 Jun 24
-                       1:00    M-Eur   MET%s   1944 Aug
-                       3:00    Russia  MS%s    1991 Mar 31 2:00s
-                       2:00    1:00  "EET DST" 1991 Sep 29 2:00s
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       1:00    -       CET     1940 Aug  3
+                       3:00    -       MOST    1941 Jun 24 # Moscow Time
+                       1:00    C-Eur   CE%sT   1944 Aug
+                       3:00    Russia  MOS%sT  1991 Mar 31 2:00s
+                       2:00    1:00    EEST    1991 Sep 29 2:00s
+                       2:00    C-Eur   EE%sT
 
 # Luxembourg
 # Whitman disagrees with most of these dates in minor ways; go with Shanks.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Lux     1916    only    -       May     14      23:00   1:00    " DST"
+Rule   Lux     1916    only    -       May     14      23:00   1:00    S
 Rule   Lux     1916    only    -       Oct      1       1:00   0       -
-Rule   Lux     1917    only    -       Apr     28      23:00   1:00    " DST"
+Rule   Lux     1917    only    -       Apr     28      23:00   1:00    S
 Rule   Lux     1917    only    -       Sep     17       1:00   0       -
-Rule   Lux     1918    only    -       Apr     Mon>=15  2:00s  1:00    " DST"
+Rule   Lux     1918    only    -       Apr     Mon>=15  2:00s  1:00    S
 Rule   Lux     1918    only    -       Sep     Mon>=15  2:00s  0       -
-Rule   Lux     1919    only    -       Mar      1      23:00   1:00    " DST"
+Rule   Lux     1919    only    -       Mar      1      23:00   1:00    S
 Rule   Lux     1919    only    -       Oct      5       3:00   0       -
-Rule   Lux     1920    only    -       Feb     14      23:00   1:00    " DST"
+Rule   Lux     1920    only    -       Feb     14      23:00   1:00    S
 Rule   Lux     1920    only    -       Oct     24       2:00   0       -
-Rule   Lux     1921    only    -       Mar     14      23:00   1:00    " DST"
+Rule   Lux     1921    only    -       Mar     14      23:00   1:00    S
 Rule   Lux     1921    only    -       Oct     26       2:00   0       -
-Rule   Lux     1922    only    -       Mar     25      23:00   1:00    " DST"
+Rule   Lux     1922    only    -       Mar     25      23:00   1:00    S
 Rule   Lux     1922    only    -       Oct     Sun>=2   1:00   0       -
-Rule   Lux     1923    only    -       Apr     21      23:00   1:00    " DST"
+Rule   Lux     1923    only    -       Apr     21      23:00   1:00    S
 Rule   Lux     1923    only    -       Oct     Sun>=2   2:00   0       -
-Rule   Lux     1924    only    -       Mar     29      23:00   1:00    " DST"
+Rule   Lux     1924    only    -       Mar     29      23:00   1:00    S
 Rule   Lux     1924    1928    -       Oct     Sun>=2   1:00   0       -
-Rule   Lux     1925    only    -       Apr      5      23:00   1:00    " DST"
-Rule   Lux     1926    only    -       Apr     17      23:00   1:00    " DST"
-Rule   Lux     1927    only    -       Apr      9      23:00   1:00    " DST"
-Rule   Lux     1928    only    -       Apr     14      23:00   1:00    " DST"
-Rule   Lux     1929    only    -       Apr     20      23:00   1:00    " DST"
+Rule   Lux     1925    only    -       Apr      5      23:00   1:00    S
+Rule   Lux     1926    only    -       Apr     17      23:00   1:00    S
+Rule   Lux     1927    only    -       Apr      9      23:00   1:00    S
+Rule   Lux     1928    only    -       Apr     14      23:00   1:00    S
+Rule   Lux     1929    only    -       Apr     20      23:00   1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Luxembourg 0:24:36 -       LMT     1904 Jun
-                       1:00    Lux     MET%s   1918 Nov 25
-                       0:00    Lux     WET%s   1929 Oct  6 2:00s
-                       0:00    Belgium WET%s   1940 May 14 3:00
-                       1:00    M-Eur   WET%s   1944 Sep 18 3:00
-                       1:00    Belgium MET%s   1977
-                       1:00    EU      MET%s
+                       1:00    Lux     CE%sT   1918 Nov 25
+                       0:00    Lux     WE%sT   1929 Oct  6 2:00s
+                       0:00    Belgium WE%sT   1940 May 14 3:00
+                       1:00    C-Eur   WE%sT   1944 Sep 18 3:00
+                       1:00    Belgium CE%sT   1977
+                       1:00    EU      CE%sT
 
 # Macedonia
-# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Skopje   1:25:44 -       LMT     1884
-                       1:00    -       MET     1941 Apr 18 23:00
-                       1:00    M-Eur   MET%s   1945 May  8  2:00s
-                       1:00    1:00  "MET DST" 1945 Sep 16  2:00s
-                       1:00    -       MET     1983
-                       1:00    EU      MET%s
+                       1:00    -       CET     1941 Apr 18 23:00
+                       1:00    C-Eur   CE%sT   1945 May  8  2:00s
+                       1:00    1:00    CEST    1945 Sep 16  2:00s
+                       1:00    -       CET     1983
+                       1:00    EU      CE%sT
 
 # Malta
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Malta   1973    only    -       Mar     31      0:00s   1:00    " DST"
+Rule   Malta   1973    only    -       Mar     31      0:00s   1:00    S
 Rule   Malta   1973    only    -       Sep     29      0:00s   0       -
-Rule   Malta   1974    only    -       Apr     21      0:00s   1:00    " DST"
+Rule   Malta   1974    only    -       Apr     21      0:00s   1:00    S
 Rule   Malta   1974    only    -       Sep     16      0:00s   0       -
-Rule   Malta   1975    1979    -       Apr     Sun>=15 2:00    1:00    " DST"
+Rule   Malta   1975    1979    -       Apr     Sun>=15 2:00    1:00    S
 Rule   Malta   1975    1980    -       Sep     Sun>=15 2:00    0       -
-Rule   Malta   1980    only    -       Mar     31      2:00    1:00    " DST"
+Rule   Malta   1980    only    -       Mar     31      2:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Malta    0:58:04 -       LMT     1893 Nov  2     # Valletta
-                       1:00    Italy   MET%s   1942 Nov  2 2:00s
-                       1:00    M-Eur   MET%s   1945 Apr  2 2:00s
-                       1:00    Italy   MET%s   1973 Mar 31
-                       1:00    Malta   MET%s   1981
-                       1:00    EU      MET%s
+                       1:00    Italy   CE%sT   1942 Nov  2 2:00s
+                       1:00    C-Eur   CE%sT   1945 Apr  2 2:00s
+                       1:00    Italy   CE%sT   1973 Mar 31
+                       1:00    Malta   CE%sT   1981
+                       1:00    EU      CE%sT
 
 # Moldova
-# They switched from the Julian to the Gregorian calendar on 1919 Mar 18.
 # 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  MS%s    1991 Mar 31 2:00s
-                       2:00    1:00  "EET DST" 1991 Sep 29 2:00s
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       3:00    Russia  MOS%sT  1991 Mar 31 2:00s # Moscow Time
+                       2:00    1:00    EEST    1991 Sep 29 2:00s
+                       2:00    C-Eur   EE%sT
 
 # Monaco
 # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Monaco   0:29:32 -       LMT     1891 Mar 15
                        0:09:21 -       PMT     1911 Mar 11    # Paris Mean Time
-                       0:00    France  WET%s   1945 Sep 16 3:00
-                       1:00    France  MET%s   1977
-                       1:00    EU      MET%s
+                       0:00    France  WE%sT   1945 Sep 16 3:00
+                       1:00    France  CE%sT   1977
+                       1:00    EU      CE%sT
 
 # Netherlands
 # 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.
-Rule   Neth    1916    only    -       May      1      2:00s   1:00    NST
-Rule   Neth    1916    only    -       Oct      2      2:00s   0       AMT
+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
 Rule   Neth    1917    only    -       Sep     17      2:00s   0       AMT
 # Whitman gives 1918 Apr 14, 1918 Oct 31, and 1921 Sep 28; go with Shanks.
@@ -1535,7 +1544,7 @@ Rule      Neth    1918    1921    -       Apr     Mon>=1  2:00s   1:00    NST
 Rule   Neth    1918    1921    -       Sep     Mon>=24 2:00s   0       AMT
 Rule   Neth    1922    only    -       Mar     26      2:00s   1:00    NST
 # Whitman gives 1939 Oct 1; go with Shanks.
-Rule   Neth    1922    1939    -       Oct     Sun>=2  2:00s   0       AMT
+Rule   Neth    1922    1936    -       Oct     Sun>=2  2:00s   0       AMT
 Rule   Neth    1923    only    -       Jun      1      2:00s   1:00    NST
 Rule   Neth    1924    only    -       Mar     30      2:00s   1:00    NST
 # Whitman gives 1925 Apr 5; go with Shanks.
@@ -1545,363 +1554,399 @@ Rule  Neth    1926    1931    -       May     15      2:00s   1:00    NST
 Rule   Neth    1932    only    -       May     22      2:00s   1:00    NST
 Rule   Neth    1933    1936    -       May     15      2:00s   1:00    NST
 Rule   Neth    1937    only    -       May     22      2:00s   1:00    NST
+Rule   Neth    1937    only    -       Jul      1      0:00    1:00    S
+Rule   Neth    1937    1939    -       Oct     Sun>=2  2:00s   0       -
 # Whitman gives 1939 Apr 15 and 1940 Apr 19; go with Shanks.
-Rule   Neth    1938    1939    -       May     15      2:00s   1:00    NST
-Rule   Neth    1945    only    -       Apr      2      2:00s   1:00    " DST"
+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
-                       0:20    Neth    %s      1940 May 16 0:40
-                       1:00    M-Eur   MET%s   1945 Apr  2 2:00
-                       1:00    Neth    MET%s   1977
-                       1:00    EU      MET%s
+                       0:20    Neth    NE%sT   1940 May 16 0:40
+                       1:00    C-Eur   CE%sT   1945 Apr  2 2:00
+                       1:00    Neth    CE%sT   1977
+                       1:00    EU      CE%sT
 
 # Norway
+# Gregorian calendar adopted 1700-03-01.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # Whitman gives 1916 May 21 - 1916 Oct 21; go with Shanks.
-Rule   Norway  1916    only    -       May     22      1:00    1:00    " DST"
+Rule   Norway  1916    only    -       May     22      1:00    1:00    S
 Rule   Norway  1916    only    -       Sep     30      0:00    0       -
 # Shanks omits the following transition; go with Whitman.
-Rule   Norway  1935    only    -       Aug     11      0:00    1:00    " DST"
+Rule   Norway  1935    only    -       Aug     11      0:00    1:00    S
 # Whitman says DST observed until 1942 Nov 1, then 1943 Mar 29 - Oct 4,
 # 1944 Apr 3 - Oct 2, and 1945 Apr 1 - Oct 1; go with Shanks after 1940.
-Rule   Norway  1945    only    -       Apr      2      2:00s   1:00    " DST"
+Rule   Norway  1945    only    -       Apr      2      2:00s   1:00    S
 Rule   Norway  1945    only    -       Oct      1      2:00s   0       -
-Rule   Norway  1959    1964    -       Mar     Sun>=15 2:00s   1:00    " DST"
+Rule   Norway  1959    1964    -       Mar     Sun>=15 2:00s   1:00    S
 Rule   Norway  1959    1965    -       Sep     Sun>=15 2:00s   0       -
-Rule   Norway  1965    only    -       Apr     25      2:00s   1:00    " DST"
+Rule   Norway  1965    only    -       Apr     25      2:00s   1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Oslo     0:43:00 -       LMT     1895
-                       1:00    Norway  MET%s   1940 Aug 10 23:00
-                       1:00    M-Eur   MET%s   1945 Apr  2  2:00
-                       1:00    Norway  MET%s   1980
-                       1:00    EU      MET%s
-# Svalbard is like Europe/Oslo.
+                       1:00    Norway  CE%sT   1940 Aug 10 23:00
+                       1:00    C-Eur   CE%sT   1945 Apr  2  2:00
+                       1:00    Norway  CE%sT   1980
+                       1:00    EU      CE%sT
+#
+# Svalbard
+Link   Europe/Oslo     Arctic/Longyearbyen
 #
+# Jan Mayen
 # From Whitman:
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Atlantic/Jan_Mayen        -1:00   -       EGT
 
 # Poland
-# Austrian and German Poland switched from the Julian to the Gregorian calendar
-# on 1582 Oct 15.  Russian Poland switched on 1918 Jan 14.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Poland  1918    1919    -       Sep     16      2:00s   0       -
-Rule   Poland  1919    only    -       Apr     15      2:00s   1:00    " DST"
+Rule   Poland  1919    only    -       Apr     15      2:00s   1:00    S
 # Whitman gives 1944 Nov 30; go with Shanks.
 Rule   Poland  1944    only    -       Oct      4      2:00    0       -
 # For 1944-1948 Whitman gives the previous day; go with Shanks.
-Rule   Poland  1945    only    -       Apr     29      0:00    1:00    " DST"
+Rule   Poland  1945    only    -       Apr     29      0:00    1:00    S
 Rule   Poland  1945    only    -       Nov      1      0:00    0       -
-Rule   Poland  1946    only    -       Apr     14      0:00    1:00    " DST"
+Rule   Poland  1946    only    -       Apr     14      0:00    1:00    S
 Rule   Poland  1946    only    -       Sep      7      0:00    0       -
-Rule   Poland  1947    only    -       May      4      0:00    1:00    " DST"
+Rule   Poland  1947    only    -       May      4      0:00    1:00    S
 Rule   Poland  1947    1948    -       Oct     Sun>=1  0:00    0       -
-Rule   Poland  1948    only    -       Apr     18      0:00    1:00    " DST"
+Rule   Poland  1948    only    -       Apr     18      0:00    1:00    S
 # Whitman also gives 1949 Apr 9 - 1949 Oct 1; go with Shanks.
-Rule   Poland  1957    only    -       Jun      2      1:00s   1:00    " DST"
+Rule   Poland  1957    only    -       Jun      2      1:00s   1:00    S
 Rule   Poland  1957    1958    -       Sep     lastSun 1:00s   0       -
-Rule   Poland  1958    only    -       Mar     30      1:00s   1:00    " DST"
-Rule   Poland  1959    only    -       May     31      1:00s   1:00    " DST"
+Rule   Poland  1958    only    -       Mar     30      1:00s   1:00    S
+Rule   Poland  1959    only    -       May     31      1:00s   1:00    S
 Rule   Poland  1959    1961    -       Oct     Sun>=1  1:00s   0       -
-Rule   Poland  1960    only    -       Apr      3      1:00s   1:00    " DST"
-Rule   Poland  1961    1964    -       May     Sun>=25 1:00s   1:00    " DST"
+Rule   Poland  1960    only    -       Apr      3      1:00s   1:00    S
+Rule   Poland  1961    1964    -       May     Sun>=25 1:00s   1:00    S
 Rule   Poland  1962    1964    -       Sep     lastSun 1:00s   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Warsaw   1:24:00 -       LMT     1880
-                       1:24    -       WMT     1915 Aug  5   # Warsaw Mean Time
-                       1:00    M-Eur   MET%s   1918 Sep 16 3:00
-                       2:00    Poland  EET%s   1922 Jun
-                       1:00    Poland  MET%s   1940 Jun 23 2:00
-                       1:00    M-Eur   MET%s   1944 Oct
-                       1:00    Poland  MET%s   1977 Apr  3 1:00
-                       1:00    W-Eur   MET%s
-#                      This may change to `EU' soon.
+                       1:24:00 -       WMT     1915 Aug  5   # Warsaw Mean Time
+                       1:00    C-Eur   CE%sT   1918 Sep 16 3:00
+                       2:00    Poland  EE%sT   1922 Jun
+                       1:00    Poland  CE%sT   1940 Jun 23 2:00
+                       1:00    C-Eur   CE%sT   1944 Oct
+                       1:00    Poland  CE%sT   1977 Apr  3 1:00
+                       1:00    W-Eur   CE%sT
 
 # Portugal
+# Gregorian calendar adopted 1582-10-15.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Port    1916    only    -       Jun     17      23:00   1:00    " DST"
+Rule   Port    1916    only    -       Jun     17      23:00   1:00    S
 # Whitman gives 1916 Oct 31; go with Shanks.
 Rule   Port    1916    only    -       Nov      1       1:00   0       -
-Rule   Port    1917    only    -       Feb     28      23:00s  1:00    " DST"
+Rule   Port    1917    only    -       Feb     28      23:00s  1:00    S
 Rule   Port    1917    1921    -       Oct     14      23:00s  0       -
-Rule   Port    1918    only    -       Mar      1      23:00s  1:00    " DST"
-Rule   Port    1919    only    -       Feb     28      23:00s  1:00    " DST"
-Rule   Port    1920    only    -       Feb     29      23:00s  1:00    " DST"
-Rule   Port    1921    only    -       Feb     28      23:00s  1:00    " DST"
-Rule   Port    1924    only    -       Apr     16      23:00s  1:00    " DST"
+Rule   Port    1918    only    -       Mar      1      23:00s  1:00    S
+Rule   Port    1919    only    -       Feb     28      23:00s  1:00    S
+Rule   Port    1920    only    -       Feb     29      23:00s  1:00    S
+Rule   Port    1921    only    -       Feb     28      23:00s  1:00    S
+Rule   Port    1924    only    -       Apr     16      23:00s  1:00    S
 Rule   Port    1924    only    -       Oct     14      23:00s  0       -
-Rule   Port    1926    only    -       Apr     17      23:00s  1:00    " DST"
+Rule   Port    1926    only    -       Apr     17      23:00s  1:00    S
 Rule   Port    1926    1929    -       Oct     Sat>=1  23:00s  0       -
-Rule   Port    1927    only    -       Apr      9      23:00s  1:00    " DST"
-Rule   Port    1928    only    -       Apr     14      23:00s  1:00    " DST"
-Rule   Port    1929    only    -       Apr     20      23:00s  1:00    " DST"
-Rule   Port    1931    only    -       Apr     18      23:00s  1:00    " DST"
+Rule   Port    1927    only    -       Apr      9      23:00s  1:00    S
+Rule   Port    1928    only    -       Apr     14      23:00s  1:00    S
+Rule   Port    1929    only    -       Apr     20      23:00s  1:00    S
+Rule   Port    1931    only    -       Apr     18      23:00s  1:00    S
 # Whitman gives 1931 Oct 8; go with Shanks.
 Rule   Port    1931    1932    -       Oct     Sat>=1  23:00s  0       -
-Rule   Port    1932    only    -       Apr      2      23:00s  1:00    " DST"
+Rule   Port    1932    only    -       Apr      2      23:00s  1:00    S
 # Shanks gives 1934 Apr 4; go with Whitman.
-Rule   Port    1934    only    -       Apr      7      23:00s  1:00    " DST"
+Rule   Port    1934    only    -       Apr      7      23:00s  1:00    S
 # Whitman gives 1934 Oct 5; go with Shanks.
 Rule   Port    1934    1938    -       Oct     Sat>=1  23:00s  0       -
 # Shanks gives 1935 Apr 30; go with Whitman.
-Rule   Port    1935    only    -       Mar     30      23:00s  1:00    " DST"
-Rule   Port    1936    only    -       Apr     18      23:00s  1:00    " DST"
+Rule   Port    1935    only    -       Mar     30      23:00s  1:00    S
+Rule   Port    1936    only    -       Apr     18      23:00s  1:00    S
 # Whitman gives 1937 Apr 2; go with Shanks.
-Rule   Port    1937    only    -       Apr      3      23:00s  1:00    " DST"
-Rule   Port    1938    only    -       Mar     26      23:00s  1:00    " DST"
-Rule   Port    1939    only    -       Apr     15      23:00s  1:00    " DST"
+Rule   Port    1937    only    -       Apr      3      23:00s  1:00    S
+Rule   Port    1938    only    -       Mar     26      23:00s  1:00    S
+Rule   Port    1939    only    -       Apr     15      23:00s  1:00    S
 # Whitman gives 1939 Oct 7; go with Shanks.
 Rule   Port    1939    only    -       Nov     18      23:00s  0       -
-Rule   Port    1940    only    -       Feb     24      23:00s  1:00    " DST"
+Rule   Port    1940    only    -       Feb     24      23:00s  1:00    S
 # Shanks gives 1940 Oct 7; go with Whitman.
 Rule   Port    1940    1941    -       Oct      5      23:00s  0       -
-Rule   Port    1941    only    -       Apr      5      23:00s  1:00    " DST"
-Rule   Port    1942    1945    -       Mar     Sat>=8  23:00s  1:00    " DST"
-Rule   Port    1942    only    -       Apr     25      22:00s  2:00    " DDST"
-Rule   Port    1942    only    -       Aug     15      22:00s  1:00    " DST"
+Rule   Port    1941    only    -       Apr      5      23:00s  1:00    S
+Rule   Port    1942    1945    -       Mar     Sat>=8  23:00s  1:00    S
+Rule   Port    1942    only    -       Apr     25      22:00s  2:00    DS
+Rule   Port    1942    only    -       Aug     15      22:00s  1:00    S
 Rule   Port    1942    1945    -       Oct     Sat>=24 23:00s  0       -
-Rule   Port    1943    only    -       Apr     17      22:00s  2:00    " DDST"
-Rule   Port    1943    1945    -       Aug     Sat>=25 22:00s  1:00    " DST"
-Rule   Port    1944    1945    -       Apr     Sat>=21 22:00s  2:00    " DDST"
-Rule   Port    1946    only    -       Apr     Sat>=1  23:00s  1:00    " DST"
+Rule   Port    1943    only    -       Apr     17      22:00s  2:00    DS
+Rule   Port    1943    1945    -       Aug     Sat>=25 22:00s  1:00    S
+Rule   Port    1944    1945    -       Apr     Sat>=21 22:00s  2:00    DS
+Rule   Port    1946    only    -       Apr     Sat>=1  23:00s  1:00    S
 Rule   Port    1946    only    -       Oct     Sat>=1  23:00s  0       -
-Rule   Port    1947    1949    -       Apr     Sun>=1   2:00s  1:00    " DST"
+Rule   Port    1947    1949    -       Apr     Sun>=1   2:00s  1:00    S
 Rule   Port    1947    1949    -       Oct     Sun>=1   2:00s  0       -
 # Shanks says DST was observed in 1950; go with Whitman.
 # Whitman gives Oct lastSun for 1952 on; go with Shanks.
-Rule   Port    1951    1965    -       Apr     Sun>=1   2:00s  1:00    " DST"
+Rule   Port    1951    1965    -       Apr     Sun>=1   2:00s  1:00    S
 Rule   Port    1951    1965    -       Oct     Sun>=1   2:00s  0       -
-Rule   Port    1977    only    -       Mar     27       0:00s  1:00    " DST"
+Rule   Port    1977    only    -       Mar     27       0:00s  1:00    S
 Rule   Port    1977    only    -       Sep     25       0:00s  0       -
-Rule   Port    1978    1979    -       Apr     Sun>=1   0:00s  1:00    " DST"
+Rule   Port    1978    1979    -       Apr     Sun>=1   0:00s  1:00    S
 Rule   Port    1978    only    -       Oct      1       0:00s  0       -
 Rule   Port    1979    1982    -       Sep     lastSun  1:00s  0       -
-Rule   Port    1980    only    -       Mar     lastSun  0:00s  1:00    " DST"
-Rule   Port    1981    1982    -       Mar     lastSun  1:00s  1:00    " DST"
-Rule   Port    1983    only    -       Mar     lastSun  2:00s  1:00    " DST"
+Rule   Port    1980    only    -       Mar     lastSun  0:00s  1:00    S
+Rule   Port    1981    1982    -       Mar     lastSun  1:00s  1:00    S
+Rule   Port    1983    only    -       Mar     lastSun  2:00s  1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Lisbon   -0:36:32 -      LMT     1884
-                       -0:37   -       LMT     1911 May 24   # Lisbon Mean Time
-                        0:00   Port    WET%s   1966 Apr  3 2:00
-                        1:00   -       MET     1976 Sep 26 1:00
-                        0:00   Port    WET%s   1983 Sep 25 1:00s
-                        0:00   EU      WET%s   1992 Sep 27 1:00s
+                       -0:36:32 -      LMT     1911 May 24   # Lisbon Mean Time
+                        0:00   Port    WE%sT   1966 Apr  3 2:00
+                        1:00   -       CET     1976 Sep 26 1:00
+                        0:00   Port    WE%sT   1983 Sep 25 1:00s
 # From Rui Pedro Salgueiro <rps@inescca.inescc.pt> (November 12, 1992):
 # Portugal has recently (September, 27) changed timezone
 # (from WET to MET or CET) to harmonize with EEC.
-                        1:00   EU      MET%s   1996 Mar 31 1:00u
+                        0:00   EU      WE%sT   1992 Sep 27 1:00s
 # Martin Bruckmann <martin@ua.pt> (1996-02-29) reports via Peter Ilieve
 # that Portugal is reverting to 0:00 by not moving its clocks this spring.
 # The new Prime Minister was fed up with getting up in the dark in the winter.
-                        0:00   1:00  "WET DST" 1996 Oct 27 1:00u
-                        0:00   EU      WET%s
+                        1:00   EU      CE%sT   1996 Mar 31 1:00u
+                        0:00   EU      WE%sT
 # We don't know what happened to Madeira or the Azores,
 # so we'll just use Shanks for now.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Atlantic/Azores   -1:42:40 -      LMT     1884            # Ponta Delgada
                        -1:55   -       HMT     1911 May 24  # Horta Mean Time
-                       -2:00   Port    ACT%s   1966 Apr  3 2:00
-                       -1:00   -       ACT     1977 Mar 27
-                       -1:00   -       ACT     1983 Sep 25 1:00s
-                       -1:00   W-Eur   ACT%s
+                       -2:00   Port    AZO%sT  1966 Apr  3 2:00 # Azores Time
+                       -1:00   Port    AZO%sT  1983 Sep 25 1:00s
+                       -1:00   W-Eur   AZO%sT
 Zone Atlantic/Madeira  -1:07:36 -      LMT     1884            # Funchal
                        -1:08   -       FMT     1911 May 24  # Funchal Mean Time
-                       -1:00   Port    ACT%s   1966 Apr  3 2:00
-                        0:00   -       WET     1977 Mar 27
-                        0:00   Port    WET%s   1983 Sep 25 1:00s
-                        0:00   EU      WET%s
+                       -1:00   Port    MAD%sT  1966 Apr  3 2:00 # Madeira Time
+                        0:00   Port    WE%sT   1983 Sep 25 1:00s
+                        0:00   EU      WE%sT
 
 # Romania
-# Catholic Romania switched from the Julian to the Gregorian calendar on
-# on 1919 Mar 18.  Greek Orthodox Romania switched on 1920 Mar 18.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Romania 1932    only    -       May     21       0:00s  1:00    " DST"
+Rule   Romania 1932    only    -       May     21       0:00s  1:00    S
 Rule   Romania 1932    1939    -       Oct     Sun>=1   0:00s  0       -
-Rule   Romania 1933    1939    -       Apr     Sun>=2   0:00s  1:00    " DST"
-Rule   Romania 1979    only    -       May     27       0:00   1:00    " DST"
+Rule   Romania 1933    1939    -       Apr     Sun>=2   0:00s  1:00    S
+Rule   Romania 1979    only    -       May     27       0:00   1:00    S
 Rule   Romania 1979    only    -       Sep     lastSun  0:00   0       -
-Rule   Romania 1980    only    -       Apr      5      23:00   1:00    " DST"
+Rule   Romania 1980    only    -       Apr      5      23:00   1:00    S
 Rule   Romania 1980    only    -       Sep     lastSun  1:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Bucharest  1:44:24 -       LMT     1891 Oct
-                       1:44    -       BMT     1931 Jul 24     # Bucharest MT
-                       2:00    Romania EET%s   1981 Mar 29 2:00s
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       1:44:24 -       BMT     1931 Jul 24     # Bucharest MT
+                       2:00    Romania EE%sT   1981 Mar 29 2:00s
+                       2:00    C-Eur   EE%sT
 
 # Russia
-# From Paul Eggert <eggert@twinsun.com> (May 28, 1994):
-# Moscow and Novosibirsk time zone names, and Moscow rules after 1991,
-# are from Andrew A. Chernov <ache@astral.msk.su>.
-# I invented the other time zone names, and (unless otherwise specified)
+# From Shanks (1991):
+# In 1929 the Soviet Union instituted a 5 day week; in 1932 it instituted
+# a 6 day week; on 1940-06-27 it returned to the Gregorian week.
+#
+# From Paul Eggert <eggert@twinsun.com> (1996-09-03):
+# Moscow rules after 1991 are from Andrew A. Chernov <ache@astral.msk.su>.
+# I invented the time zone names, and (unless otherwise specified)
 # guessed what happened after 1991; the clocks were chaotic, and we know little.
 # The rest is from Shanks.
 #
-# From Shanks (1991):
-# Western Russia switched from the Julian to the Gregorian calendar
-# on 1918 Jan 14.  Eastern Russia switched on 1920 Mar 18.
-# In 1929 the Soviet Union instituted a 5 day week; in 1932 it instituted
-# a 6 day week; on 1940 Jun 27 it returned to the Gregorian week.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Moscow      2:30:20 -      LMT     1880
-                        2:31   Russia  LST%s   1919 Jul  1 2:00
-                        3:00   Russia  MS%s    1922 Oct
+                        2:30:20 Russia %s      1919 Jul  1 2:00
+                        3:00   Russia  MOS%sT  1922 Oct # Moscow TIme
                         2:00   -       EET     1930 Jun 21
-                        3:00   Russia  MS%s    1991 Mar 31 2:00s
-                        2:00   1:00  "EET DST" 1991 Sep 29 2:00s
+                        3:00   Russia  MOS%sT  1991 Mar 31 2:00s
+                        2:00   1:00    EEST    1991 Sep 29 2:00s
                         2:00   -       EET     1992 Jan 19 2:00s
-                        3:00   Russia  MS%s
+                        3:00   Russia  MOS%sT
 Zone Europe/Kuybyshev   3:20:36 -      LMT     1924 May  2
-                        3:00   -       KSK     1957 Mar
-                        4:00   Russia  KS%s    1991 Mar 31 2:00s
-                        3:00   1:00    KSD     1991 Sep 29 2:00s
-                        3:00   -       KSK     1992 Jan 19 2:00s
-                        4:00   Russia  KS%s
+                        3:00   -       KUYT    1957 Mar # Kuybyshev Time
+                        4:00   Russia  KUY%sT  1991 Mar 31 2:00s
+                        3:00   1:00    KUYST   1991 Sep 29 2:00s
+                        3:00   -       KUYT    1992 Jan 19 2:00s
+                        4:00   Russia  KUY%sT
 Zone Asia/Yekaterinburg         4:02:34 -      LMT     1924 May  2
-                        4:00   -       SSK     1957 Mar
-                        5:00   Russia  SS%s    1991 Mar 31 2:00s
-                        4:00   1:00    SSD     1991 Sep 29 2:00s
-                        4:00   -       SSK     1992 Jan 19 2:00s
-                        5:00   Russia  ES%s    # name change from Sverdlovsk
+                        4:00   -       SVET    1957 Mar # Sverdlovsk Time
+                        5:00   Russia  SVE%sT  1991 Mar 31 2:00s
+                        4:00   1:00    SVEST   1991 Sep 29 2:00s
+                        4:00   -       SVET    1992 Jan 19 2:00s
+                        5:00   Russia  YEK%sT  # Yekaterinburg Time
 Zone Asia/Omsk          4:53:36 -      LMT     1924 May  2
-                        5:00   -       OSK     1957 Mar
-                        6:00   Russia  OS%s    1991 Mar 31 2:00s
-                        5:00   1:00    OSD     1991 Sep 29 2:00s
-                        5:00   -       OSK     1992 Jan 19 2:00s
-                        6:00   Russia  OS%s
+                        5:00   -       OMST    1957 Mar # Omsk Time
+                        6:00   Russia  OMS%sT  1991 Mar 31 2:00s
+                        5:00   1:00    OMSST   1991 Sep 29 2:00s
+                        5:00   -       OMST    1992 Jan 19 2:00s
+                        6:00   Russia  OMS%sT
 # From Stanislaw A. Kuzikowski <S.A.Kuz@iae.nsk.su> (June 29, 1994):
 # But now it is some months since Novosibirsk is 3 hours ahead of Moscow!
 # I do not know why they have decided to make this change;
 # as far as I remember it was done exactly during winter->summer switching
 # so we (Novosibirsk) simply did not switch.
 Zone Asia/Novosibirsk   5:31:40 -      LMT     1924 May  2
-                        6:00   -       NSK     1957 Mar
-                        7:00   Russia  NS%s    1991 Mar 31 2:00s
-                        6:00   1:00    NSD     1991 Sep 29 2:00s
-                        6:00   -       NSK     1992 Jan 19 2:00s
-                        7:00   Russia  NS%s    1994 Mar 27 2:00s
-                        6:00   1:00    NSD     1994 Sep 25 2:00s
-                        6:00   Russia  NS%s
+                        6:00   -       NOVT    1957 Mar # Novosibirsk TIme
+                        7:00   Russia  NOV%sT  1991 Mar 31 2:00s
+                        6:00   1:00    NOVST   1991 Sep 29 2:00s
+                        6:00   -       NOVT    1992 Jan 19 2:00s
+                        7:00   Russia  NOV%sT  1994 Mar 27 2:00s
+                        6:00   1:00    NOVST   1994 Sep 25 2:00s
+                        6:00   Russia  NOV%sT
 Zone Asia/Krasnoyarsk   6:11:20 -      LMT     1924 May  2
-                        6:00   -       KRSK    1957 Mar
-                        7:00   Russia  KRS%s   1991 Mar 31 2:00s
-                        6:00   1:00    KRSD    1991 Sep 29 2:00s
-                        6:00   -       KRSK    1992 Jan 19 2:00s
-                        7:00   Russia  KRS%s
+                        6:00   -       KRAT    1957 Mar # Krasnoyarsk Time
+                        7:00   Russia  KRA%sT  1991 Mar 31 2:00s
+                        6:00   1:00    KRAST   1991 Sep 29 2:00s
+                        6:00   -       KRAT    1992 Jan 19 2:00s
+                        7:00   Russia  KRA%sT
 Zone Asia/Irkutsk       6:57:20 -      LMT     1880
-                        6:57   -       LST     1924 May  2
-                        7:00   -       ISK     1957 Mar
-                        8:00   Russia  IS%s    1991 Mar 31 2:00s
-                        7:00   1:00    ISD     1991 Sep 29 2:00s
-                        7:00   -       ISK     1992 Jan 19 2:00s
-                        8:00   Russia  IS%s
+                        6:57:20 -      IMT     1924 May  2 # Irkutsk Mean Time
+                        7:00   -       IRKT    1957 Mar # Irkutsk Time
+                        8:00   Russia  IRK%sT  1991 Mar 31 2:00s
+                        7:00   1:00    IRKST   1991 Sep 29 2:00s
+                        7:00   -       IRKT    1992 Jan 19 2:00s
+                        8:00   Russia  IRK%sT
 Zone Asia/Yakutsk       8:38:40 -      LMT     1924 May  2
-                        8:00   -       YSK     1957 Mar
-                        9:00   Russia  YS%s    1991 Mar 31 2:00s
-                        8:00   1:00    YSD     1991 Sep 29 2:00s
-                        8:00   -       YSK     1992 Jan 19 2:00s
-                        9:00   Russia  YS%s
+                        8:00   -       YAKT    1957 Mar # Yakutsk Time
+                        9:00   Russia  YAK%sT  1991 Mar 31 2:00s
+                        8:00   1:00    YAKST   1991 Sep 29 2:00s
+                        8:00   -       YAKT    1992 Jan 19 2:00s
+                        9:00   Russia  YAK%sT
 Zone Asia/Vladivostok   8:47:44 -      LMT     1880
-                        8:48   -       LST     1924 May  2
-                        9:00   -       VSK     1957 Mar
-                       10:00   Russia  VS%s    1991 Mar 31 2:00s
-                        9:00   1:00    VSD     1991 Sep 29 2:00s
-                        9:00   -       VSK     1992 Jan 19 2:00s
-                       10:00   Russia  VS%s
+                        8:47:44 -      VMT     1924 May  2 # Vladivostok MT
+                        9:00   -       VLAT    1957 Mar # Vladivostok Time
+                       10:00   Russia  VLA%sT  1991 Mar 31 2:00s
+                        9:00   1:00    VLAST   1991 Sep 29 2:00s
+                        9:00   -       VLAT    1992 Jan 19 2:00s
+                       10:00   Russia  VLA%sT
 Zone Asia/Magadan      10:03:12 -      LMT     1924 May  2
-                       10:00   -       MSK     1957 Mar
-                       11:00   Russia  MS%s    1991 Mar 31 2:00s
-                       10:00   1:00    MSD     1991 Sep 29 2:00s
-                       10:00   -       MSK     1992 Jan 19 2:00s
-                       11:00   Russia  MS%s
+                       10:00   -       MAGT    1957 Mar # Magadan Time
+                       11:00   Russia  MAG%sT  1991 Mar 31 2:00s
+                       10:00   1:00    MAGST   1991 Sep 29 2:00s
+                       10:00   -       MAGT    1992 Jan 19 2:00s
+                       11:00   Russia  MAG%sT
 # This name should be Asia/Petropavlovsk-Kamchatski, but that's too long.
 Zone Asia/Kamchatka    10:34:36 -      LMT     1924 May  2
-                       11:00   -       PSK     1957 Mar
-                       12:00   Russia  PS%s    1991 Mar 31 2:00s
-                       11:00   1:00    PSD     1991 Sep 29 2:00s
-                       11:00   -       PSK     1992 Jan 19 2:00s
-                       12:00   Russia  PS%s
+                       11:00   -       PETT    1957 Mar # P-K Time
+                       12:00   Russia  PET%sT  1991 Mar 31 2:00s
+                       11:00   1:00    PETST   1991 Sep 29 2:00s
+                       11:00   -       PETT    1992 Jan 19 2:00s
+                       12:00   Russia  PET%sT
 Zone Asia/Anadyr       11:49:56 -      LMT     1924 May  2
-                       12:00   -       ASK     1957 Mar
-                       13:00   Russia  AS%s    1991 Mar 31 2:00s
-                       12:00   1:00    ASD     1991 Sep 29 2:00s
-                       12:00   -       ASK     1992 Jan 19 2:00s
-                       13:00   Russia  AS%s
+                       12:00   -       ANAT    1957 Mar # Anadyr Time
+                       13:00   Russia  ANA%sT  1991 Mar 31 2:00s
+                       12:00   1:00    ANAST   1991 Sep 29 2:00s
+                       12:00   -       ANAT    1992 Jan 19 2:00s
+                       13:00   Russia  ANA%sT
 
 # Slovakia
 Link Europe/Prague Europe/Bratislava
 
 # Slovenia
-# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Ljubljana  0:58:04 -       LMT     1884
-                       1:00    -       MET     1941 Apr 18 23:00
-                       1:00    M-Eur   MET%s   1945 May  8  2:00s
-                       1:00    1:00  "MET DST" 1945 Sep 16  2:00s
-                       1:00    -       MET     1983
-                       1:00    EU      MET%s
+                       1:00    -       CET     1941 Apr 18 23:00
+                       1:00    C-Eur   CE%sT   1945 May  8  2:00s
+                       1:00    1:00    CEST    1945 Sep 16  2:00s
+                       1:00    -       CET     1983
+                       1:00    EU      CE%sT
 
 # Spain
+# Gregorian calendar adopted 1582-10-15.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1; go with Shanks.
-Rule   Spain   1917    only    -       May      5      23:00s  1:00    " DST"
+Rule   Spain   1917    only    -       May      5      23:00s  1:00    S
 Rule   Spain   1917    1919    -       Oct      6      23:00s  0       -
-Rule   Spain   1918    only    -       Apr     15      23:00s  1:00    " DST"
-Rule   Spain   1919    only    -       Apr      5      23:00s  1:00    " DST"
+Rule   Spain   1918    only    -       Apr     15      23:00s  1:00    S
+Rule   Spain   1919    only    -       Apr      5      23:00s  1:00    S
 # Whitman gives 1921 Feb 28 - Oct 14; go with Shanks.
-Rule   Spain   1924    only    -       Apr     16      23:00s  1:00    " DST"
+Rule   Spain   1924    only    -       Apr     16      23:00s  1:00    S
 # Whitman gives 1924 Oct 14; go with Shanks.
 Rule   Spain   1924    only    -       Oct      4      23:00s  0       -
-Rule   Spain   1926    only    -       Apr     17      23:00s  1:00    " DST"
+Rule   Spain   1926    only    -       Apr     17      23:00s  1:00    S
 # Whitman says no DST in 1929; go with Shanks.
 Rule   Spain   1926    1929    -       Oct     Sat>=1  23:00s  0       -
-Rule   Spain   1927    only    -       Apr      9      23:00s  1:00    " DST"
-Rule   Spain   1928    only    -       Apr     14      23:00s  1:00    " DST"
-Rule   Spain   1929    only    -       Apr     20      23:00s  1:00    " DST"
+Rule   Spain   1927    only    -       Apr      9      23:00s  1:00    S
+Rule   Spain   1928    only    -       Apr     14      23:00s  1:00    S
+Rule   Spain   1929    only    -       Apr     20      23:00s  1:00    S
 # Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13; go with Shanks.
-Rule   Spain   1937    only    -       May     22      23:00s  1:00    " DST"
+Rule   Spain   1937    only    -       May     22      23:00s  1:00    S
 Rule   Spain   1937    1939    -       Oct     Sat>=1  23:00s  0       -
-Rule   Spain   1938    only    -       Mar     22      23:00s  1:00    " DST"
-Rule   Spain   1939    only    -       Apr     15      23:00s  1:00    " DST"
-Rule   Spain   1940    only    -       Mar     16      23:00s  1:00    " DST"
+Rule   Spain   1938    only    -       Mar     22      23:00s  1:00    S
+Rule   Spain   1939    only    -       Apr     15      23:00s  1:00    S
+Rule   Spain   1940    only    -       Mar     16      23:00s  1:00    S
 # Whitman says no DST 1942-1945; go with Shanks.
-Rule   Spain   1942    only    -       May      2      22:00s  2:00    " DDST"
-Rule   Spain   1942    only    -       Sep      1      22:00s  1:00    " DST"
-Rule   Spain   1943    1946    -       Apr     Sat>=13 22:00s  2:00    " DDST"
-Rule   Spain   1943    only    -       Oct      3      22:00s  1:00    " DST"
-Rule   Spain   1944    only    -       Oct     10      22:00s  1:00    " DST"
-Rule   Spain   1945    only    -       Sep     30       1:00   1:00    " DST"
+Rule   Spain   1942    only    -       May      2      22:00s  2:00    DS
+Rule   Spain   1942    only    -       Sep      1      22:00s  1:00    S
+Rule   Spain   1943    1946    -       Apr     Sat>=13 22:00s  2:00    DS
+Rule   Spain   1943    only    -       Oct      3      22:00s  1:00    S
+Rule   Spain   1944    only    -       Oct     10      22:00s  1:00    S
+Rule   Spain   1945    only    -       Sep     30       1:00   1:00    S
 Rule   Spain   1946    only    -       Sep     30       0:00   0       -
-Rule   Spain   1949    only    -       Apr     30      23:00   1:00    " DST"
+Rule   Spain   1949    only    -       Apr     30      23:00   1:00    S
 Rule   Spain   1949    only    -       Sep     30       1:00   0       -
-Rule   Spain   1974    1975    -       Apr     Sat>=13 23:00   1:00    " DST"
+Rule   Spain   1974    1975    -       Apr     Sat>=13 23:00   1:00    S
 Rule   Spain   1974    1975    -       Oct     Sun>=1   1:00   0       -
-Rule   Spain   1976    only    -       Mar     27      23:00   1:00    " DST"
+Rule   Spain   1976    only    -       Mar     27      23:00   1:00    S
 Rule   Spain   1976    1977    -       Sep     lastSun  1:00   0       -
-Rule   Spain   1977    1978    -       Apr      2      23:00   1:00    " DST"
+Rule   Spain   1977    1978    -       Apr      2      23:00   1:00    S
 Rule   Spain   1978    only    -       Oct      1       1:00   0       -
+# The following rules are copied from Morocco from 1967 through 1978.
+Rule SpainAfrica 1967  only    -       Jun      3      12:00   1:00    S
+Rule SpainAfrica 1967  only    -       Oct      1       0:00   0       -
+Rule SpainAfrica 1974  only    -       Jun     24       0:00   1:00    S
+Rule SpainAfrica 1974  only    -       Sep      1       0:00   0       -
+Rule SpainAfrica 1976  1977    -       May      1       0:00   1:00    S
+Rule SpainAfrica 1976  only    -       Aug      1       0:00   0       -
+Rule SpainAfrica 1977  only    -       Sep     28       0:00   0       -
+Rule SpainAfrica 1978  only    -       Jun      1       0:00   1:00    S
+Rule SpainAfrica 1978  only    -       Aug      4       0:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Madrid   -0:14:44 -      LMT     1901
-                        0:00   Spain   WET%s   1946 Sep 30
-                        1:00   Spain   MET%s   1979
-                        1:00   EU      MET%s
+                        0:00   Spain   WE%sT   1946 Sep 30
+                        1:00   Spain   CE%sT   1979
+                        1:00   EU      CE%sT
+Zone   Africa/Ceuta    -0:21:16 -      LMT     1901
+                        0:00   -       WET     1918 May  6 23:00
+                        0:00   1:00    WEST    1918 Oct  7 23:00
+                        0:00   -       WET     1924
+                        0:00   Spain   WE%sT   1929
+                        0:00 SpainAfrica WE%sT 1984 Mar 16
+                        1:00   -       CET     1986
+                        1:00   EU      CE%sT
 Zone   Atlantic/Canary -1:01:36 -      LMT     1922 Mar # Las Palmas de Gran C.
-                       -1:00   -       ACT     1946 Sep 30 1:00
+                       -1:00   -       CANT    1946 Sep 30 1:00 # Canaries Time
                         0:00   -       WET     1980 Apr  6 0:00s
-                        0:00   1:00  "WET DST" 1980 Sep 28 0:00s
-                        0:00   EU      WET%s
+                        0:00   1:00    WEST    1980 Sep 28 0:00s
+                        0:00   EU      WE%sT
 
 # Sweden
+
+# From: msb@sq.com (Mark Brader) <URL:news:1996Jul6.012937.29190@sq.com>:
+#
+# In 1700, Denmark made the transition from Julian to Gregorian.  Sweden
+# decided to *start* a transition in 1700 as well, but rather than have one of
+# those unsightly calendar gaps :-), they simply decreed that the next leap
+# year after 1696 would be in 1744 -- putting the whole country on a calendar
+# different from both Julian and Gregorian for a period of 40 years.
+#
+# However, in 1704 something went wrong and the plan was not carried through;
+# they did, after all, have a leap year that year.  And one in 1708.  In 1712
+# they gave it up and went back to Julian, putting 30 days in February that
+# year!...
+#
+# Then in 1753, Sweden made the transition to Gregorian in the usual manner,
+# getting there only 13 years behind the original schedule.
+#
+# (A previous posting of this story was challenged, and Swedish readers
+# produced the following references to support it: "Tiderakning och historia"
+# by Natanael Beckman (1924) and "Tid, en bok om tiderakning och
+# kalendervasen" by Lars-Olof Lode'n (no date was given).)
+
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Stockholm  1:12:12 -       LMT     1878 May 31
-                       1:12    -       SMT     1900 Jan  1  1:00 # Stockholm MT
-                       1:00    -       MET     1916 Apr 14 23:00s
-                       1:00    1:00  "MET DST" 1916 Sep 30 23:00s
-                       1:00    -       MET     1980
-                       1:00    EU      MET%s
+                       1:12:12 -       SMT     1900 Jan  1  1:00 # Stockholm MT
+                       1:00    -       CET     1916 Apr 14 23:00s
+                       1:00    1:00    CEST    1916 Sep 30 23:00s
+                       1:00    -       CET     1980
+                       1:00    EU      CE%sT
 
 # Switzerland
 # From Howse (1988), p 82:
@@ -1910,121 +1955,130 @@ Zone Europe/Stockholm 1:12:12 -       LMT     1878 May 31
 # mean time in preference to apparent time -- Geneva from 1780 ....
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 # From Whitman (who writes ``Midnight?''):
-Rule   Swiss   1940    only    -       Nov      2      0:00    1:00    " DST"
+Rule   Swiss   1940    only    -       Nov      2      0:00    1:00    S
 Rule   Swiss   1940    only    -       Dec     31      0:00    0       -
 # From Shanks (1991):
-Rule   Swiss   1941    1942    -       May     Sun>=1  2:00    1:00    " DST"
+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]
 Zone   Europe/Zurich   0:34:08 -       LMT     1848 Sep 12
-                       0:30    -       SST     1894 Jun   # Swiss Standard Time
-                       1:00    Swiss   MET%s   1981
-                       1:00    EU      MET%s
+                       0:29:44 -       BMT     1894 Jun # Bern Mean Time
+                       1:00    Swiss   CE%sT   1981
+                       1:00    EU      CE%sT
 
 # Turkey
-# European Turkey switched to the Gregorian calendar in 1908.
-# Asian Turkey switched in 1914.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Turkey  1916    only    -       May      1      0:00    1:00    " DST"
+Rule   Turkey  1916    only    -       May      1      0:00    1:00    S
 Rule   Turkey  1916    only    -       Oct      1      0:00    0       -
-Rule   Turkey  1920    only    -       Mar     28      0:00    1:00    " DST"
+Rule   Turkey  1920    only    -       Mar     28      0:00    1:00    S
 Rule   Turkey  1920    only    -       Oct     25      0:00    0       -
-Rule   Turkey  1921    only    -       Apr      3      0:00    1:00    " DST"
+Rule   Turkey  1921    only    -       Apr      3      0:00    1:00    S
 Rule   Turkey  1921    only    -       Oct      3      0:00    0       -
-Rule   Turkey  1922    only    -       Mar     26      0:00    1:00    " DST"
+Rule   Turkey  1922    only    -       Mar     26      0:00    1:00    S
 Rule   Turkey  1922    only    -       Oct      8      0:00    0       -
 # Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925; go with Shanks.
-Rule   Turkey  1924    only    -       May     13      0:00    1:00    " DST"
+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    " DST"
+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    " DST"
+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    " DST"
+Rule   Turkey  1940    only    -       Dec      1      0:00    1:00    S
 Rule   Turkey  1941    only    -       Sep     21      0:00    0       -
-Rule   Turkey  1942    only    -       Apr      1      0:00    1:00    " DST"
+Rule   Turkey  1942    only    -       Apr      1      0:00    1:00    S
 # Whitman omits the next two transition and gives 1945 Oct 1; go with Shanks.
 Rule   Turkey  1942    only    -       Nov      1      0:00    0       -
-Rule   Turkey  1945    only    -       Apr      2      0:00    1:00    " DST"
+Rule   Turkey  1945    only    -       Apr      2      0:00    1:00    S
 Rule   Turkey  1945    only    -       Oct      8      0:00    0       -
-Rule   Turkey  1946    only    -       Jun      1      0:00    1:00    " DST"
+Rule   Turkey  1946    only    -       Jun      1      0:00    1:00    S
 Rule   Turkey  1946    only    -       Oct      1      0:00    0       -
-Rule   Turkey  1947    1948    -       Apr     Sun>=16 0:00    1:00    " DST"
+Rule   Turkey  1947    1948    -       Apr     Sun>=16 0:00    1:00    S
 Rule   Turkey  1947    1950    -       Oct     Sun>=2  0:00    0       -
-Rule   Turkey  1949    only    -       Apr     10      0:00    1:00    " DST"
-Rule   Turkey  1950    only    -       Apr     19      0:00    1:00    " DST"
-Rule   Turkey  1951    only    -       Apr     22      0:00    1:00    " DST"
+Rule   Turkey  1949    only    -       Apr     10      0:00    1:00    S
+Rule   Turkey  1950    only    -       Apr     19      0:00    1:00    S
+Rule   Turkey  1951    only    -       Apr     22      0:00    1:00    S
 Rule   Turkey  1951    only    -       Oct      8      0:00    0       -
-Rule   Turkey  1962    only    -       Jul     15      0:00    1:00    " DST"
+Rule   Turkey  1962    only    -       Jul     15      0:00    1:00    S
 Rule   Turkey  1962    only    -       Oct      8      0:00    0       -
-Rule   Turkey  1964    only    -       May     15      0:00    1:00    " DST"
+Rule   Turkey  1964    only    -       May     15      0:00    1:00    S
 Rule   Turkey  1964    only    -       Oct      1      0:00    0       -
-Rule   Turkey  1970    1972    -       May     Sun>=2  0:00    1:00    " DST"
+Rule   Turkey  1970    1972    -       May     Sun>=2  0:00    1:00    S
 Rule   Turkey  1970    1972    -       Oct     Sun>=2  0:00    0       -
-Rule   Turkey  1973    only    -       Jun      3      1:00    1:00    " DST"
+Rule   Turkey  1973    only    -       Jun      3      1:00    1:00    S
 Rule   Turkey  1973    only    -       Nov      4      3:00    0       -
-Rule   Turkey  1974    only    -       Mar     31      2:00    1:00    " DST"
+Rule   Turkey  1974    only    -       Mar     31      2:00    1:00    S
 Rule   Turkey  1974    only    -       Nov      3      5:00    0       -
-Rule   Turkey  1975    only    -       Mar     30      0:00    1:00    " DST"
+Rule   Turkey  1975    only    -       Mar     30      0:00    1:00    S
 Rule   Turkey  1975    1976    -       Oct     lastSun 0:00    0       -
-Rule   Turkey  1976    only    -       Jun      1      0:00    1:00    " DST"
-Rule   Turkey  1977    1978    -       Apr     Sun>=1  0:00    1:00    " DST"
+Rule   Turkey  1976    only    -       Jun      1      0:00    1:00    S
+Rule   Turkey  1977    1978    -       Apr     Sun>=1  0:00    1:00    S
 Rule   Turkey  1977    only    -       Oct     16      0:00    0       -
-Rule   Turkey  1979    1980    -       Apr     Sun>=1  3:00    1:00    " DST"
+Rule   Turkey  1979    1980    -       Apr     Sun>=1  3:00    1:00    S
 Rule   Turkey  1979    1982    -       Oct     Mon>=11 0:00    0       -
-Rule   Turkey  1981    1982    -       Mar     lastSun 3:00    1:00    " DST"
-Rule   Turkey  1983    only    -       Jul     31      0:00    1:00    " DST"
+Rule   Turkey  1981    1982    -       Mar     lastSun 3:00    1:00    S
+Rule   Turkey  1983    only    -       Jul     31      0:00    1:00    S
 Rule   Turkey  1983    only    -       Oct      2      0:00    0       -
-Rule   Turkey  1985    only    -       Apr     20      0:00    1:00    " DST"
+Rule   Turkey  1985    only    -       Apr     20      0:00    1:00    S
 Rule   Turkey  1985    only    -       Sep     28      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Istanbul 1:55:52 -       LMT     1880
-                       1:57    -       OMT     1910 Oct     # Ottoman Mean Time
-                       2:00    Turkey  EET%s   1978 Oct 15
-                       3:00    Turkey  TUR%s   1985 Apr 20
-                       2:00    Turkey  EET%s   1986
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       1:56:56 -       IMT     1910 Oct # Istanbul Mean Time?
+                       2:00    Turkey  EE%sT   1978 Oct 15
+                       3:00    Turkey  TR%sT   1985 Apr 20 # Turkey Time
+                       2:00    Turkey  EE%sT   1986
+                       2:00    C-Eur   EE%sT
 Link   Europe/Istanbul Asia/Istanbul   # Istanbul is in both continents.
 
 # Ukraine
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Ukraine 1919    only    -       Jul      1       2:00   1:00    " DST"
-Rule   Ukraine 1919    only    -       Aug     16       0:00   0       -
-Rule   Ukraine 1921    only    -       Feb     14      23:00   1:00    " DST"
-Rule   Ukraine 1921    only    -       Mar     21      23:00   2:00    " DDST"
-Rule   Ukraine 1921    only    -       Sep      1       0:00   1:00    " DST"
-Rule   Ukraine 1921    only    -       Oct      1       0:00   0       -
+Rule   Ukraine 1917    only    -       Jul      1      23:00   1:00    UST     # Ukrainian Summer Time
+Rule   Ukraine 1917    only    -       Dec     28       0:00   0       KMT     # Kiev Mean TIme
+Rule   Ukraine 1918    only    -       May     31      22:00   2:00    UDST    # Ukrainian Double Summer Time
+Rule   Ukraine 1918    only    -       Sep     17       0:00   1:00    UST
+Rule   Ukraine 1919    only    -       May     31      23:00   2:00    UDST
+Rule   Ukraine 1919    only    -       Jul      1       2:00   1:00    UST
+Rule   Ukraine 1919    only    -       Aug     16       0:00   0       KMT
+Rule   Ukraine 1921    only    -       Feb     14      23:00   1:00    UST
+Rule   Ukraine 1921    only    -       Mar     21      23:00   2:00    UDST
+Rule   Ukraine 1921    only    -       Sep      1       0:00   1:00    UST
+Rule   Ukraine 1921    only    -       Oct      1       0:00   0       KMT
+Rule   Crimea  1917    only    -       Jul      1      23:00   1:00    CST     # Crimean Summer Time
+Rule   Crimea  1917    only    -       Dec     28       0:00   0       NMT     # Nikolayev Mean Time
+Rule   Crimea  1918    only    -       May     31      22:00   2:00    CDST    # Crimean Double Summer Time
+Rule   Crimea  1918    only    -       Sep     17       0:00   1:00    CST
+Rule   Crimea  1919    only    -       May     31      23:00   2:00    CDST
+Rule   Crimea  1919    only    -       Jul      1       2:00   1:00    CST
+Rule   Crimea  1919    only    -       Aug     16       0:00   0       NMT
+Rule   Crimea  1921    only    -       Feb     14      23:00   1:00    CST
+Rule   Crimea  1921    only    -       Mar     21      23:00   2:00    CDST
+Rule   Crimea  1921    only    -       Sep      1       0:00   1:00    CST
+Rule   Crimea  1921    only    -       Oct      1       0:00   0       NMT
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Kiev       2:02:04 -       LMT     1880
-                       2:02    Russia  LST%s   1919 Jul  1 2:00
-                       2:02    Ukraine LST%s   1924 May  2
+                       2:02:04 Ukraine %s      1924 May  2
                        2:00    -       EET     1930 Jun 21
-                       3:00    Russia  MS%s    1990 Jul 17
-                       2:00    M-Eur   EET%s
-#                      This may change to `EU' soon.
+                       3:00    Russia  MOS%sT  1990 Jul 17 # Moscow Time
+                       2:00    C-Eur   EE%sT
 Zone Europe/Simferopol 2:16:24 -       LMT     1880
-                       2:08    Russia  LST%s   1919 Jul  1 2:00
-                       2:08    Ukraine LST%s   1924 May  2
+                       2:08:00 Crimea  %s      1924 May  2
                        2:00    -       EET     1930 Jun 21
-                       3:00    Russia  MS%s    1991 Mar 31 2:00s
-                       2:00    1:00  "EET DST" 1991 Sep 29 2:00s
+                       3:00    Russia  MOS%sT  1991 Mar 31 2:00s
+                       2:00    1:00    EEST    1991 Sep 29 2:00s
 # From Paul Eggert <eggert@twinsun.com> (May 28, 1994):
 # Today's _Economist_ (p 45) reports that Crimea switched
 # from Kiev to Moscow time sometime after the January elections.
 # For now, we'll guess that there was a 2-hour leap forward on March 27.
-                       2:00    M-Eur   EET%s   1994 Mar 27 2:00s
-                       3:00    Russia  MS%s
+                       2:00    C-Eur   EE%sT   1994 Mar 27 2:00s
+                       3:00    Russia  MOS%sT
 
 # Yugoslavia
-# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Europe/Belgrade 1:22:00 -       LMT     1884
-                       1:00    -       MET     1941 Apr 18 23:00
-                       1:00    M-Eur   MET%s   1945 May  8  2:00s
-                       1:00    1:00  "MET DST" 1945 Sep 16  2:00s
-                       1:00    -       MET     1983
-                       1:00    EU      MET%s
+                       1:00    -       CET     1941 Apr 18 23:00
+                       1:00    C-Eur   CE%sT   1945 May  8  2:00s
+                       1:00    1:00    CEST    1945 Sep 16  2:00s
+                       1:00    -       CET     1983
+                       1:00    EU      CE%sT
 
 ###############################################################################
 
index 57719816f9bba54fadb1a75ce7b504c82f455da2..1d8bd9e6f50bc61f166b3e0b500960dec180e5f7 100644 (file)
@@ -1,4 +1,4 @@
-# @(#)northamerica     7.26
+# @(#)northamerica     7.27
 # also includes Central America and the Caribbean
 
 # This data is by no means authoritative; if you think you know better,
@@ -202,9 +202,9 @@ Zone America/Los_Angeles -7:52:58 - LMT     1883 Nov 18 12:00
 #
 # From Paul Eggert (1995-12-19):
 # Howse writes that Alaska switched from the Julian to the Gregorian calendar,
-# and from east-of-GMT to west-of-GMT days, in 1867 when the US purchased it
-# from Russia.  We omit this transition, since we can't represent changes
-# from Julian to Gregorian.
+# and from east-of-GMT to west-of-GMT days, when the US bought it from Russia.
+# This was on 1867-10-18.  We omit this transition, since we can't represent
+# changes from Julian to Gregorian.
 #
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Juneau     -8:57:41 -     LMT     1900 Aug 20 12:00
@@ -472,12 +472,9 @@ Link       Pacific/Honolulu        HST
 # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which
 # I found in the UCLA library.
 #
-# I invented the abbreviation SPST for St Pierre Standard Time; SPDT likewise.
-# Corrections are welcome!
-#
 # See the `europe' file for Greenland.
 #
-# See the `africa' file for Zone naming conventions.
+# See the `africa' file for time zone naming and abbreviation conventions.
 
 # Canada
 
@@ -839,7 +836,6 @@ Rule        NT_YK   1919    only    -       May     25      2:00    1:00    D
 Rule   NT_YK   1919    only    -       Nov      1      0:00    0       S
 Rule   NT_YK   1942    only    -       Feb      9      2:00    1:00    D
 Rule   NT_YK   1945    only    -       Sep     30      2:00    0       S
-#                                                      0:00 ??
 Rule   NT_YK   1965    only    -       Apr     lastSun 0:00    2:00    DD
 Rule   NT_YK   1965    only    -       Oct     lastSun 2:00    0       S
 Rule   NT_YK   1980    1986    -       Apr     lastSun 2:00    1:00    D
@@ -1158,7 +1154,7 @@ Zone America/El_Salvador -5:56:48 -       LMT     1921            # San Salvador
 
 # Grenada
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
-Zone   America/Grenada -4:07:00 -      LMT     1911 Jul
+Zone   America/Grenada -4:07:00 -      LMT     1911 Jul        # St George's
                        -4:00   -       AST
 
 # Guadeloupe
@@ -1263,7 +1259,7 @@ Zone America/St_Lucia     -4:04:00 -      LMT     1890            # Castries
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Miquelon  -3:44:40 -      LMT     1911 May 15     # St Pierre
                        -4:00   -       AST     1980 May
-                       -3:00   Mont    SP%sT
+                       -3:00   Mont    PM%sT   # Pierre & Miquelon Time
 
 # St Vincent and the Grenadines
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
index c3c5c99fbe498f6bd6fd587c8d30238e070b8dcc..cb5b34bfc6aa84e89e2a50a4a3568f736617a06a 100644 (file)
@@ -1,33 +1,35 @@
-# @(#)southamerica     7.12
+# @(#)southamerica     7.13
 
 # 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> (November 18, 1993):
+# From Paul Eggert <eggert@twinsun.com> (1996-09-03):
 # A good source for time zone historical data outside the U.S. is
 # Thomas G. Shanks, The International Atlas (3rd edition),
 # San Diego: ACS Publications, Inc. (1991).
 # Except where otherwise noted, it is the source for the data below.
 #
-# I invented the abbreviations marked `*' in the following table;
-# the rest are from earlier versions of this file, or from other sources.
-# Some of these are just plausible excuses for common English abbreviations.
+# The following abbreviations are used in this file.
 # Corrections are welcome!
 #              std     dst
 #              LMT             Local Mean Time
 #      -2:00   FST     FDT     Fernando de Noronha
-#      -3:00   EST     EDT     Eastern South America (conflicts with -5:00)
-#      -3:00   ARST    ARDT    Argentina
-#      -4:00   AST     ADT     Andes*, Antilles*, Asuncion*, Atlantic
-#      -4:00   CST     CDT     Chile (conflicts with -6:00)
+#      -3:00   EST     EDT     Eastern Brazil
 #      -4:00   WST     WDT     Western Brazil
-#      -5:00   AST     ADT     Acre (conflicts with -4:00)
-#      -5:00   EST     EDT     Eastern, Ecuador*
-#      -6:00   CST     CDT     Archipelago of Columbus*, Central
-#      -7:00   MST     MDT     Mataveri*, Mountain
+#      -4:00   AST     ADT     Atlantic
+#      -5:00   AST     ADT     Acre
 #
-# See the `africa' file for Zone naming conventions.
+# See the `africa' file for time zone naming and abbreviation conventions.
+# Earlier editions of these tables used the North American style (e.g. ARST and
+# ARDT for Argentine Standard and Daylight Time), but the following quote
+# suggests that it's better to use European style (e.g. ART and ARST).
+#      I suggest the use of _Summer time_ instead of the more cumbersome
+#      _daylight-saving time_.  _Summer time_ seems to be in general use
+#      in Europe and South America.
+#      -- E O Cutler, _New York Times_ (1937-02-14), quoted in
+#      H L Mencken, _The American Language: Supplement I_ (1960), p 466
+
 
 # From Guy Harris:
 # From Official Airline Guide - Worldwide Edition (1987).  Countries not
 # AR was chosen because they are the ISO letters that represent Argentina.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Arg     1930    only    -       Dec      1      0:00    1:00    D
-Rule   Arg     1931    only    -       Apr      1      0:00    0       S
-Rule   Arg     1931    only    -       Oct     15      0:00    1:00    D
-Rule   Arg     1932    1940    -       Mar      1      0:00    0       S
-Rule   Arg     1932    1939    -       Nov      1      0:00    1:00    D
-Rule   Arg     1940    only    -       Jul      1      0:00    1:00    D
-Rule   Arg     1941    only    -       Jun     15      0:00    0       S
-Rule   Arg     1941    only    -       Oct     15      0:00    1:00    D
-Rule   Arg     1943    only    -       Aug      1      0:00    0       S
-Rule   Arg     1943    only    -       Oct     15      0:00    1:00    D
-Rule   Arg     1946    only    -       Mar      1      0:00    0       S
-Rule   Arg     1946    only    -       Oct      1      0:00    1:00    D
-Rule   Arg     1963    only    -       Oct      1      0:00    0       S
-Rule   Arg     1963    only    -       Dec     15      0:00    1:00    D
-Rule   Arg     1964    1966    -       Mar      1      0:00    0       S
-Rule   Arg     1964    1966    -       Oct     15      0:00    1:00    D
-Rule   Arg     1967    only    -       Apr      1      0:00    0       S
-Rule   Arg     1967    1968    -       Oct     Sun<=7  0:00    1:00    D
-Rule   Arg     1968    1969    -       Apr     Sun<=7  0:00    0       S
-Rule   Arg     1974    only    -       Jan     23      0:00    1:00    D
-Rule   Arg     1974    only    -       May      1      0:00    0       S
-Rule   Arg     1974    1976    -       Oct     Sun<=7  0:00    1:00    D
-Rule   Arg     1975    1977    -       Apr     Sun<=7  0:00    0       S
-Rule   Arg     1985    only    -       Nov      2      0:00    1:00    D
-Rule   Arg     1986    only    -       Mar     14      0:00    0       S
-Rule   Arg     1986    1987    -       Oct     25      0:00    1:00    D
-Rule   Arg     1987    only    -       Feb     13      0:00    0       S
-Rule   Arg     1988    only    -       Feb      7      0:00    0       S
-Rule   Arg     1988    only    -       Dec      1      0:00    1:00    D
+Rule   Arg     1930    only    -       Dec      1      0:00    1:00    S
+Rule   Arg     1931    only    -       Apr      1      0:00    0       -
+Rule   Arg     1931    only    -       Oct     15      0:00    1:00    S
+Rule   Arg     1932    1940    -       Mar      1      0:00    0       -
+Rule   Arg     1932    1939    -       Nov      1      0:00    1:00    S
+Rule   Arg     1940    only    -       Jul      1      0:00    1:00    S
+Rule   Arg     1941    only    -       Jun     15      0:00    0       -
+Rule   Arg     1941    only    -       Oct     15      0:00    1:00    S
+Rule   Arg     1943    only    -       Aug      1      0:00    0       -
+Rule   Arg     1943    only    -       Oct     15      0:00    1:00    S
+Rule   Arg     1946    only    -       Mar      1      0:00    0       -
+Rule   Arg     1946    only    -       Oct      1      0:00    1:00    S
+Rule   Arg     1963    only    -       Oct      1      0:00    0       -
+Rule   Arg     1963    only    -       Dec     15      0:00    1:00    S
+Rule   Arg     1964    1966    -       Mar      1      0:00    0       -
+Rule   Arg     1964    1966    -       Oct     15      0:00    1:00    S
+Rule   Arg     1967    only    -       Apr      1      0:00    0       -
+Rule   Arg     1967    1968    -       Oct     Sun<=7  0:00    1:00    S
+Rule   Arg     1968    1969    -       Apr     Sun<=7  0:00    0       -
+Rule   Arg     1974    only    -       Jan     23      0:00    1:00    S
+Rule   Arg     1974    only    -       May      1      0:00    0       -
+Rule   Arg     1974    1976    -       Oct     Sun<=7  0:00    1:00    S
+Rule   Arg     1975    1977    -       Apr     Sun<=7  0:00    0       -
+Rule   Arg     1985    only    -       Nov      2      0:00    1:00    S
+Rule   Arg     1986    only    -       Mar     14      0:00    0       -
+Rule   Arg     1986    1987    -       Oct     25      0:00    1:00    S
+Rule   Arg     1987    only    -       Feb     13      0:00    0       -
+Rule   Arg     1988    only    -       Feb      7      0:00    0       -
+Rule   Arg     1988    only    -       Dec      1      0:00    1:00    S
 #
 # From Hernan G. Otero <hernan@isoft.com.ar> (June 26, 1995):
 # These corrections were contributed by InterSoft Argentina S.A.,
@@ -92,8 +94,8 @@ Rule  Arg     1988    only    -       Dec      1      0:00    1:00    D
 # (Argentinian Naval Hydrography Institute)
 #
 # Shanks gives 1989 Mar 16 and stops after 1990 Mar 4; go with Otero.
-Rule   Arg     1989    1993    -       Mar     Sun>=1  0:00    0       S
-Rule   Arg     1989    1992    -       Oct     Sun>=15 0:00    1:00    D
+Rule   Arg     1989    1993    -       Mar     Sun>=1  0:00    0       -
+Rule   Arg     1989    1992    -       Oct     Sun>=15 0:00    1:00    S
 #
 # From Hernan G. Otero <hernan@isoft.com.ar> (June 26, 1995):
 # From this moment on, the law that mandated the daylight saving
@@ -102,23 +104,23 @@ Rule      Arg     1989    1992    -       Oct     Sun>=15 0:00    1:00    D
 #
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Buenos_Aires -3:53:48 -   LMT     1894 Nov
-                       -4:17   -       CMT     1920 May    # Cordoba Mean Time
-                       -4:00   -       AST     1930 Dec
-                       -4:00   Arg     A%sT    1969 Oct 5
+                       -4:16:44 -      CMT     1920 May    # Cordoba Mean Time
+                       -4:00   -       ART     1930 Dec
+                       -4:00   Arg     AR%sT   1969 Oct 5
                        -3:00   Arg     AR%sT
 
 # Aruba
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Aruba   -4:40:24 -      LMT     1912 Feb 12     # Oranjestad
-                       -4:30   -       NAST    1965    # Netherlands Antilles
+                       -4:30   -       ANT     1965 # Netherlands Antilles Time
                        -4:00   -       AST
 
 # Bolivia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/La_Paz  -4:32:36 -      LMT     1890
-                       -4:33   -       LPMT    1931 Oct 15 # La Paz Mean Time
-                       -4:33   1:00    LPDT    1932 Mar 21
-                       -4:00   -       AST
+                       -4:32:36 -      LPMT    1931 Oct 15 # La Paz Mean Time
+                       -4:32:36 1:00   BOST    1932 Mar 21 # Bolivia ST
+                       -4:00   -       BOT     # Bolivia Time
 
 # Brazil
 
@@ -164,26 +166,26 @@ Zone      America/La_Paz  -4:32:36 -      LMT     1890
 # about time zone changes after 1990 Feb 11.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Brazil  1931    only    -       Oct      3      11:00   1       D
+Rule   Brazil  1931    only    -       Oct      3      11:00   1:00    D
 Rule   Brazil  1932    1933    -       Apr      1       0:00   0       S
-Rule   Brazil  1932    only    -       Oct      3       0:00   1       D
-Rule   Brazil  1949    1952    -       Dec      1       0:00   1       D
+Rule   Brazil  1932    only    -       Oct      3       0:00   1:00    D
+Rule   Brazil  1949    1952    -       Dec      1       0:00   1:00    D
 Rule   Brazil  1950    only    -       Apr     16       0:00   0       S
 Rule   Brazil  1951    1953    -       Apr      1       0:00   0       S
-Rule   Brazil  1963    only    -       Dec      9       0:00   1       D
+Rule   Brazil  1963    only    -       Dec      9       0:00   1:00    D
 Rule   Brazil  1964    only    -       Mar      1       0:00   0       S
-Rule   Brazil  1965    only    -       Jan     31       0:00   1       D
+Rule   Brazil  1965    only    -       Jan     31       0:00   1:00    D
 Rule   Brazil  1965    only    -       Apr      1       0:00   0       S
-Rule   Brazil  1965    only    -       Dec      1       0:00   1       D
+Rule   Brazil  1965    only    -       Dec      1       0:00   1:00    D
 Rule   Brazil  1966    1968    -       Mar      1       0:00   0       S
-Rule   Brazil  1966    1967    -       Nov      1       0:00   1       D
-Rule   Brazil  1985    only    -       Nov      2       0:00   1       D
+Rule   Brazil  1966    1967    -       Nov      1       0:00   1:00    D
+Rule   Brazil  1985    only    -       Nov      2       0:00   1:00    D
 Rule   Brazil  1986    only    -       Mar     15       0:00   0       S
-Rule   Brazil  1986    1987    -       Oct     Sat<=28  0:00   1       D
+Rule   Brazil  1986    1987    -       Oct     Sat<=28  0:00   1:00    D
 Rule   Brazil  1987    only    -       Feb     14       0:00   0       S
 Rule   Brazil  1988    only    -       Feb      7       0:00   0       S
 Rule   Brazil  1989    only    -       Jan     22       0:00   0       S
-Rule   Brazil  1988    max     -       Oct     Sun>=15  0:00   1       D
+Rule   Brazil  1988    max     -       Oct     Sun>=15  0:00   1:00    D
 Rule   Brazil  1990    max     -       Feb     Sun>=8   0:00   0       S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Noronha   -2:09:40 -      LMT     1914
@@ -209,21 +211,21 @@ Zone America/Porto_Acre   -4:31:12 -      LMT     1914
 # of October....  The law is the same for March and October.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Chile   1918    only    -       Sep     1       0:00    1:00    D
-Rule   Chile   1919    only    -       Jul     2       0:00    0       S
-Rule   Chile   1927    1931    -       Sep     1       0:00    1:00    D
-Rule   Chile   1928    1932    -       Apr     1       0:00    0       S
-Rule   Chile   1969    max     -       Oct     Sun>=9  0:00    1:00    D
-Rule   Chile   1970    max     -       Mar     Sun>=9  0:00    0       S
+Rule   Chile   1918    only    -       Sep     1       0:00    1:00    S
+Rule   Chile   1919    only    -       Jul     2       0:00    0       -
+Rule   Chile   1927    1931    -       Sep     1       0:00    1:00    S
+Rule   Chile   1928    1932    -       Apr     1       0:00    0       -
+Rule   Chile   1969    max     -       Oct     Sun>=9  0:00    1:00    S
+Rule   Chile   1970    max     -       Mar     Sun>=9  0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Santiago  -4:42:40 -      LMT     1890
-                       -4:43   -       SMT     1910        # Santiago Mean Time
-                       -5:00   Chile   C%sT    1932 Sep
-                       -4:00   Chile   C%sT
+                       -4:42:40 -      SMT     1910        # Santiago Mean Time
+                       -5:00   Chile   CL%sT   1932 Sep    # Chile Time
+                       -4:00   Chile   CL%sT
 Zone Pacific/Easter    -7:17:28 -      LMT     1890        # Mataveri
-                       -7:17   -       MMT     1932 Sep    # Mataveri Mean Time
-                       -7:00   Chile   M%sT    1982 Mar 14
-                       -6:00   Chile   C%sT
+                       -7:17:28 -      MMT     1932 Sep    # Mataveri Mean Time
+                       -7:00   Chile   EAS%sT  1982 Mar 14 # Easter I Time
+                       -6:00   Chile   EAS%sT
 #
 # Whitman says Juan Fernandez Is are like America/Santiago.
 # San Ambrosio, San Felix
@@ -233,56 +235,57 @@ Zone Pacific/Easter       -7:17:28 -      LMT     1890        # Mataveri
 # Colombia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Bogota  -4:56:20 -      LMT     1884 Mar 13
-                       -4:56   -       BMT     1914 Nov 23 # Bogota Mean Time
-                       -5:00   -       EST
+                       -4:56:20 -      BMT     1914 Nov 23 # Bogota Mean Time
+                       -5:00   -       COT     # Colombia Time
 # Malpelo, Providencia, San Andres
 # no information; probably like America/Bogota
 
 # Curacao
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Curacao -4:35:44 -      LMT     1912 Feb 12     # Willemstad
-                       -4:30   -       NAST    1965    # Netherlands Antilles
+                       -4:30   -       ANT     1965 # Netherlands Antilles Time
                        -4:00   -       AST
 
 # Ecuador
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Guayaquil -5:19:20 -      LMT     1890
-                       -5:14   -       QMT     1931 # Quito Mean Time
-                       -5:00   -       EST
+                       -5:14:00 -      QMT     1931 # Quito Mean Time
+                       -5:00   -       ECT          # Ecuador Time
 Zone Pacific/Galapagos -5:58:24 -      LMT     1931 # Puerto Baquerizo Moreno
-                       -5:00   -       EST     1986
-                       -6:00   -       CST
+                       -5:00   -       ECT     1986
+                       -6:00   -       GALT         # Galapagos Time
 
 # Falklands
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Falk    1937    1938    -       Sep     lastSun 0:00    1:00    D
-Rule   Falk    1938    1942    -       Mar     Sun>=19 0:00    0       S
-Rule   Falk    1939    only    -       Oct     1       0:00    1:00    D
-Rule   Falk    1940    1942    -       Sep     lastSun 0:00    1:00    D
-Rule   Falk    1943    only    -       Jan     1       0:00    0       S
-Rule   Falk    1983    only    -       Sep     lastSun 0:00    1:00    D
-Rule   Falk    1984    1985    -       Apr     lastSun 0:00    0       S
-Rule   Falk    1984    only    -       Sep     16      0:00    1:00    D
-Rule   Falk    1985    max     -       Sep     Sun>=9  0:00    1:00    D
-Rule   Falk    1986    max     -       Apr     Sun>=16 0:00    0       S
+Rule   Falk    1937    1938    -       Sep     lastSun 0:00    1:00    S
+Rule   Falk    1938    1942    -       Mar     Sun>=19 0:00    0       -
+Rule   Falk    1939    only    -       Oct     1       0:00    1:00    S
+Rule   Falk    1940    1942    -       Sep     lastSun 0:00    1:00    S
+Rule   Falk    1943    only    -       Jan     1       0:00    0       -
+Rule   Falk    1983    only    -       Sep     lastSun 0:00    1:00    S
+Rule   Falk    1984    1985    -       Apr     lastSun 0:00    0       -
+Rule   Falk    1984    only    -       Sep     16      0:00    1:00    S
+Rule   Falk    1985    max     -       Sep     Sun>=9  0:00    1:00    S
+Rule   Falk    1986    max     -       Apr     Sun>=16 0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Atlantic/Stanley  -3:51:24 -      LMT     1890
-                       -3:51   -       SMT     1912 Mar 12  # Stanley Mean Time
-                       -4:00   Falk    A%sT    1983 May
-                       -3:00   Falk    E%sT    1985 Sep 15
-                       -4:00   Falk    A%sT
+                       -3:51:24 -      SMT     1912 Mar 12  # Stanley Mean Time
+                       -4:00   Falk    FK%sT   1983 May     # Falkland Is Time
+                       -3:00   Falk    FK%sT   1985 Sep 15
+                       -4:00   Falk    FK%sT
 
 # French Guiana
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Cayenne   -3:29:20 -      LMT     1911 Jul
-                       -4:00   -       AST     1967 Oct
-                       -3:00   -       EST
+                       -4:00   -       GFT     1967 Oct # French Guiana Time
+                       -3:00   -       GFT
 
 # Guyana
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Guyana  -3:52:40 -      LMT     1915 Mar        # Georgetown
-                       -3:45   -       BGST    1975 Jul 31  # British Guiana ST
-                       -3:00   -       EST
+                       -3:45   -       GBGT    1966 May 26 # Br Guiana Time
+                       -3:45   -       GYT     1975 Jul 31 # Guyana Time
+                       -3:00   -       GYT
 
 
 # Paraguay
@@ -297,39 +300,39 @@ Zone      America/Guyana  -3:52:40 -      LMT     1915 Mar        # Georgetown
 
 # From Shanks (1991):
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Para    1975    1978    -       Oct      1      0:00    1:00    D
-Rule   Para    1975    1978    -       Mar      1      0:00    0       S
+Rule   Para    1975    1978    -       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    max     -       Apr      1      0:00    0       S
-Rule   Para    1980    1988    -       Oct      1      0:00    1:00    D
-Rule   Para    1989    only    -       Oct     22      0:00    1:00    D
-Rule   Para    1990    max     -       Oct      1      0:00    1:00    D
+Rule   Para    1980    max     -       Apr      1      0:00    0       -
+Rule   Para    1980    1988    -       Oct      1      0:00    1:00    S
+Rule   Para    1989    only    -       Oct     22      0:00    1:00    S
+Rule   Para    1990    max     -       Oct      1      0:00    1:00    S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Asuncion  -3:50:40 -      LMT     1890
-                       -3:51   -       AMT     1931 Oct 10 # Asuncion Mean Time
-                       -4:00   -       AST     1972 Oct
-                       -3:00   -       EST     1974 Apr
-                       -4:00   Para    A%sT
+                       -3:50:40 -      AMT     1931 Oct 10 # Asuncion Mean Time
+                       -4:00   -       PYT     1972 Oct # Paraguay Time
+                       -3:00   -       PYT     1974 Apr
+                       -4:00   Para    PY%sT
 
 # Peru
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Peru    1938    only    -       Jan      1      0:00    1:00    D
-Rule   Peru    1938    only    -       Apr      1      0:00    0       S
-Rule   Peru    1938    1939    -       Sep     lastSun 0:00    1:00    D
-Rule   Peru    1939    1940    -       Mar     Sun>=24 0:00    0       S
-Rule   Peru    1987    only    -       Jan      1      0:00    1:00    D
-Rule   Peru    1987    only    -       Apr      1      0:00    0       S
-Rule   Peru    1990    only    -       Jan      1      0:00    1:00    D
-Rule   Peru    1990    only    -       Apr      1      0:00    0       S
+Rule   Peru    1938    only    -       Jan      1      0:00    1:00    S
+Rule   Peru    1938    only    -       Apr      1      0:00    0       -
+Rule   Peru    1938    1939    -       Sep     lastSun 0:00    1:00    S
+Rule   Peru    1939    1940    -       Mar     Sun>=24 0:00    0       -
+Rule   Peru    1987    only    -       Jan      1      0:00    1:00    S
+Rule   Peru    1987    only    -       Apr      1      0:00    0       -
+Rule   Peru    1990    only    -       Jan      1      0:00    1:00    S
+Rule   Peru    1990    only    -       Apr      1      0:00    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Lima    -5:08:12 -      LMT     1890
-                       -5:09   -       LMT     1908 Jul 28
-                       -5:00   Peru    E%sT
+                       -5:09   -       LMT     1908 Jul 28 # Lima Mean Time
+                       -5:00   Peru    PE%sT   # Peru Time
 
 # South Georgia
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone Atlantic/South_Georgia -2:26:08 - LMT     1890            # Grytviken
-                       -2:00   -       FST
+                       -2:00   -       GST     # South Georgia Time
 
 # South Sandwich Is
 # uninhabited
@@ -339,8 +342,9 @@ Zone Atlantic/South_Georgia -2:26:08 -      LMT     1890            # Grytviken
 Zone America/Paramaribo        -3:40:40 -      LMT     1911
                        -3:40:52 -      PMT     1935     # Paramaribo Mean Time
                        -3:40:36 -      PMT     1945 Oct # The capital moved?
-                       -3:30   -       DGST    1984 Oct # Dutch Guiana Std Time
-                       -3:00   -       EST
+                       -3:30   -       NEGT    1975 Nov 20 # Dutch Guiana Time
+                       -3:30   -       SRT     1984 Oct # Suriname Time
+                       -3:00   -       SRT
 
 # Trinidad and Tobago
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
@@ -353,55 +357,55 @@ Zone America/Port_of_Spain -4:06:04 -     LMT     1912 Mar 2
 # From Shanks (1991):
 # 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    HD
-Rule   Uruguay 1924    1926    -       Apr      1       0:00   0       S
-Rule   Uruguay 1924    1925    -       Oct      1       0:00   0:30    HD
-Rule   Uruguay 1933    1935    -       Oct     lastSun  0:00   0:30    HD
+Rule   Uruguay 1923    only    -       Oct      2       0:00   0:30    HS
+Rule   Uruguay 1924    1926    -       Apr      1       0:00   0       -
+Rule   Uruguay 1924    1925    -       Oct      1       0:00   0:30    HS
+Rule   Uruguay 1933    1935    -       Oct     lastSun  0:00   0:30    HS
 # Shanks gives 1935 Apr 1 0:00 and 1936 Mar 30 0:00; go with Whitman.
-Rule   Uruguay 1934    1936    -       Mar     Sat>=25 23:30s  0       S
-Rule   Uruguay 1936    only    -       Nov      1       0:00   0:30    HD
-Rule   Uruguay 1937    1941    -       Mar     lastSun  0:00   0       S
+Rule   Uruguay 1934    1936    -       Mar     Sat>=25 23:30s  0       -
+Rule   Uruguay 1936    only    -       Nov      1       0:00   0:30    HS
+Rule   Uruguay 1937    1941    -       Mar     lastSun  0:00   0       -
 # Whitman gives 1937 Oct 3; go with Shanks.
-Rule   Uruguay 1937    1940    -       Oct     lastSun  0:00   0:30    HD
+Rule   Uruguay 1937    1940    -       Oct     lastSun  0:00   0:30    HS
 # Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13,
 # and 1943 Apr 13 ``to present time''; go with Shanks.
-Rule   Uruguay 1941    only    -       Aug      1       0:00   0       S
-Rule   Uruguay 1942    only    -       Jan      1       0:00   0:30    HD
-Rule   Uruguay 1942    only    -       Dec     14       0:00   1:00    D
-Rule   Uruguay 1943    only    -       Mar     14       0:00   0       S
-Rule   Uruguay 1959    only    -       May     24       0:00   1:00    D
-Rule   Uruguay 1959    only    -       Nov     15       0:00   0       S
-Rule   Uruguay 1960    only    -       Jan     17       0:00   1:00    D
-Rule   Uruguay 1960    only    -       Mar      6       0:00   0       S
-Rule   Uruguay 1965    1967    -       Apr     Sun>=1   0:00   1:00    D
-Rule   Uruguay 1965    only    -       Sep     26       0:00   0       S
-Rule   Uruguay 1966    1967    -       Oct     31       0:00   0       S
-Rule   Uruguay 1968    1970    -       May     27       0:00   0:30    HD
-Rule   Uruguay 1968    1970    -       Dec      2       0:00   0       S
-Rule   Uruguay 1972    only    -       Apr     24       0:00   1:00    D
-Rule   Uruguay 1972    only    -       Aug     15       0:00   0       S
-Rule   Uruguay 1974    only    -       Mar     10       0:00   0:30    HD
-Rule   Uruguay 1974    only    -       Dec     22       0:00   1:00    D
-Rule   Uruguay 1976    only    -       Oct      1       0:00   0       S
-Rule   Uruguay 1977    only    -       Dec      4       0:00   1:00    D
-Rule   Uruguay 1978    only    -       Apr      1       0:00   0       S
-Rule   Uruguay 1979    only    -       Oct      1       0:00   1:00    D
-Rule   Uruguay 1980    only    -       May      1       0:00   0       S
-Rule   Uruguay 1987    only    -       Dec     14       0:00   1:00    D
-Rule   Uruguay 1988    only    -       Mar     14       0:00   0       S
-Rule   Uruguay 1988    only    -       Dec     11       0:00   1:00    D
-Rule   Uruguay 1989    only    -       Mar     12       0:00   0       S
-Rule   Uruguay 1989    only    -       Oct     29       0:00   1:00    D
-Rule   Uruguay 1990    only    -       Mar      4       0:00   0       S
+Rule   Uruguay 1941    only    -       Aug      1       0:00   0       -
+Rule   Uruguay 1942    only    -       Jan      1       0:00   0:30    HS
+Rule   Uruguay 1942    only    -       Dec     14       0:00   1:00    S
+Rule   Uruguay 1943    only    -       Mar     14       0:00   0       -
+Rule   Uruguay 1959    only    -       May     24       0:00   1:00    S
+Rule   Uruguay 1959    only    -       Nov     15       0:00   0       -
+Rule   Uruguay 1960    only    -       Jan     17       0:00   1:00    S
+Rule   Uruguay 1960    only    -       Mar      6       0:00   0       -
+Rule   Uruguay 1965    1967    -       Apr     Sun>=1   0:00   1:00    S
+Rule   Uruguay 1965    only    -       Sep     26       0:00   0       -
+Rule   Uruguay 1966    1967    -       Oct     31       0:00   0       -
+Rule   Uruguay 1968    1970    -       May     27       0:00   0:30    HS
+Rule   Uruguay 1968    1970    -       Dec      2       0:00   0       -
+Rule   Uruguay 1972    only    -       Apr     24       0:00   1:00    S
+Rule   Uruguay 1972    only    -       Aug     15       0:00   0       -
+Rule   Uruguay 1974    only    -       Mar     10       0:00   0:30    HS
+Rule   Uruguay 1974    only    -       Dec     22       0:00   1:00    S
+Rule   Uruguay 1976    only    -       Oct      1       0:00   0       -
+Rule   Uruguay 1977    only    -       Dec      4       0:00   1:00    S
+Rule   Uruguay 1978    only    -       Apr      1       0:00   0       -
+Rule   Uruguay 1979    only    -       Oct      1       0:00   1:00    S
+Rule   Uruguay 1980    only    -       May      1       0:00   0       -
+Rule   Uruguay 1987    only    -       Dec     14       0:00   1:00    S
+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
+Rule   Uruguay 1990    only    -       Mar      4       0:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Montevideo        -3:44:44 -      LMT     1898 Jun 28
-                       -3:45   -       MMT     1920 May  1     # Montevideo MT
-                       -3:30   Uruguay U%sT    1942 Dec 14     # Uruguay ST
-                       -3:00   Uruguay E%sT
+                       -3:44:44 -      MMT     1920 May  1     # Montevideo MT
+                       -3:30   Uruguay UY%sT   1942 Dec 14     # Uruguay Time
+                       -3:00   Uruguay UY%sT
 
 # Venezuela
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Caracas -4:27:44 -      LMT     1890
-                       -4:28   -       CMT     1912 Feb 12  # Caracas Mean Time
-                       -4:30   -       VZT     1965            # Venezuela Time
-                       -4:00   -       AST
+                       -4:27:44 -      CMT     1912 Feb 12  # Caracas Mean Time
+                       -4:30   -       VET     1965         # Venezuela Time
+                       -4:00   -       VET
index 0cec89369c3cf79a66785f33e11815f49413dd87..a354a1ece399f5a531f21518cae63b4b7c9251f7 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef lint
 #ifndef NOID
-static char    elsieid[] = "@(#)zic.c  7.77";
+static char    elsieid[] = "@(#)zic.c  7.78";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -136,9 +136,9 @@ static void usage P((void));
 static void    writezone P((const char * name));
 static int     yearistype P((int year, const char * type));
 
-#if !HAVE_STRERROR
+#if !(HAVE_STRERROR - 0)
 static char *  strerror P((int));
-#endif /* !HAVE_STRERROR */
+#endif /* !(HAVE_STRERROR - 0) */
 
 static int             charcnt;
 static int             errors;
@@ -375,19 +375,18 @@ char * const      ptr;
 ** Error handling.
 */
 
-#if ! HAVE_STRERROR
+#if !(HAVE_STRERROR - 0)
 static char *
 strerror(errnum)
 int    errnum;
 {
-       extern char *sys_errlist[];
-       extern int sys_nerr;
+       extern char *   sys_errlist[];
+       extern int      sys_nerr;
 
-       if (errnum > 0 && errnum <= sys_nerr)
-               return sys_errlist[errnum];
-       return "Unknown system error";
+       return (errnum > 0 && errnum <= sys_nerr) ?
+               sys_errlist[errnum] : "Unknown system error";
 }
-#endif /* ! HAVE_STRERROR */
+#endif /* !(HAVE_STRERROR - 0) */
 
 static void
 eats(name, num, rname, rnum)
index a0013984094626af990865ce688d3e1014588999..f55c41ed850cf302ecc6f948ad96e7886c979a0a 100644 (file)
--- a/version.c
+++ b/version.c
@@ -28,7 +28,7 @@ This is free software; see the source for copying conditions.\n\
 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
 PARTICULAR PURPOSE.\n"
 #include "version-info.h"
-"Report bugs to <bug-glibc@gnu.ai.mit.edu>.\n";
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n";
 
 #include <unistd.h>