summaryrefslogtreecommitdiff
path: root/config.cc
diff options
context:
space:
mode:
Diffstat (limited to 'config.cc')
-rw-r--r--config.cc20
1 files changed, 18 insertions, 2 deletions
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);