X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fparsetime.c;h=919dd50b340d74ed8806c59af2e9ae88b0082aaf;hb=6a2ad1ab269ec4c1dab0a47eecd4570f4e842a7f;hp=eedd3e488b80f6112fe597ca19659c0e65365164;hpb=65a92876144f3016e623f49a75b5468cd8375bd4;p=rrdtool.git diff --git a/src/parsetime.c b/src/parsetime.c index eedd3e4..919dd50 100644 --- a/src/parsetime.c +++ b/src/parsetime.c @@ -837,8 +837,23 @@ parsetime(const char *tspec, struct rrd_time_value *ptv) /* Only absolute time specifications below */ case NUMBER: - try(tod(ptv)) - try(day(ptv)) + { + long hour_sv = ptv->tm.tm_hour; + long year_sv = ptv->tm.tm_year; + ptv->tm.tm_hour = 30; + ptv->tm.tm_year = 30000; + try(tod(ptv)) + try(day(ptv)) + if ( ptv->tm.tm_hour == 30 && ptv->tm.tm_year != 30000 ){ + try(tod(ptv)) + } + if ( ptv->tm.tm_hour == 30 ){ + ptv->tm.tm_hour = hour_sv; + } + if ( ptv->tm.tm_year == 30000 ){ + ptv->tm.tm_year = year_sv; + } + }; break; /* fix month parsing */ case JAN: case FEB: case MAR: case APR: case MAY: case JUN: