date.c: fix parsing of dates in mm/dd/yy format
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 30 Apr 2005 21:31:28 +0000 (14:31 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 30 Apr 2005 21:31:28 +0000 (14:31 -0700)
We looked at the year one character too early, and we
didn't accept a two-character year date after 2000.

date.c

diff --git a/date.c b/date.c
index ffa4246..15f2819 100644 (file)
--- a/date.c
+++ b/date.c
@@ -203,9 +203,11 @@ static int match_digit(char *date, struct tm *tm, int *offset)
                        tm->tm_mon = num - 1;
                        tm->tm_mday = num2;
                        if (*end == c && isdigit(end[1])) {
-                               num3 = strtoul(end, &end, 10);
+                               num3 = strtoul(end+1, &end, 10);
                                if (num3 > 1900)
                                        num3 -= 1900;
+                               else if (num3 < 38)
+                                       num3 += 100;
                                tm->tm_year = num3;
                        }
                        break;