[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gnulib] new module: timegm
From: |
Bruno Haible |
Subject: |
Re: [Bug-gnulib] new module: timegm |
Date: |
Mon, 1 Sep 2003 19:58:49 +0200 |
User-agent: |
KMail/1.5 |
Simon Josefsson wrote:
> It seem to work (on >>10 platforms).
>
> New module below, based on the code above.
Perfect. I've committed your patch.
> I used gmtime_r() where available(*),
Yes, of course it's preferrable to use the MT-safe version of a function
if possible.
> Still, the code treat time_t as an arithmetic type, which I believe is
> only permitted by POSIX, not C89. So I'm not sure how to classify it,
> extension of C89 or POSIX?
So few people know this detail, and so much code would break if time_t
were not a scalar type, that it's not worth making the difference.
> The interface is an extension of C89, but
> the implementation assumes POSIX. The patch add it as a extra
> function based on C89 in MODULES.html.sh
Well done. I see it as a C89 extension too,
> Another problem is if it should depend on the mktime module. What is
> the point of the mktime module, exactly? The description says it
> implement mktime, but the m4 file seem to check for various buggy
> implementations. It is listed as a module for systems lacking C89.
> mktime is part of C89. So if modules can assume C89, timegm should
> not depend on mktime
Exactly, right. These modules classified as "for systems lacking C89"
are for ancient systems; every package can include them or not, on their
own responsibility. gnulib doesn't force any package to use these modules;
therefore we also omit the dependency.
> Hence the AC_CHECK_DECLS(gmtime_r), so
> gmtime_r will only be used if the application somehow causes
> _REENTRANT to be defined, which seem to be the right solution.
Yes, right.
> * timegm.h, timegm.c: New files. Based on WGET 1.8.2
> http.c:mktime_from_utc.
Fine, you were able to take a copy of this code which was already under
FSF copyright.
> + if (tb == (time_t) - 1)
I tweaked this to read
if (tb == (time_t) -1)
because we also routinely write "(size_t) -1" without a space after the
operator.
Bruno
- Re: [Bug-gnulib] new module: timegm, Bruno Haible, 2003/09/01
- Re: [Bug-gnulib] new module: timegm, Simon Josefsson, 2003/09/01
- Re: [Bug-gnulib] new module: timegm, Simon Josefsson, 2003/09/01
- Re: [Bug-gnulib] new module: timegm,
Bruno Haible <=
- Re: [Bug-gnulib] new module: timegm, Simon Josefsson, 2003/09/01
- Re: [Bug-gnulib] new module: timegm, Paul Eggert, 2003/09/03
- Re: [Bug-gnulib] new module: timegm, Simon Josefsson, 2003/09/03
- Re: [Bug-gnulib] new module: timegm, Paul Eggert, 2003/09/04
- Re: [Bug-gnulib] new module: timegm, Simon Josefsson, 2003/09/04
- [Bug-gnulib] new module: time_r; plus fixes for timegm, mktime, strftime, Paul Eggert, 2003/09/06
- [Bug-gnulib] Re: new module: time_r; plus fixes for timegm, mktime, strftime, Simon Josefsson, 2003/09/06
- [Bug-gnulib] Re: new module: time_r; plus fixes for timegm, mktime, strftime, Paul Eggert, 2003/09/06
- [Bug-gnulib] Re: new module: time_r; plus fixes for timegm, mktime, strftime, Simon Josefsson, 2003/09/06
- [Bug-gnulib] Re: new module: time_r; plus fixes for timegm, mktime, strftime, Simon Josefsson, 2003/09/06