proposed time zone package changes--Paraguay, core dump avoidance

Below find proposed changes to the time zone package: localtime.c more core dump avoidance work southamerica changes to Paraguay DST rules from 2010 forward If no problems are found, these are to show up on the ftp site on 2010-03-01. (I'm trying to get a good reference before making Bangladesh changes; I'm trying to get starting- and ending-time-of-day information--and trying to learn whether or not DST was actually observed in 2009--before making Samoa changes.) --ado ------- localtime.c ------- *** /tmp/geta19371 Wed Feb 24 08:46:42 2010 --- /tmp/getb19371 Wed Feb 24 08:46:42 2010 *************** *** 5,11 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.10"; #endif /* !defined NOID */ #endif /* !defined lint */ --- 5,11 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.12"; #endif /* !defined NOID */ #endif /* !defined lint */ *************** *** 389,394 **** --- 389,395 ---- nread = read(fid, u.buf, sizeof u.buf); if (close(fid) < 0 || nread <= 0) return -1; + sp->goback = sp->goahead = FALSE; for (stored = 4; stored <= 8; stored *= 2) { int ttisstdcnt; int ttisgmtcnt; *************** *** 555,561 **** sp->ttis[sp->typecnt++] = ts.ttis[1]; } } - sp->goback = sp->goahead = FALSE; if (sp->timecnt > 1) { for (i = 1; i < sp->timecnt; ++i) if (typesequiv(sp, sp->types[i], sp->types[0]) && --- 556,561 ---- *************** *** 1163,1169 **** #ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1163,1169 ---- #ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1194,1200 **** #ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1194,1200 ---- #ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1355,1361 **** if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) malloc(sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr); --- 1355,1361 ---- if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) calloc(1, sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr); ------- southamerica ------- *** /tmp/geta19392 Wed Feb 24 08:46:57 2010 --- /tmp/getb19392 Wed Feb 24 08:46:57 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. --- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. *************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 ------- southamerica ------- *** /tmp/geta19425 Wed Feb 24 08:47:47 2010 --- /tmp/getb19425 Wed Feb 24 08:47:47 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. --- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. *************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890

Date: Wed, 24 Feb 2010 08:55:28 -0500 (EST) From: Arthur David Olson <olsona@elsie.nci.nih.gov> Message-ID: <201002241355.o1ODtS7P019553@lecserver.nci.nih.gov> | *************** | *** 389,394 **** | --- 389,395 ---- | nread = read(fid, u.buf, sizeof u.buf); | if (close(fid) < 0 || nread <= 0) | return -1; | + sp->goback = sp->goahead = FALSE; | for (stored = 4; stored <= 8; stored *= 2) { | int ttisstdcnt; | int ttisgmtcnt; I think that one is still too late .. the init needs to be before anyy possible return from tzload() so that we never return with uninitialised values. Clearly here, it isn't before all returns ... Of course, with the change from malloc() to calloc() this probably doesn't really matter, as the state is all initialised anyway, but ... I'd (really) make this the first executable line in tzload() - if we're calling tzload() then (pretty much by definition) we don't want any state that we might have had, we want whatever the new zone tells us (or if it fails to tell us anything, we want a clean slate) - we don't want any remnants of the previous state left over from some earlier tzload (or tzload attempt). With all that, I think having the init very early is the right answer. kre

Hi Arthur, Can I ask why you used the follow logic for the new Asuncion rule : Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S instead of keeping with tradition and using something like : Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S "Sun<=7" is the first instance of such a rule in the Olson files and causes an issue with the JRE when it parses Olson rules . (something that can be modified on the java side I guess) Is it possible to use Sun>=1 for 2010d ? regards, Sean. Arthur David Olson wrote:
Below find proposed changes to the time zone package:
localtime.c more core dump avoidance work southamerica changes to Paraguay DST rules from 2010 forward
If no problems are found, these are to show up on the ftp site on 2010-03-01.
(I'm trying to get a good reference before making Bangladesh changes; I'm trying to get starting- and ending-time-of-day information--and trying to learn whether or not DST was actually observed in 2009--before making Samoa changes.)
--ado
------- localtime.c ------- *** /tmp/geta19371 Wed Feb 24 08:46:42 2010 --- /tmp/getb19371 Wed Feb 24 08:46:42 2010 *************** *** 5,11 ****
#ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.10"; #endif /* !defined NOID */ #endif /* !defined lint */
--- 5,11 ----
#ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.12"; #endif /* !defined NOID */ #endif /* !defined lint */
*************** *** 389,394 **** --- 389,395 ---- nread = read(fid, u.buf, sizeof u.buf); if (close(fid) < 0 || nread <= 0) return -1; + sp->goback = sp->goahead = FALSE; for (stored = 4; stored <= 8; stored *= 2) { int ttisstdcnt; int ttisgmtcnt; *************** *** 555,561 **** sp->ttis[sp->typecnt++] = ts.ttis[1]; } } - sp->goback = sp->goahead = FALSE; if (sp->timecnt > 1) { for (i = 1; i < sp->timecnt; ++i) if (typesequiv(sp, sp->types[i], sp->types[0]) && --- 556,561 ---- *************** *** 1163,1169 ****
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1163,1169 ----
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1194,1200 ****
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1194,1200 ----
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1355,1361 **** if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) malloc(sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr); --- 1355,1361 ---- if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) calloc(1, sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr);
------- southamerica ------- *** /tmp/geta19392 Wed Feb 24 08:46:57 2010 --- /tmp/getb19392 Wed Feb 24 08:46:57 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
--- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
*************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890
------- southamerica ------- *** /tmp/geta19425 Wed Feb 24 08:47:47 2010 --- /tmp/getb19425 Wed Feb 24 08:47:47 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
--- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
*************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890

