X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fparsetime.c;h=919dd50b340d74ed8806c59af2e9ae88b0082aaf;hb=8b2c74a025ed32db8704366ac2c3bd8885a3a802;hp=f1958430224ef73487e8660001334315ca84d38a;hpb=3bb8cbdcbf384cc6b21f641852e3acb9eb50cd7d;p=rrdtool.git diff --git a/src/parsetime.c b/src/parsetime.c index f195843..919dd50 100644 --- a/src/parsetime.c +++ b/src/parsetime.c @@ -837,9 +837,23 @@ parsetime(const char *tspec, struct rrd_time_value *ptv) /* Only absolute time specifications below */ case NUMBER: - try(tod(ptv)) - try(day(ptv)) - try(tod(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: