2006-01-09 Roland McGrath <roland@redhat.com>
authorroland <roland>
Tue, 10 Jan 2006 07:55:37 +0000 (07:55 +0000)
committerroland <roland>
Tue, 10 Jan 2006 07:55:37 +0000 (07:55 +0000)
* timezone/private.h: Update from tzcode2005r.
* timezone/tzfile.h: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.
* timezone/africa: Update from tzdata2005r.
* timezone/antarctica: Likewise.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
* timezone/backward: Likewise.
* timezone/europe: Likewise.
* timezone/northamerica: Likewise.
* timezone/southamerica: Likewise.
* timezone/systemv: Likewise.

13 files changed:
timezone/africa
timezone/antarctica
timezone/asia
timezone/australasia
timezone/backward
timezone/europe
timezone/northamerica
timezone/private.h
timezone/southamerica
timezone/systemv
timezone/tzfile.h
timezone/zdump.c
timezone/zic.c

index 87ae9e3..153e254 100644 (file)
@@ -1,4 +1,5 @@
-# @(#)africa   7.39
+# @(#)africa   7.40
+# <pre>
 
 # 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
index c11d24e..f3efe19 100644 (file)
@@ -1,4 +1,5 @@
-# @(#)antarctica       7.25
+# @(#)antarctica       7.30
+# <pre>
 
 # From Paul Eggert (1999-11-15):
 # To keep things manageable, we list only locations occupied year-round; see
@@ -59,7 +60,7 @@ Rule  ChileAQ 2000    max     -       Mar     Sun>=9  0:00    0       -
 # Australia - territories
 # Heard Island, McDonald Islands (uninhabited)
 #      previously sealers and scientific personnel wintered
-#      <a href="http://www.dstc.qut.edu.au/DST/marg/daylight.html">
+#      <a href="http://web.archive.org/web/20021204222245/http://www.dstc.qut.edu.au/DST/marg/daylight.html">
 #      Margaret Turner reports
 #      </a> (1999-09-30) that they're UTC+5, with no DST;
 #      presumably this is when they have visitors.
@@ -106,7 +107,7 @@ Zone Antarctica/Mawson      0       -       zzz     1954 Feb 13
 
 # France - year-round bases
 #
-# From Antoine Leca <Antoine.Leca@Renault.FR> (1997-01-20):
+# From Antoine Leca (1997-01-20):
 # Time data are from Nicole Pailleau at the IFRTP
 # (French Institute for Polar Research and Technology).
 # She confirms that French Southern Territories and Terre Adelie bases
@@ -139,11 +140,10 @@ Zone Antarctica/DumontDUrville 0 -        zzz     1947
                        0       -       zzz     1956 Nov
                        10:00   -       DDUT    # Dumont-d'Urville Time
 # Reference:
-# <a href="http://www.icair.iac.org.nz/science/reports/fr/IFRTP.html">
-# Support and Development of Polar Research and Technology (1997-02-03)
+# <a href="http://en.wikipedia.org/wiki/Dumont_d'Urville_Station">
+# Dumont d'Urville Station (2005-12-05)
 # </a>
 
-
 # Germany - year-round base
 # Georg von Neumayer, -7039-00815
 
@@ -155,9 +155,7 @@ Zone Antarctica/DumontDUrville 0 -  zzz     1947
 # Syowa, -690022+0393524
 #
 # From Hideyuki Suzuki (1999-02-06):
-# In all Japanese stations, +0300 is used as the standard time.  [See]
-# <a href="http://www.crl.go.jp/uk/uk201/basyo.htm">[reference in Japanese]</a>
-# and information from KAMO Hiroyasu.
+# In all Japanese stations, +0300 is used as the standard time.
 #
 # Syowa station, which is the first antarctic station of Japan,
 # was established on 1957-01-29.  Since Syowa station is still the main
@@ -296,7 +294,7 @@ Zone Antarctica/McMurdo     0       -       zzz     1956
 # Normally it wouldn't have a separate entry, since it's like the
 # larger Antarctica/McMurdo since 1970, but it's too famous to omit.
 #
-# From Chris Carrier <72157.3334@CompuServe.COM> (1996-06-27):
+# From Chris Carrier (1996-06-27):
 # Siple, the first commander of the South Pole station,
 # stated that he would have liked to have kept GMT at the station,
 # but that he found it more convenient to keep GMT+12
index 52ba323..59e62dd 100644 (file)
@@ -1,4 +1,5 @@
-# @(#)asia     7.85
+# @(#)asia     7.90
+# <pre>
 
 # 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
@@ -85,7 +86,7 @@ Zone  Asia/Kabul      4:36:48 -       LMT     1890
 # Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991,
 # then to 4:00 with no DST in fall 1995, then readopting Russian DST in 1997.
 # Go with Shanks, even when he disagrees with others.  Edgar Der-Danieliantz
-# <edd@AIC.NET> reported (1996-05-04) that Yerevan probably wouldn't use DST
+# reported (1996-05-04) that Yerevan probably wouldn't use DST
 # in 1996, though it did use DST in 1995.  IATA SSIM (1991/1998) reports that
 # Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991,
 # but started switching at 3:00s in 1998.
@@ -99,9 +100,12 @@ Zone        Asia/Yerevan    2:58:00 -       LMT     1924 May  2
                        4:00 RussiaAsia AM%sT
 
 # Azerbaijan
+# From Rustam Aliyev of the Azerbaijan Internet Forum (2005-10-23):
+# According to the resolution of Cabinet of Ministers, 1997
+# Resolution available at: http://aif.az/docs/daylight_res.pdf
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Azer    1997    max     -       Mar     lastSun  1:00   1:00    S
-Rule   Azer    1997    max     -       Oct     lastSun  1:00   0       -
+Rule   Azer    1997    max     -       Mar     lastSun  4:00   1:00    S
+Rule   Azer    1997    max     -       Oct     lastSun  5:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Baku       3:19:24 -       LMT     1924 May  2
                        3:00    -       BAKT    1957 Mar    # Baku Time
@@ -348,6 +352,17 @@ Link       Asia/Nicosia    Europe/Nicosia
 # Mikhail Saakashvili, who said the change was partly prompted by the process
 # of integration into Europe.
 
+# From Teimuraz Abashidze (2005-11-07):
+# Government of Georgia ... decided to NOT CHANGE daylight savings time on
+# [Oct.] 30, as it was done before during last more than 10 years.
+# Currently, we are in fact GMT +4:00, as before 30 October it was GMT
+# +3:00.... The problem is, there is NO FORMAL LAW or governmental document
+# about it.  As far as I can find, I was told, that there is no document,
+# because we just DIDN'T ISSUE document about switching to winter time....
+# I don't know what can be done, especially knowing that some years ago our
+# DST rules where changed THREE TIMES during one month.
+
+
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Tbilisi    2:59:16 -       LMT     1880
                        2:59:16 -       TBMT    1924 May  2 # Tbilisi Mean Time
@@ -359,7 +374,8 @@ Zone        Asia/Tbilisi    2:59:16 -       LMT     1880
                        4:00 E-EurAsia  GE%sT   1996 Oct lastSun
                        4:00    1:00    GEST    1997 Mar lastSun
                        4:00 E-EurAsia  GE%sT   2004 Jun 27
-                       3:00 RussiaAsia GE%sT
+                       3:00 RussiaAsia GE%sT   2005 Mar lastSun 2:00
+                       4:00    -       GET
 
 # East Timor
 
@@ -915,6 +931,9 @@ Zone        Asia/Tokyo      9:18:59 -       LMT     1887 Dec 31 15:00u
 # The decision was taken because of the increase in working hours in
 # government's departments from six to seven hours.
 #
+# From Paul Eggert (2005-11-22):
+# Starting 2003 transitions are from Steffen Thorsen's web site timeanddate.com.
+#
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Jordan  1973    only    -       Jun     6       0:00    1:00    S
 Rule   Jordan  1973    1975    -       Oct     1       0:00    0       -
@@ -937,8 +956,11 @@ Rule       Jordan  1993    1998    -       Apr     Fri>=1  0:00    1:00    S
 Rule   Jordan  1994    only    -       Sep     Fri>=15 0:00    0       -
 Rule   Jordan  1995    1998    -       Sep     Fri>=15 0:00s   0       -
 Rule   Jordan  1999    only    -       Jul      1      0:00s   1:00    S
-Rule   Jordan  1999    max     -       Sep     lastThu 0:00s   0       -
+Rule   Jordan  1999    2002    -       Sep     lastThu 0:00s   0       -
 Rule   Jordan  2000    max     -       Mar     lastThu 0:00s   1:00    S
+Rule   Jordan  2003    only    -       Oct     24      0:00s   0       -
+Rule   Jordan  2004    only    -       Oct     15      0:00s   0       -
+Rule   Jordan  2005    max     -       Sep     lastFri 0:00s   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Amman      2:23:44 -       LMT     1931
                        2:00    Jordan  EE%sT
@@ -1044,18 +1066,22 @@ Zone    Asia/Oral       3:25:24 -       LMT     1924 May  2 # or Ural'sk
 # <http://eng.gateway.kg/cgi-bin/page.pl?id=1&story_name=doc9979.shtml>
 # Kyrgyzstan is canceling the daylight saving time system.  I take the article
 # to mean that they will leave their clocks at 6 hours ahead of UTC.
+# From Malik Abdugaliev (2005-09-21):
+# Our government cancels daylight saving time 6th of August 2005.
+# From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-Rule   Kirgiz  1992    1996    -       Apr     Sun>=7  0:00s   1:00    S
-Rule   Kirgiz  1992    1996    -       Sep     lastSun 0:00    0       -
-Rule   Kirgiz  1997    max     -       Mar     lastSun 2:30    1:00    S
-Rule   Kirgiz  1997    max     -       Oct     lastSun 2:30    0       -
+Rule   Kyrgyz  1992    1996    -       Apr     Sun>=7  0:00s   1:00    S
+Rule   Kyrgyz  1992    1996    -       Sep     lastSun 0:00    0       -
+Rule   Kyrgyz  1997    2005    -       Mar     lastSun 2:30    1:00    S
+Rule   Kyrgyz  1997    2004    -       Oct     lastSun 2:30    0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Bishkek    4:58:24 -       LMT     1924 May  2
                        5:00    -       FRUT    1930 Jun 21 # Frunze Time
                        6:00 RussiaAsia FRU%sT  1991 Mar 31 2:00s
                        5:00    1:00    FRUST   1991 Aug 31 2:00 # independence
-                       5:00    Kirgiz  KG%sT               # Kirgizstan Time
+                       5:00    Kyrgyz  KG%sT   2005 Aug 12    # Kyrgyzstan Time
+                       6:00    -       KGT
 
 ###############################################################################
 
@@ -1404,6 +1430,9 @@ Zone      Asia/Karachi    4:28:12 -       LMT     1907
 # For now, let's assume that the spring switch was at 24:00,
 # and that they switch at 0:00 on the 3rd Fridays of April and October.
 
+# From Paul Eggert (2005-11-22):
+# Starting 2004 transitions are from Steffen Thorsen's web site timeanddate.com.
+
 # The rules for Egypt are stolen from the `africa' file.
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule EgyptAsia 1957    only    -       May     10      0:00    1:00    S
@@ -1414,7 +1443,9 @@ Rule EgyptAsia    1959    1965    -       Sep     30      3:00    0       -
 Rule EgyptAsia 1966    only    -       Oct      1      3:00    0       -
 
 Rule Palestine 1999    max     -       Apr     Fri>=15 0:00    1:00    S
-Rule Palestine 1999    max     -       Oct     Fri>=15 0:00    0       -
+Rule Palestine 1999    2003    -       Oct     Fri>=15 0:00    0       -
+Rule Palestine 2004    only    -       Oct      1      1:00    0       -
+Rule Palestine 2005    max     -       Oct      4      1:00    0       -
 
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Gaza       2:17:52 -       LMT     1900 Oct
index 57bd60a..6cf9761 100644 (file)
@@ -1,4 +1,6 @@
-# @(#)australasia      7.73
+# @(#)australasia      7.78
+# <pre>
+
 # This file also includes Pacific islands.
 
 # Notes are at the end of this file
@@ -551,9 +553,15 @@ Zone       Pacific/Wallis  12:15:20 -      LMT     1901
 
 # Australia
 
-# <a href="http://www.dstc.qut.edu.au/DST/marg/daylight.html">
-# Australia's Daylight Saving Times
-# </a>, by Margaret Turner, summarizes daylight saving issues in Australia.
+# From Paul Eggert (2005-12-08):
+# <a href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">
+# Implementation Dates of Daylight Saving Time within Australia
+# </a> summarizes daylight saving issues in Australia.
+
+# From Arthur David Olson (2005-12-12):
+# <a href="http://www.lawlink.nsw.gov.au/lawlink/Corporate/ll_agdinfo.nsf/pages/community_relations_daylight_saving">
+# Lawlink NSW:Daylight Saving in New South Wales
+# </a> covers New South Wales in particular.
 
 # From John Mackin (1991-03-06):
 # We in Australia have _never_ referred to DST as `daylight' time.
@@ -960,17 +968,6 @@ Zone       Pacific/Wallis  12:15:20 -      LMT     1901
 #      legislation.  This is very important to understand.
 #      I have researched New South Wales time only...
 
-# From Paul Eggert (1999-09-27):
-# The Information Service of the Australian National Standards Commission
-# <a href="http://www.nsc.gov.au/InfoServ/Ileaflet/il27.htm">
-# Daylight Saving
-# </a> page (1995-04) has an excellent overall history of Australian DST.
-# The Community Relations Division of the NSW Attorney General's Department
-# publishes a history of daylight saving in NSW.  See:
-# <a href="http://www.lawlink.nsw.gov.au/crd.nsf/pages/time2">
-# Lawlink NSW: Daylight Saving in New South Wales
-# </a>
-
 # From Eric Ulevik (1999-05-26):
 # DST will start in NSW on the last Sunday of August, rather than the usual
 # October in 2000.  [See: Matthew Moore,
@@ -1048,7 +1045,7 @@ Zone      Pacific/Wallis  12:15:20 -      LMT     1901
 # Lord Howe Island
 
 # From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
-# LHI...               [ Courtesy of Pauline Van Winsen.. pauline@Aus ]
+# LHI...               [ Courtesy of Pauline Van Winsen ]
 #                                      [ Dec 1990 ]
 # Lord Howe Island is located off the New South Wales coast, and is half an
 # hour ahead of NSW time.
@@ -1088,7 +1085,7 @@ Zone      Pacific/Wallis  12:15:20 -      LMT     1901
 # From George Shepherd via Simon Woodhead via Robert Elz (1991-03-06):
 # # The Country of New Zealand   (Australia's east island -) Gee they hate that!
 # #                               or is Australia the west island of N.Z.
-# #    [ courtesy of Geoff Tribble.. Geofft@Aus.. Auckland N.Z. ]
+# #    [ courtesy of Geoff Tribble.. Auckland N.Z. ]
 # #                            [ Nov 1990 ]
 # ...
 # Rule NZ      1974    1988    -       Oct     lastSun 2:00    1:00    D
@@ -1375,16 +1372,26 @@ Zone    Pacific/Wallis  12:15:20 -      LMT     1901
 # mapmakers redrew the IDL following the boundary of Kiribati.  Even that line
 # has a rather arbitrary nature.  The straight-line boundaries between Pacific
 # island nations that are shown on many maps are based on an international
-# convention, but are not legally binding national borders.
-#
-# An Anglo-French Conference on Time-Keeping at Sea (June, 1917) agreed that
-# legal time on the high seas would be zone time, i.e., the standard time at
-# the nearest meridian that is a multiple of fifteen degrees.  The date is
+# convention, but are not legally binding national borders.... The date is
 # governed by the IDL; therefore, even on the high seas, there may be some
 # places as late as fourteen hours later than UTC.  And, since the IDL is not
 # an international standard, there are some places on the high seas where the
 # correct date is ambiguous.
 
+# From Wikipedia <http://en.wikipedia.org/wiki/Time_zone> (2005-08-31):
+# Before 1920, all ships kept local apparent time on the high seas by setting
+# their clocks at night or at the morning sight so that, given the ship's
+# speed and direction, it would be 12 o'clock when the Sun crossed the ship's
+# meridian (12 o'clock = local apparent noon).  During 1917, at the
+# Anglo-French Conference on Time-keeping at Sea, it was recommended that all
+# ships, both military and civilian, should adopt hourly standard time zones
+# on the high seas.  Whenever a ship was within the territorial waters of any
+# nation it would use that nation's standard time.  The captain was permitted
+# to change his ship's clocks at a time of his choice following his ship's
+# entry into another zone time--he often chose midnight.  These zones were
+# adopted by all major fleets between 1920 and 1925 but not by many
+# independent merchant ships until World War II.
+
 # From Paul Eggert, using references suggested by Oscar van Vlijmen
 # (2005-03-20):
 #
index ca22dfe..4ddfe41 100644 (file)
@@ -1,4 +1,4 @@
-# @(#)backward 7.29
+# @(#)backward 7.30
 
 # This file provides links between current names for time zones
 # and their old names.  Many names changed in late 1993.
@@ -42,7 +42,6 @@ Link  America/Rio_Branco      Brazil/Acre
 Link   America/Noronha         Brazil/DeNoronha
 Link   America/Sao_Paulo       Brazil/East
 Link   America/Manaus          Brazil/West
-Link   America/Chicago         CST6CDT
 Link   America/Halifax         Canada/Atlantic
 Link   America/Winnipeg        Canada/Central
 Link   America/Regina          Canada/East-Saskatchewan
@@ -55,8 +54,6 @@ Link  America/Whitehorse      Canada/Yukon
 Link   America/Santiago        Chile/Continental
 Link   Pacific/Easter          Chile/EasterIsland
 Link   America/Havana          Cuba
-Link   America/Panama          EST
-Link   America/New_York        EST5EDT
 Link   Africa/Cairo            Egypt
 Link   Europe/Dublin           Eire
 Link   Europe/London           Europe/Belfast
@@ -67,7 +64,6 @@ Link  Etc/GMT                 GMT+0
 Link   Etc/GMT                 GMT-0
 Link   Etc/GMT                 GMT0
 Link   Etc/GMT                 Greenwich
-Link   Pacific/Honolulu        HST
 Link   Asia/Hong_Kong          Hongkong
 Link   Atlantic/Reykjavik      Iceland
 Link   Asia/Tehran             Iran
@@ -76,8 +72,6 @@ Link  America/Jamaica         Jamaica
 Link   Asia/Tokyo              Japan
 Link   Pacific/Kwajalein       Kwajalein
 Link   Africa/Tripoli          Libya
-Link   America/Phoenix         MST
-Link   America/Denver          MST7MDT
 Link   America/Tijuana         Mexico/BajaNorte
 Link   America/Mazatlan        Mexico/BajaSur
 Link   America/Mexico_City     Mexico/General
@@ -85,7 +79,6 @@ Link  Pacific/Auckland        NZ
 Link   Pacific/Chatham         NZ-CHAT
 Link   America/Denver          Navajo
 Link   Asia/Shanghai           PRC
-Link   America/Los_Angeles     PST8PDT
 Link   Pacific/Pago_Pago       Pacific/Samoa
 Link   Pacific/Truk            Pacific/Yap
 Link   Europe/Warsaw           Poland
index ec6720a..8782860 100644 (file)
@@ -1,4 +1,5 @@
-# @(#)europe   7.95
+# @(#)europe   7.96
+# <pre>
 
 # 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
index 40a2ce2..9f9b98b 100644 (file)
@@ -1,4 +1,6 @@
-# @(#)northamerica     7.79
+# @(#)northamerica     7.87
+# <pre>
+
 # also includes Central America and the Caribbean
 
 # This data is by no means authoritative; if you think you know better,
