Mail Archives: cygwin/2004/02/01/20:25:03
On Mon, 2 Feb 2004, Robert R Schneck wrote:
> Bradley Holdridge <Bradley DOT Holdridge AT motorola DOT com> wrote:
> > After I upgraded to the latest version of ssmtp (2.60.4-1), the messages
> > I sent with it started arriving with dates such as
> >
> > Thu, d Jan 2004 21:10:32
> >
> > The day of the month is always "d".
>
> I've just sent out a request to upload ssmtp-2.60.4-2. Once it's
> available you'll see the announcement.
>
> Maybe someone can help me understand this. The problem is in the
> following format string to strftime:
>
> /* RFC822 format string borrowed from GNU shellutils date.c */
> const char *format = "%a, %_d %b %Y %H:%M:%S %z";
>
> now = time(NULL);
> date = localtime((const time_t *)&now);
> (void)strftime(d_string, ARPADATE_LENGTH, format, date);
>
> Both %_ and %z become nothing.
>
> Now, is there some system on which strftime will understand this as
> intended, or did the author foolishly fail to test his assumption that
> a format string for the "date" utility would work?
>
> (Luckily he left the old code around as well, so it was easy enough to
> fix.)
>
> Robert
Most likely the latter. Cygwin gets its strftime implementation from
newlib, which understands neither of the two format strings above.
IIUC, "%_d" is intended to produce the day of the month preceded by a
blank if single-digit. In newlib and all other systems I could access
this is accomplished via the "%e" strftime format string. I couldn't even
find "%_d" until I looked at "date --help", and found out that "date" uses
the underscore ("_") to indicate space padding (although the newer GNU
versions also support "%e" for space-padded day). It is my guess that
"%_d" is a typo and should be fixed.
"%z" is a harder case, since some systems (Darwin, Linux) do understand
it, and some (newlib, Solaris, BSD) don't. The Linux man page lists "%z"
as a GNU extension. I would guess newlib would be happy to support it
given a patch, since it is (to quote the Linux man page) "required to
emit RFC822-conformant dates", but it's their call.
Igor
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -