Re: [PATCH 1/2] t0006: test timezone parsing
- From
Jeff King <peff@peff.net>
- Date
- Jul 6, 2010, 07:28 UTC
- Message-ID
- <20100706072849.GA3567@sigill.intra.peff.net>
- In-Reply-To
- <7vpqz13xgw.fsf@alter.siamese.dyndns.org>
On Tue, Jul 06, 2010 at 12:01:35AM -0700, Junio C Hamano wrote:
Show 12 quoted lines
> > time_t t; > > + int tz; > [...] > > + if (sscanf(result, "%ld %d", &t, &tz) == 2) > > Gah... > > On FreeBSD 8.0, we now see this. > > cc1: warnings being treated as errors > test-date.c: In function 'parse_dates': > test-date.c:28: warning: format '%ld' expects type 'long int *', but argument 3 has type 'time_t *'
Meh. I was worried about that when I used sscanf. I think we can just do this:
diff --git a/test-date.c b/test-date.c index ac6854a..6bcd5b0 100644 --- a/test-date.c +++ b/test-date.c @@ -20,12 +20,12 @@ static void parse_dates(char **argv, struct timeval *now) { for (; *argv; argv++) { char result[100]; - time_t t; + unsigned long t; int tz; result[0] = 0; parse_date(*argv, result, sizeof(result)); - if (sscanf(result, "%ld %d", &t, &tz) == 2) + if (sscanf(result, "%lu %d", &t, &tz) == 2) printf("%s -> %s\n", *argv, show_date(t, tz, DATE_ISO8601)); else as show_date takes an unsigned long anyway. -Peff