From 127b4af7219e6df9253b34e390797c5527b8cc66 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 22 Apr 2018 16:41:48 -0700
Subject: [PROPOSED 2/2] Move negative DST from vanguard to main format

* NEWS: Mention this.
* africa (Namibia, Africa/Windhoek):
* europe (Eire, Europe/Dublin, Europe/Prague):
Comment out rearguard format, and uncomment vanguard format.
---
 NEWS   | 20 ++++++++++++++++----
 africa | 20 ++++++++++----------
 europe | 26 +++++++++++++-------------
 3 files changed, 39 insertions(+), 27 deletions(-)

diff --git a/NEWS b/NEWS
index 772a762..40c8e68 100644
--- a/NEWS
+++ b/NEWS
@@ -4,18 +4,30 @@ Unreleased, experimental changes
 
   Briefly:
 
+    The main format uses negative DST again, for Ireland etc.
     'make tarballs' now also builds a rearguard tarball.
     New 's' and 'd' suffixes in SAVE columns of Rule and Zone lines.
 
+  Changes to past and future time stamps
+
+    Bring back the negative-DST changes of 2018a, except be more
+    compatible with data parsers that do not support negative DST.
+    Also, this now affects historical time stamps in Namibia and the
+    former Czechoslovakia, not just Ireland.  The main format now uses
+    negative DST to model time stamps in Europe/Dublin (from 1971 on),
+    Europe/Prague (1946/7), and Africa/Windhoek (1994/2017).  This
+    does not affect UT offsets, only time zone abbreviations and the
+    tm_isdst flag.  Also, this does not affect rearguard or vanguard
+    formats; effectively the main format now uses vanguard instead of
+    rearguard format.  Data parsers that do not support negative DST
+    can still use data from the rearguard tarball described below.
+
   Changes to build procedure
 
     The command 'make tarballs' now also builds the tarball
     tzdataVERSION-rearguard.tar.gz, which is like tzdataVERSION.tar.gz
     except that it uses rearguard format intended for trailing-edge
-    data parsers.  Although the two tarballs currently are the same
-    except for version, they will differ more when negative DST
-    offsets are moved from vanguard to main format, since rearguard
-    format will continue to avoid negative DST offsets.
+    data parsers.
 
   Changes to data format and to code
 
diff --git a/africa b/africa
index 431b7e8..84e1ce2 100644
--- a/africa
+++ b/africa
@@ -1007,13 +1007,13 @@ Link Africa/Maputo Africa/Lusaka	# Zambia
 
 # RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 # Vanguard section, for zic and other parsers that support negative DST.
-#Rule	Namibia	1994	only	-	Mar	21	0:00	-1:00	WAT
-#Rule	Namibia	1994	2017	-	Sep	Sun>=1	2:00	0	CAT
-#Rule	Namibia	1995	2017	-	Apr	Sun>=1	2:00	-1:00	WAT
+Rule	Namibia	1994	only	-	Mar	21	0:00	-1:00	WAT
+Rule	Namibia	1994	2017	-	Sep	Sun>=1	2:00	0	CAT
+Rule	Namibia	1995	2017	-	Apr	Sun>=1	2:00	-1:00	WAT
 # Rearguard section, for parsers that do not support negative DST.
-Rule	Namibia	1994	only	-	Mar	21	0:00	0	WAT
-Rule	Namibia	1994	2017	-	Sep	Sun>=1	2:00	1:00	CAT
-Rule	Namibia	1995	2017	-	Apr	Sun>=1	2:00	0	WAT
+#Rule	Namibia	1994	only	-	Mar	21	0:00	0	WAT
+#Rule	Namibia	1994	2017	-	Sep	Sun>=1	2:00	1:00	CAT
+#Rule	Namibia	1995	2017	-	Apr	Sun>=1	2:00	0	WAT
 # End of rearguard section.
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1023,14 +1023,14 @@ Zone	Africa/Windhoek	1:08:24 -	LMT	1892 Feb 8
 			2:00	1:00	SAST	1943 Mar 21  2:00
 			2:00	-	SAST	1990 Mar 21 # independence
 # Vanguard section, for zic and other parsers that support negative DST.
