ISO 8601 specifies three syntaxes for timezones other than "Z". git already supports the +-hhmm syntax. This patch adds support for the other two: +-hh:mm and +-hh. Signed-off-by: Marcus Comstedt <marcus@xxxxxxxx> --- :100644 100644 6bae49c... f83e46e... M date.c date.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/date.c b/date.c index 6bae49c..f83e46e 100644 --- a/date.c +++ b/date.c @@ -555,6 +555,18 @@ static int match_tz(const char *date, int *offp) int min, hour; int n = end - date - 1; + /* Check for HH:MM format, allowed by ISO 8601 */ + if (n == 2 && date[3] == ':') { + char *end2; + min = strtoul(date+4, &end2, 10); + /* If we have two digits after the colon too, assume HH:MM */ + if (end2 == date+6) { + offset = offset*100 + min; + end = end2; + n = end - date - 1; + } + } + min = offset % 100; hour = offset / 100; @@ -570,6 +582,17 @@ static int match_tz(const char *date, int *offp) *offp = offset; } + /* + * Also accept just the hour, allowed by ISO 8601 + */ + else if (n == 2 && hour == 0 && min < 24) { + offset = min*60; + if (*date == '-') + offset = -offset; + + *offp = offset; + } + return end - date; } -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html