summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Bishop <stuart@stuartbishop.net>2021-10-02 13:34:55 +1000
committerStuart Bishop <stuart@stuartbishop.net>2021-10-02 13:34:55 +1000
commit8e18f04dab6bb2e205785e993e4813f9f0ff4b92 (patch)
treead81dcff17e1bbb85b5e343131af01996d2afaec
parent16e9f021eff80d257f1ba56b9de2d79998eb785a (diff)
downloadpytz-git-8e18f04dab6bb2e205785e993e4813f9f0ff4b92.tar.gz
Squashed 'tz/' changes from 9ffa3f6e..fe890655
d2c79c4b Release 2021c ec62c0db Adjust formatting of NEWS file 9b900f41 Fix 'zic -b fat' bug with Port Moresby 32-bit data 43dbb433 Port better to >64-bit platforms 7483e30b Revert most 2021b changes to 'backward' 6c15079a Add America/Virgin link in ‘backzone’ 2a7c7c58 Fix Jan Mayen typo 79f5ac00 Distribute SECURITY in release tarballs git-subtree-dir: tz git-subtree-split: fe890655b72594ee42cf235f739220e71eef89f4
-rw-r--r--Makefile6
-rw-r--r--NEWS50
-rw-r--r--africa37
-rw-r--r--asia10
-rw-r--r--australasia5
-rw-r--r--backward93
-rw-r--r--backzone1
-rw-r--r--europe26
-rw-r--r--northamerica26
-rw-r--r--southamerica4
-rw-r--r--zic.c16
11 files changed, 154 insertions, 120 deletions
diff --git a/Makefile b/Makefile
index 33f3168..a222098 100644
--- a/Makefile
+++ b/Makefile
@@ -504,7 +504,7 @@ MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \
tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
date.1.txt
COMMON= calendars CONTRIBUTING LICENSE Makefile \
- NEWS README theory.html version
+ NEWS README SECURITY theory.html version
WEB_PAGES= tz-art.html tz-how-to.html tz-link.html
CHECK_WEB_PAGES=check_theory.html check_tz-art.html \
check_tz-how-to.html check_tz-link.html
@@ -539,7 +539,7 @@ ENCHILADA = $(EIGHT_YARDS) $(TZS)
# This list is not the same as the output of 'git ls-files', since
# .gitignore is not distributed.
VERSION_DEPS= \
- calendars CONTRIBUTING LICENSE Makefile NEWS README \
+ calendars CONTRIBUTING LICENSE Makefile NEWS README SECURITY \
africa antarctica asctime.c asia australasia \
backward backzone \
checklinks.awk checktab.awk \
@@ -763,7 +763,7 @@ check_character_set: $(ENCHILADA)
sharp='#' && \
! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
$(MISC) $(SOURCES) $(WEB_PAGES) \
- CONTRIBUTING LICENSE README \
+ CONTRIBUTING LICENSE README SECURITY \
version tzdata.zi && \
! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \
Makefile && \
diff --git a/NEWS b/NEWS
index d1ccf4e..f7362c8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,41 @@
News for the tz database
+Release 2021c - 2021-10-01 14:21:49 -0700
+
+ Briefly:
+ Revert most 2021b changes to 'backward'.
+ Fix 'zic -b fat' bug in pre-1970 32-bit data.
+ Fix two Link line typos.
+ Distribute SECURITY file.
+
+ This release is intended as a bugfix release, to fix compatibility
+ problems and typos reported since 2021b was released.
+
+ Changes to Link directives
+
+ Revert almost all of 2021b's changes to the 'backward' file,
+ by moving Link directives back to where they were in 2021a.
+ Although 'zic' doesn't care which source file contains a Link
+ directive, some downstream uses ran into trouble with the move.
+ (Problem reported by Stephen Colebourne for Joda-Time.)
+
+ Fix typo that linked Atlantic/Jan_Mayen to the wrong location
+ (problem reported by Chris Walton).
+
+ Fix 'backzone' typo that linked America/Virgin to the wrong
+ location (problem reported by Michael Deckers).
+
+ Changes to code
+
+ Fix a bug in 'zic -b fat' that caused old timestamps to be
+ mishandled in 32-bit-only readers (problem reported by Daniel
+ Fischer).
+
+ Changes to documentation
+
+ Distribute the SECURITY file (problem reported by Andreas Radke).
+
+
Release 2021b - 2021-09-24 16:23:00 -0700
Briefly:
@@ -18,13 +54,13 @@ Release 2021b - 2021-09-24 16:23:00 -0700
tzfile.5 better matches a draft successor to RFC 8536.
A new file SECURITY.
- This release is prompted by recent announcements by Jordan and Samoa.
- It incorporates many other changes that had accumulated since 2021a.
- However, it omits most proposed changes that merged all Zones
- agreeing since 1970, as concerns were raised about doing too many of
- these changes at once. It does keeps some of these changes in the
- interest of making tzdb more equitable one step at a time; see
- "Merge more location-based Zones" below.
+ This release is prompted by recent announcements by Jordan and Samoa.
+ It incorporates many other changes that had accumulated since 2021a.
+ However, it omits most proposed changes that merged all Zones
+ agreeing since 1970, as concerns were raised about doing too many of
+ these changes at once. It does keeps some of these changes in the
+ interest of making tzdb more equitable one step at a time; see
+ "Merge more location-based Zones" below.
Changes to future timestamps
diff --git a/africa b/africa
index c73f0df..48e9d79 100644
--- a/africa
+++ b/africa
@@ -150,6 +150,16 @@ Zone Africa/Ndjamena 1:00:12 - LMT 1912 # N'Djamena
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Africa/Abidjan -0:16:08 - LMT 1912
0:00 - GMT
+Link Africa/Abidjan Africa/Accra # Ghana
+Link Africa/Abidjan Africa/Bamako # Mali
+Link Africa/Abidjan Africa/Banjul # The Gambia
+Link Africa/Abidjan Africa/Conakry # Guinea
+Link Africa/Abidjan Africa/Dakar # Senegal
+Link Africa/Abidjan Africa/Freetown # Sierra Leone
+Link Africa/Abidjan Africa/Lome # Togo
+Link Africa/Abidjan Africa/Nouakchott # Mauritania
+Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso
+Link Africa/Abidjan Atlantic/St_Helena # St Helena
# Djibouti
# See Africa/Nairobi.
@@ -436,6 +446,15 @@ Zone Africa/Nairobi 2:27:16 - LMT 1908 May
2:30 - +0230 1936 Dec 31 24:00
2:45 - +0245 1942 Jul 31 24:00
3:00 - EAT
+Link Africa/Nairobi Africa/Addis_Ababa # Ethiopia
+Link Africa/Nairobi Africa/Asmara # Eritrea
+Link Africa/Nairobi Africa/Dar_es_Salaam # Tanzania
+Link Africa/Nairobi Africa/Djibouti
+Link Africa/Nairobi Africa/Kampala # Uganda
+Link Africa/Nairobi Africa/Mogadishu # Somalia
+Link Africa/Nairobi Indian/Antananarivo # Madagascar
+Link Africa/Nairobi Indian/Comoro
+Link Africa/Nairobi Indian/Mayotte
# Lesotho
# See Africa/Johannesburg.
@@ -1122,6 +1141,13 @@ Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Africa/Maputo 2:10:20 - LMT 1903 Mar
2:00 - CAT
+Link Africa/Maputo Africa/Blantyre # Malawi
+Link Africa/Maputo Africa/Bujumbura # Burundi
+Link Africa/Maputo Africa/Gaborone # Botswana
+Link Africa/Maputo Africa/Harare # Zimbabwe
+Link Africa/Maputo Africa/Kigali # Rwanda
+Link Africa/Maputo Africa/Lubumbashi # E Dem. Rep. of Congo
+Link Africa/Maputo Africa/Lusaka # Zambia
# Namibia
@@ -1269,6 +1295,15 @@ Zone Africa/Lagos 0:13:35 - LMT 1905 Jul 1
0:13:35 - LMT 1914 Jan 1
0:30 - +0030 1919 Sep 1
1:00 - WAT
+Link Africa/Lagos Africa/Bangui # Central African Republic
+Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo
+Link Africa/Lagos Africa/Douala # Cameroon
+Link Africa/Lagos Africa/Kinshasa # Dem. Rep. of the Congo (west)
+Link Africa/Lagos Africa/Libreville # Gabon
+Link Africa/Lagos Africa/Luanda # Angola
+Link Africa/Lagos Africa/Malabo # Equatorial Guinea
+Link Africa/Lagos Africa/Niamey # Niger
+Link Africa/Lagos Africa/Porto-Novo # Benin
# Réunion
# Zone NAME STDOFF RULES FORMAT [UNTIL]
@@ -1366,6 +1401,8 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8
1:30 - SAST 1903 Mar
2:00 SA SAST
+Link Africa/Johannesburg Africa/Maseru # Lesotho
+Link Africa/Johannesburg Africa/Mbabane # Eswatini
#
# Marion and Prince Edward Is
# scientific station since 1947
diff --git a/asia b/asia
index 73e0183..4e95797 100644
--- a/asia
+++ b/asia
@@ -1173,9 +1173,10 @@ Zone Asia/Famagusta 2:15:48 - LMT 1921 Nov 14
2:00 EUAsia EE%sT 2016 Sep 8
3:00 - +03 2017 Oct 29 1:00u
2:00 EUAsia EE%sT
+
# Classically, Cyprus belongs to Asia; e.g. see Herodotus, Histories, I.72.
# However, for various reasons many users expect to find it under Europe.
-# See the 'backward' file for the Europe/Nicosia link.
+Link Asia/Nicosia Europe/Nicosia
# Georgia
# From Paul Eggert (1994-11-19):
@@ -3531,6 +3532,7 @@ Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha
4:00 - +04 1972 Jun
3:00 - +03
+Link Asia/Qatar Asia/Bahrain
# Saudi Arabia
#
@@ -3577,6 +3579,9 @@ Zone Asia/Qatar 3:26:08 - LMT 1920 # Al Dawhah / Doha
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Asia/Riyadh 3:06:52 - LMT 1947 Mar 14
3:00 - +03
+Link Asia/Riyadh Antarctica/Syowa
+Link Asia/Riyadh Asia/Aden # Yemen
+Link Asia/Riyadh Asia/Kuwait
# Singapore
# taken from Mok Ly Yng (2003-10-30)
@@ -3833,6 +3838,8 @@ Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2
Zone Asia/Bangkok 6:42:04 - LMT 1880
6:42:04 - BMT 1920 Apr # Bangkok Mean Time
7:00 - +07
+Link Asia/Bangkok Asia/Phnom_Penh # Cambodia
+Link Asia/Bangkok Asia/Vientiane # Laos
# Turkmenistan
# From Shanks & Pottenger.
@@ -3847,6 +3854,7 @@ Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Asia/Dubai 3:41:12 - LMT 1920
4:00 - +04
+Link Asia/Dubai Asia/Muscat # Oman
# Uzbekistan
# Byalokoz 1919 says Uzbekistan was 4:27:53.
diff --git a/australasia b/australasia
index 8e76c27..7348b87 100644
--- a/australasia
+++ b/australasia
@@ -458,6 +458,7 @@ Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31
9:00 - +09 1944 Jul 31
10:00 Guam G%sT 2000 Dec 23
10:00 - ChST # Chamorro Standard Time
+Link Pacific/Guam Pacific/Saipan # N Mariana Is
# Kiribati
# Zone NAME STDOFF RULES FORMAT [UNTIL]
@@ -583,6 +584,8 @@ Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2
12:15 - +1215 1946 Jan 1
12:45 Chatham +1245/+1345
+Link Pacific/Auckland Antarctica/McMurdo
+
# Auckland Is
# uninhabited; Māori and Moriori, colonial settlers, pastoralists, sealers,
# and scientific personnel have wintered
@@ -676,6 +679,7 @@ Zone Pacific/Palau -15:02:04 - LMT 1844 Dec 31 # Koror
Zone Pacific/Port_Moresby 9:48:40 - LMT 1880
9:48:32 - PMMT 1895 # Port Moresby Mean Time
10:00 - +10
+Link Pacific/Port_Moresby Antarctica/DumontDUrville
#
# From Paul Eggert (2014-10-13):
# Base the Bougainville entry on the Arawa-Kieta region, which appears to have
@@ -711,6 +715,7 @@ Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown
Zone Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5
-11:22:48 - LMT 1911
-11:00 - SST # S=Samoa
+Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
# Samoa (formerly and also known as Western Samoa)
diff --git a/backward b/backward
index 7c288e3..7685c74 100644
--- a/backward
+++ b/backward
@@ -4,120 +4,51 @@
# 2009-05-17 by Arthur David Olson.
# This file provides links from old or merged timezone names to current ones.
-# Many names changed in late 1993, and many merged names moved here
-# in the period from 2013 through 2021. Several of these names are
+# Many names changed in late 1993. Several of these names are
# also present in the file 'backzone', which has data important only
# for pre-1970 timestamps and so is out of scope for tzdb proper.
# Link TARGET LINK-NAME
-Link Africa/Abidjan Africa/Accra
-Link Africa/Nairobi Africa/Addis_Ababa
-Link Africa/Nairobi Africa/Asmara
Link Africa/Nairobi Africa/Asmera
-Link Africa/Abidjan Africa/Bamako
-Link Africa/Lagos Africa/Bangui
-Link Africa/Abidjan Africa/Banjul
-Link Africa/Maputo Africa/Blantyre
-Link Africa/Lagos Africa/Brazzaville
-Link Africa/Maputo Africa/Bujumbura
-Link Africa/Abidjan Africa/Conakry
-Link Africa/Abidjan Africa/Dakar
-Link Africa/Nairobi Africa/Dar_es_Salaam
-Link Africa/Nairobi Africa/Djibouti
-Link Africa/Lagos Africa/Douala
-Link Africa/Abidjan Africa/Freetown
-Link Africa/Maputo Africa/Gaborone
-Link Africa/Maputo Africa/Harare
-Link Africa/Nairobi Africa/Kampala
-Link Africa/Maputo Africa/Kigali
-Link Africa/Lagos Africa/Kinshasa
-Link Africa/Lagos Africa/Libreville
-Link Africa/Abidjan Africa/Lome
-Link Africa/Lagos Africa/Luanda
-Link Africa/Maputo Africa/Lubumbashi
-Link Africa/Maputo Africa/Lusaka
-Link Africa/Lagos Africa/Malabo
-Link Africa/Johannesburg Africa/Maseru
-Link Africa/Johannesburg Africa/Mbabane
-Link Africa/Nairobi Africa/Mogadishu
-Link Africa/Lagos Africa/Niamey
-Link Africa/Abidjan Africa/Nouakchott
-Link Africa/Abidjan Africa/Ouagadougou
-Link Africa/Lagos Africa/Porto-Novo
Link Africa/Abidjan Africa/Timbuktu
-Link America/Puerto_Rico America/Anguilla
-Link America/Puerto_Rico America/Antigua
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
-Link America/Puerto_Rico America/Aruba
-Link America/Panama America/Atikokan
Link America/Adak America/Atka
-Link America/Puerto_Rico America/Blanc-Sablon
Link America/Argentina/Buenos_Aires America/Buenos_Aires
Link America/Argentina/Catamarca America/Catamarca
-Link America/Panama America/Cayman
Link America/Panama America/Coral_Harbour
Link America/Argentina/Cordoba America/Cordoba
-Link America/Phoenix America/Creston
-Link America/Puerto_Rico America/Curacao
-Link America/Puerto_Rico America/Dominica
Link America/Tijuana America/Ensenada
Link America/Indiana/Indianapolis America/Fort_Wayne
Link America/Nuuk America/Godthab
-Link America/Puerto_Rico America/Grenada
-Link America/Puerto_Rico America/Guadeloupe
Link America/Indiana/Indianapolis America/Indianapolis
Link America/Argentina/Jujuy America/Jujuy
Link America/Indiana/Knox America/Knox_IN
-Link America/Puerto_Rico America/Kralendijk
Link America/Kentucky/Louisville America/Louisville
-Link America/Puerto_Rico America/Lower_Princes
-Link America/Puerto_Rico America/Marigot
Link America/Argentina/Mendoza America/Mendoza
Link America/Toronto America/Montreal
-Link America/Puerto_Rico America/Montserrat
-Link America/Toronto America/Nassau
-Link America/Puerto_Rico America/Port_of_Spain
Link America/Rio_Branco America/Porto_Acre
Link America/Argentina/Cordoba America/Rosario
Link America/Tijuana America/Santa_Isabel
Link America/Denver America/Shiprock
-Link America/Puerto_Rico America/St_Barthelemy
-Link America/Puerto_Rico America/St_Kitts
-Link America/Puerto_Rico America/St_Lucia
-Link America/Puerto_Rico America/St_Thomas
-Link America/Puerto_Rico America/St_Vincent
-Link America/Puerto_Rico America/Tortola
Link America/Puerto_Rico America/Virgin
-Link Pacific/Port_Moresby Antarctica/DumontDUrville
-Link Pacific/Auckland Antarctica/McMurdo
Link Pacific/Auckland Antarctica/South_Pole
-Link Asia/Riyadh Antarctica/Syowa
-Link Europe/Oslo Arctic/Longyearbyen
-Link Asia/Riyadh Asia/Aden
Link Asia/Ashgabat Asia/Ashkhabad
-Link Asia/Qatar Asia/Bahrain
Link Asia/Kolkata Asia/Calcutta
Link Asia/Shanghai Asia/Chongqing
Link Asia/Shanghai Asia/Chungking
Link Asia/Dhaka Asia/Dacca
Link Asia/Shanghai Asia/Harbin
-Link Europe/Istanbul Asia/Istanbul
Link Asia/Urumqi Asia/Kashgar
Link Asia/Kathmandu Asia/Katmandu
-Link Asia/Riyadh Asia/Kuwait
Link Asia/Macau Asia/Macao
-Link Asia/Dubai Asia/Muscat
-Link Asia/Bangkok Asia/Phnom_Penh
Link Asia/Yangon Asia/Rangoon
Link Asia/Ho_Chi_Minh Asia/Saigon
Link Asia/Jerusalem Asia/Tel_Aviv
Link Asia/Thimphu Asia/Thimbu
Link Asia/Makassar Asia/Ujung_Pandang
Link Asia/Ulaanbaatar Asia/Ulan_Bator
-Link Asia/Bangkok Asia/Vientiane
Link Atlantic/Faroe Atlantic/Faeroe
-Link Europe/Berlin Atlantic/Jan_Mayen
-Link Africa/Abidjan Atlantic/St_Helena
+Link Europe/Oslo Atlantic/Jan_Mayen
Link Australia/Sydney Australia/ACT
Link Australia/Sydney Australia/Canberra
Link Australia/Hobart Australia/Currie
@@ -152,22 +83,7 @@ Link Africa/Cairo Egypt
Link Europe/Dublin Eire
Link Etc/UTC Etc/UCT
Link Europe/London Europe/Belfast
-Link Europe/Prague Europe/Bratislava
-Link Europe/Zurich Europe/Busingen
-Link Europe/London Europe/Guernsey
-Link Europe/London Europe/Isle_of_Man
-Link Europe/London Europe/Jersey
-Link Europe/Belgrade Europe/Ljubljana
-Link Europe/Helsinki Europe/Mariehamn
-Link Asia/Nicosia Europe/Nicosia
-Link Europe/Belgrade Europe/Podgorica
-Link Europe/Rome Europe/San_Marino
-Link Europe/Belgrade Europe/Sarajevo
-Link Europe/Belgrade Europe/Skopje
Link Europe/Chisinau Europe/Tiraspol
-Link Europe/Zurich Europe/Vaduz
-Link Europe/Rome Europe/Vatican
-Link Europe/Belgrade Europe/Zagreb
Link Europe/London GB
Link Europe/London GB-Eire
Link Etc/GMT GMT+0
@@ -176,9 +92,6 @@ Link Etc/GMT GMT0
Link Etc/GMT Greenwich
Link Asia/Hong_Kong Hongkong
Link Atlantic/Reykjavik Iceland
-Link Africa/Nairobi Indian/Antananarivo
-Link Africa/Nairobi Indian/Comoro
-Link Africa/Nairobi Indian/Mayotte
Link Asia/Tehran Iran
Link Asia/Jerusalem Israel
Link America/Jamaica Jamaica
@@ -194,9 +107,7 @@ Link America/Denver Navajo
Link Asia/Shanghai PRC
Link Pacific/Kanton Pacific/Enderbury
Link Pacific/Honolulu Pacific/Johnston
-Link Pacific/Pago_Pago Pacific/Midway
Link Pacific/Pohnpei Pacific/Ponape
-Link Pacific/Guam Pacific/Saipan
Link Pacific/Pago_Pago Pacific/Samoa
Link Pacific/Chuuk Pacific/Truk
Link Pacific/Chuuk Pacific/Yap
diff --git a/backzone b/backzone
index fc5e8bf..9b51273 100644
--- a/backzone
+++ b/backzone
@@ -780,6 +780,7 @@ Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries
# US Virgin Is
Zone America/St_Thomas -4:19:44 - LMT 1911 Jul # Charlotte Amalie
-4:00 - AST
+Link America/St_Thomas America/Virgin
# St Vincent and the Grenadines
Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown
diff --git a/europe b/europe
index 1204c09..2adc308 100644
--- a/europe
+++ b/europe
@@ -505,6 +505,9 @@ Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00s
1:00 - BST 1971 Oct 31 2:00u
0:00 GB-Eire %s 1996
0:00 EU GMT/BST
+Link Europe/London Europe/Jersey
+Link Europe/London Europe/Guernsey
+Link Europe/London Europe/Isle_of_Man
# From Paul Eggert (2018-02-15):
# In January 2018 we discovered that the negative SAVE values in the
@@ -1303,8 +1306,9 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31
1:39:49 - HMT 1921 May # Helsinki Mean Time
2:00 Finland EE%sT 1983
2:00 EU EE%sT
+
# Åland Is
-# See Europe/Helsinki.
+Link Europe/Helsinki Europe/Mariehamn
# France
@@ -1500,7 +1504,8 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr
# From Arthur David Olson (2012-03-03):
# Büsingen and Zurich have shared clocks since 1970.
-# See Europe/Zurich.
+
+Link Europe/Zurich Europe/Busingen
# Georgia
# Please see the "asia" file for Asia/Tbilisi.
@@ -1798,6 +1803,9 @@ Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12
# See Europe/Belgrade.
+Link Europe/Rome Europe/Vatican
+Link Europe/Rome Europe/San_Marino
+
# Latvia
# From Liene Kanepe (1998-09-17):
@@ -1890,7 +1898,7 @@ Zone Europe/Riga 1:36:34 - LMT 1880
# I could confirm from the paper that Liechtenstein did in fact follow
# the same DST in 1941 and 1942 as Switzerland did.
-# See Europe/Zurich.
+Link Europe/Zurich Europe/Vaduz
# Lithuania
@@ -2247,7 +2255,8 @@ Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1
# Haudegen did not surrender to the Allies until September 1945.
#
# All these events predate our cutoff date of 1970, so use Europe/Oslo
-# for these regions; see 'backward'.
+# for these regions.
+Link Europe/Oslo Arctic/Longyearbyen
# Poland
@@ -3516,9 +3525,14 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884
# Shanks & Pottenger don't give as much detail, so go with Koželj.
1:00 - CET 1982 Nov 27
1:00 EU CE%sT
+Link Europe/Belgrade Europe/Ljubljana # Slovenia
+Link Europe/Belgrade Europe/Podgorica # Montenegro
+Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina
+Link Europe/Belgrade Europe/Skopje # North Macedonia
+Link Europe/Belgrade Europe/Zagreb # Croatia
# Slovakia
-# See Europe/Prague.
+Link Europe/Prague Europe/Bratislava
# Slovenia
# See Europe/Belgrade.
@@ -3989,7 +4003,7 @@ Zone Europe/Istanbul 1:55:52 - LMT 1880
2:00 1:00 EEST 2015 Nov 8 1:00u
2:00 EU EE%sT 2016 Sep 7
3:00 - +03
-# See the 'backward' file for Asia/Istanbul.
+Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
# Ukraine
#
diff --git a/northamerica b/northamerica
index a2f2b43..b1a306d 100644
--- a/northamerica
+++ b/northamerica
@@ -829,6 +829,8 @@ Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42
-7:00 - MST 1967
-7:00 US M%sT 1968 Mar 21
-7:00 - MST
+Link America/Phoenix America/Creston
+
# From Arthur David Olson (1988-02-13):
# A writer from the Inter Tribal Council of Arizona, Inc.,
# notes in private correspondence dated 1987-12-28 that "Presently, only the
@@ -1766,6 +1768,7 @@ Zone America/Toronto -5:17:32 - LMT 1895
-5:00 Canada E%sT 1946
-5:00 Toronto E%sT 1974
-5:00 Canada E%sT
+Link America/Toronto America/Nassau
Zone America/Thunder_Bay -5:57:00 - LMT 1895
-6:00 - CST 1910
-5:00 - EST 1942
@@ -2810,7 +2813,7 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
# See America/Puerto_Rico.
# The Bahamas
-# See America/Montreal.
+# See America/Toronto.
# Barbados
@@ -3565,6 +3568,8 @@ Zone America/Managua -5:45:08 - LMT 1890
Zone America/Panama -5:18:08 - LMT 1890
-5:19:36 - CMT 1908 Apr 22 # Colón Mean Time
-5:00 - EST
+Link America/Panama America/Atikokan
+Link America/Panama America/Cayman
# Puerto Rico
# There are too many San Juans elsewhere, so we'll use 'Puerto_Rico'.
@@ -3573,6 +3578,25 @@ Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan
-4:00 - AST 1942 May 3
-4:00 US A%sT 1946
-4:00 - AST
+Link America/Puerto_Rico America/Anguilla
+Link America/Puerto_Rico America/Antigua
+Link America/Puerto_Rico America/Aruba
+Link America/Puerto_Rico America/Curacao
+Link America/Puerto_Rico America/Blanc-Sablon # Quebec (Lower North Shore)
+Link America/Puerto_Rico America/Dominica
+Link America/Puerto_Rico America/Grenada
+Link America/Puerto_Rico America/Guadeloupe
+Link America/Puerto_Rico America/Kralendijk # Caribbean Netherlands
+Link America/Puerto_Rico America/Lower_Princes # Sint Maarten
+Link America/Puerto_Rico America/Marigot # St Martin (French part)
+Link America/Puerto_Rico America/Montserrat
+Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago
+Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy
+Link America/Puerto_Rico America/St_Kitts # St Kitts & Nevis
+Link America/Puerto_Rico America/St_Lucia
+Link America/Puerto_Rico America/St_Thomas # Virgin Islands (US)
+Link America/Puerto_Rico America/St_Vincent
+Link America/Puerto_Rico America/Tortola # Virgin Islands (UK)
# St Kitts-Nevis
# St Lucia
diff --git a/southamerica b/southamerica
index 9d8f460..7900af9 100644
--- a/southamerica
+++ b/southamerica
@@ -1375,8 +1375,8 @@ Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
# use links for places with new iso3166 codes.
# The name "Lower Prince's Quarter" is both longer than fourteen characters
# and contains an apostrophe; use "Lower_Princes"....
-# From Paul Eggert (2021-05-06):
-# These backward-compatibility links now are in the 'backward' file.
+# From Paul Eggert (2021-09-29):
+# These backward-compatibility links now are in the 'northamerica' file.
# Ecuador
#
diff --git a/zic.c b/zic.c
index c6feb8b..0101351 100644
--- a/zic.c
+++ b/zic.c
@@ -1990,7 +1990,7 @@ limitrange(struct timerange r, bool locut, zic_t lo, zic_t hi,
/* Omit ordinary and leap second transitions greater than HI + 1. */
- if (hi < ZIC_MAX) {
+ if (hi < max_time) {
while (0 < r.count && hi + 1 < ats[r.base + r.count - 1])
r.count--;
while (0 < r.leapcount && hi + 1 < trans[r.leapbase + r.leapcount - 1])
@@ -2003,7 +2003,7 @@ limitrange(struct timerange r, bool locut, zic_t lo, zic_t hi,
This is needed when the output is truncated at the start, and is
also useful when catering to buggy 32-bit clients that do not use
time type 0 for timestamps before the first transition. */
- r.pretrans = locut && ! (r.count && ats[r.base] == lo);
+ r.pretrans = locut && r.base && ! (r.count && ats[r.base] == lo);
/* Determine whether to append an expiration to the leap second table. */
r.leapexpiry = 0 <= leapexpires && leapexpires - 1 <= hi;
@@ -2120,7 +2120,7 @@ writezone(const char *const name, const char *const string, char version,
rangeall.pretrans = rangeall.leapexpiry = false;
range64 = limitrange(rangeall, min_time < lo_time,
lo_time, hi_time, ats, types);
- range32 = limitrange(range64, INT32_MIN < lo_time,
+ range32 = limitrange(range64, INT32_MIN < lo_time || want_bloat(),
INT32_MIN, INT32_MAX, ats, types);
/* TZif version 4 is needed if a no-op transition is appended to
@@ -2205,12 +2205,12 @@ writezone(const char *const name, const char *const string, char version,
error(_("too many transition times"));
thistimelim = thistimei + thistimecnt;
- if (thistimecnt && hi_time < ZIC_MAX
+ if (thistimecnt && hi_time < max_time
&& ats[thistimelim - 1] == hi_time + 1)
hicut = false;
memset(omittype, true, typecnt);
omittype[thisdefaulttype] = false;
- for (i = thistimei; i < thistimelim; i++)
+ for (i = thistimei - pretrans; i < thistimelim; i++)
omittype[types[i]] = false;
/* Reorder types to make THISDEFAULTTYPE type 0.
@@ -2232,7 +2232,7 @@ writezone(const char *const name, const char *const string, char version,
register int mrudst, mrustd, hidst, histd, type;
hidst = histd = mrudst = mrustd = -1;
- for (i = thistimei; i < thistimelim; ++i)
+ for (i = thistimei - pretrans; i < thistimelim; ++i)
if (isdsts[types[i]])
mrudst = types[i];
else mrustd = types[i];
@@ -2348,9 +2348,7 @@ writezone(const char *const name, const char *const string, char version,
if (hicut)
puttzcodepass(hi_time + 1, fp, pass);
currenttype = 0;
- if (pretrans)
- putc(currenttype, fp);
- for (i = thistimei; i < thistimelim; ++i) {
+ for (i = thistimei - pretrans; i < thistimelim; ++i) {
currenttype = typemap[types[i]];
putc(currenttype, fp);
}