diff options
author | Jeff King <peff@peff.net> | 2009-08-30 22:31:42 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-08-30 22:04:56 -0700 |
commit | 931e8e27d94dbc24abc9c969ae0b414e0361abff (patch) | |
tree | cd72a65adcd41a0805b74d1886ee9bae7bf2841d /date.c | |
parent | 34dc6e73b01011fcbe0f314d47fd6120382ae145 (diff) | |
download | git-931e8e27d94dbc24abc9c969ae0b414e0361abff.tar.gz git-931e8e27d94dbc24abc9c969ae0b414e0361abff.tar.xz |
fix approxidate parsing of relative months and years
These were broken by b5373e9. The problem is that the code
marks the month and year with "-1" for "we don't know it
yet", but the month and year code paths were not adjusted to
fill in the current time before doing their calculations
(whereas other units follow a different code path and are
fine).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'date.c')
-rw-r--r-- | date.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -857,7 +857,9 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm } if (match_string(date, "months") >= 5) { - int n = tm->tm_mon - *num; + int n; + update_tm(tm, now, 0); /* fill in date fields if needed */ + n = tm->tm_mon - *num; *num = 0; while (n < 0) { n += 12; @@ -868,6 +870,7 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm } if (match_string(date, "years") >= 4) { + update_tm(tm, now, 0); /* fill in date fields if needed */ tm->tm_year -= *num; *num = 0; return end; |