summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Marcus Comstedt <marcus@mc.pp.se>2010-05-17 21:07:10 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-05-18 22:00:17 -0700
commit75b37e704781a9ae4db2f0beaaa023638c06490d (patch)
tree30205c11ccdabafaed0cae838794f02efdb6fcb2
parentGIT-VERSION-GEN: restrict tags used (diff)
downloadtgif-75b37e704781a9ae4db2f0beaaa023638c06490d.tar.xz
Add "Z" as an alias for the timezone "UTC"
The name "Z" for the UTC timezone is required to properly parse ISO 8601 timestamps. Add it to the list of recognized timezones. Because timezone names can be shorter than 3 letters, loosen the restriction in match_alpha() that used to require at least 3 letters to match to allow a short timezone name as long as it matches exactly. Prior to the introduction of the "Z" zone, this already affected the timezone "NT" (Nome). Signed-off-by: Marcus Comstedt <marcus@mc.pp.se> Reviewed-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--date.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/date.c b/date.c
index 002aa3c8d6..6bae49ca33 100644
--- a/date.c
+++ b/date.c
@@ -229,6 +229,7 @@ static const struct {
{ "GMT", 0, 0, }, /* Greenwich Mean */
{ "UTC", 0, 0, }, /* Universal (Coordinated) */
+ { "Z", 0, 0, }, /* Zulu, alias for UTC */
{ "WET", 0, 0, }, /* Western European */
{ "BST", 0, 1, }, /* British Summer */
@@ -305,7 +306,7 @@ static int match_alpha(const char *date, struct tm *tm, int *offset)
for (i = 0; i < ARRAY_SIZE(timezone_names); i++) {
int match = match_string(date, timezone_names[i].name);
- if (match >= 3) {
+ if (match >= 3 || match == strlen(timezone_names[i].name)) {
int off = timezone_names[i].offset;
/* This is bogus, but we like summer */