@@ -131,6 +133,26 @@ Rule       US      1987    2006    -       Apr     Sun>=1  2:00    1:00    D
 Rule   US      2007    max     -       Mar     Sun>=8  2:00    1:00    D
 Rule   US      2007    max     -       Nov     Sun>=1  2:00    0       S
 
+# From Arthur David Olson, 2005-12-19
+# We generate the files specified below to guard against old files with
+# obsolete information being left in the time zone binary directory.
+# We limit the list to names that have appeared in previous versions of
+# this time zone package.
+# We do these as separate Zones rather than as Links to avoid problems if
+# a particular place changes whether it observes DST.
+# We put these specifications here in the northamerica file both to
+# increase the chances that they'll actually get compiled and to
+# avoid the need to duplicate the US rules in another file.
+
+# Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
+Zone   EST              -5:00  -       EST
+Zone   MST              -7:00  -       MST
+Zone   HST             -10:00  -       HST
+Zone   EST5EDT          -5:00  US      E%sT
+Zone   CST6CDT          -6:00  US      C%sT
+Zone   MST7MDT          -7:00  US      M%sT
+Zone   PST8PDT          -8:00  US      P%sT
+
 # From Bob Devine (1988-01-28):
 # ...Alaska (and Hawaii) had the timezone names changed in 1967.
 #    old                        new
@@ -244,6 +266,16 @@ Rule       US      2007    max     -       Nov     Sun>=1  2:00    0       S
 # and didn't change their clocks for Daylight Saving ... so that their
 # reports will always have times which are 5 hours behind UTC.
 
+# From Paul Eggert (2005-08-26):
+# According to today's Huntsville Times
+# <http://www.al.com/news/huntsvilletimes/index.ssf?/base/news/1125047783228320.xml&coll=1>
+# a few towns on Alabama's "eastern border with Georgia, such as Phenix City
+# in Russell County, Lanett in Chambers County and some towns in Lee County,
+# set their watches and clocks on Eastern time."  It quotes H.H. "Bubba"
+# Roberts, city administrator in Phenix City. as saying "We are in the Central
+# time zone, but we do go by the Eastern time zone because so many people work
+# in Columbus." 
+
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER
 Rule   NYC     1920    only    -       Mar     lastSun 2:00    1:00    D
 Rule   NYC     1920    only    -       Oct     lastSun 2:00    0       S
@@ -790,18 +822,37 @@ Zone America/Menominee    -5:50:27 -      LMT     1885 Sep 18 12:00
 
 # Unless otherwise specified, the data for Canada are all from Shanks.
 
-# From Paul Eggert (2000-10-02):
+# From Paul Eggert (2005-12-21):
 # H. David Matthews and Mary Vincent's map
-# <a href="http://www.canadiangeographic.ca/SO98/geomap.htm">
+# <a href="http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp">
 # "It's about TIME", _Canadian Geographic_ (September-October 1998)
 # </a> contains detailed boundaries for regions observing nonstandard
 # time and daylight saving time arrangements in Canada circa 1998.
 #
-# INMS, the Institute for National Measurement Standards in Ottawa, has
-# <a href="http://www.nrc.ca/inms/time/tze.html">
+# INMS, the Institute for National Measurement Standards in Ottawa, has <a
+# href="http://inms-ienm.nrc-cnrc.gc.ca/en/time_services/daylight_saving_e.php">
 # information about standard and daylight saving time zones in Canada.
 # </a> (updated periodically).
 # Its unofficial information is often taken from Matthews and Vincent.
+#
+# CBC News reported that Ontario and Manitoba have announced plans to
+# follow the US change, and that Nova Scotia is considering it; see
+# <http://www.cbc.ca/news/background/daylightsavingtime/> (2005-10-21).
+# CBC news also reported that Prince Edward Island is the first
+# province in Atlantic Canada to follow the US change, and that Quebec
+# had agreed; see <http://www.cbc.ca/pei/story/pe_daylight_20051207.html>
+# (2005-12-07).
+#
+# To reflect all this, the Canada and Winn rules have been adjusted to
+# agree with the 2007 US change.  This means we assume most of Canada
+# will fall into line.  However, Alberta, British Columbia,
+# Newfoundland, Northwest Territories, and Yukon already have separate
+# rules in our database, so for now we'll leave them alone, which
+# means that we currently assume these regions will not change their
+# rules and will disagree with the US starting in 2007.  This
+# assumption is probably incorrect, with the possible exception of
+# Newfoundland.  We plan to adjust the Edm, Vanc, StJohns, and NT_YK
+# rules as the corresponding provinces make their announcements.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Canada  1918    only    -       Apr     14      2:00    1:00    D
@@ -810,8 +861,10 @@ Rule       Canada  1942    only    -       Feb      9      2:00    1:00    W # War
 Rule   Canada  1945    only    -       Aug     14      23:00u  1:00    P # Peace
 Rule   Canada  1945    only    -       Sep     30      2:00    0       S
 Rule   Canada  1974    1986    -       Apr     lastSun 2:00    1:00    D
-Rule   Canada  1974    max     -       Oct     lastSun 2:00    0       S
-Rule   Canada  1987    max     -       Apr     Sun>=1  2:00    1:00    D
+Rule   Canada  1974    2006    -       Oct     lastSun 2:00    0       S
+Rule   Canada  1987    2006    -       Apr     Sun>=1  2:00    1:00    D
+Rule   Canada  2007    max     -       Mar     Sun>=8  2:00    1:00    D
+Rule   Canada  2007    max     -       Nov     Sun>=1  2:00    0       S
 
 
 # Newfoundland (and far southeast Labrador)
@@ -1137,11 +1190,13 @@ Rule    Winn    1963    only    -       Apr     lastSun 2:00    1:00    D
 Rule   Winn    1963    only    -       Sep     22      2:00    0       S
 Rule   Winn    1966    1986    -       Apr     lastSun 2:00    1:00    D
 Rule   Winn    1966    1986    -       Oct     lastSun 2:00    0       S
-Rule   Winn    1987    max     -       Apr     Sun>=1  2:00    1:00    D
+Rule   Winn    1987    2006    -       Apr     Sun>=1  2:00s   1:00    D
 # From Paul Eggert (2000-10-02):
 # INMS (2000-09-12) says that, since 1988 at least, Manitoba switches from
 # DST at 03:00 local time.  For now, assume it started in 1987.
-Rule   Winn    1987    max     -       Oct     lastSun 2:00s   0       S
+Rule   Winn    1987    2006    -       Oct     lastSun 2:00s   0       S
+Rule   Winn    2007    max     -       Mar     Sun>=8  2:00s   1:00    D
+Rule   Winn    2007    max     -       Nov     Sun>=1  2:00s   0       S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Winnipeg  -6:28:36 -      LMT     1887 Jul 16
                        -6:00   Winn    C%sT