-#			2:00	Namibia	%s
+			2:00	Namibia	%s
 # Rearguard section, for parsers that do not support negative DST.
-			2:00	-	CAT	1994 Mar 21  0:00
+#			2:00	-	CAT	1994 Mar 21  0:00
 # From Paul Eggert (2017-04-07):
 # The official date of the 2017 rule change was 2017-10-24.  See:
 # http://www.lac.org.na/laws/annoSTAT/Namibian%20Time%20Act%209%20of%202017.pdf
-			1:00	Namibia	%s	2017 Oct 24
-			2:00	-	CAT
+#			1:00	Namibia	%s	2017 Oct 24
+#			2:00	-	CAT
 # End of rearguard section.
 
 # Niger
diff --git a/europe b/europe
index 6b97fd0..6994ed8 100644
--- a/europe
+++ b/europe
@@ -528,13 +528,13 @@ Link	Europe/London	Europe/Isle_of_Man
 # summer and negative daylight saving time in winter.  It is for when
 # negative SAVE values are used.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-#Rule	Eire	1971	only	-	Oct	31	 2:00u	-1:00	GMT
-#Rule	Eire	1972	1980	-	Mar	Sun>=16	 2:00u	0	IST
-#Rule	Eire	1972	1980	-	Oct	Sun>=23	 2:00u	-1:00	GMT
-#Rule	Eire	1981	max	-	Mar	lastSun	 1:00u	0	IST
-#Rule	Eire	1981	1989	-	Oct	Sun>=23	 1:00u	-1:00	GMT
-#Rule	Eire	1990	1995	-	Oct	Sun>=22	 1:00u	-1:00	GMT
-#Rule	Eire	1996	max	-	Oct	lastSun	 1:00u	-1:00	GMT
+Rule	Eire	1971	only	-	Oct	31	 2:00u	-1:00	-
+Rule	Eire	1972	1980	-	Mar	Sun>=16	 2:00u	0	-
+Rule	Eire	1972	1980	-	Oct	Sun>=23	 2:00u	-1:00	-
+Rule	Eire	1981	max	-	Mar	lastSun	 1:00u	0	-
+Rule	Eire	1981	1989	-	Oct	Sun>=23	 1:00u	-1:00	-
+Rule	Eire	1990	1995	-	Oct	Sun>=22	 1:00u	-1:00	-
+Rule	Eire	1996	max	-	Oct	lastSun	 1:00u	-1:00	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
@@ -548,11 +548,11 @@ Zone	Europe/Dublin	-0:25:00 -	LMT	1880 Aug  2
 			 0:00	-	GMT	1948 Apr 18  2:00s
 			 0:00	GB-Eire	GMT/IST	1968 Oct 27
 # The next line is for when negative SAVE values are used.
-#			 1:00	Eire	IST/GMT
+			 1:00	Eire	IST/GMT
 # These three lines are for when SAVE values are always nonnegative.
-			 1:00	-	IST	1971 Oct 31  2:00u
-			 0:00	GB-Eire	GMT/IST	1996
-			 0:00	EU	GMT/IST
+#			 1:00	-	IST	1971 Oct 31  2:00u
+#			 0:00	GB-Eire	GMT/IST	1996
+#			 0:00	EU	GMT/IST
 
 
 ###############################################################################
@@ -990,9 +990,9 @@ Zone	Europe/Prague	0:57:44 -	LMT	1850
 			1:00	C-Eur	CE%sT	1945 May  9
 			1:00	Czech	CE%sT	1946 Dec  1  3:00
 # Vanguard section, for zic and other parsers that support negative DST.
-#			1:00	-1:00	GMT	1947 Feb 23  2:00
+			1:00	-1:00	GMT	1947 Feb 23  2:00
 # Rearguard section, for parsers that do not support negative DST.
-			0:00	-	GMT	1947 Feb 23  2:00
+#			0:00	-	GMT	1947 Feb 23  2:00
 # End of rearguard section.
 			1:00	Czech	CE%sT	1979
 			1:00	EU	CE%sT
-- 
2.7.4

