| delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:message-id:date:from:mime-version:to:subject | |
| :references:in-reply-to:content-type:content-transfer-encoding; | |
| q=dns; s=default; b=i6GDrAqMEXISaT1pfnZv8j7A/Uz2B/azhcimQrX43v/ | |
| H1AYJom7J8MIQBG5lysh/NWzXbBuqwg3WjourgIpCra7bd7ooZo7VKqHsnfj+paV | |
| M5Mw0FmOTFbL+SEXQ690GNVk05OH+9IzFqZq26pjbCyef+AKnN8fSXyM3RTffKNk | |
| = | |
| DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:message-id:date:from:mime-version:to:subject | |
| :references:in-reply-to:content-type:content-transfer-encoding; | |
| s=default; bh=IhXfPbIPiNxoQGXGoCgvQ1W46BY=; b=xkVjDv5/qoGvMg9DR | |
| kELj1pDIVL5RSG2BV72HH2oQ0sfXbSgHXVsjnB4gsWjSrMUIJuHzLS8ljzrZinDo | |
| EWXb9XBt/pdyJH5u3Qyd4xtxUnezK7DxkVnWCb40E/uxhWiAwOmYz14l+M3eYmD+ | |
| oqcPHgxTsu5uLmV7L8apS9ATGc= | |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| Authentication-Results: | sourceware.org; auth=none |
| X-Virus-Found: | No |
| X-Spam-SWARE-Status: | No, score=-1.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 |
| X-HELO: | mailout08.t-online.de |
| Message-ID: | <54947202.3010007@t-online.de> |
| Date: | Fri, 19 Dec 2014 19:44:18 +0100 |
| From: | Christian Franke <Christian DOT Franke AT t-online DOT de> |
| User-Agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 SeaMonkey/2.31 |
| MIME-Version: | 1.0 |
| To: | cygwin AT cygwin DOT com |
| Subject: | Re: Bug in strftime %z (was: Possible defect in email.exe re: sent timestamp) |
| References: | <003701d01ba3$a444b5d0$ecce2170$@belarc.com> |
| In-Reply-To: | <003701d01ba3$a444b5d0$ecce2170$@belarc.com> |
| X-IsSubscribed: | yes |
Richard DeFuria wrote:
> Hello,
>
> I noticed a defect in the latest cygwin email.exe tool.
>
> The defect is that the SENT timestamp is 1 hour off (i.e., one hour too
> "old" compared to the current system time).
>
> My current email.exe version is as follows:
> $ email -v
> email - By Dean Jones; Version 3.2.0-git
>
> When I send an email using this tool (through my internal smtp server, which
> is unchanged), the SENT timestamp is 1 hour old.
>
> When I send an email (via the same command line invocation) from an older
> box using an older version of this tool, the SENT timestamp is correct.
>
> ...
> TZ is unchanged, but it set as follows on both systems:
> $ echo $TZ
> America/New_York
>
> Is there anything you recommend I check?
>
> This seems to have cropped up after my 12/15/2014 update of cygwin.
The email tool use strftime() to format the "Date" header line.
There is apparently a bug in the implementation of "%z" (offset from
UTC) format in recent Cygwin strftime(). Affected are latest release and
test versions of Cygwin:
Testcase:
$ uname -srvm
CYGWIN_NT-6.1-WOW64 1.7.33-2(0.280/5/3) 2014-11-13 15:45 i686 Cygwin
# (and also 1.7.34-003)
$ cat strftest.c
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
time_t t = (argc > 1 ? atol(argv[1]) : time(NULL));
struct tm *tm = localtime(&t);
char buf[100];
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %z (%Z)", tm);
printf("%s\n", buf);
return 0;
}
$ gcc -o strftest strftest.c
$ echo $TZ
Europe/Berlin
$ ./strftest 1419010000
2014-12-19 18:26:40 +0200 (CET)
$ ./strftest 1436200000
2015-07-06 18:26:40 +0053 (CEST)
GNU date(1) uses its own implementation and works as expected:
$ date '+%Y-%m-%d %H:%M:%S %z (%Z)' -d @1419010000
2014-12-19 18:26:40 +0100 (CET)
$ date '+%Y-%m-%d %H:%M:%S %z (%Z)' -d @1436200000
2015-07-06 18:26:40 +0200 (CEST)
Possible workaround: Avoid timezone names, used timezone spec instead:
$ export TZ=CET-1CEST,M3.5.0/2,M10.5.0/2
$ ./strftest 1419010000
2014-12-19 18:26:40 +0100 (CET)
$ ./strftest 1436200000
2015-07-06 18:26:40 +0200 (CEST)
Christian
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |