aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-05 23:25:04 +0000
committerRoland McGrath <roland@gnu.org>1996-06-05 23:25:04 +0000
commitdfe1754a556c167df741843ef0114f5325717a7c (patch)
tree90bcf729e52edc7666cd58886fa6dbafc585d6f7
parentWed Jun 5 15:57:28 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> (diff)
downloadglibc-dfe1754a556c167df741843ef0114f5325717a7c.tar.gz
glibc-dfe1754a556c167df741843ef0114f5325717a7c.tar.bz2
glibc-dfe1754a556c167df741843ef0114f5325717a7c.zip
* time/tzfile.h, time/private.h, time/zdump.c, time/zic.c,
time/africa, time/asia, time/australasia, time/europe, time/northamerica, time/southamerica: Updated from ADO 96h. * Make-dist (all-headers): Filter $(sysdep_headers) out of $(headers). (try-sysdeps, +sysdep-names): Check sysdeps/libm-ieee754 too. * Makerules (distinfo-vars): Add sysdep_headers. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Append to this instead of $(headers). * sysdeps/unix/sysv/linux/alpha/Makefile: Likewise. * Make-dist [subdirs-dirs]: Don't prefix $(subdir-dirs) with $(subdir); we are already there. * sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist: Removed.
-rw-r--r--ChangeLog17
-rw-r--r--Make-dist12
-rw-r--r--Makerules4
-rw-r--r--sysdeps/unix/sysv/linux/Makefile12
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Makefile7
-rw-r--r--sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist1
-rw-r--r--time/africa11
-rw-r--r--time/asia103
-rw-r--r--time/australasia40
-rw-r--r--time/europe218
-rw-r--r--time/northamerica73
-rw-r--r--time/private.h7
-rw-r--r--time/southamerica7
-rw-r--r--time/tzfile.h7
-rw-r--r--time/zdump.c7
-rw-r--r--time/zic.c213
16 files changed, 445 insertions, 294 deletions
diff --git a/ChangeLog b/ChangeLog
index ef3680f4a6..c85d427970 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
Wed Jun 5 15:57:28 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+ * time/tzfile.h, time/private.h, time/zdump.c, time/zic.c,
+ time/africa, time/asia, time/australasia, time/europe,
+ time/northamerica, time/southamerica: Updated from ADO 96h.
+
+ * Make-dist (all-headers): Filter $(sysdep_headers) out of $(headers).
+ (try-sysdeps, +sysdep-names): Check sysdeps/libm-ieee754 too.
+
+ * Makerules (distinfo-vars): Add sysdep_headers.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Append to
+ this instead of $(headers).
+ * sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
+
+ * Make-dist [subdirs-dirs]: Don't prefix $(subdir-dirs) with
+ $(subdir); we are already there.
+
+ * sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist: Removed.
+
* mach/Machrules: Undo last change.
(mach-generated): List .uh and .__h files only for $(user-interfaces),
not for each .h in $(interface-headers); server-interfaces have no .uh
diff --git a/Make-dist b/Make-dist
index 02bffc4877..f0c1620654 100644
--- a/Make-dist
+++ b/Make-dist
@@ -48,7 +48,7 @@ endif
# where source files might be found.
ifdef subdir
-all-headers = $(headers)
+all-headers = $(filter-out $(sysdep_headers),$(headers))
else
+distinfo := $(shell MAKEFLAGS= MFLAGS= $(MAKE) -s no_deps=t \
inhibit_interface_rules=t inhibit_mach_syscalls=t \
@@ -67,16 +67,20 @@ foo:=$(shell echo 'IS THIS WORKING??? all-headers=$(all-headers)' >&2)
$(filter %.c %.S %.s %.h %.sub,$(distribute))
foo:=$(shell echo '+maybe-sysdeps=$(+maybe-sysdeps)'>&2)
# Find all the files that have a stub or generic version.
-try-sysdeps := $(foreach dir,$(..)sysdeps/stub $(..)sysdeps/generic,\
+try-sysdeps := $(foreach dir,$(..)sysdeps/stub $(..)sysdeps/generic \
+ $(..)sysdeps/libm-ieee754,\
$(addprefix $(dir)/,$(+maybe-sysdeps)))
foo:=$(shell echo 'try-sysdeps=$(try-sysdeps)'>&2)
+sysdeps := $(wildcard $(try-sysdeps))
foo:=$(shell echo 'stub/generic +sysdeps=$(+sysdeps)'>&2)
-+sysdep-names := $(sort $(notdir $(+sysdeps)))
++sysdep-names := $(sort $(patsubst $(..)sysdeps/generic/%,%,\
+ $(patsubst $(..)sysdeps/stub/%,%,\
+ $(patsubst $(..)sysdeps/libm-ieee754/%,%,\
+ $(+sysdeps)))))
foo:=$(shell echo '+sysdep-names=$(+sysdep-names)' >&2)
ifdef subdir-dirs
-vpath % $(addprefix $(subdir)/,$(subdir-dirs))
+vpath % $(subdir-dirs)
endif
# Now find all the sysdep versions of those files.
diff --git a/Makerules b/Makerules
index e2878e17e5..d770957bf2 100644
--- a/Makerules
+++ b/Makerules
@@ -794,8 +794,8 @@ distinfo: Makefile $(..)Makerules
define distinfo-vars
rm -f $@.new
$(foreach var,subdir subdir-dirs sources elided-routines sysdep_routines \
- headers distribute dont_distribute generated others tests \
- extra-libs $(extra-libs:%=%-routines),
+ headers sysdep_headers distribute dont_distribute generated \
+ others tests extra-libs $(extra-libs:%=%-routines),
echo >> $@.new '$(var) := $($(var))')
echo >> $@.new 'sources += $$(addsuffix .c,$$(elided-routines))'
endef
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 412227a320..ec5119e408 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -1,7 +1,7 @@
ifeq ($(subdir), math)
sysdep_routines += setfpucw
extra-objs += ieee-fpucw.o
-headers += fpu_control.h
+sysdep_headers += fpu_control.h
install-lib += libieee.a
non-lib.a += libieee.a
@@ -18,7 +18,7 @@ ifeq ($(subdir), misc)
sysdep_routines += mount umount xmknod s_ptrace s_sysctl sysctl llseek \
setfsgid setfsuid sysinfo uselib s_reboot
-headers += sys/mount.h sys/sysinfo.h sys/acct.h sys/sysctl.h sys/module.h \
+sysdep_headers += sys/mount.h sys/sysinfo.h sys/acct.h sys/sysctl.h sys/module.h \
sys/io.h sys/klog.h sys/kdaemon.h
install-others += $(includedir)/sys/syscall.h
@@ -45,19 +45,19 @@ endif
ifeq ($(subdir), time)
sysdep_routines += adjtimex
-headers += sys/timex.h
+sysdep_headers += sys/timex.h
endif
ifeq ($(subdir), socket)
-headers += sys/socketcall.h net/if.h
+sysdep_headers += sys/socketcall.h net/if.h
endif
ifeq ($(subdir), sunrpc)
-headers += nfs/nfs.h
+sysdep_headers += nfs/nfs.h
endif
ifeq ($(subdir), termios)
-headers += termio.h
+sysdep_headers += termio.h
endif
rtld-installed-name = ld-gnu.so.1
diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile
index beb8441b46..e6e421da9d 100644
--- a/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/sysdeps/unix/sysv/linux/alpha/Makefile
@@ -1,7 +1,6 @@
ifeq ($(subdir), misc)
-headers += alpha/ptrace.h alpha/regdef.h
+sysdep_headers += alpha/ptrace.h alpha/regdef.h
-sysdep_routines := $(sysdep_routines) \
- ieee_get_fp_control ieee_set_fp_control fpu_control setfpucw \
- sethae ioperm osf_sigprocmask fstatfs statfs
+sysdep_routines += ieee_get_fp_control ieee_set_fp_control fpu_control \
+ setfpucw sethae ioperm osf_sigprocmask fstatfs statfs
endif
diff --git a/sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist b/sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist
deleted file mode 100644
index 69d16ac6bf..0000000000
--- a/sysdeps/unix/sysv/sysv4/solaris2/sparc/Dist
+++ /dev/null
@@ -1 +0,0 @@
-sys-sig.S
diff --git a/time/africa b/time/africa
index ddb472d320..d55b598912 100644
--- a/time/africa
+++ b/time/africa
@@ -1,4 +1,4 @@
-# @(#)africa 7.12
+# @(#)africa 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
@@ -80,7 +80,6 @@
# Algeria
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Algeria 1911 only - Jan 1 0:00s 0 -
Rule Algeria 1916 only - Jun 14 23:00s 1:00 " DST"
Rule Algeria 1916 1919 - Oct Sun<=7 23:00s 0 -
Rule Algeria 1917 only - Mar 24 23:00s 1:00 " DST"
@@ -212,7 +211,6 @@ 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 1900 only - Oct 1 0:00 0 -
Rule Egypt 1940 only - Jul 15 0:00 1:00 " DST"
Rule Egypt 1940 only - Oct 1 0:00 0 -
Rule Egypt 1941 only - Apr 15 0:00 1:00 " DST"
@@ -275,7 +273,6 @@ Zone Africa/Banjul -1:06:36 - LMT 1912
# WATDT is my invention for ``West Africa one-Third Daylight Time''.
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Ghana 1918 only - Jan 1 0:00 0 WAT
# 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 - Dec 31 0:00 0 WAT
@@ -348,7 +345,6 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Libya 1920 only - Jan 1 0:00 0 -
Rule Libya 1951 only - Oct 14 2:00 1:00 " DST"
Rule Libya 1952 only - Jan 1 0:00 0 -
Rule Libya 1953 only - Oct 9 2:00 1:00 " DST"
@@ -416,7 +412,6 @@ Zone Indian/Mayotte 3:00:56 - LMT 1911 Jul # Mamoutzou
# Morocco
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Morocco 1913 only - Oct 26 0:00 0 -
Rule Morocco 1939 only - Sep 12 0:00 1:00 " DST"
Rule Morocco 1939 only - Nov 19 0:00 0 -
Rule Morocco 1940 only - Feb 25 0:00 1:00 " DST"
@@ -504,7 +499,6 @@ Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria
# Sierra Leone
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule SL 1913 only - Oct 26 0:00 0 -
# Whitman gives Mar 31 - Aug 31 for 1931 on; go with Shanks.
Rule SL 1935 1942 - Jun 1 0:00 1:00 S
Rule SL 1935 1942 - Oct 1 0:00 0 -
@@ -528,7 +522,6 @@ Zone Africa/Mogadishu 3:01:28 - LMT 1893 Nov
# South Africa
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule SA 1892 only - Feb 8 0:00 0 -
Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 S
Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -544,7 +537,6 @@ 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 1931 only - Feb 8 0:00 0 -
Rule Sudan 1970 only - May 1 0:00 1:00 " DST"
Rule Sudan 1970 1985 - Oct 15 0:00 0 -
Rule Sudan 1971 only - Apr 30 0:00 1:00 " DST"
@@ -575,7 +567,6 @@ Zone Africa/Lome 0:04:52 - LMT 1893
# Tunisia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Tunisia 1911 only - Mar 9 0:00 0 -
Rule Tunisia 1939 only - Apr 15 23:00s 1:00 " DST"
Rule Tunisia 1939 only - Nov 18 23:00s 0 -
Rule Tunisia 1940 only - Feb 25 23:00s 1:00 " DST"
diff --git a/time/asia b/time/asia
index c9cdc7ebad..a5d0ab59f5 100644
--- a/time/asia
+++ b/time/asia
@@ -1,4 +1,4 @@
-# @(#)asia 7.18
+# @(#)asia 7.23
# 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
@@ -30,10 +30,11 @@
# 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 YSK YSD Yerevan (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*
@@ -69,11 +70,12 @@
###############################################################################
+# These rules for Russia are stolen from the `europe' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-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 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
# Afghanistan
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -82,18 +84,32 @@ Zone Asia/Kabul 4:36:48 - LMT 1890
4:30 - AFT
# Armenia
+# From Paul Eggert (1996-05-04):
+# Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991,
+# but usno1995 has Armenia at 4:00 (with DST), and Edgar Der-Danieliantz
+# <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
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
3:00 - YSK 1957 Mar
- 4:00 Russia YS%s
-# Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991,
-# but usno1995 has Armenia at 4:00 (with DST). Ignore the 1991 switch for now.
+ 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
# Azerbaijan
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Baku 3:19:24 - LMT 1924 May 2
3:00 - BSK 1957 Mar
- 4:00 Russia BS%s 1991 Mar 31 2:00s
+ 4:00 RussiaAsia BS%s 1991 Mar 31 2:00s
3:00 1:00 BSD 1991 Sep 29 2:00s
3:00 - BSK
# Shanks has Baku using Russian DST rules after 1991,
@@ -133,7 +149,7 @@ 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
+Zone Asia/Rangoon 6:24:40 - LMT 1880 # or Yangon
6:25 - RMT 1920
6:30 - BMT 1942 May
9:00 - JST 1945 May 3
@@ -179,7 +195,6 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Shang 1928 only - Jan 1 0:00 0 S
Rule Shang 1940 only - Jun 3 0:00 1:00 D
Rule Shang 1940 1941 - Oct 1 0:00 0 S
Rule Shang 1941 only - Mar 16 0:00 1:00 D
@@ -213,7 +228,6 @@ Zone Asia/Kashgar 5:03:56 - LMT 1928
# Republic of China
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Taiwan 1896 only - Jan 1 0:00 0 S
Rule Taiwan 1945 1951 - May 1 0:00 1:00 D
Rule Taiwan 1945 1951 - Oct 1 0:00 0 S
Rule Taiwan 1952 only - Mar 1 0:00 1:00 D
@@ -232,7 +246,6 @@ Zone Asia/Taipei 8:06:00 - LMT 1896
###############################################################################
# Hong Kong
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule HK 1904 only - Oct 30 0:00 0 -
Rule HK 1946 only - Apr 20 3:30 1:00 S
Rule HK 1946 only - Dec 1 3:30 0 -
Rule HK 1947 only - Apr 13 3:30 1:00 S
@@ -254,7 +267,6 @@ Zone Asia/Hong_Kong 7:36:36 - LMT 1904 Oct 30
# Macao
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Macao 1912 only - Jan 1 0:00 0 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
@@ -278,7 +290,6 @@ Zone Asia/Macao 7:34:20 - LMT 1912
# Cyprus
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Cyprus 1921 only - Nov 14 0:00 0 -
Rule Cyprus 1975 only - Apr 13 0:00 1:00 " DST"
Rule Cyprus 1975 only - Oct 12 0:00 0 -
Rule Cyprus 1976 only - May 15 0:00 1:00 " DST"
@@ -307,9 +318,9 @@ Zone Asia/Nicosia 2:13:28 - LMT 1921 Nov 14
Zone Asia/Tbilisi 2:59:16 - LMT 1880
2:59 - LST 1924 May 2
3:00 - TBSK 1957 Mar
- 4:00 Russia TBS%s 1991 Mar 31 2:00s
+ 4:00 RussiaAsia TBS%s 1991 Mar 31 2:00s
3:00 1:00 TBSD 1991 Sep 29 2:00s
- 3:00 Russia TBS%s 1994 Sep 25 2:00s
+ 3:00 RussiaAsia TBS%s 1994 Sep 25 2:00s
4:00 - TBSK
# India
@@ -348,7 +359,6 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
# Iran
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Iran 1977 only - Nov 1 0:00 0 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
@@ -390,7 +400,6 @@ Zone Asia/Baghdad 2:57:40 - LMT 1890
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Zion 1918 only - Jan 1 0:00 0 S
Rule Zion 1940 only - Jun 1 0:00 1:00 D
Rule Zion 1942 1944 - Nov 1 0:00 0 S
Rule Zion 1943 only - Apr 1 2:00 1:00 D
@@ -553,7 +562,6 @@ 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 1931 only - Jan 1 0:00 0 -
Rule Jordan 1973 only - Jun 6 0:00 1:00 " DST"
Rule Jordan 1973 1975 - Oct 1 0:00 0 -
Rule Jordan 1974 1977 - May 1 0:00 1:00 " DST"
@@ -576,21 +584,31 @@ Zone Asia/Amman 2:23:44 - LMT 1931
2:00 Jordan EET%s
# Kazakhstan
-# From Shanks (1991):
+# From Paul Eggert (1996-04-19):
+# Andrew Evtichov <evti@chevron.com> (1996-04-13) writes that Kazakhstan
+# stayed in sync with Moscow after 1990, and that Aktau is the biggest city
+# 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
+Zone Asia/Alma-Ata 5:07:48 - LMT 1924 May 2 # or Almaty
5:00 - AASK 1957 Mar
- 6:00 Russia AAS%s
-# Shanks has Alma-Ata switching to 5:00 in 1991,
-# but usno1995 has Kazakhstan at 6:00. Ignore the 1991 switch for now.
+ 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
+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
# 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 Russia FS%s 1991 Mar 31 2:00s
+ 6:00 RussiaAsia FS%s 1991 Mar 31 2:00s
5:00 1:00 FSD 1991 Sep 29 2:00s
- 5:00 Russia BS%s
+ 5:00 RussiaAsia BS%s
###############################################################################
@@ -642,7 +660,6 @@ Zone Asia/Vientiane 6:50:24 - LMT 1906 Jun 9
# Lebanon
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Lebanon 1880 only - Jan 1 0:00 0 -
Rule Lebanon 1920 only - Mar 28 0:00 1:00 " DST"
Rule Lebanon 1920 only - Oct 25 0:00 0 -
Rule Lebanon 1921 only - Apr 3 0:00 1:00 " DST"
@@ -685,10 +702,12 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male
5:00 - PKT
# Mongolia
+# Shanks says that Mongolia has three time zones,
+# but usno1995 and http://www.odci.gov/cia/publications/95fact/802389h.gif
+# 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 1978 only - Jan 1 0:00 0 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
@@ -726,16 +745,16 @@ Zone Asia/Karachi 4:28:12 - LMT 1907
# Palestine
# These rules for Egypt are stolen from the `africa' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Egypt 1957 only - May 10 0:00 1:00 " DST"
-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 1959 1965 - Sep 30 3:00 0 -
-Rule Egypt 1966 max - Oct 1 3:00 0 -
+Rule EgyptAsia 1957 only - May 10 0:00 1:00 " DST"
+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 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 Egypt EET%s 1967 Jun 30
+ 2:00 EgyptAsia EET%s 1967 Jun 30
2:00 Zion I%sT
# This will undoubtedly change soon.
@@ -746,7 +765,6 @@ 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 1899 only - May 11 0:00 0 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
@@ -796,7 +814,6 @@ Zone Asia/Colombo 5:19:24 - LMT 1880
# Syria
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Syria 1920 only - Jan 1 0:00 0 -
Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 " DST"
Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
Rule Syria 1962 only - Apr 29 2:00 1:00 " DST"
@@ -828,7 +845,7 @@ Zone Asia/Damascus 2:25:12 - LMT 1920
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
5:00 - DSK 1957 Mar
- 6:00 Russia DS%s 1991
+ 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.
@@ -843,7 +860,7 @@ Zone Asia/Bangkok 6:42:04 - LMT 1880
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Ashkhabad 3:53:32 - LMT 1924 May 2
4:00 - ASK 1957 Mar
- 5:00 Russia AS%s 1991
+ 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.
@@ -857,11 +874,13 @@ Zone Asia/Dubai 3:41:12 - LMT 1920
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2
5:00 - TSK 1957 Mar
- 6:00 Russia TS%s 1991 Mar 31 2:00s
+ 6:00 RussiaAsia TS%s 1991 Mar 31 2:00s
5:00 1:00 TSD 1991 Sep 29 2:00s
5:00 - TSK
# 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.
# Vietnam
# From Paul Eggert <eggert@twinsun.com> (November 18, 1993):
diff --git a/time/australasia b/time/australasia
index 8c92a5b27a..960f9e3f55 100644
--- a/time/australasia
+++ b/time/australasia
@@ -1,4 +1,4 @@
-# @(#)australasia 7.25
+# @(#)australasia 7.27
# This file also includes Pacific islands.
# Notes are at the end of this file
@@ -8,7 +8,6 @@
# Australia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Aus 1895 only - Jan 1 0:00 0 -
# Shanks gives 1917 Jan 1 0:01; go with Whitman (and guess 2:00).
Rule Aus 1916 only - Oct 1 2:00 1:00 -
Rule Aus 1917 only - Mar 25 2:00 0 -
@@ -208,10 +207,6 @@ Zone Pacific/Johnston -10:00 - HST
# uninhabited
# Kiribati
-# From Paul Eggert (1996-01-22):
-# Today's _Wall Street Journal_ (page 1) reports that Kiribati
-# ``declared it the same day throught the country as of Jan. 1, 1995''
-# as part of the competition to be first into the 21st century.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki
12:00 - NZST
@@ -246,8 +241,7 @@ Zone Pacific/Yap 9:12:32 - LMT 1901 # Colonia
9:00 - PLT 1969 Oct
10:00 - GST
Zone Pacific/Truk 10:07:08 - LMT 1901
- 10:00 - GST 1978 Oct
- 11:00 - NCST
+ 10:00 - GST
Zone Pacific/Ponape 10:32:52 - LMT 1901 # Kolonia
11:00 - NCST
Zone Pacific/Kosrae 10:51:56 - LMT 1901
@@ -264,7 +258,6 @@ Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe
# New Caledonia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule NC 1912 only - Jan 13 0:00 0 S
Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 D
Rule NC 1978 1979 - Feb 27 0:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -277,7 +270,6 @@ Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13
# New Zealand
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule NZ 1868 only - Jan 1 0:00 0 S
# Shanks gives 1927 Nov 6 - 1928 Mar 4, 1928 Oct 14 - 1929 Mar 17,
# 1929 Oct 13 - 1930 Mar 16; go with Whitman.
Rule NZ 1927 only - Nov 26 2:00 0:30 HD
@@ -368,10 +360,6 @@ Zone Pacific/Fakaofo -11:24:56 - LMT 1901
-10:00 - THT
# Tonga
-# From Paul Eggert (1996-01-22):
-# Today's _Wall Street Journal_ (page 1) reports that ``Tonga has been plotting
-# to sneak ahead of [New Zealanders] by introducing daylight-saving time.''
-# But since Kiribati has moved the Date Line it's not clear what Tonga will do.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Tongatapu 12:19:20 - LMT 1901
12:20 - TMT 1968 Oct
@@ -384,7 +372,6 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901
# Vanuatu
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Vanuatu 1912 only - Jan 13 0:00 0 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
@@ -840,6 +827,13 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# Johnston data is from usno1995.
+# Kiribati
+
+# From Paul Eggert (1996-01-22):
+# Today's _Wall Street Journal_ (page 1) reports that Kiribati
+# ``declared it the same day throught the country as of Jan. 1, 1995''
+# as part of the competition to be first into the 21st century.
+
# Kwajalein
# In comp.risks 14.87 (26 August 1993), Peter Neumann writes:
@@ -855,9 +849,25 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# (now called the Marianas) kept American date for quite some time.
# Ignore this for now, as we have no hard data. See also Asia/Manila.
+# Micronesia
+
+# Alan Eugene Davis <adavis@kuentos.guam.net> writes (1996-03-16),
+# ``I am certain, having lived there for the past decade, that "Truk"
+# (now properly known as Chuuk) ... is in the time zone GMT+10.''
+#
+# Shanks writes that Truk switched from GMT+10 to GMT+11 on 1978-10-01;
+# ignore this for now.
+
# Samoa
# Howse writes that in 1879 the King of Samoa decided to change
# ``the date in his kingdom from the Antipodean to the American system,
# ordaining -- by a masterpiece of diplomatic flattery -- that
# the Fourth of July should be celebrated twice in that year.''
+
+# Tonga
+
+# From Paul Eggert (1996-01-22):
+# Today's _Wall Street Journal_ (p 1) reports that ``Tonga has been plotting
+# to sneak ahead of [New Zealanders] by introducing daylight-saving time.''
+# Since Kiribati has moved the Date Line it's not clear what Tonga will do.
diff --git a/time/europe b/time/europe
index 04273d277c..b96f23556d 100644
--- a/time/europe
+++ b/time/europe
@@ -1,4 +1,4 @@
-# @(#)europe 7.33
+# @(#)europe 7.37
# 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
@@ -36,7 +36,7 @@
# 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 TSK TSD Tomsk (was 6: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)*
@@ -600,6 +600,11 @@
# 1995-97 is now in place. The Summer Time Order 1994 (SI 1994/2798)
# came into force on 16 November. It restates the dates from the EC
# seventh Summer Time Directive....
+#
+# From Peter Ilieve <peter@aldie.co.uk> (1996-04-20):
+# Proposals for the eighth directive were supposed to have been produced
+# by the Commission by 1 Jan 96. They have not yet appeared (I asked just
+# before Easter).
# From Peter Ilieve <peter@memex.co.uk> (March 28, 1994):
# The [GB-Eire] end date of 22 October [1995] conflicts with your current rule
@@ -642,7 +647,6 @@
# Whitman says Dublin Mean Time was -0:25:21, which is more precise than Shanks.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule GB-Eire 1847 only - Sep 22 0:00 0 GMT
# 1916 to 1925--irregular
Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
@@ -716,21 +720,21 @@ Rule GB-Eire 1972 1980 - Oct Sun>=23 2:00s 0 GMT
Rule GB-Eire 1981 1995 - Mar lastSun 1:00u 1:00 BST
Rule GB-Eire 1981 1989 - Oct Sun>=23 1:00u 0 GMT
Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT
-# See EC for rules starting in 1996.
+# See EU for rules starting in 1996.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/London -0:01:15 - LMT 1847 Sep 22
0:00 GB-Eire %s 1968 Feb 18 2:00
1:00 - BST 1971 Oct 31 2:00
0:00 GB-Eire %s 1996
- 0:00 EC GMT/BST
+ 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:00 GB-Eire %s 1968 Feb 18 2:00
1:00 - BST 1971 Oct 31 3:00
0:00 GB-Eire %s 1996
- 0:00 EC GMT/BST
+ 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
@@ -742,25 +746,24 @@ Zone Europe/Dublin -0:25:21 - LMT 1880 Aug 2
0:00 GB-Eire %s 1968 Feb 18 2:00
1:00 - BST 1971 Oct 31 3:00
0:00 GB-Eire %s 1996
- 0:00 EC GMT/BST
+ 0:00 EU GMT/BST
###############################################################################
# Continental Europe
-# EC rules are for the European Community.
+# EU rules are for the European Union, previously known as the EC, EEC,
+# Common Market, etc.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule EC 1800 only - Jan 1 0:00 0 -
-Rule EC 1977 1980 - Apr Sun>=1 1:00u 1:00 " DST"
-Rule EC 1977 only - Sep lastSun 1:00u 0 -
-Rule EC 1978 only - Oct 1 1:00u 0 -
-Rule EC 1979 1995 - Sep lastSun 1:00u 0 -
-Rule EC 1981 max - Mar lastSun 1:00u 1:00 " DST"
-Rule EC 1996 max - Oct lastSun 1:00u 0 -
-
-# W-Eur differs from EC only in that W-Eur uses standard time.
-Rule W-Eur 1800 only - Jan 1 0:00 0 -
+Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 " DST"
+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 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 only - Sep lastSun 1:00s 0 -
Rule W-Eur 1978 only - Oct 1 1:00s 0 -
@@ -769,18 +772,13 @@ Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 " DST"
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 EC only in that M-Eur uses standard time.
-Rule M-Eur 1800 only - Jan 1 0:00 0 -
+# 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"
-# Shanks says DST was continuous from 1940 Apr 1 to 1942 Nov 2; go with Whitman.
-Rule M-Eur 1940 only - Dec 31 2:00s 0 -
-Rule M-Eur 1941 only - Feb 25 2:00s 1:00 " DST"
-Rule M-Eur 1941 only - Oct 5 2:00s 0 -
-Rule M-Eur 1942 only - Jan 1 2:00s 1:00 " DST"
+# 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 -
@@ -795,7 +793,6 @@ Rule M-Eur 1981 max - Mar lastSun 2:00s 1:00 " DST"
Rule M-Eur 1996 max - Oct lastSun 2:00s 0 -
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Russia 1880 only - Jan 1 0:00 0 -
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"
@@ -818,9 +815,9 @@ Rule Russia 1985 max - Mar lastSun 2:00s 1:00 D
# These are for backward compatibility with older versions.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
-Zone WET 0:00 EC WET%s
+Zone WET 0:00 EU WET%s
Zone MET 1:00 M-Eur MET%s
-Zone EET 2:00 EC EET%s
+Zone EET 2:00 EU EET%s
# Tom Hoffman says that MET is also known as Central European Time
@@ -859,18 +856,17 @@ 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 `EC' soon.
+# This may change to `EU' soon.
# 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 EC MET%s
+ 1:00 EU MET%s
# Austria
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Austria 1918 only - Jun 16 3:00 0 -
Rule Austria 1920 only - Apr 5 2:00s 1:00 " DST"
Rule Austria 1920 only - Sep 13 2:00s 0 -
Rule Austria 1945 only - Apr 2 2:00s 1:00 " DST"
@@ -885,7 +881,7 @@ Zone Europe/Vienna 1:05:20 - LMT 1893 Apr
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 EC MET%s
+ 1:00 EU MET%s
# Belarus
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -896,7 +892,7 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
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 `EC' soon.
+# This may change to `EU' soon.
# Belgium
# Whitman and Shanks disagree; go with Shanks, usually.
@@ -944,7 +940,7 @@ Zone Europe/Brussels 0:17:20 - LMT 1880
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 EC MET%s
+ 1:00 EU MET%s
# Bosnia and Herzegovina
# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
@@ -954,7 +950,7 @@ Zone Europe/Sarajevo 1:13:40 - LMT 1884
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 EC MET%s
+ 1:00 EU MET%s
# Bulgaria
# Part switched from the Julian to the Gregorian calendar on 1915 Nov 14;
@@ -973,7 +969,7 @@ Zone Europe/Sofia 1:33:16 - LMT 1880
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 `EC' soon.
+# This may change to `EU' soon.
# Croatia
# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
@@ -983,11 +979,10 @@ Zone Europe/Zagreb 1:03:52 - LMT 1884
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 EC MET%s
+ 1:00 EU MET%s
# Czech Republic
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Czech 1944 only - Sep 17 2:00s 0 -
Rule Czech 1945 only - Apr 8 2:00s 1:00 " DST"
Rule Czech 1945 only - Nov 18 2:00s 0 -
Rule Czech 1946 only - May 6 2:00s 1:00 " DST"
@@ -1000,7 +995,7 @@ 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 EC MET%s
+ 1:00 EU MET%s
# Denmark
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
@@ -1025,10 +1020,10 @@ Zone Europe/Copenhagen 0:50:20 - LMT 1890
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 EC MET%s
+ 1:00 EU MET%s
Zone Atlantic/Faeroe -0:27:04 - LMT 1908 Jan 11 # Torshavn
0:00 - WET 1981
- 0:00 EC WET%s
+ 0:00 EU WET%s
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
@@ -1057,7 +1052,7 @@ Zone Europe/Tallinn 1:39:00 - LMT 1880
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 `EC' soon.
+# This may change to `EU' soon.
# Finland
#
@@ -1070,20 +1065,18 @@ 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 1921 only - May 1 0:00 0 -
Rule Finland 1942 only - Apr 3 0:00 1:00 " DST"
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 EC EET%s
+ 2:00 EU EET%s
# France
# Shanks seems to use `24:00' ambiguously; we resolve it with Whitman.
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule France 1911 only - Jan 1 0:00 0 -
Rule France 1916 only - Jun 14 23:00s 1:00 " DST"
Rule France 1916 1919 - Oct Sun>=1 0:00 0 -
Rule France 1917 only - Mar 24 23:00s 1:00 " DST"
@@ -1139,7 +1132,7 @@ Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
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 EC MET%s
+ 1:00 EU MET%s
# Germany
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
@@ -1159,21 +1152,20 @@ Rule Germany 1949 only - Apr 10 2:00s 1:00 " DST"
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 EC MET%s
+ 1:00 EU MET%s
# 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 EC MET%s
+ 1:00 EU MET%s
# 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
-Rule Greece 1916 only - July 28 0:01 0 -
# 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 - Sep 1 0:00 0 -
@@ -1204,12 +1196,13 @@ Zone Europe/Athens 1:34:52 - LMT 1895 Sep 14
1:00 Greece MET%s 1944 Apr 4
2:00 Greece EET%s 1981
# Shanks says they switched to M-Eur in 1981;
- # go with EC intead, since Greece joined it on Jan 1.
- 2:00 EC EET%s
+ # go with EU intead, since Greece joined it on Jan 1.
+ 2:00 EU EET%s
# Hungary
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Hungary 1918 only - Sep 29 2:00s 0 -
+Rule Hungary 1918 only - Apr 1 3:00 1:00 " DST"
+Rule Hungary 1918 only - Sep 29 3:00 0 -
Rule Hungary 1919 only - Apr 15 3:00 1:00 " DST"
Rule Hungary 1919 only - Sep 15 3:00 0 -
Rule Hungary 1920 only - Apr 5 3:00 1:00 " DST"
@@ -1230,11 +1223,11 @@ Rule Hungary 1957 only - Sep lastSun 3:00 0 -
Rule Hungary 1980 only - Apr 6 1:00 1:00 " DST"
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
- 1:00 M-Eur MET%s 1918 Jul
+ 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 EC MET%s
+ 1:00 EU MET%s
# Iceland
#
@@ -1272,7 +1265,6 @@ 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 1908 only - Jan 1 0:00 0 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
@@ -1300,22 +1292,43 @@ Zone Atlantic/Reykjavik -1:27:24 - LMT 1837
0:00 - GMT
# Italy
+# From Paul Eggert (1996-05-06):
+# For Italian DST we have three sources: Shanks, Whitman, and F. Pollastri
+# <http://pisolo.cstv.to.cnr.it/toi/it/ienitlt.html> (see `FP' below),
+# taken from a publication of the Italian National Electrotechnical Institute.
+# When the three sources disagree, guess who's right, as follows:
+#
+# year FP Shanks (S) Whitman (W) Go with:
+# 1916 06-03 06-03 24:00 06-03 00:00 FP & W
+# 09-30 09-30 24:00 09-30 01:00 FP; guess 24:00s
+# 1917 04-01 03-31 24:00 03-31 00:00 FP & S
+# 09-30 09-29 24:00 09-30 01:00 FP & W
+# 1918 03-09 03-09 24:00 03-09 00:00 FP & S
+# 10-06 10-05 24:00 10-06 01:00 FP & W
+# 1919 03-01 03-01 24:00 03-01 00:00 FP & S
+# 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)
+# 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 1893 only - Nov 1 0:00s 0 S
-# Shanks gives transition times of 1916-1920 as 24:00; go with Whitman.
Rule Italy 1916 only - Jun 3 0:00s 1:00 " DST"
-Rule Italy 1916 only - Sep 30 0:00s 0 -
-Rule Italy 1917 only - Mar 31 0:00s 1:00 " DST"
+Rule Italy 1916 only - Oct 1 0:00s 0 -
+Rule Italy 1917 only - Apr 1 0:00s 1:00 " DST"
Rule Italy 1917 only - Sep 30 0:00s 0 -
-Rule Italy 1918 only - Mar 9 0:00s 1:00 " DST"
+Rule Italy 1918 only - Mar 10 0:00s 1:00 " DST"
Rule Italy 1918 1919 - Oct Sun>=1 0:00s 0 -
-Rule Italy 1919 only - Mar 1 0:00s 1:00 " DST"
-Rule Italy 1920 only - Mar 20 0:00s 1:00 " DST"
-# Shanks gives 1920 Sep 18; go with Whitman.
-Rule Italy 1920 only - Oct 1 0:00s 0 -
-Rule Italy 1940 only - Jun 15 0:00 1:00 " DST"
+Rule Italy 1919 only - Mar 2 0:00s 1:00 " DST"
+Rule Italy 1920 only - Mar 21 0:00s 1:00 " DST"
+Rule Italy 1920 only - Sep 19 0:00s 0 -
+Rule Italy 1940 only - Jun 15 0:00s 1:00 " DST"
+Rule Italy 1944 only - Sep 17 0:00s 0 -
Rule Italy 1945 only - Apr 2 2:00 1:00 " DST"
-Rule Italy 1945 only - Sep 17 0:00 0 -
+Rule Italy 1945 only - Sep 15 0:00s 0 -
Rule Italy 1946 only - Mar 17 2:00s 1:00 " DST"
Rule Italy 1946 only - Oct 6 2:00s 0 -
Rule Italy 1947 only - Mar 16 0:00s 1:00 " DST"
@@ -1343,9 +1356,9 @@ Rule Italy 1979 only - Sep 30 0:00s 0 -
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 1945 Apr 2 2:00s
+ 1:00 M-Eur MET%s 1944 Jul
1:00 Italy MET%s 1980
- 1:00 EC MET%s
+ 1:00 EU MET%s
Link Europe/Rome Europe/Vatican
Link Europe/Rome Europe/San_Marino
@@ -1364,13 +1377,13 @@ Zone Europe/Riga 1:36:24 - LMT 1880
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 `EC' soon.
+# This may change to `EU' soon.
# Liechtenstein
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun
1:00 - MET 1981
- 1:00 EC MET%s
+ 1:00 EU MET%s
# Lithuania
# They switched from the Julian to the Gregorian calendar on 1918 Feb 15.
@@ -1386,12 +1399,11 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880
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 `EC' soon.
+# This may change to `EU' soon.
# 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 1904 only - Jun 1 0:00 0 -
Rule Lux 1916 only - May 14 23:00 1:00 " DST"
Rule Lux 1916 only - Oct 1 1:00 0 -
Rule Lux 1917 only - Apr 28 23:00 1:00 " DST"
@@ -1422,7 +1434,7 @@ Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun
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 EC MET%s
+ 1:00 EU MET%s
# Macedonia
# They switched from the Julian to the Gregorian calendar on 1918 Mar 18.
@@ -1432,7 +1444,7 @@ Zone Europe/Skopje 1:25:44 - LMT 1884
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 EC MET%s
+ 1:00 EU MET%s
# Malta
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
@@ -1449,7 +1461,7 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta
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 EC MET%s
+ 1:00 EU MET%s
# Moldova
# They switched from the Julian to the Gregorian calendar on 1919 Mar 18.
@@ -1459,7 +1471,7 @@ Zone Europe/Chisinau 1:55:20 - LMT 1924 May 2
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 `EC' soon.
+# This may change to `EU' soon.
# Monaco
# Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21.
@@ -1468,13 +1480,12 @@ 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 EC MET%s
+ 1:00 EU MET%s
# 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
-Rule Neth 1892 only - May 1 0:00 0 AMT
# 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
@@ -1506,11 +1517,10 @@ Zone Europe/Amsterdam 0:19:28 - LMT 1892 May
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 EC MET%s
+ 1:00 EU MET%s
# Norway
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Norway 1892 only - May 1 0:00 0 -
# 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 - Sep 30 0:00 0 -
@@ -1528,7 +1538,7 @@ 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 EC MET%s
+ 1:00 EU MET%s
# Svalbard is like Europe/Oslo.
#
# From Whitman:
@@ -1569,11 +1579,10 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880
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 `EC' soon.
+# This may change to `EU' soon.
# Portugal
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Port 1911 only - May 24 0:00 0 -
Rule Port 1916 only - Jun 17 23:00 1:00 " DST"
# Whitman gives 1916 Oct 31; go with Shanks.
Rule Port 1916 only - Nov 1 1:00 0 -
@@ -1640,16 +1649,16 @@ Zone Europe/Lisbon -0:36:32 - LMT 1884
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 EC WET%s 1992 Sep 27 1:00s
+ 0:00 EU WET%s 1992 Sep 27 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 EC MET%s 1996 Mar 31 1:00u
+ 1:00 EU MET%s 1996 Mar 31 1:00u
# 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 EC WET%s
+ 0:00 EU WET%s
# 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]
@@ -1664,13 +1673,12 @@ Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal
-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 EC WET%s
+ 0:00 EU WET%s
# 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 1931 only - Jul 24 0:00 0 -
Rule Romania 1932 only - May 21 0:00s 1:00 " DST"
Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 " DST"
@@ -1683,7 +1691,7 @@ 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 `EC' soon.
+# This may change to `EU' soon.
# Russia
# From Paul Eggert <eggert@twinsun.com> (May 28, 1994):
@@ -1730,7 +1738,6 @@ Zone Asia/Omsk 4:53:36 - LMT 1924 May 2
# 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.
-# Tomsk is still 4 hours ahead of Moscow.
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
@@ -1739,12 +1746,12 @@ Zone Asia/Novosibirsk 5:31:40 - LMT 1924 May 2
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
-Zone Asia/Tomsk 5:39:52 - LMT 1924 May 2
- 6:00 - TSK 1957 Mar
- 7:00 Russia TS%s 1991 Mar 31 2:00s
- 6:00 1:00 TSD 1991 Sep 29 2:00s
- 6:00 - TSK 1992 Jan 19 2:00s
- 7:00 Russia TS%s
+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
Zone Asia/Irkutsk 6:57:20 - LMT 1880
6:57 - LST 1924 May 2
7:00 - ISK 1957 Mar
@@ -1796,11 +1803,10 @@ Zone Europe/Ljubljana 0:58:04 - LMT 1884
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 EC MET%s
+ 1:00 EU MET%s
# Spain
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Spain 1901 only - Jan 1 0:00 0 -
# 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 1919 - Oct 6 23:00s 0 -
@@ -1842,12 +1848,12 @@ Rule Spain 1978 only - Oct 1 1:00 0 -
Zone Europe/Madrid -0:14:44 - LMT 1901
0:00 Spain WET%s 1946 Sep 30
1:00 Spain MET%s 1979
- 1:00 EC MET%s
+ 1:00 EU MET%s
Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C.
-1:00 - ACT 1946 Sep 30 1:00
0:00 - WET 1980 Apr 6 0:00s
0:00 1:00 "WET DST" 1980 Sep 28 0:00s
- 0:00 EC WET%s
+ 0:00 EU WET%s
# Sweden
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1856,7 +1862,7 @@ Zone Europe/Stockholm 1:12:12 - LMT 1878 May 31
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 EC MET%s
+ 1:00 EU MET%s
# Switzerland
# From Howse (1988), p 82:
@@ -1864,7 +1870,6 @@ Zone Europe/Stockholm 1:12:12 - LMT 1878 May 31
# and their performance improved enormously. Communities began to keep
# mean time in preference to apparent time -- Geneva from 1780 ....
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Swiss 1894 only - Jun 1 0:00 0 -
# From Whitman (who writes ``Midnight?''):
Rule Swiss 1940 only - Nov 2 0:00 1:00 " DST"
Rule Swiss 1940 only - Dec 31 0:00 0 -
@@ -1875,13 +1880,12 @@ Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 -
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 EC MET%s
+ 1:00 EU MET%s
# 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 1910 only - Oct 1 0:00 0 -
Rule Turkey 1916 only - May 1 0:00 1:00 " DST"
Rule Turkey 1916 only - Oct 1 0:00 0 -
Rule Turkey 1920 only - Mar 28 0:00 1:00 " DST"
@@ -1941,7 +1945,7 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
3:00 Turkey TUR%s 1985 Apr 20
2:00 Turkey EET%s 1986
2:00 M-Eur EET%s
-# This may change to `EC' soon.
+# This may change to `EU' soon.
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
# Ukraine
@@ -1959,7 +1963,7 @@ Zone Europe/Kiev 2:02:04 - LMT 1880
2:00 - EET 1930 Jun 21
3:00 Russia MS%s 1990 Jul 17
2:00 M-Eur EET%s
-# This may change to `EC' soon.
+# This may change to `EU' soon.
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
@@ -1981,7 +1985,7 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884
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 EC MET%s
+ 1:00 EU MET%s
###############################################################################
diff --git a/time/northamerica b/time/northamerica
index d1427900dd..1d0342a568 100644
--- a/time/northamerica
+++ b/time/northamerica
@@ -1,4 +1,4 @@
-# @(#)northamerica 7.22
+# @(#)northamerica 7.25
# also includes Central America and the Caribbean
# This data is by no means authoritative; if you think you know better,
@@ -160,11 +160,11 @@ Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00
- -7:00 US E%sT 1920
- -7:00 Denver E%sT 1942
- -7:00 US E%sT 1946
- -7:00 Denver E%sT 1967
- -7:00 US E%sT
+ -7:00 US M%sT 1920
+ -7:00 Denver M%sT 1942
+ -7:00 US M%sT 1946
+ -7:00 Denver M%sT 1967
+ -7:00 US M%sT
# US Pacific time, represented by Los Angeles
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
@@ -461,8 +461,6 @@ Link Pacific/Honolulu HST
#
# See the `africa' file for Zone naming conventions.
-
-
# Canada
# Canada is reportedly lots easier than the US--leastways since 1951.
@@ -569,11 +567,8 @@ Link Pacific/Honolulu HST
# From Paul Eggert <eggert@twinsun.com> (1994-11-22):
# Alas, this sort of thing must be handled by localization software.
-
-
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule StJohns 1884 only - Jan 1 0:00 0 S
Rule StJohns 1917 1918 - Apr Sun>=8 2:00 1:00 D
Rule StJohns 1917 only - Sep 17 2:00 0 S
Rule StJohns 1918 only - Oct 31 2:00 0 S
@@ -612,7 +607,6 @@ Zone America/St_Johns -3:30:52 - LMT 1884
-3:30 StJohns N%sT
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Halifax 1902 only - Jun 15 0:00 0 S
Rule Halifax 1916 only - Apr 1 0:00 1:00 D
Rule Halifax 1916 only - Oct 1 0:00 0 S
Rule Halifax 1918 only - Apr 14 2:00 1:00 D
@@ -658,7 +652,6 @@ Zone America/Halifax -4:14:24 - LMT 1902 Jun 15
-4:00 Halifax A%sT
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Mont 1884 only - Jan 1 0:00 0 S
Rule Mont 1917 only - Mar 25 2:00 1:00 D
Rule Mont 1917 only - Apr 24 0:00 0 S
Rule Mont 1918 only - Apr 14 2:00 1:00 D
@@ -692,7 +685,6 @@ Zone America/Montreal -4:54:16 - LMT 1884
-5:00 Mont E%sT
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Winn 1887 only - Jul 16 0:00 0 S
Rule Winn 1916 only - Apr 23 0:00 1:00 D
Rule Winn 1916 only - Sep 17 0:00 0 S
Rule Winn 1918 only - Apr 14 2:00 1:00 D
@@ -721,7 +713,6 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16
-6:00 Winn C%sT
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Regina 1905 only - Sep 1 0:00 0 S
Rule Regina 1918 only - Apr 14 2:00 1:00 D
Rule Regina 1918 only - Oct 31 2:00 0 S
Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
@@ -742,7 +733,6 @@ Zone America/Regina -6:58:36 - LMT 1905 Sep
-6:00 - CST
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Edm 1906 only - Sep 1 0:00 0 S
Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
Rule Edm 1918 only - Oct 31 2:00 0 S
Rule Edm 1919 only - May 27 2:00 0 S
@@ -765,7 +755,6 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
-7:00 Edm M%sT
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Vanc 1884 only - Jan 1 0:00 0 S
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
Rule Vanc 1918 only - Oct 31 2:00 0 S
Rule Vanc 1942 only - Feb 9 2:00 1:00 D
@@ -780,7 +769,6 @@ Zone America/Vancouver -8:12:28 - LMT 1884
-8:00 Vanc P%sT
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Yukon 1900 only - Jan 1 0:00 0 S
Rule Yukon 1918 only - Apr 14 2:00 1:00 D
Rule Yukon 1918 only - Oct 27 2:00 0 S
Rule Yukon 1919 only - May 25 2:00 1:00 D
@@ -848,22 +836,41 @@ Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
# a zone that's GMT-8 with DST; a zone that's always GMT-7;
# a zone that's GMT-6 with DST; and a zone that's always GMT-6.
-# From Paul Eggert <eggert@twinsun.com> (November 18, 1993):
+# From Paul Eggert <eggert@twinsun.com> (1993-11-18):
# Shanks also says there are four zones, but disagrees about the fourth.
# Instead of GMT-6 with DST, he says there's GMT-8 without DST.
-# From Paul Eggert (1996-02-07):
-# Today in news:4f90v4$g6g@news.internet.com.mx, Kevin Pitts
-# <bravo2@internet.com.mx> wrote that Mexico will use Horario de Verano (DST)
-# starting this year with the same rules as the US, and gave FIDE as a source.
-# (FIDE is a private organization that promotes efficient electrical use.)
-# On 1996-02-02 Mario Camou wrote that the transition times are Apr Sun>=1
-# 0:00 and Nov 1 0:00 but also wrote ``The DST-out date looks a bit fishy''.
-# Go with Pitts after 1996, and with Shanks before that.
+# From Alan Perry <alan.perry@eng.sun.com> (1996-02-15):
+# A guy from our Mexico subsidiary finally found the Presidential Decree
+# outlining the timezone changes in Mexico.
+#
+# ------------- Begin Forwarded Message -------------
+#
+# I finally got my hands on the Official Presidential Decree that sets up the
+# rules for the DST changes. The rules are:
+#
+# 1. The country is divided in 3 timezones:
+# - Baja California Norte (the Mexico/BajaNorte TZ)
+# - Baja California Sur, Nayarit, Sinaloa and Sonora (the Mexico/BajaSur TZ)
+# - The rest of the country (the Mexico/General TZ)
+#
+# 2. From the first Sunday in April at 2:00 AM to the last Sunday in October
+# at 2:00 AM, the times in each zone are as follows:
+# BajaNorte: GMT+7
+# BajaSur: GMT+6
+# General: GMT+5
+#
+# 3. The rest of the year, the times are as follows:
+# BajaNorte: GMT+8
+# BajaSur: GMT+7
+# General: GMT+6
+#
+# The Decree was published in Mexico's Official Newspaper on January 4th.
+#
+# -------------- End Forwarded Message --------------
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Mexico 1922 only - Jan 1 0:00 0 S
Rule Mexico 1939 only - Feb 5 0:00 1:00 D
Rule Mexico 1939 only - Jun 25 0:00 0 S
Rule Mexico 1940 only - Dec 9 0:00 1:00 D
@@ -930,7 +937,6 @@ Zone America/Antigua -4:07:12 - LMT 1912 Mar 2
# Bahamas
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Bahamas 1912 only - Mar 2 0:00 0 S
Rule Bahamas 1964 max - Oct lastSun 2:00 0 S
Rule Bahamas 1964 1986 - Apr lastSun 2:00 1:00 D
Rule Bahamas 1987 max - Apr Sun>=1 2:00 1:00 D
@@ -940,7 +946,6 @@ Zone America/Nassau -5:09:24 - LMT 1912 Mar 2
# Barbados
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Barb 1932 only - Jan 1 0:00 0 S
Rule Barb 1977 only - Jun 12 2:00 1:00 D
Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
@@ -954,7 +959,6 @@ Zone America/Barbados -3:58:28 - LMT 1924 # Bridgetown
# Belize
# Whitman entirely disagrees with Shanks; go with Shanks.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Belize 1912 only - Apr 1 0:00 0 S
Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 HD
Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 S
Rule Belize 1973 only - Dec 5 0:00 1:00 D
@@ -984,7 +988,6 @@ Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
# Shanks gives some very odd dates for 1991, and stops there.
# For now, we won't guess further.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule CR 1921 only - Jan 15 0:00 0 S
Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
Rule CR 1991 only - Jan 19 0:00 1:00 D
@@ -1010,7 +1013,6 @@ Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Cuba 1925 only - Jul 19 12:00 0 S
Rule Cuba 1928 only - Jun 10 0:00 1:00 D
Rule Cuba 1928 only - Oct 10 0:00 0 S
Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
@@ -1049,7 +1051,6 @@ Zone America/Dominica -4:05:36 - LMT 1911 Jul 1 0:01 # Roseau
# Dominican Republic
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule DR 1933 only - Apr 1 12:00 0 S
Rule DR 1966 only - Oct 30 0:00 1:00 D
Rule DR 1967 only - Feb 28 0:00 0 S
Rule DR 1969 1973 - Oct lastSun 0:00 0:30 HD
@@ -1064,7 +1065,6 @@ Zone America/Santo_Domingo -4:39:36 - LMT 1890
# El Salvador
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Salv 1921 only - Jan 1 0:00 0 S
Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
# There are too many San Salvadors elsewhere, so we'll use `El Salvador'.
@@ -1084,7 +1084,6 @@ Zone America/Guadeloupe -4:06:08 - LMT 1911 Jun 8 # Pointe a Pitre
# Guatemala
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Guat 1918 only - Oct 5 0:00 0 S
Rule Guat 1973 only - Nov 25 0:00 1:00 D
Rule Guat 1974 only - Feb 24 0:00 0 S
Rule Guat 1983 only - May 21 0:00 1:00 D
@@ -1095,7 +1094,6 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5
# Haiti
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Haiti 1917 only - Jan 24 12:00 0 S
Rule Haiti 1983 only - May 8 0:00 1:00 D
Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
@@ -1142,7 +1140,6 @@ Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Plymouth
# Nicaragua
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Nic 1975 only - Feb 16 0:00 0 S
Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
diff --git a/time/private.h b/time/private.h
index 69fcca3822..f81bf4867b 100644
--- a/time/private.h
+++ b/time/private.h
@@ -3,6 +3,11 @@
#define PRIVATE_H
/*
+** This file is in the public domain, so clarified as of
+** June 5, 1996 by Arthur David Olson (arthur_david_olson@nih.gov).
+*/
+
+/*
** This header is for use ONLY with the time conversion code.
** There is no guarantee that it will remain unchanged,
** or that it will remain at all.
@@ -16,7 +21,7 @@
#ifndef lint
#ifndef NOID
-static char privatehid[] = "@(#)private.h 7.42";
+static char privatehid[] = "@(#)private.h 7.43";
#endif /* !defined NOID */
#endif /* !defined lint */
diff --git a/time/southamerica b/time/southamerica
index 893d038908..c3c5c99fbe 100644
--- a/time/southamerica
+++ b/time/southamerica
@@ -1,4 +1,4 @@
-# @(#)southamerica 7.11
+# @(#)southamerica 7.12
# 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
@@ -164,7 +164,6 @@ 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 1914 only - Jan 1 0:00 0 S
Rule Brazil 1931 only - Oct 3 11:00 1 D
Rule Brazil 1932 1933 - Apr 1 0:00 0 S
Rule Brazil 1932 only - Oct 3 0:00 1 D
@@ -256,7 +255,6 @@ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno
# Falklands
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Falk 1912 only - Mar 12 0:00 0 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
@@ -299,7 +297,6 @@ 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 1974 only - Apr 1 0:00 0 S
Rule Para 1975 1978 - Oct 1 0:00 1:00 D
Rule Para 1975 1978 - Mar 1 0:00 0 S
# Shanks says 1979 was all DST.
@@ -316,7 +313,6 @@ Zone America/Asuncion -3:50:40 - LMT 1890
# Peru
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Peru 1908 only - Jul 28 0:00 0 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
@@ -356,7 +352,6 @@ Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2
# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
# From Shanks (1991):
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Uruguay 1920 only - May 1 0:00 0 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
diff --git a/time/tzfile.h b/time/tzfile.h
index f08134c815..cb9b6a1a11 100644
--- a/time/tzfile.h
+++ b/time/tzfile.h
@@ -3,6 +3,11 @@
#define TZFILE_H
/*
+** This file is in the public domain, so clarified as of
+** June 5, 1996 by Arthur David Olson (arthur_david_olson@nih.gov).
+*/
+
+/*
** This header is for use ONLY with the time conversion code.
** There is no guarantee that it will remain unchanged,
** or that it will remain at all.
@@ -16,7 +21,7 @@
#ifndef lint
#ifndef NOID
-static char tzfilehid[] = "@(#)tzfile.h 7.7";
+static char tzfilehid[] = "@(#)tzfile.h 7.8";
#endif /* !defined NOID */
#endif /* !defined lint */
diff --git a/time/zdump.c b/time/zdump.c
index f56e09d007..1058a840ef 100644
--- a/time/zdump.c
+++ b/time/zdump.c
@@ -1,6 +1,6 @@
#ifndef lint
#ifndef NOID
-static char elsieid[] = "@(#)zdump.c 7.23";
+static char elsieid[] = "@(#)zdump.c 7.24";
#endif /* !defined NOID */
#endif /* !defined lint */
@@ -208,9 +208,10 @@ _("%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"),
static char buf[MAX_STRING_LENGTH];
(void) strcpy(&fakeenv[0][3], argv[i]);
- show(argv[i], now, FALSE);
- if (!vflag)
+ if (!vflag) {
+ show(argv[i], now, FALSE);
continue;
+ }
/*
** Get lowest value of t.
*/
diff --git a/time/zic.c b/time/zic.c
index 756b7eb84a..0cec89369c 100644
--- a/time/zic.c
+++ b/time/zic.c
@@ -1,6 +1,6 @@
#ifndef lint
#ifndef NOID
-static char elsieid[] = "@(#)zic.c 7.62";
+static char elsieid[] = "@(#)zic.c 7.77";
#endif /* !defined NOID */
#endif /* !defined lint */
@@ -335,8 +335,10 @@ static const int len_years[2] = {
DAYSPERNYEAR, DAYSPERLYEAR
};
-static time_t ats[TZ_MAX_TIMES];
-static unsigned char types[TZ_MAX_TIMES];
+static struct attype {
+ time_t at;
+ unsigned char type;
+} attypes[TZ_MAX_TIMES];
static long gmtoffs[TZ_MAX_TYPES];
static char isdsts[TZ_MAX_TYPES];
static unsigned char abbrinds[TZ_MAX_TYPES];
@@ -427,11 +429,22 @@ const char * const string;
}
static void
+warning(string)
+const char * const string;
+{
+ char * cp;
+
+ cp = ecpyalloc("warning: ");
+ cp = ecatalloc(cp, string);
+ error(string);
+ ifree(cp);
+ --errors;
+}
+
+static void
usage P((void))
{
- (void) fprintf(stderr, _("%s: usage is %s \
-[ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n\
-\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
+ (void) fprintf(stderr, _("%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
progname, progname);
(void) exit(EXIT_FAILURE);
}
@@ -622,8 +635,7 @@ const char * const tofile;
*/
#define MAX_BITS_IN_FILE 32
-#define TIME_T_BITS_IN_FILE ((TYPE_BIT(time_t) < MAX_BITS_IN_FILE) ? \
- TYPE_BIT(time_t) : MAX_BITS_IN_FILE)
+#define TIME_T_BITS_IN_FILE ((TYPE_BIT(time_t) < MAX_BITS_IN_FILE) ? TYPE_BIT(time_t) : MAX_BITS_IN_FILE)
static void
setboundaries P((void))
@@ -681,11 +693,37 @@ associate P((void))
register struct zone * zp;
register struct rule * rp;
register int base, out;
- register int i;
+ register int i, j;
- if (nrules != 0)
+ if (nrules != 0) {
(void) qsort((void *) rules, (size_t) nrules,
(size_t) sizeof *rules, rcomp);
+ for (i = 0; i < nrules - 1; ++i) {
+ if (strcmp(rules[i].r_name,
+ rules[i + 1].r_name) != 0)
+ continue;
+ if (strcmp(rules[i].r_filename,
+ rules[i + 1].r_filename) == 0)
+ continue;
+ eat(rules[i].r_filename, rules[i].r_linenum);
+ warning(_("same rule name in multiple files"));
+ eat(rules[i + 1].r_filename, rules[i + 1].r_linenum);
+ warning(_("same rule name in multiple files"));
+ for (j = i + 2; j < nrules; ++j) {
+ if (strcmp(rules[i].r_name,
+ rules[j].r_name) != 0)
+ break;
+ if (strcmp(rules[i].r_filename,
+ rules[j].r_filename) == 0)
+ continue;
+ if (strcmp(rules[i + 1].r_filename,
+ rules[j].r_filename) == 0)
+ continue;
+ break;
+ }
+ i = j - 1;
+ }
+ }
for (i = 0; i < nzones; ++i) {
zp = &zones[i];
zp->z_rules = NULL;
@@ -1010,8 +1048,7 @@ const int iscont;
zones[nzones - 1].z_untiltime > min_time &&
zones[nzones - 1].z_untiltime < max_time &&
zones[nzones - 1].z_untiltime >= z.z_untiltime) {
- error(_("Zone continuation line end time is \
-not after end time of previous line"));
+ error(_("Zone continuation line end time is not after end time of previous line"));
return FALSE;
}
}
@@ -1319,6 +1356,18 @@ FILE * const fp;
(void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp);
}
+static int
+atcomp(avp, bvp)
+void * avp;
+void * bvp;
+{
+ if (((struct attype *) avp)->at < ((struct attype *) bvp)->at)
+ return -1;
+ else if (((struct attype *) avp)->at > ((struct attype *) bvp)->at)
+ return 1;
+ else return 0;
+}
+
static void
writezone(name)
const char * const name;
@@ -1327,7 +1376,50 @@ const char * const name;
register int i, j;
static char * fullname;
static struct tzhead tzh;
+ time_t ats[TZ_MAX_TIMES];
+ unsigned char types[TZ_MAX_TIMES];
+ /*
+ ** Sort.
+ */
+ if (timecnt > 1)
+ (void) qsort((void *) attypes, (size_t) timecnt,
+ (size_t) sizeof *attypes, atcomp);
+ /*
+ ** Optimize.
+ */
+ {
+ int fromi;
+ int toi;
+
+ toi = 0;
+ fromi = 0;
+ if (isdsts[0] == 0)
+ while (attypes[fromi].type == 0)
+ ++fromi; /* handled by default rule */
+ for ( ; fromi < timecnt; ++fromi) {
+ if (toi != 0
+ && ((attypes[fromi].at
+ + gmtoffs[attypes[toi - 1].type])
+ <= (attypes[toi - 1].at
+ + gmtoffs[toi == 1 ? 0
+ : attypes[toi - 2].type]))) {
+ attypes[toi - 1].type = attypes[fromi].type;
+ continue;
+ }
+ if (toi == 0 ||
+ attypes[toi - 1].type != attypes[fromi].type)
+ attypes[toi++] = attypes[fromi];
+ }
+ timecnt = toi;
+ }
+ /*
+ ** Transfer.
+ */
+ for (i = 0; i < timecnt; ++i) {
+ ats[i] = attypes[i].at;
+ types[i] = attypes[i].type;
+ }
fullname = erealloc(fullname,
(int) (strlen(directory) + 1 + strlen(name) + 1));
(void) sprintf(fullname, "%s/%s", directory, name);
@@ -1347,8 +1439,7 @@ const char * const name;
convert(eitol(timecnt), tzh.tzh_timecnt);
convert(eitol(typecnt), tzh.tzh_typecnt);
convert(eitol(charcnt), tzh.tzh_charcnt);
-#define DO(field) (void) fwrite((void *) tzh.field, \
- (size_t) sizeof tzh.field, (size_t) 1, fp)
+#define DO(field) (void) fwrite((void *) tzh.field, (size_t) sizeof tzh.field, (size_t) 1, fp)
DO(tzh_reserved);
DO(tzh_ttisgmtcnt);
DO(tzh_ttisstdcnt);
@@ -1440,7 +1531,6 @@ const int zonecount;
register long stdoff;
register int year;
register long startoff;
- register int startisdst;
register int startttisstd;
register int startttisgmt;
register int type;
@@ -1448,7 +1538,6 @@ const int zonecount;
INITIALIZE(untiltime);
INITIALIZE(starttime);
- INITIALIZE(startoff);
/*
** Now. . .finally. . .generate some useful data!
*/
@@ -1473,7 +1562,8 @@ const int zonecount;
continue;
gmtoff = zp->z_gmtoff;
eat(zp->z_filename, zp->z_linenum);
- startisdst = -1;
+ *startbuf = '\0';
+ startoff = zp->z_gmtoff;
if (zp->z_nrules == 0) {
stdoff = zp->z_stdoff;
doabbr(startbuf, zp->z_format,
@@ -1481,8 +1571,10 @@ const int zonecount;
type = addtype(oadd(zp->z_gmtoff, stdoff),
startbuf, stdoff != 0, startttisstd,
startttisgmt);
- if (usestart)
+ if (usestart) {
addtt(starttime, type);
+ usestart = FALSE;
+ }
else if (stdoff != 0)
addtt(min_time, type);
} else for (year = min_year; year <= max_year; ++year) {
@@ -1553,36 +1645,25 @@ const int zonecount;
rp->r_todo = FALSE;
if (useuntil && ktime >= untiltime)
break;
+ stdoff = rp->r_stdoff;
+ if (usestart && ktime == starttime)
+ usestart = FALSE;
if (usestart) {
- if (ktime < starttime) {
- stdoff = rp->r_stdoff;
- startoff = oadd(zp->z_gmtoff,
- rp->r_stdoff);
- doabbr(startbuf, zp->z_format,
- rp->r_abbrvar,
- rp->r_stdoff != 0);
- startisdst = rp->r_stdoff != 0;
- continue;
- }
- usestart = FALSE;
- if (ktime != starttime) {
- if (startisdst < 0 &&
- zp->z_gmtoff !=
- (zp - 1)->z_gmtoff) {
- type = (timecnt == 0) ? 0 :
- types[timecnt - 1];
- startoff = oadd(gmtoffs[type],
- -(zp - 1)->z_gmtoff);
- startisdst = startoff != 0;
- startoff = oadd(startoff,
- zp->z_gmtoff);
- (void) strcpy(startbuf,
- &chars[abbrinds[type]]);
+ if (ktime < starttime) {
+ startoff = oadd(zp->z_gmtoff,
+ stdoff);
+ doabbr(startbuf, zp->z_format,
+ rp->r_abbrvar,
+ rp->r_stdoff != 0);
+ continue;
+ }
+ if (*startbuf == '\0' &&
+ startoff == oadd(zp->z_gmtoff,
+ stdoff)) {
+ doabbr(startbuf, zp->z_format,
+ rp->r_abbrvar,
+ rp->r_stdoff != 0);
}
- if (startisdst >= 0)
-addtt(starttime, addtype(startoff, startbuf, startisdst, startttisstd,
- startttisgmt));
- }
}
eats(zp->z_filename, zp->z_linenum,
rp->r_filename, rp->r_linenum);
@@ -1592,18 +1673,34 @@ addtt(starttime, addtype(startoff, startbuf, startisdst, startttisstd,
type = addtype(offset, buf, rp->r_stdoff != 0,
rp->r_todisstd, rp->r_todisgmt);
addtt(ktime, type);
- stdoff = rp->r_stdoff;
}
}
+ if (usestart) {
+ if (*startbuf == '\0' &&
+ zp->z_format != NULL &&
+ strchr(zp->z_format, '%') == NULL &&
+ strchr(zp->z_format, '/') == NULL)
+ (void) strcpy(startbuf, zp->z_format);
+ eat(zp->z_filename, zp->z_linenum);
+ if (*startbuf == '\0')
+error(_("can't determine time zone abbrevation to use just after until time"));
+ else addtt(starttime,
+ addtype(startoff, startbuf,
+ startoff != zp->z_gmtoff,
+ startttisstd,
+ startttisgmt));
+ }
/*
** Now we may get to set starttime for the next zone line.
*/
if (useuntil) {
- starttime = tadd(zp->z_untiltime, -gmtoff);
startttisstd = zp->z_untilrule.r_todisstd;
startttisgmt = zp->z_untilrule.r_todisgmt;
+ starttime = zp->z_untiltime;
if (!startttisstd)
starttime = tadd(starttime, -stdoff);
+ if (!startttisgmt)
+ starttime = tadd(starttime, -gmtoff);
}
}
writezone(zpfirst->z_name);
@@ -1614,16 +1711,12 @@ addtt(starttime, type)
const time_t starttime;
const int type;
{
- if (timecnt != 0 && type == types[timecnt - 1])
- return; /* easy enough! */
- if (timecnt == 0 && type == 0 && isdsts[0] == 0)
- return; /* handled by default rule */
if (timecnt >= TZ_MAX_TIMES) {
error(_("too many transitions?!"));
(void) exit(EXIT_FAILURE);
}
- ats[timecnt] = starttime;
- types[timecnt] = type;
+ attypes[timecnt].at = starttime;
+ attypes[timecnt].type = type;
++timecnt;
}
@@ -1637,6 +1730,18 @@ const int ttisgmt;
{
register int i, j;
+ if (isdst != TRUE && isdst != FALSE) {
+ error(_("internal error - addtype called with bad isdst"));
+ (void) exit(EXIT_FAILURE);
+ }
+ if (ttisstd != TRUE && ttisstd != FALSE) {
+ error(_("internal error - addtype called with bad ttisstd"));
+ (void) exit(EXIT_FAILURE);
+ }
+ if (ttisgmt != TRUE && ttisgmt != FALSE) {
+ error(_("internal error - addtype called with bad ttisgmt"));
+ (void) exit(EXIT_FAILURE);
+ }
/*
** See if there's already an entry for this zone type.
** If so, just return its index.