summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog163
-rw-r--r--Make-dist9
-rw-r--r--README4
-rwxr-xr-xconfigure28
-rw-r--r--configure.in4
-rw-r--r--crypt-README14
-rw-r--r--gnu-stabs.h75
-rw-r--r--inet/Makefile2
-rw-r--r--inet/rcmd.c2
-rw-r--r--libio/Makefile2
-rw-r--r--libio/stdio.h27
-rw-r--r--manual/Makefile2
-rw-r--r--nss/nss_files/files-parse.c18
-rw-r--r--resolv/Makefile6
-rw-r--r--shadow/putspent.c20
-rw-r--r--shadow/sgetspent_r.c19
-rw-r--r--string/tester.c42
-rw-r--r--sysdeps/alpha/s_copysign.S (renamed from sysdeps/alpha/copysign.S)0
-rw-r--r--sysdeps/alpha/s_fabs.S (renamed from sysdeps/alpha/fabs.S)5
-rw-r--r--sysdeps/generic/get_str.c213
-rw-r--r--sysdeps/generic/prof-freq.c59
-rw-r--r--sysdeps/i386/strrchr.S12
-rw-r--r--sysdeps/ieee754/cbrt.c120
-rw-r--r--sysdeps/ieee754/drem.c107
-rw-r--r--sysdeps/ieee754/logb.c48
-rw-r--r--sysdeps/ieee754/sqrt.c120
-rw-r--r--sysdeps/m68k/fpu/__math.h4
-rw-r--r--sysdeps/m68k/fpu/e_acos.c6
-rw-r--r--sysdeps/m68k/fpu/e_fmod.c7
-rw-r--r--sysdeps/m68k/fpu/k_cos.c2
-rw-r--r--sysdeps/m68k/fpu/k_sin.c4
-rw-r--r--sysdeps/m68k/fpu/k_tan.c6
-rw-r--r--sysdeps/m68k/fpu/s_atan.c1
-rw-r--r--sysdeps/m68k/fpu/s_frexp.c1
-rw-r--r--sysdeps/m68k/fpu/s_ilogb.c1
-rw-r--r--sysdeps/m68k/fpu/s_isinf.c1
-rw-r--r--sysdeps/m68k/fpu/s_ldexp.c1
-rw-r--r--sysdeps/m68k/fpu/s_modf.c1
-rw-r--r--sysdeps/m68k/s_isinfl.c (renamed from sysdeps/m68k/isinfl.c)0
-rw-r--r--sysdeps/m68k/s_isnanl.c (renamed from sysdeps/m68k/isnanl.c)0
-rw-r--r--sysdeps/mach/hurd/prof-freq.c2
-rw-r--r--sysdeps/sparc/e_sqrt.c (renamed from sysdeps/sparc/sqrt.c)2
-rw-r--r--sysdeps/stub/cbrt.c32
-rw-r--r--sysdeps/stub/cos.c32
-rw-r--r--sysdeps/stub/drem.c33
-rw-r--r--sysdeps/stub/isinf.c31
-rw-r--r--sysdeps/stub/isinfl.c33
-rw-r--r--sysdeps/stub/isnanl.c33
-rw-r--r--sysdeps/stub/logb.c31
-rw-r--r--sysdeps/stub/sin.c32
-rw-r--r--sysdeps/stub/sqrt.c32
-rw-r--r--sysdeps/tahoe/log10.c22
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/i386/init-first.h27
-rw-r--r--sysdeps/unix/sysv/linux/m68k/init-first.h12
-rw-r--r--sysdeps/vax/Dist1
-rw-r--r--sysdeps/vax/bcmp.s57
-rw-r--r--sysdeps/vax/index.s99
-rw-r--r--sysdeps/vax/infnan.c62
-rw-r--r--sysdeps/vax/log10.c28
-rw-r--r--sysdeps/vax/memcmp.s2
-rw-r--r--sysdeps/vax/rindex.s113
-rw-r--r--sysdeps/vax/strchr.s2
-rw-r--r--sysdeps/vax/strrchr.s2
-rw-r--r--time/africa227
-rw-r--r--time/antarctica160
-rw-r--r--time/asia524
-rw-r--r--time/australasia149
-rw-r--r--time/europe1416
-rw-r--r--time/northamerica18
-rw-r--r--time/southamerica332
-rw-r--r--time/zic.c19
-rw-r--r--version.c2
73 files changed, 1835 insertions, 2889 deletions
diff --git a/ChangeLog b/ChangeLog
index c052ebf06a..92b1e8a061 100644
--- 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.
diff --git a/Make-dist b/Make-dist
index 10ea43c06b..ec0f10bd8e 100644
--- 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 8f2c548dd1..c04bef259c 100644
--- 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
diff --git a/configure b/configure
index 2d03f8c6da..fc7595cdf8 100755
--- 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
diff --git a/configure.in b/configure.in
index 76055a2342..cd9de13063 100644
--- a/configure.in
+++ b/configure.in
@@ -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
index c80ddf5c15..0000000000
--- a/crypt-README
+++ /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
index 3cdc91def8..0000000000
--- a/gnu-stabs.h
+++ /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 */
diff --git a/inet/Makefile b/inet/Makefile
index e97da7f1ce..fbac0dc4c8 100644
--- a/inet/Makefile
+++ b/inet/Makefile
@@ -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 \
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 7a29db2155..00fa965fd7 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -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;
}
}
diff --git a/libio/Makefile b/libio/Makefile
index 355a79a0e5..1d0ec937bf 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -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
diff --git a/libio/stdio.h b/libio/stdio.h
index 0d6c5e6741..ce3da7df4c 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -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 */
diff --git a/manual/Makefile b/manual/Makefile
index c0a5782ea7..5c217815b2 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -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)
diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c
index c9fb1f81e9..ece253d017 100644
--- a/nss/nss_files/files-parse.c
+++ b/nss/nss_files/files-parse.c
@@ -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) == ':')
diff --git a/resolv/Makefile b/resolv/Makefile
index 51257a5917..fffaca3948 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -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
diff --git a/shadow/putspent.c b/shadow/putspent.c
index 59dbfda172..b638057bae 100644
--- a/shadow/putspent.c
+++ b/shadow/putspent.c
@@ -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;
diff --git a/shadow/sgetspent_r.c b/shadow/sgetspent_r.c
index 134a45e5b4..03c96b581b 100644
--- a/shadow/sgetspent_r.c
+++ b/shadow/sgetspent_r.c
@@ -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);
}
)
diff --git a/string/tester.c b/string/tester.c
index e57b279fa4..d376db2a67 100644
--- a/string/tester.c
+++ b/string/tester.c
@@ -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... */
}
diff --git a/sysdeps/alpha/copysign.S b/sysdeps/alpha/s_copysign.S
index 95eb608666..95eb608666 100644
--- a/sysdeps/alpha/copysign.S
+++ b/sysdeps/alpha/s_copysign.S
diff --git a/sysdeps/alpha/fabs.S b/sysdeps/alpha/s_fabs.S
index dff8390b5a..12c0abdf75 100644
--- a/sysdeps/alpha/fabs.S
+++ b/sysdeps/alpha/s_fabs.S
@@ -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
index 182815ee18..0000000000
--- a/sysdeps/generic/get_str.c
+++ /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;
- }
-}
diff --git a/sysdeps/generic/prof-freq.c b/sysdeps/generic/prof-freq.c
index c69b43ec09..4ad42124e8 100644
--- a/sysdeps/generic/prof-freq.c
+++ b/sysdeps/generic/prof-freq.c
@@ -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);
-}
-
-
diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
index 26d6a22d6b..58058e1195 100644
--- a/sysdeps/i386/strrchr.S
+++ b/sysdeps/i386/strrchr.S
@@ -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
index fe5fb95511..0000000000
--- a/sysdeps/ieee754/cbrt.c
+++ /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
index cab3a04535..0000000000
--- a/sysdeps/ieee754/drem.c
+++ /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
index 918de9ebad..0000000000
--- a/sysdeps/ieee754/logb.c
+++ /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
index 7e350e0d91..0000000000
--- a/sysdeps/ieee754/sqrt.c
+++ /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);
-}
diff --git a/sysdeps/m68k/fpu/__math.h b/sysdeps/m68k/fpu/__math.h
index 2cbb4ca388..4992aea561 100644
--- a/sysdeps/m68k/fpu/__math.h
+++ b/sysdeps/m68k/fpu/__math.h
@@ -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. */
diff --git a/sysdeps/m68k/fpu/e_acos.c b/sysdeps/m68k/fpu/e_acos.c
index ae77dabf98..61c374d917 100644
--- a/sysdeps/m68k/fpu/e_acos.c
+++ b/sysdeps/m68k/fpu/e_acos.c
@@ -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);
}
diff --git a/sysdeps/m68k/fpu/e_fmod.c b/sysdeps/m68k/fpu/e_fmod.c
index 0b2468c06d..bf2f7ed1bb 100644
--- a/sysdeps/m68k/fpu/e_fmod.c
+++ b/sysdeps/m68k/fpu/e_fmod.c
@@ -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);
}
diff --git a/sysdeps/m68k/fpu/k_cos.c b/sysdeps/m68k/fpu/k_cos.c
index 61f566f6a1..6bb9090568 100644
--- a/sysdeps/m68k/fpu/k_cos.c
+++ b/sysdeps/m68k/fpu/k_cos.c
@@ -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
diff --git a/sysdeps/m68k/fpu/k_sin.c b/sysdeps/m68k/fpu/k_sin.c
index 3eed1d466c..f10c7f9801 100644
--- a/sysdeps/m68k/fpu/k_sin.c
+++ b/sysdeps/m68k/fpu/k_sin.c
@@ -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)
diff --git a/sysdeps/m68k/fpu/k_tan.c b/sysdeps/m68k/fpu/k_tan.c
index 7f1b729b96..9c222cd6e1 100644
--- a/sysdeps/m68k/fpu/k_tan.c
+++ b/sysdeps/m68k/fpu/k_tan.c
@@ -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
diff --git a/sysdeps/m68k/fpu/s_atan.c b/sysdeps/m68k/fpu/s_atan.c
index 29717d4395..99b3024326 100644
--- a/sysdeps/m68k/fpu/s_atan.c
+++ b/sysdeps/m68k/fpu/s_atan.c
@@ -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
diff --git a/sysdeps/m68k/fpu/s_frexp.c b/sysdeps/m68k/fpu/s_frexp.c
index 16f30394b2..8b38086e27 100644
--- a/sysdeps/m68k/fpu/s_frexp.c
+++ b/sysdeps/m68k/fpu/s_frexp.c
@@ -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
diff --git a/sysdeps/m68k/fpu/s_ilogb.c b/sysdeps/m68k/fpu/s_ilogb.c
index c80a288949..39c871481d 100644
--- a/sysdeps/m68k/fpu/s_ilogb.c
+++ b/sysdeps/m68k/fpu/s_ilogb.c
@@ -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
diff --git a/sysdeps/m68k/fpu/s_isinf.c b/sysdeps/m68k/fpu/s_isinf.c
index 570a7ba7bb..7d4b1c44a5 100644
--- a/sysdeps/m68k/fpu/s_isinf.c
+++ b/sysdeps/m68k/fpu/s_isinf.c
@@ -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
diff --git a/sysdeps/m68k/fpu/s_ldexp.c b/sysdeps/m68k/fpu/s_ldexp.c
index ea8bfbab88..18f4d43c37 100644
--- a/sysdeps/m68k/fpu/s_ldexp.c
+++ b/sysdeps/m68k/fpu/s_ldexp.c
@@ -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
diff --git a/sysdeps/m68k/fpu/s_modf.c b/sysdeps/m68k/fpu/s_modf.c
index f704260e21..426d847ebd 100644
--- a/sysdeps/m68k/fpu/s_modf.c
+++ b/sysdeps/m68k/fpu/s_modf.c
@@ -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
diff --git a/sysdeps/m68k/isinfl.c b/sysdeps/m68k/s_isinfl.c
index 1b06d47d52..1b06d47d52 100644
--- a/sysdeps/m68k/isinfl.c
+++ b/sysdeps/m68k/s_isinfl.c
diff --git a/sysdeps/m68k/isnanl.c b/sysdeps/m68k/s_isnanl.c
index 38a9616593..38a9616593 100644
--- a/sysdeps/m68k/isnanl.c
+++ b/sysdeps/m68k/s_isnanl.c
diff --git a/sysdeps/mach/hurd/prof-freq.c b/sysdeps/mach/hurd/prof-freq.c
index 5c0d307bdb..a3707033a6 100644
--- a/sysdeps/mach/hurd/prof-freq.c
+++ b/sysdeps/mach/hurd/prof-freq.c
@@ -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. */
diff --git a/sysdeps/sparc/sqrt.c b/sysdeps/sparc/e_sqrt.c
index bff46e1644..614965d047 100644
--- a/sysdeps/sparc/sqrt.c
+++ b/sysdeps/sparc/e_sqrt.c
@@ -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
index a330b051e5..0000000000
--- a/sysdeps/stub/cbrt.c
+++ /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
index 81cf1b603f..0000000000
--- a/sysdeps/stub/cos.c
+++ /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
index e4c7ceaa73..0000000000
--- a/sysdeps/stub/drem.c
+++ /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
index aa02eb19e3..0000000000
--- a/sysdeps/stub/isinf.c
+++ /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
index 71065c77fa..0000000000
--- a/sysdeps/stub/isinfl.c
+++ /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
index c785b351b8..0000000000
--- a/sysdeps/stub/isnanl.c
+++ /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
index f5af6bfa05..0000000000
--- a/sysdeps/stub/logb.c
+++ /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
index 7100661dbb..0000000000
--- a/sysdeps/stub/sin.c
+++ /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
index 8ca345972e..0000000000
--- a/sysdeps/stub/sqrt.c
+++ /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
index 2cf2cee58b..0000000000
--- a/sysdeps/tahoe/log10.c
+++ /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>
-
diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist
index d898d041a2..d79f1f2970 100644
--- a/sysdeps/unix/sysv/linux/alpha/Dist
+++ b/sysdeps/unix/sysv/linux/alpha/Dist
@@ -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
index 4c61f1b41e..0000000000
--- a/sysdeps/unix/sysv/linux/i386/init-first.h
+++ /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
index 7d8c320b0a..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/init-first.h
+++ /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");
diff --git a/sysdeps/vax/Dist b/sysdeps/vax/Dist
index 9830be29a4..22a693094a 100644
--- a/sysdeps/vax/Dist
+++ b/sysdeps/vax/Dist
@@ -1 +1,2 @@
DEFS.h
+fl.h
diff --git a/sysdeps/vax/bcmp.s b/sysdeps/vax/bcmp.s
deleted file mode 100644
index d980feb8e4..0000000000
--- a/sysdeps/vax/bcmp.s
+++ /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
index e599b276f0..0000000000
--- a/sysdeps/vax/index.s
+++ /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
index 62ec9dca0f..0000000000
--- a/sysdeps/vax/infnan.c
+++ /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
index 08741779eb..0000000000
--- a/sysdeps/vax/log10.c
+++ /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>
diff --git a/sysdeps/vax/memcmp.s b/sysdeps/vax/memcmp.s
index 3854fd8e4a..f7e47ded46 100644
--- a/sysdeps/vax/memcmp.s
+++ b/sysdeps/vax/memcmp.s
@@ -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
index 76d7e29597..0000000000
--- a/sysdeps/vax/rindex.s
+++ /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
diff --git a/sysdeps/vax/strchr.s b/sysdeps/vax/strchr.s
index 18b53838ec..1683f564e2 100644
--- a/sysdeps/vax/strchr.s
+++ b/sysdeps/vax/strchr.s
@@ -103,3 +103,5 @@ Lreent:
beql 2f /* not found: return NULL */
movl r1,r0
2: ret
+
+weak_alias (strchr, index)
diff --git a/sysdeps/vax/strrchr.s b/sysdeps/vax/strrchr.s
index f292eaceab..dffcddaef0 100644
--- a/sysdeps/vax/strrchr.s
+++ b/sysdeps/vax/strrchr.s
@@ -112,3 +112,5 @@ Lreent:
3:
movl r5,r0 /* return stashed pointer */
ret
+
+weak_alias (strrchr, rindex)
diff --git a/time/africa b/time/africa
index d55b598912..110f540064 100644
--- a/time/africa
+++ b/time/africa
@@ -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),
@@ -61,64 +61,95 @@
# 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
diff --git a/time/antarctica b/time/antarctica
index 3c46c1576c..0c78eb6826 100644
--- a/time/antarctica
+++ b/time/antarctica
@@ -1,25 +1,151 @@
-# @(#)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
diff --git a/time/asia b/time/asia
index a5d0ab59f5..2cc414f1df 100644
--- 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),
@@ -25,42 +25,20 @@
# 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
@@ -72,15 +50,15 @@
# 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
diff --git a/time/australasia b/time/australasia
index 960f9e3f55..e65546feb8 100644
--- a/time/australasia
+++ b/time/australasia
@@ -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.
###############################################################################
diff --git a/time/europe b/time/europe
index ce66e8ab58..73fa55c410 100644
--- a/time/europe
+++ b/time/europe
@@ -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).
@@ -16,43 +16,24 @@
#
# 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.
@@ -74,9 +55,11 @@
# 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):
#
@@ -134,6 +117,12 @@
# 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
@@ -194,6 +183,12 @@
# 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
###############################################################################
diff --git a/time/northamerica b/time/northamerica
index 57719816f9..1d8bd9e6f5 100644
--- a/time/northamerica
+++ b/time/northamerica
@@ -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]
diff --git a/time/southamerica b/time/southamerica
index c3c5c99fbe..cb5b34bfc6 100644
--- a/time/southamerica
+++ b/time/southamerica
@@ -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
@@ -55,35 +57,35 @@
# 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
diff --git a/time/zic.c b/time/zic.c
index 0cec89369c..a354a1ece3 100644
--- a/time/zic.c
+++ b/time/zic.c
@@ -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)
diff --git a/version.c b/version.c
index a001398409..f55c41ed85 100644
--- 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>