summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0a15217)
raw | patch | inline | side by side (parent: 0a15217)
author | Linus Torvalds <torvalds@osdl.org> | |
Thu, 5 Jan 2006 03:33:55 +0000 (19:33 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Fri, 6 Jan 2006 01:22:43 +0000 (17:22 -0800) |
Stupid me.
If approxidate ends up with a month that is ahead of the current month, it
decrements the year to last year.
Which is correct, and means that "last december" does the right thing.
HOWEVER. It should only do so if the year is the same as the current year.
Without this fix, "5 days ago" ends up being in 2004, because it first
decrements five days, getting us to December 2005 (correct), but then it
also ends up decrementing the year once more to turn that December into
"last year" (incorrect, since it already _was_ last year).
Duh. Pass me a donut.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
If approxidate ends up with a month that is ahead of the current month, it
decrements the year to last year.
Which is correct, and means that "last december" does the right thing.
HOWEVER. It should only do so if the year is the same as the current year.
Without this fix, "5 days ago" ends up being in 2004, because it first
decrements five days, getting us to December 2005 (correct), but then it
also ends up decrementing the year once more to turn that December into
"last year" (incorrect, since it already _was_ last year).
Duh. Pass me a donut.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
date.c | patch | blob | history |
index 3ede02777b9740df6ef0ecc55da6456c7912758f..416ea579a3eb1dbc910817413f995556ad115b29 100644 (file)
--- a/date.c
+++ b/date.c
}
if (number > 0 && number < 32)
tm.tm_mday = number;
- if (tm.tm_mon > now.tm_mon)
+ if (tm.tm_mon > now.tm_mon && tm.tm_year == now.tm_year)
tm.tm_year--;
return mktime(&tm);
}