From 9fae5fa7230fc4a3aa06b29fc8f4c59c88f1a98e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 15 Oct 2022 19:11:45 -0700 Subject: [PROPOSED 4/5] Improve checking for shortcut links * backward: Add comments for shortcut links. * checklinks.awk: Check these links. --- backward | 147 ++++++++----------------------------------------- checklinks.awk | 13 +++++ 2 files changed, 35 insertions(+), 125 deletions(-) diff --git a/backward b/backward index 15237c3..101cbc0 100644 --- a/backward +++ b/backward @@ -16,124 +16,21 @@ # This file is divided into sections, one for each major reason for a # backward compatibility link. Each section is sorted by link name. +# A "#= TARGET1" comment labels each link inserted only because some +# .zi parsers mishandle links to links. The comment says what the +# target would be if these parsers were fixed so that data could +# contain links to links. For example, the line +# "Link Australia/Sydney Australia/ACT #= Australia/Canberra" would be +# "Link Australia/Canberra Australia/ACT" were it not that data lines +# refrain from linking to links like Australia/Canberra, which means +# the Australia/ACT line links instead to Australia/Sydney, +# Australia/Canberra's target. + # Pre-1993 naming conventions -# 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 Asia/Urumqi Antarctica/Vostok -Link Europe/Berlin Arctic/Longyearbyen -Link Asia/Riyadh Asia/Aden -Link Asia/Ashgabat Asia/Ashkhabad -Link Asia/Qatar Asia/Bahrain -Link Asia/Kuching Asia/Brunei -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 -# Istanbul is in both continents. -Link Europe/Istanbul Asia/Istanbul -Link Asia/Urumqi Asia/Kashgar -Link Asia/Kathmandu Asia/Katmandu -Link Asia/Singapore Asia/Kuala_Lumpur -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/Reykjavik -Link Africa/Abidjan Atlantic/St_Helena -Link Australia/Sydney Australia/ACT +# Link TARGET LINK-NAME #= TARGET1 +Link Australia/Sydney Australia/ACT #= Australia/Canberra Link Australia/Lord_Howe Australia/LHI Link Australia/Sydney Australia/NSW Link Australia/Darwin Australia/North @@ -143,7 +40,7 @@ Link Australia/Hobart Australia/Tasmania Link Australia/Melbourne Australia/Victoria Link Australia/Perth Australia/West Link Australia/Broken_Hill Australia/Yancowinna -Link America/Rio_Branco Brazil/Acre +Link America/Rio_Branco Brazil/Acre #= America/Porto_Acre Link America/Noronha Brazil/DeNoronha Link America/Sao_Paulo Brazil/East Link America/Manaus Brazil/West @@ -192,7 +89,7 @@ Link Etc/GMT GMT0 Link Etc/GMT Greenwich # End of rearguard section. Link Asia/Hong_Kong Hongkong -Link Africa/Abidjan Iceland +Link Africa/Abidjan Iceland #= Atlantic/Reykjavik Link Asia/Tehran Iran Link Asia/Jerusalem Israel Link America/Jamaica Jamaica @@ -204,7 +101,7 @@ Link America/Mazatlan Mexico/BajaSur Link America/Mexico_City Mexico/General Link Pacific/Auckland NZ Link Pacific/Chatham NZ-CHAT -Link America/Denver Navajo +Link America/Denver Navajo #= America/Shiprock Link Asia/Shanghai PRC Link Europe/Warsaw Poland Link Europe/Lisbon Portugal @@ -233,7 +130,7 @@ Link Etc/UTC Zulu # Two-part names that were renamed mostly to three-part names in 1995 -# Link TARGET LINK-NAME +# Link TARGET LINK-NAME #= TARGET1 Link America/Argentina/Buenos_Aires America/Buenos_Aires Link America/Argentina/Catamarca America/Catamarca Link America/Argentina/Cordoba America/Cordoba @@ -242,7 +139,7 @@ Link America/Argentina/Jujuy America/Jujuy Link America/Indiana/Knox America/Knox_IN Link America/Kentucky/Louisville America/Louisville Link America/Argentina/Mendoza America/Mendoza -Link America/Puerto_Rico America/Virgin +Link America/Puerto_Rico America/Virgin #= America/St_Thomas Link Pacific/Pago_Pago Pacific/Samoa @@ -395,12 +292,12 @@ Link Pacific/Port_Moresby Pacific/Yap # Alternate names for the same location -# Link TARGET LINK-NAME -Link Africa/Nairobi Africa/Asmera +# Link TARGET LINK-NAME #= TARGET1 +Link Africa/Nairobi Africa/Asmera #= Africa/Asmara Link America/Nuuk America/Godthab Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Kolkata Asia/Calcutta -Link Asia/Shanghai Asia/Chungking +Link Asia/Shanghai Asia/Chungking #= Asia/Chongqing Link Asia/Dhaka Asia/Dacca # Istanbul is in both continents. Link Europe/Istanbul Asia/Istanbul @@ -416,5 +313,5 @@ Link Europe/Kyiv Europe/Kiev # Classically, Cyprus is in Asia; e.g. see Herodotus, Histories, I.72. # However, for various reasons many users expect to find it under Europe. Link Asia/Nicosia Europe/Nicosia -Link Pacific/Guadalcanal Pacific/Ponape -Link Pacific/Port_Moresby Pacific/Truk +Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei +Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk diff --git a/checklinks.awk b/checklinks.awk index b2bb17a..6e4fda8 100644 --- a/checklinks.awk +++ b/checklinks.awk @@ -36,6 +36,9 @@ BEGIN { printf "%s: Link should be in '%s'\n", $3, backcheck status = 1 } + if ($4 == "#=") { + shortcut[$5] = $3 + } used[$2] = 1 defined[$3] = $2 } @@ -47,6 +50,16 @@ END { status = 1 } } + for (tz in shortcut) { + if (defined[shortcut[tz]] != defined[tz]) { + target = (!defined[tz] ? "absence" \ + : defined[tz] == "\n" ? "zone" \ + : defined[tz]) + printf "%s: target %s disagrees with %s's target %s\n", \ + tz, target, shortcut[tz], defined[shortcut[tz]] + status = 1 + } + } exit status } -- 2.37.3