date.c: improve guess between timezone offset and year.
authorPaul Eggert <eggert@CS.UCLA.EDU>
Thu, 8 Jun 2006 21:54:13 +0000 (14:54 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 9 Jun 2006 04:22:33 +0000 (21:22 -0700)
When match_digit() guesses a four-digit string to tell if it is
a year or a timezone, it did not consider that some real-world
places have UTC offsets equal to +1400.

   $ date; TZ=UTC0 date; TZ=Pacific/Kiritimati date
   Wed Jun  7 23:25:42 PDT 2006
   Thu Jun  8 06:25:42 UTC 2006
   Thu Jun  8 20:25:42 LINT 2006

Signed-off-by: Paul Eggert <eggert@CS.UCLA.EDU>
Signed-off-by: Junio C Hamano <junkio@cox.net>
date.c

diff --git a/date.c b/date.c
index 365dc3b14e47826dd7becf19a76e29bfaa6b2eb5..66be23ab21ef855ecbadeceae1dea2972efd4c2f 100644 (file)
--- a/date.c
+++ b/date.c
@@ -369,7 +369,7 @@ static int match_digit(const char *date, struct tm *tm, int *offset, int *tm_gmt
 
        /* Four-digit year or a timezone? */
        if (n == 4) {
-               if (num <= 1200 && *offset == -1) {
+               if (num <= 1400 && *offset == -1) {
                        unsigned int minutes = num % 100;
                        unsigned int hours = num / 100;
                        *offset = hours*60 + minutes;