diff options
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | sysdeps/hppa/elf/start.S | 72 | ||||
-rw-r--r-- | timezone/africa | 3 | ||||
-rw-r--r-- | timezone/antarctica | 18 | ||||
-rw-r--r-- | timezone/asia | 55 | ||||
-rw-r--r-- | timezone/australasia | 51 | ||||
-rw-r--r-- | timezone/backward | 9 | ||||
-rw-r--r-- | timezone/europe | 3 | ||||
-rw-r--r-- | timezone/northamerica | 89 | ||||
-rw-r--r-- | timezone/private.h | 2 | ||||
-rw-r--r-- | timezone/southamerica | 22 | ||||
-rw-r--r-- | timezone/systemv | 36 | ||||
-rw-r--r-- | timezone/tzfile.h | 6 | ||||
-rw-r--r-- | timezone/zdump.c | 52 | ||||
-rw-r--r-- | timezone/zic.c | 108 |
15 files changed, 340 insertions, 205 deletions
@@ -1,5 +1,24 @@ +2006-01-07 Carlos O'Donell <carlos@systemhalted.org> + + * sysdeps/hppa/elf/start.S (_start): Use PLABEL32 relocations + by using LR and RR. Add %sr0 to iitlbp. + 2006-01-09 Roland McGrath <roland@redhat.com> + * 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. + * elf/Makefile ($(objpfx)reldep5.out): Fix dependency typo, so we depend on $(objpfx)reldepmod6.so as intended. diff --git a/sysdeps/hppa/elf/start.S b/sysdeps/hppa/elf/start.S index 4cf832a..94edeaa 100644 --- a/sysdeps/hppa/elf/start.S +++ b/sysdeps/hppa/elf/start.S @@ -34,16 +34,27 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ - .text - - .align 4 - .import main, code .import $global$, data .import __libc_start_main, code .import __libc_csu_fini, code .import __libc_csu_init, code + /* Have the linker create plabel words + so we get PLABEL32 relocs and not 21/14 */ + .section .rodata + .align 4 +.Lpmain: + .word P%main +.Lp__libc_start_main: + .word P%__libc_start_main +.Lp__libc_csu_fini: + .word P%__libc_csu_fini +.Lp__libc_csu_init: + .word P%__libc_csu_init + + .text + .align 4 .globl _start .export _start, ENTRY .type _start,@function @@ -52,28 +63,41 @@ _start: .proc .callinfo - /* load main */ - ldil LP%main, %r26 - ldo RP%main(%r26), %r26 - - /* argc and argv should be in 25 and 24 */ - /* Expand the stack to store the 5th through 7th args */ ldo 64(%sp), %sp - - /* void (*rtld_fini) (void) (actually the 6th arg) */ - stw %r23, -56(%sp) - - /* void (*init) (void) */ - ldil LP%__libc_csu_init, %r23 - ldo RP%__libc_csu_init(%r23), %r23 - - /* void (*fini) (void) */ - ldil LP%__libc_csu_fini, %r22 - ldo RP%__libc_csu_fini(%r22), %r22 + /* TODO: Follow ABI? Place more things on the stack here... */ + +#if SHARED + /* load main (1st argument) */ + addil LR'.Lpmain, %r19 + ldw RR'.Lpmain(%r1), %r26 + ldw 0(%r26),%r26 + /* argc and argv should be in 25 and 24 (2nd and 3rd argument) */ + /* void (*init) (void) (4th argument) */ + addil LR'.Lp__libc_csu_init, %r19 + ldw RR'.Lp__libc_csu_init(%r1), %r23 + ldw 0(%r23), %r23 + /* void (*fini) (void) (5th argument) */ + addil LR'.Lp__libc_csu_fini, %r19 + ldw RR'.Lp__libc_csu_fini(%r1), %r22 + ldw 0(%r22), %r22 +#else + /* load main (1st argument) */ + ldil LR'.Lpmain, %r26 + ldw RR'.Lpmain(%r26), %r26 + /* argc and argv should be in 25 and 24 (2nd and 3rd argument) */ + /* void (*init) (void) (4th argument) */ + ldil LR'.Lp__libc_csu_init, %r23 + ldw RR'.Lp__libc_csu_init(%r23), %r23 + /* void (*fini) (void) (5th argument) */ + ldil LR'.Lp__libc_csu_fini, %r22 + ldw RR'.Lp__libc_csu_fini(%r22), %r22 +#endif + /* Store 5th argument */ stw %r22, -52(%sp) - - /* void *stack_end */ + /* void (*rtld_fini) (void) (6th argument) */ + stw %r23, -56(%sp) + /* void *stack_end (7th argument) */ stw %sp, -60(%sp) /* load global */ @@ -83,7 +107,7 @@ _start: bl __libc_start_main,%r2 nop /* die horribly if it returned (it shouldn't) */ - iitlbp %r0,(%r0) + iitlbp %r0,(%sr0,%r0) nop .procend diff --git a/timezone/africa b/timezone/africa index 87ae9e3..153e254 100644 --- a/timezone/africa +++ b/timezone/africa @@ -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 diff --git a/timezone/antarctica b/timezone/antarctica index c11d24e..f3efe19 100644 --- a/timezone/antarctica +++ b/timezone/antarctica @@ -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 diff --git a/timezone/asia b/timezone/asia index 52ba323..59e62dd 100644 --- a/timezone/asia +++ b/timezone/asia @@ -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 diff --git a/timezone/australasia b/timezone/australasia index 57bd60a..6cf9761 100644 --- a/timezone/australasia +++ b/timezone/australasia @@ -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): # diff --git a/timezone/backward b/timezone/backward index ca22dfe..4ddfe41 100644 --- a/timezone/backward +++ b/timezone/backward @@ -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 diff --git a/timezone/europe b/timezone/europe index ec6720a..8782860 100644 --- a/timezone/europe +++ b/timezone/europe @@ -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 diff --git a/timezone/northamerica b/timezone/northamerica index 40a2ce2..9f9b98b 100644 --- a/timezone/northamerica +++ b/timezone/northamerica @@ -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 1 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? diff --git a/timezone/private.h b/timezone/private.h index 9a1ef22..33dc4c3 100644 --- a/timezone/private.h +++ b/timezone/private.h @@ -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. */ /* diff --git a/timezone/southamerica b/timezone/southamerica index 9bf068b..eb7b5c7 100644 --- a/timezone/southamerica +++ b/timezone/southamerica @@ -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 diff --git a/timezone/systemv b/timezone/systemv index c6a6b64..a5b4209 100644 --- a/timezone/systemv +++ b/timezone/systemv @@ -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 @@ -34,17 +34,3 @@ ## 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 diff --git a/timezone/tzfile.h b/timezone/tzfile.h index 2dad932..fb6ca98 100644 --- a/timezone/tzfile.h +++ b/timezone/tzfile.h @@ -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 */ diff --git a/timezone/zdump.c b/timezone/zdump.c index d767d75..45ce641 100644 --- a/timezone/zdump.c +++ b/timezone/zdump.c @@ -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 diff --git a/timezone/zic.c b/timezone/zic.c index 4e3f42f..acb76fb 100644 --- a/timezone/zic.c +++ b/timezone/zic.c @@ -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; } |