Since commit 688a7e3f dates of the form [[[MM]DD]hh]mm have the wrong year:
$ ./busybox date -d 10101010 Fri Oct 10 10:10:00 GMT 10102910 Signed-off-by: Ron Yorston <[email protected]> --- libbb/time.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libbb/time.c b/libbb/time.c index ea2f72e..5aa5aeb 100644 --- a/libbb/time.c +++ b/libbb/time.c @@ -12,6 +12,7 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm) { char end = '\0'; const char *last_colon = strrchr(date_str, ':'); + unsigned year; if (last_colon != NULL) { /* Parse input and assign appropriately to ptm */ @@ -69,16 +70,16 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm) } } else /* yyyy-mm-dd HH */ - if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year, + if (sscanf(date_str, "%u-%u-%u %u%c", &year, &ptm->tm_mon, &ptm->tm_mday, &ptm->tm_hour, &end) >= 4 /* yyyy-mm-dd */ - || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year, + || sscanf(date_str, "%u-%u-%u%c", &year, &ptm->tm_mon, &ptm->tm_mday, &end) >= 3 ) { - ptm->tm_year -= 1900; /* Adjust years */ + ptm->tm_year = year - 1900; /* Adjust years */ ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ } else if (date_str[0] == '@') { -- 1.8.4.2 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
