X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Recipient: djgpp-workers AT delorie DOT com Message-ID: <51F2C9B5.3090202@gmx.de> Date: Fri, 26 Jul 2013 21:10:45 +0200 From: Juan Manuel Guerrero User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121025 Thunderbird/16.0.2 MIME-Version: 1.0 To: djgpp-workers AT delorie DOT com Subject: zoneinfo not able to recognize if daylight saving time is in effect. Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:+V5nAIMkJsyhjVEX97kJECewQZu7FV1D/fEzb3VnWZ2U6QfY+pz oCfSuAqgdlZcnNKq3RCFro0nkTOGOWc/TUHNCwjIFYhbDG0NiOZm3oIPW9DfuUeKb8vI5QC +3ll6O9JhPDl/Soh5Av5aZreOfaqeSZHE4i6wMLWSCJDyxSzePpxXQUrBYTMZ1zqvg+ZYY4 d0E0SORd5fBP1zjRDvl0g== Reply-To: djgpp-workers AT delorie DOT com Some days ago an user called my attention to the fact that neither the zoneinfo support of djdev203 nor djdev204 nor the one from the repository seems to work flawlessly. See mail below. I have verified that the sample code works on my linux. The first surprising fact is that there is a behavior difference between djtzn203 and djtzn204/repository versions. I have out-defined all the other calls to localtime except for the one that differs. Replacing New_York file from one version with the other make the behavior swap. This means that the sample program compiled with 204 version now works OK with the NY file from 203 and the sample program compiled with 203 fails with the NY file from 204/repository. I am aware that the files are different. OFYI, I have also cross-compiled the repository code. The NY file I get is broken the same way than the one compiled on windows. It seems that using host-zic from linux or windows does not make any difference. Before I start stepping into the code to figure out what is broken here I would ask if some one here remembers a reason why the zoneinfo support is broken like this. Have there been zic.exe or host-zic issues that have result in broken data files, etc.? See sample code and results. TIA, Juan M. Guerrero --- mail start --- Betreff: Re: DJGPP zoneinfo Von: David Flater Datum: 25.07.2013 01:51 An: Juan Manuel Guerrero On 07/23/2013 10:34 PM, David Flater wrote: > > For :America/New_York, we are in EDT now but it comes back as EST. Test case and test results attached. DWF tztest.c */ /* Quick tz test by DWF 2013-07-24 19:11 */ #include #include #include #include #define buflen 80 void timetest (int *fail, time_t t, char er[buflen]) { char or[buflen]; if (!strftime (or, buflen, "%Y-%m-%d %H:%M:%S %Z", localtime(&t))) { fprintf (stderr, "strftime failed FAIL\n"); exit (-1); } printf ("time_t %ld expected %s\n", (long)t, er); printf (" got %s", or); if (strcmp(er,or)) *fail=1, printf(" FAIL"); printf ("\n"); } int main (int argc, char **argv) { int fail = 0; static char env_string[] = "TZ=:America/New_York"; if (putenv(env_string)) { fprintf (stderr, "putenv failed FAIL\n"); exit (-1); } tzset(); #if 0 timetest (&fail, 1357016400, "2013-01-01 00:00:00 EST"); timetest (&fail, 1362898799, "2013-03-10 01:59:59 EST"); timetest (&fail, 1362898800, "2013-03-10 03:00:00 EDT"); #endif timetest (&fail, 1372780800, "2013-07-02 12:00:00 EDT"); #if 0 timetest (&fail, 1383454800, "2013-11-03 01:00:00 EDT"); timetest (&fail, 1383458400, "2013-11-03 01:00:00 EST"); timetest (&fail, 1388552399, "2013-12-31 23:59:59 EST"); #endif printf ("Test %s\n", (fail ? "FAILED" : "passed")); return 0; } /* 204cvs.txt time_t 1357016400 expected 2013-01-01 00:00:00 EST got 2013-01-01 00:00:00 EST time_t 1362898799 expected 2013-03-10 01:59:59 EST got 2013-03-10 01:59:59 EST time_t 1362898800 expected 2013-03-10 03:00:00 EDT got 2013-03-10 02:00:00 EST FAIL time_t 1372780800 expected 2013-07-02 12:00:00 EDT got 2013-07-02 11:00:00 EST FAIL time_t 1383454800 expected 2013-11-03 01:00:00 EDT got 2013-11-03 00:00:00 EST FAIL time_t 1383458400 expected 2013-11-03 01:00:00 EST got 2013-11-03 01:00:00 EST time_t 1388552399 expected 2013-12-31 23:59:59 EST got 2013-12-31 23:59:59 EST Test FAILED 203.txt time_t 1357016400 expected 2013-01-01 00:00:00 EST got 2013-01-01 00:00:00 EST time_t 1362898799 expected 2013-03-10 01:59:59 EST got 2013-03-10 01:59:59 EST time_t 1362898800 expected 2013-03-10 03:00:00 EDT got 2013-03-10 02:00:00 EST FAIL time_t 1372780800 expected 2013-07-02 12:00:00 EDT got 2013-07-02 12:00:00 EDT time_t 1383454800 expected 2013-11-03 01:00:00 EDT got 2013-11-03 00:00:00 EST FAIL time_t 1383458400 expected 2013-11-03 01:00:00 EST got 2013-11-03 01:00:00 EST time_t 1388552399 expected 2013-12-31 23:59:59 EST got 2013-12-31 23:59:59 EST Test FAILED slackware.txt time_t 1357016400 expected 2013-01-01 00:00:00 EST got 2013-01-01 00:00:00 EST time_t 1362898799 expected 2013-03-10 01:59:59 EST got 2013-03-10 01:59:59 EST time_t 1362898800 expected 2013-03-10 03:00:00 EDT got 2013-03-10 03:00:00 EDT time_t 1372780800 expected 2013-07-02 12:00:00 EDT got 2013-07-02 12:00:00 EDT time_t 1383454800 expected 2013-11-03 01:00:00 EDT got 2013-11-03 01:00:00 EDT time_t 1383458400 expected 2013-11-03 01:00:00 EST got 2013-11-03 01:00:00 EST time_t 1388552399 expected 2013-12-31 23:59:59 EST got 2013-12-31 23:59:59 EST Test passed tztest.c 1.2 KB 204cvs.txt 761 Bytes 203.txt 754 Bytes slackware.txt 740 Bytes --- mail end ---