diff --git a/ChangeLog b/ChangeLog index b7a4f213..58b150f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16167,3 +16167,6 @@ rdimport(1). 2017-10-16 Fred Gleason <fredg@paravelsystems.com> * Updated 'NEWS'. +2017-10-17 Fred Gleason <fredg@paravelsystems.com> + * Added sane defaults when processing '%k','%K', '%q' and '%Q' + wildcards in rdimport(1). diff --git a/docs/docbook/rdimport.xml b/docs/docbook/rdimport.xml index 66da8e55..ba2af43c 100644 --- a/docs/docbook/rdimport.xml +++ b/docs/docbook/rdimport.xml @@ -348,8 +348,18 @@ <varlistentry> <term><userinput>%q</userinput></term> <listitem> - <para>Date component of the cut start date/time, in - format <userinput>YYYY-MM-DD</userinput></para> + <para> + Date component of the cut start date/time, in + format <userinput>YYYY-MM-DD</userinput>. If the + <userinput>%Q</userinput> wildcard has not also been provided, + the end date will be assumed to be the same as the start date. + If the <userinput>%k</userinput> wildcard has not been + provided, a start time of + <userinput>00:00:00</userinput> will + be assumed, while if the <userinput>%K</userinput> wildcard + has not been provided, an end time of + <userinput>23:59:59</userinput> will be assumed. + </para> </listitem> </varlistentry> @@ -357,7 +367,11 @@ <term><userinput>%Q</userinput></term> <listitem> <para>Date component of the cut end date/time, in - format <userinput>YYYY-MM-DD</userinput></para> + format <userinput>YYYY-MM-DD</userinput>. + If the <userinput>%K</userinput> wildcard + has not been provided, an end time of + <userinput>23:59:59</userinput> will be assumed. + </para> </listitem> </varlistentry> diff --git a/utils/rdimport/rdimport.cpp b/utils/rdimport/rdimport.cpp index 24f651fd..a00be01c 100644 --- a/utils/rdimport/rdimport.cpp +++ b/utils/rdimport/rdimport.cpp @@ -1658,6 +1658,9 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename, QString value; QChar delimiter; bool found_cartnum=false; + bool found_end_date=false; + bool found_start_time=false; + bool found_end_time=false; QTime time; QDate date; @@ -1713,6 +1716,7 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename, time=QTime::fromString(value); if(time.isValid()) { wavedata->setStartTime(time); + found_start_time=true; wavedata->setMetadataFound(true); } break; @@ -1721,6 +1725,7 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename, time=QTime::fromString(value); if(time.isValid()) { wavedata->setEndTime(time); + found_end_time=true; wavedata->setMetadataFound(true); } break; @@ -1756,6 +1761,15 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename, if(date.isValid()) { wavedata->setStartDate(date); wavedata->setMetadataFound(true); + if(!found_end_date) { + wavedata->setEndDate(date); + if(!found_end_time) { + wavedata->setEndTime(QTime(23,59,59)); + } + } + if(!found_start_time) { + wavedata->setStartTime(QTime(0,0,0,1)); + } } break; @@ -1763,7 +1777,11 @@ bool MainObject::RunPattern(const QString &pattern,const QString &filename, date=QDate::fromString(value,Qt::ISODate); if(date.isValid()) { wavedata->setEndDate(date); + found_end_date=true; wavedata->setMetadataFound(true); + if(!found_end_time) { + wavedata->setEndTime(QTime(23,59,59)); + } } break;