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?