From b40006f450210351ef91b655b60f229e303be59a Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Fri, 5 Aug 2005 22:37:29 +0000 Subject: Changed the --begin and --end switches to rely on interval parsing to determine the beginning and ending of their range. Also, the ending is now inclusive. --- config.cc | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'config.cc') diff --git a/config.cc b/config.cc index 7d82ab83..733cee69 100644 --- a/config.cc +++ b/config.cc @@ -615,18 +615,34 @@ OPT_BEGIN(account, "a:") { // Report filtering OPT_BEGIN(begin, "b:") { + char buf[128]; + interval_t interval(optarg); + if (interval.begin) + std::strftime(buf, 127, formats[0], std::localtime(&interval.begin)); + else + throw error(std::string("Could not determine beginning of period '") + + optarg + "'"); + if (! config.predicate.empty()) config.predicate += "&"; config.predicate += "d>=["; - config.predicate += optarg; + config.predicate += buf; config.predicate += "]"; } OPT_END(begin); OPT_BEGIN(end, "e:") { + char buf[128]; + interval_t interval(optarg); + if (interval.end) + std::strftime(buf, 127, formats[0], std::localtime(&interval.end)); + else + throw error(std::string("Could not determine end of period '") + + optarg + "'"); + if (! config.predicate.empty()) config.predicate += "&"; config.predicate += "d<["; - config.predicate += optarg; + config.predicate += buf; config.predicate += "]"; } OPT_END(end); -- cgit v1.2.3