@@ -1805,6 +1860,11 @@ Zone America/Costa_Rica  -5:36:20 -      LMT     1890            # San Jose
 # to normal hours (after daylight saving time)".
 # For now, let's assume that it's a one-year temporary measure.
 
+# From Carlos A. Carnero Delgado (2005-11-12):
+# This year (just like in 2004-2005) there's no change in time zone
+# adjustment in Cuba.  We will stay in daylight saving time:
+# http://www.granma.cu/espanol/2005/noviembre/mier9/horario.html
+
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Cuba    1928    only    -       Jun     10      0:00    1:00    D
 Rule   Cuba    1928    only    -       Oct     10      0:00    0       S
@@ -1835,7 +1895,7 @@ Rule      Cuba    1997    only    -       Oct     12      0:00s   0       S
 Rule   Cuba    1998    1999    -       Mar     lastSun 0:00s   1:00    D
 Rule   Cuba    1998    2003    -       Oct     lastSun 0:00s   0       S
 Rule   Cuba    2000    max     -       Apr     Sun>=1  0:00s   1:00    D
-Rule   Cuba    2005    max     -       Oct     lastSun 0:00s   0       S
+Rule   Cuba    2006    max     -       Oct     lastSun 0:00s   0       S
 
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Havana  -5:29:28 -      LMT     1890
@@ -2021,13 +2081,18 @@ Zone America/Montserrat -4:08:52 -      LMT     1911 Jul 1 0:01   # Olveston
 # changes in 2000.  Perhaps a note could be added to the northamerica file, to
 # the effect that we have indirect evidence that DST was observed in 2000.
 #
+# From Jesper Norgaard Welen (2005-11-02):
+# Nicaragua left DST the 2005-10-02 at 00:00 (local time).
+# http://www.presidencia.gob.ni/presidencia/files_index/secretaria/comunicados/2005/septiembre/26septiembre-cambio-hora.htm
+# (2005-09-26)
+#
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
 Rule   Nic     1979    1980    -       Mar     Sun>=16 0:00    1:00    D
 Rule   Nic     1979    1980    -       Jun     Mon>=23 0:00    0       S
-Rule   Nic     1992    only    -       Jan           4:00    1:00    D
+Rule   Nic     1992    only    -       Jan      1      4:00    1:00    D
 Rule   Nic     1992    only    -       Sep     24      0:00    0       S
 Rule   Nic     2005    only    -       Apr     10      0:00    1:00    D
-Rule   Nic     2005    only    -       Sep     18      0:00    0       S
+Rule   Nic     2005    only    -       Oct      2      0:00    0       S
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone   America/Managua -5:45:08 -      LMT     1890
                        -5:45:12 -      MMT     1934 Jun 23 # Managua Mean Time?
index 9a1ef22..33dc4c3 100644 (file)
@@ -4,7 +4,7 @@
 
 /*
 ** This file is in the public domain, so clarified as of
-** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
+** 1996-06-05 by Arthur David Olson.
 */
 
 /*
index 9bf068b..eb7b5c7 100644 (file)
@@ -1,4 +1,5 @@
-# @(#)southamerica     7.61
+# @(#)southamerica     7.66
+# <pre>
 
 # 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
@@ -525,12 +526,6 @@ Rule       Brazil  1997    only    -       Feb     16       0:00   0       -
 # This year, the ending date of DS was postponed to March 1
 # to help dealing with the shortages of electric power.
 #
-# From Paul Eggert (1998-02-25):
-# <a href="http://churchnet.ucsm.ac.uk/news/files2/news165.htm">
-# Brazil Prepares for Papal Visit
-# </a>,
-# Church Net UK (1997-10-02).
-#
 # Decree 2,317 (1997-09-04), adopted by same states.
 Rule   Brazil  1997    only    -       Oct      6       0:00   1:00    S
 # Decree <a href="http://pcdsh01.on.br/figuras/HV2495.JPG">2,495</a>
@@ -565,11 +560,12 @@ Rule      Brazil  2003    only    -       Oct     19       0:00   1:00    S
 # Decree 5,223 (2004-10-01) reestablishes DST in MT.
 # <a href="http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2004/Decreto/D5223.htm"></a>
 Rule   Brazil  2004    only    -       Nov      2       0:00   1:00    S
+# Decree <a href="http://pcdsh01.on.br/DecHV5539.gif">5,539</a> (2005-09-19),
+# adopted by the same states as before.
+Rule   Brazil  2005    max     -       Oct     Sun>=15  0:00   1:00    S
 # The latest ruleset listed above says that the following states observe DST:
 # DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP.
-#
-Rule   Brazil  2005    max     -       Oct     Sun>=15  0:00   1:00    S
-# For dates after mid-2005, the above rules with TO="max" are guesses
+# For dates after mid-2006, the above rules with TO="max" are guesses
 # and are quite possibly wrong, but are more likely than no DST at all.
 
 
@@ -1055,6 +1051,12 @@ Rule     Uruguay 2004    only    -       Sep     19       0:00   1:00    S
 # save energy ... it was postponed two weeks....
 # http://www.presidencia.gub.uy/_Web/noticias/2005/03/2005031005.htm
 Rule   Uruguay 2005    only    -       Mar     27       2:00   0       -
+# From Eduardo Cota (2005-09-27):
+# http://www.presidencia.gub.uy/_Web/decretos/2005/09/CM%20119_09%2009%202005_00001.PDF
+# This means that from 2005-10-09 at 02:00 local time, until 2006-03-12 at
+# 02:00 local time, official time in Uruguay will be at GMT -2.
+Rule   Uruguay 2005    only    -       Oct      9       2:00   1:00    S
+Rule   Uruguay 2006    only    -       Mar     12       2:00   0       -
 # Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
 Zone America/Montevideo        -3:44:44 -      LMT     1898 Jun 28
                        -3:44:44 -      MMT     1920 May  1     # Montevideo MT
index c6a6b64..a5b4209 100644 (file)
@@ -1,24 +1,24 @@
-# @(#)systemv  7.3
+# @(#)systemv  7.5
 
 # Old rules, should the need arise.
 # No attempt is made to handle Newfoundland, since it cannot be expressed
 # using the System V "TZ" scheme (half-hour offset), or anything outside
 # North America (no support for non-standard DST start/end dates), nor
-# the change in the DST rules in the US in 1987 (which occurred before
+# the changes in the DST rules in the US after 1976 (which occurred after
 # the old rules were written).
 #
-# If you need the old rules, uncomment ## lines and comment-out Link lines.
+# If you need the old rules, uncomment ## lines.
 # Compile this *without* leap second correction for true conformance.
 
 # Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
-## Rule        SystemV min     1973    -       Apr     lastSun 2:00    1:00    D
-## Rule        SystemV min     1973    -       Oct     lastSun 2:00    0       S
-## Rule        SystemV 1974    only    -       Jan     6       2:00    1:00    D
-## Rule        SystemV 1974    only    -       Nov     lastSun 2:00    0       S
-## Rule        SystemV 1975    only    -       Feb     23      2:00    1:00    D
-## Rule        SystemV 1975    only    -       Oct     lastSun 2:00    0       S
-## Rule        SystemV 1976    max     -       Apr     lastSun 2:00    1:00    D
-## Rule        SystemV 1976    max     -       Oct     lastSun 2:00    0       S
+Rule   SystemV min     1973    -       Apr     lastSun 2:00    1:00    D
+Rule   SystemV min     1973    -       Oct     lastSun 2:00    0       S
+Rule   SystemV 1974    only    -       Jan     6       2:00    1:00    D
+Rule   SystemV 1974    only    -       Nov     lastSun 2:00    0       S
+Rule   SystemV 1975    only    -       Feb     23      2:00    1:00    D
+Rule   SystemV 1975    only    -       Oct     lastSun 2:00    0       S
+Rule   SystemV 1976    max     -       Apr     lastSun 2:00    1:00    D
+Rule   SystemV 1976    max     -       Oct     lastSun 2:00    0       S
 
 # Zone NAME            GMTOFF  RULES/SAVE      FORMAT  [UNTIL]
 ## Zone        SystemV/AST4ADT -4:00   SystemV         A%sT
 ## Zone        SystemV/PST8    -8:00   -               PST
 ## Zone        SystemV/YST9    -9:00   -               YST
 ## Zone        SystemV/HST10   -10:00  -               HST
-# For now...
-Link   America/Halifax         SystemV/AST4ADT
-Link   America/New_York        SystemV/EST5EDT
-Link   America/Chicago         SystemV/CST6CDT
-Link   America/Denver          SystemV/MST7MDT
-Link   America/Los_Angeles     SystemV/PST8PDT
-Link   America/Anchorage       SystemV/YST9YDT
-Link   America/Puerto_Rico     SystemV/AST4
-Link   America/Indianapolis    SystemV/EST5
-Link   America/Regina          SystemV/CST6
-Link   America/Phoenix         SystemV/MST7
-Link   Pacific/Pitcairn        SystemV/PST8
-Link   Pacific/Gambier         SystemV/YST9
-Link   Pacific/Honolulu        SystemV/HST10
index 2dad932..fb6ca98 100644 (file)
@@ -4,7 +4,7 @@
 
 /*
 ** This file is in the public domain, so clarified as of
-** 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
+** 1996-06-05 by Arthur David Olson.
 */
 
 /*
@@ -21,7 +21,7 @@
 
 #ifndef lint
 #ifndef NOID
-static char    tzfilehid[] = "@(#)tzfile.h     7.17";
+static char    tzfilehid[] = "@(#)tzfile.h     7.18";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -105,7 +105,7 @@ struct tzhead {
 #ifdef NOSOLAR
 /*
 ** Must be at least 14 for Europe/Riga as of Jan 12 1995,
-** as noted by Earl Chew <earl@hpato.aus.hp.com>.
+** as noted by Earl Chew.
 */
 #define TZ_MAX_TYPES   20      /* Maximum number of local time types */
 #endif /* !defined NOSOLAR */
index d767d75..45ce641 100644 (file)
@@ -1,4 +1,4 @@
-static char    elsieid[] = "@(#)zdump.c        7.66";
+static char    elsieid[] = "@(#)zdump.c        7.74";
 
 /*
 ** This code has been made independent of the rest of the time
@@ -12,7 +12,10 @@ static char  elsieid[] = "@(#)zdump.c        7.66";
 #include "time.h"      /* for struct tm */
 #include "stdlib.h"    /* for exit, malloc, atoi */
 #include "float.h"     /* for FLT_MAX and DBL_MAX */
-#include <ctype.h>     /* for isascii, isalpha, isdigit */
+#include "ctype.h"     /* for isalpha et al. */
+#ifndef isascii
+#define isascii(x) 1
+#endif
 
 #ifndef ZDUMP_LO_YEAR
 #define ZDUMP_LO_YEAR  (-500)
@@ -148,7 +151,7 @@ static char *       progname;
 static int     warned;
 
 static char *  abbr P((struct tm * tmp));
-static void    abbrok P((const char * abbr, const char * zone));
+static void    abbrok P((const char * abbrp, const char * zone));
 static long    delta P((struct tm * newp, struct tm * oldp));
 static void    dumptime P((const struct tm * tmp));
 static time_t  hunt P((char * name, time_t lot, time_t hit));
@@ -195,8 +198,8 @@ time_t *    tp;
 #endif /* !defined TYPECHECK */
 
 static void
-abbrok(abbr, zone)
-const char * const     abbr;
+abbrok(abbrp, zone)
+const char * const     abbrp;
 const char * const     zone;
 {
        register const char *   cp;
@@ -204,30 +207,31 @@ const char * const        zone;
 
        if (warned)
                return;
-       cp = abbr;
+       cp = abbrp;
        wp = NULL;
-       while (isascii(*cp) && isalpha(*cp))
+       while (isascii((unsigned char) *cp) && isalpha((unsigned char) *cp))
                ++cp;
-       if (cp - abbr == 0)
+       if (cp - abbrp == 0)
                wp = _("lacks alphabetic at start");
-       if (cp - abbr < 3)
+       else if (cp - abbrp < 3)
                wp = _("has fewer than 3 alphabetics");
-       if (cp - abbr > 6)
+       else if (cp - abbrp > 6)
                wp = _("has more than 6 alphabetics");
        if (wp == NULL && (*cp == '+' || *cp == '-')) {
                ++cp;
-               if (isascii(*cp) && isdigit(*cp))
-                       if (*cp++ == '1' && *cp >= '0' && *cp <= '4')
-                               ++cp;
+               if (isascii((unsigned char) *cp) &&
+                       isdigit((unsigned char) *cp))
+                               if (*cp++ == '1' && *cp >= '0' && *cp <= '4')
+                                       ++cp;
+               if (*cp != '\0')
+                       wp = _("differs from POSIX standard");
        }
-       if (*cp != '\0')
-               wp = _("differs from POSIX standard");
        if (wp == NULL)
                return;
        (void) fflush(stdout);
        (void) fprintf(stderr,
-               "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n",
-               progname, zone, abbr, wp);
+               _("%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"),
+               progname, zone, abbrp, wp);
        warned = TRUE;
 }
 
