Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] apply: Recognize epoch timestamps with : in the timezone

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

Jonathan Nieder [off-list ref] writes:
Hi Anders,

Anders Kaseorg wrote:
quoted
Some patches have a timezone formatted like '-08:00' instead of
'-0800' (e.g. http://lwn.net/Articles/131729/)
Odd.  Any idea what tool generates these patches?
quoted
--- a/builtin/apply.c
+++ b/builtin/apply.c
[...]
quoted
@@ -765,7 +765,9 @@ static int has_epoch_timestamp(const char *nameline)
 	}
 
 	zoneoffset = strtol(timestamp + m[3].rm_so + 1, NULL, 10);
-	zoneoffset = (zoneoffset / 100) * 60 + (zoneoffset % 100);
+	if (m[4].rm_so == m[3].rm_so + 3)
+		zoneoffset /= 100;
+	zoneoffset = zoneoffset * 60 + strtol(timestamp + m[4].rm_so, NULL, 10);
Might be clearer to write

	if (timestamp[m[3].rm_so + 3] != ':')
Neither the patch nor your suggestion makes much sense to me.  With the
patch, the regexp is now

    ^(1969-12-31|1970-01-01) <time>(\.0+)? ([-+][0-2][0-9]):?([0-5][0-9])

so $3 is always 3 letters long (i.e. hour with sign), no?  IOW, zoneoffset
is never divided by 100 by the original patch.

What am I missing?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help