X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fparsetime.c;h=47ddbbfc7a3fe95bfccb54eb1e823e328b2958b6;hb=1b9d3db37e1cdc2205bda742bd1818eb14ade84b;hp=f1958430224ef73487e8660001334315ca84d38a;hpb=3bb8cbdcbf384cc6b21f641852e3acb9eb50cd7d;p=rrdtool.git diff --git a/src/parsetime.c b/src/parsetime.c index f195843..47ddbbf 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_hour == 30000 ){ + ptv->tm.tm_year = year_sv; + } + }; break; /* fix month parsing */ case JAN: case FEB: case MAR: case APR: case MAY: case JUN: