Re: [PATCH 1/2] t0006: test timezone parsing

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 1/2] t0006: test timezone parsing

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:49:05

Jeff King [off-list ref] writes:
quoted hunk
diff --git a/test-date.c b/test-date.c
index a9e705f..ac6854a 100644
--- a/test-date.c
+++ b/test-date.c
@@ -21,12 +21,15 @@ static void parse_dates(char **argv, struct timeval *now)
 	for (; *argv; argv++) {
 		char result[100];
 		time_t t;
+		int tz;
 
 		result[0] = 0;
 		parse_date(*argv, result, sizeof(result));
-		t = strtoul(result, NULL, 0);
-		printf("%s -> %s\n", *argv,
-			t ? show_date(t, 0, DATE_ISO8601) : "bad");
+		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 *'

Re: [PATCH 1/2] t0006: test timezone parsing

From: Jeff King <hidden>
Date: 2016-06-15 22:49:05

On Tue, Jul 06, 2010 at 12:01:35AM -0700, Junio C Hamano wrote:
quoted
 		time_t t;
+		int tz;
[...]
quoted
+		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

Re: [PATCH 1/2] t0006: test timezone parsing

From: Jeff King <hidden>
Date: 2016-06-15 22:49:05

On Tue, Jul 06, 2010 at 03:28:49AM -0400, Jeff King wrote:
quoted
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:
Oh, I see this is already on maint. :) So here is my fixup in a nicer
form:

-- >8 --
Subject: [PATCH] test-date: fix sscanf type conversion

Reading into a time_t isn't portable, since we don't know
the exact type. Instead, use an unsigned long, which is what
show_date wants, anyway.

Signed-off-by: Jeff King <redacted>
---
 test-date.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
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
-- 
1.7.2.rc1.214.g5a9d0

Re: [PATCH 1/2] t0006: test timezone parsing

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:49:05

Jeff King [off-list ref] writes:
On Tue, Jul 06, 2010 at 03:28:49AM -0400, Jeff King wrote:
quoted
quoted
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:
Oh, I see this is already on maint. :) So here is my fixup in a nicer
form:
Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help