I'll make the suggested change for 2010d. --ado -----Original Message----- From: Seán Coffey [mailto:Sean.Coffey@Sun.COM] Sent: Thursday, March 04, 2010 2:18 To: tz@lecserver.nci.nih.gov Subject: Re: proposed time zone package changes--Paraguay, core dump avoidance Hi Arthur, Can I ask why you used the follow logic for the new Asuncion rule : Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S instead of keeping with tradition and using something like : Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S "Sun<=7" is the first instance of such a rule in the Olson files and causes an issue with the JRE when it parses Olson rules . (something that can be modified on the java side I guess) Is it possible to use Sun>=1 for 2010d ? regards, Sean. Arthur David Olson wrote:
Below find proposed changes to the time zone package:
localtime.c more core dump avoidance work southamerica changes to Paraguay DST rules from 2010 forward
If no problems are found, these are to show up on the ftp site on 2010-03-01.
(I'm trying to get a good reference before making Bangladesh changes; I'm trying to get starting- and ending-time-of-day information--and trying to learn whether or not DST was actually observed in 2009--before making Samoa changes.)
--ado
------- localtime.c ------- *** /tmp/geta19371 Wed Feb 24 08:46:42 2010 --- /tmp/getb19371 Wed Feb 24 08:46:42 2010 *************** *** 5,11 ****
#ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.10"; #endif /* !defined NOID */ #endif /* !defined lint */
--- 5,11 ----
#ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.12"; #endif /* !defined NOID */ #endif /* !defined lint */
*************** *** 389,394 **** --- 389,395 ---- nread = read(fid, u.buf, sizeof u.buf); if (close(fid) < 0 || nread <= 0) return -1; + sp->goback = sp->goahead = FALSE; for (stored = 4; stored <= 8; stored *= 2) { int ttisstdcnt; int ttisgmtcnt; *************** *** 555,561 **** sp->ttis[sp->typecnt++] = ts.ttis[1]; } } - sp->goback = sp->goahead = FALSE; if (sp->timecnt > 1) { for (i = 1; i < sp->timecnt; ++i) if (typesequiv(sp, sp->types[i], sp->types[0]) && --- 556,561 ---- *************** *** 1163,1169 ****
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1163,1169 ----
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1194,1200 ****
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1194,1200 ----
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1355,1361 **** if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) malloc(sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr); --- 1355,1361 ---- if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) calloc(1, sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr);
------- southamerica ------- *** /tmp/geta19392 Wed Feb 24 08:46:57 2010 --- /tmp/getb19392 Wed Feb 24 08:46:57 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
--- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
*************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890
------- southamerica ------- *** /tmp/geta19425 Wed Feb 24 08:47:47 2010 --- /tmp/getb19425 Wed Feb 24 08:47:47 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
--- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
*************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890