@@ -266,7 +270,7 @@ char *      argv[];
        for (i = 1; i < argc; ++i)
                if (strcmp(argv[i], "--version") == 0) {
                        (void) printf("%s\n", elsieid);
-                       (void) exit(EXIT_SUCCESS);
+                       exit(EXIT_SUCCESS);
                }
        vflag = 0;
        cutarg = NULL;
@@ -279,7 +283,7 @@ char *      argv[];
                        (void) fprintf(stderr,
 _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
                                progname, progname);
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
        }
        if (vflag) {
                if (cutarg != NULL) {
@@ -296,7 +300,7 @@ _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
                        } else {
 (void) fprintf(stderr, _("%s: wild -c argument %s\n"),
                                        progname, cutarg);
-                               (void) exit(EXIT_FAILURE);
+                               exit(EXIT_FAILURE);
                        }
                }
                setabsolutes();
@@ -319,7 +323,7 @@ _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
                if (fakeenv == NULL ||
                        (fakeenv[0] = (char *) malloc(longest + 4)) == NULL) {
                                        (void) perror(progname);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                }
                to = 0;
                (void) strcpy(fakeenv[to++], "TZ=");
@@ -386,7 +390,7 @@ _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"),
        if (fflush(stdout) || ferror(stdout)) {
                (void) fprintf(stderr, "%s: ", progname);
                (void) perror(_("Error writing standard output"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        exit(EXIT_SUCCESS);
        /* If exit fails to exit... */
@@ -410,7 +414,7 @@ setabsolutes()
                        (void) fprintf(stderr,
 _("%s: use of -v on system with floating time_t other than float or double\n"),
                                progname);
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
                }
        } else if (0 > (time_t) -1) {
                /*
@@ -510,7 +514,7 @@ time_t      hit;
 }
 
 /*
-** Thanks to Paul Eggert (eggert@twinsun.com) for logic used in delta.
+** Thanks to Paul Eggert for logic used in delta.
 */
 
 static long
index 4e3f42f..acb76fb 100644 (file)
@@ -1,4 +1,4 @@
-static char    elsieid[] = "@(#)zic.c  7.124";
+static char    elsieid[] = "@(#)zic.c  7.128";
 
 /*
 ** Regardless of the type of time_t, we do our work using this type.
@@ -370,7 +370,7 @@ char * const        ptr;
 
                (void) fprintf(stderr, _("%s: Memory exhausted: %s\n"),
                        progname, e);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        return ptr;
 }
@@ -456,7 +456,7 @@ usage P((void))
 [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
 \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
                progname, progname);
-       (void) exit(EXIT_FAILURE);
+       exit(EXIT_FAILURE);
 }
 
 static const char *    psxrules;
@@ -489,7 +489,7 @@ char *      argv[];
        for (i = 1; i < argc; ++i)
                if (strcmp(argv[i], "--version") == 0) {
                        (void) printf("%s\n", elsieid);
-                       (void) exit(EXIT_SUCCESS);
+                       exit(EXIT_SUCCESS);
                }
        while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
                switch (c) {
@@ -502,7 +502,7 @@ char *      argv[];
                                        (void) fprintf(stderr,
 _("%s: More than one -d option specified\n"),
                                                progname);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                                }
                                break;
                        case 'l':
@@ -512,7 +512,7 @@ _("%s: More than one -d option specified\n"),
                                        (void) fprintf(stderr,
 _("%s: More than one -l option specified\n"),
                                                progname);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                                }
                                break;
                        case 'p':
@@ -522,7 +522,7 @@ _("%s: More than one -l option specified\n"),
                                        (void) fprintf(stderr,
 _("%s: More than one -p option specified\n"),
                                                progname);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                                }
                                break;
                        case 'y':
@@ -532,7 +532,7 @@ _("%s: More than one -p option specified\n"),
                                        (void) fprintf(stderr,
 _("%s: More than one -y option specified\n"),
                                                progname);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                                }
                                break;
                        case 'L':
@@ -542,7 +542,7 @@ _("%s: More than one -y option specified\n"),
                                        (void) fprintf(stderr,
 _("%s: More than one -L option specified\n"),
                                                progname);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                                }
                                break;
                        case 'v':
@@ -569,7 +569,7 @@ _("%s: More than one -L option specified\n"),
        for (i = optind; i < argc; ++i)
                infile(argv[i]);
        if (errors)
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        associate();
        for (i = 0; i < nzones; i = j) {
                /*
@@ -634,7 +634,7 @@ const char * const  tofile;
                int     result;
 
                if (mkdirs(toname) != 0)
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
 
                result = link(fromname, toname);
 #if HAVE_SYMLINK
@@ -648,14 +648,14 @@ const char * const        tofile;
                                        symlinkcontents =
                                                ecatalloc(symlinkcontents,
                                                "../");
-                                       symlinkcontents =
-                                               ecatalloc(symlinkcontents,
-                                                         fromname);
-                                       result = symlink(symlinkcontents,
-                                               toname);
-                                       if (result == 0)
+                               symlinkcontents =
+                                       ecatalloc(symlinkcontents,
+                                       fromname);
+                               result = symlink(symlinkcontents,
+                                       toname);
+                               if (result == 0)
 warning(_("hard link failed, symbolic link used"));
-                                       ifree(symlinkcontents);
+                               ifree(symlinkcontents);
                }
 #endif /* HAVE_SYMLINK */
                if (result != 0) {
@@ -664,7 +664,7 @@ warning(_("hard link failed, symbolic link used"));
                        (void) fprintf(stderr,
                                _("%s: Can't link from %s to %s: %s\n"),
                                progname, fromname, toname, e);
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
                }
        }
        ifree(fromname);
@@ -825,7 +825,7 @@ associate P((void))
                }
        }
        if (errors)
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
 }
 
 static void
@@ -849,7 +849,7 @@ const char *        name;
 
                (void) fprintf(stderr, _("%s: Can't open %s: %s\n"),
                        progname, name, e);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        wantcont = FALSE;
        for (num = 1; ; ++num) {
@@ -859,7 +859,7 @@ const char *        name;
                cp = strchr(buf, '\n');
                if (cp == NULL) {
                        error(_("line too long"));
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
                }
                *cp = '\0';
                fields = getfields(buf);
@@ -903,7 +903,7 @@ _("%s: Leap line in non leap seconds file %s\n"),
                                        (void) fprintf(stderr,
 _("%s: panic: Invalid l_value %d\n"),
                                                progname, lp->l_value);
-                                       (void) exit(EXIT_FAILURE);
+                                       exit(EXIT_FAILURE);
                        }
                }
                ifree((char *) fields);