Thanks Arthur. Sean and I've faced this issue while working on 2010c in JRE. Abhijit Olson, Arthur David (NIH/NCI) [E] wrote:
I'll make the suggested change for 2010d.
--ado
-----Original Message----- From: Seán Coffey [mailto:Sean.Coffey@Sun.COM] Sent: Thursday, March 04, 2010 2:18 To: tz@lecserver.nci.nih.gov Subject: Re: proposed time zone package changes--Paraguay, core dump avoidance
Hi Arthur,
Can I ask why you used the follow logic for the new Asuncion rule :
Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S
instead of keeping with tradition and using something like :
Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S
"Sun<=7" is the first instance of such a rule in the Olson files and causes an issue with the JRE when it parses Olson rules . (something that can be modified on the java side I guess)
Is it possible to use Sun>=1 for 2010d ?
regards, Sean.
Arthur David Olson wrote:
Below find proposed changes to the time zone package:
localtime.c more core dump avoidance work southamerica changes to Paraguay DST rules from 2010 forward
If no problems are found, these are to show up on the ftp site on 2010-03-01.
(I'm trying to get a good reference before making Bangladesh changes; I'm trying to get starting- and ending-time-of-day information--and trying to learn whether or not DST was actually observed in 2009--before making Samoa changes.)
--ado
------- localtime.c ------- *** /tmp/geta19371 Wed Feb 24 08:46:42 2010 --- /tmp/getb19371 Wed Feb 24 08:46:42 2010 *************** *** 5,11 ****
#ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.10"; #endif /* !defined NOID */ #endif /* !defined lint */
--- 5,11 ----
#ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.12"; #endif /* !defined NOID */ #endif /* !defined lint */
*************** *** 389,394 **** --- 389,395 ---- nread = read(fid, u.buf, sizeof u.buf); if (close(fid) < 0 || nread <= 0) return -1; + sp->goback = sp->goahead = FALSE; for (stored = 4; stored <= 8; stored *= 2) { int ttisstdcnt; int ttisgmtcnt; *************** *** 555,561 **** sp->ttis[sp->typecnt++] = ts.ttis[1]; } } - sp->goback = sp->goahead = FALSE; if (sp->timecnt > 1) { for (i = 1; i < sp->timecnt; ++i) if (typesequiv(sp, sp->types[i], sp->types[0]) && --- 556,561 ---- *************** *** 1163,1169 ****
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1163,1169 ----
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1194,1200 ****
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) malloc(sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; --- 1194,1200 ----
#ifdef ALL_STATE if (lclptr == NULL) { ! lclptr = (struct state *) calloc(1, sizeof *lclptr); if (lclptr == NULL) { settzname(); /* all we can do */ return; *************** *** 1355,1361 **** if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) malloc(sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr); --- 1355,1361 ---- if (!gmt_is_set) { gmt_is_set = TRUE; #ifdef ALL_STATE ! gmtptr = (struct state *) calloc(1, sizeof *gmtptr); if (gmtptr != NULL) #endif /* defined ALL_STATE */ gmtload(gmtptr);
------- southamerica ------- *** /tmp/geta19392 Wed Feb 24 08:46:57 2010 --- /tmp/getb19392 Wed Feb 24 08:46:57 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
--- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
*************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890
------- southamerica ------- *** /tmp/geta19425 Wed Feb 24 08:47:47 2010 --- /tmp/getb19425 Wed Feb 24 08:47:47 2010 *************** *** 1,5 **** # <pre> ! # @(#)southamerica 8.40 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
--- 1,5 ---- # <pre> ! # @(#)southamerica 8.41 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson.
*************** *** 1364,1371 **** # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 max - Mar Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 --- 1364,1387 ---- # Decree 1,867 (2004-03-05) # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) # <http://www.presidencia.gov.py/decretos/D1867.pdf> ! Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S ! Rule Para 2005 2009 - Mar Sun>=8 0:00 0 - ! # From Carlos Raul Perasso (2010-02-18): ! # By decree number 3958 issued yesterday ( ! # <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf"> ! # http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf ! # </a> ! # ) ! # Paraguay changes its DST schedule, postponing the March rule to April and ! # modifying the October date. The decree reads: ! # ... ! # Art. 1. It is hereby established that from the second Sunday of the month of ! # April of this year (2010), the official time is to be set back 60 minutes, ! # and that on the first Sunday of the month of October, it is to be set ! # forward 60 minutes, in all the territory of the Paraguayan Republic. ! # ... ! Rule Para 2010 max - Oct Sun<=7 0:00 1:00 S ! Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890
-- Release Lead, Java SE Updates Oracle Corporation (408)276-7564
participants (5)
-
Abhijit Saha
-
Arthur David Olson
-
Olson, Arthur David (NIH/NCI) [E]
-
Robert Elz
-
Seán Coffey