@@ -911,14 +911,14 @@ _("%s: panic: Invalid l_value %d\n"),
        if (ferror(fp)) {
                (void) fprintf(stderr, _("%s: Error reading %s\n"),
                        progname, filename);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        if (fp != stdin && fclose(fp)) {
                const char *e = strerror(errno);
 
                (void) fprintf(stderr, _("%s: Error closing %s: %s\n"),
                        progname, filename, e);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        if (wantcont)
                error(_("expected continuation line not found"));
@@ -1324,7 +1324,7 @@ const char * const                timep;
                        (void) fprintf(stderr,
                                _("%s: panic: Invalid l_value %d\n"),
                                progname, lp->l_value);
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
        } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_loyear) != 1) {
                error(_("invalid starting year"));
                return;
@@ -1349,7 +1349,7 @@ const char * const                timep;
                        (void) fprintf(stderr,
                                _("%s: panic: Invalid l_value %d\n"),
                                progname, lp->l_value);
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
        } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_hiyear) != 1) {
                error(_("invalid ending year"));
                return;
@@ -1520,17 +1520,17 @@ const char * const      name;
 
                (void) fprintf(stderr, _("%s: Can't remove %s: %s\n"),
                        progname, fullname, e);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        if ((fp = fopen(fullname, "wb")) == NULL) {
                if (mkdirs(fullname) != 0)
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
                if ((fp = fopen(fullname, "wb")) == NULL) {
                        const char *e = strerror(errno);
 
                        (void) fprintf(stderr, _("%s: Can't create %s: %s\n"),
                                progname, fullname, e);
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
                }
        }
        convert(eitol(typecnt), tzh.tzh_ttisgmtcnt);
@@ -1597,7 +1597,7 @@ const char * const        name;
        if (ferror(fp) || fclose(fp)) {
                (void) fprintf(stderr, _("%s: Error writing %s\n"),
                        progname, fullname);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
 }
 
@@ -1648,7 +1648,7 @@ const int                 zonecount;
        typecnt = 0;
        charcnt = 0;
        /*
-       ** Thanks to Earl Chew (earl@dnd.icp.nec.com.au)
+       ** Thanks to Earl Chew
        ** for noting the need to unconditionally initialize startttisstd.
        */
        startttisstd = FALSE;
@@ -1830,7 +1830,7 @@ int               type;
        }
        if (timecnt >= TZ_MAX_TIMES) {
                error(_("too many transitions?!"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        attypes[timecnt].at = starttime;
        attypes[timecnt].type = type;
@@ -1849,15 +1849,15 @@ const int               ttisgmt;
 
        if (isdst != TRUE && isdst != FALSE) {
                error(_("internal error - addtype called with bad isdst"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        if (ttisstd != TRUE && ttisstd != FALSE) {
                error(_("internal error - addtype called with bad ttisstd"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        if (ttisgmt != TRUE && ttisgmt != FALSE) {
                error(_("internal error - addtype called with bad ttisgmt"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        /*
        ** See if there's already an entry for this zone type.
@@ -1876,7 +1876,7 @@ const int         ttisgmt;
        */
        if (typecnt >= TZ_MAX_TYPES) {
                error(_("too many local time types"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        gmtoffs[i] = gmtoff;
        isdsts[i] = isdst;
@@ -1904,13 +1904,13 @@ int             count;
 
        if (leapcnt + (positive ? count : 1) > TZ_MAX_LEAPS) {
                error(_("too many leap seconds"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        for (i = 0; i < leapcnt; ++i)
                if (t <= trans[i]) {
                        if (t == trans[i]) {
                                error(_("repeated leap second moment"));
-                               (void) exit(EXIT_FAILURE);
+                               exit(EXIT_FAILURE);
                        }
                        break;
                }
@@ -1965,7 +1965,7 @@ const char * const        type;
        (void) fprintf(stderr, _("%s: command was '%s', result was %d\n"),
                progname, buf, result);
        for ( ; ; )
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
 }
 
 static int
@@ -2046,8 +2046,9 @@ register char *   cp;
                emalloc((int) ((strlen(cp) + 1) * sizeof *array));
        nsubs = 0;
        for ( ; ; ) {
-               while (isascii(*cp) && isspace((unsigned char) *cp))
-                       ++cp;
+               while (isascii((unsigned char) *cp) &&
+                       isspace((unsigned char) *cp))
+                               ++cp;
                if (*cp == '\0' || *cp == '#')
                        break;
                array[nsubs++] = dp = cp;
@@ -2080,7 +2081,7 @@ const long        t2;
        t = t1 + t2;
        if ((t2 > 0 && t <= t1) || (t2 < 0 && t >= t1)) {
                error(_("time overflow"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        return t;
 }
@@ -2099,7 +2100,7 @@ const long        t2;
        t = t1 + t2;
        if ((t2 > 0 && t <= t1) || (t2 < 0 && t >= t1)) {
                error(_("time overflow"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        return t;
 }
@@ -2146,7 +2147,7 @@ register const int                        wantedy;
                        --i;
                else {
                        error(_("use of 2/29 in non leap-year"));
-                       (void) exit(EXIT_FAILURE);
+                       exit(EXIT_FAILURE);
                }
        }
        --i;
@@ -2210,8 +2211,9 @@ const char * const        string;
                */
                cp = string;
                wp = NULL;
-               while (isascii(*cp) && isalpha(*cp))
-                       ++cp;
+               while (isascii((unsigned char) *cp) &&
+                       isalpha((unsigned char) *cp))
+                               ++cp;
                if (cp - string == 0)
 wp = _("time zone abbreviation lacks alphabetic at start");
                if (noise && cp - string > 3)
@@ -2220,9 +2222,11 @@ wp = _("time zone abbreviation has more than 3 alphabetics");
 wp = _("time zone abbreviation has too many alphabetics");
                if (wp == NULL && (*cp == '+' || *cp == '-')) {
                        ++cp;
-                       if (isascii(*cp) && isdigit(*cp))
-                               if (*cp++ == '1' && *cp >= '0' && *cp <= '4')
-                                       ++cp;
+                       if (isascii((unsigned char) *cp) &&
+                               isdigit((unsigned char) *cp))
+                                       if (*cp++ == '1' &&
+                                               *cp >= '0' && *cp <= '4')
+                                                       ++cp;
                }
                if (*cp != '\0')
 wp = _("time zone abbreviation differs from POSIX standard");
@@ -2238,7 +2242,7 @@ wp = _("time zone abbreviation differs from POSIX standard");
        i = strlen(string) + 1;
        if (charcnt + i > TZ_MAX_CHARS) {
                error(_("too many, or too long, time zone abbreviations"));
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        (void) strcpy(&chars[charcnt], string);
        charcnt += eitol(i);
@@ -2302,7 +2306,7 @@ const int i;
                (void) fprintf(stderr,
                        _("%s: %d did not sign extend correctly\n"),
                        progname, i);
-               (void) exit(EXIT_FAILURE);
+               exit(EXIT_FAILURE);
        }
        return l;
 }